1.The 2020 protesters did not begin vandalizing property, but government infiltrated the protests by burning cars and maiming people.
2. The Obidient movement encompassed multiple sub movements of which a part of the #EndSARS was one of them. A vast majority of Peter Obi's supporters were not #EndSARS activists.
3. Elections in Nigeria are fraught with treacherous behavior so everyone suspects everything. It's important to be very careful with your communication. There is a lot of desperation in the land and so if in a position of information leverage, the responsible thing is to handle the privilege with care and transparency.
I downloaded all the .CSV files from that site and quickly loaded them into a table. It just took a couple minutes, but I didn't stop to verify that there were not duplicate rows across the various files.
When I added up the totals, I got:
APC - 7,225,399
LP - 5,286,181
PDP - 5,285,900
NNPP - 1,529,575
Note: I was using a beta version of a new database tool I created to do this.
should be something quick to whip up in a few minutes in pandas I'd think assuming the column headers are identical and in the same order. It would translate into a bunch of pandas concat call and with the merged table a value_counts for the column where the vote is retained.
I have no doubt that a pandas expert (or a postgres expert, or a mysql expert, or..) can whip up something fairly quickly to load in the data and find the totals.
My tool is designed for people who are not experts but just have a basic understanding of relational tables (e.g. someone comfortable with a spreadsheet) to be able to load a data set like this and analyze it with just a few clicks of a mouse. Using it, I was able to do the whole thing in about 2 minutes.
BTW: When my numbers did not match up with another HN commenter on this thread, I investigated and found a bug in my code. Once fixed the numbers were correct. (I guess that's why it is still in beta!)
It doesn't look like (from TFA or the collected spreadsheets) there's enough information collected (2nd choices) at the polls to support an instant runoff. So they'd need to go back to the polls for a traditional runoff if that were the case.
Yeah looks weird. When I scrolled to a random part, the numbers seemed to line up. They didn’t say things were entirely correct though. Perhaps the data quality is sufficient for a challenge. Odd that the first rows seem more wrong though.
So the bug where the first voting sheet shown to a user was from the same 10% of the photos turned out to be a feature, serving as a CAPTCHA of sorts to weed out the bad actors from the good.
If memory serves, some CAPTCHA techniques include showing two numbers to transcribe, where one’s value is already known. If that number is transcribed incorrectly, then the other number’s result isn’t used, and the CAPTCHA fails. Perhaps a similar technique may have also helped here?
It seems to me that when combating bots or hackers, the wrong approach is to provide immediate negative feedback. Giving an immediate error code lets them know that their current strategy is not working and to try something different.
It seems like a better approach would be to make them think you were accepting the results, when in fact they were going to the bit bucket. Hackers trying to get into your corporate database should be presented with a table full of false (but plausible) data rather than an error. Let them waste time trying to use all those fake SS numbers or account numbers before they figure out they got duped.
As scary as it can be, but yes. It's similar to strategy games at a point - sometimes it's better to let the enemy push you around for a bit as long as nothing important is damaged. I don't really care if I have to scale up the LBs a bit to handle all of the requests for some time. However, this allows your attacker to commit more of their resources, so you can block and ban more once you react or so you can learn more about their behavior, so you can mislead, slow-lorry and generally mess with them more effectively.
There have also been funny defcon-talks about messing with attackers about this, by returning all kinds of messed up return codes, slow-lorry'ing the bot, ... I'm kind of wondering if you could SSRF (or rather, CSRF) a bot like this by returning a redirect to e.g. the AWS metadata API... could be a fun topic to mess with.
It's also evidence of a crime. I wonder how that relates: if you just drop those entries from the database (or from the app prior to entry into the main db) then that seems like destruction of evidence of a crime?
It seems one should record all entries, but only update a canonical db if all entries fail to trip automated tampering detections.
I think the bug was that your first sheet came from a small set and the people entering bad data would refresh instead of doing the actually random next sheet, so entries for most of the sheets came only from people who had long sessions who were apparently more likely to enter good data.
> The original iteration of the service was a mass collaboration platform designed for the digitization of books, particularly those that were too illegible to be scanned by computers. The verification prompts utilized pairs of words from scanned pages, with one known word used as a control for verification, and the second used to crowdsource the reading of an uncertain word.
Oh, and Mark didn't mention that Bola Ahmed Tinubu was indicted for heroin charges in the US in 2003, forfeited $460k & is just too old to run a democracy this size.
Atiku Abubakar (second candidate) was a former VP and the president he served under (Obasanjo) still insists the dude remains a monument to corruption.
There's been a coordinated campaign at all levels to rig this election massively and we saw voter intimidation, manipulation in broad daylight, and the acquiescence of foreign governments to it all.
To explain the $460k he forfeited to the feds for his heroin trafficking indictment [0][1], Tinubu claims to have worked at Deloitte as a consultant & made $850k in pre-tax bonuses a year. Problem is, Deloitte claims he's never worked for them [2] and a director at Deloitte earns $340k, according to Glassdoor [3].
> a director at Deloitte earns $340k, according to Glassdoor
This in no way undermines your post, broadly. But narrowly, these are sales roles. Two people with the same title at Deloitte can make vastly different incomes depending on their production.
Tinubu claimed to be making $850k in annual pre-tax bonuses working for Deloitte. Today, Directors at Deloitte make 340k total comp annually, according to Glassdoor, and that's before you factor in inflation. What type of joke is this?
churchill I am not attacking you, I am just drawing your attention to bring solid evidence.
the link you provided, I couldn't find where the article states that Tinibu is accused of Drug trafficking or Shettima Terrorism.
Considering the needlessly passive aggressive tone, I would assume you are a supporter. Maybe it can be more useful conversation if you write your perspective on the matter instead of demanding easy to find articles about the Bola Ahmed Tinubu Heroin Trafficking Indictment?
Bola Ahmed Tinubu was born 29 March 1952. He is 70.
Joe Biden was Born November 20, 1942. He is 80.
There are plenty of world leaders that are old and I completely agree with you. Why aren’t there upper age limits?
The UK House of Lords, US Congress and US Supreme Court have this problem too.
Until recently, old age was supposed to be a Good Thing in leaders, because experience would (or rather should) provide perspective to go beyond hysterical everyday squabbles and actually produce Laws that could survive in the long run. It would also mean such leaders had gone through challenging jobs, and demonstrated themselves worthy of higher office.
From the article, it seems like the rush was to collect enough evidence to file a challenge within the legal timeframe. With a challenge filed, it seems like there is a bit more time to verify claims + other evidence. (I know nothing of the system of government there, but) -- it seems like the prudent thing to do would be for the courts to mandate a neutral verification of each of those paper sheets. (ie, 10 trusted representatives from each party re-key the figures manually).
If you want, you have exactly the same issue to solve with Kenya last year.
The pictures of all of the voting sites are available, but the country went to chaos to pick a winner. It is crazy , because on the lower level (in voting offices), the vote process was respected and the numbers are trustworthy, but the higher you go and the more corruption happens, as each aggregation of data removes trust to the system.
This would have been a good use for hn style shadow banning. Especially if they didn't publish the current tally, then the original easy to detect bots may have never realized you were on to them
I still don't understand how we ended up with PDF as sort of standard to archive data. PDF is already pretty bad for things like manuals but for things like spreadsheets we basically collect the data, then we destroy all the structure by putting it in into POF, and later on we painstakingly try to restore the data from PDF which is often almost impossible to do with accuracy.
I've thought about this and come round to think that the flaws of PDF are actually essential to the success of the document format.
- Non-responsive (compared to HTML). Allows PDFs to serve as a common standard between other document formats with different resizing logic, like Latex and Word.
- Difficultly of network access from code running inside document. Allows PDFs to generally operate offline. Nobody's brave enough to try to write a single page application in a PDF
- Destroying data structure. Allows forward compatibility with anything that can be displayed statically on a screen. New applications can have different ideas about how tables, text or charts should work but if there's static visual output then it'll convert to PDF. Awareness of say, the structure of tables is precisely what makes it so difficult for say google sheets and excel to stay compatible with each other's new table features. If somebody develops a new language with new characters not even in Unicode it'll still work on a PDF
It's also worth noting that most PDF limitations have the characteristic of making things hard but not absolutely impossible. These escape hatches prevent people with hard requirements from actually moving to a new format.
If it were truly impossible to get invoice data from PDFs people might've shifted to a different format for business transactions. But if it's merely difficult some company will come up with an API that works as a good enough extraction solution whose cost is justified by the other compatibility benefits of PDFs, so the ecosystem stays with PDFs.
>Difficultly of network access from code running inside document. Allows PDFs to generally operate offline. Nobody's brave enough to try to write a single page application in a PDF.
You can absolutely do so. Most times however, the desire is to embed the latest cut of info into the PDF, then hand it off to somebody who will not have network access.
t. Been there, done that. Had the end product thrown out because of Adobe's licensing terms. I also met one of the people responsible for the tooling I had to suffer through. I have their address, but they apologized, and explained the internal politics at the time; so I've chilled on the whole crushing their genitalia with a large wrench bit.
Long story short: doable, but
Do Not Follow.
This is not a place of honor.
No great deed was once commemorated here
That which remains is repulsive to us, in our time, as it will be in yours.
Seriously. If I could fill this post with spikes and sick faces, I would.
Not sure if I linked to the right article, but it was basically compiled scripts/code that was embedded into PDF's that could run arbitrary code.
""Apache Flex, formerly Adobe Flex, is a software development kit (SDK) for the development and deployment of cross-platform rich web applications based on the Adobe Flash platform.""
For this particular case, the use of PDFs seems irrelevant. Photos were just taken of each polling unit’s results. These photos happened to then be embedded into PDFs for distribution, but the core underlying data is just an image embedded into that PDF. No important data was destroyed when these photos were placed into PDFs.
> how we ended up with PDF as sort of standard to archive data.
I don’t think we really did. They are a standard for archiving typeset page-based documents.
Of course, paper documents used to be standard for archiving data, and some continue to do so in the form of PDF.
In principle, it is possible to integrate all the structure you want in a PDF (using Marked Content, Structure Attributes and User Properties), but for data (as opposed to document structure) you’d need custom software to generate and interpret that.
Because PDF shows you a page on screen that will look the same if you print it out, and print layouts have been optimized for reading convenience over centuries. And if you give someone with no technical expertise a pdf file, it's virtually certain that they're going to be able to open it because some kind of viewer is built into most operating systems.
You're totally right about PDF being a massive pain in the butt for any other purpose, but unless you have an alternative that handles the basic use case at least as well and other use cases way better, PDF is here to stay.
There's also a CLI if that is more to your liking. If that doesn't do it, there's always the brute-force option of scripting in your language of choice to pull the data out.
these are just photos embedded in a PDF, which actually isn't that bad an idea, because it lets you scan multiple pages and join them together as a 'document'
(not sure if the documents in OP had several pages, but if you've scanned/photographed a multi-page document, PDF is not that bad of a solution)
A better option would be to use the TIFF format. You can use it as a container format to store lossless and lossy image formats, and handles multiple images in a single container.
It was the standard for scanners until PDF seemed to dominate the scene.
> It was the standard for scanners until PDF seemed to dominate the scene.
Probably because it's much easier (for average users with few tools and skills) to print a PDF than to print any sort of non-page-based (e.g., image) file format and have the resulting sheet of paper match the scanned sheet of paper in terms of scale, orientation, position -- assuming both sheets are the same dimensions. Essentially using the file as an intermediary for physical copying of standard paper documents.
I can buy the printing argument. The problem with PDF is that this print-optimized is used more and more for purposes where it will never get printed. For example most manuals will never get printed but they are published in PDF format which is a PITA to use on a phone and hard to search.
I'm a teacher in the first year of the university. During the remote classes in the pandemic, we made almost mandatory to upload the photos of the take homes and questions using camscaner [1].
The student just download the app, and it fix the orientation, rotation, bad light, contrast, and many other horrible things that a jpg may have. In particular the orientation and ordering multiple sheets. Also, Moodle has a little more support for pdf than jpg [2].
I don't know how many three letter agencies are reading the stream, but I'm happy that many three letter agencies operative now have a better formation in algebra and calculus.
Back in the day there were at least two programs competing for the role that PDF fills today that I remember: diskpaper and PDF. Apple also had one for its developer docs, but it was never released commercially, I believe.
PDF provided more fidelity for printing, had better tooling (it was by Adobe after all), it was cross-platform, could be displayed on the desktop, so it won. The reader was cross-platform so end-users didn't have to mess with installing plugins for various image types. And because everyone in the document creation division(1) used Postscript to print, printing to PDF was super-easy. And at some point everyone had a postscript printer driver on their machine, so printing to PDF because super-easy as well.
It's not an archiving tool, but people use it for archiving...just like the way a spreadsheet isn't a project management tool, but millions of people use it for project management.
At this point the network effects for the PDF file format would make it difficult to replace. With PDF you can practically guarantee(2) that the file will look the same on any device.
(1) This was more true back then than today, probably
(2) assuming that you embedded the fonts, and that the reader doesn't suck.
What's funny is I don't think Adobe really makes any money off of PDF; it's an accidental de-facto standard.
> PDF provided more fidelity for printing, had better tooling
This might have been true once, but using Acrobat now is so painful. Of all the apps that work, Apples Preview is my editor of choice and when I’m on Windows I really miss it.
Well before nobody actually dealt with PDFs directly; they exported it out of FrameMaker or whatever tool they used to compose stuff (ie: print-to-pdf).
Acrobat has always been a really bad PDF editor. I'm not sure why that is, exactly, since their other editing tools were basically industry standard for a long time. All the interactive stuff like fillable forms, etc are probably incredibly hard to build.
It depends. There are PDFs with rasterized images of text (like in the article, when it’s a scan or photo of a document), then there are PDFs with vector positioned text runs (when it’s usually a result of some digital process). The latter are way easier to process than the former.
This might be a sensitive question but I wonder if something like this would work in the United States? With all of the fears of election interference why not trust but verify?
Would you trust the recount? I mean, the only way to engage the number of people you need to do that kind of recount is by having them very pissed, so most likely feeling like their party was wronged and therefore the thing is partisan by essence. If you're on the winning party you wouldn't trust the numbers the others give you anyhow, so what's the point
Genuinely the US would do better if it had paper elections with a handcount with observers. The system works in the UK just fine. Unfortunately, there's a category of people in both the US and Nigeria who use "election interference" to mean "accurately counting the votes".
The distrust is not based on evidence. Actual election fraud is incredibly rare in the US, typically things like someone owning property in two states and voting the state ballot in one and federal in the other. Getting two ballots is legal but using both is jail time. Typical solo offender is a conservative white male.
This is some compelling writing. I know this has real life implications for real people so I hope it's not in poor taste to say it would make a good movie.
I'd tried something like this with the Kenyan election but our setup was to use OCR (google cloud) -> text -> parse -> sqlite
We started late so the results were out when we finished but I think it'll be a good idea to develop software that can parse the PDF results and display them faster than the electoral bodies can. In Kenya, and Nigeria, the delays cause a lot of anxiety
Silly, you don't malcount the actual votes, you brainwash the population and pervert the process until they vote the way you want them to, like in the advanced first world democracies.
That's not the worst case, if wise elite brainwashes (manufactures consent of) the population.
Worse is when the elite is not so wise (sometimes plainly crazy), or the elite loses control to crazy people, adversaries. Or self-induced mass hysteria of the population.
The direct "democracy" that very soon will inevitably be enabled by technology, poses great dangers in the situation where masses are so easily manupulateable, and their collective intelligence seems not raising above individual level, but degrading below it for some reason. Violent chaos, lynch courts, etc.
> By spot checking just a random 100 votes are correctly tallied
How do you do that? I think the only error you could detect is when the tally has fewer votes for a party than what’s in that sample. If so, a fraudster could report 100 votes for every party, and add the remaining to whatever party they want to win.
You have to design the election system with this in mind.
One such design would be for every vote to have a unique id. When announcing the results, you also publish a list of which vote ids were tallied for which candidate.
Then you have 100 random ids, and the checkers watch those votes all the way from the voter casting them to the final tally.
I've done stuff like this semi manually. Use pdftotext to get the text tables out of the pdf, eyeball it and massage with emacs keyboard macros, and in some cases python scripts. It's not that big a deal but it is somewhat ad hoc.
I know that OCR software is able to read stuff like magazine articles and figure out column layout, embedded charts, etc. It's weird if is nothing to do that with a pdf. Maybe I'll look around or see if I can hack up something.
Elupee 75,
To be frank, you did a great job and i am proud of someone from my country pulling this off, but the bitter truth is President Elect Bola Ahmed Tinibu won this election. Peter Obi's youth support is predominantly in the south, and Christian majority parts of the country, he clearly lack support in the Muslim north, where I am from.
I voted for Kwankwaso though.
I was naturally skeptical of the punchng article, so I crosschecked it against OP's CSV. The votes in the article do agree with OP's CSV (although the number of accredited voters differs slightly).
All that said, I don't think that the results for 276 voters in one polling unit in one ward in one local government area in one state is clear evidence that Obi lacks support. If anything, the fact that OP's CSV matches a (potentially biased) news article gives me more faith in OP's tallies and claims.
(Aside: it seems _easier_ to lose an election in your own polling unit, where variance plays a larger part, than it is to lose on a wider scale.)
>> We had a brainstorming meeting, and decided to try a new approach. We would simply ask the Obidients to help us do the conversion. If hundreds of Obidients did the transcription, it would go fast.
What would guarantee that the Obidients would not, in turn, try to inflate the score of the Labor candidate?
> I was left with the impression that it is the paper records in this story that led to the unravelling of an attempt to forge the results.
The manual tallying of paper records is what lead to the attempt to forge the results in the first place. If the results were electronically tallied to generate an official result, then they wouldn't need to recount the whole election to verify the result, just doing a statistically significant random sampling of the polls to recount would be enough.
> If the results were electronically tallied to generate an official result
Electronic voting doesn't make bad politicians less bad. In this instance, the bad guys were prepared to deliberately remove CCTV so when they sent their goons out at night to shoot protestors there would be no evidence.
"Electronic tallies" are never going to give a free and fair election if those in power are prepared to go that far. Safer to stick with paper ballots and election observers equipped with Mark I eyeballs.
By looking at the receipts printed by the ballot machines.
Ballot machines print either a final tally at the end of the day, or print every single vote and automatically drop it into a physical ballot, depending on the threat model of the country in question. Either way the you have partial or total recount.
> By looking at the receipts printed by the ballot machines.
Let's the clear, you're not really "recounting" the ballots at that point. If the machine is compromised - and we're discussing a situation in which we know CCTV was removed and people were then shot - you have no real idea if the receipt corresponds to the voter's original intent. Or, indeed, if all the receipts from all the voters make it as far as the recount (?)
> Ballot machines print either a final tally at the end of the day, or print every single vote and automatically drop it into a physical ballot, depending on the threat model of the country in question.
How is reprinting the final automated tally supposed to represent a "recount" of the original automated tally?
> Either way the you have partial or total recount.
You really don't. Bits of paper and Mark I eyeballs all the way.
As Tom Scott puts it, "The key point is not is that paper voting is perfect - it isn't - but attacks against it don't scale well"[0].
> How is reprinting the final automated tally supposed to represent a "recount" of the original automated tally?
If you want to detect tampering in the central totalling, then all you need is the end of day receipt of each ballot. Exactly like in OP's case.
If you want to detect tampering in a ballot, then you manually recount the individual printed paper votes inside that ballot. That is something that you should do to a random sample of ballots, plus ballots with unusual totals.
> As Tom Scott puts it, "The key point is not is that paper voting is perfect - it isn't - but attacks against it don't scale well"[0].
That is simply not true, large scale paper ballot tampering scales very well to the point of turning elections, and is much easier to pull off because it happens in the fringe where no one is looking (while tampering the electronic system would require pulling your heist in the IT room where everyone is looking).
> large scale paper ballot tampering scales very well to the point of turning elections, and is much easier to pull off because it happens in the fringe where no one is looking
In many countries, there are many tens of thousands of individual polling stations. A conspiracy to tamper with enough of them to make a difference isn't going to stay secret for very long because it would have to involve too many people. Tampering with paper ballots just doesn't scale, and in most places, election observers with their old-fashioned Mk I eyeballs are allowed to watch what's going on at every stage.
> (while tampering the electronic system would require pulling your heist in the IT room where everyone is looking)
How would we propose that an average human election observer is supposed to detect whether any particular system involved in electronic voting is - or isn't - in the process of "pulling a heist"?
On the contrary, eletronic voting doesn't create the paper trail necessary to dig up frauds like this. You can simply program or hack the system to report any vote total you want.
First of all, hacking the electronic system is much much harder than hacking the paper process. In the case at hand the paper tallying process was the one hacked.
And second, electronic systems can create a paper trail, just make the electronic machine spit out a paper receipt. Then you have the best of both worlds, you can have instant electronic totals, and then do some random sampling recounts of the receipts to validate the result.
Scaling an attack against paper is incredibly difficult, and requires coordination in a level that is almost sure to trigger the law enforcement much before it can change some national-level numbers.
Scaling an attack against a computer system is almost the same as doing an attack against a computer system. Few attacks don't scale.
But yeah, if you just print the vote and push it into an urn (while the voter can read it), you'll get the best of both worlds.
You introduce technology to increase transparency and fight corruption. You increase transparency by having video recordings of human counting votes linked to the electronic record of the totals.
When you introduce technology to eliminate manual counting and paper trails, then transparency is eliminated and you give a green light to fraud, corruption, very juicy contracts and death.
Striking reminder of how big the world is that while I had heard of #EndSARS, I hadn't realised the scale of the political violence in Nigeria nor that it had its own Bloody Sunday-scale massacre.
> it suggests that most people are easily swayed by their local peers.
That feels like a particularly uncharitable interpretation to me.
I think it's more along the lines of that parties and their policies have very different impacts on different regions. So it makes sense to vote on what is beneficial to your region, and a lot of people will agree on that.
So it's not about susceptibility to being "swayed", but genuine policy affecting regions differently.
It happens in the US too. Tribalism and ideological clustering are so similar, they are being used interchangeably these days. But in some traditional countries there are literal clans and tribes voting in blocks.
Yep, bloc voting can be habitual or strategic. There's a town in Northern California where the majority of the seats on the council is held by people who all happen to attend the same megachurch.
They're probably going to be similar to the 14k sample he tweeted: a solidified Labour Party getting 50-55% of the votes, and the establishment candidates splitting the rest.
Fantastic story. What an excellent example of democratization from technology. And also a perfect example of how the blade cuts both ways. Digital warriors battling it out in real time and the stakes are enormous. Great respect for Mark and his ingenuity and adaptive responses!!!!
> Is it true that USA does not have an open data law to make everybody publish in CSV?
American elections are de-centralised. Each state comes up with its methods. In some, each county. (I'm not sure how publishing a CSV of vote totals would help.)
Pdf is a very unfortunate format. It is proprietary, it is paper-oriented, its almost single goal is to keep precise printing layout. But for the last 30 years world didn't come up with anything that could compete.
1.The 2020 protesters did not begin vandalizing property, but government infiltrated the protests by burning cars and maiming people.
2. The Obidient movement encompassed multiple sub movements of which a part of the #EndSARS was one of them. A vast majority of Peter Obi's supporters were not #EndSARS activists.
3. Elections in Nigeria are fraught with treacherous behavior so everyone suspects everything. It's important to be very careful with your communication. There is a lot of desperation in the land and so if in a position of information leverage, the responsible thing is to handle the privilege with care and transparency.