skysight-inc/HackerNews huggingface dataset:
And go back to 1900 and you'll find completely biased newpapers (The Arizona Republic used to be called The Arizona Republican: https://en.wikipedia.org/wiki/The_Arizona_Republic ---that's not the only example either) and over the top reporting that would give newspapers (and TV) a run for their money today (https://en.wikipedia.org/wiki/Yellow_journalism). Was it better in the 1970s? Or was the bias better hidden at the time?
I dunno, it's better than the previous name, Swagger.
YouTube should sort all of its videos into two groups, one group worthy of being secured and one group not. /s
They work as a desktop but you're better off using something designed around the task. SD cards are not really designed for heavy random writes on a long-term basis and can be sensitive to corruption during brownouts that don't necessarily trigger a full system dropout. The GPU was primitive even for its day and has not gotten better with age. There's no SATA or USB 3.0, no GigE, and everything runs across a single USB 2.0 bus.

For desktop or server use, the Pi is in the same price range as systems built on laptop chipsets (Kabini, Baytrail/Cherrytrail/Goldmont, etc). These can easily be had for sub-$150 normally and sub-$100 if you shop around. That's about the same price as the Pi once you factor in all the other things you have to purchase to get your "$35 computer" to boot. They are are lot faster and a lot more fully-featured. You can easily get SATA, GigE, USB 3.0, and you can even get ECC RAM on the AM1 platform. Also check out the Liva series from ECS and the ZBOX series from Zotac.

Of course if you have the cash you can also look at a NUC or BRIX or other mini-PC but those are aimed a little higher in the market.

Also it's kinda sad to hold up an Intel product as a positive example of open source, but it's much better than the Raspberry Pi. You are still reliant on binary blobs to boot the hardware to this day. The graphics stack is open source, the ThreadX-based VideoCore OS RTOS the GPU uses is not, and the documentation/drivers are restricted to usage only on official Raspberry Pi hardware.
I was always under the impression this program was a level editor made primarily for use with for the author's Clean Game Library [1], a game engine for a functional programming language named Clean [2]. I haven't used either, but maybe people into functional programming will be interested in studying a working game engine made in a functional programming language back in 1999? [3]

As for interesting features the program offers on its own… it has a pretty decent integrated graphic editor for tilemaps [4], and uses a template language for defining the output format instead of providing a generic parsable file format [5]. It also appears to abstract away layers by making each tile in your map consist of a "front," "middle," and "back" tile [6]. In general, it seems like a more old-school version of Tiled, and may be useful for people developing for/on older systems that want a very lightweight tilemap editor.

For people used to programs like Tiled, though, there's probably no compelling reason to switch to this tool. The lack of a working undo function in the map editor could be a dealbreaker, for one.

[1] http://cleangl.sourceforge.net/index.php

[2] http://clean.cs.ru.nl/Clean

[3] http://cleangl.sourceforge.net/thesis/

[4] http://tilestudio.sourceforge.net/drawing.html

[5] http://tilestudio.sourceforge.net/tutor.html#CreateTSD

[6] http://tilestudio.sourceforge.net/tutor.html#MapEditor
Well, let's see:

1) Looking at the description:

"The Meta Board is a physical programmable circuit board that allows you to build physical circuits on a breadboard without wire or specific value resistors and capacitors using a host microcontroller, such as the Arduino Nano."

This is rather uninformative to say the least. In what way does it replace resistors / capacitors? How many does it replace? How is it programmed?

2) On watching the video, it seems as if this device lets a person turn on or off some pins under the control of a computer. That would make this device a digital I/O board, minus the I part, or a relay board, perhaps? (Both of which are readily available online already.) However, the description suggests that it does more than this?

3) The "Why use the Meta Board?" reasons are either not very compelling or have common solutions. For example, re: #2, resistors and capacitors costs a negligible amount and re: #7, it's not particularly clear what that means.

3) There is no description of the electrical characteristics of the inputs/output pins or anything else.

4) The image links on the metaboard.space page are broken, at least when viewed from North America. Manually opening the links returns an access denied message from the CDN.
I used to respect what Assanage is doing. But recently its clear his actions aren't some noble crusade to speak truth to power and promote freedom of speech and otherwise promote civil liberties. If that were the point then he would leak whatever he has whenever he gets it instead of trying to time it to affect the election. If he really believed in the causes he claims to believe in then he wouldn't be trying to get Donald-lets-silence-my-critics-Trump into office.

I guess in light of new evidence I changed my opinion. Why can't other people be rational like me.
Software development varies enormously. Flight avionics software differs from video game software differs from a spreadsheet differs from an order-entry system differs from laboratory analysis software differs from a web browser and so on. Flight avionics differs from a commercial jet liner to a fighter plane to a model airplane. Some projects have huge budgets and others have shoestring budgets. Some projects require extremely high reliability and quality; cost is not an issue. Other projects can be quite buggy, low quality but still useful -- cost effective.

Developers vary as well. Some temperamentally find something like TDD useful. Others do not.

There is no one software development methodology to rule them all.
Replicated with 21 grad students? And then they quote statistics?

Painful to watch people generalize from such small sample sizes.
> I think the chasm exists between _untested_ code and code that has tests.

IMHO untested code isn't always a bad thing. Anything related to privacy, security, or data integrity should be heavily tested.

But beyond that, code should need to earn its tests. (At least in a web startup context.) After all, the core of agility is being able and willing to go in a different direction when something isn't working.
Personal Investing for Entrepreneurs and Those in the Gig Economy
Am I correct in reading that they performed this experiment only for two days, and entirely with graduate students?

If so, they have missed the point of TDD.

In the short term, TDD probably doesn't make a difference, one way or another.

But software as a business is not a short-term game.

I would love to see a study where the participants are, over a period of six months, given the same series of features (including both incremental improvements, as well as major changes in direction).

In my experience, teams that don't test at all quickly get buried in technical debt.

Untested code is nigh impossible to refactor, so nobody ever does, and the end result is usually piles of hacks upon piles of hacks.

As far as testing after development goes, there are three problems that I see regularly:

One, tests just don't get written. I have never seen a TLD (Test Later Development) team that had comprehensive code coverage. If a push to production on Friday at 6pm sounds scary, then your tests (and/or infrastructure) aren't good enough.

Two, tests written after code tend reflect what was implemented, not necessarily what was requested. This might work for open-source projects, where the developers are also the users, but not so much when building, say, software to automate small-scale farm management.

Three, you lose the benefit of tests as a design tool. Code that is hard to test is probably not well-factored, and it is much easer to fix that when writing tests, then it is to change the code.
Jupyter Themes – Custom Jupyter Notebook Themes
There's another jupyter themes posted in here: https://news.ycombinator.com/item?id=10332018

but this one I posted is better alternative, as it have more theme options
Waterfall is a straw man.
> Because Hitler was a successful, ambitious and quite influential politician who fought against the hardships in his life.

Sorry that's not a 'first order approximation of similarity to Hitler' any more than 'adult member of the human race' is.

A comparison made directly to Hitler would, as a first order approximation, follow the most notable facts about him. In fact, most politicians are not megalomaniacs who rise on a platform of racial scapegoating and then go on to wage total war and genocide. Donald Trump, uniquely among modern American political figures, strikingly resembles the first part of that.
cat.
If you believe that Google and Facebook are lobbying to protect your privacy rights, I'd encourage you to check-out their records in Europe, where their interests tend to get tested a little more[0][1].

If you do care about your privacy, data regulation, and abusive copyright legislation, I'd urge you check out the EFF[2], and consider becoming a member.

[0]: https://en.wikipedia.org/wiki/Criticism_of_Facebook

[1]: https://en.wikipedia.org/wiki/Privacy_concerns_regarding_Goo...

[2]: https://www.eff.org/
I thought your question implied that systemd was superior to PID files because it solved the PID race.

To answer your question more directly, why do I use PID files:

1) Because I write and value portable software, both across different Linux distros and across different POSIX-like systems. I regularly target AIX, FreeBSD, NetBSD, OpenBSD, OS X, and Solaris; none as second class citizens.

2) Because IME the compile-test-debug cycle and similar non-production runtime modes is easier when you don't have to fiddle with separate init files. Supporting a simple PID-file-based backgrounding capability directly in your software is a relatively simple matter when not implemented as an after-thought.

3) Because sometimes you want to implement a service using multiple processes (e.g. worker pools, specialized privilege separation, etc), which is easier (both in development and production) when you fork them from your own master rather than trying to configure and coordinate through a third-party supervisor. Note that this doesn't exclude your service's supervisor running in the foreground under another supervisor like init (e.g. systemd) or daemontools.

4) Because using process groups and a shared controlling pseudo-terminal you _can_ atomically send a signal to all children in a process group. It's more robust than what systemd currently does with cgroups, it's portable as a practical matter, and relatively simple to accomplish early in main().

Note that I write my software to support running in the foreground under the control of any supervisor of choice, including support for inheriting a listening socket. This is always the default mode. Backgrounding, PID files, etc, are optional capabilities in my daemons.

Regarding cgroups freezer, it does seem like it should work. I stand corrected wrt Linux supporting atomic signals to an entire cgroup. But it seems like neither systemd nor Docker has actually implemented support. Perhaps it's for lack of motivation, or perhaps because there are non-trivial issues to resolve. It would be interesting to know what the hold up is.
You should learn to think before you get so angry!
That type of journalism is going away fast. Often if you look at the New York Times, for example, almost every article on the front page is an anti-Republican op-ed style hit piece masquerading as journalism. CNN is the worst after that, followed closely by MSNBC, ABC News etc.
Re: SQLite -- Yes, Bedrock is just the replication layer, SQLite does all the SQL and storage.

Re: Paxos -- It's our own implementation. Split brain is prevented by the master refusing to stand up unless a majority of configured (not just active) slaves approve its standup request. So in a 6 node deployment, 1 master and 5 slaves, 3 of the slaves would need to approve. This means one "half" would have 4 nodes, and the other would have 2 -- and the half with 2 would recognize it doesn't have quorum and thus stay idle. In a scenario where there is a split down the middle, nobody would do anything because nobody has quorum. (This is precisely why you shouldn't deploy in just 2 datacenters -- three is the magic number.)

Re: Sticky sessions -- True multi-machine consistency is impossible to guarantee and has no real practical application. The only consistency that matters is from the perspective of an observer, ensuring that it always sees a world whose time arrow progresses linearly forward. If that is what "linearizable" means, then perhaps. Sorry, my terminology could be off. Thanks for the correction!

Re: SQLite on SSD -- Sorry, I didn't mean to claim Bedrock was somehow faster than SQLite. Indeed, Bedrock adds overhead to SQLite (to do all the networking and such). My main claim is that Bedrock is faster than other databases, in particular when using C++ stored procedures for complex operations.

Thanks for the questions!
I applaud you for standing up to those who would defend your rights as a gay man, asserting your strength of character and courage of conviction. I have nothing I'll to say about your choosing to support a candidate who gives you that freedom to fight your own battles as you see fit.

Consider this, in addition to your position: Your assertion that Hillary is pandering to the LGBTQ community may be based on a faulty premise. You're convinced of Donald's position on gay rights as laissez-faire, and that informs your view of Hillary's "pandering". But what if, as is the hope of anyone who speaks out about their beliefs to a political leader whose support would help their cause, Hillary was truly convinced that she was wrong, and has legitimately changed her mind? Isn't that the outcome the LGBTQ community would want? To have effectively changed the mind of such a political leader?

Further, is it possible that it's closed-minded to refuse to acknowledge that Hillary may have learned something? That she accepted new facts, and adjusted her position as a result of them?

Finally, can you appreciate the perspective that others may have, when they witness a gay man deny that Hillary may have actually, sincerely, really and truly changed her mind, and that she now stands with the gay community? The perspective: "This guy is just as closed minded as he claims Hillary is."
I don't know why, and even though the net effect is the same, I think it's really cool that instead of going back and forth, like most flights, this plane (and its passengers) keeps going in the same direction and goes once around the earth on each "return" flight.
> loading of the underlying module to be performed fully asynchronously

Right now, Node uses require(). What he means here is that while this does return a Promise, the underlying loading of the module doesn't have to be asynchronous, you could just do something like this:

function import(module) {
return Promise.resolve(require(module));
}

Which would fill the requirement of returning a Promise, but would actually load the module using the normal synchronous means.

> I thought that was an unusually elegant solution in this community.

The biggest issue with unambiguous module syntax is that, since you have to parse modules before finishing the resolution, it could drastically lengthen startup time.
"The Bay Area has some of the best transit options in the country, "

[citation needed].

It really doesn't. In fact, it notoriously has pretty much the most underdeveloped public transit options of any major city in the US.

(and while folks disagree on #1, i don't think anyone would disagree it's in the top 5 worst)

In DC, i could easily get to work pretty much anywhere in the city in roughly the same time or less i could by driving.

In NY, ditto.

In the bay area, it would probably be 2x the drive time, and a serious pain in the ass (and that's saying a lot, given how bad the drive times are)
]
It's literally about the YC community and some of the most well-known personalities in it.
Ok, I agree completely
Extreme side-effects of antidepressants
Does he power down, or just not use a bunch of video/audio? My use is light phone/text, and rare email/web while standing in line (but usually I just "be" while I'm in line).
This study, like most software development studies I've seen, is seriously flawed. It doesn't justify the sensational title here on HN.

* The sample size was tiny. (20 students)

* The participants were selected by convenience. (They were students in the researcher's class.)

* The majority of participants had no professional experience. (Six students had prior professional experience. Only three had more than two years' experience.)

* The programming problems were trivial. (The Bowling Kata and an 'equivalent complexity' Mars Rover API problem.)

Maybe, maybe you could use this to draw conclusions about how TDD affects novices working on simple algorithmic problems. Given the tiny sample size and sampling by convenience, I'm not sure you can even draw that much of a conclusion.

But it won't tell you anything about whether or not TDD impacts development time or code quality in real-world development.
REST and JSON are inefficient and irritating to work with. Websocket with binary protocol like protobuf is much nicer. Even SOAP was much nicer because you could usually code generate a client from a WSDL.
There have been presets for Node 4, Node 5, etc so I imagine there will be one for v7 once it's released.
Phoenix (Chris is in TLD camp and Phoenix has very good test coverage)
This is only true if you're rich enough to afford to live near any of these campuses. For most of us mere mortals, South Bay "campuses" mean taking your pick between crippling commutes and tiny apartments.
Clickbait. TDD !== tests, article compares TDD with TLD.
No sd card, no sale.
I think he's saying he'd rather use Emacs for Java dev, but IntelliJ is a necessary evil. For Rust, there's https://github.com/racer-rust/emacs-racer which seems pretty solid.

P.S. Regarding Java dev on Emacs, ENSIME (http://ensime.github.io) now works with java-mode rather than only Scala. I use it for Android development, and it's not perfect but works well enough.
Yes, SQLite has transactions, and Bedrock runs all stored procedures in transactions. However, the Bedrock::DB plugin (which is just a single stored procedure: "query") doesn't expose transactions to the caller. So you couldn't, for example, call "BEGIN TRANSACTION" from the webserver, issue a few queries, and then call "COMMIT". The proper way in Bedrock (and I'd argue, for any modern database) is to package your transactions into stored procedures that execute inside the database itself.
Don't worry Mr Zongle.

He also said that the survivors will be stronger and fitter once the radiation dies down. Those extra limbs will enable our descendants to access all of Unicode on a single keyboard thereby enabling international peace and prosperity ... until the next time!

I'd flag this as political nonsense contributing nothing but it's just too funny not to leave up.
Only if you consider cryptocurrency "cash". Otherwise, plenty of people are already living exclusively on bitcoin today with many benefits and few of the scare mongering issues. I can't imagine the masses are still 2 whole generations from catching up, I'd think about 10 years would be enough.
Are you sure it's not just the fact that you didn't like the groups he was dumping information on in the past, but now you do like the group he is dumping information on?
Ah I see. So you are saying after enough weathering you have exposed the Bedrock...

I have no idea if anyone uses Rqlite, I just remember it from previous discussions here. Very similar indeed...
The other day I asked Siri, "Remind me to pick up [daughter's name]" but it interpreted that as, "Remind me to pick up pussy." A more context-aware engine would realise we don't even have a cat. On the other hand it made me wonder to what extent Siri is trained on real-world data from other users.
Newsflash: Most people in America drive.

This whole "automobile lifestyle is evil and most people wouldn't drive if they had the choice" narrative is getting kind of stale.
I just came out of an embedded system-sy project, and I did have some tests for my ringbuffs, and sprintf.

But tests for any of the interactions between subsystems is quite problematic. And then testing on the device might be problematic due to space constraints, but testing on a simulation is also problematic...
I don't know how you'd realistically test it.
Yes.

When doing UI code (with something like React) it's next to impossible to do TDD - you can't know the structure until you actually implement it.

If I'm fixing a bug in some sort of non-ui code, I often find TDD to be very helpful. Create a test case that demonstrates that failure, then fix the implementation to make the test pass.
"Ecuador respects the principle of non-intervention in the internal affairs of other states"

A reasonable policy in the abstract, though the enforcement seems rather selective given the previous WikiLeaks divulgences of e.g. Manning's documents, and contradictory with respect to Assange's asylum, which precludes the operation of the internal police affairs of Sweden.

Of course any reasonable implementation of such a principle leaves discretion for the degree of interference allowed in each case, and evidently tilting the election scales is a line too far - but what then does this say about Ecuador's position on "Collateral Murder"? Perhaps the US government should quid pro quo Quito a bit harder given the latter's apparently positive endorsement of certain kinds of internal manipulation.
> Sometimes writing tests first helps me think about the high-level design of my code.

I'm personally a fan of "readme driven development" (https://news.ycombinator.com/item?id=1627246). It's a nice compromise between tons of upfront planning and nothing at all.
> I'm imaging more along the lines of serializing editor state with each key press, encoding it, sending it to another process, having that process unserialize it, lex it, encode all of the cascading token changes and information about those tokens back into JSON, sending it back to the editor process which then has to decode the JSON and apply all of the token information to the in-memory representation as real overhead.

The latency of both Unix IPC calls and serialization/deserialization of small amounts of JSON should be measured in single- to double-digit microseconds. A frame at 60fps is 16,000 microseconds, so if this is causing even a single dropped frame, something is seriously wrong.

The lexing itself might or might not be a performance worry, depending on the architecture of the whole system, but that's no different from the lexing built into the editor (except perhaps in that people writing editors tend to care more about latency)...

(Well, this seems academic, since according to other comments RLS doesn't aim to put syntax highlighting out of process.)
> If you care about ancient clients, you should be using SHA-1 still

I want to point out here that the oldest OS the newest Firefox supports is Windows XP SP2 [0], released 8 years ago, and a free upgrade from the original XP release 14 years ago. Unless you need support for last millennium's hardware you have no excuse for not supporting SHA-256.

[0] https://en.wikipedia.org/wiki/Firefox#System_requirements