skysight-inc/HackerNews huggingface dataset:
> I grew up playing soccer, and even there they, at least in the US, as I understand it from my nephews, heading the ball is illegal until high school.

Maybe in a Rec league, but if it's any level of competitive play then they'd have been heading the ball since grade school.
Ask HN: How do you – Style Components built using React/Vue/Angular etc.
UI developers till a few months back were writing styles in a separate SASS files which would compile down to CSS and be included into the HTML.

With modern frameworks, developers started writing their styles in the HTML directly. It felt natural to new developers who liked keeping their HTML/JS for a component in a single Template/JSX file.

In my 'opinion', inline-styles polluted the DOM and get in the way. Browsers have to take a break while laying out to process each inline-style they encounter with the DOM nodes.

Keeping styles for each component in their own JSX makes it difficult to visualize the entire hierarchy in a large project. It is very easy to visualise in case of a SASS file (if done properly.)

Enter, styled-components which lets you write CSS as templates in JS and auto assigns a unique class name to every component. Hence no more element level styles. It also auto links the class to every instance of the component.

Under the hood, we are adding <style> nodes via JS and the browser has to generate the same class during every execution of the app/page (showcased as a feature - no build process). IMHO, this does not seem to bring in any advantage over the fact that browsers can easily parse external stylesheets once and cache them.

Consider the case where you are creating a UI framework from scratch. You would encounter nested elements, e.g. button inside a modal needs to be different than a button inside a hero component.

Of course having the ability to add custom CSS via JS is a good feature to have. Would you use it while building a React version of Bootstrap from scratch or go with a tool like SASS to create the styles for such a framework?

Looking for inputs from developers who work on modern UI/Frontend on how you handle styles for your components.
You raise an excellent point and usually in tandem we educate management (not the tech people) on how they failed in their oversight and guidance role.

The real problem of course is to let things slide this far in the first place. But that's an entirely different subject, for sure the two go hand-in-hand and often what you touch on is the major reason the original talent has long ago left the company. By the time we get called in it is 11:58 or thereabouts.
HDFS vs. HBase: All you need to know
A point that is missed by this essay is that in a lot of the west the types of activities he is describing are, for legal/regulatory reasons, only permissible by a bank. So while we can have Apple Pay, PayPal, etc., under the hood those products and companies are still built on top of inter-bank payments with banks actually holding the cash.
Blockchain Solutions to Pharma in Healthcare
Publishing a Maintainable NPM Module with Continuous Integration – Via Codeship
I would second this. The way the AI was pervasive and controlling, without ever being obvious / well-known.

Definitely an underrated show, and one I suspect that more or less nailed its predictions of how AI will eventually be used/abused to control and manipulate populations.
Agreed, I don't believe that the confusions are the same, only similar.
Finland's basic income experiment is already lowering stress levels
Best Practices for Unit Testing Emails
It's not exactly a general solution fit for all situations and persons and purposes, but there's always TypeScript.
An artist put a statue of a urinating dog next to 'Fearless Girl' in protest
I've found integration testing to be very useful when dealing with JavaScript web stuff. If the desired output looks correct, you can usually work with the understanding that the JavaScript did its job.

See Selenium. http://docs.seleniumhq.org/
It's interesting you say that too, because a lot of those "flashy" jobs end up being very similar to a computer science job anyways. There are typically thousands of people designing a jet engine, and individual teams and people are assigned minute tasks of the process (especially engineers). The work goes from "designing a jet engine" to "sourcing proper bolts for a small part of the jet engine".
Try TypeScript.

Though I wouldn't think that test coverage needs "perfect" to catch a bad variable name, but maybe that's why there's so much obsessive tooling when it comes to coverage in the JavaScript world.
Increase Your Conversion Rate with Better Product Copy
Sometimes you get an entire septic tank full of...

Code base that is non-existent, as the previous attempts were done with MS BI (SSIS) tools (for all things SSIS is not for) and/or SQL Stored procedures, with no consistency on coding style, documentation, over 200 hundred databases (sometimes 3 per process that only exist to house a handful of stored procedures), and a complete developer turn over rate of about every 2 years. with Senior leadership in the organization clueless to any technology.

As you look at a ~6000 lines in a single stored procedure. You fight the urge to light the match, and give it some TLC ( Torch it, Level it, Cart it away) to start over with something new.

Moral of the story, As you build, replace things stress to everyone to "Concentrate of getting it Right, instead of Getting it Done!" so you don't add to the steaming pile.
Even presuming it is possible, it still raises the cost of censorship. Simply raising that cost is a good thing.
Compared to the atom on your compute stick anything will be grand!
You'll find these issues with pretty much any dynamic or scripting language once the codebase becomes large enough.

For JavaScript, your best bet would be to integrate external tooling (such as JSHint) into your gulpfile or grunt.
Where I went to college, UMBC, Computer Engineering covered enough of Electric Engineering and Computer Science that it set you up for either a career or further education in either. In my opinion, it was the best value.
To forestall the usual HN discussion: the double bell curve result has not, contrary to popular summary, been found invalid.

Dehnadi & Bornat (2006) was the seminal two-hump paper, which was widely circulated but never peer reviewed. In 2014, Bornat (who was Dehnadi's advisor) retracted it.

However, the situation is an odd one. None of the data was ever called into question. The basic methodology has seen criticisms raised, but has not been clearly invalidated. Several subsequent experiments (Dehnadi, 2009; Dehnadi et al.,
2009; Bornat et al., 2012) confirmed, at least, that the aptitude test consistently produces two humps.

Rather, Bornat issued his retraction in the face of his commentary on the studies. He described having a bad reaction to SSRIs in 2006, and subsequently making a large number of wild and grandiose claims about the work. These included calling the aptitude test "100% accurate", flatly stating that some students couldn't learn to program, and publicizing third-party claims about gender in the data set.

This is all very weird. The study stands uncorrected. Dehnadi seems to have gotten caught in the crossfire, since his paper was retracted for extra-textual reasons. No one has really settled the question of how predictive the aptitude test is. The only major follow-up I've seen, out of Toronto, is simply wretched. (They used CS course grades after curving to argue about distributions!)

So: double bell curve. Not proven, not retracted, still widely supported by anecdote.

http://wiki.t-o-f.info/uploads/EDM4600/The%20camel%20has%20t...

http://retractionwatch.com/2014/07/18/the-camel-doesnt-have-...

http://www.eis.mdx.ac.uk/staffpages/r_bornat/papers/camel_hu...

http://www.cs.toronto.edu/~sme/papers/2016/icer_2016_bimodal...
> let's see what cafes are down this alleyway
> And if you don't get along with the small community you'll be living with

You just described rural life in some places pretty much

> living permanently in a tunnel

Adding that one makes it more like living on a submarine or large boat.

Which while unpleasant prospect for many people, there are those who enjoy and/or even prefer it to normal life
Processing a trillion-edge graph on a single machine
These problems tend to be systemic, not just tech problems and usually by the time we reach this stage management is a little more amendable to things like feature freezes than what the regular crew would be dealing with. There is a reason you get to that stage.

So I can see how we have (much) more freedom when it comes to setting the time table and more diplomacy and better salesmanship might be required at an earlier stage. But then you can point to this comment here and suggest that it is probably much cheaper to do this in house than to hire a bunch of consultants to do it by the time the water is sloshing over the dikes.
The Different Workflows of Refactoring
I do think pricing is the biggest problem here. Android phones have been flourishing recently because of cut prices (see: Moto G, OnePlus).

There's a LOT of good options for high end Android phones, and even if you manage to take 2nd or 3rd place, you won't remotely get half or a third of the profits.

They're getting too greedy too early. You have to earn the public's trust before you jump in with a $700 device.
I gasped when I saw this article at the top of HN due to the relevance of it right now in my life. I am currently working on a real monolithic jambalaya that suffers from a lack of documentation, architecture, extreme abstraction, rampant tight coupling and no previous source control.

Your point on performing architecture discovery and documentation is spot on. It has really helped me to strip away the mess and understand the flow of the logic and maybe even shine some light on the parts of code that are valuable.
NSA has been known to target sysadmins so I wouldn't call this a myth.
> ... until they don't. Then you are screwed.

His point works well in a world where Android isn't competing with Apple which, while far from perfect, does not suffer nearly as badly from the looong tail of terrible quality apps.

The third-party Android app markets are neat but, pirated content aside, they largely serve only niches.

> Now you are just arguing for the sake of the argument.

No, it's point unto itself: Simple is not always better. (Obviously.)
This wasn't the case. Maybe in his head it was, but Information Superhighway and Internet were synonyms for the same thing. I lived through this period and most used them interchangeably. Multimedia was a big thing during this time, so people were excited about the tech advances in media, but Information Super highway was never used to describe web TV.

There was also Internet versus internet. Today, we call one of these a LAN.

Time to queue up the old AT&T commercials? It's amazing how much they went from a position of dominance to...today.
Well, every external call is 'coupling' in your code. Whether it happens on an interface passed as an argument or by resolving the name in some other fashion doesn't really change how tightly coupled your code is.

To me, having to change a function into a method on a singleton interface just to be able to mock it for tests seems like working around inadequacies of the language. And I'm not sure why `module.Interface.method` is easier to read than `module.function`.
Great perspective! If I ever go into art, that's how I'll do it. That wouldn't even feel like selling out, because what makes my teenage self's taste (which defines what I'm driven to create by default) any more valid than other people's tastes today?
Any advice on what steps to take when the legacy codebase is incredibly difficult to test?

I completely agree with the sentiment that scoping the existing functionality and writing a comprehensive test suite is important - but how should you proceed when the codebase is structured in such a way that it's almost impossible to test specific units in isolation, or when the system is hardcoded throughout to e.g. connect to a remote database? As far as I can see it'll take a lot of work to get the codebase into a state where you can start doing these tests, and surely there's a risk of breaking stuff in the process?
Baidu Baike has not changed its portrait of bad quality/credibility issue/plagiarism from my memory.
Why not just Object.freeze()?
Wow. Did you do anything with the data? It would be very interesting to see for what it was really used!
That's funny, I never heard of the result. Thanks for the information!
I'm sure the parent comment was being sarcastic but who even knows anymore?
India’s Bad Debt Is Looking Better to Investors
That site makes me sea sick.
> I gasped when I saw this article at the top of HN due to the relevance of it right now in my life.

You are not the only one :)
Lack of good coding/CS classes in high school. We're still not good at it.

Introduction to CS class in high school was what got me hooked in the first place.
Governments already deploy root CAs -- see here: https://security.stackexchange.com/questions/71171/is-there-...
Have you tried (ab)using AFL-fuzz for this? It can create JPGs out of literally thin air, so I wouldn't be surprised.

https://lcamtuf.blogspot.com/2014/11/pulling-jpegs-out-of-th...
Considering the ridiculous amounts of time spent on training, how do those of you deal with 'work' ? Work remotely ? Run multiple experiments at the same time ?

I'm having an increasingly difficult time explaining to my client why it's taking so much longer to debug the code as opposed to getting the implementation off the ground.
The DVD subscription service is still far better than the streaming service if you actually want to watch recent or not-so recent Hollywood content. The streaming service has lost most of its mainstream catalog, in favor of original content.
I have used Prolog a few times in a profession setting. When you are using it for the right problem, it is perfect.

To use it in a more general purpose sense, I think you need a couple of things.

First, you need some really great training and or books showing practical examples as well as how to overcome common issues with performance.

Second, you need more people contributing the some of the open source options like SWI Prolog.

Third, I think you need more ready to use bindings for the popular languages out there. SWI Prolog provides a C interface, but if you had an interface to say Node, Go, Rust etc that was simple to install with some good examples, you could reach more people.
5 Project Management Tips from Gartner and Forrester Research
Some previous blog posts on this topic, from a few years ago:

"Who Killed Prolog?" by Maarten van Emden. https://vanemden.wordpress.com/2010/08/21/who-killed-prolog/

Posits that the huge hype put into it by the Japanese Fifth Generation Computing Project, which it failed to live up to, essentially killed off interest in the language, which it never recovered from.

"Why did Prolog lose steam?", a sort-of reply I wrote. http://www.kmjn.org/notes/prolog_lost_steam.html

Posits instead that much of the low-hanging declarative fruit has been picked off by other, more specialized languages, ranging from SQL to production-rule systems to even LINQ, so Prolog no longer is the default go-to declarative programming language.
Pretty much any serious illness can do this. I've dealing with the effects of an autoimmune disease. Other than my slowly worsening condition, I have sat in meetings wondering...how long can I live a normal life...how will I take care of my family if I'm not around... That pesky software bug I'm asked about seems so trivial compared to the health problems I'm dealing with.
Starting a Bank Is a British Town’s Solution to Funding Cuts
http://imgur.com/a/FXhbH

That one is 11.1 by my tape measure.

You could put them side-by-side.

Still amazed you got that to balance. I tried it (after seeing your picture) but gave up :)
Sometimes the code is so horribly written we have nothing else to try but to poke at it with a stick in different ways until it breaks.
> My go-to strategy has been blackbox (comparison) testing. Capture as much input & output as I can. Then use automation to diff output.
I wouldn't bother to write unit tests etc for code that is likely to be culled, replaced.

I think that is precisely what the article advocates - although the definition of what end-to-end and integration tests are varies wildly from place to place.

> First step to any project is to add build numbers. Semver is marketing, not engineering. Just enumerate every build attempt, successful or not. Then automate the builds, testing, deploys, etc.

A thousand times this. And get to a point where the build process is reproducible, with all dependencies checked in (or if you trust your package manager to keep things around...). You should be able to pull down any commit and build it.
I love the about page on your website! It's very inspiring.
The truth is, you don't need anything elaborate to expose a fraudster.

Give a very simple programmatic task, a paper (or a blackboard) and a pencil. As you watch the interviewee elaborate his solution, and as you discuss it with them, you'll immediately see if programs are a deeply foreign object to their mind, or something they're fluent with.

The point is not syntax, forgotten semicolons, or even knowledge of libraries. Don't bother with design patterns either, the kind of tasks we're talking about is too simplistic for them to be meaningful: just watch whether translating a task into program snippets comes naturally to them. If they can do that, they can learn, and probably have learnt a great bit already.
Why would they break? If the MITM certificate is trusted at the local level, everything should work fine in their browsers.
Every OS Sucks (2010)
> I don't know who you are

You might not know that he created Android, but surely you must know that he created the sidekick??

Jokes aside, if you don't know who he is you probably don't need a smartphone.
> Do not ever even attempt a big-bang rewrite

I'd love to hear a more balanced view on this. I think this idea is preached as the gospel when dealing with legacy systems. I absolutely understand that the big rewrite has many disadvantages. Surely there is a code base that has features such that a rewrite is better. I'm going to go against the common wisdom and wisdom I've practiced until now, and rewrite a program I maintain that is

1. Reasonably small (10k loc with a large parts duplicated or with minor variables changed).

2. Barely working. Most users cannot get the program working because of the numerous bugs. I often can't reproduce their bugs, because I get bugs even earlier in the process.

3. No test suite.

4. Plenty of very large security holes.

5. I can deprecate the old version.

I've spent time refactoring this (maybe 50 hours) but that seems crazy because it's still a pile of crap and at 200 hours I don't think it look that different. I doubt it would take 150 hours for a full rewrite.

Kindly welcoming dissenting opinions.
Postgres having recursive CTE's made graph querying with SQL actually pretty tenable. I designed a graph like schema for a company I worked at awhile ago now with postgres and recursive CTE's in mind. Worked relatively well though some queries were quite large.
Undoing Insularity: A Small Study of Gender Sociology’s Big Problem (2016)
You can get a 12-core Xeon (evaluation sample) v3 for ~$200.
The issue to think about is - if you don't know enough to "upgrade/replace in place" - then you probably won't know enough to rewrite from scratch.
Food for thought...

> the self is despised for one reason or another that varies from person to person and usually or always smacks of hidden perfectionism. > https://www.psychologytoday.com/blog/feeling-our-way/201512/...

I know someone similarly described (priveledged background)-- who volunteered for military service, the experience stretched him both mentally & physically. His enlistment became a time of truly transformative personal growth.
This is a somewhat common (possibly even 'Pythonic') idiom in Python.
> The older you get, the more sleep you need

This isn't true. Need for sleep declines with age. Youth masks the effects of poor sleep in the same way it masks poor eating and lack of exercise. But young people need more sleep, not less.
As people move away from the midwest, and the midwest economies lag, their housing costs should have cratered. Instead, they had the same 2008-2009 bubble popping everyone else saw, then continued to drift up. Source: bought and sold homes in 3 regions in the last 10 years. Also, you can marinate yourself in the trend lines on trulia.
I agree with you, I don't know why you were downvoted. In my experience the first and biggest problem when taking over legacy codebases is the lack of knowledge of what features the code is supposed to support. Just starting out with writing integration test has a risk that you end up with even more meaningless code to maintain.

Actually, contrary to the advise of the writer, I like to start out with fixing some bugs. I find it a great way to gain some knowledge and it has the added benefit of keeping business stakeholders happy. And while fixing those bugs you can start writing the first integration and unit tests.
“We try and prototype everything”: Q&A with Bankrate’s Director of UX Design
Then I am sorry to say you have no idea what you are talking about. Penrose nowhere claims the human mind is not bound by physical laws.

Cite one place where he says anything like this or go home.
Really intel? I don't want 10+ cores just to get reasonable PCIe connectivity. This is just another strike against these parts (after the lack of ECC). I guess intel is trying really hard to protect their server parts, but they continue to gimp the high end desktop parts (as if the removal of multisocket isn't enough).

I would really like to understand why intel tries so hard to not make a desktop part for people willing to spend a little more to get something that isn't basically an i5 (limited memory channels, limited PCIe, smaller caches, etc).
How to automate your product's release notes
Extreme planned refactoring perhaps:

"Many teams schedule refactoring as part of their planned work, using a mechanism such as "refactoring stories". Teams use these to fix larger areas on problematic code that need dedicated attention.
Planned refactoring is a necessary element of most teams' approach - however it's also a sign that the team hasn't done enough refactoring using the other workflows."

https://martinfowler.com/articles/workflowsOfRefactoring/
I don't believe so. I just tested one of my own websites, which only serves over HTTPS, from Hong Kong (admittedly a special case), and Beijing. It worked fine from both. Surprisingly, because I thought Adsense was blocked, an advert even appeared on the Beijing screenshot. On the other hand, it reported as temporarily unavailable from Shanghai.

I was using https://www.dotcom-tools.com/website-speed-test.aspx?se=1403....
The optics are fine. It's a cutesy "about us" page.
We don't always take the time to understand Unicode.

I wrote the following article for Node.js to try and clarify the intersection of Unicode and filesystems, especially with regard to different normalization forms, and using normalization only for purposes of comparison:

https://nodejs.org/en/docs/guides/working-with-different-fil...
It can be trivial depending on the goal[1]

[1] http://www.jroller.com/languages/entry/python_writing_a_comp...