skysight-inc/HackerNews huggingface dataset:
Ask HN: If you could go back to study any CS-related field, what would it be?
I'm a sophomore in college, and feeling pretty bogged down by the not-so-relevant required courses at my school. I love the CS courses but I keep finding myself looking at entry level code monkey jobs and thinking of dropping out. I work part time as a developer right now and I enjoy working far more than doing any of my homework, so this is something that is on my mind a lot.

What are some lesser known areas of CS that would be worth studying while I have the chance? I would say the subjects that excite me the most are Machine Learning, p2p tech like IPFS, UX-design, and alternative computer-interface things (like brainwave sensors, VR, and that jawbone thing from MIT that was posted a few weeks back [1]).

[1] http://news.mit.edu/2018/computer-system-transcribes-words-users-speak-silently-0404
Most certainly we will see the comeback of "logical" AI too, including systems built on Prolog.
This is the kind of submission that usually never gets anywhere on HN but it's very good.

Actually, there is a lot of great stuff that gets submitted that never gets anywhere.

It would be cool if somehow there was a manually edited "great but never got anywhere" stream for HN.

Edit: Now I've gone and said that, watch this get a 1000 points ;)
Google is “pausing investment” in Allo
RCS was extremely complicated. It needed cross-collaboration from carriers and Qualcomm.
> No. It's just a problem of laziness, and possibly ego, of developers.

We're talking about large organizations. No single developer is making these decisions. And the question is about resource allocation, if the choice is between improving the core experience or implementing an experience that <1% of our users will ever see, the choice is easy.

> "That's core" is just an excuse for poor architecture - it's only core because you chose to make it so.

It is core because the internet has democratically made it so. You're speaking for a very vocal minority. We're choosing not to implement a special mode for people who self-selected to receive a broken web experience. Fortunately that same demographic knows how to resolve the issue they caused.

> no progressive enhancement for no good reason.

A richer user experience is a very good reason. If the choice is between making the site richer and more immersive for 99% of users, and leaving 1% of users who wish to be contrarian for no reason out in the cold? So be it. A worthy sacrifice, in particular as this 1% selected themselves for punishment.

You're welcome to pick and choose any arbitrary part of the web to disable, maybe JavaScript, maybe CSS, maybe font rendering entirely, maybe disable images, but it gets a little silly when you blame others for your self imposed breakages. You don't want it broken? Don't break it.
Everyone I know is on WhatsApp. Why would anyone switch?
How do you untangle need and want though? Strictly speaking, I only _need_ about one room (room to sleep, a bathroom, and room to prepare food), but I wouldn't be particularly happy with that, but obviously a large part of the latter derives from social status and what others around you have.
#3 is certainly not a historically common error from a disk, but thin provisioning has been around for a while -- dm-thin was introduced in Linux 3.2 in 2012, and filesystems in my opinion worked extensively to handle ENOSPC correctly since then. Consider that storage returning ENOSPC at a particular write and all thereafter is roughly equivalent to storage stopping writing suddenly, and storage stopping writing is equivalent to a system crash and reboot. Filesystems do work hard to recover without loss of unflushed data from a crash, assuming the storage was properly processing flushes, and this case should be very similar.

Filesystems (and VDO) both log extensively to the kernel log in an out of space situation, so inspection via dmesg or journalctl hopefully leads swiftly to identification of the problem. The 'dmeventd' daemon provides automatic monitoring of various devices (thin, snapshot, and raid) and emits warnings when the thin-provisioned devices it is aware of are low on space; there's a bug filed against VDO to emit similar warnings [1]. Careful monitoring is definitely important with thin provisioned devices, though.

[1] https://bugzilla.redhat.com/show_bug.cgi?id=1519307
Your response is both very exciting and slightly intimidating! Would love to see a “NewSQL” and/or event store built on top of FDB tech. Would the key ranges and versioned ops be capable of providing/emulating a performant “atomic broadcast” similar to that in Kafka?
I've been to a few talks from the PostgreSQL lead developers where they mention this.

Their opinion was mostly "Uber could have just asked us the right way to do it" and "We believe Uber's new engineering leader needed something to do"
Phishing combined with botnet attacks across multiple instances could probably pose a big problem for the network, but here's where the second facet comes in to play: instance operators are not incentivized to grow their userbase at all costs. Performing actions that might please their core userbase but may make it harder for new users to sign up, or other hurdles are something that instance operators won't shy away from, when Reddit (as evidenced in TFA) would probably tread more lightly in fear of angering users.

Even in the above botnet+phishing situation, nothing is stopping instances from cutting federation off completely and then banning suspected users, a move that a growth-oriented network would think many times before instituting.
This is the same problem that some package repositories like NPM have.

Everyone takes it for granted that the github link on an npmjs.com project page describes the code you get when you `npm install`.

Both npmjs.com and the Chrome app store should have an in-line file browser to make it as easy to vet the code as possible.

I have a browser plugin[0] that lets you view a Chrome plugin's source code, but I've also noticed how many of them obfuscate their code. For example, the Super Netflix plugin is heavily obfuscated: https://chrome.google.com/webstore/detail/super-netflix/aioe...

I can certainly imagine why. It would take me a non-trivial amount of time to figure out how to interact with Netflix's client/server. I gave up when I couldn't even figure out how to programmatically pause/unpause the client. And that's now the plugin's secret sauce, especially in a hostile app store where everyone is chomping at the bit to clone your plugin.

I don't know of any easy solutions here.

Even large scale manual review like Apple's approach has issues with clones.

[0]: https://chrome.google.com/webstore/detail/chrome-extension-s...
There's also a sending a "non-signal" aspect to it - as in "I don't care, but I'm choosing wear what everyone else is wearing because I don't want to be asked about it/stand out" (which in some ways is a utility because you don't waste time being asked about thing you don't care about).
Are you hiring? (Half heartedly joking...)
I once worked the recruiting booth at a popular computer conference. HR told me to mark all the resumes that looked good for our group with my manager's name and they'd send them on to him. A week after I got back, I asked him about it, and he said they didn't send him a single resume. WTF did I waste my time (and the company's time) doing at the show then?
Sounds like you appreciated his solution, but your first post made it sound like he was incompetent. I’m confused.
Great book. Right up there with Mythical Man Month.
Software is 100% an employees market. Everyone wants coders, and can be hard to pin down good ones. I think software engineers either don't know what they are worth, or are uncomfortable negotiating comp.
How would this work on a blockchain? The best I could come up with is "check that a bunch of other nodes built it and came up with the same result", or "use a trusted execution environment (SGX or TZ) to build it".
This is great - if it hold out.

> But that's not what it's about. You know it's about giving people things that they can then use to help them change the world or express their passion or express their creativity.

Tim says this... and this is also what users have come to expect of apple; but their products as of late very much reflect a different set of priorities. The notion of iOS and MacOS merging didn't come out of nowhere - thats the direction apple was/is heading.

As a lifelong Mac user, it's obvious we're second class citizens to apple, whos focus is primariy on iOS. IIRC, They don't even have a dedicated MacOS team anymore - everyone is doing IOS dev. And, it shows in the quality of the system.

I honestly think apple has already peaked and has started to decline - and i think they need to, to get hungry again. But with all the money they have, I don't think they'll be hungry for quite a while.
Interesting but one nitpick: always, always, always, in the github readme.md put an example of use so I can see what it’s like before installing.
This is awesome. I was looking for this a few weeks ago and found a library I don’t love. This feels right for Typescript and I’m going to add it to a big project like immediately. Great job to the authors!
You misunderstood me, sorry I should have been clearer. Some internals are shared between inheritance and declarative partitioning. For v10 most parts of the system (except for COPY) used the same partition exclusion logic for both forms of partitioning. Which means it was O(partitions) with a pretty high constant.
Government accidentally sends file on “remote mind control” to journalist
Use custom auth providers in Kubespray with Guard
How a Plucky Swedish Sub Took Out a US Carrier All on Its Own
The number itself is not misleading or incorrect, it is just useless. If I wrote an article with the lede "Amazon pays market rates for labor" no one would be interested in reading it. The manipulation is leading you to believe that this information is important or of any use in judging their employment practices, which it is not.
Bill Gates Gives a Demo of MSpray at Malaria Summit 2018
> why, in a world where PostgreSQL exists, would anyone use MySQL.

You could also ask why would anyone use Postgres? Either question is equally absurd. If MySQL and its forks work well enough for Google, Facebook, Uber, AirBNB, Alibaba and Linkedin, why should anyone take it on face value that Postgres is an unambiguously better choice?

That said I've toyed with switching in the past. Ten years ago, the MySQL query optimiser was fairly junk and I wanted to switch for that alone.[1] The main thing that held me back was that my application has hundreds—quite probably thousands—of SQL queries coded into it.

Despite "SQL" being a notional standard, even the most basic queries would need to be extensively reformatted to be compatible with Postgres. The effort required to rewrite all of these queries simply can't be justified, particularly because we simply don't have any problems with MariaDB. The query optimiser is a lot better now, such that I now rarely encounter situations where a sensible query doesn't yield an efficient execution plan.

[1] Between 2000 and 2007 I had spent a lot of time with MSSQL for a different project and I had grown to appreciate its excellent query optimiser and execution plan visualiser. Ten years on and I still haven't seen any F/OSS solution that does as good a job as SQL Server 2000 in this regard. The most recent version I've used is 2005 so it might be even better today. And believe me, I was not a fan of Microsoft in the 2000s.
Awesome, thanks for that. I'll definitely give it a shot once rstudio is supported.
Sounds like it might be the same company the author is referring to. I'll throw them under the bus. Hello Fresh interviewed me and that interview went fine. They then wanted me to deliver an application using no framework. I was allowed to use libraries, but no framework.

After reviewing the requirements I quickly determined that it would take me days to build an application that I felt would effectively WOW them. I told that to the recruiter and bowed out. Being already employed I looked at the opportunity cost and it was too high. Sure they paid more and are a bigger company, but that is A LOT of work. I rather do almost anything than unpaid programming on an application that will be thrown away in a few days.

If I were hiring, the "lab" portion of the interview would be simple. For mid to senior level developer:

1. Write a small inefficient application that requires some indexes, SQL optimization, and some code optimization. Very, very small. Very, very easy for a reasonable developer to fix. Afterwards I'd have a conversation about other general optimization things like Redis, Beanstalkd etc... because we'll optimization is important, especially to me.

2. A small class with very poor cyclomatic complexity. Clean it up. Because clean code is important.

3. A small insecure application. Things like not using bind parameters in queries, not cleaning inputs, XSS etc.. Secure it.

4. Show me something you've done. Personal or professional. I would then ask questions and it would be an open conversation. Because I want to see how much you enjoy programming and how we'll you can speak about it.

I think these 3 items, combined with the other interview questions, their experience, and resume would give me enough to go off. Ideally, 1, 2 & 3 can be done in under an hour. I think that is reasonable for pre-screaning an applicant. I certainly wouldn't send me running, but I am also writing the test so who knows...

Why would I want to look through 10 or so applicants full fledged application? God no. I have better things to do. I guess for some companies its a way of weeding people out, but these large tests are akin to using DDT to remove weeds.
Yes. But two things.

1. We don't know all the mechanisms that a brain employs to achieve intelligence. We see billions of interconnected neurons and we assumes "Yea, this might be generating intelligence".

2. We don't know if we are already at some fundamental limits of intelligence. For example, you can see may instances in nature where a pattern emerged that maximizes some sort of efficiency. (Like Honeycomb pattern).
So, the end result of this will be that, even if we transfer the process by which our intelligence work to a machine, it will have the same performance as an average human brain...
This is exactly why ether contracts are so interesting. You can guarantee the code being executed is what you are looking at.
Of course. FDB thinks about read and write conflict ranges, which are functions of the keys, not the values (or lack thereof). A read of a non-existent key conflicts with a write to that key. A read of a range of keys conflicts with a write to a key in that range, even if that key did not have an associated value at the time of the original read.
Simpler example:

https://bugs.mysql.com/bug.php?id=13943

Reported over 12 years ago...
One expensive way that would work would be to write a compiler in Solidity. There might be better ways involving breaking up the code and splitting it up between compute resources like on Golem. By the standards of common blockchain cryptographic security I'm pretty skeptical of SGX and the like.
Comments from yesterday regarding Signal switching to aws for fronting: https://news.ycombinator.com/item?id=16868564
Riot: A Distributed Way of Having IRC and VOIP Client and Home Server
Why compare to another API endpoint? You should compare it against accessing a local database.
> How about replacing your Lucene/ElasticSearch index with something that actually scales and works?

Do you have something to back that up? This to me reads like you imply that Elasticsearch does not work and scale.

It's definitely interesting but I'm cautious. The track record for FoundationDB and Apple has not been great here. IIRC they acquired the company and took the software offline leaving people in the rain?

Could this be like it happened with Cassandra at Facebook where they dropped the code and then more or less stopped contributing?

Also I haven't seen many contributions from Apple to open-source projects like Hadoop etc. in the past few years. Looking for "@apple.com" email addresses in the mailing lists doesn't yield a lot of results. I understand that this is a different team and that people might use different E-Mail addresses and so on.

In general I'm also always cautious (but open-minded) when there's lots of enthusiasm and there seems to be no downside. I'm sure FoundationDB has its dirty little secrets and it would be great to know what those are.
Our workspace has been referred to as “the bullpen”. One dev gets a cold, soon after another.
OK I can see the results of the work. I'll keep checking back for a font-size setting so I can see the type.
You keep thinking that.
We had someone come in and spend 45 minutes on interview problems e.g. produce an array of 100 to 1. You had free access to Google and were encouraged to use them for reference.

After each attempt we said no that's not right, and then at the end we were asked if we were going to use his code in our platform and if he should be paid.

Felt kinda bad for him, clearly didn't pass the interview test.
> The extreme left on reddit is not being silenced the way the extreme right is.

I think this is a false equivalence. The extreme right is deeply racist/homophobic/sexist, denies science, advocates for a theocracy and for the shutting down of government services to the extent that millions of people will die. Say what you want about the "extreme" left's social policies but they're really not on that level.
Every time I've been involved in hiring, we didn't really mind what technologies they used if they'd done some sort of vaguely similar programming.
Ahh, see, this is the second problem with Facebook alternatives- everyone misunderstands what other people use it for. For a younger demographic Facebook is not about microblogging at all. It's a (a) chat, (b) photo sharing, and (c) event/group organizer website. Everyone I know has a Facebook and uses it daily- can't remember the last time any of my closest friends posted a status.
Thank you. That makes sense and totally understandable. Looking forward to when there's third zone in asia-southeast1. :-)
Terada Gretsch guitar factory:

https://www.youtube.com/watch?v=GUB6QICAS5I
The NXP chips have the other only open source GPU drivers, with the first being the RPi. If you want to do multi-media and need USB3, this is probably what you want.

The upboards are interesting, some have an FPGA, and some NN processing soon courtesy of Movidious.

The Pine64/Rock64 and Orange Pi are as cheap or cheaper than the RPi, and some Allwinner/Rockchip boards have binary GPU drivers, but really YMMV.
I won't even bother subscribing to a podcast without an RSS feed. Although, more often than not, I still have to use a search engine to find that URL.
I make 220k salary and 480k total comp as a staff software engineer (not in AI) - so this really could be either a higher performing staff engineer (salary) or a average performing senior (total comp)
Why not use Hangouts? Seems like it meets all the requirements you've listed (desktop client, sync with email account messaging, video chat, phone calls.)

I'm not trying to promote the product so much as wondering what I'm missing out on, if anything.
And don't forget the TokuDB storage engine. It has some very interesting and different scaling/performance characteristics which can provide dramatic improvements for some workloads.

(Even though TokuDB is probably not the "best" choice for my workload, I love it for my text-heavy tables because its performance is still great and its on-disk compression ratios are superb.)
I joined a pub but 90% of the messages in my feed were other people joining the pub and subscribing to topics. 9% were people introducing themselves as new to Scuttlebutt. 0.9% were either talking about Scuttlebutt or unreachable, and 0.1% were actual content.
In other professions like law or medicine there's a professional organization that requires members to take a difficult test to become certified to practice. In those fields nobody with 20 years of experience is asked if they can FizzBuzz on an interview. I wish we could get the algorithm whiteboarding out of the way one time after graduation and then have every company trust in the certification from then on and instead focus on experience and real-world skills.
Clangd != clang.

Woolvalley said “and now recently clangd“, which is a source code completion server which began its life at Google.

Clang did start its life with Apple.
> BTW, this is the same argument that people used to use against distributed version control.

Maybe people do, but it's Apple's and organges. Modifying files locally is the nature of software development. Switching from SVN to git didn't change the actual developer workflow of "make changes and commit", which is just not how issues are dealt with in reality.

Also, what about authentication for the web front-end? Are you going to have a database to manage users? Every use case of a distributed issue tracker just seems to go against the grain.

A better approach would be to build a traditional issue tracker (centralized) that has the ability to use git internally as a database engine for issues only (not users, settings, etc). Commit author names/emails are linked to actual user accounts and users could optionally clone the issues repository, use a cli-tool and push it back up to the server.

This would be to issue trackers what GitHub/GitLab is to repositories.
Sure, but mutability is orthogonal to OOP.
Good to hear you're receptive to feedback. Enterprise sales and pricing is how a lot of companies have become, and stayed, big. There's nothing inherently wrong with that model.

But if enterprise pricing is the only model you're offering, then unless your goal is to only ever get business from big corporations (which, again, isn't necessarily a bad thing), you're going to turn a lot of potential customers away.
But if the HR person does a bad enough job, then the hiring manager ends up having to do it themselves, on top of fighting with the HR department to let them do it themselves, so you end up with a negative net value added.
How to Commit a Perfect Murder [pdf]
Graphene Is Grown with the Same Band Gap as Silicon
i too would like to know the answer to this question? is it being selectively ignored?
The homework doesn't get you the job though. You may need to go through 10 of those to find someone who wants to hire you and you also wanna work for them. Let's say you're currently employed, where are you gonna find those 10 weeks? Minuscule one-time effort? You never switch jobs?

There are lots of professions that make just as much or more as your average software developer. Accountants, sales people, bankers, lawyers, dentists, managers ... the list goes on. Software developers are middle class (or at least what's left of it).

Is the homework a strong enough signal? What if someone helped the candidate? What if they won't get along with the team or the culture? How close is it to the real work the candidate would be doing? I wouldn't base a hiring decision on homework. So this is basically just a screen, a very expensive (to the candidate) screen. Who are you screening? Anyone good enough that doesn't need to invest a week to get a job, that's for sure.

If you feel homework is a good indicator and you ask someone to do that for you, pay them. $200/hr sounds like a good starting price.
Imagine how good Tcl/Tk would be now if people had put as much effort into improving it as they did in trying to kill it and come up with alternatives.
That would still be Imperialism under a different banner.
??? that's not his lab, it's a blog site whose sole faculty advisor is Sergey Levine. I don't want to be a hater here, I'm just stating facts that M.J. is first and foremost a mathematician, and that deep learning has been tough for mathematicians in ML / stats.
Ask HN: Uncommon advice to grow your SaaS
What advice is less common but can have significant impact on growing your SaaS product?