Doom Eternal Privacy Policy Allows Collection and Disclosure of Medical Records - <AUTHOR> https://wrap.bnet.idtech.services/legal/?limited=true&fragment=https%3A%2F%2Fbethesda.net%2Fdata%2Fpp%2Fen_fr.html <comment><USER2> This is nothing story.

There are categories of data per the California privacy law. This is a whole category called "Consumer Records" and because they collection some of it in this category they have to declare the whole category.

Tons of companies do the same - 4M for example:

[https://www.google.com/search?q=paper+and+electronic+custome...](https://www.google.com/search?q=paper+and+electronic+customer+records+containing+personal+information%2C+such+as+name%2C+signature%2C+physical+characteristics+or+description%2C+address%2C+telephone+number%2C+education%2C+current+employment%2C+employment+history%2C+social+security+number%2C+passport+number%2C+driver%E2%80%99s+license+or+state+identification+card+number%2C+insurance+policy+number%2C+bank+account+number%2C+credit+card+number%2C+debit+card+number%2C+or+any+other+financial+or+payment+information%2C+medical+information%2C+or+health+insurance+information&oq=paper+and+electronic+customer+records+containing+personal+information%2C+such+as+name%2C+signature%2C+physical+characteristics+or+description%2C+address%2C+telephone+number%2C+education%2C+current+employment%2C+employment+history%2C+social+security+number%2C+passport+number%2C+driver%E2%80%99s+license+or+state+identification+card+number%2C+insurance+policy+number%2C+bank+account+number%2C+credit+card+number%2C+debit+card+number%2C+or+any+other+financial+or+payment+information%2C+medical+information%2C+or+health+insurance+information)

<comment><USER3> I do not accept "But everyone is doing it" defense. In fact, if anything, this is a good indication that it should not be happening. Yes, you are right. This is how things are. This is not how things should be.

<comment><USER4> I don't think the implication is "everyone is doing it" as much as "these data categories (and category descriptions) are standardized across every company."

I am not a lawyer, but I think it is reasonable to assume that this when drafting the law, law makers had to:

\- Choose a set of categories that were not to broad and not too narrow, and optimized for reader interpretability/clarity

\- Mandate companies to use standard descriptions of these categories in order to prevent them from obfuscating what it was that was being collected.

It's sad to me how many people here immediately assume either malicious intent by iD or incompetence by their lawyers as the only possible explanations. Making something that is widely applicable, easy to interpret, and is meaningful isn't an easy task. Thats not to say that these categories are perfect, just saying there's not an objectively "right" answer.

<comment><USER5> Sad? You're feeling bad that a corporation might be judged unfairly? Jesus christ.

<comment><USER4> I'm sad that the people like you arrogantly assume they are smarter than other people (including those for whom this is literally their job), and if something doesn't fall into their narrow concept of "what makes sense" they default to malice or incompetence as the only explanation and deny the possibility that complexity or nuance could exist.

<comment><USER5> You're missing the point—who cares what's right? It's a corporation, not a person. Why feel sad about unfairness rather than focusing on the source of the unfairness—data collection itself, or the regulation that people need to be told and fixing that? There's no need to be sad—and to me, no impulse—if you actually have power in society to change what's wrong.

<comment><USER4> Actually you're missing the point. I'm not sad for a corporation, I'm sad that the tech mentality is still that malice/incompetence are the only possible explanations for things that on the surface don't make sense, and that they (non experts on the subject at hand) clearly know better and would do a better job. This is hubris.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> It's just a table of definitions pulled straight from the California Consumer Privacy Act (CCPA), which defines 11 categories of information, and requires that you disclose if you collect it.

</comment><comment><USER7> The submitted title breaks the site guidelines by editorializing. Normally we'd change it to the article title, but in this case every single comment in the thread would become meaningless, so I'm going to downweight the submission instead.

" _Please use the original title, unless it is misleading or linkbait; don 't editorialize._"

[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

If you want to say what you think is important about an article, that's fine, but do so in the comments. Then your view will be on a level playing field with everyone else's.

[https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...](https://hn.algolia.com/?dateRange=all&page=0&prefix=false&query=by%3Adang%20%22level%20playing%20field%22&sort=byDate&type=comment)

<comment><USER8> Seems like it's less editorializing and more using the title to draw attention to a fact (not an opinion, it's either true or it isn't) about an existing web page that might not have been obvious to somebody clicking on a link titled 'ZENIMAX MEDIA ONLINE PRIVACY POLICY' and linking to the same.

Is this not allowed? Usually I actually appreciate it when the link goes straight to the primary source in these cases rather than some intermediate news site.

edit: maybe I'm looking at an edited title?

<comment><USER7> Cherry-picking one detail and making that the title is actually the leading form of editorializing. Titles are by far the biggest influence on threads, so this is a big deal.

On HN, being the submitter of an article doesn't confer any special rights to frame it for everyone else. That's why we ask people to express their opinions in the comments rather than the title. HN readers should make up their own minds about what parts of an article are important.

It's true that this policy can't just be applied mechanically and that there's room for nuance. In this case, though, the argument that reverting the title makes the submission a non-story is actually accurate. If the responses in the comments are correct, then indeed it is a non-story.

<comment><AUTHOR> To be honest, I started to write a tweet to get around this rule, but it felt childish to approach it in that way and I considered a shallow blog post instead. Next time I'll write the tweet so that the submission can rise to story status like this thread: [https://twitter.com/olenskae/status/1283000201993748482](https://twitter.com/olenskae/status/1283000201993748482)

or this one: [https://twitter.com/paulg/status/1282052801347100675](https://twitter.com/paulg/status/1282052801347100675)

<comment><USER8> This is exactly what I was thinking.

It's not editorializing. It's framing a discussion of a certain part of a web page that is _not_ an article by using a title that is a factual statement about said web page. The obvious "workaround" is to publish some low-effort tweet or blog post or whatever, which further muddies the waters re: the other "guideline" which says you should submit primary sources if possible.

I get wanting to take a hard line on titles, but I think the "guideline" as written is confusing. The bit about editorializing should be taken out, to make it clear that _actual_ editorializing isn't precisely what's prohibited.

<comment><USER7> I don't think that's right. We have a decade of experience with this, and while there are always corner cases, the HN rule and associated moderation practice works surprisingly well. It creates a relatively level playing field and lets the community consider a submission from first principles. That leads to much more diverse discussion than you get if the title is skewed and primes everybody.

If people start making tweets purely to put their spin on an article, HN users will probably notice and flag the post. I mean, who knows. People are welcome to try. We're not trying to stop anyone from expressing their view—but most of the time it's cheap and inflammatory when someone hijacks a title to do so.

Title dynamics are fascinating. It used to irritate me that people place so much importance on titles, but eventually I got it. One way of looking at it is, it's a power law: the first 1% of information in (let's call it) an article stream has 90% of the importance. Poof, now it makes sense why titles are so impactful. I suppose that many power laws seem paradoxical when not recognized as such.

<comment><USER8> I'm not making a value judgment or suggesting that you don't know how to run your website and achieve the results you want, in general, nor am I saying titles aren't impactful (including in the way you're worried about). On the contrary, I think HN is moderated well and that its community moderation features and "algorithms" in general are well thought out.

I'm simply taking issue with the word "editorialize" in this context, because that's not what this is. There is no "spin" here. This title is solving the same completely innocent problem I'd have if I wanted to submit a link to apple.com after a new $PRODUCT was announced, i.e. that the interesting thing about the linked web page isn't obvious if my title is just 'Apple'. It's fine if HN doesn't want me to title that submission e.g. 'Apple Announces New 24" MacBook Pro', but that can't be because it's a case of editorializing, because it isn't. This does not strike me as substantially different.

I feel like you think I'm saying non-neutral editorializing and framing should be allowed in titles, which is absolutely not true.

<comment><USER7> Ok, I think I understand you better now.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> This couldn't possibly be true, could it? Bad copy paste job?

<comment><USER10> Maybe consumers should have the ability to sue companies who force them into irrelevant, spurious, or onerous terms of service. It's not enough that these likely won't hold up in court, because the possibility exists that they may.

<comment><USER11> I'm not sure how this would hold up given the inability of United States congresspersons to prevent forced arbitration language being inserted into just about every contract we sign every day.

</comment></comment></comment><comment><AUTHOR> Edit: the link broke shortly after I posted it, this one is working: [https://www.zenimax.com/legal_privacy_us/](https://www.zenimax.com/legal_privacy_us/)

Bought Doom Eternal on the steam sale just recently and found this:

"Customer Records: paper and electronic customer records containing personal information, such as name, signature, physical characteristics or description, address, telephone number, education, current employment, employment history, social security number, passport number, driver's license or state identification card number, insurance policy number, bank account number, credit card number, debit card number, or any other financial or payment information, medical information, or health insurance information."

This is explicitly listed as collected and disclosed

They also list browsing history:

"Usage Data: internet or other electronic network activity information, including, but not limited to, browsing history"

<comment><USER12> I'd want to say: "Good thing they don't have access to any of that", but unfortunately, one place Steam has not innovated at all is security: It's very good at installing games on your computer, but those games can mostly do whatever they want once they're there.

Microsoft got a lot of hate (some deserved, some not) for pushing the Microsoft Store and UWP as a potential game distribution platform (originally with some exclusives from the Xbox side of the world), but for all its faults, it used sandboxing.

<comment><USER13> I have lots of friends who play shooting games semi-competitvely (they're all in the very high ranks of overwatch/csgo/etc). They are all _very, very, very_ excited about Valorant's ring-0 anticheat. Lots of people want features that can't be achieved with a sandbox.

<comment><USER12> I definitely understand that. Cheaters have pushed me out of most first-person shooters I'd enjoyed. But I also have significant concerns about game companies having that much access to my general-use computer.

Perhaps the solution here is not to do personal/sensitive work on gaming machines, but then we're right back to having separate game consoles...

<comment><USER14> Alternatively: Only play video games with people in your trust network. Friends, friends of friends, etc., so that you have some recourse against griefing and cheating.

<comment><USER12> This doesn't really help: I don't have a choice on whether or not my shooter of choice implements anti-cheat.

Perhaps an ideal scenario would let a player choose whether or not to enable a game's anti-cheat, but that it'd be required for certain matchmaking and (obviously) competitive features. So that I can opt out if I'm just trying the game casually or just playing with friends in a private room, but can enable it if it's something I intend to play seriously and am invested in enough to give deep access to my system?

</comment></comment></comment></comment></comment></comment><comment><USER15> As someone who currently works in healthcare tech I can tell you that taking on health records is one of the riskiest things any company could ever do. In fact we try to keep health records as isolated as technically, and humanly, possible.

For each HIPAA violation a company will be fined $10,000 dollars per customer. If ten million records on a database are part of a breach the company can be out of business.

It boggles the mind that anyone would want to take on that liability.

[https://www.hhs.gov/hipaa/for-individuals/guidance- materials...](https://www.hhs.gov/hipaa/for-individuals/guidance-materials- for-consumers/index.html)

<comment><USER16> It takes more than storing medical data to be covered by HIPAA. Usually you have to be a medical provider or have a business agreement with a medical provider. If I upload an MRI scan to imgur, imgur isn't instantly governed by HIPAA.

This means data harvesting companies can siphon up this stuff where they can find it. As long as they don't have a particular contractual relationship with an actual hospital, it's just like any other data, and they're not governed by HIPAA.

There may be some other ways to get governed by HIPAA, but that's the general rule. It's hard to do by accident.

<comment><USER17> Data brokers aren't interested in a couple of records here or there of x-rays from Imgur.

They want millions of records with some kind of identifier, and some kind of predictive value. Eg. The number of ice creams I buy might be a good predictor of if I'll be buying diabetes treatment next year.

Without all 3, your data won't be used.

</comment></comment></comment><comment><USER18> I've had my gaming machine on a separate box for awhile now. Games and their DRM have been getting worse and worse. Even games like Kerbal Space Program, which I loved, harvested all your browsing data. Like, seriously, WTF?

So I've kept all that garbage on its own box. It's nicer that way anyway, since I don't use Windows as my daily driver it helps me keep a Windows machine around for other toxic software like Photoshop.

I previously did it in a VM with GPU passthrough, which worked quite well and I think is a decent option for people who can't afford the cost/space of a second machine. Nowadays, thanks to the death of Moore's Law, I had a perfectly capable older machine lying around that I could use instead. That's slightly less maintenance, since the GPU passthrough would occasionally need twiddling after qemu or kvm updates.

EDIT: I will add, for the couples years I was doing GPU passthrough, I didn't notice any difference in performance compared to when I moved the same GPU over to a physical box. In fact, there was this weird audio bug that I originally thought was because of the VM, but it persisted on the real machine and turned out to just be a bug in NVidia's audio driver. So besides the maintenance burden, GPU passthrough was great.

<comment><USER19> > I've had my gaming machine on a separate box for awhile now.

I do the same, I bought my box from Sony, it's called Playstation 4. Never had to worry about driver updates, incompatible games, sanboxing, anything. 5/5 would recommend.

<comment><USER20> Yeah I also love playing games at half the graphical fidelity, resolution, and framerate! :P I have all current-gen consoles, but none of them compare to a high-specced PC on a 144hz monitor.

<comment><USER21> At the distances people sit from their TV, taken with the average TV sizes, going higher than 1080p is not needed. You'd need to sit closer than 2m (!) to a 55" TV to be able to observe the fidelity increase from 4K.[0]

The same goes for very fine particle effects or extremely high resolution textures. You just won't notice it. That is not to say those things don't have a place, they are amazing and definitely look amazing at the close distances one sits from a PC monitor. Its just not an apples-to-apples comparison.

I also feel that past 60Hz+FPS, the higher numbers bring very diminishing returns, especially for controllers. Although I'd much rather see modern consoles go 1080p120fps than 4k60fps.

[0] [https://www.hellotech.com/blog/wp- content/uploads/2019/10/sc...](https://www.hellotech.com/blog/wp- content/uploads/2019/10/screen-size-value-proposition.jpg)

<comment><USER22> > You'd need to sit closer than 2m (!) to a 55" TV to be able to observe the > fidelity increase from 4K

You do realise that not everyone lives in a mansion? 2m is a fairly common distance from eyeballs to the TV here in the UK.

<comment><USER21> When I was still in university even in the tiniest of student rooms I pretty much always sat at least at 2m distance from my/a TV. No mansions involved. Take out your measuring tape and extend it 2m from the middle of your couch, or conversely extend 2m from your TV. It is not as big a viewing distance as you think.

</comment></comment></comment></comment></comment></comment><comment><USER23> I think this is mostly laziness - they just say "yes" to everything, without checking if it actually happens.

They also share:

> thermal, olfactory, or similar information such as, CCTV footage, > photographs, and call recordings and other audio recording (e.g., recorded > meetings and webinars).

I like olfactory a lot.

</comment><comment><USER24> "Do-Not-Sell. California residents have the right to opt-out of our sale of their personal information. Opt-out rights can be exercised by going to [https://bethesda.net/document/cookie- preferences](https://bethesda.net/document/cookie-preferences). We do not sell personal information about residents who we know are younger than 16 years old." Holy sht; not that it surprises me, but, well...

<comment><USER25> The Do-Not-Sell should be the default, and maybe be incentivized somehow to turn it on if you prefer to do so.

<comment><USER26> Depending on the state you live in, write to and convince your state legislatures to pass a law.

Once > X number of states have such laws, it will be the right economic choice for companies to make it the default for everyone rather than doing it selectively by state.

</comment></comment></comment><comment><USER27> A quick reminder - this is the same game which had a ring-0 anti-cheat system installed and run with the game. They stepped it back a bit after the outcry (and install on people's system), but IIRC it is still installed and run if you play Doom Eternal multi-player.

So, it's entirely conceivable that this very "covered" data was collected and pushed up to their systems as a part of their "anti-cheat" detection, either from a HD sweep or from in-memory data in other applications (like the browser).

<comment><USER28> I don't understand - how do they escape from user-space to ring zero?

<comment><USER29> When you click "allow" when its installer (or originally its store's installer) asks for administrative privileges.

</comment></comment></comment><comment><USER30> People are wondering why they would include this, but I bet accessibility settings could be considered medical information e.g. if you turn on colorblind or other assistance. If the game sends back all of your settings, they'd see you turned that on and could make a reasonable guess that you are.

<comment><AUTHOR> Good point, but its listed as explicitly disclosed and/or sold

</comment></comment><comment><USER31> Theres only mention of medical or health records on the page that I could find is:

"Categories of personal information:"

"Customer Records: paper and electronic customer records containing personal information, such as name, signature, [...] medical information, or health insurance information"

I would give ID the benefit of doubt here and say this just boilerplate legal text.

</comment><comment><USER32> Bethesda seems to have conflated playing their game with applying for a job with the UAC on phobos.

</comment><comment><USER3> This just makes my blood boil. I am definitely not unbiased here. I purchased Doom on steam before it got laden with the heavy DRM. It was a fun ride, but it is now hard for me to justify the full price I paid. It is only a shame I can't attempt to return it now after they rendered it unusable from my perspective.

Still, my gaming PC is also my tax PC, and minor projects PC and since I am no longer a kid, I have a lot of information floating on it I would not want other people to know. How is this normal state of affairs?

I will submit request for refund just in case. It might get denied, but maybe they will at least get the message.

</comment><comment><USER33> But how do they get this data?

I wonder if someone just copy pasted this form without actually reading, though perhaps that is giving too much benefit of doubt.

</comment><comment><USER34> Thinking about this for a minute. It's got to be a matter of the DRM system. They're anticipating that they could collect _any_ data from your PC, and are trying to cover their bases.

</comment><comment><USER35> Isn't doom eternal mostly single player? what's the deal here?

</comment><comment><USER36> I wonder if this is laziness (my bet) or if it's due to the seizure warning they show before the game starts.

</comment><comment><USER37> Copy-paste gone wrong by lazy laywers. They will release a fixed version in a few days.

</comment><comment><USER38> I'm not sure how my medical records can be taken from playing this game?

<comment><USER39> I don't know about this game in particular, but many games install spyware for anticheat and DRM purposes.

For example, Blizzard's anticheat software phones home with the title bar text of every open window on the computer. If I leave a browser tab open from my doctor's portal, I can totally envision how Blizzard would end up collecting some of my medical data.

<comment><USER40> Crazy. Any more examples, details and links?

</comment></comment></comment><comment><USER41> it's an inclusing OR defining the concept of personal information.

</comment><comment><USER42> Which would break GDPR laws even if you got customers to sign it.

Really sloppy work.</comment>


This payload is currently being distributed using the Shellshock vulnerability - <AUTHOR> https://gist.github.com/jacquerie/0569a4a192b06f25d764

<comment><USER2> I see some Portuguese variable names. That suggests to me that one or more of the people involved are from Brazil.</comment>


HN Bug? Screenshot included. - <AUTHOR> http://i.imgur.com/61iQb.png

<comment><AUTHOR> I just noticed that item #94 is also identical to #91 and #92. All the items link to the same discussion.

</comment><comment><USER2> Previous thread(s):

<http://news.ycombinator.com/item?id=1597641></comment>


DevOps with SecOps: major Security flaws on Cloud, Configuration & Analytics - <AUTHOR> http://hackersmag.blogspot.com/2011/08/devops-with-secops-short-intro-to.html

<comment><AUTHOR> STATUATORY WARNING: the cause for this presentation is not to scare you away from DevOps but to prevail the understanding of making the DevOps process robust against security attacks right from the initiation. ;)</comment>


All Bitfinex clients to share 36% loss of assets following exchange hack - <AUTHOR> https://www.theguardian.com/technology/2016/aug/07/bitfinex-exchange-customers-receive-36-percent-loss-tokens <comment><USER2> This is pretty spectacular, really: a way to do bankruptcy without in any way affecting the investors and executives personally responsible. You'd almost think such a thing would be illegal. OH WAIT

Why 36%? What is this based on?

Note, by the way: there's been no evidence there was even a hack presented. No details, nothing at all. There's been a lot of PR on Reddit, that's been about it.

I predict: there's no way anyone's getting even their 64% back out of Bitfinex.

</comment><comment><USER3> Maybe these exchanges need to take out depositor's insurance.

<comment><USER4> Who needs insurance when you can make your customers take the hit for any theft?

<comment><USER5> Mt. Gox went through the legal channels and still to this day, no one received back a cent. It could take years and even then they are not guaranteed their full funds back. This is better for the customers.

<comment><USER4> It's certainly better for the owners, who have not provided any details about how they came up with this 36% figure. Who knows if that is correct? And even if it is, why do the owners of the exchange not pay towards the losses? Accepting this deal is just letting Bitfinex off the hook.</comment></comment></comment></comment>


Why I Hate Ayn Rand - <AUTHOR> http://readncode.com/blog/why-i-hate-ayn-rand/

<comment><USER2> Not much to see here. I found this article was a fascinating insight into her character and philosophy: <http://www.michaelprescott.net/hickman.htm> The article details her fascination and admiration for a particularly vile and notorious serial killer.

</comment><comment><USER3> I disagree. Her writing style seemed to appeal to a lot of people even before she wrote about her crazy ideas.

I hate Ayn Rand because her ideology is unrealistic and dangerous. It leads many to the delusion that moochers are the poor and the communist, while leaving them blind to the moochers in capitalism (like Enron, or everyone who ever dealt with Mortgage Backed Securities).</comment>


Ask HN: What is the simplest responsive CSS framework? - <AUTHOR>

I'm working on a project that I'll be doing a lot of custom CSS on but I'm looking for a responsive framework as the base.  Any suggestions? <comment><USER2> <http://www.getskeleton.com/> / <http://twitter.github.com/bootstrap/>

</comment><comment><USER3> <https://github.com/lesjames/Breakpoint></comment>


Plugin Review - Spam Free WordPress - <AUTHOR> http://eamann.com/tech/plugin-review-spam-free-wordpress/

<comment><USER2> Perhaps instead of attacking the author, you could have requested their comments as to why they require an API key.</comment>


Enough Is Enough: Stop Wasting Money on Vitamin and Mineral Supplements [pdf] - <AUTHOR> http://annals.org/data/Journals/AIM/929454/0000605-201312170-00011.pdf <comment><USER2> "we believe that the case is closed— supplementing the diet of well-nourished adults with (most) mineral or vitamin supplements has no clear benefit and might even be harmful. These vitamins should not be used for chronic disease prevention. Enough is enough."

The problem is that (specifically in US) most adults are very far from being well-nourished.

For example, [https://en.wikipedia.org/wiki/Malnutrition](https://en.wikipedia.org/wiki/Malnutrition) "Overnutrition caused by overeating is also a form of malnutrition. In the United States, more than half of all adults are now overweight — a condition that, like hunger, increases susceptibility to disease and disability, reduces worker productivity, and lowers life expectancy.[51] Overeating is much more common in the United States, where for the majority of people, access to food is not an issue. Many parts of the world have access to a surplus of non- nutritious food, in addition to increased sedentary lifestyles. Yale psychologist Kelly Brownell calls this a "toxic food environment" where fat and sugar laden foods have taken precedent over healthy nutritious foods."

</comment><comment><USER3> Date: 2013</comment>


Man killed by car being remotely started - <AUTHOR> https://www.bbc.com/news/technology-50756243 <comment><USER2> Can we changed Title to "Man killed by after market modification to car after remote start" or something, not "Lexus"

</comment><comment><USER3> This was an aftermarket mod, as the article mentions only at the end.

</comment><comment><USER4> Sounds like a third party remote start was installed which doesn't have the same guarantees.. like ensuring the car is in park..

</comment><comment><USER5> Another example of the old adage: the perfect crime is to kill a person with a car.

</comment><comment><USER6> Title might add 2002 model year Lexus which moved in its parking space.

<comment><USER7> And that Lexus did not offer remote start on that model, so this car was clearly modified.

</comment></comment><comment><USER8> [https://news.ycombinator.com/item?id=21769793](https://news.ycombinator.com/item?id=21769793)</comment>


Demand-Side Business Dynamism - <AUTHOR> http://economistsview.typepad.com/economistsview/2016/07/demand-side-business-dynamism.html <comment><AUTHOR> This is the key bit:

"This paper argues that the decline in mobility, dynamism, and entrepreneurship is a result of declining labor demand since 2000. When it is hard to find another job, employed workers stay at the jobs they have, impairing their ascent up the job ladder and the accompanying wage growth over careers that historically led to the middle class. Declining entrepreneurship can also be explained by workers' reluctance to leave large, stable incumbents to start their own firm or to work at a start-up when they cannot be assured that they will have a more stable job to return to. Thus, we find that the concentration of employment in old firms and in large firms mirrors the timing of declining labor mobility due to declining demand."</comment>


How Marines Are Like Computer Scientists: The Problem with Underrepresentation - <AUTHOR> http://tessrinearson.com/blog/?p=583&q=10

<comment><USER2> This is an interesting idea, but a flawed premise. The point of using an analogy is to make analysis _simpler_. This analogy does clearly [not] do that.

edit. for clarity.

<comment><AUTHOR> Maybe it wasn't a good analogy, but I think the premise--underrepresentation begets underrepresentation and a whole slew of other problems--is pretty sound.

Also, did you a word?

<comment><USER2> _underrepresentation begets underrepresentation and a whole slew of other problems_

\-- This is a good idea or notion to explore, agreed.</comment></comment></comment>


Ask HN: Your Feedback on www.PlopQuiz.com - <AUTHOR> http://www.plopquiz.com

<comment><AUTHOR> As Obama signs the stimulus package in Denver today, I'm launching a preview release of a site I've been working on called PlopQuiz. The site makes it easier to show what you know about subjects of public interest, such as energy efficiency or the economic recovery effort.

You'll notice that we now have a handful of community sponsors, as well. While sponsorships don't amount to much more than a badge on your profile at the moment, I'm interested in how a site like PlopQuiz could eventually help students finance their educational careers and avoid crushing levels of debt.

Ultimately, this site needs to evolve to best serve the needs of people, HN users included.

So lay it on me - if you don't see any utility in PlopQuiz at this stage, how do you think it could be improved to help you?

<comment><USER2> Plop makes me think of the toilet.

EDIT: The loading took a very long time on google chrome.

Is this built with GWT?

If the clouds moved really really slowly then they wouldn't be so distracting.

<comment><AUTHOR> Regarding the potty reference...

"Plop" refers to how its easy to make and share quizzes. But when I told a very, very well known developer about PlopQuiz, the very first thing this person said was, "is this a site about going to the bathroom?"

</comment></comment></comment><comment><USER3> babysnake,

The graphics are great but I dislike how much you have used animation; it cheapens the site.

The quiz itself was pretty fun, but I was confused about how to actually start it. It took me some time clicking, and even then it was cumbersome to get going. Also it would be great to know how many questions are left in the quiz.

Then at the end it says "Please sign in to save your quiz." but doesn't show me how to see my results without signing up. So, I didn't.

I can tell you have put a lot of work into this, but you have usability issues. It is clunky, and not entirely intuitive to use. I would suggest getting people to use the site and watch them while they do so.

Hope this is more helpful than not, Jeremy

<comment><AUTHOR> Thanks for the feedback, Jeremy.

I'm actually doing a lot of logging to see what people do on different pages, but I do agree that its crucial to do some in-person usability testing.

<comment><USER3> No problem.. Sorry, I just saw that you are babyshake, not babysnake!

How much traffic have you gotten from this posting to HN?

</comment></comment></comment><comment><USER4> At the moment I'm getting some strange behaviour, I think due to your Uservoice plugin - the site loads and then abruptly disappears, and subsequent refreshes only bring up the uservoice 'feedback' tab.

</comment><comment><USER5> The name is incredibly awkward. Plop = poop. I suspect you may struggle to gain traction because of that issue (and the design/look&feel of the site).

</comment><comment><USER6> Is that the jParallax script in the background? Please kill it! Haha

</comment><comment><USER7> The site brings my browser (Firefox 3 on Linux) nearly to a halt.

<comment><USER8> It's 12 Mississippi before it finishes loading in Chrome. I was about to ask why until I saw it was hosted on Google AppEngine.

I guess we can consider this a datapoint.

</comment></comment><comment><USER9> scrolling up+down is pretty slow. Too much going on.... Simplify.

</comment><comment><USER10> I'm an american so of course I could be wrong, but isn't "plop" kind offensive in Britain? I heard it's the same as saying "shit".</comment>


Surfer dude stuns physicists with theory of everything - <AUTHOR> http://www.telegraph.co.uk/science/large-hadron-collider/3314456/Surfer-dude-stuns-physicists-with-theory-of-everything.html

<comment><USER2> Wasn't this big for a news cycle and then picked apart by actual physicists in the following 3 news cycles?

<comment><USER3> It sounds just like it. All I remember from that affair is learning the phrase, 'That's not even wrong'.

</comment></comment><comment><USER4> I expected something like an Onion article. What I got was even more excellent.</comment>


What will happen to cryptocurrency in the 2020s? - <AUTHOR> https://nakamoto.com/crypto-in-the-2020s/ <comment><USER2> I think cryptocurrency will be around for awhile. But, it's very difficult for anyone to use it as intended..a decentralized currency.

Massive swings in value, easy manipulation of value/little regulation, and all of the hacks we've seen of major exchanges have scared off the average non- tech user.

My brother, who is tech savvy, had about 30 bitcoin on a hard drive when it was worth sub $50/bitcoin. He formatted the drive accidentally and completely lost them all.</comment>


Running Swift code on Android - <AUTHOR> http://romain.goyet.com/articles/running_swift_code_on_android/ <comment><USER2> A coworker showed me this project, which does the same but also includes .NET and regular Java: [http://elementscompiler.com/elements/silver/](http://elementscompiler.com/elements/silver/)

Looking at their github, they appear to be making progress against re- implementing the Swift core library by binding to native classes with similar functionality. Like Arrays: [https://github.com/remobjects/SwiftBaseLibrary/blob/master/S...](https://github.com/remobjects/SwiftBaseLibrary/blob/master/Source/Array.swift)

<comment><USER3> Wow, going after Xamarin (prioritizing iPhone developers instead of Microsofties) and only asking for donations!

This is a great find; thanks for the link.

<comment><USER4> Let's not forget RoboVM, which is free (with paid options): [https://robovm.com/](https://robovm.com/)

I've used this before and was amazed how well it worked, particularly with libgdx: [https://libgdx.badlogicgames.com/](https://libgdx.badlogicgames.com/)

Not affiliated with either, by the way.

<comment><USER5> Have you by any chance used JavaFXPorts? [http://docs.gluonhq.com/javafxports/](http://docs.gluonhq.com/javafxports/)

<comment><USER4> No I haven't I'm afraid. But it's definitely something to look at from the RoboVM world. Bit overloaded with work at the moment unfortunately.

And just the use of the words JavaFX and iOS in the same sentence seems weird! More than happy to be proved wrong though....

</comment></comment></comment></comment></comment><comment><USER6> Have you thought about extracting the XAR archive of LLVM bitcode from Xcode 7.0+'s libswiftCore.dylib's __LLVM,__bundle section and linking your NDK project against that? You'll probably quickly run into linking dependencies outside of libswiftCore but perhaps you could A) stub out those missing dependencies B) build them from opensource.apple.com's CF, libobjc, etc projects or C) try and extract the __LLVM,__bundle's of the dependencies themselves. Rinse and repeat until everything works? :)

<comment><AUTHOR> That's a very smart idea! I might give this a try, thanks :)

</comment></comment><comment><USER7> I'm excited to see what happens in the Linux and BSD space when they finally open source Swift. I hope it finds an audience excited enough to help reimplement some of the functionality that will be missing from the lack of Apple APIs.

It would be great to see an open source ecosystem for Swift, written in Swift on all *nix platforms.

<comment><USER8> Honestly the desktop Linux (and BSD) world is rather _better_ served by fun new language technologies than iOS or Android is. In an environment already targetted by Go and Rust and C++14 and Haskell and Erlang and Clojure and Scala and Perl6, what exactly does Swift (much less Java) really have to distinguish itself?

<comment><USER9> I also don't get it.

What makes Swift better than other ML like languages for the mainstream developer is the tooling. e.g. Playgrounds and IDE support, and Apple forcing developers to adopt it (Objective-C had only a few WWDC sessions).

For anything else, Haskell, OCaml, Rust and even F# are better options, as they are more mature, already portable and lots of libraries to choose from.

<comment><USER10> It is the other way around. Using Rust on iOS is pain. Using Swift is not pain because it is supported by Apple. So it is easier to bring my Swift code and knowledge that I use on iOS to other platforms because other platforms (Linux) don't require sophisticated tooling and support. So I can create apps in Swift for iOS but also backend in Swift for Linux and it is the major benefit.

<comment><USER11>
      > Using Rust on iOS is pain.

Is there something more specific than the general fact that cross-compilation is a bit involved at the moment? Just curious :)

<comment><USER10> You need to write your bridging yourself and it might not always be possible because you need to bridge Rust <-> Objective-C.

Swift with Objective-C is bridged automatically.

<comment><USER12> I use rust with ios, and my bridging header just includes a single C header file. I don't see how it's any more complicated than using a C library.

<comment><USER10> Yeah, it bridges to C so you need to build another bridge to have nice Objective-C API. Not mentioning, you will have hard times calling Objective-C API from Rust.

You don't have this problem with Swift.

<comment><USER7> You don't need to involve Objective-C to use a C API in Swift. You can call C functions directly in Swift and wrap them in a nice Swift API.

<comment><USER10> I know that but if I decide to use Rust instead of Swift, why would I be wrapping Rust in Swift through C? And still it doesn't solve a problem how Rust can call anything from Cocoa or my existing code.

<comment><USER7> > if I decide to use Rust instead of Swift, why would I be wrapping Rust in > Swift through C?

To avoid the unnecessary overhead of dynamically dispatched Objective-C method calls.

To me, it seems more sensible to go

      Rust -> C -> Swift

vs

      Rust -> C -> Objective-C -> Swift

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> > Generally speaking, the NDK makes sense only for a small percentage of apps, > so in the general case Google advise against trying to write a whole Android > app using the NDK.

Yep, it is easier to make languages target DEX than suffer the pain of the NDK.

They not only advise against it, they make it really uncomfortable for us to use it (vs iOS and WP experience).

<comment><USER13> > Yep, it is easier to make languages target DEX than suffer the pain of the > NDK.

Why do you say that? Plenty of Android apps use non-trivial amounts of C/C++ code, and Dropbox has a tool called Djinni that can automatically generate JNI glue code. My guess is that if it's feasible to use pure Dex bytecode, then debugging is easier (because there's only one kind of call stack), memory can be managed more effectively (because the Dalvik/ART garbage collector can manage everything), and performance isn't impacted by the overhead of JNI. But I have nothing to back that up.

<comment><USER9> Yes there are plenty of apps that use a lot of C and C++, and we all join in the Anonymous NDK user group meetings.

\- The bug tracker is full of NDK issues

\- GDB works, eventually. If one has the right set of versions and mobile firmware

\- Integration with the first official IDE (Eclipse CDT) kind of worked, after one turned off indexers, did a few plugin customizations, and even then not really

\- When Android Studio was announced, silence ensued about NDK future. When Jetbrains announced CLion, there was the hope that it might came to Android Studio, still silent all the way up to Google IO 2015.

\- No pre-defined templates for mixed code applications

\- Even today Gradle support for NDK builds is flaky and not final. I am yet to be able to have the samples build out of the box.

\- The set of official C++ libraries is quite limited, most game related APIs are exposed. Even C++ libraries used by the Java layers like Skia are not exposed to the NDK.

\- By limiting NDK to a few basic POSIX APIs and Android game related APIs, everyone has to pack into their APK everything from JNI wrappers, image loaders, network access, the whole stuff.

Now compare this with using C++ in iOS with help of Objective-C++ or on Windows Phone with help of C++/CX.

First class tooling support, mixed debugging that works and no need to keep on writing wrappers.

Even Microsoft's tooling for Android NDK is looking better than what Google does for _their own_ platform.

As for Djinni, I am yet to make it work on Windows.

<comment><USER14> > Yep, it is easier to make languages target DEX than suffer the pain of the > NDK.

So what does this look like in practice? Genuinely curious :-)

<comment><USER15> [https://kotlinlang.org/](https://kotlinlang.org/)

</comment></comment></comment></comment></comment><comment><USER16> > Namely, instead of generating machine code targetting a specific > architecture, LLVM generates assembly code for an imaginary machine, and > then converts that intermediate representation to actual code for whichever > architecture we're interested in.

Why is that not possible for real-world languages? e.g. have one language which would include the specifics and complications of each language of the world and use it as intermediary for going back and forth to any language in the world.

<comment><USER17> It's not really that easy even in LLVM. Just like how real world languages don't map 1:1 to each other with all their idioms and untranslatable phrases, LLVM IR isn't a generic virtual machine. Instead, LLVM IR targets various overall architectures such as "64bit ARM processor" with "such-and-such ABI", so there is a limit to which processors the final assembly can be generated for.

</comment></comment><comment><USER18> Why can't they just compile the swift core library into the executable? I imagine some things are architecture specific, like launching new threads (iOS calls down to objectiveC code which then handles the system call,etc). I imagine the problem is that you can't compile just the non architecture specific parts. Unless you wrote some code to strip out those parts...hmm is that possible?

Also, how come it doesn't look like they had to provide the path to the runtime? Built into the compiler I guess?

</comment><comment><USER19> With regard to LLVM, the concept of emitting code for a "virtual machine" that is then translated to code for any of several target machines is ancient. One example is the Pascal-P environment from the 1970s. The compiler emitted "P-code" that was then translated to machine language. Oddly enough, P-code was so close to the machine language of the PDP-11 that the translator was trivial!

</comment><comment><USER20> Just curious why someone would want to do this?

According to the article, you would have to use the NDK to make this work and...

> And of course since we're missing the SwiftCore library this is restricted > to a small subset of Swift.

So, it seems more of an academic exercise than a practical thing?

<comment><USER21> Practical research often starts as academic exercise.

<comment><USER20> True - but is there a compelling reason we'd want Swift running on Android? I mean, we can say we want it just because (and maybe that's just fine), but is there a stronger reason to want it given many frameworks for mobile apps already compile into more-or-less native apps for each device?

<comment><USER22> > but is there a compelling reason we'd want Swift running on Android?

Yes because it's a language of higher level than C++ that can theoretically run on all platforms. Now I don't know about you but I'd much rather write the core of my software in a language that can be used on all platforms. This way I can leverage the same business logic everywhere and just have different, dedicated logic for UIs.

I once tried to use C++ for this but the STL is supremely lacking in almost every way compared to the standard libraries that come with almost every other language. There just isn't much choice out there.

<comment><USER20> Doesn't Java (what Android is already written in) provide that same benefit? Surely it's easier to get a basic JVM running on the iOS?

<comment><USER22> > Surely it's easier to get a basic JVM running on the iOS?

Gah, I'm not sure how you'd do that and still be able to deploy an application to the iOS app store. I would imagine cross compiling Swift would be orders of magnitude easier.

<comment><USER23> You already can (sort of): [http://RoboVM.com](http://RoboVM.com) It also works with other JVM languages such as Kotlin which is somewhat similar to Swift.

<comment><USER22> Oh I hadn't seen that one, that's actually pretty neat. Their pricing is...interesting though. Zero company support at all for the solo package which seems insane to me but other than that it's pretty cool. I wonder how well it works and how it supports third party Java libraries (if at all).

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER21> This is really cool! Also interesting because of Microsoft's efforts to make iOS apps cross compatible with Windows through what I would expect is a similar process of cross-compiling and porting libraries.

</comment><comment><USER24> Having to deal with mangled symbols is pretty annoying. Is it not possible to give a directive to the Swift compiler to disable mangling? Like rust has:

        #[no_mangle]

<comment><USER25> How would it resolve the differences in types without mangling?

</comment></comment><comment><USER26> This is awesome resource. Thank you for sharing.

<comment><AUTHOR> You're welcome!

</comment></comment><comment><USER27> Wow, sorry for slightly going on a tangent, but this is really cool. Imagine all the products had a single syntactic guide to follow. Underlying tech may differ, but a uniform process for creation. There are a million flaws with this, but just a thought.

And can I just add — WOOOOOO!! Okay. Sorry.

</comment><comment><USER28> actually, you could build an Android command-line executable by using NDK target BUILD_EXECUTABLE. This way is imho clear for the demo purposes by leaving the JNI stuff out of scope

</comment><comment><USER29> Presently I am a student of the Swift language and always in the back of my mind is the tedious thought that I will have to learn how to do this for 'Android, one day. Having a compiler do this for you, makes sense. It would be a real blessing.</comment>


Did you know Islamabad is now a safer city than London and Paris? - <AUTHOR> https://www.dawn.com/news/1529402 <comment><USER2> Islamabad is crawling with military holding machine guns. A hotel I stayed at once while working there had a machine gun armed soldier on every floor monitoring the halls from the elevator door area, and one pacing around the pool area at all times. Do they have that in London or Paris? It seems to depend on your definition of "safe" because those guys wouldn't be needed in such numbers if it was actually safe.

</comment><comment><USER3> Looking at how the report gets created [https://www.numbeo.com/crime/indices_explained.jsp](https://www.numbeo.com/crime/indices_explained.jsp) "is based on surveys from visitors of this website". No indication how many people took part.</comment>


China Is Building Underground Magnetic Cars That Deliver Your Shopping - <AUTHOR> https://radiichina.com/underground-magnetic-cars-that-deliver-your-shopping/ <comment><USER2> This is actually quite a nice idea: packages can travel underground while humans get more of the surface. If it works out that way.

<comment><USER3> That idea is cool, but not new ([https://en.wikipedia.org/wiki/Chicago_Tunnel_Company](https://en.wikipedia.org/wiki/Chicago_Tunnel_Company), [https://en.wikipedia.org/wiki/London_Post_Office_Railway](https://en.wikipedia.org/wiki/London_Post_Office_Railway))

That Chicago shows such a tunnel system may have surprising benefits:

 _"The tunnel company had a curious secondary business, namely air conditioning, which was accomplished by selling naturally cool tunnel air to theaters above the tunnels. The McVickers, Rialto and four other theaters owned by the same company used tunnel air. Tunnel air was also utilized in the winter, as heating this air required less energy than heating the often much colder outside air."_</comment></comment>


Hacker News Site Guidelines - <AUTHOR> http://ycombinator.com/newsguidelines.html <comment><USER2> Perhaps it could be added that submitters shouldn't submit "flamebait" - eg. titles/articles that will elicit very predictable, emotionally charged responses, or have borderline lying titles. In short, not tabloid material; which some other democratic news sites are buried in now.

This is provably the most popular content for the masses, so it's something to watch out for. The editors here do already kill it and that's great, but why not put this guideline in writing?

<comment><USER3> I like this:

<http://news.ycombinator.com/item?id=119277>

"I personally tend to try to apply the standard of whether it's of importance or interest to hackers in particular, rather than to human beings in general."

Stories about, say, the US elections are of equal importance to everyone, and fail that test.

<comment><USER4> "Stories about, say, the US elections are of equal importance to everyone, and fail that test."

\--I think that is wrong. US elections are important to americans (and maybe some foreigners that are into foreign politics). You can be a hacker, and not an amercian, so you don't care much about US elections.

<comment><USER5> Another huge problem with Reddit. There was so much coverage on the US elections non-US citizens would get upset and everyone else would use the mentality "Well it got upmodded, this is what we want to see and you're just going to have to deal with it." Gladly we dont have that mentality here, it reflects too much of the .NET developers being tourists and look at everything with the "us" and "everything else" pattern.

Very destructive.

<comment><USER6> One of the problems with Reddit since Wired took over is the dominance of all kinds of political discussions on the front page, both US and world news. It really brought the site down, IMHO.

</comment></comment></comment></comment></comment><comment><USER7> "Please submit the original source. If a blog post reports on something they found on another site, submit the latter. ... Don't abuse the text field in the submission form to add commentary to links. The text field is for starting discussions. If you're submitting a link, put it in the url field. If you want to add initial commentary on the link, write a blog post about it and submit that instead."

These rules appear to be in direct opposition to each other. Could someone elaborate on which is the appropriate method?

<comment><USER8> The difference is in the value add of the blog posting. Reposts vs. commentary.

</comment></comment><comment><USER9> A link to these guidelines should be added to the <http://news.ycombinator.com/submit> page.

</comment><comment><USER10> pg - You should take this out of the story table and just post it right at the top of the page.

<comment><AUTHOR> There is a link to it at the bottom of every page.

<comment><USER11> There should be a link to it at the top of the page (something like #1 on the homepage and highlighted) for every user until the exceed a certain karma threshold (50?).

</comment></comment></comment><comment><USER8> Batten down the hatches, guys. Moderators, get your dead button finger ready.

</comment><comment><USER12> Why can't we ask questions via Ask.YC? We want to hear from the YC readers, not necessarily PG or whom-ever read the info@ycomb

<comment><USER13> That bit is referring to questions about the YC program, not general questions of the Hacker News community.

</comment></comment><comment><USER14> The struggle for purity, in general, provides a depressing history.

<comment><USER15> The guidelines actually read like a bunch of common sense. The fact that people find it insightful means that it is easy to forget common senses like "being civil." That civility has to be spelled out as a guideline in a site for an educated audience is rather unfortunate.

</comment></comment><comment><USER11> I didn't even know until now that there are editors on this site. Who are these people and what magical powers do they hold?

<comment><USER16> Well, HN is written in Arc which has a REPL and so the editors can do whatever they want!

<comment><USER17> You think the editors interact with the system via the REPL? I would assume they just have the edit/delete functionality exposed for every post instead of just their own. Would be interested to know how this is actually implemented.

<comment><USER18> the source for HN is available in the Arc distro

<comment><USER11> I believe the source for a subset of HN is available in the Arc distro. I remember PG commenting about having to remove YC specific stuff from there.

<comment><USER19> He was talking about things like the YC summer/winter application forms, not the moderation system.

</comment></comment></comment></comment></comment></comment><comment><USER20> shouldn't this list be on or linked on the submit page?</comment>


How I manage my Hacker News addiction - <AUTHOR>

Checking news sites can become addictive. Rather than refreshing Hacker News compulsively every thirty seconds, try using a tool to bundle up the stories and email them to you once a day. Then you can set aside a nice block of time to catch up on the news. I like using feedmyinbox.com (not affiliated). <comment><USER2> A few years ago I developed a bad case of obsessive compulsive procastination. Since then I use the pomodoro technique religiously. It works great for me, but the last thing I want is a cluttered mailbox full of articles or links. It would freak me out...

<comment><AUTHOR> Thanks for telling me about Pomodoro. I had never heard of it, and it looks interesting.

<comment><USER3> <http://timerdoro.com/>

</comment></comment></comment><comment><USER4> Turn your "maxvisits" in your profile down, that's a built in method in hacker news :)</comment>


Show HN: Parse and output TODOs and FIXMEs from comments in your files - <AUTHOR> https://github.com/pgilad/leasot <comment><USER2> Many IDEs have built in support for this and I find it very useful. Good that it is coming to the command line too!

It works great as a code review tool, too. Agree on a marker, add review comments to code, commit to source control and tell your team mate about it. It's just about at-your-fingertips as diffs-with-comments tools (like github PRs), and way lighter on the tooling. You also see all the context, not just the changed lines. Eg:

        // REVIEW(me): This is getting big, maybe split into two classes?

In smaller teams (say, <5 people on a single shared codebase) I've found this to work remarkably well.

</comment><comment><USER3> My developer has just shown me this.

My first reaction was saying we already have that in our rails project using `rake notes`. As he mentioned, the rake task is very slow, though. It will also ignore a lot of our code which is not rails specific.

Thinking about it twice, I realized: this should be hooked to git. This allows very fast lookup and will ensure we do not search in not commited and thus irrelevant files, like logs.

I came up with this alias for git:

        todo = grep -E 'FIXME|TODO'

Formatting is nowhere near as pleasant as Leasot or `rake notes`, but it's blazing fast and relevant.

Anyway, thanks for having made us think about that :)

</comment><comment><USER4> Is there any advantage here over using Ag or Awk or similar:

      ag "(TODO|FIXME)"

<comment><AUTHOR> Well you can see my comment above, but overall ag|awk|pt will be much faster (but might be less accurate). Leasot tries to weed out some false positive (by creating better comment for file type specific comment regexes). Also provides several reporters (JSON, XML, Markdown...) if you want to integrate with other tools (jenkins, travis etc...)

</comment></comment><comment><USER5> I guess the question is how does this compare to standard existing tools such as grep, i.e. something like

       $> grep -Hn TODO test.js
       test.js:241:TODO ...

</comment><comment><USER6> A lot of comments here comparing it with grep or some other native CLI. I think this fares better at least on three metrics:

1\. Fun to build. 2\. Output looks prettier. 3\. Easier to add more syntactic stuff as edge cases for different languages are factored in. Won't be too hard to extend it for github issues, for example.

Since there would be very few cases of partial matches of "TODO" I think grep would still be much faster.

<comment><USER7> 1\. thats a moot point because it doesn't explain why other people might want to use it.

2\. $ alias grep="grep --color"

3\. it would be even easier to extend grep via pipes. Plus pipes are langauge agnostic where as extending this tool requires knowledge of Python

As a personal project, this is fine. But I really don't see the point in anyone else using it when it's slower than existing tools, no more user friendly, requires more dependancies, and isn't part of the default install like _grep_ and _find_ (Windows CLI) are. Plus this tool doesn't even support all instances where a TODO might appear ([https://github.com/pgilad/leasot#comment- format](https://github.com/pgilad/leasot#comment-format)) nor all programming languages ([https://github.com/pgilad/leasot#supported- languages](https://github.com/pgilad/leasot#supported-languages)) like _grep_ and _find_ do.

<comment><AUTHOR> Leasot is written in Node.js. Regarding pretty output - that could definitely be argued, but Leasot also allows for different reporters, say you want the output in JSON/XML for an external tool. That is extendable, whereas grep over regex in CLI is fast & powerful but not as flexible

<comment><USER7> _> Leasot is written in Node.js._

Ah yes, my mistake. Though being written in Javascript makes it even worse for requiring dependencies as at least Python ships with most distros default install.

 _> Regarding pretty output - that could definitely be argued, but Leasot also allows for different reporters, say you want the output in JSON/XML for an external tool. That is extendable, whereas grep over regex in CLI is fast & powerful but not as flexible_

I'd already addressed that point. UNIX pipes allow you to extend grep using any language (including Javascript / node.js) you want. Leasot if only extendible if you already know Javascript and node.js. Plus there are plenty of CLI tools available that can read list input from STDIN and spit out JSON or XML - so you don't even need to learn how to program to convert data files.

I've lost count of the number of times I've seen people write multi-functional programs to solve problems that would have been quicker (both in development time, and execution) to pipe a couple of existing programs together. Heck, I've even fallen into this trap myself before.

</comment></comment></comment></comment><comment><USER8> I like the idea, but it's a deal-breaker if it can't parse TODOs and FIXMEs at the end of lines—that's where most of mine go.

<comment><AUTHOR> This could actually be implemented, but it was more work with the regex so I skipped it for now, seeing that most TODOs are at the beginning of the line.

Also, you run into problems with strings which might be a false positive

</comment></comment><comment><USER9> I just do this: `alias TODO='ack TODO'`

</comment><comment><USER10> Visual Studio does this automatically.

1\. View -> Task List

2\. At the top of the task list click the drop-down that is by default set to "User Tasks" and choose "Comments."

You can also customize the trigger words[1]. I _very_ rarely use the feature myself as failing unit tests are far superior when compared to TODOs.

[1]: [https://msdn.microsoft.com/en- us/library/zce12xx2.aspx](https://msdn.microsoft.com/en- us/library/zce12xx2.aspx)

<comment><USER11> Eclipse has this as well; the feature is called "Task Tags" under General->Editors->Structured Text Editors in preferences. (Can just search for "task" in Preferences; Eclipse settings are a nightmare)

You can also configure the text for each tag (TODO, FIXME, etc.) as well as the priority.

</comment></comment><comment><AUTHOR> Thanks for the comments. Regarding simple `ag` or `grep` usages: Yeah, that will definitely be faster (as with git grep). The problem arises when you have false positives due to either strings, variable names or other things (perhaps template or pattern matches). Then you will need extremely good regex (which leasot implements) or be really good with filtering the results.

Now what happens when you want the output in different formats? I had a person contacting me for exporting as xml since he wants to plug it in for a CI (jenkins). What if you want a JSON for your own tool?

Leasot is far from the perfect solution to TODOs, but if your use case requires anything other than simple regex, you will run into the same issues that Leasot tries to solve.

As far as speed, in my work project, parsing 552 javascript files takes around 0.2s on my mac. Some of these files being really big.

<comment><USER12> Outputting the data in your own format is actually remarkably simple from the command line - you could build up a complete JSON document by piping the input through `jq`. XML might be a bit harder, but with a bit of find and replace across a template (or by using xmllint), you can create pretty much any document you'd like.

In short, a cool tool, which I hope you had fun creating to fill your needs, but it's not something I could personally justify using at the moment. My lint tools (for Python) and `godoc` already alert me to "XXX" and "TODO" comments, letting me see them as part of my normal programming flow.

I wouldn't expend too much effort trying to convince others of it's utility - you'll get frustrated. Instead, let the tool's utility speak for itself (if its useful to you, it will also be useful to someone else), and move on and create more useful tools.

</comment></comment><comment><USER13> There is a plugin for Sublime Text with similar functionalities.

For ST2: [https://github.com/SublimeLinter/SublimeLinter-for- ST2#subli...](https://github.com/SublimeLinter/SublimeLinter-for- ST2#sublimelinter-v17-overview)

For ST3: [https://github.com/SublimeLinter/SublimeLinter- annotations](https://github.com/SublimeLinter/SublimeLinter-annotations)

</comment><comment><USER14> I've been using a one-liner git alias to do this for a while now. Works really well.

It uses git grep for grepping/colouring the output and sed to remove prefixed whitespace.

<comment><AUTHOR> This is a great solution. I would only use Leasot if you need to weed out some false positives (variable names, strings etc...) and perhaps want to output in a special format (JSON, XML, markdown...) for another tool (Think jenkins CI for example).

If CLI regex matching (grep, ag, git grep, pt, ack...) works for you, I would stick with it ;)

</comment></comment><comment><USER15> looks great, any plans on integrating with github issues?

the watson[1] gem (for ruby) has a nice feature list you could go off of. leasot + some of those features might be more suitable for people who want to stay in npmland

[1]: [https://github.com/nhmood/watson-ruby](https://github.com/nhmood/watson- ruby)

<comment><AUTHOR> Watson looks really nice... Could definitely learn from it.

In github issues you mean exporting a TODO to a github issue? If so, I don't think that belongs in Leasot, but rather an external tool for creating/manipulating Github issues (And I'm sure that kind of tool exists).

</comment></comment><comment><USER16> ah nice, I've done something similar that integrates with github issues and PRs, mine is not as polished tho [https://sevki.org/joker](https://sevki.org/joker)

</comment><comment><USER17> I always thought TODO and such were a huge anti-pattern. Let's be real, these are never fixed. I always thought that you should be logging this as cards in your backlog rather than littering the codebase.

<comment><USER18> I use them primarily when developing something large from scratch. All sorts of edge cases / things that can go wrong will pop into my mind when coding a method but I don't want to get out of the flow of whatever I'm doing. In this case a simple "TODO: fix for leap years" or whatever is helpful. When I get closer to completion I will search for these and attend to them.

In a production codebase, you are absolutely correct, you should standardize these items into a ticket manager.

<comment><USER12> I do this as well. The codebase becomes my scratchpad, and I leave all kinds of implementation notes throughout as I sketch out what the end product will end up looking like.

Then it's a simple matter of grepping through the codebase for "XXX" and "TODO" and implementing the changes.

Even when starting from scratch, my usual flow is to implement the top level logic using stubs (commented with "XXX"), then go back and fill in the logic from there.

</comment></comment></comment><comment><USER19> [https://packagecontrol.io/packages/TodoReview](https://packagecontrol.io/packages/TodoReview)

</comment><comment><USER20> I just do a global search using my text editor.

</comment><comment><USER7> This functionality is already built into every major OS and this new tool isn't any easier to use than the existing ones:

Linux / UNIX:

      grep -n TODO *.js

Windows:

      find /n "TODO" *.js

<comment><USER21> This library is also doing regex matching, so that you don't have to worry about matches that exist outside of comments...

But like you said...you could always use fgrep (and most of us probably don't have "TODO" outside of comments anyways).

<comment><USER7> grep supports regular expressions as well (hence it's name: [http://en.wikipedia.org/wiki/Grep](http://en.wikipedia.org/wiki/Grep)). In fact GNU grep even has support for PCRE.

However it should be noted that regex isn't the right tool for parsing source code to begin with. There could be instances in that code where false positives are matched. And there are already known instances where positives are missed (namely "//" comments). So if you really want to exclude anything that isn't a comment then the only accurate way to do so would be full source code parsing. Failing that, it's better to match all instances since "TODO" generally isn't a string that occurs frequently outside of comments (unless it's a visual prompt to the user, eg

      alert('TODO: this feature hasn't been implemented yet')

but in those instances you'd want the source code captured as well).

<comment><AUTHOR> Yep, truly avoiding false positives and capturing all todos you would need to really parse the source code (perhaps creating an AST or lexical parsing).

Even if you build that tool (which handles many languages) - it has an extra headache cost with the parsing time, which might be really slow for large projects.

I actually started Leasot with Javascript AST checking which never misses TODOS but is very hard to extend to other languages, as well as parsing speed was a magnitude slower.

<comment><USER7> Just out of interest, how often do you find yourself using "TODO" as a variable name or elsewhere in your code?

This isn't a dig, it's just something I've genuinely never stumbled across in 2 decades of programming so wondered if there's a culture out there I've missed.

<comment><AUTHOR> Probably never. False positives is just a nice catch-phrase ;) But I don't presume to know other people's naming patterns

</comment></comment></comment></comment></comment></comment><comment><USER22> This looks good. Very similar functionality is built into rails via `rake notes`</comment>


What I learned from a week of investing in Bitcoin - <AUTHOR> http://blog.zackshapiro.com/what-i-learned-from-a-week-investing-in-bitcoin

<comment><USER2> You're not investing, you're speculating.

<comment><AUTHOR> Why do they have to be mutually exclusive? An investment is a speculation. Long term I speculate one thing, short term I may speculate something different.

<comment><USER2> Well, the term 'investment' generally implies a longer duration, say over the length of an industry cycle or so. I don't think a short trader would describe the positions as an 'investment,' for example.</comment></comment></comment>


Why Go to Graduate School and Getting into the Program of your Dreams - <AUTHOR> http://idleprocess.wordpress.com/2009/12/07/why-go-to-graduate-school-and-how-to-get-into-the-program-of-your-dreams/

<comment><USER2> This article contains some very useful advice, and I wish it were posted earlier (Stanford's application is due tomorrow, and many shortly thereafter).

I'm interested in graduate school because I'm considering a Ph.D. but I want to make sure research is actually rewarding. A Master's program seems like an excellent stepping stone, because a Master's degree looks great even if it turns out research is not for me.

<comment><USER3> Many American Ph.D. programs will let you pick up a Master's along the way just by completing the required coursework and submitting a form at the appropriate time - generally right before your comprehensive exams / selection of a thesis topic.

It's therefore possible to apply to Ph.D. programs, get accepted, spend the first couple of years figuring out if a Ph.D.'s for you, and then, if you decide negatively, leave with the "consolation Master's" - a degree completely indistinguishable from a terminal Master's, except:

\- you were in a Ph.D. program, so you likely got a full fellowship instead of paying tuition yourself;

\- you were in a Ph.D. program, so you had an easier time getting grants;

\- you were in a Ph.D. program, so you got more access to and were treated more seriously by top-quality professors.

I got my consolation Master's in 2003 from a program I'd probably still be paying for today if I had applied for the Master's directly.

<comment><USER2> I realized that, but I feel somewhat like a long shot to get into the programs I want in the first place (Stanford/MIT/Berkeley etc.), so going for a Ph.D. would only decrease my chances of getting in, as the author notes.

Also, my understanding is most schools provide some sort of TA or RA opportunity even for those in the Master's program. Is this not true?

<comment><USER4> Support for Master's students really depends on the school. UCSD, where the author works, provides good support for Master's students. I have a friend who is attending UCSD for a Master's (albeit in Civil Engineering) who has received a TA position that covers his in-state tuition (but has to pay out- of-state fees), and pays a stipend.

Almost all the graduate schools I have researched have explicitly stated whether or not they offer any support to Master's students.

<comment><USER5> Afaik, finding support for CS students is not hard in many schools. Many other departments recruit RAs from the CS dept to help with their research. e.g. I had a RA with Arid lands research program 3 out of 4 semesters during my Master's. Though this will probably vary from uni to uni and this info can be found by getting in touch with some Master students in the dept. Also, I had a TA in my last semester. So, its a YMMV for RAs/TAs depending on the university.

</comment></comment></comment></comment></comment><comment><USER6> How necessary is grad school for beginning a career within small business/startups? I'm an undergrad freshman and I can't escape the overwhelming consensus among my peers, that if I want to be successful, I need to go to grad school.

<comment><USER7> Unnecessary.

<comment><USER8> I agree. I met a guy who dropped out of his undergrad, worked on wall street a couple years, and now is quite wealthy helping run an advertising startup.

School is a horrible route to getting wealthy. On the other hand, grad school used to be a good idea if you want to solely focus on specialized research in a community of likeminded individuals. But, I don't think it's even good for that anymore.

<comment><USER9> Hm ... I'm puzzled by your last sentence. Why do you say that?

<comment><USER8> Too bound by the status quo and churning out pointless papers.

<comment><USER9> Hm. So what's the alternative? I've tried to do research in a corporate environment, and am now in grad school: in my experience, it seems like getting a Ph.D. has a lot to offer in terms of teaching you how to do good research. I've learned a lot more about both my area and about the practice of research in general in graduate school than I did when I was working in a corporate research group.

I'm not convinced that working at a smaller company (or, since this is HN, starting one) would have helped, either. In fact, I'd guess would have been even worse. It would have been harder for me to gain access to advice and mentorship, there would have been more distractions, and the pressure to stay relevant to the goals of the business would have been even more intense.

<comment><USER8> Independent research? Though I agree, if you have to do it within an institution, something like academia is probably best, or maybe a blue sky research facility, if those still exist.

<comment><USER9> Graduate school has a number of extremely important advantages over independent research, at least when you're getting started: 1\. Mentorship. 2\. Easy access to the rest of the research community. 3\. Access to resources: libraries, journal subscriptions, and, most importantly, funding.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> Great timing, I'm working on my Statement of Purpose right now.</comment>


Minimum Wage for H-1B Visa Holders Could Reach $250k a Year - <AUTHOR> https://www.forbes.com/sites/stuartanderson/2020/05/21/trump-minimum-wage-for-h-1b-visa-holders-could-reach-250000-a-year/ <comment><USER2> That does seem like it would align the usage of H-1B visas with the intended purpose. Isn't the goal of that program to offer visas to foreign workers when the company is unable to find American workers to fill the job?

The program has lately been used to find foreign workers when American workers are unwilling to work for the rate the company wants to pay (i.e. H1B workers are chronically underpaid).

Is this going to be retroactive, in a way? I.e. if you currently hold an H1B, are underpaid, and this becomes law, will your employer have to raise your wages or stop sponsoring you on next renewal? That would put a lot of visa holders in a very tight spot come next renewal.

</comment><comment><USER3> > When possible, employers use private wage surveys to satisfy the prevailing > wage requirement and in many cases pay a market wage above those detailed in > private surveys

"In many cases..."

And I'm many cases they don't, all my many friends who are H1B (except 2, which are paid at market) are severely underpaid, severely, and can do nothing about it.</comment>


Ask HN: how do you regression test your web apps? - <AUTHOR>

In working on Skulpt (.org) I'm growing a decent sized JavaScript code base. I have reasonable test coverage running on d8 (the V8 debug shell) and can run the tests quickly (< 10s) from the command line.
There's a minimal amount of DOM stuff in demo code that's entirely untested, and more importantly for this project, various levels of support and quirks in the browsers' JavaScript implementations that affects the core code.
Assuming a Linux dev environment (though I've got at least 4 XP licenses for VMs if necessary), my question:
How can I set up an unattended process (i.e. one command) that can reliably and quickly tell me whether everything's working on ie7, ie8, ff2, ff3, safari3, safari4, opera9, opera10, and chrome? (x OSs as appropriate) <comment><USER2> I don't know about all of the browsers you mentioned, but my team regression tests on a handful of those browsers using Selenium. [<http://seleniumhq.org/>] We use a ruby library to drive the Selenium engine and it seems to work pretty well.

Edit: Btw, nice job on skulpt, it looks really nice.

<comment><AUTHOR> Are you're running the tests on the same OS that you work on?

I guess I could set up a whole bunch of VMs (or VM snapshots) and use Selenium RC and then cycle through them.

<comment><USER3> Or create an account at my startup --> <http://saucelabs.com>. (Fair disclosure, I created Selenium. ;-)

<comment><AUTHOR> SauceLabs looks slick! Hope you're making money. :)

I found Selenium to be a bit heavy for what I was doing, but for a full application with UI it seems like it'd work well.</comment></comment></comment></comment>


Ask HN: Product/Tool suggestion request - <AUTHOR>

A small medical practice has for years (going back to 1988)used written records for their patients. They have a book where they assign a number, add the name and postal address of patient. They then use a card with the assigned number to write the medical stuff (age, symptoms, prognosis, etc). As well, they give the patient a matching (smaller) card for follow up visits. Patients often misplace their reference cards, and end up being given new files that make no reference to previous files. To solve this, they had the book records (manually assigned, unique -but with clerical error repetitions and omissions- file numbers; name and P. O. Box addresses) typed into excel, hoping to be able to search in the excel file for multiple repeats by the same patient as well as for when a patient returns without their patient card. There's about 60,000 records in total. The problem is that excel is not very useful when a search for John Someone yields 22 John Someones from a batch of 60K records. I want to give them a tool that, when they search for John Someone, it brings up all the 22 John Someones, but sorts them,say, in order of date (most recent first), and if the addresses are the same, it can flag records that represent the same patient. That sort of thing. Can you recommend a tool for this? I've no idea how elastic search works, but reading about it makes me think using it for this would be akin to using a space-ship where a hand-glider (maybe?) might be enough. <comment><USER2> I'm pretty sure Excel can do all of this. I think if all of the data has already been ported to Excel, it would be much easier to figure out how to make Excel do what you want than to port the data to something else and learning something else.

In this example, you could filter the data by name, sort the results by the date, and highlight all duplicate addresses using conditional formatting.

If you really don't want to use Excel, you could load the csv in almost any programming language; read in the records, find the duplicates and spit the resulting records back out into whatever format you want.

</comment><comment><USER3> I probably do not totally understand your requirements but it would appear you could accomplish everything you want in Excel.

However, if you really don't want to use Excel, and you have some programming chops, you could export the Excel spreadsheet into a database (say MySQL). Once the information is in a database, the queries you can run are only limited by your imagination.

</comment><comment><AUTHOR> While typing this "ask", I tried something in excel to illustrate what I wanted, and realized, "oh wait, excel can actually do this...", but I figured to ask anyway, coz I don't want to argue with all the pop singers who've said to live and learn :-)

<comment><USER4> Thereby forestalling the inevitable increase to the total number of bugs in the world.

</comment></comment><comment><USER5> You could just set up a Wordpress website with a custom post type for each customer & custom fields for the record key/values.</comment>


Ask HN: What do other HN'ers do outside of computers/programming? - <AUTHOR>

I think a lot of us spend inordinate amounts of time hunching over the computer/coding/hacking away/building the next Facebook etc... but I'm wondering if there other HN'ers out there who have pursued other areas of expertise that have nothing whatsoever to do with computers/programming.
Either as a hobby, pure personal interest or the desire to add an additional skill.
I'd love to hear your experiences with something like this (eg. what drove you to it, were you happy you chose it, and did you achieve success with it -and by success I mean any definition of success you want to attribute to it, tangible or intangible) <comment><USER2> I love to do sports, they are a great way to keep the mind out of everything. It really creates a barrier that blocks out everything. In the last year I have been training Kickboxing, and there for real, if you are not focused you will hurt yourself. I also really like gymnastics and tennis. I like gymnastics because there is really a proper way to do everything and is quite rigid with the rules.

Other than that not much, I tried playing guitar... got bored pretty quickly. I used to draw, a long time ago. I'm not an artist.

I like reading fantasy books. The Malazan Book of the Fallen.</comment>


Responsible Refactoring - <AUTHOR> http://www.naildrivin5.com/blog/2013/08/08/responsible-refactoring.html

<comment><USER2> The problem with this approach is that there are often subtle bugs hiding in the ugly code. I've broken production code when refactoring (once - I blame the stupid Java getters/setters convention), but I've also fixed e.g. DST bugs before they happened.</comment>


Ask HN: Selling my startup, is it a good decision? - <AUTHOR>

I finally decided to sell my startup, I wasn't really sure if I wanted to continue to improve the website or to just sell it. It's been almost a year since I am trying to do "business". Sadly the fun ends here for me, college and life in general is too expensive for me to keep up (just doing my startup).
I didn't raise capital but I was able to get revenue just from my own marketing skills.
If you would be in my place, would you quit college and try to squeeze every little cash you have in order to keep the startup or would you continue college ?
Startup url: http://skyul.com
Flippa sales page: https://flippa.com/3345317-proxy-platform-proxy-product-proxy-tester-live-proxy-list
My email: alexandru[dot]cobuz[at]gmail[dot]com <comment><USER2> Continue college so that you can learn and build up your business and technical skills. You will be able to create a better startup with a better set of skills, experiences and personal network - develop these while you're in college!

It's impressive that you've built a business in the first place. Try not to second guess your decision as you will probably go on to do bigger and better things :)

<comment><AUTHOR> Thank you :)

</comment></comment><comment><USER3> I would go with your gut.</comment>


Show HN: DevStuffs: Some useful tools for developers - <AUTHOR> https://devstuffs.mustak.im/ <comment><AUTHOR> I use some of these tools from various sites almost everyday, so I wanted to put them all in one place during my bank holiday weekend. Please share your comment/suggestion.

I am thinking of making the source open, if people think it'd be useful.

</comment><comment><USER2> json tree view

[1] [http://jsonviewer.stack.hu/](http://jsonviewer.stack.hu/)

<comment><AUTHOR> Thanks! a basic JSON tree has been added here: [https://devstuffs.mustak.im/formatters/json-formatter- beauti...](https://devstuffs.mustak.im/formatters/json-formatter-beautifier)</comment></comment>


Ask HN: How to make up for lack of CS degree in software engineering? - <AUTHOR> If you are self taught, how did you get your foot in the door in the industry ? <comment><USER3> To answer the question put in the body, I simply contacted companies with my portfolio and my Gitlab profile link and quickly got answers.

At least here (country is France), most new and small companies don't care about how much you spent on tuition and studies, but care more about who you actually are and what you can provide.

It's following a mindset of "people are not tools", unlike a lot of very big corporates and companies, which generally requires CS or "big" degrees to get interested.

I'd not ask about getting my foot in the door of the industry, but rather a small subset of it: Where and in which work categories do you want to work ?

Corps. and big companies ? Small but stable companies ? Startups ? Associations ?

You'd really need to target what you are seeking.

As I've been able to see here, corps. are generally more for very stable but not evolving jobs, in which you generally don't have a big place for responsibilities and decisions. So more of an easy job than an "interesting" or dynamic one.

Startups are the opposite: they move very fast, everyone have something to say that may change how the society works but it's a really quick movement: the society may spawn and work a few months, or even days, before dying out. You have a very dynamic environment but must be ready for potential crashes.

The "small society" have been the best balance I've found so far. They generally target dynamic developers (devs. who have a lot of projects - <USER2> ridiculously small - in a variety of domains). They are more stable than startups but you also get more "power" than an entry-job in a big corp.

Another thing we can notice is that young people generally target start-ups and small companies, with the hopes to find interesting, fast and new projects, without really thinking about the actual future of the society: it kinda follows the open-source contribution logic ; you come and contribute to the growth of the society, but are ready to move out and go on another projects later.

Older people in this industry can mostly be seen working in "small" or big corps, as mainly seeking stable jobs that can provide a steady and guaranteed income.</comment>


Problem Statement Guide - <AUTHOR> http://hello.ducalis.io/problem-statement-guide <comment><AUTHOR> Try our problem statement guide and ease the prioritization process. Develop a distinct workflow and bring order. Get synched and result-driven. Make your team understand what they do and why.</comment>


Issueist – Post GitHub issues from anywhere - <AUTHOR> https://issueist.dev <comment><AUTHOR> OP here. I created issueist to solve a constant problem of opening Github, navigating to a certain repo, and posting thoughts. I find myself reading tech articles all the time and having moments where I think "this project can use this design pattern/testing method/OSS" etc. and use my Github repos as storage for new project ideas, tasks, etc. Hope you all enjoy it and use it daily like I do. You can find the repo on the site, hoping to have other contributors to the code base in the future :)

</comment><comment><USER2> Looks cool! I've definitely wanted an easy way to take notes from my browser and haven't found the perfect solution yet, will give this a try.</comment>