skysight-inc/HackerNews huggingface dataset:
Having them do a code review (about 10-15 minutes), i.e. have a short (about 50-80 lines) piece of real code, that I have prepared with plenty of problem, messes, non-idiomatic code, or little ugly things.

NOT a test as in "find the 10 hidden mistakes", but an invitation to talk about ways to improve the code. I make it clear to the candidate that it's not about the syntax, or any algorithm, but about quality.

It's really good to see what kinds of things they care about (e.g. do they look into low-level performance, or more into things like variable naming and method length), how deep their knowledge of the language is (e.g. do they recognize non-idiomatic code, and suggest more modern approaches), if they are more of a high-level thinker or more detail-oriented etc. And of course, it nicely weeds out the (surprisingly high) number of people who cannot really program, without relying on any memorization of keywords. Plus, it's pretty realistic - nobody ever writes code on a whiteboard, but doing code reviews of code somebody else wrote is something that happens all the time.

Most candidates find that task quite fun - and with really good candidates I quite frequently learn something new myself.

I was planning to do a blog post about why and how I do that review - let me know if that would be of interest to you.
Things in digital marketing that never change
I'd say maybe check it out first, especially the parts about patch commutation and the problems with associativity in git merges and rebases.
Hot Wallet vs. Cold Wallet: Want to Know Which One Is the Ideal Wallet for You?
Crypto boss dies suddenly with password to clients' £110m
Is using the features of a tool, 'lock in'? You could do the things the tool does yourself but you choose to leverage the tool. That's why you use it. You're aware of this. aws lambda functions can be just pure python or other code. Anything logged there can be a metric in cloudwatch. Users are blissfully aware of how much it's doing for them from security to monitoring. And to be honest companies with enough money would prefer these solutions to something you can knock-up yourself. I feel so locked in by my million free requests a month to service that wont choke that I didn't even have to set-up.
> color between yellow and green

In English this is often called chartreuse or pear. (Ignore the web/CSS color “chartreuse” which is hilariously terrible, like pretty much all of the named web colors.)
Cryptocurrency Firm Loses $145M
He died while traveling in India. There are issues with the death certificate. Sounds like he Ocean’s 11’d it.
That's because it was not sarcastic.

You are right, of course: if you use new proposals that have not yet been standardised, you are at risk of them breaking in the future. (I've been bitten by this at a previous employer that insisted on using Polymer as well. Don't get me started on that.)

When you stick to standardised features with multiple implementations, though, I think in the vast majority of cases you would've been fine. (This is also one reason why I was against using Polymer.)

(Obviously this does not cover all Electron features, which is why I don't consider browsers to be a replacement for Electron, at this point. I'm merely stating that it's very much possible to target browsers without having to concern yourself much with their rapid pace of development.)
You can create a branch called gh-pages (which you can branch off from the initial commit and keep separate from your main repo) and link the image from your generated github.io page as well - see https://help.github.com/articles/configuring-a-publishing-so.... That won't make the repository itself small, but it will keep the master branch clean. Alternatively you could create a separate docs or Github Pages repository under the same organization.
Show HN: A unique email address for every service you use within one inbox
> Git stores the repository changes as a series of snapshots. That means that every time we commit changes it keeps a new version of every file that changed so the size of the repo could grow quickly.

The very first statement in the gtihub page seems to ignore Git packfiles completely for the sake of argument.

https://git-scm.com/book/en/v2/Git-Internals-Packfiles
~Year ago, I had plenty of success with bug.n - https://github.com/fuhsjr00/bug.n. It's a DWM clone written in... AutoHotkey, of all things.
> Build matrix-synapse server from source: https://github.com/matrix-org/synapse

Or use a distro that has a binary package, e.g. https://www.archlinux.org/packages/community/any/matrix-syna...
OK, but if it's needed you could derive patches from snapshots and perform the same steps with a snapshot based VC.

I may be missing something here!

PS less I seem too harsh here, I love looking into version control systems. I have worked with sccs, rcs, arch, larch, bazaar, bzr, bitkeeper, svn and of course git. Looked at darcs very briefly. Never used cvs seriously. Managed to avoid clearcase thank god.
Yeah, survivor bias was the first thing that leapt to my mind when she mentioned the 'zebra effect'. The doc is 100% correct in saying that this patient almost certainly doesn't have the super rare disease (although maybe he should have revisited that heuristic when the other, more likely diagnoses fell through). He was right the other 9 times he told people their odd-sounding symptoms were just a common disease presenting oddly... but people don't write news articles about horses.
Null references was a mistake, but what's the take-away?
if you self-host it you should make sure to keep that updated regularly.

Mild disagreement: My philosophy is that you should choose technologies that aren't likely to introduce breaking changes in the future.

As an example, I have sites that were built using ASP.NET version 1.1 that have survived to this day with nothing more than Windows Update on the server and the occasional version bump in the project config when adding a feature that needed the latest and greatest.

Compare that to the poor soul who decided to build on top of React when it first came out, and has been rewarded by getting to rewrite his entire application four times in as many years.

To return to the point, rather than rewriting around breaking changes from Node x.x to Node y.a, I'd be shopping around for the LTS version of Node x that I could keep the thing running on without intervention from my team.
After that last little cookie shitty in combination with their auto-sign in feature, which Google pulled off recently I won't touch Chrome with a 10foot pole and will not let it near any computer, which I control.
Ask HN: How do some people build their careers so fast?
I was browsing LinkedIn out of curiosity and saw a pattern of people that had timelines that go something like this.

1) Graduated Harvard with degree in [random non-business related major]

2) Worked at [random company] as business analyst for 1 year

3) VP / Director at [multi-billion dollar brand name corporation] for 2 years

4) Seed investor at [unicorn tech company]

I'm just generally curious how people are able to climb like that so quickly. Does anyone know people like this and have some insight into how it happened? Are they just wunderkind that get groomed by billionaires or something?
Here are more some details about that migration https://about.gitlab.com/2018/06/25/moving-to-gcp/ & https://about.gitlab.com/2018/07/19/gcp-move-update/.
All of them? No. The basic ones? Yes. You should know how to implement a stack, queue, linked list, doubly-linked list, heap, and binary tree. You should also know how to represent a tree in binary form. You should know how to balance a binary tree. You should know the time and space complexity of common operations on those structures. Do they expect you to build a skip-list from scratch on a whiteboard? Probably not, and they shouldn't. If you're very familiar with the basics, then implementing more advanced structures is a matter of doing some basic Googling.
> But what if it's between very different languages like English and Hopi, or some tribal tongue from the depths of the Amazon?

No need to go that far. How many people know the difference between machine code and assembly? Between an interpreter and a compiler? Between iteration and recursion? All of those are English words, and yet you'd see a stark difference between the ability of a programmer and a layperson to make use of these concepts.

The problem with theories of linguistic relativism is that they tend to ignore that humans will create new words for themselves when they really need to. When a group of people performs badly at a task they don't have the words to describe, it's more likely that the task hasn't been important enough for them to come up with the words, than that they're actually limited by their current vocabulary.
my interviewers were mostly mid-age, i.e. around my age, and we had pretty nice time, relatively easy questions/exercises, talked stuff about current and future products/techs, etc. - overall pretty typical interview, and i kind of was surprised what all the talk about their interviews was about. (too bad the offer was a very low comp L5 - that left me traumatized :). I guess you get what you pay for - i.e. i suppose one should pass their signature tough interview with the young hot-shots to get a good offer :)
Not true. Having thousands of followers and "going viral" is an equally good method.
I was a bit annoyed that the visualizations require you to enter a number, then press a button, which triggers the input field to clear and disables input until the current animation is done. So if you wanna see a quick progression of building a linked list, you have to click, type, press button, repeat. It'd be neat if they queued up comma separated inputs so you could actually watch an entire sequence unfold.
Github let you host images.
In repo.
cf => https://github.com/lucasverra/partnerImages/blob/master/fake...

free hosting by MS. we should all use it :)
Beer money?
Article 13 Is Back On: Worse, Not Better
The color of the sky varies dramatically depending on weather conditions, time of day, and which part of the sky you look at.

Even if you limit the discussion to cloudless skies between an hour after dawn to an hour before dusk, there is extreme variation.
"Is there anyone that actually likes the autoplay when watching Netflix on TV?"

Emphatically No.
Yes. More importantly, for game and demo compatibility you need to tie HW chip emulation on cycle level with the CPU. QEMU would get more on the way than help.
Deploying Test Environments with Azure DevOps, EKS and ExternalDNS
You're right that there's some risk - especially using API's that can also be abused. However, percentage-wise, the vast majority of works targeting browsers continue to work unmodified (at least in terms of interacting with the browser), making it a very stable platform and definitely not breaking as often and as likely as implied by the words "aggressive release cycle".

That said, it's definitely not yet feature-rich enough to fully displace Electron.
I'm one of the authors, and we've done a lot of bibliography before engaging in such a big project. I'll talk only about the core principles behind version control, not about how things are actually implemented, or which options are the defaults in which tool.

Pijul is absolutely not how RCS or CVS worked. Instead, RCS and CVS worked more or less like SVN (remember the "CVS done right"?), and SVN itself is not too different from "Git without branches", or "Centralised Git", in the sense that these tools are snapshot-based (even though the actual implementations may store patches sometimes). This means that they see history as sequential, and use algorithms to merge when necessary. One could actually very well simulate a large part of Git branches and merges using multiple SVN servers, even though that would obviously be quite cumbersome to implement and use in any concrete situation.

The only version control system one can clearly relate Pijul to is Darcs, using the idea that patch commutation is the main thing people care about. Unfortunately, Darcs has important complexity problems when dealing with conflicts, and Pijul solves these problems.

That said, short-lived branches ("feature branches") in Git mostly try to simulate commutation, i.e. independent development mergeable later, hopefully in any order (since they were written independently).
"At first everything seemed normal. But then he was lucky to have the insurance that he had. <shocked emoji>"
It's not about using what the cool kids use these days.
I can't stress enough that unmaintained software should not run in production.

This way you have a good argument towards management and if you do it regularly or even plan it in ahead of time it's usually not much work.

During a product planning meeting:
"Dear manager, for the next weeks/sprint the team needs X days to upgrade the software to version x.x.x otherwise it will stop working"
Bingo PartyLand 2 Hack Unlimited Mode Cheats
>Canada's leading cryptocurrency exchange company has said it cannot repay $190m (£110m) to clients because its founder died with their passwords.

LOL. If that's their "leading" exchange, consider how the lesser ones are run.

Well, those people didn't trust the traditional banking establishment. They "stuck it to the man" and invested in the "future of money".

Good luck now getting their 100+ million...
But that would sum everything, not just the parts which need it. You'd actually have to write this:

\sum_a(A_ia x_a) + v_i + \sum_a(x_a y_a) ( w_i + \sum_b(B_ib z_b) )

My example is actually still easier without indices. (Although you lose some information, like the fact that x & y are vectors in the indexed by a,b.) Here it's clear that Ax and x⋅y each involve a sum, which never includes v:

Ax + v + (x⋅y)(w + Bz)
Plus if I read it correctly she asked for a second opinion at the request of the first dr. It is common in medecine for a doctor to be defeated or surprised by the symptoms and to refer the patient to a another specialist who has more experience with a particular type of disease.
I didn't say it was specific to slices. The inconvenience around array slices is because they have a pointer. The non-pointery aspects of Rust slices are an advantage over C++. (E.g. not having pointer arithmetic.)
I'm not sure if you're understanding me correctly.

Attention is generally length invariant. You take some transformation on the hidden representations (/+ inputs) at that each time step, and then you normalize over all the transformed values to get weights that sum to one. No part of this is constrained by length.

For CNNs, any network that has pooling has the potential to be length/dimension invariant. Whether it actually is is a combination of the architectural design and an implementation detail (e.g. some implementations when trying to pool will specifically define a pooling operation over, say, a 9x9 window. You could define the same pooling operation over a variable-dimension window).

The length/dimension invariance aren't a special or novel property. In the case of attention it's built in. In the case of CNNs, the convolutions are not length invariant, but depending on the architecture, the pooling operations are (or can be modified to be).
This line resonated strongly with me also.

As an Australian it's an alien take on a near-death experience that contemporary medicine can treat, but which requires the foresight of personal insurance to ensure that the individual may obtain that treatment.
And that's why Knative is going to be a thing.
The adrenaline probably won’t start pumping unless you tell them they’ll be let go for poor performance.
Monochrome was that insanely high 640x400 resolution.
“debt-trap” around Chinese loans shows Africa’s weak economic diplomacy
I really wanted to like this (remember when it was called Eul and built with Go, even recommended it to friends and coworkers) - I spent months following the GitHub repo, looking forward to seeing the code I imagined would inspire the Go community.. but the author sadly do certain things that comes off as untrustworthy, such as promising to open source but failing to do so even after a year, renaming the project without warning/announcement, letting the homepage redirect to spam (possibly malware), tons of AV (hopefully falsely) flagging the apps, etc.
Yes, the library will be expanded with functionality.
Calling cheap is rude. Inexpensive?
Well - currently the UK has the City of London, which makes much more money than the Norwegian fund. Now, you could argue that The City will be swept away by global forces and brexit - this is possible, and you could argue that The City was here before north sea oil, and you would have a point. On the other hand I would say that the flood of money through London from north sea oil played a significant role in providing capital for speculation and investment and without that The City might have lost out to Paris or Frankfurt in the 1980's and 90's.
Ask HN: How did you start a business? What was the first step?
What was your first step to start a business or startup.

Was it side project?
or was it hobby?
or was it remote work?

Did you just left the job or pursue it? or you grow your business first?

I wanted to do business but I do not know where to start. what did you do as a first thing to start a business?
Same here. I've recently been put on the 'other side of the table', first time as a recruiter, and tried to be someone like you've mentioned in your comment. If someone would like to learn more, here's my brief blog post about the whole process: https://lukaszkups.net/notes/on-the-other-side/
Does anyone know if there's a strong link between Forrester and Donella Meadows, of Thinking in Systems? I'm reading that book after seeing it praised more than once on HN.

Meadows provides lots of food for thought, and I think I could make my workplace better if I figured out how to apply some of the ideas she expresses. I'm not convinced that all of her reasoning is very rigorous, and I suppose that matches the feelings of the author of this article, not that I think he does a great job of rigor either. Once the fine article extended its ideas from city planning to no platforming, without apparent irony, or data, I got the yawn.
I'm not saying Amazon is great, but I'd rather there was at least competition instead of one giant company monopolizing every service I use online.
Absolutely not. In fact I think Dyson is definitely worth listening to. Obviously I didn't explain myself clearly enough.

The point of my comment was that just because someone is a genius, does not automatically make them right. The fact that Linua Pauling was very wrong about vitamin C mega-dosing doesn't stop him from being one of the greatest scientists of the 20th century, and someone who was right about an awful lot of things.
Cyan is the color of a colorful medium-lightness pure blue, possibly very slightly greenish in hue, as seen among the primary inks on a 4-color printing press. E.g. the color labeled C in https://upload.wikimedia.org/wikipedia/commons/c/c9/CMYK_sub...

Printers needed a technical term for this color which they wanted to distinguish from common blue pigments used in painting so they pulled the Greek word for blue.

It shouldn’t be used to refer to a broader color category, and definitely should not be used to refer to blue–green colors. For that stick to blue–green, greenish blue, or teal.

Similarly magenta is a colorful moderately purplish red color, again of medium lightness (named for a famously bloody battle). Again printers adopted this as a technical term because it is a bit different than the “red” pigments commonly used in painting.

The names “cyan” and “magenta” really should not be used to refer to additive mixtures like sRGB #00FFFF or #FF00FF. These colors are unrecognizably far away from printing ink colors.
Unfortunately for the USA that could be said of anyone diagnosed with anything more serious than a cold.
Linjat is a great game, and my GF got immediately hooked also :)
I suggest that it would greatly benefit from adding features:
1. Save/restore
2. Undo/redo
When discussing lambda/serverless/<whatever flavor of pay per request> setup, people don’t often seem to stop and think about the usage/access patterns, the associated costs and performance.

I’ve seen such setups being recommended for APIs that have predictable and fairly constant load, for which you are a lot better off having an actual running set of processes that can be reused. For Google that could be AppEngine, for AWS ElasticBeanstalk. It’s a question of the right tool for the job.

One tech that I haven’t played with that’s really interesting is KNative, where you can run an underlying infra with predictable costs/performance, but allocate it like a lambda per request. Performance of the requests themselves may still be less though when compared to a more traditional setup.
The problem I see with this kind of vendor lock in is you can get screwed in several different ways if you let yourself get locked in enough.

The 'good': a competitor overtakes AWS and is able to offer vastly cheaper or better value services than you have access to, rendering you less competitive than people who are able to move to that platform easily.

The 'bad': Amazon starts deprecating services you rely on and you're forced to port things anyway.

The 'ugly': Amazon decides that it's happy with its market share or its shareholders start demanding they bring in more revenue and they realise that those who are locked in to AWS are easy targets. It'd be easy to just jack up the higher tiers of things like lambda, dynamo DB, API gateway, etc. and on those who they have bespoke agreements with without even necessarily affecting their marketshare.

It's really a risk/reward thing when going for these platform specific serverless systems. It's like asking if you trust a big company enough that you want to give up all of your bargaining power with them, and that you're going to put thousands or even millions of dollars where your mouth is on that.
Sure, but if you had read the manual[1], you would have learned that this is only the associativity part, which you could indeed use to provide a better merge algorithm in a snapshot-based VCS.

So:

1. You're 100% correct in saying that this can be done in a snapshot-based VCS like Git, Mercurial or SVN.

2. But you're also missing the main feature of Pijul, patch commutation, also explained in the manual. The idea is that you don't need to rebase anymore, two patches produced independently always commute, and hence patches don't need to change their identity when they are "rebased", or merged at any point in time. This has major usability benefits, such as being able to undo a "merge" (I prefer to call it a patch application) even after ten other "merges". Or choosing which part of a conflict to remove in order to solve it (if you don't choose to actually solve the conflict). With patch commutation, you don't need `git rerere` anymore, and you don't even need to branch very often, since branch are essentially an emulation of commutation (then of course Pijul still has branches, but they're quite different from Git's branches, in particular they are not as essential as in Git).

But then Pijul is still a young project, there are still a few bugs here and there. It is self-hosted, and we're quite happy using it for its own development (and the development of all companion libraries, Thrussh, Sanakirja…). But is it really ready for HackerNews-level flamewars?

[1] https://pijul.org/manual/why_pijul.html|the manual
> but I think the interviewer should be able to emulate the compiler/debugger/runtime for the question they're asking

How does a human emulate the UI of a debugger? It seems like you would have much lower information-bandwidth and thereby inevitably end up not really presenting all the info at once that a terminal window is able to.
There is no Yellow-Green traffic light in germany. There is only Red, Red-Green, Red-Yellow and Red-Yellow-Green.