Why Can We Write Software To Get To the Moon, But Not To Count Votes (infoworld.com) 325
minstrelmike shares a report. From the article: The best way to get a feel for what NASA's job was like is to read some of the code, now immortalized in a GitHub repository. Choose a file at random. GROUND_TRACKING_DETERMINATION_PROGRAM.agc, for instance, has 204 lines and more than 85 of them are comments. Each of the lines consists of only one operation, unlike modern languages, which can pack dozens of operations with multiple options into one line. The simplicity becomes obvious .... The Apollo Guidance Computer had only 36k of ROM to hold the compiled version."
You didn't need security, function was the only thing that counted, and you only had to do one thing. A Go app compiled with version 1.7 that only prints "Hello World" is 1.6 megabytes alone, and the Go world was totally thrilled with this news because it was 2.3 megabytes before." And you didn't need to deal with lawyers. There are 22 thousand words in the basic Terms of Service for renting a machine in Amazon's cloud. There is also an entirely different TOS for using the website to rent the machine. Then each individual product often has its own TOS, like this one for Activate. Add them up and they're much longer than the 36 thousand instruction words in the ROM in the Lunar Lander's computer.
You didn't need security, function was the only thing that counted, and you only had to do one thing. A Go app compiled with version 1.7 that only prints "Hello World" is 1.6 megabytes alone, and the Go world was totally thrilled with this news because it was 2.3 megabytes before." And you didn't need to deal with lawyers. There are 22 thousand words in the basic Terms of Service for renting a machine in Amazon's cloud. There is also an entirely different TOS for using the website to rent the machine. Then each individual product often has its own TOS, like this one for Activate. Add them up and they're much longer than the 36 thousand instruction words in the ROM in the Lunar Lander's computer.
Because we aren't NASA (Score:5, Insightful)
NASA spent a huge amount of money developing this software and it took many years.
The failed voting app was slapped together in a few weeks using low cost app developers.
Re:Because we aren't NASA (Score:4, Insightful)
And written by a company that named itself "Shadow."
Exactly how many red flags do you need anyway?
Re:Because we aren't NASA (Score:5, Insightful)
Don't forget that Shadow was set up by political cronies.
Re:Because we aren't NASA (Score:5, Insightful)
Low cost app developers who barely know how to code and mostly know how to glue dozens of questionable libraries together.
Re:Because we aren't NASA (Score:5, Funny)
Re: (Score:3, Funny)
And that's something you can sneeze at...
Re: (Score:3, Insightful)
It was also driven by people with an agenda. This story isn't about "ineptitude" as much as it is about people wanting to make it one.
Sleazebags always try to look inept. (Score:2)
Because blackeyers actually buy that!
Hanlon's razor^Wfallacy and all.
Re: (Score:2)
.... or sloth.
Someone's diligence (or budget or both) were lacking. There's no one on the Dem side to slap the crap out of these jokers, however. The leadership is in the tank. Can no one save these folks?
Re: (Score:3)
Someone's diligence (or budget or both) were lacking. There's no one on the Dem side to slap the crap out of these jokers, however.
They were not just some low bid joker. They were good solid loyal party insiders. The developer was founded by high level Hillary 2016 staffers. "At the center of the confusion is an app reportedly built by a for-profit company called “Shadow Inc.” ... The LA Times notes that Shadow began life as Groundbase, which was founded by former Clinton 2016 digital campaign staffers Gerard Niemira and Krista Davis."
The leadership is in the tank. Can no one save these folks?
No, not while the Democratic Party remains one big nepotistic clusters*ck centered around
Hates "other team" more than "populist outsider" (Score:3)
No, not while the Democratic Party remains one big nepotistic clusters*ck centered around the Clinton machine.
No nepotism in the current White House. Nope, none at all LOL.
Complete fail on your straw man. Weak sauce on your whataboutism. I was referring to an entire party apparatus, not a small group like the White House. The republican party apparatus is still largely anti-Trump. Much like the Democratic Party apparatus is largely anti-Bernie. Neither insider group, neither establishment, likes the "outsider" "usurping" their party. However when the "outsider" gets the nomination they will fall in line and grudgingly support. As happed with Trump and will happen with Bernie
Re:Because we aren't NASA (Score:5, Interesting)
In one of my classes we did a case study on NASA's software development process. It had the highest cost per line of code of any example we were given, and might have been the highest cost ratio at the time.
That being said, besides the time, practices, and process that went into its development,.. the type of stuff the piece is kinda ignoring, I think there is value in looking at how domain/mechanical/legal differences can also impact the difficulty in writing stable software. All the things the summary mentions are real issues that introduce complexity, some of it mutually exclusive, which makes software harder to develop and test.
Re: (Score:2)
Re: (Score:3)
Surely you don't expect a startup company CEO to forgo his company Lamborghini, hookers and blow in favor of spending more of the venture capital on hiring competent people. That's just not how it's done!
Re:The company behind the app (Score:5, Insightful)
Iowa Democrats paid $60K for the app, according to reports.
This app would have a useful life of about 3-4 hours, and would see about 1,600 submissions over those 3-4 hours, mostly clustered around the time the caucuses finished.
This was a very manageable project, there's no technical reason it should have flamed out so badly.
Re:The company behind the app (Score:5, Informative)
Presuming an overhead factor of 2, that's $30K for salaries, which presuming $100K per employee is enough for three months of developer time. If you figure a team of 3 (including QA/testing) you've got about a month. For a highly visible application that requires excellent security and transparency or it will attract suspicions of having been hacked/gamed/rigged.
Re: (Score:3, Insightful)
"2-3 sprints"? Hardly, using Agile would produce exactly the kind of app that was produced. Whack something together, oh it almost works. Fix bugs you can see. Send app over the wall to users and breathlessly await their reports so the app can be modified to "include stakeholders' comments". Repeat as needed until nomination process proceeds without screwups but the app still includes the security vulnerabilities because the reports from the crackers (the old sense of the word that the word hacker has sort
Re:The company behind the app (Score:5, Insightful)
Yup. Agile is just an excuse for cutting down on proper soak testing and hitting meaningless deadlines set by pointy heads who don't have a clue.
They could power cycle it and not crash the lander (Score:2)
First all the software for getting to lunar orbit could be run and checked over long times. It could be monolithic not networked. It did not need a GUI.
But the software for landing the lander did have real time requirements. It had multiple tasks to perform. It was designed so it could be power cycled and the lander would not crash. Imagine waiting for the windows boot screen to finish and then having to re-input the new coordinates where you were while your retro rockets were firing uncontrollably or no
Re:They could power cycle it and not crash the lan (Score:4, Insightful)
This is not voting software, it is an app to submit totals into a central database.
In Iowa there are 99 counties and 1,680 precincts. Each precinct had exactly one user that would submit a set of numbers representing the counts for each candidate in each round of the caucus - that's it.
They failed to train the users or test the app, that was their problem.
Re: (Score:3)
They say there was a technical error on the outputs (the reports), which was skewing the results. That's what they say - but it's politics, and I don't believe them. A fool would.
Uhhh....say what? (Score:3)
This is not voting software, it is an app to submit totals into a central database
Submitting totals to a central database is voting software.
Re:Because we aren't NASA (Score:4, Interesting)
It was also written to run on a computer you could build with wire-wrapping (which rocks, by the way) arrays of discrete transistors. This limits the system's complexity and puts the system engineers on a strict feature budget.
You also had the luxury of designing a user interface that had to be usable for someone who'd spend thousands of hours practicing with it, and who could qualify to be a frickin' astronaut. If on July 16, 1969 they shoved some random 80 year-old volunteer into the Command Module and expected them to figure the software the first time they used it, the results would have been about what they had in Iowa.
The human factor isn't a legitimate excuse for a software project's failure. It just means the project failure occurred in the requirements phase.
Re: (Score:3)
The binary program of the Lunar Module's computer was literally woven by women to form banks of core memory. The weave directed wires in specific ways through and around magnetic cores to generate the required logical 0 and logical 1 bit values of the program. This method was very robust.
Re:Because we aren't NASA (Score:5, Informative)
What you're specifically talking about is something called "core rope memory". It uses the same basic building blocks as read/write magnetic core memory, but instead of having erase and write wires, nimble-fingered ladies wove wires through an array of permanently magnetized cores to make high a density ROM. By using the same physical building blocks they ended up with a higher density read-only memory that had the same electrical interface as their RAM.
Physics/Engineering vs. People (Score:5, Insightful)
When it comes to voting though you have to protect the result against people who cannot be trusted to always do the "right thing" and some of whom may well be out to try and deliberately skew the result in their direction. Trying to defend against intelligent actors deliberately trying to break your code is a lot harder than trying to defend against accidental breakdowns and failures.
Have you actually seen the NASA software (Score:4, Interesting)
Armstrong and Aldrin are looking at each other asking "WTF is a 1202 alarm? I don't remember that from our simulator training."
He's basically asking "Houston, what's a 1202 alarm? We don't know WTF it is. Is it a show-stopper?"
Note the 11 second time gap before the reply. Duke frantically asks around Mission Control to see if anyone knows what a 1202 alarm is. Someone in the room who knows speaks up (it just means the computer is overloaded), and says it's not a show-stopper. They're good to continue. Duke relays that back to Apollo 11.
The computer [wikipedia.org] was extremely limited (only about 4kB of RAM, 73kB of ROM, with limited input and output [wikipedia.org]. They spent a year training with it in a simulator, having all sorts of possible errors and malfunctions thrown at them. Despite all this training and preparation, they still had something unexpected occur during the actual mission. They got out of it because they thought of everything that could go wrong and prepared for it, even the unexpected. They had someone who helped build the computer in the room, who could answer within 10 seconds any questions that cropped up about it which hadn't been covered in the training.
Do you think they had a hotline set up in Iowa, where people confused about how to use the app could call in and get further instructions in real-time? The key difference was preparation. Someone assumed there wouldn't be any problems using the app, so they didn't prepare for that potential failure mode. (Granted a failure on Apollo 11 would've meant three dead astronauts and national public humiliation, while a failure in the Iowa caucus would've only meant national public humiliation. So NASA had a bigger incentive to get things right.)
Re: (Score:2)
NASA spent a huge amount of money developing this software and it took many years.
The failed voting app was slapped together in a few weeks using low cost app developers.
Folks seem to forget that the NASA systems still had bugs... Look up "1201 and 1202 alarms", which nearly ended our first landing attempt. Nobody had expected this set of alarms and had never seen them before in the simulations or previous tests. The controller let them land anyway, even though they where flying into the unknown, literally... It wasn't just one errant alarm either, each of these alarms happened repeatedly. These guys where brave... Solid Stainless Steal you know whats
Re: (Score:2)
And the AGC software went through many revisions as well. I don't think it was "final" until the last couple of Apollo missions.
Re: (Score:3)
The "1201 and 1202 alarms" were run-time warnings that the executive part of the scheduler was getting overloaded due to being too busy. However, the computer was behaving as designed and was coping well. The computer had an unexpected amount of extra work to do because accidentally the radar that tracked the Command Module had been left on at the same time as the radar that measured the height above the lunar surface was being used.
These alarm scenarios were known to an engineer in Mission Control who very
Re: (Score:3)
The issues involved in the Iowa app:
1) Complex Rules
2) Short development window
3) minimal testing by developers, no load testing, no end-user acceptance testing
4) No user training
5) Holding back on app until the day of the caucus
6) Failure to get end-user buy-in
7) Failure to plan/staff for alternative submission method
This is NOT how a typical software project is developed.
Re: (Score:3)
It's a bit crass, but this is probably the real reason -- totally insufficient training and testing, especially when the target audience is of only minimal technical sophistication.
It probably doesn't help that the the Iowa caucus rules are likely complicated and perhaps don't translate well to smartphone-style tabulation, further confusing people when they try to apply rules or changes that the smartphone app rejects or don't fit rigid data entry parameters.
Re:Because we aren't NASA (Score:5, Interesting)
What could possibly go wrong?
But it was far worse than that. They released it too late and couldn't get it in the Apple app store so you had to bypass the regular procedures that your granddaughter had showed you and do something different to get it loaded.
No one could follow those instructions, and then 4chan posted the help line number so that was clogged completely.
Actually project needed "boomer" involvement (Score:3)
That's what I thought at first. "Ok Boomer, download the app."
Well, you are an idiot. You realize that the "boomers", or older, wrote the NASA software we are making a comparison too. Wrote well designed, tested software and understood testing **and training** are necessary. That the failure of software development becoming gluing "trusted" libraries together with minimal code and then tossing it onto the internet to see how it works is entirely a pattern used by the much younger demographics.
If you want to bring "boomers" into the argument the problem is that ther
Re: (Score:3)
That sounds pretty moronic to me, like you almost didn't even know what a TV is?
I'll give you a hint: A television is a product, not a service.
Re:Because we aren't NASA (Score:5, Insightful)
No training, no dry run. (Score:3)
NASA spent a huge amount of money developing this software and it took many years.
The failed voting app was slapped together in a few weeks using low cost app developers.
I think most of the problems where probably due to the fact that they handed the app to a bunch of octogenarian Dem. party functionaries without making sure there was a grandchild on hand to provide tech support.
Your bigotry is confusing you. The lack of training, the lack of an all caucus officials dry run, doomed this effort. Grand children or not. We had people installing and using (attempting to) the app for the first time on election night. The problem goes far beyond knowing to ignore the side loading APK warning. Sure a grandkid can get them past that, but what's the grandkid going to do when it doesn't run on the old version of Android on the phone? When its running but the numbers aren't correct, etc.
Th
Internet connected (Score:2)
Another argument (missing in the summary, but mentioned in TFA itself): The Apollo computer interfaced the outside world only with a DSKY (for display and keyboard) [arstechnica.com], whereas nowadays even a color LED light bulb needs to be internet enabled.
Because when you pay peanuts... (Score:5, Insightful)
Re: (Score:2)
Yeah, well, the elephant in the room ate them all.
Re: (Score:3)
Can we have ONE topic without descending into political bickering?
Re: (Score:3)
Here's why - Corruption! (Score:2)
Why Can We Write Software To Get To the Moon, But Not To Count Votes?
Because you are corrupt just like those governments or nations you blame...
JavaScript (Score:5, Funny)
If they'd written the software for Apollo in JavaScript, it would have exploded on the launchpad.
If somebody had told me 20 years ago that I'd be writing server side JS, I'd have changed careers.
Re: (Score:2)
hé, I wrote SNMP drivers in Javascript, mind blowing too :)
I don't know about you ... (Score:2)
But I'm writing client-side Haskell (and GDScript).
TL;DR (Score:2, Informative)
Modern computers are a mess because people [theatlantic.com] (SFW).
Adversarial conditions? (Score:2)
I bet if there were interested parties trying to shoot down, blind, disorient or otherwise pwn the Apollo missions, it would not have been hard. On launch, they're moving slower than a passenger jet, and we sadly know how easy it is to down them.
There's a fundamental difference between writing software that has to work in the face of stupidity, lack of proper definition and all the other ails of industrial control software and one that has to work in the face of actual malicious intent. Go to any mid-sized
Re: (Score:2)
On launch, they're moving slower than a passenger jet, and we sadly know how easy it is to down them.
WTF? How would you bring down a Saturn V rocket? RPG? Embed a suicidal terrorist in the astronaut program? Send passengers on the rocket with box cutters?
The Iowa Democrats never tested the app or trained their 1,680 users - that's the failure.
Can't write software to count votes? (Score:2)
Re: (Score:2)
The app was not a voting app, it was a GUI interface to a spreadsheet,nothing more.
One deals with politics, the other with science (Score:2)
And science, and physics, and simple control signals are far more logical and understandable than anything political.
Can we? (Score:2)
First, we probably could not write software to get us to the moon anymore.
Second, that software could do math calculations and was backed up by an army of (human) "computers" back at NASA to develop the math beforehand and on standby during the mission.
And third, back then, you would find some daredevils brave enough to bet their lives on an overgrown pocket calculator. (by todays standards)
Re: (Score:2)
First, we probably could not write software to get us to the moon anymore.
Why do you think so?
We might no longer be able to build a Saturn V rocket from scratch, because nobody knows how to do that any more and the engineers might even have been lucky that it worked at all, but that's different from writing software to control it.
Re: (Score:2)
First, we probably could not write software to get us to the moon anymore.
I think that's lame. Of course we could, but the whole system we'd use for this today would be hugely more complex. Apollo had hundreds of thousands of lines of code, today this would be tens of millions. It would be multiple orders of magnitude larger and more complex, but we could do it. We do stuff more complex than this all the time.
Second, that software could do math calculations and was backed up by an army of (human) "computers" back at NASA to develop the math beforehand and on standby during the mission.
And today, we routinely do the same thing with things like satellites and deep space probes, where they launch without the necessary code to complete the mission, just t
Re: (Score:3)
First, we probably could not write software to get us to the moon anymore.
Today we routinely write and deploy spacecraft control software that's orders of magnitude more sophisticated than anything we did during Apollo, and its even capable of completing its mission without any humans in the loop. (And yes, that includes sending probes to the moon. But it also includes sending probes and landers to other parts of the solar system.)
What makes the Apollo AGC code so notable is that its really the first time we tried to do something like that.
Blame bloated "frameworks" (Score:5, Insightful)
The Apollo engineers wrote the software with the hardware limitations in mind...Today's developers assume unlimited resources, whether its CPU, memory, storage, bandwidth...
A "hello world" client side application written in modern frameworks requires 100KBs or even a few MBs of transfer to a fresh machine and many CPU cycles, not to mention the MBs and CPU resources required on the server side. The same server generated HTML would only be a few KB transfer, not require nearly the CPU resources and done in a few lines of PHP or Perl or a BASH script on the server...Modern programmers don't appear to have a clue on how the hardware works or how to optimize code...Not every application needs a fully interactive framework. I shake my head every time I see a mostly static site start to load 100s of KB of JS, just so it can load the page content that is non-interactive...Happens more and more often
I think programmers should all start learning by writing applications using basic logic gates (AND, OR, NAND, NOR, XOR, FLIP-FLOP, etc) since that is essentially what code is compiled to in the end. Then they should write applications in assembly to get a feel for the basic instructions a processor can deal with and how memory, storage and peripheral communication occurs..
Re: (Score:3)
I think programmers should all start learning by writing applications using basic logic gates (AND, OR, NAND, NOR, XOR, FLIP-FLOP, etc) since that is essentially what code is compiled to in the end. Then they should write applications in assembly to get a feel for the basic instructions a processor can deal with and how memory, storage and peripheral communication occurs..
I absolutely agree. I learned assembly early on, though I'd started with C. It took me years to understand why anyone would ever call C a low level language...Then I learned Java and C#, then Python...
I STILL can't shake the ever-present thought of how long my line of code will take to execute. In assembly, I had to count cycles, and I'm still aware that I'm asking for a LOT of cycles when I do a strcmp...
You didn't need security, only function counted? (Score:2)
Abstraction of abstraction of abstraction of... (Score:5, Insightful)
...abstraction of abstraction of .. useless abstraction! Layers of layers of layers of layers of... abstractions! Everything must be "web-scale" mentality. A lot of "Just In Case we have to change part X in the system" architecture/programming (ex: hiding database native SQL behind a shit load of junk abstraction code...).
The more code you have, the more likely you will have bugs/security hole/... The more layers of code you didn't have controls on (ex: frameworks like Spring!), the more... ok you understand my point :)
"Why is politics not like science?" (Score:3)
Translated this way, I'm sure you agree that the answer is obvious. :-D
- - - -
To elaborate:
I think politics *should* be scientific. Aka based on actual (and if possible reproducible) obervation and clean logical reasoning. ...? Who here lobbied for it this month? And I mean face-to-face.)
Not that I see it happening, given that nobody seems to *actually* want that enough to put is above the daily grind.(Anyone
Re: (Score:3)
There is no "right" answer, just preferences.
Re: (Score:3)
And Group C doesn't think it should be their responsibility to pay for either.
Science has a lot to say about what is and why it is. It can't tell you much about what ought to be. You need to apply your own personal values there.
For example:
One group believes that environmental issues are paramount for the long term prosperity and survival of the human race.
Another group believes that the long term prosperity of the human race comes secondary to the immediate needs of real people living in the here and now.
W
Short term vs Long term program (Score:4, Informative)
I make my living writing small programs meant to be "disposable" where they do their job, use them for a few years, then dump that program and make something new. I can write these programs fast (under a day normally, under 2 weeks for a big program), they work extremely well and rarely have problems, that those big applications that took years to build has.
I have worked on big projects for these bigger "enterprise" applications and what happends with them is the following:
1. Too many competing priorities the 4F. It needs to be Fast, Flexible, Functional, Feature Rich. Being these projects have a long time frame, the one more thing is going to get dropped, because a competitor had released something to the market, that wasn't part of the project plan. Which often will hinder one of the F's
2. Too many cooks. You have a large development team, their skills are going to differ. You will encounter the guy who spends too much time on the UI, and not enough on the underlining engine. You have the guy struggling to get some code to work, so they cut corners, vs asking for help. You also have the person who seems useless in the project and you wast too much time debating the architecture then doing what they are told.
3. Soul crushing work: As part of 2, development is largely a form of art then just straight engineering. Having the Manger shoot down the architects design, then the architect trying to make a compromise to prevent failure, then to telling the dev team to stop whining about how it is going to be done and debating why it is like that and not the better way. At the end no one is happy, and everyone is trying to maintain whatever power they have, which puts pressure on everyone from every side.
This creates a lot of bad code with problems some are hard to diagnose.
Building a flight computer to the moon, is a single purpose computer it was probably created rather quickly, with a lot of checks and process behind it.
Voting systems, have to deal with a lot of situations, it is more than just counting the votes.
Every 10 miles or so, the ballets will be different, as their are different people running for local elections, their will be some 3rd party parties that are not available else where. The hardware needs to be nearly indestructible. It needs to be easy enough for polling officials (that 80 year old lady) to manage, yet difficult to hack. They need to be scaled from a 100 sq foot polling location stuffed in a fire department storage closet. To dozens of systems to handle thousands of people an hour.
Then politicians and news sources have a wish list of real time results. But if you put it on the internet then you can get hacked. Also they are often the development own political assumptions Eg if picked="democat" then Democrat++ else Republican++ end This is based on a binary view of the polling, and may cause Republicans extra votes when someone else is picked or no vote casted. This may not have been intentional but just a poor thinking of the scope.
I could write a wonderful polling program for my district and I could guarantee that it would would wonderfully. However I wouldn't be able to make that same claim for the whole state.
Re: (Score:3)
This was a app designed to send data from 1,680 users (each precinct) into a central database over the course of a couple hours.
The issues were a failure to test the app under load, and a failure to test the app before it was needed.
Comment removed (Score:3)
So lawyers? (Score:2)
Sounds about right.
Stupid question.... (Score:2)
Re: (Score:2)
Just use paper ballots (Score:2)
Paper ballots with receipts for each voter, sealed containers, and verified chain of custody for every lot of votes.
You can count them by hand. Much more importantly, you can count them again and again and get the same numbers.
Trust matters a lot. Efficiency hardly matters at all.
Re: (Score:2)
I can break every electoral system in which that kind of counting is possible. They tend to break on their own. You don't get proper representation: most voters's votes have zero impact on the election.
I've had to design new processes to provide better integrity than hand-counted paper ballots so as to make implementation of proper electoral systems even possible (an election with no integrity is no election at all).
Re: (Score:2)
The counting process (optical scanner, for example) must also count the voter-verifiable presentation, not a translation of it.
My county's voting systems generate what appear at first glance to be voter-readable ballots. Trouble is that they also contain machine-readable bar codes that are used for the counting. So we the voters have no way to verify that the counting mechanism matches our human-readable selections.
As with many local government functions, our county's board of elections is understaffed and
Re: (Score:2)
They had paper ballots, I saw them on tv.
Blaming the wrong thing (Score:2)
From what I read, the app worked fine, but the backend didn't. They switched from a testing backend controlled by the devs that worked to one controlled by the DNC which rejected data sent to it.
So the problem came with the interfacing of the two : it wasn't tested enough. The stories I read didn't say which side generated wrong data or failed to parse valid data.
Also, it's not a voting app, it's just a tool supposed to help count the votes, no? The real question to push would be why the counting system and
Points of Exposure (Score:2)
When so many opportunities exist in a voting system, human nature seizes an opportunity to fuck the vote. It is why the PARTY wants to own the software, control the system and direct the opportunity stream.
The first investors interested in funding our voting software development were Republicans in 1996. They demanded majority equity. So we shut our voting development down. Look what Democrats investment in software wrought in IOWA in 2020 and that wasn't even voting - only a caucus poll.
There is too muc
WTF? (Score:2)
From TFS:
Each of the lines consists of only one operation, unlike modern languages, which can pack dozens of operations with multiple options into one line...
Of course each line was one operation. The Apollo Guidance Computer [wikipedia.org] was programmed in assembly!
The summary seems to be saying that the code was good because they wrote in assembly is better than high level languages! Wrong. And, some drivel about how compact the output binary program is vs the size of the human readable source. Even more incorrect. As others have noted, the code for the Apollo project was good because of the processes used.
Compiled version? (Score:2)
The AGC code was written opcode by opcode.
https://github.com/virtualagc/... [github.com]
So what you're telling me... (Score:2)
Yes, I guess that writing software where one doesn't need more than about a dozen lines of code to program the algorithm and one doesn't have to worry about security is simpler than writing code that has to run in a hostile security environment and whose UI alone has more functionality than was ever dreamed of by the spacecraft engineers. Thank you, Captain Obvious.
Maybe we can limit you to a few wheel switches and buttons and 36K words and you'll be perfectly comfortable with the resulting system. I doubt
Today's culture of cowboy coding (Score:5, Insightful)
Money, knowledge, education, interest... (Score:2)
First and foremost, it's money. The people who created the code for the lunar lander were highly trained experts in mathematics, physics and computer science. In other words, they not only knew what they had to deal with, they also knew how to translate those problems into something the computer could then comprehend. Such people tend to be expensive. Because they are rare. Now, of course if you have near unlimited funds and a population that is very interested in working on a prestigious project like a moo
The answer is obvious (Score:3)
NASA software is used by a few technically competent people, vote counting software is used by a lot of technically incompetent people.
NASA probably has user interfaces designed to minimize input errors. Voting software was probably written by people who know nothing about user interface design.
Re: (Score:2)
What I want to know is (Score:2)
Notice: no one is getting sued here for failure to complete. The project was done BY dnc insiders. Almost like they wanted the fail? Odd.
If I had a project like this, I can not image being in business the next day. OH wait is Shadow still in business.
Just my 2 cents
Because nobody's trying to steal the moon landing (Score:2)
because of the users. (Score:2)
Frankly, it's a personnel issue, not a software issue.
writing software to go the moon is easy because you have a tiny number of users, who are all extremely intelligent and extraordinarily well trained.
writing software to count votes is hard because the user base is a large number of untrained volunteers in their twilight years who received practically no training.
this wasn't a software failure, it was an organizational failure.
Because! (Score:2)
Why Can We Write Software To Get To the Moon, But Not To Count Votes?
Because one of those is a relatively straightforward problem, and the other one involves a form of electronic voting.
Seriously though, going to the moon was a straightforward issue comparatively, at least from a software development perspective. They were able to design it for a single, specific use case, rather than needing to design it for use in a variety of different situations; the surface area for attack by bad actors was incredibly small, to the point of almost not existing; subsystems were designed
Political Fuckery (Score:3)
Of course we can write software to count votes. Don't be fatuous, Jeffrey.
We can also create a situation where the Caucus vote outcome is so chaotic that humans have to interpret the results and then magically in one county Duval Patrick and Tom Steyer get 10x as many votes as Andrew Yang and Bernie has more than a thousand votes missing (according to the Caucus Chair), transferring his lead to Pete, the ex-CIA contractor.
It's like ... we know the app was written by staffers from Hillary's campaign and we know for a fact that her staffers conspired with the DNC against Bernie last time, but this time we're supposed to trust them to be operating with pure intention? And the DNC wants to come in to conduct an Iowa recount? Give me a break, who's stupid enough to fall for that? The Mockingbird Media doesn't count
"In a Democracy the People get the government they deserve."
everywhere people get what they deserve (Score:3)
Power concedes nothing without a demand. It never did and it never will. Find out just what any people will quietly submit to and you have found out the exact measure of injustice and wrong which will be imposed upon them, and these will continue till they are resisted with either words or blows, or with both. The limits of tyrants are prescribed by the endurance of those whom they oppress.
-Frederick Douglass on Donald Trump.
Comment removed (Score:5, Funny)
This seems pretty simple to me. (Score:4)
the vote does not need to be online. Hell dialup c (Score:3)
the vote does not need to be online. Hell dialup can work at the end of the day and no ISP needed.
Re: (Score:2)
Rick Santorum disagrees, in 2012 he learned he won the Iowa caucus three weeks later.
The changes made in 2020 were demanded by Bernie after the embarrassing way the Iowa Democrats handled the process in 2016.
Americans ... (Score:2)
You are *physically* unable to think beyone dichotomies, aren't you?
Like, the programming doesn't allow for anything but static one-dimensional hard black and white "You're with us or you're literally Hitler" choices.
Re: (Score:2)
The republicans are just as evil, but when they think "vote fraud", they think getting some tommyguns, a ford T and stopping the wagon with the votes from reaching the destination.
Some may even have more diabolical plans, like planting TNT sticks to the train bridge.
Re: (Score:2)
There is a political part somewhere on earth that is honest and transparent? ... where? ... Oh, I know !! I know!! is it the Republican party?
Hardly, but you trying to call attention to another party to derail the conversation does nothing. I don't like to buy into conspiracy theories that don't have a little more evidence, but what would typically be dismissible as baseless nonsense instead looks far more plausible based on past DNC actions in 2016.
Do I necessarily believe all of the accusations levied at the DNC. Of course not, but I'd by lying if I told you that I felt I could casually dismiss them out of hand. But I'm not invested in any p
Re: (Score:2)
If "they" were so in control of vote counting as to stop it for 6 hours, why didn't "they" just change the vote? Use your head.
(I'm not usually one for whataboutism but it does need to be pointed out while people are complaining about the DNC, the RNC is just plain canceling primaries in some states. If you're solidly "R" but don't like Trump, too bad, I guess.)
Re: (Score:2)
This was not voting software, it was little more than a GUI front-end to a shared google sheet spreadsheet.
Re: We? DNC failure. RNC and others went smoothly. (Score:2)
Re: (Score:3)
Durrr? There were multiple R candidates in Iowa. Stupid.
Re: (Score:2)
These weren't voting machines, it was an app designed to take the place of a phone call in previous primaries.