How Tumblr for iOS is Built - <AUTHOR> http://zachwill.com/tumblr-ios

<comment><USER2> I've recently built a similar hybrid app -- one main UIWebView mixed with native components.

It's a great way to launch your MVP, but I've found myself slowly converting pieces to native due to performance issues and other minor quirks.

What the Tumblr folks have now is a great start, but I have a feeling they will make their way down a similar path over time.

<comment><USER3> You should write a tutorial on doing such a thing. Especially the part where you bridge Objective-C and JavaScript.

Perhaps I'm mistaken but there isn't much documentation on this online it seems.

<comment><USER4> Here's a simple JavaScript/native bridge implementation: <https://gist.github.com/3688560>

</comment></comment></comment><comment><USER5> As amazing as writing an application relying on a UIWebView for its core functionality, it still crashes when you scroll for long periods of time, and instacrashes when you attempt to look at your likes.

I am admittedly on v.3.0.x, but the version previous behaved the same way, so I have little hope for future versions.

I must admit, the Tumblr app is one of the few apps that make me want to throw my phone against a brick wall.

<comment><USER4> I'm the developer of Tumblr for iPhone and sorry to hear this. I know that web views have their drawbacks and we're working hard to make the app faster and more stable in every way.

<comment><USER6> While we have your ear: just wondering what the thought process behind the latest redesign is? Yes it's really~pretty...but the functionalities that made the older app attractive are mostly gone.

\- cant long press to copy a tumblr link (heaven forbid I'd like to share a link OUTSIDE of the app \- cant post YouTube urls in video post \- reblogs won't let you delete prior comments by others (sometimes you have to clean up cluttered reblogs) \- you took away options to open in safari in many instances as well.

<comment><USER4> These were not intentional omissions. 3.0 was a complete rewrite and there are still many features that we know we need to add in order to be on par with the web experience.

I strongly encourage any users with feedback or feature requests to hit up my ask box: <http://blog.bryanirace.com/ask>. We really are listening and plan on providing the best mobile Tumblr experience we possibly can.

Edit: Worth noting that we added post sharing options in 3.1 (long press on the 'Like' button).

</comment></comment></comment></comment><comment><USER7> What I don't understand about Tumblr's iOS app is how they managed to make the dashboard slower, while making everything else native. It literally takes a minute to load the initial content ([http://nuut.co/post/31000290048/new- tumblr-app-im-keeping-my...](http://nuut.co/post/31000290048/new-tumblr-app- im-keeping-my-eye-on-you-tumblr))

At least previous versions got the dashboard right.

</comment><comment><USER8> AirBNB has recently released a library for infinite scroll lists which has great performance and lower memory usage: <http://airbnb.github.com/infinity/>

</comment><comment><USER9> "How Tumblr is Built for iOS" to be grammatically correct. Sorry, this really bugged me for some reason.

<comment><USER10> The "for iOS" suffix can sometimes be considered part of the app name.</comment></comment>


Quick bash prompt using lua - <AUTHOR> http://daurnimator.com/post/40015182915/made-myself-a-nice-new-bash-prompt-using-lua-code

<comment><AUTHOR> It turns out PROMPT_COMMAND also has issues... I found out about wrapping in \1 and \2 from the #bash irc channel.

The blog post has been updated.</comment>


$1 Million Doesn't Cut it for Retirement - <AUTHOR> http://finance.yahoo.com/focus-retirement/article/109077/1-million-doesnt-cut-it-for-retirement <comment><USER2> Some sort of breakdown would have made it more intresting but otherwise its pretty subjective.</comment>


Don't destroy research - <AUTHOR> http://www.senseaboutscience.org/pages/rothamsted-appeal.html <comment><USER2> [http://www.abc.net.au/news/2011-07-14/20110714-greenpeace- gm...](http://www.abc.net.au/news/2011-07-14/20110714-greenpeace-gm- protest/2794272)

Greenpeace destroyed a GM wheat crop study by CSIRO, a government research department. It's a shame because it would have found evidence whether such GM crops had problems.

"Greenpeace says it has taken action because of concerns over health, cross- contamination and the secrecy surrounding the experiments." _facepalms_

<comment><USER3> "A main element in their paranoia is that they are concerned that the release of GM material outside the containment area is going to do all sorts of awful things to "the environment," They don't seem to realise that by breaking into the controlled area and damaging the plants they are actually spreading the material themselves."

<comment><USER4> It is not paranoia since there is a long history of GM/transgenic crops escaping and cross pollinating with wild-type.

Source: [http://www.scientificamerican.com/article.cfm?id=genetically...](http://www.scientificamerican.com/article.cfm?id=genetically- modified-crop)

<comment><USER5> So what? The current, non-genetically modified plants are not holy in any sense. They evolved and the during the evolution, their genes were altered countless times.

Every day, an unique, genetically modified plant is born, because a gamma ray from the outer space hit its DNA and altered it in a non-predictable fashion. 99.99999% and maybe more of these mutants are harmless and probably simply die.

The alteration of genes can happen on your very own garden and without any safety measures. Some of these natural mutants may even be dangerous and nobody cares.

Is this randomness and total lack of safety better than a scientist armed with knowledge and a place to conduct experiments?

<comment><USER4> I agree with this and generally I am not against GM crops in theory. I think that:

1\. Monocultures are bad. GM crops don't have to be monocultures but they generally are for a number of business reasons that have nothing to do with food production.

2\. GM crops cross-pollenate thereby spreading patented genes to non-GM fields. The owners of these non-GM fields are then sued and forced to switch to GM crops.

3\. GM crops business models are often built around vendor lock-in. Historically vendor lock-in has been bad for software development and I think we can extrapolate these results to farming.

4\. Cross pollination to wild-type is generally disruptive to the environment short term (for example consider what happens when wild plants produce pesticides from a GM gene). The effects are probably no different than introducing an invasive species. Generally people see this as a bad thing (snakes in Hawaii for example) and create laws to prevent it from happening. <http://en.wikipedia.org/wiki/Invasive_species>

5\. There is a big difference between point mutations and transgenic plants. <http://en.wikipedia.org/wiki/Transgene>

I think GM crops can be developed, used in a safe manner and provide a great benefit to humanity, but that is not the current state-of-affairs. There are good reasons the EU regulates GM crops as much as they do.

<comment><USER5> Well, I agree that there may be dangers. Eco-activist groups should focus on forcing and helping the scientists and corporations to do more thorough testing. They should not destroy crops or attempt to stop the research. Thinking that they can stop it is naive. If it does not happen in US or EU, it will happen elsewhere (and possibly with less effective safety precautions).

The patent thing is a separate problem. Patent law in many areas is pretty bad.

</comment></comment></comment></comment></comment></comment><comment><USER4> I think the response from the activists should be a top-level comment so I am reposting it here.

<http://taketheflourback.org/open-letter-to-rothamsted/>

<comment><USER6> Thanks for posting this. The quality of the comments here is otherwise sadly low.

</comment></comment><comment><USER7> "If you destroy publicly funded research, you leave us in a situation where only the big corporations can afford the drastic security precautions needed to continue biotechnology research - and you therefore further promote a situation you say you are trying to avoid."

Considering the scary amount of money and power Monsanto has, and the terrifying things they do with their GM patents, this is probably be best argument if you are convinced GM plants are evil.

Well, that and the fact that it's /research/ and not the industrial growing of GM foods.

</comment><comment><USER8> The environmental protection movement is slowly acquiring a mob mentality where new ideas that modify nature in any way are scorned upon without any scientific evaluation. All this GM backlash while millions starve across the world and food prices are increasing.

</comment><comment><USER9> I hope reasoning with terrorists attacking research plants will give some results, but I'm afraid it still wont stop them - they are the same kind of people who blow up infidels or try to get rid of "lesser race". Still, it's a peaceful step and may reduce the amount of such attacks.

What I think is needed here is to actually make security tighter - but it's a dance between putting lots of money into security or losing some experiments. Unfortunately both are what those guerrillas want.

<comment><USER10> It's not an attempt to reason with terrorists. It's way smarter than that. It's an attempt to undercut the entire reason they are doing this. The terrorists are looking to build public awareness, sympathy, and support for their actions against the evil nasty scientists playing with the Things Man Was Not Meant To Know. This is an attempt to humanize the scientists, put their work in context, and reframe the narrative from Heroic Radicals Save Humanity From Cackling Evil Scientists to Idiotic Bookburning Knowledge-Hating Radicals Shoot Selves In Foot and Kill Poor People. It's attacking the foundation of the terrorism instead of getting distracted with the building on top.

<comment><USER4> I'm not sure you are representing the views of the "terrorists" correctly.

1\. Terrorist is not an accurate title.

2\. From what I've read the metaphysical argument that "Things Man Was Not Meant To Know" is not the reasoning behind these actions. The argument used tends to be the same as the anti-nuclear argument. Given the facts, the danger is too great.

3\. Plenty of people in the scientific community have serious objections to the way GM crops are used and promoted. It's not an anti-science movement anymore than the anti-nuclear movement was an anti-physics movement.

4\. I agree with your assessment that this is a PR maneuver aimed at the general public.

5\. The campaign is being managed by the PR firm 'Sense About Science' which is funded by a number of private firms. The claim that this is purely about public scientific research is PR.

Sense about science has done some good work in the past with regard to fighting science libel laws. <http://en.wikipedia.org/wiki/Sense_About_Science>

<comment><USER10> "I'm not sure you are representing the views of the "terrorists" correctly."

Since I didn't try, nor do I particularly care, probably not. I was talking about what this document does, not endorsing it or analyzing it beyond that. Personally I'm not a big fan of narrative-based warfare regardless of who is doing it, but that doesn't mean I can't recognize it when I see it.

</comment></comment></comment></comment><comment><USER11> The letter wavers between being a heart-felt plea for academic research and verbal abuse against activists. I don't particularly mind the latter, as I feel the actions of these activists are inexcusable, but from a PR perspective it's usually not very smart to call people idiots if you want to win them over to your perspective.

</comment><comment><USER12> Why can't they just call the police?

</comment><comment><USER13> Why should scientists have to plead with their yahoo enemies?

This is organized political violence, and organized political violence only exists where it's passively tolerated by the government. Suppose the NAACP learned that a bunch of yahoo skinheads were planning an attack on the National Museum of African Art. Do you think for a minute that the museum curators would be writing a cringing, please-don't-attack us letter about the important artistic contributions of African Americans? Naah - a bunch of yahoo skinheads would be preparing for a 15-year staycation at Pelican Bay.

Treat left-wing extremists the same way you treat right-wing extremists - problem solved. Not that the problem's going to be solved. But it's worth thinking about why.</comment>


Introducing Sign in with Slack - <AUTHOR> https://medium.com/slack-developer-blog/introducing-sign-in-with-slack-290949e1c3f5#.8tnhoefbc <comment><USER2> Interesting track for Slack to take. Curious about a couple of things in case anyone from Slack is listening:

1\. Why not use OpenID Connect ([http://openid.net/connect/](http://openid.net/connect/)) on top of OAuth?

2\. How does this compare to Okta, Ping, etc.? Seems like this may be a solved problem in the enterprise space and I'm curious what Slack brings to the table that couldn't be done with existing solutions.</comment>


Show HN: Sales for Nerds- a podcast for tech people doing sales and marketing - <AUTHOR> https://www.salesfornerds.io/episodes-1-2-jason-cohen/ <comment><USER2> Just listening to the first episode as this sounds like the perfect thing for me in my current situation. One suggestion would be to work on sound quality, the biggest issue being background noise. Audacity [0] is an open-source software for editing sound. There's even an awesome tutorial on removing ambient sound [1].

[0] [http://www.audacityteam.org/](http://www.audacityteam.org/)

[1] [http://www.makeuseof.com/tag/remove-ambient-noise-audio- file...](http://www.makeuseof.com/tag/remove-ambient-noise-audio-files- audacity/)

<comment><AUTHOR> Thanks-- great feedback and thanks for making it so easy to follow. ;-)

</comment></comment><comment><USER3> A download or rss link would be nice. I could not find it on mobile.

<comment><USER2> Here's the link to their podcast on iTunes: [https://itunes.apple.com/us/podcast/002-jason-cohen- intervie...](https://itunes.apple.com/us/podcast/002-jason-cohen- interview/id1161950812)</comment></comment>


Foamicate: A new system for authenticating users without using passwords. - <AUTHOR> http://foamicate.com

<comment><USER2> There have been several security systems over the years with this same problem. The issue is basically here:

 _Step 1: Require users to install a binary plug-in_.

(OK, the website doesn't exactly say it that way.)

But web security begins and ends at the user. All of the security depends on the user noticing security warnings and then refusing to continue. Look at it from the user's perspective. "In order to create an account on this website you must turn off your malware blockers, click here, then click 'OK' to the next 3 warning screens that are going to tell you that what is about to happen is a really bad idea. Trust us, we're legit."

I would wager any site that places selection pressure on their userbase _to favor_ those who agree to install random binary stuff from the web is going to have more issues with user credentials than those which do not.

Disclosure: I work for an authentication company (PhoneFactor) that has replaced these plugin-based systems in the past.

<comment><USER3> Not to mention the other problems with using key based authentication with an unsophisticated client. \- User A at client company X is the one usually using the system \- User A goes on Vacation \- User B needs something from teh system, they forgot to plan this before A left. They call A to ask the password...

<comment><USER2> ...User B can't get the password with which to impersonate A.

Login authentication is working as designed. This is a feature, not a bug.

If User B needs access to something controlled by User A, they need to talk to their admin.

</comment></comment></comment><comment><USER4> So I've been thinking about systems like this for a bit.

How is this different than Client-side certs, except it requires an addon?

How do you sync keys between machines?

If I'm going to have to deal with syncing and installing a plugin, why not just install 1Password, and have it automatically generate unique-passwords for each site..?

<comment><AUTHOR> 1\. One difference is that a different key pair is used for every domain so you don't have to worry about your public key being used to uniquely identify you. Also, I think this is easier for novice users than creating a cert.

2\. I plan on adding in an import/export feature for the next release.

3\. This should be more secure than passwords because the only information that the server gets is your public key, which of course is assumed to be public knowledge. No more wondering if the website you're using is properly storing passwords.

Thanks for the questions.

<comment><USER5> Do browser-generated SSL client certs really share keypairs between unrelated domains?

AFAIK, each one asks the browser to generate a new keypair. Unless of course they've chosen to be federated with someone who has already issues you a cert.

<comment><USER2> Yes, browsers can be a bit promiscuous with who they hand your client cert to.

It depends on the browser, who issued the cert, and what websites the user has agreed to supply their client cert for. If a specific website issued the cert, it won't be terribly useful to another site, but it could leak some personal info. If a well-known CA (e.g. DigiNotar) issued the cert, it might be valid across a wide range of sites (e.g. Dutch government and other sites).

The TLS protocol is a bit lacking in this regard. A man-in-the-middle type attacker can impersonate a server to a browser and get the "public" client cert.

</comment></comment></comment></comment><comment><USER6> Mozilla has already been working on a standards-based implementation of user agent authentication: <https://browserid.org/>

<comment><USER7> Foamicate looks much more decentralized - while it's possible to run your own BrowserID server, the recommended production setup is to authenticate users against the central browserid.org federated sign-on service.

At any rate, I think we learned from OAuth 1 that 18-step, cryptographically involved sign-in processes aren't going to be widely adopted by developers.

</comment></comment><comment><USER8> Finally expertsexchange.com has competition.

<comment><USER9> Foamicate: foamy fornication. Uh... maybe that wasn't what they wanted to get across?

<comment><USER10> Once they launch, they should recruit Senator Santorum for their board.

</comment></comment></comment><comment><USER11> Interesting concept with an unfortunate name. Foarnicate? Foarnicator? With just the right font and kerning, "m" becomes indistinguishable from "rn".

Also, a common problem with all browser-based authentication systems seems to be what happens when the user loses the browser. (Hard drive failure, theft, etc.)

With LastPass, I can retrieve my passwords by reinstalling the add-on and entering my master password, because all the data is kept on their servers. With browser-based authentication schemes without a central server, once you lose your browser, it's gone. It's also virtually impossible to remember a randomly generated private key, unlike even a 10-word passphrase. So I'll only ever be able to use this with unimportant sites, not e-mail or banking. I see that this problem is mentioned in the "technical limitations" section, but any good idea to fix this without asking users to trust a central server?

<comment><USER12> I have to assume the name is on purpose and Dan Fox (the author) thinks it is clever.

While the cleverness of the name is debatable (likely depending partially on how old you are), the name basically guarantees that a large portion of the population won't take this project seriously. I'm very liberal and far from a prude and the name just makes me eye-roll/groan and assume the worst about the maturity of the project owner.

Save the clever names for bands. If you want your work to be taken seriously in a computer security context, come up with something less likely to make an 8th grader snicker.

<comment><AUTHOR> To be honest, I didn't think about the similarities between the words. I named it that as an homage to the project's birthplace, a coffee shop named Foam Coffee and Beer.

<comment><USER11> And yet, people are getting the impression that this has something to do with Rick Santorum's frothy mix of you-know-what. I hope you find a more serious- sounding name soon, before you take whatever the next major step in your project is. What about foamauth? You could argue that it makes the traditional login _form_ disappear into _foam_ , or something like that :)

</comment></comment></comment></comment><comment><USER13> This looks like a cool technology, so sorry to be somewhat off-topic. But unless there's something I'm not getting, isn't this a really bad name?

Basically one letter change away from reading like "Fornicate"…

<comment><USER14> I agree, name isn't great, and I think the description of what it is/how it works needs work if this is going to take off. If you don't know what RSA/public key cryptography is already, you're going to have a hard time digesting the text on this site.

</comment></comment><comment><USER15> Surely the only real advantages are:

\- Server has no knowledge of password, and less knowledge than a hashed password.

\- Master password based private key is possibly more secure than a cookie.

However, if the client machine is compromised a virus could get hold of the private key, and have access to numerous websites.

The best way to improve security is to have a third party login provider (openid, Google, Facebook etc), preferably with three factor authentication. This allows the client, and the server to be compromised, and still limit damage.

<comment><USER16> Third party logins really don't supply any enhanced security as such. But they do supply more "security theater" which is not actually what you want.

Three factor does provide more security but there's no reason to involve a third party - in fact, the more parties, the more likely someone is to fumble something.

<comment><USER17> You're right. It's the poor man's identity federation.

Before I start, let me make myself very clear - I think Dan did an awesome job with Foamicate. Seriously. One guy. The balls to put something out there that's innovative and seeks to solve a REAL problem. I'm impressed. And if I were in a position to, I'd ask Dan to work for me.

That said, it's worth (IMO) considering what an identity system _should_ provide -

User Control and Consent: An identity system should only reveal information identifying a user with the user's consent. The Facebook/Google/OpenId model fails this one.

Minimal Disclosure for a Constrained Use: The solution that discloses the least amount of identifying information and best limits its use is the most stable long-term solution. Again, OpenId falls short in that the identity provider knows where the user is going.

Justifiable Parties: Digital identity systems must be designed so the disclosure of identifying information is limited to parties having a necessary and justifiable place in a given identity relationship. Microsoft Passport is a great example of why this's a bad idea.

Directed Identity: A universal identity system must support both "omni- directional" identifiers for use by public entities and "unidirectional" identifiers for use by private entities, thus facilitating discovery while preventing unnecessary release of correlation handles. My Facebook identity is public, but I can't and shouldn't use that to access a private resource like a collaboration site on my company's extranet.

Pluralism of Operators and Technologies: A universal identity system must channel and enable the inter-working of multiple identity technologies run by multiple identity providers. The part where anything that's exclusively browser-based fails. The same system should work online, from a phone, and from a PC or server running any arbitrary OS.

Human Integration: The universal identity metasystem must define the human user to be a component of the distributed system integrated through unambiguous human-machine communication mechanisms offering protection against identity attacks. UX. The usability problems with Foamicator have been discussed here already.

Consistent Experience Across Contexts: The unifying identity metasystem must guarantee its users a simple, consistent experience while enabling separation of contexts through multiple operators and technologies. A smart card is a good example of this - I have a card for cash, a loyalty card for coffee, and an access card for work. Using them is consistent, event though their context is not.

The only technology I know of that meets all 7 laws is information cards (Higgins Project, and CardSpace). Information cards haven't taken off because adotpion by identity providers is, well, basically zero.

Which is a shame.

Anyway, if you're interested in this you can find more information at <http://www.identityblog.com/>.

<comment><USER15> Maybe add one more:

Allow user to securely login to websites from virus infested machine in an internet cafe.

How do these various systems compare based on that law? Google one time password or card space?

<comment><USER17> Neither.

Google and identity is a bad idea regardless of the problem you're trying to solve (<http://www.identityblog.com/?p=1204>). It's the worst of the three.

OTP is good, but challenge-response is better. Is your OTP from a second factor?

Card Space is my personal favourite, but the [card] portability issue hasn't been solved. U-Prove holds promise. CardSpace, with U-Prove and second-factor challenge/response would be _awesome_ :-)

So as I said, neither of those is ideal.

But then I have solved exactly that problem (securely login to websites from virus infested machine in an internet cafe) before, for the UK MoD.

I used identity federation (WS-*), and opted for Chip & PIN authentication on the identity provider side, thereby cutting out replay attacks. The solution is complex, and costs a lot more money than the average web site would be willing to pay. Unless someone credible like the Passport Office or DVLA volunteers as an identity provider.

Here's the case study. [http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?...](http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?CaseStudyID=4000003478).

<comment><USER15> So its an argument about which third party you trust? Google or the DVLA? perhaps people trust google because they have to already. If you are running chrome and using gmail you are implicitly trusting them with your data. I agree that this is a bad way of picking a tehnology.

I like the chip and pin approach; its a good solution. Perhaps banks should provide federated login. Do you trust them ? :)

<comment><USER17> It's about context. I trust my bank for banking. I would trust the DVLA to assert my identity where a directed assertion is required, and where I agree to it. I don't trust Google at all because an ad company has _no_ business looking at my email, let alone asserting my identity to third parties.

So technically I don't trust any third party. I trust some of them in varying degrees based on what I'm trying to do.

</comment></comment></comment></comment></comment></comment></comment><comment><USER18> What's the difference between this and just storing a long session ID in cookies?

<comment><USER2> Attackers haven't gotten around to writing a tool to grab the private key along with the cookies yet.

</comment></comment><comment><USER19> Higher security, and not needing to type passwords on my phone would be awesome.

</comment><comment><USER20> Foamicate uses a browser extension. Is there any reason the client side portion can't be implemented in JavaScript with keys stored in localStorage?

<comment><USER21> Does Chrome sync localStorage among browsers?

<comment><USER20> I'm not sure; would you consider that a good thing or a bad thing for this purpose?

If you consider it a bad and a security risk, then I would answer that the RSA private key would still be protected by a master password on the client side. You essentially end up with a solution like LastPass or 1Password with a different password for each service, with the added benefit that the server only has the public key so users aren't affected if attackers obtain a copy of the server database.

If a good thing, well, it's not clear to me that Foamicate syncs across browsers either.

<comment><AUTHOR> Right now it does not. I can't think of a way to sync across browsers without syncing first to a remote server and I'd prefer not to require people trust my server anymore than they have to. I plan on adding in import/export of the database soon. Here's the roadmap for the addon <https://github.com/romaimperator/Foamicator/wiki/Roadmap>.

</comment></comment></comment></comment><comment><USER22> This won't work for iphone users, right?

</comment><comment><USER23> I read this as Foarnicate.

</comment><comment><USER24> Is there plans to support sharing you keys between devices?

</comment><comment><USER25> At this point, I just wish I could use my two-factor authentication on Google to sign in to any site on the internet, and disable all other methods of signing in.

Bonus points if I could do it anonymously. Meaning, the site never has any idea of who I am.

<comment><USER2> How would that work anonymously?

Usually the purpose of "signing in" is authenticating who you are.

<comment><USER26> Most logins are just a way of showing that you are the same person that logged in previously. Gmail is an often public identifier that could link to you IRL.</comment></comment></comment>


Show HN: My todo app with encouragement and statistics to increase motivation - <AUTHOR> Would love to get some feedback on my app. It's free for the next day.<p>https://itunes.apple.com/us/app/victories/id888306128?ls=1&mt=8 <comment><USER2> Is there a website that demonstrates what the app does?

I find the idea interesting, but I don't use an iPhone and hesitate to download apps to my Android phone due to some bad experiences.

But I'd probably provide feedback if I could.

<comment><AUTHOR> You want to see a video or something?

It's only iOS. Thanks for the support though :)

<comment><USER2> Because it was asked for, I would be willing to provide feedback, but packaged as an iOS app...or probably an Android app...creates a high level of friction. Seems like this makes the app store makes it difficult to aquire, let alone connect with potential users and iterate the product on short cycles.

...and that's about all the feedback I can really offer.

<comment><AUTHOR> I see. So how would you package a todo app?

<comment><USER2> For the purposes of testing, obtaining feedback, iterating and finding a market, I think packaging a tool as an app has more drawbacks than benefits. There are too many dependencies on third parties and too many assumptions about customers.

YMMV.

<comment><AUTHOR> Here's a video of it! www.littlequest.me/victories</comment></comment></comment></comment></comment></comment>


San Francisco Women With PhDs Featured as Models for Spring Collection - <AUTHOR> http://time.com/20362/this-clothing-companys-spring-collection-is-modeled-by-women-with-phds/ <comment><USER2> Ugh. The message I got was even if a woman has a PhD she can still be reduced to a visual spectacle. I feel sorry for the women in my lab who constantly face these pressures. I mean could you ever imagine a fashion line modelling male PhD students? If not why not? Is it because we men can be judged based on the merit of our work and don't have to worry about our appearance? I don't know, maybe I'm reading this wrong.

<comment><USER3> > I mean could you ever imagine a fashion line modelling male PhD students?

Yes, I very well could imagine this. Geek chic is very much a thing and this would probably play just fine.

I think about this the opposite way from you: Why should having a PhD change the pressures one faces around fashionability and body image? Are you suggesting that people with PhDs have earned the right to be exempt from social pressure by virtue of succeeding in a graduate program?

Choosing some arbitrary and largely fashion-orthogonal dimension to slice up the population seems like a very reasonable way to try and advertise fashion to a wider audience. If you are decrying that the media is pigeonholing women as being more fashion-sensitive, or that they are cherry-picking some expected body type out of their chosen demographic, then that is a separate and perhaps valid issue. But I don't read this as having any bearing on the value of a PhD, except as a way to market to an audience that cares about intelligence.

</comment></comment><comment><USER4> There's no messaging here. It would be very easy to read way too much into this. I think it's refreshing, regardless of however many reasons people might come up with to be upset by it.

Some commenters are saying that it denigrates women with PhDs by objectifying their appearance, and others are saying that it fails because these are conventionally attractive women. Of course, if they had a broader mix of people then everyone would be up in arms about that too ("how dare they suggest that women with PhDs aren't just as beautiful as other women?!?").

All of these things are at least somewhat true, but I don't think it really matters.

This is a big lose/lose for whoever put the catalog together, because no matter what they do it will outrage somebody. I'll settle for not thinking too deeply about it and appreciating what they're doing, even if it's not the most revolutionary act in the history of gender relations, and even if it might seem hypocritical or cynical if you squint hard enough and look at it from just the right perspective.

</comment><comment><USER5> Hmm, maybe I'm just not that cynical...

But i took it to be a lighhearted stab at stereotypes - that nerdy girls are somehow "frumpy", or "unattractive".

I mean, we're meant to be all for getting girls into STEM - and you can argue till you're blue in the face about how "looks shouldn't matter", and "girls shouldn't care about makeup/shoes/clothes - but seriously?

Aren't we just being sexist, but painted a different colour?

If girls like those things - and I think it's fairly obvious from our society they do - then maybe we can show them that yeah, they _can_ be "female" \- and also super-smart. You don't need to pick one over the other.

I used to say to my wife "Err, you don't _have_ to wear makeup for me, you know? I mean, it doesn't enhance performance physiologically." And her reply? "I'm not doing it for you, silly. Btw, did you know you're emotionally stunted =)".

</comment><comment><USER6> Pure PR material about women's fashion makes it to the frontpage, now _that_ 's news

</comment><comment><USER7> I haven't a clue what to make of this.

</comment><comment><USER8> So, men are achievers based on their what they do in their field. Women on the other hand still have to be able to model and look sexy despite of their achievements.

Objectifying women yet again, is all I see here.

</comment><comment><USER9> "On the other hand, the women all have the same thin body type and are beautiful by conventional standards, so is it really a revolutionary campaign?"

<comment><USER10> It is revolutionary... in all the wrong ways... they just gave more ways to objectify women... it doens't matter how big their brain is... according to this campaign (or at least how this article promotes it) they are objects for our visual pleasure all the same

Shame on the editors

<comment><USER11> I think you hit the nail on the head there. They're all conventionally attractive, thus intelligence was clearly not the guiding factor in selection. So the message is that intelligence or advanced degrees are not all that important except as some kind of weird gold star -- it is still looks that count.

</comment></comment></comment><comment><USER12> Ah Betabrand. I still don't understand why there's a huge market for people who want to dress humorously.

They've somehow managed to make terrible a feature by labeling it funny. There's a difference between laughing with, and laughing at. Betabrand is on the wrong side of that line.</comment>


Toptal employees and investors demand equity, founder points to the fine print - <AUTHOR> https://thehustle.co/toptal-equity-convertible-note/ <comment><USER2> This is why getting low-pay and equity at a startup is a pipe dream. The investors or founders will find a way to squeeze you out while using your skills to make them rich.</comment>


Kimsufi: the affordable dedicated server - <AUTHOR> https://www.kimsufi.com/en/ <comment><USER2> Probably one of the worst services I ever tried to use.

Last week I ordered one of their small servers (PS-1). Although their site is in English, the registration form was in French and despite giving me a drop- down to choose another language, there wasn't one. I complete the process and I am asked to email them a copy of my ID and a utility bill for verification. I did so and never heard back from them. This is _unacceptable_ and I can't think of many worse cases of contact from companies. I sent you a copy of my ID and you do not even reply back? Even a Nigerian prince would be more polite than this.

Also in the past, I gave them a try with the €2.99 offer. They just canceled my order because it couldn't be "validated". I can understand if they have problems, but I expect them to be more straightforward.

<comment><USER3> I got them to validate my account with an email and a copy of a statement but I was later told I could not purchase this because it wasn't available to Americans. Before I realized this was the case, I received an e-mail saying that my paypal payment wasn't accepted because the order couldn't be validated.

I just ended up going with Digital Ocean instead. It would've been nice to have a cheap dedi but it isn't worth this kind of hassle.

<comment><USER4> Digital Ocean asked for similar verification papers after a couple months of usage. I am also located in the US.

<comment><USER3> Linode and Digital Ocean have never asked me for any kind of verification. They have just wanted their bill paid so far.

Maybe I'm just small potatoes compared to what other customers do with their infrastructure?

</comment></comment></comment></comment><comment><USER5> Ok, there's mainly negative of mitigated feedback here. Let's go further in the discussion with positive feedback.

So, I personally own some kimsufi's, and I run a hosting structure for CS students with another since 4 years.

The things you have to know about Kimsufi is:

\- they are full dedicated servers, fully capable of handling a decent charge

\- they are second hand hardware, already made profitable (that's why the price is so low)

\- you should change change them every 4 years so that you won't run into hardware issues

\- you can do whatever you want with them, there's really no chance to lose a kimsufi thanks to the remote control console which can make a reboot on a minimal image

\- you can do whatever you want with them, really. The bandwidth is really free and unlimited, no bullshit.

\- the OVH network is really strong. In 5 years of use, I've never seen any downtime of any of my servs.

For me, that's the best choice for non-critical hosting. They are unbelievably much cheaper than everyone around (except online.net, who has a weaker network), with twice as many features, their greatest community manager is the CEO (checkout @olesovh), things just work everyday. When they don't, just check [http://travaux.ovh.com](http://travaux.ovh.com) . No bullshit about the problems (cc PlanetHoster, DreamHost and the like).

I'll be happy to answer questions if you have.

<comment><USER6> I can only agree, you just have to know what you're getting into, there's no SLA, but that's the deal and why these are so cheap. If you want high-quality hosting then you can go with OVH's main line or the SoYouStart line, but what's nice with these is you get to take advantage of OVH's nice network and reliable infrastructure, for really rock-bottom prices. ...I swear I don't work for them, I just really enjoy this company... they even have a bi-monthly newsletter which I keep in my bathroom to read about how they deploy their new DSL infrastructure, or their international fiber backbones!

</comment></comment><comment><USER7> I really don't get all the hate directed towards OVH.

I've got two Kimsufi dedicated servers at OVH since years and years and, to me, it's an amazing service (at a price which apparently nobody can beat).

One of my Kimsufi on which I installed Debian reached an uptime of four years. Four years of _uptime_. The smallest of the Kimsufi, which is already the cheaper of the dedicated servers OVH provides. Four years.

A pretty stock Debian, with only SSH and Tomcat and not a single (known) root exploit forcing me to install a patch that would have required me to reboot the box. Meanwhile I had two very serious DoS Java bugs requiring me to patch the JVM / JRE (IIRC the Tomcat version I had could do with just the JRE, no need for the JDK). One Java exploit was the infinite floating-point parsing bug and the other the hashmap not being O(1) anymore (the attack consisted in submitting very long URL with carefully query paramaters).

Now the real funny thing: one day I got an email from OVH saying my server was down and that it "would not reboot". What happened is that the motherboard died and they moved my stuff to a new system. But the Debian version on my Kimsufi was so old that it wouldn't recognize the new motherboard...

That's basically how stable Kimsufi are: they can happily crank up for years and years and years and years.

Now I'll have to look into it: because I pay 20 EUR / month for mine (VAT not included) and apparently the new ones at 17 EUR / month are already more powerful than the ones I have, so I may want to switch to a beefier machine for a cheaper price.

Also note that during summer time (month of august IIRC), they launched a Kimsufi at 2.99 or 3.99 EUR / month (don't remember, but several people here point the number of 2.99). But it got so successful that they had issue and were forced to remove the offer. And "Octave" tweeted that OVH would come up with an entirely new offer. I'm glad to see they're now offering Kimsufi at 8 EUR / month.

That's 8 EUR for your own dedicated server. Seems quite a good deal to me.

<comment><USER4> I have a few issues with OVH. In no particular order:

\- In summer 2013, they used their customers as beta testers for their anti- ddos service. This was mandatory for ALL customers, there was no way to opt out.

This caused false detections on some of my servers and ended up blocking ALL dns requests until I uploaded the deb for PDNS (because apt-get wouldn't work anymore) and configure TCP dns lookups.

\- Multiple times in August and September all servers that detected a DDoS attack in the past 24 hours became disconnected from the internet or the US for an entire day.

\- Also in summer 2013, they upgraded their offerings as usual. Their website said it would come in a week but I waited for over 60 days before I finally told them to cancel the order. This was for their midrange server.

\- They removed the ability to pay for less than a month because everyone was extending the rent on their old server until their new ones arrived. This was very scummy coming from OVH.

\- Later I found out they were complaining about "turnover" even though when I asked support if I could upgrade my server, they said the only way to do that is to cancel the old server and get a new one.

\- They removed e-mail support for Kimsufis even though some of them cost more than their new mid-range line that has it. Now they expect you to use a forum where responses have gone unanswered and everyone can see details on your server. They didn't even reduce the price.

\- There have been a few sporadic cases throughout the year where the server just lost connection to the internet for a minute. Support had nothing to say about this, but sometimes I could find some related message on travaux.ovh.net (this page gets more updates than status.ovh.net)

</comment></comment><comment><USER8> Is it possible to beat 1TB of disk storage space for just € 12.00+VAT ($16.64) a month? There aren't many backup options out there that you can rsync to and reach Glacier-like prices.

<comment><USER9> will it be there in a month though?

<comment><USER10> The Kimsufi brand is 8 years old now, and they are part of OVH which is 15 years old and the biggest dedicated hosting company in Europe with over 700 000 clients.

They have more chance to be there tomorrow than most hosts.

</comment></comment></comment><comment><USER11> I've used Kimsufi for over a year now. So far no complaints, granted that I'm not doing much with it. The main point I suppose is that in dedicated server market there are not a lot of players that can match such prices - in fact I couldn't even come up with an alternative except Hetzner, but they don't have the lower range servers like Atom.

<comment><USER12> I'm on Hetzner and servers are as advertised. Purchased from their server auction and got a very good deal. Some of them are not good deals, you have to know what you're shopping for. Available to americans after proof of ID, paid with paypal that converts your US dollars to euro's for you. Beats the pants off of a digital ocean in price/performance in the above $40 price range.

[https://robot.your-server.de/order/market](https://robot.your- server.de/order/market)

<comment><USER4> Hetzner is really bad.

If you get a tiny ddos attack for a few seconds, you'll get null routed for 24 hours. Any longer than that and they'll potentially kick you out.

If you've never been ddosed, your really don't have a lot of users. Multi gigabit attacks are available for the price of a cup of coffee.

[http://hackforums.net/forumdisplay.php?fid=232](http://hackforums.net/forumdisplay.php?fid=232)

<comment><USER12> I've read similar stories, but I figured for the price I'd try it out. I'm only on month 4 of using them and I don't have any horror stories to share yet.

Although, I do only have 1k daily users and I sit behind cloudflare.

</comment></comment></comment></comment><comment><USER13> Le nom provient-il de "Ce qui me suffit"?

<comment><USER14> Yep it does, it's a French company and it's crystal clear for us.

<comment><USER13> It was clear to me as well, but I wondered if it was just a cognate/false friend between French and another language.

</comment></comment></comment><comment><USER15> Judging from this thread and previous discussions on other sites, the main problem with Kimsufi seems to be that they're picky about the country where you come from, and so far it's not easy to tell which countries are allowed.

Last year, everyone outside of EU who ordered the €2.99 deal were canceled without any mention of the rules. Some non-EU customers were told to order from their Irish site (kimsufi.ie). But this year, it seems that they merged all the ccTLDs into a single multilingual website. Anyone have any idea which countries they allow/deny?

</comment><comment><USER16> Last time when their servers were 2,99$ or something I bought 3 and they were all cancelled without real reason.

Why should I trust them now?

<comment><USER17> That 2.99 euro deal was a disaster for them. Instead of new customers flocking to them, a large amount of their current customers were cancelling their existing servers that were more expensive and ordering the cheaper ones. And if I remember correctly it was in the tens of thousands of order backlog for that deal.

</comment></comment><comment><USER18> OVH's US site (ovh.com) is rage inducing. I've never tried this hard to give a company my money and still been unsuccessful. I'm stuck in some sort of login loop, where it refuses to accept credentials I just set up, and for my older account, rather than completing my order, entering credentials on the last screen of the checkout process boots me to the main landing page.

They've got some perfect matches for server setups I need right now, but if their checkout process is this bad, I shudder to think how much of my time dealing with any actual problems with the servers might consume.

</comment><comment><USER19> I switched from Hetzner to these guys few months ago. They are in the same price range but offer DDOS protection (Hetzner just null-routes you in such situations), which can be handy. Basically you get what you pay for. Not much of a customer support, but quite cheap compared to rest of the market. Useful for playing around or as a development box. The servers are in France (you can choose from a few datacenters), so good latency towards Europe's visitors. If anybody wants to tests them let me know, I can give you temporary access to one of my boxes.

</comment><comment><USER20> I have used a few of the Kimsufi boxes and had no issues with them. At meanpath.com we use 40 SoYouStart servers and 5 big OVH servers and have never had any issues. Excellent support was provided when we did run into problems with quick hardware swap outs or whole server replacements.

If you want to test out the speed of the network feel free to download some of our publicly released crawl files on [http://archive.meanpath.com](http://archive.meanpath.com) which is on a 2gbps burstable pipe.

</comment><comment><USER21> I was on kimsufi server for the last 3.5 years for all european projects from small to medium sized and we never had any problem with one of the servers. the last few weeks we are switching partly into the cloud and partly on an OVH Host-32 server.

price-performance ration at Kimsufi is fine from my point of view. I guess anybody who is ordering a VPS for 8€ / month should know that he will not get the latest technology in his box, but for the one or another usecase, such boxes are awesome.

</comment><comment> ezequiel-garzon Last time I checked they seemed to have an unlimited bandwidth usage policy, but this was buried in a forum. Could anybody using the service please answer this? Thanks!

<comment><USER22> Mine does. I don't know about the new ones.

</comment></comment><comment><USER23> A lot of bad experiences with Kimsufi here. Does this extend across the board for OVH in general?

Their 'enterprise' dedicated servers look really attractive.

$109,$174 for 64gb,128gb ram with really nice e5-16x0v2s. 2x 240gb intel S3500 ssds for $35 more a month.

[http://www.ovh.com/us/dedicated- servers/enterprise/](http://www.ovh.com/us/dedicated-servers/enterprise/)

Seemingly better network and infrastructure than hetzner too?

<comment><USER5> > A lot of bad experiences with Ovh.

The customer support goes up with the bill. You can't ask the same support for a 3e/month server and a 100e/month.

> Seemingly better network and infrastructure than hetzner too?

Yes. Ovh is one of the main Isp actor in Europe at the Wan level. Moreover Ovh is full ipv6 compliant, unlike hertzner, and bandwidth is totally free without quota.

Ah, and Ovh building itself their servers, they are the biggest PC manufacturer in EU. They don't even play on the same field.

</comment></comment><comment><USER14> I'm using them, it's descent until now however:

* No phone number nor contact form for any kind of support. * No way to change to change my password (or I didn't find it). And I don't like to be forced to keep those "randomly" generated password. They seem to have reduce everyextra to 0, their lean customer service is way too lean to my taste. Destroying obvious features to make your customer upgrade is bad.

<comment><USER24> The Ryanair of dedicated servers if you will.

<comment><USER14> You name it

</comment></comment></comment><comment><USER25> I use Soyoustart, another branch of OVH, and so far no complaints. The 32 GB memory is a godsend when you need to run 200 unicorn workers.

</comment><comment><USER26> Please don't run anything 'at-scale' on these. You get exactly what you pay for with these desktop-grade processors.

<comment><USER27> The main advantages over something like a VPS are having a dedicated full- sized hard drive and being able to run any OS you want on bare metal (they support remote iso installs via kvm and vnc). If you choose a non-atom processor you can also run your own virtual machines on these.

<comment><USER28> Any reliable VPS offering should support custom kernels -linode, prmgr, and ec2 do. While it's not "any OS you want", they support any kernel that runs under Xen, which pretty much opens the door to most distros you'd want to run a server with. Really, the only thing you're technically locked out of is Windows.

<comment><USER29> ec2 has windows.

<comment><USER30> Right but you have to pay extra for Windows instances. I think shuzchen is saying you can't install windows yourself at the linux box prices (EC2) whereas with a dedicated box can run whatever you want.

</comment></comment></comment></comment></comment><comment><USER31> More Slashvertising? :/

</comment><comment><USER32> But why 100 mbps?

<comment><USER33> a) 100M switchports are insanely cheap

b) It limits the damage you can do when your box gets owned.

b.1) It limits the amount of damage you can do if your business/usage model assumes more traffic than their business model assumes you'll use.

</comment></comment><comment><USER34> online.net is better to be honest

<comment><USER35> Care to elaborate? In what way are they better?

<comment><USER36> Kimsufi only uses second hand/refurbished desktop hardware, built "in the garage" and installed in low cost datacenters. Imagine a desktop motherboard just sitting on a metal sheet in a rack : that's it.

Online.net only uses branded hardware and server hardware (except the 'SC' product range) : Xeon, ECC, Hardware RAID, ...

I'd say the price/quality ratio is better at Online.net but you just might not need that higher quality if you are running a personnal blog.

Speaking about the support, OVH has been internationnaly selling for much longer than Online.net, it's still quite 'fresh' at Online.net.

About the network, OVH's one is wider and it has a datacenter in Canada, Online.net only has datacenters in France and their network has gone international last summer with many peerings/transits (they used to rely on a French ISP before). Online.net servers are all gigabit connected. Both network are DDoS protected. OVH has a mandatory SMTP filter which has its pros and cons.

</comment></comment></comment><comment><USER37> 16gb of ram for $37 CAD? what does the ipv6, 128 mean, 128 ip addresses? what is this 4c/4t mean?

<comment><USER38> 4core 4thread, /128 block of ipv6 addresses. google pl0x...</comment></comment>


We switched from Braintree to Stripe: How we f*cked up & what we did to fix it. - <AUTHOR> Full Article: https://www.deekit.com/braintree-to-stripe/
At Deekit we recently switched payment provider from Braintree to Stripe.
We messed up. And it was frustrating.
But here's our honest account of what happened and why we had to make the switch. Hopefully there are some learnings in there for you. <comment><USER2> The way this reads implies that Stripe was the problem when the article explains that initially going with Braintree without understanding your internal payment model completely and whether Braintree supported that model was the failure and that switching to Stripe fixed that issue. It's not so much a criticism of the services, just not doing enough requirements analysis before choosing a payment provider.

<comment><AUTHOR> Totally agree with you! In the article we fully outline why it was purely our own fault. The issue we found was that the decision was made during a pretty formative time in Deekit's past - we weren't 100% convinced which model we were going to run with. We stuck to an initial decision to go with Braintree when we really should have re-evaulated.

Lesson learnt. Hopefully others can avoid the same mistake.

</comment></comment><comment><USER3> Maybe resubmit with a URL rather than a self post? [https://www.deekit.com/braintree-to- stripe/](https://www.deekit.com/braintree-to-stripe/)

<comment><AUTHOR> Ah have done so! Thanks Nailer.</comment></comment>


Two simple changes that helped increase my happiness and improve my sleep - <AUTHOR> http://joel.is/post/63677050275/two-simple-changes-that-helped-increase-my-happiness

<comment><USER2> As a father of two small children, I can identify with this. If one of them wakes up and I need to get up in the middle of the night to settle the, back doen, then my sleep rhythm is completely screwed. I often lie awake for another 1-2 hours unable to get back to sleep.

The nights where they both sleep through are godsends! I feel so much better the next day.

Sometimes when one of them has had a really bad night, I need to go for a walk around the block in the morning to clear my head, otherwise I feel (unfairly since they can't help it) grumpy with the child that had woken me up.

Over time I'm fairly sure that this lack of sleep is detrimental to your health. I have no idea how people end up having 4, 5, 6 kids! They must be crazy.</comment>


Scraping web sites which dynamically load data (like Twitter) - <AUTHOR> http://blog.databigbang.com/scraping-web-sites-which-dynamically-load-data/ <comment><USER2> You can use PhantomJS for automated scraping. You have two options:

(1) Design your scraper is usually via a 1-to-1 correspondence with the routing logic and the client side templates. Create a new scraping module for each of the templates and use the scraping modules according to the data visible at each route.

(2) Another simpler approach is just to design your scraper to hi-jack the app's own XHR or Sockets module and collect the data directly via the API exposed to the web-app.

The latter approach is the really smart way to scrape client-side web-apps since you can get a lot of additional valuable metadata that may not be written to the screen.

<comment><USER3> Interesting. Do you have an example of the latter approach? I have been trying to build a web scraper, but many times after the HTML is returned, the javascript then loads the data dynamically. I'd love to learn of a few techniques to fetch the AJAX data.

<comment><USER4> Get firebug, or use developer tools in chrome and look at the requests the browser is making when you load the page, and when you scroll down and it loads more data. Then you just implement that in whatever language you are scraping with. I usually use pythons requests module.. That's about as easy as it gets for something like this.

</comment></comment></comment><comment><USER5> I used headless selenium successfully for executing javascript. it has a nice feature of waiting the browser until the some element appears in the HTML.

<comment><USER6> Here is another little snippet I used to scrape yelp before. It involved polling for a specific element on the page, if you can inject or find jQuery, this is pretty light and simple. edit: Should note that jQuery is less than necessary for this (since I'm sure someone would have said it right after I posted this), just makes me have to type less crap :)

[https://gist.github.com/91bananas/5644737](https://gist.github.com/91bananas/5644737)

</comment></comment><comment><USER7> Let's install couple things

        pip install robotframework-selenium2library
        npm install phantomjs

Run phantomjs and tell it to listen port for Webdriver traffic

        phantomjs --webdriver=4444

This goes to foo.txt

        *** Settings ***
        Library           Selenium2Library

        *** Test Cases ***
        Scrape Twitter
            [Setup]    Open Browser    https://twitter.com/HackerNews    firefox    main browser    http://localhost:4444
            Capture Page Screenshot
            Wait Until Keyword Succeeds    30    3    Find Waldo    Demand for HTML5 Skills On the Rise, Report Says http://bit.ly/90Vcnr
            Capture Page Screenshot
            [Teardown]    Close All Browsers

        *** Keywords ***
        Find Waldo
            [Arguments]    ${waldo}
            Click Element    css=.stream-footer
            Wait Until Page Contains    ${waldo}

And finally execute

        pybot foo.txt

Hope I didn't mess up with the formatting.

<comment><AUTHOR> I think using a browser extension is faster than using the webdriver. Do you agree?

<comment><USER7> Depending what we mean by "faster" and what is the usecase.

</comment></comment></comment><comment><USER8> Disclaimer: I don't have as much experience with phantomjs and the many more traditional services mentioned due to sticking mainly to jvm languages for my backends.

That being said:

I've run in to a lot of problems scraping sites with heavy javascript. I personally use selenium with a headless google chrome for it. [http://www.alittlemadness.com/2008/03/05/running-selenium- he...](http://www.alittlemadness.com/2008/03/05/running-selenium-headless/)

Granted, there's a bit of custom logic involved at times, but it's by far the most reliable compared to the alternatives I've seen like HTMLUnit.

It's allowed me to just focus on worrying about page content rather than worrying about if something will work or not.

</comment><comment><USER9> I'm actually working on this now for an app. The data is for the scores from a golf tournament. When I was that it loaded dynamically, I dug through all the requests using Chrome's developer tools. I was able to find the json that the page was using to load the data which turned out to be easier to deal with than scraping from html in the first place. So if you're running into this problem, try to find the url that they snag the data from in the first place.

</comment><comment><USER10> When all else fails you can resort to using webdriver. I generally try to reverse the request but occasionally the authentication weirdness and data obfuscation gets in a way to the point it's going to take more time than I'd like.

</comment><comment><USER11> I've been using PhantomJS to get upcoming movie listings from Comcast, so I can plan my DVRing. The hardest part (aside from only having dabbled in JavaScript so I have no idea how to write good or idiomatic JS) was keeping straight in my mind what is executing in the page environment, and what is executing in the environment that controls the script. Get the environments mixed up, and you won't be a happy scrapper.

Here's the code if anyone wants to play with it. Note that a couple of things are hard coded to my area. There's a cookie that gives the zip code, and there's a 981 that is the channel number of a channel that is higher than all the channels I'm interested in. This needs to be a channel that exists--you can't just pick a large number.

I was going to put this on Github at one point, but decided not to because I don't know what Comcast thinks of this sort of thing.

       var system = require('system');
       var page = require('webpage').create();
       var fs = require('fs');
       var of = fs.open("out", "w");
       var timer0 = null;
       var min_start = null;
       var want_exit = false;
       var days = 2;   // how many 24 hours worth of movies to get

       // if the page generates any console messages, dump them to our console
       page.onConsoleMessage = function (msg) {
           console.log('page: ' + msg);
       };

       //{ These functions are meant for use with page.evaluate()
       function set5()
       {
           var e = document.createEvent('MouseEvents');
           e.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
           var t = document.getElementById('options-advanced-hours-5');
           t.dispatchEvent(e);
           return 0;
       }

       function tag_as_stale()
       {
           var marker = document.getElementById("981");
           marker.setAttribute("foo","bar");
       }

       function fresh()
       {
           var marker = document.getElementById("981");
           if ( marker == null )
               return false;
           if (marker.getAttribute("foo") == "bar")
               return false;
           return true;
       }

       function get_width()
       {
           // The 'timeline' class is the div that contains the headings
           // for each half hour on the listings. It has a child div for
           // each half hour. The count of these children lets us tell
           // if the listings are in 1 hour mode, 3 hour mode, or 5 hour mode.
           var t = document.getElementsByClassName('timeline');
           return t[0].children.length;
       }

       function forward()
       {
           var e = document.createEvent('MouseEvents');
           e.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);

           // 'option-forward' is the class of the thingies that advance
           // the listings when clicked.
           var t = document.getElementsByClassName('option-forward')[0];
           t.dispatchEvent(e);
       }

       // Find all the movies on the current listings, and put their
       // information into an array attached to th window, from whence
       // they can later be extracted (see get_movie() below).
       function find_movies()
       {
           window.tzs_movies = new Array();
           window.tzs_next = 0;
           var listings = document.getElementsByClassName('listing movies');
           for (var i = 0; i < listings.length; i++) {
               var el = listings[i];
               var name = el.getElementsByClassName('listing-entity')[0].innerText;
               var start = el.getAttribute('data-starttime');
               var chan = el.parentElement.getElementsByClassName('channel-actions')[0];
               var call = chan.getAttribute('data-callsign');
               var cnum = chan.getAttribute('data-vcn');
               window.tzs_movies.push(start + ":" + call + ":" + cnum + ":" + name);
           }
           return window.tzs_movies.length;
       }

       // Get movie data stashed away earlier by find_movies().
       function get_movie()
       {
           return window.tzs_movies[window.tzs_next++];
       }
       //}

       // This cookie seems to set the zip code for the listings.
       phantom.addCookie({
           'name':     'rh',
           'value':    'h%3D25095X%26z%3D98370',
           'domain':   '.comcast.net'
       });

       // This gets the movies from the page and prints them.
       function dump_movies()
       {
           var num_movies = page.evaluate(find_movies);
           var max_start = null;
           var page_start = null;
           for (var i = 0; i < num_movies; ++i) {
               var m = page.evaluate(get_movie);
               var parts = m.split(":");
               var start = parseInt(parts[0]);
               if (min_start == null || start < min_start)
                   min_start = start;
               if (page_start == null || start < page_start)
                   page_start = start;
               if (max_start == null || start > max_start)
                   max_start = start;
               if (start - min_start > days*86400000)
                   want_exit = true;
               of.writeLine(m);
           }
           if (want_exit) {
               of.close();
               phantom.exit();
           }
           var date_max = new Date(parseInt(max_start));
           var date_page = new Date(parseInt(page_start));
           var from = date_page.toDateString() + " " + date_page.toTimeString();
           var to = date_max.toDateString() + " " + date_max.toTimeString();
           console.log(from + " ==> " + to);

           page.evaluate(tag_as_stale);
           page.evaluate(forward);
           timer0 = setInterval(wait_for_data,1000);
       }

       // Check for data ready. Called from interval timer when we are
       // waiting for data. If we've got the data, kill the timer and
       // dump the movies.
       function wait_for_data()
       {
           result = page.evaluate(fresh);
           if (result) {
               clearInterval(timer0);
               dump_movies();
           } else {
               console.log("wait_for_data...");
           }
       }

       if (system.args.length == 2)
           days = parseInt(system.args[1]);
       page.open('http://xfinitytv.comcast.net/tv-listings', function () {
           // The site seems to get upset if you press the "forward" button
           // too many times. It doesn't seem to matter if each press is
           // advancing by an hour or by 5 hours--it is the number of requests
           // that seem to be limited. In 1 hour mode it is hard to even get
           // a day's worth of data. To allow getting a couple days or more,
           // we'll start look at the current mode, and if it is not the 5
           // hour mode, we'll change the mode to 5 hour mode first.
           var w = page.evaluate(get_width);
           if (w < 10) {
               // in 1 hour or 3 hour mode
               page.evaluate(tag_as_stale);
               page.evaluate(set5);
               timer0 = setInterval(wait_for_data,1000);
           } else {
               // in 5 hour mode (or better?) so we can go right to data extraction
               dump_movies();
           }
       });

<comment><AUTHOR> _The hardest part was keeping straight in my mind what is executing in the page environment, and what is executing in the environment that controls the script_

YES! that's why we used a browser extension in this and the previous article. Because you know that all the objects live in the same world. You don't have this controller/scraper duality. If someone likes the Phantomjs approach, they can implement the controller as a background web page and the scraper logic in the content.

</comment></comment><comment><USER12> Doesn't Twitter have an API you can query?

<comment><USER13> From the title:

> _...(like Twitter)._

I think that's just an easy example the author used of a popular site that uses a lot of front-end AJAX calls to show content.

</comment></comment><comment><USER14> use perl with HTML::Robot::Scrapper

<comment><AUTHOR> Does it scrape Javascript/AJAX sites?

<comment><USER15> Don't think so, but there are a lot of Perl options that do.

In no particular order: Gtk2::WebKit::Mechanize, Win32::IE::Mechanize, WWW::Mechanize::Firefox, WWW::Scripter, WWW::Selenium

Personally, I use WWW::Mechanize::Firefox</comment></comment></comment>


Humanity will never achieve artificial intelligence, and this is why - <AUTHOR> https://www.memyselfandrobot.com/artificial-intelligence/humanity-will-never-achieve-artificial-intelligence-and-this-is-why/ <comment><USER2> Does creating an artificial brain or simulating it count as an A.I.?

<comment><AUTHOR> Yes.</comment></comment>


How to ask smart questions, by Eric Raymond - <AUTHOR> http://www.catb.org/~esr/faqs/smart-questions.html

<comment><USER2> I believe that a document aimed at hackers describing some basic etiquette in dealing with the general public would be a far more useful document. This reeks of arrogance and to me, exemplifies what is wrong with the Open Source crowd today.

<comment><USER3> Spoken like a man who hasn't read ESR's sex tips for geeks. ESR is a weirdo, and has had more or less nothing to do with open source for more than a decade now.

</comment></comment><comment><USER4> Here is the procedure for asking questions on the Internet:

1\. Ask your question carefully and appropriately.

2\. Watch everyone ignore you.

</comment><comment><USER5> I'd like to append one. In a limited time frame q/a, one fast simple question with NO 'quick' follow ups.</comment>


Need some advice - <AUTHOR>

I'm looking for a job, and I want a programming one, which languages are the ones that could get me in an interview or which sites can lead me to learn and then find a job into that area?
I know some Java and python.
regards,
the lord of the poros. <comment><USER2> Depends on where you are of course. And there are any number of other sites for learning than what I list; you'll decide which are best for you after you've soaked up a bit of whatever you're studying.

Be sure to notice the stackoverflow info page at the end of each of the four items below. They're all four pretty good.

In order of employability (IMO)

Java - [https://www.java.com/en/](https://www.java.com/en/) \- [http://stackoverflow.com/tags/java/info](http://stackoverflow.com/tags/java/info)

C++ - [http://www.cplusplus.com/doc/tutorial/](http://www.cplusplus.com/doc/tutorial/) \- [http://stackoverflow.com/tags/c%2b%2b/info](http://stackoverflow.com/tags/c%2b%2b/info)

C - [http://www.cprogramming.com/tutorial.html](http://www.cprogramming.com/tutorial.html) \- [http://stackoverflow.com/tags/c/info](http://stackoverflow.com/tags/c/info)

Python - [http://python.org/doc/](http://python.org/doc/) \- [https://duckduckgo.com/?q=python+tutorial](https://duckduckgo.com/?q=python+tutorial) \- [http://stackoverflow.com/tags/python/info](http://stackoverflow.com/tags/python/info)

<comment><AUTHOR> didnt know about the stackoverflow...thanks</comment></comment>


Bad Science: Illegal downloads and dodgy figures - <AUTHOR> http://www.guardian.co.uk/commentisfree/2009/jun/05/ben-goldacre-bad-science-music-downloads <comment><USER2> Ben also maintains a blog at <http://www.badscience.net/>

My understanding is that the editors at The Guardian give him a lot of freedom but there are still items published on his blog which don't make it into his column.

</comment><comment><USER3> This is a good example of a journalist digging into facts reporting by more lazy journalists, and is a thought process we can all apply to other stories we read online or elsewhere.</comment>


More store chains sign up for CurrentC than for ApplePay - <AUTHOR> http://www.reuters.com/article/2014/10/28/us-apple-payments-idUSKBN0IH0AZ20141028

<comment><USER2> I have some sympathies for the retailers in this. My understanding based on previous reading is that the CurrentC system works by debit, rather than credit, meaning they avoid credit card fees. Most bigger shops like Rite-Aid already use debit (it's why you can get cash-back at grocery stores).

On the other hand, their other stated reason for CurrentC is logging yet more piles of customer purchasing data, which can bugger off for all I care.

<comment><USER3> The other _major_ difference between CurrentC and credit card payment systems (including Apple Pay) is the disposition of liability in the event of fraudulent purchases. In the US, credit card holders have extremely limited liability for fraud, and are rarely held accountable at all. CurrentC makes the end-user responsible for fraud, which is terrifying considering the participating retailers' track record for security.

<comment><USER2> That is an element I hadn't considered, and yeah, that's pretty scary indeed, especially in light of the recent email hacking at CurrentC. I was lucky when I lived in the states to have a credit union that largely treated debit as credit re: fraud, but I've known many who were not so fortunate.</comment></comment></comment>


Show HN: Birthday Collector (collect birthday dates with ease) - <AUTHOR> https://stellar-leopard.glitch.me/ <comment><AUTHOR> Hi all,

developer here. I created a website to collect birthday for friends and family.

How it works: Create a calendar from the homepage. Then after submit you will get a link that you can share with friends and family. After a week we will send a csv file that you can import into your calendar.

Why I created this? I created this to ease the pain to got through manual collecting of birthdays. Normally I would ask or someone tells me but I forget to add it or its to much effort to add this. The link is valid for always so you can reuse it if you get a new family member or friend.

Hope I can help some people out to ease the pain of collecting birthdays.

Feel free to post any feedback or ask questions looking forward to it. Currently the website is very basic, but will look into making it better but the functional it works.</comment>


Loss of smell is a Covid19 symptom. That's a test. Everyone should do that test - <AUTHOR> There is strong evidence that loss of sense of smell is a common (and peculiar) symptom of Covid-19. Partial information is worth something. Everyone in the world should be testing their sense of smell, at least daily, and we should be recording the results somewhere. Otherwise we are just throwing enormous amounts of information away.<p>At the moment it's just: "Some people who test positive report a loss of smell. That's interesting. Maybe we should look into it." <comment><USER2> "Partial information is worth something"

I disagree. A false negative in a mild case could be dangerous if someone assumes no COVID-19 and socially interacts with vulnerable people. A false positive might give a vulnerable person the courage to forgo social distancing and actually contract it.

<comment><USER3> > A false positive might give a vulnerable person the courage to forgo social > distancing and actually contract it.

What?

If they think that then they're not thinking it through all the way. They may still get it in the future from some source. Also who gets courage to expose themselves to a contagion?

<comment><USER2> Maybe I wasn't clear. What if you have mild symptoms including loss of olfactory sense, and in a week or two assume you're relatively immune based on this logic? There might be people who may not observe precautions as much (washing hands, social distancing, etc.) if they think they've already contracted the virus and survived.</comment></comment></comment>


Why is Google Glass the whipping boy for anyone worried about privacy issues? - <AUTHOR> http://www.independent.co.uk/life-style/gadgets-and-tech/features/why-is-google-glass-the-whipping-boy-for-anyone-worried-about-privacy-issues-9724984.html <comment><USER2> Google Glass will be the future of aviation avionics for sure. Your be able to perform more "looking out the window" flying with Google Glass. The iPad electronic flight bags will be history.

On a partially related topic: Can Google put the Glass tech in a stand alone wristband/display so no Bluetooth connection to phone would be required? Then we can have Goo Glass tech on the wrist, no phone to carry and privacy issues would abate. This can't be that hard. About 15-20 yrs. ago Timex made the DataLink Beepwear Pro which was a standalone pager watch functioning in the 900 MHz band.</comment>


Why American Elections are Flawed, and How to Fix Them - <AUTHOR> https://research.hks.harvard.edu/publications/workingpapers/citation.aspx?PubId=11349&type=WPN <comment><USER2> Maine has "Ranked Choice Voting Initiative" (Question 5) on the ballot this election. If their citizens vote for it, they'll be able to cast first, second and third choice ballots.

In theory, that should prevent the 3rd party spoiler effect from happening while allowing them to vote their conscious.

In the last two election cycles, they split the "left" vote and allowed a far right governor to get elected.

With Ranked Choice, you get to pick your first choice. If that person didn't get enough votes, your second choice will have your vote instead.

I think they're the first one in the country to do this. I hope they enact this and we can watch the States truly be laboratories for election improvements.

<comment><USER3> I'd recommend Approval Voting, it has fairly good properties from the perspective of Social Choice.

<comment><USER4> I also prefer Approval Voting (although if it were an approval vote, I would approve of both Approval Voting and Ranked Choice, heh).

One question to ask yourself to figure out which system you like better is what the outcome should be of this election:

Candidate 1 is loved by 55% of the population and despised by 45%. Candidate 2 is loved by 45% of the population and despised by 55%. Candidate 3 is tolerated by 85%.

Approval Voting would choose Candidate 3. IRV would choose Candidate 1. Who "should" be elected?

<comment><USER5> Under approval voting, wouldn't the people who love candidate 1 realize that they should vote strategically, and not approve of candidate 3 on their ballots, causing candidate 1 to win this election?

<comment><USER6> [http://scorevoting.net/RVstrat6.html](http://scorevoting.net/RVstrat6.html)

</comment></comment></comment></comment></comment><comment><USER7> What do you folks make of this: [https://www.youtube.com/watch?v=hDc8PVCvfKs](https://www.youtube.com/watch?v=hDc8PVCvfKs)

Against: O'Keefe is not a perfect journalist, as agenda-driven as anyone anywhere

For: These people were on the payroll, fired right after it happened, and Bob Creamer met with Obama 300 times. [https://www.reddit.com/r/the_donald](https://www.reddit.com/r/the_donald) has done a great job "following the money" even if they are massively biased.

My vote is still up for grabs (tonight's debate might settle it), but a YUGE part of me does want to see an impartial investigation. The kind we won't get with Comey/Clinton/Lynch.

Side note - very good PR of them to drop the video right after Obama criticized Trump for his rigging claims.

<comment><USER8> Start with [http://www.snopes.com/2016/10/18/project-veritas-election- vi...](http://www.snopes.com/2016/10/18/project-veritas-election-videos/) and go from there regarding the validity of these videos. tl;dr is that the 'reporter' in this case has a history of making misleading videos by collecting out of context quotes and then splicing in different video segments that make these out of context ones seem sinister.

<comment><USER9> Given that people have already been fired/quit and others are distancing there must be some truth to these videos. Is there any link attacking the validity of the video itself and not the source?

<comment><USER8> There does not have to be truth for people to decide to fall upon their swords to avoid any suggestion of a scandal. Given how apparently gullible people are the simple fact is that whether it is true or not does not matter, nor does the actual context in which the conversations occurred. If you worked for a campaign and I had a bar conversation with you about how voting fraud might happen and then only saved/broadcasted the part after your initial "we do everything we can to prevent it, but if you were to ask me how it could happen given existing safeguards then..." bit of the conversation then I would expect to read about you getting fired or quitting the next day as well.

To examine the validity of the video we would actually need all of it, but that is not the point for O'Keefe. His goal is to maintain his street cred with the trumpistas and ratfucking part of the community that might keep paying him after having fallen so far with his last few failed attempts. Given the source and this source's history of manipulating videotaped conversations on multiple occasions to create a narrative that does not match what actually happened, it is smarter to start assuming the videos are a lie and asking for proof that this is not another case of misleading edits. Show me the whole tape or I will assume O'Keefe is telling lies again.

</comment></comment></comment></comment><comment><USER10> Unfortunately, the ones that have to decide whether to implement the suggestions in this report, are the same people that were put into power by the failing mechanisms behind the US' election system. Their hands are tied by the powerful lobbies that have sponsored their campaigns.

<comment><USER11> Would it not be possible to start gradually? I am just speculating a plan here, but start by implementing some of these suggestions that can be applied on a state level in some minor states first. It may be easier to lobby those local politicians for a change of rule.

A successful 'trial' (one might even be able to convince them by saying it's going to be a trial at first) might convince other state politicians and/or people elsewhere to implement similar systems in their own state.

Disclaimer: I am Danish and Denmark apparently ranks top in their PEI index.

<comment><USER12> I think that's a big part of what needs to happen. Make these changes at the state and local level, and eventually we might see some diversity at those levels. Then we'll be able to have a conversation on the national level. Like the original comment here says, Democrats and Republicans have no incentive to push for this because they benefit from the First-Past-the-Post voting we currently have.

</comment></comment></comment><comment><USER13> From the abstract:

> deepening party polarization over electoral procedures, the vulnerability of > electronic records to hacking, and the impact of deregulating campaign > spending, compounding the lack of professional standards of electoral > management.

All of these things people have rightly been complaining about for years. It would be good to get some recognition of them.

> Section 4 considers pragmatic reforms designed to strengthen U.S. electoral > laws and procedures, recommending expanding secure and convenient > registration and balloting facilities, [...] and strengthening impartial > dispute resolution mechanisms.

.. but here we hit the problem: too many Americans no longer really believe in "impartiality". This is the guiding theme of the Trump campaign, that anyone who disagrees with them is a lying partisan.

Not to mention that the Republican party have spent years working against "convenient registration", instead preferring partisan disenfranchisement through voter ID and similar measures.

<comment><USER14> As a European I don't understand how requiring an ID to vote is disenfranchising voters? It just stinks of voter fraud, and in light of the latest Project Veritas videos I can only conclude that the establishment parties and democrats in this case are engaged in massive electoral fraud and fight these initiatives not on principle but to maintain mechanisms by which they can influence the result.

It's just weird, especially since the US has been very vocal in judging others with regards to their electoral processes. Pot calling the kettle black it seems.

<comment><USER8> If you believe the project veritas videos you should look harder at the source and his history of creating misleading videos. The problem is that in the US it is quite possible to get along just fine without a government-issued ID; mandating such ID can be considered a barrier to voting since it is actually inconvenient to get such an ID in the first place. Your assumption that there is massive electoral fraud in the US is simply incorrect and in fact there is far more voter fraud across Europe than there is in the US. Most voting in the US occurs in-person, and in such cases voter fraud is incredibly rare (as in less than 100 known cases over billions of ballots cast.)

<comment><USER14> You mean, if I believe my own eyes and ears rather than someone insulting me on the internet? You're funny.

If someone can't be bothered to obtain an ID to vote, possibly they shouldn't be voting at all. Civic responsibility is not an inconvenience, it's what keeps civilization running. Taking a few moments out of your daily routine to be informed and choose your government is the least one should expect.

<comment><USER8> _If someone can 't be bothered to obtain an ID to vote, possibly they shouldn't be voting at all._

And when those people without IDs happen to be poor and minority voters, so much the better, right? Getting a government ID is not 'taking a few moments out of your daily routine', or we would not be having this conversation. How about you ask an American how fast and easy it is for them to just waltz in the the DMV and walk out a few minutes later with their shiny new ID card. State IDs are done by the same agency, and a lot of those poor people have one or two jobs they are working where taking an entire day to get an ID could cost them serious money or their job itself.

<comment><USER15> I think in the US you have to have an ID to get a job. Last time I looked at an I-9, it required 1) proof of citizenship or right to work (GC); 2) proof of identity.

<comment><USER8> If you take a look at the actual documents which are required for an I-9, they are a lot more flexible than what are required by most of the voter ID laws the courts are throwing out left and right. The proof of citizenship can be a birth certificate or a social security card, while the proof of identity can be a school ID, a local government ID card or a military ID. If you started your job before 1986 you never needed to provide the information, nor would you if you were a retiree or on disability.

</comment></comment></comment></comment></comment></comment></comment><comment><USER16> was hoping to see some mention of the "third party problem", that is, voters can't express their preference for a so-called "alternate" candidate without taking votes away from their second preferred choice. IMO allowing some form of ranked voting, while this is completely politically untenable in the near future, should at least be part of the discussion. Because it also clarifies how without such a system (given the electoral college system in place as well, which I think is a good thing), voting for an "alternate" candidate really does help the opponent of your second choice.

<comment><AUTHOR> Hey Zzzeek! Ranked choice is on the ballot for Maine voters next month. Maybe more states will adopt it in the future..

</comment></comment><comment><USER17> Direct PDF link: [https://research.hks.harvard.edu/publications/getFile.aspx?I...](https://research.hks.harvard.edu/publications/getFile.aspx?Id=1431)

</comment><comment><USER18> I find the American rule of having one representative per district flawed, as it gives an unfair advantage to large parties. In the Swiss system, I can cast 20 votes if my state has 20 representatives. This allows a party who get 5% of the votes to win a seat. Also, voters are free to vote across party lines as they like, but one can vote at most twice for the same candidate. That allows to influence the ranking of candidates within parties, which is for example not possible in Germany, where the voters can only choose between pre-arranged lists provided by the parties. The Swiss voting system allows for much more elaborate voting strategies than any other. I, for example, usually start with the list of my preferred party and then remove all lawyers and career politicians, because I think they are over-represented. I wonder why there aren't many countries that copy the Swiss system of electing the parliament. Maybe because it gives more power to the voters than typical politicians feel comfortable with?

</comment><comment><USER19> Ok. I read the entire pdf.

My take.

Academia affords one to spend a lifetime on an issue. Author had '99 citing. If your thing is elections then you have to write about this.

Only a revolt by the people will change the election process significantly - or Lawmakers vote ++ if they think they will get more votes/representation. I do not believe this report or 100 others will impact elected officials. Sure, having a leading university will get quotes but not action.

I do not believe our system is in peril. I do not believe our system needs to be fixed. I do not believe this election is rigged. I trust the outcome.

I do hope there are more "normal" people in the political pipeline in future years so our choices can be better.

Life has so many choices. The choice to vote for president is only one.

<comment><USER20> I agree with your one comment. Only true revolt will cause a change. People don't really care in the end. As long as they have an iPhone and Netflix and a 50" Samsung, who really cares? Everyone complains a little but there is no real movement. As bad as things are (and could get), the fact is that they are objectively pretty freaking great.

</comment></comment><comment><USER21> For all offices except the president, I believe all public advertising/campaigning should be restricted to people who reside in the state. No PACs, no national parties, no outside financing. The candidates are supposed to represent the people of their state, to take money or other influence from anyone else is inappropriate. I suppose this could be implemented at the state level.

</comment><comment> angry-hacker I would be surprised if anyone honestly believe they are are honest.

It all depends on your narrative if you accept it or not.

</comment><comment><USER22> Link to the author's website for the Electoral Integrity Project: [https://sites.google.com/site/electoralintegrityproject4/](https://sites.google.com/site/electoralintegrityproject4/)

It is an 'independent academic study.' What I want to know is, have these people been lobbying Congress to implement their suggested changes at all?

</comment><comment><USER23> I could have a hundred fast foods for breakfast and unlimited cereal selections for brinner and you give me two presidential candidates.. ?!

<comment><USER24> It's the illusion of choice: Choice where it doesn't matter, no choice where it does.

</comment></comment><comment> d--b it's not a very smart move to publish this right before the election. "Even Harvard says the election is rigged."

<comment><USER25> But Obama says the elections are not rigged, how can this be?

<comment><USER26> I just recently heard of Obama's position you're referring to, and I had a different interpretation.

"Rigged" means a coordinated and malicious manipulation - this is something that before Trump no one had claimed (the GOP or otherwise). "Flawed", or even "fraud", is more subtle - for example, an electoral administrator miscounting votes due to strange patriotism, lack of training, indifference, or excessive partisanship.

I saw Obama's point as being rooted in "Never ascribe to malice that which can be explained by incompetence", and that actually rigging the election in the US (and getting away with it) is a lot more complex than it seems on surface. Sort of like faking the moon landing.

<comment><USER27> >"Rigged" means a coordinated and malicious manipulation - this is something that before Trump no one had claimed (the GOP or otherwise).

There were (and still are) wide spread claims that Republicans outright stole the results of the 2004 election in Ohio, going all the way to John Kerry himself.

[http://www.newyorker.com/magazine/2015/12/21/negotiating- the...](http://www.newyorker.com/magazine/2015/12/21/negotiating-the- whirlwind)

Refusing to accept election losses has been a hallmark of Democrats in the last 20 years. They refuse to accept the 2000 election, said that Republicans stole the state of OH in 2004, and even now claim that the current Republican majorities in both the House and Senate are the result of "gerrymandering."</comment></comment></comment></comment>