skysight-inc/HackerNews huggingface dataset:
Those salaries are prevalent pretty much only at "big" tech companies (FAANG) in the Bay Area.

Even in the Bay Area the 50th percentile base salary for a relatively junior hire is closer to $100k than $150k. Add in bonus and equity and some might top out around $140k-$150k total compensation. That's in the Bay Area specifically. Most other places TC is going to top out just above $100k--high salaries are uncommon outside of tech hubs and the Bay Area itself is on the high end even in that group.
C++ explicitly allows `delete` to be called on a null pointer.

E.g. see https://en.cppreference.com/w/cpp/language/delete
Credit can be verified and challenged and corrected.

Gossip cannot.
> Code external to yours may make assumptions about what lies in your padding, either by doing memcmp's, or adding new fields in a later version of the struct and intending it to be ABI compatible between modules.

The content of the padding between members can arbitrarily change during assignments of members, so code relying on the content of it is broken anyways. In the case of an extended struct both methods are equally broken if you don't recompile your module with the updated definition of the struct. Your memset will still have the old size of the struct as the third argument.
Packed structs are reasonably standard (even gcc and visual studio can be made to pack in the same way using the same syntax these days).

The remaining issue is endianness, but you can configure ARM to match x86 at boot so shrug.

Also, if I tell any reasonably experienced developer my protocol sends a packed struct with these fields:

uint8_t version
uint16_t reserved
uint8_t op
int32_t status
uint32_t data_length
// void data[]

They’ll be able to write a correct deserializer in pretty much any language, and can probably write it in ~ 10 lines of code.

I agree that packed structs can be tricky, but they’re much better than the vast majority of serialization libraries I’ve dealt with (including all of the open source ones, and I’ve used all the usual suspects).
Frozen (Disney): Management Lessons
You re either looking for freelance-type work, or why don't you start your own thing? You can look at indiehackers for some inspiration.
Why it sounds like a joke?
They're different but the differences are quite complex.

CPUs can be faster for RAM bandwidth-bound code, if there's not that much data and it fits in caches at least L3, CPU cache bandwidth is very good.

GPUs can be faster for heavily conditioned code. If it's the condition on RAM value, a CPU will stall or mispredict branches, both slow, a GPU will switch to another hardware thread which is very fast.

Despite these differences, I find flops quite useful in practice to compare performance of different computers across architectures of generations. Computers compute, flops measure how fast they do.
PM vs. PO
There were several companies competing in this space. The main three were CSPI, Mercury Computing (now Mercury Systems), and SKY Computing. Matrox briefly tried to join the party.

Even back then, FPGAs and custom ASICs would be part of the compute fabric. I left that out. For example, there was an FFT accelerator chip. These days the companies add in a mix of FPGAs and GPUs, but the CPUs are still there. It's all the same stuff today, but faster.

To the end user, it was never a computer. It was a radar, a video processor, an MRI scanner, a sonar, an ultrasound, a chip wafer inspection device, a laser with real-time mirror warping, or some other tool.
My risk tolerance is very low, so I focus mostly on automated market making and microstructure trading. It is more like reversing other people’s strategies and designing my own to profit from them.

Which, by the way, is a full time job, you cannot just design some good algorithm and sit back while it earns you money. It is not this easy. :(
Yes. And better students tend to want more rigor (or have more brain cycles left over for more rigor in the introduction of new but only tangentially relevant topics) than the weaker students, who are usually more happy to take something at face value as long at it let's them continue with the main topic. The line you have to walk as a teacher is then to find an appropriate level of rigor to not loss (too many) students, while satisfying the curriosity of the more interested students and telling them where to find the extra details they might want to know.
"if let x = someOptional" unwraps the optional, no?

And "let x = someOptional" doesn't, right?

So the first form does have something to do with Optionals, and it is true that the two forms of let behave differently with respect to them.

(I have moved on from Swift, so if things have changed since Swift 3.x and 4.something, my apologies.)
I do not get why cooperations make it so hard for people who simply want to do their job with minimal bullshit. You would think the free market gets rid of such inefficiency, but evidently the free market is not efficient enough for that.

Why is it not efficient enough?

Perhaps it has something to do with propserity. Prosperity allows bullshit to grow without bounds because bullshitters cannot experience complete distruction if they can easily feast on our prosperous wealth, so they can easily maintain their illusions and fakery.
some of my favorites:

- transactional DDL: https://www.google.com/search?q=transactional+ddl+postgresql

- expression indexes: https://www.postgresql.org/docs/current/indexes-expressional...

- partial indexes: https://www.postgresql.org/docs/current/indexes-partial.html

- Javascript UDFs (plv8): https://plv8.github.io

- hyperloglog: https://github.com/citusdata/postgresql-hll/releases/tag/v2....
> The need for parental control has now been filled and the privacy risks of those apps now outweigh the benefits. Apple made the decision to remove.

The article explains in quite detailed terms why Apple's solution is inadequate and does not "fill the need" at all.

Also, on what ground would those risk/benefit calculations be made and by whom?
My impression (which is just anecdata): there is plenty of Objective-C out there, and migrating it to Swift is such a significant effort that it likely won’t happen.

Swift however has significant mindshare, there are even Swift-only iOS devs. Lots of developers and most materials have shifted to Swift. That’s where the excitement is.

Swift interopts with Obj-C well. Lots of development has switched over to Swift, even if the rest of the codebase remains Obj-C.

There will still be plenty of Obj-C jobs over the next 5 years, but there will be more Swift oriented jobs.

Swift is also making strides into other areas: Swift on the server is growing, Swift on Linux and Windows is improving, and Chris Lattner is forging ahead with Swift for Tensorflow.

Whether it is successful in any of those beachheads remains to be seen, but there is significant effort going towards them.
Best Hotels in Boston Overview
Show HN: Sphaera – Cartographic Map Wallpapers
I only wear mine while on a plane — the environment is sufficiently hostile that they can't make it worse.
Irrelevant, unless your point was that that's not fair, in which case: still irrelevant.
It means they found it interesting and gave it another chance
Is it only the developers fault when critical parts of a programming language are hard to grasp?

I suspect that might be a sympton of excessive complexity and parent's example of C++ seems spot on.
The clearest example to me that Tiobe does not reflect reality is the Javascript chart:

https://www.tiobe.com/tiobe-index/javascript/

Javascript in 2019 only has 0.5% more market share than in 2004?

2019 has basically every new UI (and many rewrites of old ones) being built in Javascript, 2004 it was being used for the occasional drop down menu.

(Even if you include Typescript, the only compile-to-JS language in the top 50, it still only gets to 2.7% today compared to 2% in 2004).

See also C unassailably at number 2. I think we can all agree that in 2019, there is more active development in Javascript, than C - Likely it's benefiting from their methodology giving it credit for C++ and C#, so at least we can theorise about that one, but I really have no idea for Javascript.
I have to disagree. You don't have to be a misanthrope to be fed up with the wasted time in a company environment. Making your own product is a lot of fun and requires interaction with your users which is an entirely different, and motivating thing. Having done that for 10 years, i can not justify the time wasted doing futile things or meetings in a typical company environment.
Great find! I haven't done much work GUIs myself, but I would love to read more about alternative design philosophies in human-centered computing and their downfalls.
> it's basically been assimilated into every distribution of BSD.

So that should be called GNU/BSD right, anyway why haven't I heard about the LiGNUx naming before is it some kind of pseudostallmanism?
A small quibble: bzero() is not defined by the C standard. memset() is.
I can feel that I’m not ready for exercise but be wrong. I can cerebrally know and trust that exercise may help un-kill my emotions and attempt to rotely manoeuver my body into exercise in the substantiated
hope that the point to doing anything may return because of it. and it has worked.
You have a good point that people who set out to implement high end military/medical/high end industrial metrology hardware greenfield projects today may see value in using Rust and won't have a problem with more expensive hardware. However, I do think that's a vanishingly small percentage of embedded development.
Python is (or will soon be) unsupported, legacy technology with no future. If I had a Python 2 codebase, I'd be asking the developers to move to a platform with a future. And while I disagree with your "Python 3 is an entirely new language" assessment, even if that were true, the point would be the same: move to a modern platform, whether it's Python3, Go, Rust, Java, Erlang, Agda, Brainfuck, or whatever.
So, Nordic Semiconductor, when do we get Rust support in your SDKs? Please?
This is beyond ridiculous. I was already 14 in 1985, and coming from a quite politicised family I already read newspapers, both for our momentous point in History at the time, and for the Cold War (glad we won that).

Even if the military government did try to boost our national pride with History that, given what we still know, does necessarily begin with Cabral — previous landings were inconsequential — there is no way they would not be happy to claim a Roman connection.

If there is anything to Marx’s claims, it would be because he was (seen as) a plunderer.

Anyway, the military government finished in March, and then we had a populist, centre-right government who could not care less for History.
People complaining forget what the industry was like before audible. It was terrible. Audiobook cost an absolute fortune, and selections were very limited. Audiobooks in the late 20th century were, I imagine, simular to paper books in 18th century. Something most of the population could not afford to own.

I have been listening, and loving, audiobook for a very long time audible was, and still is, a breath of fresh air.

Combined with the similarly lax attitude to drm as the amazom kindle, removing drm is simple.

Audible has created a market that publishers were either ignoring completely or extreme price gouging (or some of both) .
so... the generally accepted knowledge of the software industry is... you will make an extra $100k/yr+ minimum if you go work for a FAANG company.

Why doesn't everybody want to work for FAANG companies then?
Hey, I also dislike large company politics and have managed to more or less accomplish what you've described here with freelancing.

You'll never get 100% away from interfacing with fellow humans, but I've found that a couple of factors in the types of gigs I favor have made my life mostly free from company life:

1. Find gigs with small companies. And by small I mean like 1-3 people max. My favorite are the solo founders who built a SaaS app and are quietly making bank and need a developer to maintain it. Speaking of which,
2. Find gigs where you can become "the guy" (or gal) for your client. These smaller companies often don't need a full time developer and can't even afford one anyway. My favorite setup is 10 hours a week indefinitely where I basically do what you described - acquire ticket, write code, make pull request. You are the secret weapon for the client's success.

How do you get these kinds of jobs? Do interesting or impressive technical things in public and don't be in a hurry. I've collected around 4 of these over the last few years and now make a very good living working less than 40 hours a week. I never really have to do "the hustle" of freelancing because these gigs are very sticky. I've never had anyone let me go, and in fact in a few cases I tried to leave but they then offered me an even better arrangement to stay around. Contrast this with the horrors of Upwork - freelancing doesn't have to be like that.

I don't really know how I would ever go to a normal 40 hour a week job now. Happy to chat with you or anyone else about this if I can help, my emails in my profile.
Presumably because they assume it will cost less to maintain Python 2 than porting the application to Python 3.

That strikes me as incredibly hard to believe, but hey, if they've "run the numbers" and that's their conclusion, then so be it.
I agree that's confusing coming from an imperative context. The core misunderstanding here is that `let` is a binding, not a variable declaration. It's binding a name to a value, not creating a variable which can be modified. Therefore the `if let` example is saying "if we can bind the value inside the optional to a name", while the regular let example is just saying "bind the optional to x"
Spurious Justifications for Eliminating Price Caps on .org and Legacy Domains
Add automatic tests to your machine learning models
Dijkstra's Algorithm in Kotlin
If you use:

sizeof(struct_instance)

the compiler will automatically update the size passed to memcpy. (I like passing the instance to sizeof and not the type, just in case the type of the thing being copied changes in a future version of the code.)
dude, so cool
I wonder if it correlates with feeling ear pain during airplane landings?
That comparison can not be directly made as the 'O' in "FLOPS" is different.
Measure the Load Performance, Accessibility, and SEO of Your Documentation Pages
> what I didn't understand is why Microsoft allows users to run random JS code from Internet with full privileges

The short version is they don't. Cscript and wscript are akin to PowerShell and they aren't talking about JS from the Web.

The way it works is, say, the attacker sends the script (direct) as an email attachment and tricks the target into running it, or sends a document (indirect) that drops and runs the script, and tricks the target into opening that. They've even taken to having executables drop and run scripts to offload malicious activity into otherwise trusted processes without setting off alarms, like injection does.

In the indirect cases, cscript/wscript aren't the only options for JS. You can also:

rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";new%20ActiveXObject('Shell.Application').ShellExecute('calc.exe');

But Microsoft is overstating the difficulty of detecting these attacks. For example obfuscation isn't a barrier to detection; in fact obfuscation can itself be detected and is a fantastic signal for blocking this stuff. General Windows system behavior, on the other hand, is chaotic[1], so in practice you're limited to writing rules for e.g. what child processes winword.exe isn't allowed to create, but even then you'll need exemptions for certain teams.

1. uTorrent for example creates child processes in a way that's practically indistinguishable from malware:

C:\WINDOWS\System32\mshta.exe C:\WINDOWS\System32\mshta.exe" "C:\DOCUME~1\<USER>~1\LOCALS~1\Temp\HYD4.tmp.1548293039\HTA\index.hta?utorrent" "C:\5ee283553c4ab530c77f19785f6092cabfd8e48a5eefd808cb53aecea4399dd9" /LOG "C:\DOCUME~1\<USER>~1\LOCALS~1\Temp\HYD4.tmp.1548293039\index.hta.log" /PID "1076" /CID "sDbhVc2tIx6wzwCd" /VERSION "111849449" /BUCKET "0" /SSB "1" /COUNTRY "US" /OS "5.1" /BROWSERS "\"C:\Program Files\Internet Explorer\iexplore.exe\"" /USERTYPE "admin" /ARCHITECTURE "32" /LANG "en" /USERNAME "<USER>" /CLIENT "utorrent""
C:\WINDOWS\system32\cscript.exe C:\WINDOWS\system32\cscript.exe" "shell_scripts/check_if_cscript_is_working.js""
C:\WINDOWS\system32\cscript.exe C:\WINDOWS\system32\cscript.exe" shell_scripts/shell_ping_after_close.js "http://i-50.b-000.XYZ.bench.utorrent.com/e?i=50&e=eyJldmVudE5hbWUiOiJoeWRyYTEiLCJhY3Rpb24iOiJmYWlsR2VuZXJhbCIsInR5cGUiOiJpIiwiZXJyb3IiOiJFcnJvcjogVW5hYmxlIHRvIHdhaXQgZm9yIHByb2Nlc3MuOyBmaWxlOiBmaWxlOi8vLmpzOyBsaW5lOiAxMCJ9" "
One Canadian doctor kept thalidomide's harm from America
I wrote a spam filter for freenode in a week. Even if Mozilla can't afford a week of work, their IRCd already has one.

I'm kind of convinced that this change is culturally, rather than technically, motivated.
"least effort" just means their own least effort - I've known folks who were happy to let other teams slave away unnecessarily because it optimized their own effort. long term that's a bigger cost for the whole org - short term it's a win for "intelligent but lazy", who may move on to something else in the meantime.
Maybe not most popular but definitely most deployed
I expect we will see that in a movie/thriller next year
It sounds like something you might use for the power-on sequencing of a laptop computer. It could manage the battery and wake up the main CPU.

Alone, it's the sort of thing you might use for a kid's toy that you hope to make into the next big must-have Christmas hit. You'd need to make millions upon millions of them, and maybe $49.95 is your target price.
I can actually answer that (due to random quirks in my life).

1) Opposite my office there used to be an audiobook company. Whole office of people built around a sound-booth where an actor would spend a week or so recording a book. I used to see the famousish coming out for smoke-breaks day-after-day. Maybe a dozen people, for a fortnight, to make 'an audiobook'

2) My wife used to work for a publishing company for hire (used to knock out Disney branded books for supermarkets and the like). Books cost practically nothing to print in China. Then could be shipped around and sold at the lowest of rates/margins.

Saying an audiobook costs nothing to record, is like saying a band could just publish their sheet-music.
My main issue with Swift, at least initially, was how much of a moving target it was/(is?). It's been in public use for under five years and it's already on it's 5th major version. I'd learn it to a certain degree, start working on something else, then come back and find that a lot had changed while I wasn't paying attention. That said, the difficulty in iOS development stems from getting a good understanding of the core libraries, and thats much easier to do in Swift than in Objective-C (unless you're already familiar with that language or coming from something like Smalltalk).
>The evidence linking diet and depression is really very limited.

I’d say the opposite is true there are many available studies on dietary inflammation (ie chronic inflammation) and depression being linked.

See the inflammatory hypothesis of depression, also interesting is data is beginning to reveal a link between inflammation and the 1/3 of patients who do not respond to antidepressant medications. Generally when working antidepressants have an anti inflammatory effects.

It should also be noted that the diets mentioned Keto/carnivore/vegan all generally emphasize the removal of inflammatory foods (ie refined sugars, refined carbs, fried foods, artificial trans fats, etc...).
This might look true in retrospect because you'll always be able to point to the problem that a successful solution solved. Lots of solutions have been successful after being created with an ambiguous or only just emerging problem.
Vibration wake up sounds very interesting, I'll look into it, thank you!
I thought based on the title that this was about null—https://www.infoq.com/presentations/Null-References-The-Bill...
I wonder if this same very low frequency noise from wind farms (those huge swirling electricity generators) is the thing that seems to aggravate some people (and animals) in a similar manner?
I actually like Swift: advanced type system and compiler, clean syntax, very fast.

I think optionals are a great way of saying: “Hey developer, this value can sometimes be nil; be sloppy or not, your call.”

Any language you pick is an interplay of choices and compromises. No such thing as perfect.
Part of the problem is that their methodology is based heavily on performing web searches for the phrase "$LANGUAGE programming".

Lots of developers use Javascript in the course of their work. Few of them will refer to their work as "Javascript programming" -- they will typically use either a broader term, like "web development", or a more specific one, like "React development". Neither of these would influence TIOBE's rankings.
So this is not a secret anymore. The only reasonable solution for such a mistake is to revoke the exposed token. If it is not easy to do then it is negligence of WhatsApp UX team. Your "let's pretend you didn't receive this" deletion message may have failed to propagate to some or all of the recipients, including that one guy that likes to mess things up
That's...appealing.
Solving a 50-Year Mystery: How Thalidomide Causes Birth Defects (2009)
- Optional is a nuisance.. People are going to fiddle with ? and !

And that is GOOD. This mean that wrong code look wrong:

https://www.joelonsoftware.com/2005/05/11/making-wrong-code-...

and many instances of it mean something is badly wrong in the codebase, and the developer(s) haven't adapted to how must be done.

In contrast:

bad.shit.happends

Good look with that...

- "let" is a mess

Overloading keywords have problems, but in this case the rules are simple. And is not that many context to worry about.

- I would much rather have = mean assignment

Agree. Overloading keywords are fishy, but operators are in another league!

Have some sense for maths but in other contexts is not worth the extra "feature".

- Reference counting is a bad compromise

You mean, ARC. Is not exactly the same, and the compromise is totally worth. I work with .NET for iOS/android and man, is heavy.

All is about what is default.

With GC, by default, eat memory and unpredictable destructors. With (A)rc only need to worry about break cycles. That not happened often enough to be a real problem

BTW, I have use obj-c, pascal, .net, python, rust. The ARC model is the best for most kind of code most do. I honestly have more unpredictable and unfixable problems with GC (mostly on android with underpowered devices), so I prefer to get something less automatic..
That's a pretty classical file serialization trick to pack a bunch of heterogeneous data in one file. A header/manifest starting the file, with an array of names, offsets, and sizes.
Ear pain during plane landings has to to with an increase in air pressure in the cabin causing a disequilibrium.
Running Out of Children, a South Korea School Enrolls Illiterate Grandmothers
I wouldn't necessarily say it's dead. Keep in mind that Intel hasn't had to compete with AMD since thru released bulldozer, so instead of R&D we got 8 years of die shrinks and speculation hacks (that are now disabled due to meltdown and spectre). Intel hasn't done much of anything in terms of processor development for nearly a decade. That's why even sandy bridge chips are still useable.
You can get one of the STM32F103C8T6 devboards "bluepill" and use that instead for Rust. Under 2 USD, almost at the level of Arduino Nano knockoffs.

The AVR backend for LLVM was merged recently. So Rust support for AVR might happen if someone pitches in and does the work. Lots of Arduinos lying around, so it would make it more accessible.