skysight-inc/HackerNews huggingface dataset:
Yes you are right. And that is not of importance to me. I don't even care if bitcoin dies. Lets talk blockchain.
Essentially bribery and corruption exist in the West, they're just completely legal and out in the open.

You can't bribe an officer of the USA govt, it's called facilitation payment and it's legal.

This is made even more funny by the fact that the USA law prohibits foreigners from engaging in that same behavior with other foreigners, in foreign countries. Foreigners have been convicted and indicted in USA for providing facilitation payments, in third countries, to third country citizens.
I don't agree with the document, though I do agree with the idea of increased engineering rigor.

I think that the value of this isn't in what it suggests doing--because it's looking at the wrong things and is wildly out-of-step with how development is actually practiced--but in what it gets wrong, and why those things are wrong.

For example, there is a large focus on "size"...lines of code, pages of documentation, etc. These are metrics that lend themselves to straightforward analysis, but are incorrect--a developer writing a one-line map with a lambda is doing better than her peer using an explicit loop. At the same time, her other colleague who is doing everything with one-letter variables and no linebreaks is doing better quantitatively (fewer lines!), but is creating massive technical debt.

It's interesting to see these efforts.
Yes, thx
Voting systems like HN inevitably lead to an echo chamber when used to signal agreement or disagreement. HN already largely is one, but its a shame to see that this is officially endorsed.
I guess "just" was the wrong word. What I meant was how it helps "prove geometric identities by calculating a few values". I guess it's about series representations.
I sincerely doubt his claim that he's familiar with the content of all the documents, given the sheer volume, but even if we take his assertion at face value some of the releases have clearly exceeded the scope of constitutional abuses. For instance, data monitoring in Europe, South America, Asia, etc. have a firm basis in law and are basically the entire reason the NSA exists. You may view it as unethical or immoral, but they clearly aren't unconstitutional.

It's fine to disagree with this, but it's an arguable point and it's stuff like that most of us Snowden non-supporters take issue with, not PRISM or XKEYSCORE which are clearly unconstitutional.
>Why would anyone want more than 1080p on a phone?

Because 1080p on a 5 - 6 inch device creates visible pixels to the naked eye, and can be improved upon with a higher quality screen.

I have a 1440p 5.5" smartphone and the difference next to 720p is staggering and the difference next to 1080p is still noticeable to the untrained eye. The tests I use to demonstrate to people include well formed text display, comic-book display, and Unreal4 demo. People pick out the 1440p screen as best without much issue in every test.
Command to learn:
- git rebase (if you learn everything you can do with this command, you'll pretty much know git inside and out)

Other useful stuff:
- git diff
- git diff --cached
- git log --graph --decorate --pretty=oneline --abbrev-commit --all
- git cherry-pick
- git stash
The obvious similarities are throughout the design, including the entirety of the course sales pages, the lecture view, specific iconography, etc.
> Kubernetes is not really a container orchestration platform.

Since Kubernetes schedules, I'm curious what makes you say this. Kubernetes without Mesos works perfectly well for the use cases that both CoreOS and Google envision.
The second part of your question is a really good one, I'm curious about that as well.

I will say, however, that just because those things aren't happening, does not mean that Comcast isn't a terrible company. I think it's pretty clear that there are a lot of terrible things that go on in the world that don't hit the news cycle.
I don't know what they do with it, but it's handy for writing tests against an expected JSON file: assert json.dumps(expected, sort_keys=True) == json.dumps(obj, sort_keys=True) # where expected was json.load()-ed and obj was produced by the function
I think there's a lot of value in that period of time before the first commit. Rich Hickey supposedly spent two years thinking about Clojure before even writing a single line of code, and I'm sure Torvalds spent an equivalent amount of time seeing pain points with BitKeeper before writing git.
The 486sx, at least at the start, did not have a coprocessor at all.
Those trivial examples seem to be mostly to not scare off C++ programmers. It's more interesting, though, to see how far you can push single ownership. You can build a single-ownership tree. Rust lacks a "nil", but has discriminated variant records (called "enums") to handle has/doesn't have semantics. You can also grow a <Vec> of owning references, so you can have an array which owns a variable number of children. Using all those features together, you can build a tree. Take a look at the XML library for Rust to see how this all works.

But it can't have backpointers. That would violate single-ownership. Weak pointers for backpointers are available, but that's an unstable feature and introduces reference counting overhead. Rust needs some construct which includes a single-ownership forward pointer and a dependent back pointer, updated together so that they're always in sync.
Gotta love Ayn Rand and her incredible ability to make bare, simplified, polarising dichotomies out of rich, complex topics, then paint the extreme opposite to her as evil, without examining whether her own chosen extreme may be equally evil. I mean, she really has taken the "build a straw man and set it on fire" approach to an art form (quite literally... and I'd add that the Fountainhead is a great book, if thoroughly misguided from a philosophical point of view).

Altruism as she defines it is obviously crap. What she fails to do is to clarify the extreme egocentrism that she proposes in an equally critical way. Here's an amusing attempt to do so using her own format:

> "What is the moral code of egocentrism? The basic principle of egocentrism is that other people have no right to exist other than for your sake, that service to you is the only justification of their existence, and that their sacrifice for your good is their highest moral duty, virtue and value.

> Do not confuse egocentrism with self-respect, self-awareness or respect for your rights. These are not primaries, but consequences, which, in fact, egocentrism makes impossible. The irreducible primary of egocentrism, the basic absolute, is the total unimportance of the other—which means; not caring one whit about others, using them for your own means, sacrificing their feelings and even their lives if necessary—which means: the other as a standard of evil, the self as a standard of the good.

> Do not hide behind such superficialities as whether you should or should not use people. That is not the issue. The issue is whether those people have the right to exist without being of use to you. The issue is whether you are really compelled to notionally support the existence, day by day, of people who are of no apparent use to you. The issue is whether your needs are the first mortgage on their life and the moral purpose of their existence. The issue is whether other people are to be regarded as sacrificial animals. Any man worth calling that will answer: “No.” Egocentrism says: “Yes.”"

As usual, the better place to sit is somewhere in the middle. No, you do not exist just to serve others, and total self-abnegation and sacrifice is certainly not a productive way to live. Neither, however, is total self-adoration and worship of your ego. Both are mistaken paths. The far better path is to realise that you need a balance of both respect for your own self, and connection to others, to live a good, fulfilled life.

For your own sake, fobcat, and not for mine, I hope you can read and understand the above...
They have to wait for someone to move it (maybe someone within the Parks department, they have the equipment at least) but it's worth pointing out that a job in NYC Parks as highly bureaucratic it is desirable. Many employees are professionals (seriously, you have no idea if the guy throwing the tarp happens to have a masters in landscape architecture, or the next guy, or...) and park officers must be designated as special patrolmen by the NYPD. The very first rule of being an "Urban Park Ranger" is: "Under supervision, perform patrols of park facilities as part of a highly visible uniformed division. Ensure the safety and enjoyment of park users and the protection of park property." It's great that we can all discuss the merits of this from our own viewpoints– I fully support the artists here– but it is precisely the job of Parks employees to assist in the removal of any form of unauthorized modifications to the park. Simplest reason? Parks has no idea how the statue was made or how it was installed. What happens if it falls on someone? Or someone climbs it and a piece breaks off? We take it in good faith that this thing is just a harmless statement of expression– Parks employees most certainly should not.
I think the headline sums up the confusion. Selling (as in taking cash in exchange for the product) a prototype or mockup as-if it were the real thing would be fraud. Demoing a prototype or demoing features which are not fully fleshed out is not.

The entire Lean startup movement and concept of the MVP is to test your product idea in the market, in front of real customers, before investing too much time trying to build something no one wants.

I thinks its OK to focus the discussion on features, benefits, etc if you can get in front of potential customers. It should not be long before they ask about pricing and availability. That's when you simply say you think it will be ready by date X.

Take for example the email assistant AI startup X.ai. They say in their FAQ that "Amy" is human assisted. For all we know Amy is 100% humans booking your appointments and the algorithm is total vapor. It's not unethical to do this, as long as customers are not expecting some guarantee of no human intervention (e.g I sell you an instance of Amy I claim lives on your desktop, but requests are actually sent over the network for humans to do the work)

If you have a black box in your demo where data goes in and magic comes out, and you say "This is actually taking the input and generating the output in realtime right now" you are sticking your neck out and it's likely to get chopped. Building a new customer relationship on a lie like that would be a mistake. But depending on the specifics it's a calculated risk; if the black box is completely do-able but just not yet quite done, then I think hard coding results in a mockup is time-honored, wide spread and perfectly ethical. But when they ask about availability you've A) confirmed market interest, and B) you state not all of the features are ready but you are expecting to ship on Date X.
Off topic from the article, but this is something I literally just spent my morning wrestling with and fixing, so I'd like to talk/rant about it a little. My apologies in advance for rambling.

You can use doc comments to signify types. You mention you use PyCharm in your article, and it supports doc comments in it's autocomplete and code analysis, I find most popular libraries are commented well enough that PyCharm can understand them.

I also always try (and encourage others) to use names that are declarative for both purpose and type. Of course, you can't always rely on third party libraries (or even colleagues) to be so nice, but I find a good name (almost) always removes all the confusion that normally comes from a lack of static typing.

For example, one of Codecademy's very first Python lessons includes some code like this:

meal = 44.50
tax = 0.0675
tip = 0.15

Which I think is unclear. Imagine these were function arguments. calc_total(meal, tax, tip) is vague. Is meal an object, or a numeric value? (I could possibly see it containing a list of all items in the meal with prices). Tax is almost always a percentage, but what about tip? Judging by the the above values, we can assume a 15% tip, but we don't know if the customer was stingy and tipped $0.15, and by just name alone, we can't tell at all.

calc_total(meal_cost, tax_percent, tip_percent)

It's now immediately clear to me the type and range of values it accepts. The tip_percent is also an example of when a good name can provide info that even static typing could not, because in either case it is a floating point (please let's not get into a debate about Decimal or currency types :P ). This is a very basic example, but it applies at all levels. Don't call the parameter "users" if the function is not expecting an iterable of User objects. Maybe "usernames" would be better. Etc.

But of course, this only helps if the code you're working with is named well. In something like Java, you have better protection and tools when working alongside lower quality code. I also completely agree with you on point #2 about No Static Types. Navigating through my editor is so much easier in a static language than it is in PyCharm with large projects. And the most annoying thing is that autocomplete breaks with ORMs, and most ORM usage is actually flagged as a warning or error. Ugh.

I also feel very confident in the automated refactoring in something such as an IntelliJ Java project, or ReSharper, but am apprehensive about using PyCharm to refactor anything with usages spanning more than one file. Same goes for Javascript (or any other dynamic language, I suppose. Those are just the two I use).

Enjoyed the posts by the way, adding your blog to my reading list.
Pretty sure I still have a bash script laying around to automate this process.
Eh, I mildly disagree on web site review. Perhaps not GitHub's pull request/review model, but big projects like Android and Chromium do all their review on web interfaces.
>Mercurial wants you to use a lightweight clone....

You can make a named branch and make it private so that it wont be pushed automatically or you can create a bookmark and mark the changeset as private, so that it wont get pushed automatically OR you can create a local clone, completely isolated from the origin repo.

The difference between git branches and Mercurial branches is a bit of a conceptual one. Git has 'user' branches, where a branch corresponds to the work of a user. Mercurial has 'feature' branches, where each named branch (is supposed to) correspond to a feature. I think This is the one of the reasons some Git users are sometimes so turned off when they see Mercurial branching model.
And to me, I would like a project as a sum of its feature branches. But I can imagine why this might not be optimal for a something like Linux kernel. But for most projects, I think feature branches are more valuable than the user branchs of git.

>Mercurial, without extensions, doesn't have the git shelf.

Shelve extension is bundled, enabling is just a matter of turning on a flag in the .hgrc configuration file...
This solution is pure love! Any idea about the license? It doesn't appear to say anywhere and I would love to add it to Picnic CSS as a plugin (developer here).
This sounds like my company. I work at a startup as well and the founder would often times shows items where the HTML was still wet and not really explain that in order to get this to work, many man hours would be required. I think there is a balance between salesmanship and technical mis-representation. We have moved past this as we matured our development process, but I found it to be dishonest. This type of behaviour continues when we report numbers of users, $, etc. Not good.
The "acquisition" is rather questionable:
https://twitter.com/asherlangton/status/575768324757266432
https://twitter.com/asherlangton/status/583509322946125824
PSP was not designed for consumer apps. It was conceived for mission-critical software that needs to be right the first time, such as the Space Shuttle's (400K LOC). I took a class on PSP at CMU in the 90s and it was obvious that I'd never use it at any of the companies I was interviewing with at the time. Your comment sounds to me as if a dentist said "look at this jackhammer, what a useless tool. I'll never put this inside anyone's mouth."
AngularJs all the way.
I spent some time about 4 years ago going through the PSP book. The first thing to note is that the initial research on PSP was done on a very small sample size - grad classes and some small groups of professionals. So you have to question the efficacy of the original research.

The process itself largely consists of piles of paperwork. Piles. Tons of overhead monitoring your work.

All that said, the intended goal was to create a state of mindfulness of your software creation process, allowing you to understand the typical root causes of bugs and better estimating.
Middle ground does not always exist. For example, take the plans to set up decentralized networks outside of the government's control. There have been discussions on how to allow the government to still be able to fight certain forms of illegal data exchange (terrorism and child abuse) while banning it from being at all involved in the others (drugs). But there is no middle ground solution. Any network that comprises itself enough to allow the government in to monitor and combat certain data will weaken its ability to prevent the government from being able to do the same elsewhere.

As it stands, giving the government the power to read any one particular thing will result in it being abused to read other things that were never intended. And with a history filled with governments always overstepping their bounds, the only real solution is to create something that cannot be read, as any limit that depends upon 'please don't' is only a temporary patch.
The Lunar Eclipse Wasn’t Total After All?
I have a specific IP address I want to purchase. Is this possible?
I didn't say anyone was ignorant or dumb. I said they're not providing a worthwhile argument, but resorting to generalities and vague ominous implications.
People who are uncomfortable with the views expressed in this paper regarding the actual actions that software engineers perform might like http://www.developerdotstar.com/mag/articles/reeves_design.h... and also "managing the design factory" by reinertsen.
not have worked, "founding principles".
Only because you are lucky enough to see this so early. And I don't care if bitcoin dies but what I meant there was the market cap of cryptocurrencies; that will rise beyond many Madoffs because even the Madoffs would use it.
You don't attempt to dereference the tagged pointer, you attempt to dereference the result of masking out the tag. If all pointers are aligned on an 8byte (they are, at minimum), then the lowest three bits are always zero. So if you twiddle them, you can recover the actual pointer with (ptr & ~((size_t)0x7)).

Type safety would be easy; there are several routes one could go:
A) Suppose we have tagged pointer types with a really terrible syntax like {MyClass + 3bits}. Then we can say {MyClass + 3bits} is not a subtype of Object, but is rather a subtype of {Object + 3bits}. MyClass is a subtype of {MyClass + 3bits}, if you like, since it doesn't hurt to mask out zero bits. This is all at compile time, and I suppose all erased types must be {Object + 3bits} now for safety. But note that the value referenced by an {Object + 3bits} can still be assigned to an Object, since the bits live in the pointer you just lose the 3 bits.

B) Simply change all existing pointers to have these extra bits, with some sort of syntax for that. Note that these bits live in the pointer, so even null would have the bits. Then there's no change whatsoever to the type system.

It's a moot point in practice since the runtime already uses those tag bits itself.
I've only held a galaxy note (2560x1440) once but it was pretty nice. Resolution is one specs race that I've always been fond of. When somebody finally finds a sasquatch you'll be glad for your 4k display
I write compilers as a hobby. Providing good error messages is incredibly difficult—the compiler has a ton of information at hand, but it’s hard to know what’s actually useful to present, largely because you can only guess at the programmer’s actual intent.
That's baffling. Do they have any reason at all to force people onto the new API?
I completely agree if you talk about virtual reality, but here we're talking about VP9 or HVEC compressed video, which will also need to be resampled as the display isn't 4k but something in between 1080 and 4k.
Does anyone know if the Chromecast supports VP9?
Rúnar Bjarnason on functional programming in Scala
> 16-bit which is already at the limit of human perception

Nitpick: 16-bit fixed point is not at the limit of human perception. It's close, but I think 18-bit is required for fixed point. Floating point is a different issue.

> If you have 32 steps in your signal path and each is +/- 0.5 then the total is +/- 16.

Uncorrelated error doesn't accumulate like that. It accumulates as RSS (root of sum of squares). So, sqrt(32 * (.5 * .5)) which is about 2.82 (about 1-2 bits).

> You can have a suuuuuuuper long signal path that accumulates 16 or 32 or 48 bits of error and nobody notices because you still have 16 good bits.

Generally the thing which causes audible errors are effects like reverb, delay, phasors, compressors, etc. These are non-linear effects and consequently error can multiply and wind up in the audible range. Because error accumulates as RSS, it's really hard to get error to additively appear in the audible range.

tl;dr recording engineers like to play with non-linear effects which can eat up all your bits
I think you make an excellent point that this is a poor demonstration if one is trying to convince a decent C++ programmer to try Rust. Many of these issues are simply not a problem for moderately disciplined C++ programmers.

If anything, this sort of post is more convincing to a junior developer who wants their compilers to do more to warn them when they've done something stupid. They want to write idiomatic C++, but they're lazy and inexperienced, so if there's a language where the compiler provides feedback when they deviate from what's idiomatic, they're going to opt for the feedback.

I'd be very interested in what's drawn you into trying Rust and what you think are the most redeemable qualities.