Taking a Second Look at the Learn-To-Code Craze - <AUTHOR> https://theconversation.com/taking-a-second-look-at-the-learn-to-code-craze-86597 <comment><USER3> _The Obama administration 's "Computer Science For All" initiative and the Trump administration's new effort are both based on the idea that computer programming is not only a fun and exciting activity, but a necessary skill for the jobs of the future._

Why should I read beyond this? If this were truly the justification for the program, it would be patently ridiculous — as ridiculous as claiming that solving algebra problems was a necessary skill for the jobs of the 20th century — but I doubt anyone ever seriously described it that way. The Obama announcement is still on the web[1] (I assume Trump's initiative is only described in a semiliterate 3am tweet) and it describes tech _careers_ as fun, not programming, and it touts the value of "computational thinking skills" for many jobs, not programming. Teaching programming in schools is akin to teaching algebra or history. There's a spectrum of effects: some kids will develop the skill further and use it directly in their work, some will get a basic understanding that will enable them to work effectively with the first group, and the rest will get some exposure that will make them more effective people (for their own purposes and everyone else's) in a society where it's a powerful force shaping everything around us.

If the author can't make their point without basing it on this fundamental misrepresentation, I won't bother clicking through.

[1] [https://obamawhitehouse.archives.gov/blog/2016/01/30/compute...](https://obamawhitehouse.archives.gov/blog/2016/01/30/computer- science-all)

<comment><USER4> Well... if you read up to that point you would also have read "is the key to the future for both children and adults alike" \- and you've only addressed the kids bit. I think the silly craze has died down a bit in the UK, but a few years ago we were subjected to such excitement as the news highlighting activities like c level execs doing coding classes in their lunchbreaks - <USER2> o'clock news?! This may have been about the same time as the BBC microbit was produced - I've heard nothing of that recently either. Easiest way to confirm it was a silly craze is to watch peak daft hysteria disappear into the distance.

<comment><USER3> The idea of making some degree of programming universal in the school curriculum both predates and will outlast the craze you're talking about. I don't know about the Trump plan, but Obama proposed spending hundreds of millions of dollars changing the way hundreds of millions of elementary to high school aged kids are taught. If such a program is carried out, the effects and the costs will be felt over decades.

 _c level execs doing coding classes in their lunchbreaks_

This just doesn't sound weird to me at all. CTOs read about marketing and finance; pharma CFOs read about biochemistry. Execs spend an afternoon working in the call center or learning to operate a jackhammer to prove they're regular guys. It's what you get when you mix ambition, personal curiosity, image awareness, and having the authority to make stuff like that happen. In that context it's not as significant as the 10 o'clock news might make it sound.

</comment></comment></comment><comment><USER5> I'm very skeptical that we should be pushing masses of kids to learn to program, to the detriment of other subjects already being squeezed for classroom time. I love programming but I just don't see why everyone should be required to learn what is IMO a very fun but pretty niche skill.

However, I do think there are a lot of adjacent skills that can be learned through the practice of programming which all kids _should_ be taught (whether through learning to write code or repairing cars or through other pedagogic methods):

\- How to break down a complex process into a bunch of simpler steps

\- How to recognize abstract patterns and what variables might differ in various situations

\- How to use tangible evidence and your understanding of how a system works to 'debug' some phenomenon

\- How to "evaluate code in your head" \- think through the implications of how a change to a system might work

Programming is a specific skill useful in a bunch of situations, but not universally practical.

Critical thinking is a universally useful skill adaptable to a wide number of situations. A citizen body better versed in critical thinking would (I propose) make our society function better.

<comment><USER6> I started volunteering this year to teach students to code. We're halfway through the year, and this couldn't be more apparent. Without a true interest in learning to program, these students won't remember 10% of what they've been taught at this time next year. Problem solving, troubleshooting, (as you've listed) or basic IT/computer literacy skills (why isn't my device connected to the Internet?) would take students much further.

Don't get me wrong - a lot of people can get benefit from learning to write an automation script or small program of some sort to take care of an annoyance. Taking a programming course for one year in HS, and then forgetting about it for 3 years will put you marginally ahead of someone just starting. On that same token, I don't expect someone who took Cal II at university to derive/integrate a bunch of equations 3 years later.

Programming isn't a muscle memory skills like riding a bicycle. It takes practice.

<comment><USER7> I have three work colleagues who started teaching a "programming academy".

They selected 18 people out of 80 applications. The last time I checked with them, just like I predicted, they expected 4-5 to actually finish the course.

The selected people are not high school students pushed by their parents, most have a technical background and came knowing fully well that getting a programming job in the future will increase their salary dramatically.

</comment></comment></comment><comment><USER8> As a lifelong programmer that pursued programming even before I had a computer I am very biased here but... teaching people how to code at school is very empowering because the devices they carry around with them and the servers they interact with are not magical in anyway, yet they seem that way if you don't understand the basics of how computers work and what a program looks like.

For those who have not considered programming, being forced into it school may not be pleasant, but for many they may find it as delightful and fun as I do and we will bring more people into the programming community.

The article tries hard to make it a bad thing that big computer companies want to be able to hire qualified staff in the future, but clearly it is not. Any country without programs that nurture young programmers and encourage them to pursue it as a career will be behind the rest of the world in software, which is not a place you want to be.

<comment><USER9> One reason I support "learn to code" initiative is that k-12 schools started introducing computers in the 80s when your Apple][, C64, BBC Micro, etc uses a BASIC interpreter as the core software operating system, learning to use a computer and learning to code were one and the same. It's extremely important for young people to understand that despite the shiny user experiences of modern devices, phones and computers today don't operate fundamentally differently than a 1980s IBM PC, or a 1960s IBM mainframe. This will help them prepare for when technology inevitably changes as they get older.

</comment></comment><comment><USER10> I benefited from the Apple IIe program in schools back in the early 80s. (Mentioned in the full article.) Still programming today, and have no idea what I'd be doing now if not for that pivotal situation. It gave me the idea, the motivation and the confidence to pursue an engineering degree. Before that, I had no idea what I wanted to do after high school.

<comment><USER11> In the early 90s, we were still using some variety of Apple II. I was too young for programming, at the time. It was basically 45 minutes of Oregon Trail or Math Blasters per week.

I found the QBASIC interpreter on the family computer around 1994 and begged a 70s-era BASIC book of code listings. I didn't get far without instruction, but when I had a chance at programming classes in my sophomore year of high school, I jumped on it.

I knew that I wanted to do something with computers when I was 8 or 10 years old. The programming classes certainly helped to start demystifying computers for me, and gave me a boost of confidence, though.

</comment></comment><comment><USER12> Another long term goal is making the software job market more competetive so they can bring down expensive salaries.

<comment><USER13> you know during medieval times and the victorian age there were guilds and they constrained the number of new apprentices yearly in order to bolster their own salaries (and egos). if my salary goes down by 50% but twice as many people get access to a middle class lifestyle then so be it.

<comment><USER14> > you know during medieval times and the victorian age there were guilds and > they constrained the number of new apprentices yearly in order to bolster > their own salaries

You mean like doctors in 2017?

<comment><USER9> Except having an unqualified cooper in the middle ages meant wine might leak out of its cask. An unqualified doctor today means people will die.

<comment><USER15> You are assuming that every doctor not accepted into the very small Residency Class each year is unqulified. You'd be surprised to see how tiny most residency classes are in the US. Also, they are usually closed to foreign medical graduates, even the absolutely highest scorers with immaculate credentials.

The more obvious explanation is that the supply is very tightly controlled by the specialty boards (essentially cartels) to ensure low supply and consistently high pay [for themselves] and higher bills for the rest of the population.

</comment></comment></comment></comment></comment><comment><USER16> I'm really grateful for the "Learn to Code Craze," as I never would have gotten into programming were it not for the media campaigns daring me to do it. It's taken a lot longer than 3 months as the boot-camps would lead people to believe, but it's definitely been worth it.

</comment><comment><USER17> > the fact remains that only half of college students who majored in science, > technology, engineering or math-related subjects get jobs in their field > after graduation

Whoops! This is a huge piece missing from the conversation. I'm in EdTech and I had no idea. Can we get a source?

<comment><USER18> [https://www.census.gov/newsroom/press- releases/2014/cb14-130...](https://www.census.gov/newsroom/press- releases/2014/cb14-130.html)

Note that some of the assumptions are a bit comical, like an economics major who works in finance or a biology major who becomes a physician are considered STEM majors who work in non-STEM fields.

Still, the overall picture isn't great even if you look past those weird classifications.

<comment><USER19> To go on a bit of a tangent, one of the things that gives me pause about my otherwise enthusiastic support of capitalism is the horrible waste of talent.

How many mathematicians and physicists are going into finance to produce marginal improvements in liquidity, instead of contributing to the advancement of human knowledge?

How many brilliant software engineers are working on mindless CRUD and API- piping tasks at Google, Microsoft, Amazon, et al.?

How many great doctors go into high-paying, no-research, largely menial positions instead of working on medical breakthroughs?

Capitalism probably does a better job at allocating talent than any other economic system we know of, but the results are still depressing.

<comment><USER18> How much talent is wasted coming up with medical breakthroughs that are _not used to save lives_ because doctors who are interested enough in knowing the medical start of the art, because all of those who have an interest go into medical research, leaving people to die?

</comment></comment></comment></comment><comment><USER20> Another way to frame this, which might invalidate/color some of the linked article's points, is to consider "coding literacy" within the context of how the world is moving, and how coding and programming-related concepts are becoming more commonplace and necessary in non-technical careers, and, indeed, in our everyday lives.

In the world these kids will grow up into, having this skillset will be as obvious as having the ability to write one's own documents (as opposed to creating documents via dictation and secretaries/typists), or create one's own presentations. And when being able to program (& I'm using that word loosely; i.e., not everyone is going to be a Haskell dev, but everyone _should_ be able to build "software") is as commonplace and widespread as those previously- technical skills, all kinds of new and amazing use cases will emerge (consider all the things people do with spreadsheets--not everyone is creating financial models...far from it--and the people using spreadsheets to make shopping lists, or organize a Little League roster, or track social media post engagement, are not "Excel Engineers").

</comment><comment><USER21> None of this is surprising. Corporations, like people, tend to think of themselves in the noblest of terms, even when they are clearly pushing their own agenda. And in this instance, they are pushing all the right buttons - "Children", "Education", and "Jobs". Who can resist?

But having said that, who _should_ resist? What is the actual downside of this push? Programming is exposing children to math and science, it improves problem-solving skills and allows kids to create something on their own. Not all of them will use these skills as adults or get any additional education in the area, and that's totally fine.

</comment><comment><USER22> > _the fact remains that only half of college students who majored in science, > technology, engineering or math-related subjects get jobs in their field > after graduation._

Most of (~70%?) my colleagues from engineering university indeed went to banks or management consulting firms. The thing is that none of them can or ever wanted to code. I see no sense in using this fact to argue that there is no skills gap.

More broadly, I am part of this "code craze" and decided to learn to code. I think it is a great thing and I advise all my friends with children to include some basic programming skills in their education. I am not even in the US. I am not directly affected by this huge corps influence (I think). I used freeCodeCamp.org to learn. And actually, the transition to becoming a software developer made me move from Windows to Linux in both my professional and personal computers.

I have no doubt that companies are using this trend as an opportunity to grow. But companies do that with Christmas, seasons of the year, wind, sunlight, demographic transition...

Personally, I have two certainties: learning basic coding skills is a good thing for students and companies are pursuing their own interests. One thing doesn't exclude the other.

<comment><USER23> > I advise all my friends with children to include some basic programming > skills in their education.

The nice thing about programming is that it's one of the fields where "edutainment" isn't an eye-rolling euphemism, since a bunch of the problem- solving can be restated into flexible puzzles.

For example, Infinifactory isn't an explicit coding-game, but a lot of the same problem-solving (and debugging) skills are in-play.

</comment></comment><comment><USER24> I help out teaching kids programming at a code club in my local library. I don't do it because I want ever larger numbers of kids to code, but because I believe in equality of opportunity (the library is free to all), and it's fun and enlivening to engage with children.

Some of the kids are focused and enjoy learning, others really want to play games. Some are just bored (stashed there by parents grateful to be able to browse books in peace), or are just accompanying more engaged siblings).

It's perfectly obvious that, like every other activity, engagement in programming comes from a kernel of indigenous interest (wherever this originates).

What's even more obvious is the cruelty and blind unreality of trying to mash people into a mould dictated by a so-called 'economy'.

</comment><comment><USER25> [http://theconversation.com/taking-a-second-look-at-the- learn...](http://theconversation.com/taking-a-second-look-at-the-learn-to- code-craze-86597)

The ACM link is an abstract which links to this link.

<comment><USER26> Thanks! Chnanged from [https://cacm.acm.org/news/223361-taking-a-second-look- at-the...](https://cacm.acm.org/news/223361-taking-a-second-look-at-the-learn- to-code-craze/fulltext).</comment></comment>


How botnets are created with hijacked Worpess, fake Flash downloads and Node.js - <AUTHOR> http://betamode.de/2015/11/23/what-happens-if-your-wordpress-is-hacked/ <comment><USER2> I have a Wordpress plugin with ~100k active installs. Recently I've started getting emails from people wanting to buy the plugin from me. I'm assuming they want it for a botnet or other nefarious purposes. I'm not sure if Wordpress have stepped up their monitoring of plugins or not, but in past there was little oversight of the plugins and adding a direct backdoor to those 100k servers would be trivial, not to mention the millions of people that could be reached via JavaScript injection.

<comment><USER3> Over the summer I tried taking over a few abandoned Wordpress plugins, some of which had a similar number of installs. Before they would even try to get in touch with the authors they wanted to see my updated code and made sure it was up to current Wordpress standards. Once you have access to the plugin repo you are free to push whatever you want though without review...

<comment><USER4> "Without review" is not quite true. Some of us get an email for every commit. Not kidding. Helps a lot for the scanning of things.

<comment><USER3> I meant more that code can be pushed to the repository without it being reviewed first, not that nobody is looking at it. If someone does push something bad are there systems in place to blacklist a plugin and remotely remove it from an install (and possibly contact the install owners)?

<comment><USER4> > are there systems in place to blacklist a plugin and remotely remove it from > an install (and possibly contact the install owners)

We have automated scanning systems for suspicious code commits. If they occur, me and a few others get an email for manual review of the problem. Additionally, many others get every commit and set up their own scanning tools to see what's happening, as it happens.

When something-bad™ happens, then we can close a plugin (block it from being downloaded or found in searches), revert changes or otherwise manually adjust any aspect of the plugin, and if necessary, push updates for it to any WordPress installs that have it.

Realistically, bad actors are not generally a problem for the plugins system. I can count on one hand the number of times this has occurred to the point where we'd need to actually push code. The real problem we're fighting is accidental security issues. While WordPress core is quite secure, plugins have much less eyes on the problem, and a lot of plugin developers are relatively new coders. Things like simple SQL injections still pop up from time to time in plugins, and that's a big problem.

So, the security issues with with plugins repository is not really about some malicious person out there. Malicious people tend to be dumb spammers. They're easy to spot and protect against, because they're only after the low hanging fruit. What we mostly try to find are the things that good coding practices would protect against, because not everybody uses good coding practices. Those tend to be harder to scan for on an automatic basis.

<comment><USER3> Thanks for the explanation, keep up the good work!

</comment></comment></comment></comment></comment></comment><comment><USER5> This is the whole reason Sucuri [1] exists and blew up in popularity shortly after it launched. If you are running Wordpress, I'd definitely recommend Sucuri.

If you don't have a paid plan, at least run the free scan once a month or more to make sure you weren't hit by anything. I don't mind Wordpress as a CMS, but it is a __constant __target. Constant. And nothing looks worse than having "Cheap Canadian Viagra" at the bottom of your corporate website.

[1] [https://sucuri.net/](https://sucuri.net/)

<comment><USER6> I had a client who had a security plugin installed and they were getting constant alert notifications about hack attempts. Thousands of login retries, even though there was brute-force protection. The attempts would come from a whole botnet of IP addresses to disguise that they were part of one attack.

On top of the security plugin, I added an .htaccess rule to only allow access to the admin login and the entire wp-admin subfolder from within their office. They have a static IP and were OK with only having access from within the office so this worked well for them. This pretty much ended all of the attacks. I probably wouldn't rely on this as the only protection, but it definitely has been a great piece of their overall security plan. The code to do that is here:

[https://gist.github.com/jasonhinkle/966aee379b170f365e6f](https://gist.github.com/jasonhinkle/966aee379b170f365e6f)

<comment><USER7> I'm curious, what security tools did you have in place that were failing to stop the attacks?

<comment><USER6> Ironically I can't login to their site from my current IP to see what security plugin they are using!

It was stopping the attacks - it was just that the attacker would try 10 password attempts, then get blocked by the plugin and trigger the alert message. Then the attacker would switch IPs and try 10 more. One morning they had gotten a ton of messages and I found about 250k login attempts in the security logs. So the plugin was doing it's job, but it's better now that the attacks don't even make it that far. In fact you can't even hit a page within the wp-admin folder which is nice in case some type of zero-day exploit surfaces on a file within that area.

<comment><USER8> Sounds like WordFence. Email notifications are configurable. Turning off most of them is advisable. I've had trouble with users with nominally static IP addresses changing with sufficient frequency to be too much of an annoyance to stay with IP whitelist. Limiting the failed login attempts and maxing out the lockout period cuts down on a lot of the bot activity.

</comment></comment></comment></comment></comment><comment><USER9> tl;dr _Someone hacks WordPress websites and includes strange .js files that a) lead to fake Flash downloads that install a botnet on your PC and b) abuse your browser to get URLs from a Google search._

<comment><USER10> ( _Like tracking CSS pseudo-classes or CSSi_.)

</comment></comment><comment><USER11> I wonder if the point of the botnet is to get SERPs from Google? They stopped letting you know quite a bit of information about keyowrds, rankings, etc. a while ago.

Seems like there is lots of potential for blackhat SEO with this type of botnet.

<comment><USER12> It's fairly easy to get serp just by spinning up some ec2 instances. You can make a good number of requests just by providing proper headers. That is, assuming the last guys using that ip didn't just do the same and get rate limited. All this to say this seems to be a lot of trouble just for SERP results.

<comment><USER11> I was also thinking that if competitors showed up in the results you could then use the botnet to then link bomb them?

I agree that it does seem like quite a bit of effort for an undetermined purpose though...

</comment></comment></comment><comment><USER13> The domain hosting one of the files seemed too legit to me, so I checked and it's an actual website of a Brazilian company,[http://cjccontabil.com.br/](http://cjccontabil.com.br/), seems whoever built the website got a WP (free I assume)theme from somewhere which happened to include this malicious file(/wp-content/themes/Hermes/main1.js). I guess folks are downloading free stuff and hosting them at their websites without inspecting the content of all files, so if you think you're safe by just making sure your system is injection-proof, think again, are you using some theme or plugin downloaded from somewhere on the web and if so have you checked every single file included?

<comment><USER14> The theme directory is a common target for code injection, as it is often set with writeable webserver-user permissions, in order to allow the admin to use the backend theme editor.

Almost all of the compromised accounts I've dealt with over the years were the result of outdated WordPress or plugin installs, where an exploit was used to upload a file to one of the commonly known writeable directories: plugins, uploads, or themes.

Most of those cases could have been prevented if the owner would have kept their installs up to date, which makes these issues so frustrating to deal with.

</comment></comment><comment><USER15> Wow, this one infected at least 1.000+ sites according to Meanpath¹.

[1] [http://meanpath.com/f/j5LK9K](http://meanpath.com/f/j5LK9K)

<comment><AUTHOR> Ouch.

</comment></comment><comment><USER16> How botnets are created with hijacked Worpess, fake Flash downloads, Node.js and Microsoft Windows ..

</comment><comment><USER17> This is why you disable flash and run NoScript.

<comment><USER18> No. It is offering an executable pretending to be a flash player installer. Nothing to do with actually running flash.

<comment><USER17> I realise that. It is just generally good advice to disable flash.

<comment><USER19> Well, to be fair, you did say "[what the article talks about]. . . is why you disable flash," not "it's generally good advice to disable flash."

<comment><USER17> I concede, I could have phrased that better.</comment></comment></comment></comment></comment>


Kickstarter of Doom: Hoax Site Funds Torture Bus, Death Drones - <AUTHOR> http://www.wired.com/dangerroom/2012/05/kickstarter-of-doom/

<comment><USER2> Inspired by China's mobile execution buses?

[http://www.usatoday.com/news/world/2006-06-14-death- van_x.ht...](http://www.usatoday.com/news/world/2006-06-14-death-van_x.htm)

</comment><comment><USER3> Someone should do a Kickstarter clone site around the "Rule 34" meme.

<comment><USER4> That's technically art. Why would we need a kickstarter clone for it? :)

</comment></comment><comment><USER5> This was a semi-humorous hoax, but Kickstarter has shown a whole generation that crowdsourcing can make serious money for both the requester (the person seeking funds) and for the facilitator (e.g. Kickstarter).

It's only a matter of time until the BlackHat crowd catches on to this and real fraud begins.

If that happens then, almost as certainly, legislation will follow which will cripple the crowdfunding economy, or will drive it underground.

To potential Kickstarters: Get it while you can. The party won't last forever.

<comment><USER6> _> The party won't last forever._

On the contrary, the party will get even bigger, It's a business model for creators that demonstrably _works_ , and I think crowd-funding in general will only get more widespread in the future.

That isn't to say that the content industries won't try to attack it on grounds of the very fear-mongering arguments you just presented, but as with their fight against piracy, it's ultimately futile, and they will eventually adapt - or die.

<comment><USER7> What zupreme was suggesting (and that I agree with) is that legislation will, eventually, change the process. Maybe a little, maybe a lot. But wait until someone raises a fake Kickstarter for the victims of sexual abuse, or some other political hot-topic. Maybe someone will get funded to do something wildly dangerous and will get killed. Legislation will be crafted, badly, and people will be limited by it.

Just like most other things, I suppose.

<comment><USER5> Thanks Untog. You got the gist of what I was saying correct. I'm not referring to what will happen today, or even this year. But the reality is that governments do not have a good track record of allowing large sums of money to change hands without wanting to exercise control over the process.

It is only a matter of time until a well-publicized fraud is capitalized by one or more politicians to introduce legislation limiting or outright banning such transactions.

Just wait. In a year, or five, when it happens I'll do a blog post linking back to this discussion as a reminder...

<comment><USER6> It's not that I didn't get what you are saying, it's that I disagree with you that the outcome is set in stone.

It's a given that governments, backed by eternally backwards industries, will try to attack innovative new technologies or business models like Kickstarter that could threaten those industries. And they will use ridiculous edge cases or contrived, hypothetical threats to argue against them, and maybe achieve temporary victories in the form of stupid laws.

And as I said, it will be futile. Innovation, in the end, will win. Progress will eradicate those opposed to it, and reward the ones who embrace it. Just like free sharing of information, art and culture will eventually be accepted as one of the greatest technological advancements in human history, and we'll deeply regret the decades wasted fighting against it.</comment></comment></comment></comment></comment>


Show HN: Coisas, an open-source client-side CMS for static site generators - <AUTHOR> https://github.com/fiatjaf/coisas <comment><USER2> > t is similar to Netlify CMS and Prose, the difference is that, unlike the > first, it doesn't try to be a multipurpose CMS, it lets you edit files, > create text files, upload files, browse your files, but doesn't try to look > like a fancy CMS with custom schema and objects and all that mess;

Err, "all that mess" are the additional features that actually make it a worthwhile upgrade from GitHub's in built file management. I'm using a CMS because I'd like to interact with raw files as little as possible.

<comment><AUTHOR> I didn't mean that Netlify CMS is horrible, just that this one is more low level and has less magic, serving a different purpose.

</comment></comment><comment><USER3> It's interesting to me that, before I learned about databases (circa 2004), I built 3 distinct software products based on flat files (no database). They were all written in PHP (the only backend language I knew at the time). This was before the days of GitHub, so I don't have links to the software anymore, but I may still have the (horrendous) source code. The products were: a forum (!) system called "DatForum"; a chat app called "Chategory"[1] (this one still apparently exists on SourceForge); and a flat-file backed bookmark manager that synchronized with del.icio.us called "LinkDex." I did also build a blog/CMS based on flat files, which I used personally, but it was hardly productized (practically server-side includes). Obviously, using flat file databases is very different from static site generation, but since all of these were written using flat file databases, it would have been easy to optimize their (often poor) performance by statically regenerating the site periodically, instead of reading the flat file database at render time.

[1] [http://chategory.sourceforge.net/](http://chategory.sourceforge.net/)

</comment><comment><USER4> This looks great, I think it solves an existing need and could be extended beyond editing files on GitHub, to be a more general-purpose tool.

One suggestion: a demo where a potential user can try editing files without needing to authenticate with a GitHub account. I actually haven't seen the editing interface yet - I'll clone the repo locally since I'm curious, but it would be a better on-boarding process if I could try it first.

<comment><AUTHOR> Here's a demo: [https://coisas.alhur.es/#!/geraldoquagliato/geraldoquagliato...](https://coisas.alhur.es/#!/geraldoquagliato/geraldoquagliato.github.io/)

The access token will work out of the box (it is hardcoded), and the site is a Jekyll which will automatically be rendered by GitHub and shown at [https://geraldoquagliato.github.io/](https://geraldoquagliato.github.io/)

</comment></comment><comment><AUTHOR> This is a weekend hack, not a fully finished and polished project. I'm sorry about the errors if you encountered some. The idea is that things will improve in the near future. Criticism and suggestions are welcome.

</comment><comment><USER5> Anyone else unable to actually get it to do anything? Running it from their URL: [https://coisas.alhur.es/](https://coisas.alhur.es/)

<comment><USER6> You need to enter a Github repo url and click go, then you can start editing.

The grey 'fiatjaf/coisas'e is just a placeholder.

</comment></comment><comment><USER7> Didnt work on firefox. Works on chrome.

<comment><AUTHOR> Sorry about that. Didn't test it on Firefox yet. I'll do.

</comment></comment><comment><USER8> Is the license MIT?

It looked like but I was not sure (it might also just be that I read it too early in the morning.)

<comment><USER9> Yes, the desktop version of github highlights common licenses: [https://github.com/fiatjaf/coisas/blob/master/LICENSE](https://github.com/fiatjaf/coisas/blob/master/LICENSE)

</comment></comment><comment><USER10> I'm using Lektor[0] as a static site CMS for a non-technical user. It's not super advanced nor shiny, but it does the job.

[0] [https://github.com/lektor/lektor](https://github.com/lektor/lektor)

<comment><AUTHOR> The problem with Lektor is that you need a server running this Python app.

</comment></comment><comment><USER11> Hello fiatjaf, are there some example sites that we can take a quick look to see how they end up?

Thanks

</comment><comment><USER12> Crap like this,

Headless CMS Auth by fiatjaf wants to access your xxxxxx account Personal user data: Full access Repositories: Public and private

...makes me think Trojan Horse.

<comment><AUTHOR> You didn't read a single line of the README, right? It is written there that you may AND SHOULD use your own authentication methods, and that's quite easy to implement.

Now if you were going to freak out because you don't want to authorize access to your account I just can't imagine why you clicked at "authorize with GitHub".</comment></comment>


Election Commission of India throws "open challenge" to hack voting machines - <AUTHOR> http://www.thehindu.com/news/national/ec-issues-open-challenge-to-hack-evms/article17954709.ece?homepage=true <comment><USER5> Shameless plug: the city of San Francisco is trying to build an Open Source Voting System (officially!). Even the paper ballot scanners/tabulators in the US are running proprietary, hackable software.

If you live in the Bay Area and are interested in securing elections, now is a great time to get involved. There's a public meeting next week (sfgov.org/electionscommission).

I'm also happy to get coffee and catch anyone up on where the effort stands – email in profile.

EDIT: I should have clarified that the new system will remain a 100% paper ballot system. The software involved is to organize, print, tabulate, and tally ballots. There's a strong community that opposes inherently risky approaches involving things like digital storage and the internet (again, reach out if you're interested in joining!).

<comment><USER6> Having open source voting systems is a great thing, but electronic voting is inherehently flawed and is a terrible idea. There's no way to prove the checksum of your software is real unless you have root access to the voting machine and are assuming the OS is not compromised.

Decentralized electronic machines that print paper ballots for you (which you can physically verify), and submitting to a tabulator seem to be the safest option. But your paper ballot can be compromised in transit by a worker. I have also heard talks about using a blockchain-esque system for voting and verifying it online with a hash code.

Here's a great video by Tom Scott: [https://youtube.com/watch?v=w3_0x6oaDmI](https://youtube.com/watch?v=w3_0x6oaDmI)

<comment><USER7> The problem with that video is that it assumes that that the internet is involved at some stage. In India, that isn't the case.

EVMs are not internet enabled, neither are they "programmed" by sticking a USB in them. They come in huge sealed boxes to the centres, and are carried back the same away. The data never leaves these machines. If my knowledge is correct, the data can only be accessed by a high ranking election official called the RO.

Paper ballots were the norm in India for over 40 years before EVMs were introduced. Election fraud has been non-existent since then.

<comment><USER8> >Election fraud has been non-existent since then.

Can you provide a source for this please?

<comment><USER7> I think it's disingenuous to ask for the proof of non-existence of something so obvious that if it existed, it would have caused a huge uproar.

There has been no proof of election fraud in Indian elections since EVMs were introduced, apart from the usual whining of the leaders who expectedly lost.

<comment><USER8> Well, there _is_ currently a huge uproar in India about exactly this so I'm not sure if it's all that disingenuous.

Moreover, even a cursory search of electoral frauds in India throws up a huge gamut of complaints, ranging from 'ghost voters' to missing ballot boxes (and EVMs). Parking aside an another unsubstantiated claim that leaders who lost are just 'whining', I will still contest the claim that 'there have been no electoral frauds' since EVMs were introduced, as your original comment implied.

</comment></comment></comment></comment></comment></comment><comment><USER9> I'm surprised at the number of people here who think this is a bad idea. To quote Bruce Schneier,

"Security is a process. For software, that process is iterative. It involves defenders trying to build a secure system, attackers -- criminals, hackers, and researchers -- defeating the security, and defenders improving their system. This is how all mass-market software improves its security .... Smart security engineers open their systems to public scrutiny, because that's how they improve. The truly awful engineers will not only hide their bad designs behind secrecy, but try to belittle any negative security results."

A couple of things to note here,

\- This is not the first time. It was done before in 2009.

\- It is in a physical location, and will be monitored by people.

\- There are various "stages" involved, and I'm guessing anyone who's invited will be vetted.

So we have a monitored, time bound, physical access to device hack-day, open to people to try and break a system to learn it's possible flaws - <USER2> anything, the system is only going to get better not worse.

The likelihood of someone finding a vulnerability and not disclosing it is much more troublesome when they were the only people doing this. If the system is opened up to a large number of people, it is more likely that the vulnerability in question __will__ be found and fixed.

</comment><comment><USER10> Imagine if you took a vote with paper ballots, and then went to every one of the tens (if not hundreds) of thousands of people who had a hand in creating a voting machine (think of the millions of lines of code in the OS and drivers, and the billions of transistors) and left the unsealed box of votes with each of them, alone, for several hours. That box would travel to people in many foreign countries, some working for intelligence agencies. Would you trust the votes after that?

It's possible to hide exploits in so many places - consider the obfuscated C contests, or the trojans that have been found in SSDs, or that hack a while ago where someone compromised a RNG by undetectably tweaked the dopant levels on a chip.

It takes very little to swing an election if you're strategic, sometimes less than 1% of the vote, and having the head of a state owe you a favour (not to mention the blackmail material), is well worth compromising one or more of the people involved in the production of the machine.

To make a demonstrably exploit-free voting machine, you'd have to design and manufacture every chip yourself and write every line of software (including the OS) yourself. Not only that, but everyone involved would have to be trusted to not be bribed, and to not make any mistakes that could lead to an external exploit. That's completely unrealistic, so countries are essentially saying "it's OK if there's a possibility for someone to take control of our country through fraud, because even though we know for sure that it's possible, we don't think it will happen to us".

Elections are too important to let the fools and charlatans who say things like "unhackable" to have influence over anyone with the the power to make decisions about electronic voting machines. _Everything_ is hackable, given the resources and the motivations. Gaining control of an entire country is sufficient to have both.

<comment><USER11> This. You are basing the bedrock of your democracy/country on an illusion.

I have had countless discussions with my colleagues and not one of them understands the gravity of closed EVM machines instead believe in security by obscurity. It makes me sad that if the very people who work in technology are like ostriches with their heads buried in sand, how can you expect the lay person to understand the argument for implementing a verifiable system. Its an anathema.

Anyone who argues for this is either a case of sour grapes or anti- government/anti-democracy.

Also can anyone please clarify how one one can go about taking part in this process, wasn't clear to me from the article.

<comment><USER12> It's a fluff piece.

The govt will invite some unknown or well paid experts, and get a clean bill of security. Simple.

</comment></comment></comment><comment><USER13> This is _not_ a technical issue. This is pure ly a political issue. Allow me to explain why I say so.

This purported "open challenge" is an response to the current political drama staged by the opposition parties crying foul over lost elections.

In UP, the current ruling party sweeped with a thumping majority. (325/403)

But, the same Congress and AAP that were defeated to nil in UP, got significant and in fact leading number of seats in Punjab - 77/117 and went on to form the government. AAP got to form the Govt in Delhi in the last elections.

In Manipur and Goa - Congress got 28 and 17 respectively and was the single largest party. It is another story that they were not able to muster enough strength to form the government. [1]

So, basically, they cry foul in UP accusing the machines were rigged. But, they happily accept the same machines' verdict in Punjab and form the govt and conveniently ignore the fact that in two other states the same machines gave them the single largest party status.

What election commission is trying to do is to prove their parity across parties, which you can see from the above results. Election Commission is an independent body in India and cannot be influenced or rigged towards one or other party of which the opposition is accusing them of unfairly.

Having said that, yes, any system is hackable may be, people can try. But, hey, at least EC is open about it and cannot be accused of favouring any one entity. It can be thought of as a hackathon and if someone finds a bug, they will fix it.

[1] [http://www.india.com/assembly- election-2017/](http://www.india.com/assembly-election-2017/)

<comment><USER14> Minor correction: AAP had no candidates in UP, so they did not lose there. They got 20/117 in Punjab and a NIL in Goa.

Political parties crying after losing elections is nothing new in India. BJP cried after the 2009 Lok Sabha results. See this speech in the matter by Subramanian Swamy (a senior BJP leader): [https://www.youtube.com/watch?v=AXpPRbQx1WI](https://www.youtube.com/watch?v=AXpPRbQx1WI)

<comment><USER13> Agree on AAP. I was meaning to write they did not cry when they won in Delhi.

For Subramanyan Swamy, if I remember correctly, he did not stop at crying foul. he went to Supreme court and got the VVPAT installed. It is another matter if VVPAT makes it foolproof though, but definitely helps.

I am not supporting this party or that party - all I am saying is that - 1. EC cannot be blamed for partiality as it is made out by the opposition parties and media 2. This is more of a politically driven issue than a majorly technical exercise.

</comment></comment></comment><comment><USER15> Better than in Argentina where a guy reported to the company that built the voting machines about some SSL certificates being leaked and they raided his home and then sued him.

In a national law to introduce voting machines nation-wide the law sets up to five years IRLC if someone does an unauthorized audit. Luckily the law was repealed last year but the current government is still pushing voting machines province by province.

[http://www.argentinaindependent.com/currentaffairs/analysis/...](http://www.argentinaindependent.com/currentaffairs/analysis/the- debate-over-electronic-voting-in-argentina/)

[https://gist.github.com/sebadoom/f0eedcba2f39e3e07a1c](https://gist.github.com/sebadoom/f0eedcba2f39e3e07a1c)

</comment><comment><USER16> Booth Capturing and Ballot Stuffing were violent practices esp. in 80s and 90s in some places during Election. People actually died for every election cycle either perpetrating or protesting these kind of things.

Given the logistics, introduction of EVMs have reduced these kind of election day events, even though Election day violence is more clashes between supporters, the polling booths are much safer now than couple of decades ago.

<comment><USER17> I would argue that the methods of electoral fraud have changed. Now a days its more of "may I have your voter id card, why do you want to go out and vote, who knows what may happen, may be you will get a broken leg, may be your child will get one. Let me help you, I will cast the vote for you. You dont even need to show up....you know the broken leg and all...why take the risk"

<comment><USER18> Because it has changed. The EC actually works. If you knew anything about elections even 3 decades ago, the fact that India has managed to give most people an election which works, is fucking amazing. It's a fact woefully lost on the generations born after a certain point.

I won't say voting machines are the magic to it all, but it did help a country with labor and service delivery issues to manage it better.

EVMs were always hackable, but the critical man power and tech orientation in political parties to take advantage of this hasn't been there.

This may only recently have changed. Even then I doubt it, there's other ways to win elections.

<comment><USER17> > The EC actually works

Sorry that's absolute bull. Apart from an exception or two ECs have been sycophantic puppets, ever ready to grovel. It seems you weren't born yesterday, neither was I, so you would know this.

Even if EC intends to do good, he/she cant do much until there is a formal complaint raised by the district magistrate (many are simply bought out). So even if the opposition cries itself hoarse, EC does zilch.

I am not making any claims about the EVMs, just that the electoral process is no where close to as clean many of its proponents claim it to be. Tech alone cannot solve this problem. What we have here is the analogue of rubber hose decryption.

<comment><USER9> > Sorry that's absolute bull. Apart from an exception or two ECs have been > sycophantic puppets, ever ready to grovel.

I strongly disagree with your assessment. The mechanics of what happens when polling starts as I remember it,

\- The EC assumes complete control over all civil services, including transferring people in response to independent assessment and complaints.

\- Courts in India can't interfere with the EC. The government is disallowed interference as well. The constitution guarantees this and has been upheld by judgments in the past years.

\- The chief EC commissioner can only be removed by impeachment in Parliament. The other two election commissioners can only be done so by the CEC's recommendation.

\- Senior officials from different states are election observers in other states - and they are liable to be suspended even if phone calls are recorded between them and a political appointee.

\- All paramilitary and police forces come under the command of the EC. As a result, they are free of machinations from the home ministry which is usually responsible for their control.

\- Candidates make multiple reports during the campaign process and the EC does strict accounting for all this. It bans liquor sales and drafts banks to report any overt cash transactions.

I don't know where you're getting your information from, when you were born, why you think the EC is sycophantic, or how that would even help - but the EC's role in the Indian elections is more like a safe maker trying to hoodwink the safe cracker - it will never be perfect, but given its many constitutionally guaranteed rights, it is agile enough to try and stay a few steps ahead of the curve. It is this very flexibility via which the ECI can even think about opening something like this up to a challenge.

<comment><USER17> > I don't know where you're getting your information from,

Using eyes and ears and just being aware of my surroundings.

Trivial counterpoint. Pickup a state, say West Bengal. Count the number of egregious incidents of violence and intimidation reported by competing political parties and the media, including live videos. What action has the EC taken and what has that changed.

> \- The EC assumes complete control over all civil services, including > transferring people in response to independent assessment and complaints.

... and then does what ? You are being completely naïve in the open bedfellows relationship with IAS and politicians. There are exceptions, but rare.

<comment><USER9> > Using eyes and ears and just being aware of my surroundings.

Hmm, not quite the best sources of information then. Have you talked to anyone on the ground? Have you been an election observer or volunteered in any? Have you read the independent reviews of the EC? Talked in any detail to senior officers in any branch of the executive who may offer perspective?

> Trivial counterpoint. Pickup a state, say West Bengal. Count the number of > egregious incidents of violence and intimidation reported by competing > political parties and the media, including live videos. What action has the > EC taken and what has that changed.

Hardly trivial. This is a law and order situation, and is dealt with appropriately.

> ... and then does what ? You are being completely naïve in the open > bedfellows relationship with IAS and politicians. There are exceptions, but > rare.

Naïveté is an easy thing to call upon in cases when information isn't easily accessible. Your statement, to me, makes it appear that not only could you have wrong or incomplete information shaped by public media - you're not willing to even consider that this may be the case!

<comment><USER17> > Hmm, not quite the best sources of information then.

Well, when I am standing in a queue to vote, I trust my eyes and ears more than what some report says about things that happened while I was standing there.

> This is a law and order situation, and is dealt with appropriately.

All that law and order violations were a means to an end and the end is tampering with the mandate and that is exactly where the EC has to step in. If all they can do is pass the buck and let the tampered mandate be counted as real, well it is not serving its one and only purpose. I am being charitable here in assuming goodfaith on EC's behalf.

> Have you talked to anyone on the ground?

yes many

> Have you been an election observer or volunteered in any?

volunteered yes, but not formally as an election observer and not as a part of any political outfit.

> Have you read the independent reviews of the EC? Talked in any detail to > senior officers in any branch of the executive who may offer perspective?

some of it runs in the family so I do have some insiders perspective plus volunteerism does give me opportunities to interact with IAS officers in the field.

And public media especially TV is crap, newspapers are somewhat better. There are one or two decent ones that I treat with some respect, rest are tabloid'ish garbage. But to the larger point, no, my opinions have very little to do with what goes on the popular media.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER19> Their past tactic used to be to arrest researchers who pointed out flaws in the machines. I'm not sure anything much has changed.

<comment><USER20> Reference of this: [http://archive.indianexpress.com/news/researcher-arrested- ca...](http://archive.indianexpress.com/news/researcher-arrested-cant-name- official-who-gave-him-evm-police/663654/0) and [https://www.wired.com/2010/08/researcher-arrested-in- india/](https://www.wired.com/2010/08/researcher-arrested-in-india/)

<comment><USER21> Both articles state that the researchers were arrested for stealing (or taking possession of) a voting machine. Quote from the Wired article: "Halderman says the researchers believe the person who gave them the voting machine had legal access to it and provided it in the interest of transparency and scientific study."

That's a little different than being arrested for finding bugs in the software or hardware. Prima-facie, it does seem like stealing government property without proper written authorization. Arrest still seems excessive, but the circumstances seem to be a bit more nuanced.

</comment></comment></comment><comment><USER22> Looks more like a media stunt by the Election commission to save its face. If they are real serious then they should pay security researchers to find a bug in the EVMs, Like bug bounties with real money prizes. As a computer programmer I find it hard to believe that EVMs cannot be hacked.

<comment><USER23> Even better political parties which are claiming about machines fallacy should show some better evidence than 'Only because of machines we lost' bullshit.

<comment><USER24> The burden of proof (or at least of showing good evidence) rests on those deciding to deploy the equipment. If the best response they can offer is to assert "that did not happen", the system is not ready for deployment.

</comment></comment></comment><comment><USER25> Ignorant question, do these kinds of challenges open up risk to someone being able to test the system, find vulnerabilities and then not disclose them so that they can be exploited when the election actually comes around?

<comment><USER12> Yes and no.

The chances of only one person finding them reduces drastically, so even if someone wants to hide a flaw another might expose it...

If only to keep their credibility.

</comment></comment><comment><USER26> And how do we know the machines no-one was able to (publicly) hack are the same ones, running the same code, that are then used in the elections? That no on-chip memories were re-flashed, that no secret hardware bug/backdoor was used? No matter how open source/open hardware/open audit you go, in the voting booth they're still black boxes that could have been tampered with.

<comment><USER27> I'm not saying these machines are unhackable, but with the addition of additional constraints they are _almost_ perfectly secure.

For ex., On election day, mock voting and counting is done in the presence of all party representatives - the results are then erased before the actual counting. And representatives of all parties are mostly around when these machines are moved around and counted. Also, the way party symbols are listed is not pre-determined etc. and hence cannot be predicted by someone wanting to add votes to a particular party.

Source - my mom has been a presiding officer during elections a couple of times, and I've looked at the training manuals..

<comment><USER28> Mock voting can only detect malfunctions, not backdoors. Randomization of candidate ordering is a trivial challenge to overcome for a backdoored EVM. Don't fall for EC's PR.

Here is an example: Is NOTA ("None of the above") option's location also randomized? If not, a backdoor would listen for this sequence: NOTA, NOTA, NOTA, X, NOTA, NOTA, NOTA, X. And then it would start re-assigning votes in favor of X with say 60% probability. It doesn't matter where X is located. The backdoor might trigger only after a few 100's or 1000's votes have been given. How will mock voting or randomization help here?

The sad thing is that all these weaknesses have already been detailed in Hari Prasad's original paper. But EC continues to dish out the same flawed defense: [https://indiaevm.org/evm_tr2010-jul29.pdf](https://indiaevm.org/evm_tr2010-jul29.pdf)

</comment></comment></comment><comment><USER29> Such a challenge could be a huge disaster for the EC of India

Can a single EVM be hacked? when its not connected to internet - <USER3> sophisticated tech (and engineers) - Yes. Its digital electronics after all

Can that be done consistently across machines under different ambient environments? - Higher than 50% accuracy, but not 100%.

Can it be done at scale? No - that would be too costly even for the political parties with a higher probability of it becoming a widely known technique

But the answer to the first question is enough for the opposition political parties to force India into paper ballot voting. And paper ballot in India is easily hackable for political parties - just spend money, hire bullies and prevention is ensured not to work at this scale.

</comment><comment><USER30> Can anybody share a complete set of images (from every angle) of electronic voting machine used in India. How many ports does it have (USB?, UART (RS232)?, any other?). Its working details, etc?

</comment><comment><USER31> Consider what happens if an attack is detected _after_ an election:

As HN readers know, even if you know your systems have been penetrated it can be very difficult to detect the extent of the damage: Which records have been changed? Deleted? Added? And what authority decides? We can expect that every party will produce experts who make claims in their parties' interests.

Probably, we wouldn't know the accurate election results. What then? Rerun the election?

* Is there a legal provision for that? What authority gets to decide that the democratic will of the people, the ultimate authority, is invalid and should be tested again? That is a very dangerous path to go down.

* If the results change, you can imagine the response from the new losers and their supporters.

* Who is to say the second election is valid? If the same machines are used, will the public trust them? Is there time to create a new national election infrastructure?

Reporting a possible attack to the public could destabilize democracy and have no real resolution. As has been reported, intelligence agencies such as the Russian FSB may be more interested in destabilizing things than in a particular result. They could even purposely leave evidence of an attack, without carrying through with it (and of course hiding the true perpetrators).

Based on that reasoning, it is absolutely essential that we prevent attacks. My very strong opinion is that a purely paper election is the only solution.

</comment><comment><USER32> "The Commission had announced a similar challenge in 2009 and it claimed no one could hack its EVMs."

No one can hack them, or nobody has had long enough with just "a week or 10 days". Hardware and software reverse engineering can take significantly longer, depending on the complexity of the machine. It's likely they will also be limited in what they are allowed to use. If they are so confident, open source the designs and let researchers take a look.

Another reason for why their claim may be false, is the value of somebody freely giving their hack away. Sure, a moments national glory as you get a targeted painted on you for publicly embarrassing your government - or - <USER4> of bit coin on the black market to the highest bidder.

Ideas:

* Simply place a piece of pink paper over the top to change the details, so the buttons no longer correlate to their correct vote. Enough people in enough provinces would make a serious difference. At the end of the day, have somebody take the paper back off before the poll closes so that the evidence of tampering is gone.

* Large electro magnet to device, making all votes erased. Using statistical data from previous elections, as well as popularity polls from previous elections, predict which machines will be worth taking out to sway the vote. These devices are electronic, therefore likely to use some form of memory that is electromagnetically erasable or corruptible.

* Hack the device that retrieves the data from the machines.

* Social engineering, through bribery or blackmail.

<comment><USER23> It is not some powerless hackers/individuals who claimed machines are hackable. These claims are made by powerful political parties with resources, government in various states and large cadre etc.

So your points are not applicable in this case. Hacking machines should be much easily provable than random generic political charges like 'govt/politicians are corrupt' or officialdom is lazy etc.

</comment></comment><comment><USER33> The value of keeping a paper trail has got lost in mutual political accusations. Appearance of correctness is important just like being correct.

<comment><USER34> In some of the U.S. states they do keep paper ballots, but when they did an audit and saw some significant discrepancies, they threw their hands up in the air and said that it's probably nothing nefarious - just machines being glitchy and all.

So paper ballots are nice, but it's certainly not enough. You need a system put in place so that when there's an audit and the numbers don't match, a revote is automatic, and the commission can't just excuse the issue away with "glitches." Or at the very least, you recount all the paper ballots and go with _those_ results.

But this process needs to be _guaranteed_ under the law somehow. You can't leave it up to the those in charge of the elections, who may happen to benefit from a result, to decide whether there should be a recount or revote. And the punishments should be drastic otherwise (we are talking about maintaining the integrity of the democracy after all - slaps on the wrist shouldn't happen punishments need to be handed).

<comment><USER35> There was an election recount that found a significant difference between the paper count and machine count? I'd like to read more. Do you have a link?

</comment></comment></comment><comment><USER36> Every country that uses voting computers should do this. Instead, the usual attitude is one of security by obscurity and limited access.

</comment><comment><USER37> Brazil had some events like this but all of them were façades. They are designed to validate the decision to deploy electronic voting machines and nothing else so only a carefully selected group of people will be invited, there will an impossible time limit and machines should be handled like black boxes (they were not considering some group stealing a voting machine in order to study it).

At one particular event[1] an engineer detected RF noise leaking from the keyboard (Van Eck Phreaking) but the government dismissed it as not being a practical attack. In a country where politicians literally buy votes in poor regions, vote secrecy is a big concern.

[1] [http://pcworld.com.br/noticias/2009/11/23/perito-quebra- sigi...](http://pcworld.com.br/noticias/2009/11/23/perito-quebra-sigilo-em- urna-eletronica-do-brasil/) (in Portuguese, sorry)

</comment><comment><USER38> > The Commission had announced a similar challenge in 2009 and it claimed no > one could hack its EVMs.

That's a bold claim. Makes me wonder about the validity of their tests and how they evaluate results.

<comment><USER39> I couldn't find a single news article referring to any such challenge that happened in 2009.

</comment></comment><comment><USER40> The problem with voting machines is so much deeper than 'hacking the machine'. It's a matter of trust of the code and perhaps more importantly, all of the people and process that are involved in the software, hardware, and running the actual election.

Is the source open, and has it been audited? Has the tool chain been audited (eg: the attack described in Reflections on Trusting Trust [1])? Are they using reproducible builds[2]?

This includes not just the software loaded on the machine itself, but the tallying software used to count all the results.

Even if you can verify the code contains nothing like a "defeat device" [3] (eg: detect it's actually election day and only then enable vote-stealing mode), how do you know what's actually being used?

How does a voter verify that the build running on the machine is actually valid and the expected one? Even if the voter has to trust the people running the election, how do _those_ people verify it? If all the polling stations load software onto the machines on election day (to ensure it's the right software), that opens up the possibility of someone injecting their own bad software. If they have to rely on a central organization loading the machines, there's a whole delegation of trust happening and being concentrated in one place -- easier to verify, in some ways, but also easier to compromise.

So the only way to run a valid contest is to provide access to the entire process. Can I modify the software used to tabulate? Can I act like I working at the company providing the software/hardware and have access to the code, build process and signing keys?

If that's possible, and you can still detect cheating, then that's great, but I also fear it's an arms race with no end, and it's just a matter of one- upping the other side.

[1] [https://www.ece.cmu.edu/~ganger/712.fall02/papers/p761-thomp...](https://www.ece.cmu.edu/~ganger/712.fall02/papers/p761-thompson.pdf)

[2] [https://reproducible-builds.org/](https://reproducible-builds.org/)

[3] [https://en.wikipedia.org/wiki/Defeat_device](https://en.wikipedia.org/wiki/Defeat_device)

</comment><comment><USER41> If you believe in democracy and have the skill set to do the deed, please give this a go. I believe this is a non internet connected device. For the recent state elections, voting happened months before the results were announced. Even exit polls were deemed a criminal activity. The machines were sitting with "officials" in a "lockdown" for months till they were counted. You have to prove that you could somehow alter the count when you have the machine for 1-2 months while also having any cryptographic keys necessary in your procession. One current chief minister(The elected leader in state) and 3 former chief ministers suspect the elections were rigged in Uttar Pradesh, a state with 220 million population with 20% Muslim population and the election installed a right wing Islamophobic leader who could be the leader when another Gujarat style riot happens(2000 Muslims and 800 Hindus got killed while our current prime minister was the chief minister there. He was cleared of all wrong doing by supreme court as no proof existed of direct collusion. Some call this a genocide.)

<comment><USER41> For starters, the newly minted Uttar Pradesh government installed a Anti Romeo squad to prevent what's called "Love Jihad", roving gangs of young muslim men trying to get Hindu girls to marry in a sinister plot to increase the Muslim population. As per Indian constitution, you can have 4 legal wives if you are Muslim and divorce anyone with three utterances of the word "talaq". Uttar Pradesh government also has an anti beef squad to prevent killing of holy cows. Recently 4 men transporting cattle in a vehicle were apprehended and assaulted. One of them died because of the heavy beating he received. These "squads" are employed by state in a quasi legal manner. There's also talks of reviving a demand to build a Hindu temple on Babri Masjid, a 14'th century mosque that was demolished in 90s by the current constituents of government causing nation wide riots. The mosque was demolished as vengeance for an alleged demolition of an early Hindu temple on the same area during the time of the first Muslim emperor in India in 14th century.

<comment><USER16> Babur is not first Muslim ruler, first battle of panipat was 1527 (or near that year), he fought against Delhi Sultanate, which is already Muslim.

Babur was king of Fergana Valley, and half-turkic and half-mongol, who lost his kingdom because of logistic blunder and was invited to India by a Prince and thus started his campaign in South Asia.

He did destroy a Temple (which already survived about 5 centuries of Islamic rulers) and built the mosque, the mosque was not being used since 1949 or so, and Hindus were praying on the grounds since mid-80s.

<comment><USER42> He was certainly the first Muslim ruler to be termed an 'emperor' by historians, so I'm not sure what you're arguing.

<comment><USER16> If you want to say, Babur was first Muslim Emperor of India, bring the argument with references. Tuglak had bigger Empire than Babur, and he was well into Deccan and even moved the capital there. This was 200 years before Babur.

[https://en.wikipedia.org/wiki/Muhammad_bin_Tughluq](https://en.wikipedia.org/wiki/Muhammad_bin_Tughluq)

I am not arguing here, I am correcting mis-representations made in his comment.

</comment></comment></comment></comment></comment><comment><USER43> This won't take long.

Obligatory Computerphile/Tom Scott video on why voting machines are an awful idea; if you haven't seen it, it's a great watch: [https://youtu.be/w3_0x6oaDmI](https://youtu.be/w3_0x6oaDmI)

<comment><USER44> In all honesty, I like the implementation Estonia is doing.

In effect, your identity card allows you to vote as many times as you wish. You cannot see your vote, but the newest vote overwrites the previous vote.

This means, that if you are coerced to vote a certain way, you can simply make another vote and wipe out the previous one.

The only downside is this would require a national ID program, which many religious extremists are very much against.

<comment><USER45> Many not-religious-extremists are against it too. Given the abysmal security record of the federal government, putting all the things in one database instead of having it distributed among 50 just makes it a bigger target.

That, and knowing the federal government, such a system would cost a ton, be an overwrought mess of spaghetti code created by some Enterprise Software(c) firm, barely work, and most importantly, be rolled out primarily to benefit the government, rather than the citizens paying for it.

No thanks.

<comment><USER46> Having a smartcard and having a single database are two completely orthogonal issues. In my country, we have the former without the latter - in fact, we still have different IDs for different services¹. The smartcard serves as a single authentication device, much like you can have a single SSH key for many servers.

¹ Using a single ID for each person is forbidden by our constitution, in the article regarding the usage of IT.

<comment><USER45> Fair enough, but that still doesn't obviate the cost and competence concerns. Knowing the state of fed IT, it would probably wind up being a 5-year-old RSA dongle variant that uses RC4 or some such.

</comment></comment></comment></comment></comment><comment><USER47> Why can't people figure out a way to simply vote through their mobile phone? Either through messaging or a custom app.

</comment><comment><USER23> For those who are unaware in some recent state level elections in India some political parties were roundly defeated. So as part of introspection about campaign and policies they decided to blame it on voting machines.

I am not sure that voting machines are unhackable but when today's losing parties were winning in past years they seemed pretty sure that win was all due to overwhelming public support and not some rigged machines.

</comment><comment><USER48> "Typing frantically" Im in.</comment>


Homeland Security details new tools for extracting device data at US borders - <AUTHOR> https://www.cnet.com/news/homeland-security-details-new-tools-for-extracting-device-data-at-us-borders/ <comment><USER2> Attaching an unknown cell phone to your equipment sounds like plugging in a usb drive you found.

I wonder how secure the equipment is against someone who would have a mobile device that would attack back via software or hardware?

Perhaps it might simply provide carefully crafted data that could cause some problems?

<comment><USER3> Careful, that's a federal felony, committed under the watchful eyes of a federal agent.

I know that when federal Probation Officers are monitoring the computer activities of probationers, they hand the USB stick to the person and have them plug it into their computer. That way if something malicious happens, its the felon who gets charged.

</comment></comment><comment><USER4> Seems like we should be more concerned about this than Tik Tok.</comment>


Why the Official Explanation of MH370's Demise Doesn't Hold Up - <AUTHOR> http://www.theatlantic.com/technology/archive/2014/05/mh370/361826/

<comment><USER2> > Until officials provide more information, the claim that Flight 370 went > south rests not on the weight of mathematics but on faith in authority.

Public claims and statements do not matter much in these sorts of investigations. All that matters is the quality of the work inside the investigation.

The public does not have access to most of the data, including crucial radar traces from a variety of militaries, which could exclude a northern route for MH370.

There's a lot of math in this article but no new data, just a lot of guesses. It is fundamentally just a cry for greater transparency.</comment>


How Whisper app tracks 'anonymous' users - <AUTHOR> http://www.theguardian.com/world/2014/oct/16/-sp-revealed-whisper-app-tracking-users

<comment><USER2> What amazes me is that all of this information came voluntarily _from Whisper_.

> _The Guardian visited the Whisper offices to consider the possibility of > undertaking other journalistic projects with the company and sent two > reporters last month to look in detail at how the app operates. At no stage > during the visit were the journalists told they could not report on the > information shared with them._

What kind of a company invites journalists from a newspaper known for its investigative/muckraking skills, and then hands over their secret sauce along with such gems:

> _Separately, Whisper has been following a user claiming to be a sex-obsessed > lobbyist in Washington DC. The company's tracking tools allow staff to > monitor which areas of the capital the lobbyist visits. "He's a guy that > we'll track for the rest of his life and he'll have no idea we'll be > watching him," the same Whisper executive said._

> _The Guardian is no longer pursuing a relationship with Whisper._

Well, no shit Sherlock!

<comment><USER3> > What kind of a company invites journalists from a newspaper known for its > investigative/muckraking skills

I can only guess, but I'd be willing to bet it's because of a mistaken idea that "we're on the same side", therefore any reporting by Guarding would almost certainly end up positive.

> and then hands over their secret sauce along with such gems:

... but yeah, I've got nothing, other than what were they thinking? I mean, _I_ like the idea of keeping tabs on bad people, but then I'm not the one running a website that claims I won't track people.

<comment><USER4> In this situation it was in Whisper's interest to sell their ability to locate users as precisely as possible, they were obviously too keen to do so. Journalists value Whisper's user's content because they can be sure that it comes from a military base, for example, if their location tracking tools are precise.

</comment></comment></comment><comment><USER5> I'm the CTO of Whisper. This is really bad reporting. A few notes:

1\. we use a legacy maxmind geoip database so we can put the whisper in a general location. that is so inaccurate as to be laughable. for instance, my current IP using our service says "USA", though I'm in Venice, CA. This is hardly a privacy violation, and it's really important for a bunch of reasons:

a) The whisper needs to actually appear in the app, and it won't appear without some general location. The % of all Whispers which are tagged as somewhere in the middle of Kansas because we don't really know where they are (but we know they are in the US) is very high. This is not a scandal.

b) We want to know where a user is in a general sense for things like tracking timezone so when we send pushes we know not to send pushes at 3 in the morning. you'd be surprised how often device timezone may not always match with physical location.

c) We use general location to determine things users may be interested in. folks who post in lower manhattan may see different results than people in College Station, TX, over time.

d) We have a lot of anti-spam technology, and what IP you posted from, and what country that IP is in, is important. I can't elaborate on this but it's incredibly logical why we would use that information for things like keeping the app from filling with spammy garbage.

e) We throw away the IP you used to create the whisper after a brief period of time.

2\. We've been working with researchers at a local university to ensure the anonymity around location was such that they couldn't determine groups of whispers from the same user. They contributed to our randomization algorithms and provided suggestions around security.

3\. We fuzz location even more than this on write and on reads. We randomize it based on the observer who asks for the location, and we randomize it BEFORE WE SAVE IT TO OUR DATABASE. In other words, we don't actually know where the user was once the whisper is saved, and we can't even tell later.

4\. The guardian's reporting that we changed our terms of service in response to the article is beyond silly. I am happy to show a screenshot of the email chain between myself and our lawyers back in July. The entire point of updating the TOS was to make it clearer and easier to read, not to protect ourselves or give ourselves more rights to user data. It takes MONTHS to get things like TOS write for an app like Whisper, and we take it seriously.

5\. Edited to add... We just don't have any personally identifiable information. Not name, email, phone number, etc. I can't tell you who a user is without them posting their actual personal information, and in that case, it would be a violation of our terms of service.

<comment><USER6> Based on your own comments here, it sounds like the reporting is entirely accurate. You're attempting to justify why you're tracking your users, but you're still tracking them.

You've highlighted many of the hard problems in this space: how do you achieve anonymity and unlinkability while doing things like IP hiding, spam filtering, and relevance matching? The issue is that you haven't solved the problems, and are instead suggesting you should get a pass because the problems are hard. It seems simple to me: if you haven't designed something that gives you truly unlinkable anonymity, don't claim to provide it. If you have to track your users to make your app work, don't claim not to track your users.

There are projects like Tor that are approaching these types of problems seriously, but apps like Whisper or Secret end up poisoning the well and confusing users. There's a huge difference between "can't" track and "won't" track. Right now you're claiming "can't," but it sounds like you're squarely in the "won't" category of having your servers "avert their eyes." I think this understandably makes people uneasy, particularly given the data mining direction it sounds like the company is headed.

<comment><USER7> Moxie,

Nothing I like more than watching you destroy snake-oil companies endangering user privacy, like this one and also Telegraph etc. Let's hope TextSecure/Redphone/Signal when they merge into one brand will get the amount of users they really deserve. This stuff is never just about gossip in Washington DC, it's always about the bigger picture of people in Sudan, China, Russia etc who are led into a false sense of security.

Man, I would love to see some of the pushers of this snake oil software crap in court some day as a result of the dangers they often knowingly expose their users to.

BTW - I've been meaning to drop you a secure mail about some other stuff but will do it next week.

<comment><USER8> Do you have any links about Telegraph endangering user privacy? I had a friend try to get me to start using it. I haven't really had time yet to do a lot of research on it and would love some insight if they are fishy at all.

<comment><USER7> [http://www.thoughtcrime.org/blog/telegram-crypto- challenge/](http://www.thoughtcrime.org/blog/telegram-crypto-challenge/)

[https://news.ycombinator.com/item?id=6936539](https://news.ycombinator.com/item?id=6936539)

<comment><USER8> Thanks for providing these links. Very interesting stuff.

I heard about Telegram after it's rise in popularity in Asian countries; shame that they have (BIG) issues like this.

</comment></comment></comment></comment></comment></comment><comment><USER9> Note: _Whisper app_ != _Open Whisper Systems_

(Completely unrelated)

<comment><USER7> Definitely an important point.

I love the work of Open Whisper Systems, Redphone/TextSecure/Signal is brilliant. I hope the completely get the number of users they deserve when they merge under the one brand.

</comment></comment><comment><USER10> > The Guardian witnessed this practice on a three-day visit to the company's > Los Angeles headquarters last month, as part of a trip to explore the > possibility of an expanded journalistic relationship with Whisper.

So they look to partner, don't like what they see and turn it into a story? Whisper has two problems: violating its users' trust, and letting an external group in without an agreement in place. The Guardian also looks bad flipping this into a lede in my mind.

<comment><USER11> >The Guardian also looks bad flipping this into a lede in my mind.

The Grauniad would look bad for claiming to be journalists and not reporting on this.

edit: really? Journalists, not under any 'off-the-record' or non-disclosure agreements, seek to partner with an app that allows anonymous communication, and finds that it's tracking it's users, storing all information, ignoring opt outs, and funneling information to governments.

They shouldn't report this because what? They should report this even if they are not journalists, but have a moral center.

<comment><USER7> Agreed. The overwhelming public interest was served by The Guardian publishing it.

</comment></comment></comment><comment><USER12> So even if you disable the location feature it still tracks your location? I'd be interested what they mean by 'broad location tracking' but I can't imagine that it's consistent with their anonymity claims. e.g. see [http://www.nature.com/srep/2013/130325/srep01376/full/srep01...](http://www.nature.com/srep/2013/130325/srep01376/full/srep01376.html)

<comment><USER13> I'm the author of this paper and I absolutely agree. If you keep identifiers, simply blurring the location isn't enough to address the risks of re- identification ([https://twitter.com/yvesalexandre/status/524219573650722817](https://twitter.com/yvesalexandre/status/524219573650722817)).

Re-identification is a very different risk than the one considered by the UC Santa Barbara researchers in Wang, Gang, et al. "Whispers in the Dark: Analysis of an Anonymous Social Network." (2014).

</comment></comment><comment><USER14> Aren't Open Source privacy apps more preferable? Shouldn't we all be talking about ChatSecure, Redphone, Textsecure, Mailvelope, Cryptocat, GPG, EnigMail, etc.? And about the companies that offer these programs as a service?

While it's not a guarantee of privacy, open source does significantly increase the likelihood that invasions of privacy and security vulnerabilities can be discovered by enthusiasts and journalists. Right? Wouldn't that be preferable when selecting a privacy app?

<comment><USER15> Of course, but common users don't have technical knowledge to know the difference, so they depend purely on marketing and trust (I guess "the safest place on internet" here did it's trick). It's good that mainstream media finally starts paying attention to the privacy, maybe it will make non- technical user to think twice before trusting such bullshit apps/services.

</comment></comment><comment><USER16> Anonymous - no way. A small amount of location tracking + the additional data any agency and many others can easily access will easily identify an individual. I read the UCSB paper referenced by the Whisper CTO - it just said there was a hard problem Whisper was trying to do something about. The paper also said that each user had a permanent GUID. So if I, with my GUID, get on a plane from SFO to (say) Santa Fe on one particular day - the GUID use moving will make it clear I have taken a plane - then the agency (or perhaps my credit card issuer?) will get the candidates for my GUID down to a few hundred at most just from that move and the passenger list (or ticket purchase records). Coupled with my GUID's home city and work city and they probably have me nailed - just like that. Trivial.

</comment><comment><USER17> I've always suspected that the standard rationalizations about modern user tracking (not _technically_ PII or assuming your data won't be analyzed outside the aggregate) were feel good nothings. At least I have something concrete to point to now when I say it's all bullshit.

</comment><comment><USER18> All I have to say is, Thank you Guardian!!!

And, oh, screw this app.

I wouldn't recommend it to anyone. Or any other _claimed_ secure/anonymous app, that does not have the "Moxie Marlinspike seal of approval"(TM)!

</comment><comment><USER19> I'm not upset or surprised by this. However, it's not the tracking Whisper and similar apps do that upsets me; it's the trashy content and vituperative gossip produced by their users.

</comment><comment><USER20> The central business model of our tech times is converting data into money. The eternal pressure will be to gather more and more data over time since that will result in more money.

</comment><comment><USER21> A fool and his privacy are soon parted.</comment>


19 Year Old who Auctioned off 10% of Future Income Probably Doesn't Exist - <AUTHOR> http://venturebeat.com/2013/04/19/sarah-hanson-the-19-year-old-teen-who-auctioned-10-of-her-income-for-a-125k-startup-investment-may-not-exist/

<comment><USER2> [http://www.geekwire.com/2013/sarah-hanson-seattle-man- confes...](http://www.geekwire.com/2013/sarah-hanson-seattle-man-confesses- idiotic-plot-hoax-tech-press/)</comment>


Postgresqlco.nf: a PostgreSQL configuration guide - <AUTHOR> https://postgresqlco.nf/ <comment><USER2> As of today, it is more of a Reference than a Guide. This is intended. Further enhancements of the website will include functionality to fully help less and more experienced users to fine tune PostgreSQL configurations.

Read more from a recent announcement [https://www.ongres.com/blog/postgresqlconf-configuration- for...](https://www.ongres.com/blog/postgresqlconf-configuration-for-humans/)

Any feedback is very welcome!

P.S. postgresqlCO.NF responsible here

<comment><USER3> I'd highly suggest removing the custom scrolling / scroll bar logic with your hamburger menu on mobile (and probably redesigning the site to avoid the hamburger menu all together — it's an anti-pattern). The non-standard nature means I lose all the natural momentum scrolling I get on iOS by default, the scroll bars can't be moved like I'm expecting, and it makes the whole site feel janky and not usable.

<comment><USER4> What's the alternative to a hamburger menu that you would recommend for mobile? It's a very common ux. For example, target, Walmart, and amazon all have a hamburger menu on mobile.

<comment><USER3> If you notice no Apple app has a hamburger menu, nor does their website on mobile. Hamburger menus hide all the details, with no predictability as to what might be there or that you should need to click on it (the icon tells you nothing). There's plenty written out there about this issue.

It's not clear to me exactly what one might want out of a mobile version of this site given the information overload. That would be my first consideration versus assuming it should be 1:1 with just a slightly different layout.

But if it is to contain the same information, I'd suggest it would be better to have a dedicated page that organizes all the different possible settings by topic or module, or even by "beginner to advanced" tuning. Such a directory can then easily be understood because to get there it would have a primary hero labeled button/link telling you what you're about to see (the current page is mostly videos and some pretext for the site but all the actual value is hidden by the hamburger menu). You can always flip back to that, knowing that the browser will retain the scrolling history to go back to your previous place (which a hamburger menu doesn't necessarily do).

Another style would be to have a chapter type layout where you can advance along some existing narrative (like beginner to advanced), much like FreeBSD documentation does (from memory).

All of this could also benefit from a search at the top that would let you random access what you're looking for.

As someone else suggested here, another style would be to think about recommended configurations for typical usage patterns.. on VMs with X type workload vs Y, letting you directly lookup what you want in a hierarchically organized layout on a flat single page, or using drop downs/segmented controls to configure from the set of possible options. Then you could just punch in your actual needs and out would pop recommendations that hopefully had some insight and further guidance to back them up.

Just some ideas from the top of my head. The main principal behind all of this is to avoid sticking everything where you don't know where to put it in a hamburger menu, and instead making your information architecture explicit and predictable.

<comment><USER5> What do you call this thing on the upper left at apple.com? [https://imgur.com/a/pm3kOUq](https://imgur.com/a/pm3kOUq)

Looks like a hamburger to me. It opens a menu when you click on it.

<comment><USER3> Feeling shame for my own company! Wow! It's marketing that runs that versus the actual designers (to my knowledge), and I wish they hadn't resorted to that.

<comment><USER5> Heh. Thanks for the honesty. I can probably get on board with an anti- hamburger movement, but consistency matters.

<comment><USER2> Thanks for all the feedback. We will definitely take this into account for future reviews of the UI.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> Very nice, but the #1 problem remains: discoverability.

Say you have a IO intensive database, with about 6000 new insertions per seconds, and every 20 minutes a few reads to use that data for analytics.

Which parameters should you tweak?

Personally, in a situation like that I first focus on the filesystem, to have write cache (xfs_syncd_centisecs etc). Then I analyze the queries and work mostly on RAM assignation.

For the postgresql.conf, I use recipes that build based on my experience, derived from A/B testing a set of individual modifications.

However it remains premature optimization. Only benchmarks can say for sure.

So when I feel fancy, I set aside a few days for tests and do a dense exploration of the parameter space for what I think will matter.

Yet this remains constrained by discoverability, i.e. by what I think will matter: if I don't know a parameter may matter, it will not be explored in the test set to avoid the curse of dimensionality.

TLDR: This website is nice, but could benefit from a few "typical scenarios" to know at least which knobs to try to tweak, along with some methodology for tweaking (ex: filesystem first)

<comment><USER2> That's the next step we will be taking: offering subsets of parameters that are recommended to be tuned, depending on the "desired" level of expertise. And then, some more direct indications on how to tune this parameters for your particular use case. Stay tuned!

</comment></comment><comment><USER7> It would be really nice to have a "start here" section. What are the 10 parameters I should look at and understand first?

</comment><comment><USER8> Posted and discussed 9 days ago as well: [https://news.ycombinator.com/item?id=22139975](https://news.ycombinator.com/item?id=22139975)

</comment><comment><USER9> Do you have any recommended config for speeding up tests that hit Postgres? We currently use these settings:

fsync = off synchronous_commit = off full_page_writes = off

And truncate all tables between each test

<comment><USER10> If you're truncating/dropping tables all the the time, it can actually be beneficial to set shared_buffers to a pretty small value. When dropping/truncating, postgres needs to scan the buffer cache to get rid of all entries belonging to that relation (happens at the end of the transaction). The mapping is a hashtable, so there's no ordered scan to do so in a nice way.

Also, do the truncations all in a single transaction. Since the actual dropping/truncations only happens after commit (for obvious reasons), we've at least optimized multiple truncations to happen in one pass.

It's unfortunate that a larger shared buffers can hurt this way :(

I've long hoped to find the cycles to finish a prototype that converted the buffer mapping to a hash table (for relations) over radix trees (or blocks in the relation).

<comment><USER9> Nice, that's a good tip. It's a little hard to test small speedups like this, but I used [https://hackage.haskell.org/package/bench](https://hackage.haskell.org/package/bench) and got these results:

128MB  ~/D/M/h/mercury-web-backend> caffeinate bench "make test" 15:19:04 benchmarking make test time 226.4 s (NaN s .. 240.6 s) 1.000 R² (0.999 R² .. 1.000 R²) mean 222.3 s (220.6 s .. 224.4 s) std dev 2.390 s (104.1 ms .. 2.986 s) variance introduced by outliers: 19% (moderately inflated)

128MB  ~/D/M/h/mercury-web-backend> caffeinate bench "make test" 16:18:57 benchmarking make test time 225.8 s (208.8 s .. 233.9 s) 0.999 R² (0.999 R² .. 1.000 R²) mean 221.6 s (215.8 s .. 224.8 s) std dev 5.576 s (1.671 s .. 7.491 s) variance introduced by outliers: 19% (moderately inflated)

2MB  ~/D/M/h/mercury-web-backend> caffeinate bench "make test" 18:30:27 benchmarking make test time 216.9 s (204.5 s .. 229.5 s) 1.000 R² (0.998 R² .. 1.000 R²) mean 219.7 s (216.7 s .. 221.3 s) std dev 2.863 s (1.283 s .. 3.658 s) variance introduced by outliers: 19% (moderately inflated)

2MB  ~/D/M/h/mercury-web-backend> caffeinate bench "make test" 19:29:26 benchmarking make test time 209.6 s (192.8 s .. 224.1 s) 0.999 R² (0.999 R² .. 1.000 R²) mean 216.0 s (211.0 s .. 218.5 s) std dev 3.732 s (1.442 s .. 5.168 s) variance introduced by outliers: 19% (moderately inflated)

So it seems like 2MB shared buffers shaves a few seconds off our tests. Is 2MB in the range you were thinking of?

<comment><USER10> > So it seems like 2MB shared buffers shaves a few seconds off our tests. Is > 2MB in the range you were thinking of?

Well, hard to say without knowing anything about your tests. I think the cases where I've seen it make a really big difference were more ones where people upped and upped shared_buffers trying to improve test performance, without noticing that it made things worse.

I'd probably not go below 16MB, otherwise it's plausible you could run into some errors (e.g. if you have a large number of cursors or such - they can end up pinning a few buffers, and if there's only 256 buffers, you don't need to be too creative for that).

</comment></comment></comment></comment><comment><USER11> Alternatively they could realize that not everybody is willing to spend too much time and send people to something like [https://pgtune.leopard.in.ua/](https://pgtune.leopard.in.ua/)

<comment><USER10> The suggestions pgtune makes are really bad. It sets max_wal_size way too low, max_parallel_workers_per_gather to ridiculously high values, shared_buffers way too low, the work_mem settings make no sense whatsoever.

<comment><USER12> Could you recommend any other tool that would generate more sensible PostgreSQL configuration values given similar input?

In other words: here is my PostgreSQL version, use case, OS, number of CPUs, available memory size, and storage type. What's the most optimal configuration?

<comment><USER2> As I mentioned upthread ([https://news.ycombinator.com/item?id=22224019](https://news.ycombinator.com/item?id=22224019)) and in the other thread ([https://news.ycombinator.com/item?id=22140773](https://news.ycombinator.com/item?id=22140773)), it's not that easy. And simple rules to compute parameters may lead to worse performance than the defaults. Otherwise, they would be the defaults ;)</comment></comment></comment></comment>