skysight-inc/HackerNews huggingface dataset:
I am saying "Developers do not want :
1 - Pay A LOT of money for advanced solutions that are more than AST checkers (hello SonarQube) or big piles of false positives.
2 - Add overhead to their workflows (more than an IDE plugin is harmful, and what happens with those devs not using an IDE?).
3 - Spend time on figuring out if the static analysis results make sense or not, one by one.

A typical SCA tool can report hundreds or thousands of occurrences for a certain code base. How are developers going to deal with them?
Why should there be an end game? The history of human civilization is one of constant progress, with leaps so large they are almost impossible to imagine by previous generations. Imagine telling someone from the era of ocean liners that in less than a century, his descendants would be routinely flying across continents in hours for the price of a few meals, with safety levels so high it is massively more dangerous for them to take a taxi to work. Imagine the surprise of the world upon discovering nuclear weapons in 1945, the hope that came from knowing it was a clean and seemingly endless source of power. Or look at Asimov: he was a prescient writer in many respects, probably one of the if not the greatest SF writer there was, but his works completely ignore the connectivity that is pervasive today (when the NSA taps every phone and reads every email automatically, when they can recognize your face even turned, from a million CCTV cameras whose feed is parsed in real time, you can't have plots with people running away in cities undetected).

The most exciting part of working in technology in general, and software in particular, is that you get to be at - or at least better understand - the cutting edge and see those changes before they become more broadly accepted. For example, machine translation used to be cutting edge AI research in top secret intelligence projects, yet today you can translate entire webpages in Chrome with right click -> "Translate to English". For free. Hell, your portable Star Trek-like computer can take a photo of the Japanese menu for you and convert it to something understandable, then translate your response back to Japanese for your waiter. The Babel Fish is real! Given a bit more time, some better brain-computer interfaces and a larger corpus, we might well be able to converse in any language without learning it...

Software is this generation's equivalent to steels and mechanical engineering during the Industrial Revolution, and nuclear weapons and power in the 20th century - we have conquered the physical realm pretty thoroughly but have only made baby steps in knowledge compared to what is possible. Even neuroscientists will admit we know relatively little about how the brain really works. Just look at statistical learning: the field has only really blossomed in the last 15 years or so.

The reason for proprietary software and IP is always the same: to generate via extremely expensive R&D leaps in knowledge and products that allow the researching company to reap outsized returns. Yesterday, it was operating systems and office suites. Today, it's applications that need things like massive GPU clusters for deep learning, or knowing how to scale complex services (like Google Image Search) to billions of users, or weak AI (self-driving cars). I would love nothing more than a glimpse to the technology of 2060 or 2600, although I doubt I would be able to grasp even a fraction of what it represents. Just knowing the problems they are trying to solve then, would be fascinating.
TIL it's really hard to play Quake on a Kinesis...!

Great stuff here. Thanks for sharing.
That's marketing for you. There's been enough scandals in the past two years for it to be clear this is an evil company, but not many people know about this. For most, Uber is this cool new disruptive startup with awesome app and cheaper service, an underdog fighting the Evil Taxi Lords.
I didn't realize this was ever in question - of course you can't trust Tor exit nodes not to snoop on your traffic. You can't trust your ISP or friendly local intelligence agency not to snoop on your traffic either; this is why end-to-end authentication and encryption is a useful thing. (Not meant as a criticism of Chloe's research, it's certainly valuable data).
Also I made an error - should have been

*(1+a) = 1;

Still bad but not as bad.
> However, I can't encourage people to go and harass or do harm to the hogs.

Yes you can actually. You just can't plan a specific crime at a specific place and time.
Yes, this seems to be a case of users not understanding how Tor works and malicious exit node owners taking advantage.
FxCop was analyzing IL to come up with suggestions to code smell (which very much broke down when the compilers started generating state machines for eg async/await). Roslyn-based analyzers do this on source code. Thus they work great in finding code issues.

That is one part of Refactoring Essentials. The other part is refactorings, and yes, that is very much like Resharper. (StyleCop is not something we do today)
I'm curious to see the effect of the baby boomers moving through the age pipeline. You have this massive cohort of people with the majority of their wealth in their home, all about to hit the exit door at the same time. Are house prices going to correct in a massive way at the same time interest rates are rising? Is all of that paper wealth going to get wiped out? Interesting times!
I used lint for C some 20 or 25 years ago, then moved to using dynamical languages (Perl, Ruby, JS.) Not much use of static analysis tools for those languages I thought (but for example check https://www.infinum.co/the-capsized-eight/articles/top-8-too...). I used Java sometimes and took advantage of Netbeans/Eclipse's hints about Java code but I use emacs for everything else (some vim too).

I used jslint on a JavaScript project a few months ago. It catched a few things I overlooked, I learned a couple of things (example: it's useless to define a var inside a loop) but it's also very opinionated and insisted that I write code in a way that pleases its author. I had to refactor working code to make most of the warnings go away. I ended up with something that worked as well as the original but was much more complicated to read (at least for me). I stopped using it and regretted making all those changes to the code. There are some configuration switches but nothing that could make it work for me. I should check jshint but unfortunately jslint primed me against that kind of tools.

I prefer to catch errors with tests and test coverage tools. They must be used anyway and they bend to me, not the other way around.
This is a very bad idea, for the same reason that relative directories are not on the regular PATH on Unix: On a multi-user system, or even a single-user system that sometimes has untrusted files on it, you can't safely use your tools if they can be overridden by whatever someone happens to have placed in the current directory.

For example, if you're looking through various home directories for some file, you might be doing something like:

$ cd /home/foo
$ ls
$ cd /home/bar
$ ls

If your PATH contained ".useful_stuff/tools" and the user bar happened to have a file called "/home/bar/.useful_stuff/tools/ls", that file has now been executed instead of /bin/ls, with your privileges. Your account has now been compromised.

Try this:

[ptx@hn downloads]$ python3 -c 'print("hello")'
hello
[ptx@hn downloads]$ export PYTHONPATH="./.pip"
[ptx@hn downloads]$ python3 -c 'print("hello")'
You have been owned! Have a nice day.
hello
[ptx@hn downloads]$ cat .pip/site.py
print("You have been owned! Have a nice day.")

For this same reason, if you use Mercurial on a repository owned by someone else, you get something like:

[root@host foo]# hg stat
not trusting file /home/ptx/foo/.hg/hgrc from untrusted user ptx, group users

Microsoft had a related security problem a few years back where they would load DLL files from the current directory:
https://isc.sans.edu/diary/DLL+hijacking+vulnerabilities/944...
I admit I was being disingenuous- the original content is brilliant (Daredevil and Better Call Saul are recent examples that stand out for me).
(Advice) What are early warning signs to look out for trouble in life?
If c is truthy:
a = b && c || d
Oval, the first digital handpan
Exactly this. That's what I learned from Uber (and in some ways, AirBnB too) - from my initial excitement to the eventual realization that this is just investors and management making money on breaking laws and damaging the structure society. Disruption, they say.
Static analysis is more than just static typing. Notably, it is possible to leverage static analysis for solid gains in reliability against code bases without having to rewrite them to take advantage of a different typing paradigm.

To repeat, you can harden a code base without rewriting it by using static analysis tools. This is not as true with static typing.
> The history of human civilization is one of constant progress

A medieval peasant most likely had more leisure time than you. Having a local technological maxima doesn't mean "constant progress".
Try searching for: "privatised social security"
They'll probably leave their homes to their children.
100+ to this.
It is the "opinions enforced with static analysis" that ultimately annoy me with most analysis tools out there. Things that actually cause bugs, I welcome ways of finding them. Chaining all of my variable declarations together... What?

The sad thing is that the powerful analysis tools are truly amazing and do find things. They just are not what the majority of people have experience with. That does seem to be changing.
I like it! Are stories hand-picked or are they aggregated automatically based on popularity or such?
Have you looked at the clang analyzer that's integrated into Xcode (http://clang-analyzer.llvm.org/)? It doesn't catch everything, and sometimes gives false positives, but it is quite amazing how it visualizes problems in the program flow, going through several levels in the call hierarchy, following variable assignments over function calls, etc... in a few cases I was convinced that a problem was a false positive until I really took the time to understand what the static analyzer is trying to tell me and it turned out to be actual bugs.

In my opinion it is mostly poor integration into the coding workflow, and poor visualization of the analyzer warnings that lead to too little use of static code analysis, and another is a too wide-spread 'if it works at all, ship it' mentality.
You are probably right. The original content is outstanding- and I should probably consider the film catalog as a nice to have. Some TV series have seasons missing (presumably due to licensing issues) which can be a frustratring (this was the case for the excellent 'Justified' and 'Peaky Blinders' in the UK).
We have the same concept in Europe, or at least the country I'm from (Slovenia). You are mandated by law to put a percentage of your monthly income into pension. If you miss a payment, you are in debt to the state and they will hunt you down for it. They take these things very seriously.

Everyone under 40-ish agrees that we are never going to see that money. We're essentially paying out of pocket for the current retirees and by the time we retire there will be nobody to pay our pension. Or at least there will not be enough somebodies.
Only if you boil the original comment down so far that you evaporate the bit that says 'look at the actions, not the talk'...
I am from engineering background and not soley a software guy, so forgive me my different view on this topic.

I learned, that every error you can fix early on will cost you about 10x to fix in the next stage.

All the new principles like Agile have not changed that.
Hmm, I didn't take the op to mean a competitive win. It's a win for you.

Everytime you exercise you feel great, you're happy you took the time to get sweaty, you look better each day than the day before. And everyday, as you think back to when you could only do X amount of Y (5 minutes of running, 10 pushups), and now you can do Z of Y, you can feel good about that and feel success.

It could be breakdancing holds for all anyone cares, or jumprope, but it feels good, and if you move safely and comfortably and repeat in an intelligent manner (practice intelligently to maximize gains, or at least ensure them) you're pretty close to guaranteed gains over time. And those feel great!
I refactored some code this week that used realloc to allocate memory for a 'vector' (which was a typedef for float*), and then a loop with additional realloc's to allocate memory for each element in that vector, to end up with a matrix 8| This is code that was written in the last few years, too. Welcome to academia :(
I'm not an expert in medieval history, but I have worked in India's countryside (specifically: Maharashtra, a few hours from Pune) with an Indian multinational and let me assure you that the peasants there (whose conditions of living economically mirror those of medieval peasants, although they have slightly more rights in theory) don't have much leisure time.

It's morning to evening back-breaking physical work, undernourishment as a matter of fact, and very high probability of death - some of the families we talked to had been 2/3 decimated by the age of 35, from traffic accidents, a host of diseases like cholera, snakes, you name it... There is no question when I'd rather live.
This seems like how I read some old unix guide on compiling software. I put it all in ~/local/$software/$version with $software/latest symlink. I really prefer it as I can wipe software just with removing the directory.

I hate software like MySQL though which seems to ignore me setting --prefix in configure and still insisting to be default look in random directories.

With software with a good makefile and pkgconfig file, I've not had major trouble compiling all the software I use from source.
I would not say grossly exaggerated, especially for languages with stronger type systems than Java. But the worst bugs I've encountered definitely came from code behaving exactly as intended. The flawless implementations of terrible, terrible ideas.

There's not much a language can do to protect a programmer from doing nonsense. Terse, explicit languages that are easy to reason about have a slight edge in that they make it easier to grasp the big picture. A powerful type system like that of Haskell can certainly help too. Practices that involves many eyes looking at the code help the most.
Especially in California, where IIRC transferring a home from parent to child doesn't trigger a tax re-assessment under prop 13.
Right now, the app is fetching stories from various rss feeds.

Also, I am using Kimonolabs to turn websites into API if RSS is not available. It's pretty awesome.
Don't know about IntelliJ, but XCode does real-time analysis as well, but it also has a mode for deep static analysis, which for example does code path analysis for finding dead code paths, even across methods. This kind of stuff would be hard to perform in real-time.
If you had static analysis in from the start, that wouldn't be a problem.

If you add static analysis to a messy project, define success thresholds based on the current violation count, and/or disable violation categories that you can live with. The rule then should be "don't make it worse, try to make it a bit better when you can", rather than "don't commit anything to main until the checker says it's perfect".
From the article: "The overhead of our implementation of the safe stack is very close to zero (0.01% on the Phoronix benchmarks)". That's quite awesome, congratulations.
Koa seems to be the most controversial part. Also, people keep telling me they prefer yet another Flux libraries. I'd like to start using immutable data structures and FRP, but existing materials are usually not very practically oriented. Any suggestions?
Why do startups succeed? 100 companies weigh in
Good static checkers perform pretty deep analyses you can not (yet) do in real time. Real time checking is of course useful but it is no replacement for a deeper static analysis.
Manipulating it is very slow, because of the way it is designed. It is not intended for building dynamic GUIs, it's for laying out text high quality text, once, on pageload. This is the other problem, the box model (even flexbox) is just not suited for designing GUIs.

So few websites are pure text these days, you inevitably end up needing loads of GUI widgets and the DOM is simply not suitable for laying them out in a sensible way. It takes ages, and css layout 'rules' are so hard to predict. You shouldn't have to be a guru to just put some fucking boxes in a row.

Try building a desktop app using any mature constraint-based layout system, and you'll see what I mean.

This is how java does it: https://docs.oracle.com/javase/tutorial/uiswing/layout/visua...

As you can see, pretty much every css framework is actually a hacky attempt to replicate a GUI layout pattern from 20 years ago, and you have to turn backflips in order to convince the DOM to do it performantly.
The performance is impressive, considering that maintaining a second stack presumably requires another register exclusively dedicated to it. I'm surprised it makes such little difference. Or are there some cunning optimisations going on?
Two self-driving cars involved in 'near miss' in California
Just to note that by far and away, the most common cause of an ICE is a missing error message. Others are related to unstable features, which isn't particularly fair, since they're unstable for a reason. The remainder tend to be caused by odd combinations of features we didn't think of (which more often than not tend to be constructions with simple, working equivalents), often they become a question of "do we want to support this or not".

Trust me, there are far worse things lurking in the compiler than a few improperly-handled error cases.
The public health aspect is definitely important. The country where I live has very strict limits about handling dead bodies - they can only be buried in official cemeteries. If you opt for cremation, the ashes must also be buried or spread in selected official locations where they don't pose a hazard. Keeping grandpa in a can on top of the fireplace is out of the question.

While I don't value physical remains, I understand some people really do and their opinions must be respected. But it's similar to religious circumcision - when your customs start interfering with people's health, you lose absolute rights to always do what you want.
Sometimes I wish there was a very basic how-it-works presentation (maybe a kickstarter?) of the internet.

The less magical the internet seems, the easier it'll be for the public to get behind issues of internet security and privacy at the policy level.
Same reason people use email and code html in editors that are barely more capable then notepad.

Sophisticated solutions tend to fail from time to time when applied. And when they fail they are tossed aside for simpler more resilient ones.
Windows might not use .ini files, but lots and lots of windows apps still do.
Stunt Wheels – Amazing Android Free Game That Need Your Help
>We're essentially paying out of pocket for the current retirees and by the time we retire there will be nobody to pay our pension.

Australia's system is slightly different, in that the pension funds are privately owned and the government (currently) has no way to take money out of them or use it for anything else. People here'd be pretty pissed off if the government started dipping into their super.
It's not troubling at all, if you stop and look at it for a second - people aren't automatons.

Fascism is horrible thing in all it's form and sizes. Even if Steve blurted out that he agrees that the only way to fight fascism is with force (which I haven't divulged from the context, twitter is horrible for conveying meaning), it makes sense once you stop and consider it an emotional response and not an ideology of person that said it.
Wow, thanks. This is probably the best advice a first-time founder going through a pretty rough patch like me can get. Puts things in perspective.
you just described photoshop perfectly.
As a draft, its name was various permutations on "sslv3-diediedie".

I do like the table of contents.
One important point that is missed in this article, is for your software to still run when you die, it has to be written in a programming language that will still "exist" then.

Is your current C compiler still able to compile K&R C code from the 70s?
Then what makes you think the standard C of 2040 will be able to compile C99 code?

Is your current python 3.3 able to python 2.7 code? Then what makes you think that python 42.2 will be able to run your python code?

Is your current perl, err, does that still even exist?

On the other hand, if you choose a programming language that is standardized, and whose standard is not updated every two years, say, ANSI Common Lisp, that is able to run LISP programs from the sixties in 2015, that you can extend and make evolve with user code in libraries and your applications, without having to wait for standard comitees to decide whether it should be added, perhaps in an incompatible way, then, since this language can run 50 years old programs, perhaps you could bet it will be able to run your programs in 50 years.

At least, that's my bet.

http://www.informatimago.com/develop/lisp/com/informatimago/...

http://cliki.net/Getting+Started

Edit: Cobol and Fortran are disqualified, for they get new standards; I had to edit a couple of small cobol programs I wrote in the 80s quite a bit to make them work on OpenCobol on Linux last year... Only LISP is good!
Fortunately, virtualization lets you run old operating systems on modern hardware.
git clone git@github.com:original/repo.git
# make some commits
git remote rename origin upstream
# fork the repo on github
git remote add origin git@github.com:your/repo.git
git fetch origin
git push -u origin master
He probably has more source code.
Best thing I've ever done (and still doing) is raising my son. For me this tops any entrepreneurial/career success I've had so far.
Ahh yes, I forgot about the partner visa, yes I agree its broken.

Why did your PR take 4 years?
The British while ruling India classified the Sikhs as a "Martial Race". "Non-martial" races weren't allowed to be recruited into the British Army in India. For more see https://en.wikipedia.org/wiki/Martial_race

The interesting consequence of this, was when the Indian Army came in to existence, it had a highly disproportionate share of men from a handful of communities. I know this was true till a few years ago (haven't checked recently), but the Indian Army never released data on the state wise distribution of its personnel as a result.
Is that likely to cause problems? CO2 burns and it requires a lot of it to displace oxygen.
True, but the costs (both direct and ancillary) of making a bad hire are so high that anything we can do avoid making the wrong hire would be worthwhile.

You might be right that randomly picking candidates might be just as efficient, but I can't imagine anyone taking that risk.
I'm not sure the 'there's no such thing as bad publicity' works when you're aiming to come across as a voice of reason in the software community.

I think the discussion could have been nipped in the bud if it was described similarly to your summation - a necessary business decision rather than good software practice.
He also managed to recognize a relationship between electromagnetism and gravity before Einstein.

http://serg.fedosin.ru/Heavisid.htm
Do you now do something professionally that's more fulfilling than coding--even if it doesn't exactly make you happy?
Orchid Righteous 3D, the original voodoo add-on card! Remember playing Fatal Racing / Carmageddon with it too!