skysight-inc/HackerNews huggingface dataset:
It's about internal power, even at the expense of the companies wellbeing. These layoffs were in the context of a larger set of layoffs that Satya undertook as his first big move at MS. Satya was getting across the board pushback from lots of different warring orgs at MS. He even had to bring the Big G out of retirement to help him out. So by taking out the top dogs he becomes the top dog. I don't even blame Satya for doing it - it's human nature that required it. If he didn't do it he would have eventually been pushed out of MS for not getting anything done. It's why drug cartels are so violent, it's why our election choices are Clinton and Trump. At least he's less evil than Sinofsky and Ballmer who were both cartoonishly horrible.

Good people have been leaving MS for a very long time. But big company corporate politics are really toxic in the US. MS is actually one of the better ones. Intel, Amazon, Netflix are much worse. Facebook and Google are on the decline. Yahoo.... yeah

As for this AI thing, my bet is that it is mostly fluff. Most people will ignore it until the next re-org comes along. There was a similar thing with Big Data at MSR a number of years ago and look what happened there.
Firefox sandboxes plugins like Flash and DRM plugins [1].

They weren't sandboxing web content previously (which I assume means PDF.js wasn't sandboxed?). But they announced this year [2] that they will be copying Chrome's security model and again supporting per-tab sandboxing. Instead of running all web content in one big process. Not sure if this was rolled out yet.

[1] https://support.mozilla.org/en-US/questions/1111998

[2] http://www.myce.com/news/firefox-finally-gets-sandboxing-imp...
The interface is the one thing that has kept me far away from Blender. Maya has many faults but, in the end, it has a UI philosophy that let's you reach escape velocity once you understand it. I have given Blender a chance many times, and every time, its interface makes my head hurt. It has improved, for sure, but still doesn't beat Maya in many ways. This is in now way a wish of poor luck to Blender as a project.
Actually got in argument with someone last week in defending his company's selection of Angular (which I've used) "you never get fired for choosing Google." Well I'm old enough to remember 'you never get fired for buying IBM.

My philosophy is you move ahead by choosing the best product and currently imho Vue is best. But then again having tasted the freedom of being an entrepreneur I couldn't ever work again in the big company environment.
Perhaps the worst piece of UX in all of git is the naming of the staging area. The docs and arguments use 'index', 'cache' and 'staging' all to refer to the same thing. The names 'index' and 'cache' are awful, but the inconsistency is unforgivable.
What Founders Ask Founders About Getting into Y Combinator
I really, really like Blender. I use it only as a hobbyist, but pretty reliably once a year it's super useful - modeling furniture in my apartment before moving, making visualizations, even playing with little artistic ideas.

Contrary to some other comments here, I like the interface. My only experience with competing software was ~8 years ago, but I find blender's interface faster and intuitive once you get over a slight learning hump.
I'm surprised the fingerprinting is so reliably repeatable that you can use an exact hash, like SHA-1. I would have guessed that noise or especially filtering could shift the peaks a few hertzes around. Why isn't this a problem?
I'm a person who feels Eich was bullied, but it's not directly related to this discussion.
Have you used Blender since around 2011ish? That was when 2.5x was released, which completely changed the interface. It took me a little while to re-learn it, but it's been much better since then.
When I can read a book from a webpage with the same fidelity as a book in PDF, let's talk further.
Where are you getting this information from? I got an offer from Microsoft and it definitely wasn't even close to what people who get offers from FB or Google get.

Anecdotally, pay I've seen from Google and FB are higher than Microsoft/Amazon, but of course that's not saying much. Still, the first source I can find matches what I've seen: https://blog.step.com/2016/04/08/an-open-source-project-for-...
>If the two of you cannot easily answer this question then your journey is going to be a troubled one.

I came here to say the same thing.

But then again I want to give you the benefit of doubt and assume you're two wet-behind-the-ears teenage kids in a garage building the next MSFT :)

Toss a coin. Whoever wins is CEO for 3 years then the next person can take over.
> For a typical user - PulseAudio "just works" and there's no more to it than that

Nope. Sleep mode, no matter what distro you use, causes issues from 2008 until today [0][1][2]...[n]

[0] https://wiki.archlinux.org/index.php/PulseAudio/Troubleshoot...

[1] http://askubuntu.com/questions/762816/ubuntu-16-04-changes-s...

[2] https://www.linuxmusicians.com/viewtopic.php?t=13979
Thanks for the reply!

So what I'm really after is a way to iteratively "perturb" the sample in such a way that the resulting texture will smoothly reflect those changes.

Take a look at this rough illustration:

Op-Art Texture Synthesis

http://imgur.com/a/1IKN3

You mentioned rotation and mirroring type bitmap ops in your algorithm. But how do we precisely apply a series of dynamic filters to the input to "evolve" the patch? Even using overlapping kernels it seems quite intensive! And prone to artefacts...
Full of hyperbole. It's a different UI and you have to learn it. It's extremely self-consistent. Try putting a neophyte in front of ZBrush and they'd say the same thing but tons of people adapt and use it.
That CPU use is resampling to match the sound card rate. If PA isn't doing it, your apps will be instead. Either way, it's going to take some cycles.
Can this approach be used to generate "missing parts" in unfinished song? If composer has few good parts but is too lazy to finish the whole piece, for example? Or to "extend" Moonlight for example?
Is there a link to the trained model somewhere?
Microsoft pays well, but this is the first time I've heard them paying better than google. When I was at MS, there were always complaints about losing potential hires to Google over much higher salaries.
Spot on. The best team I ever worked with used Pivotal Tracker. When you delivered a story, you picked the next story off the top of the backlog. No cherry picking of stories.

We paired on all but the simplest stories. You were constantly learning new tricks from other devs and since you could only take from the top, you quickly got a taste of most of the major components of the system.

In short, you could actually take a fucking vacation because there's no longer the situation of being the only designated "backend guy". Everyone had some backend experience.
Scientists Trace Society’s Myths to Primordial Origins
What would be considered "basic" AI techniques?

Any resources you would recommend for a good introduction to AI/deep learning?
While the staging area could use some UX improvements, it is the most important part of git and proper usage of it fosters good history clarity and code quality

For that reason i agree strongly. Any attempt to improve git that does not move the staging area more to being the default way of operating is misguided at the code.
I think you just never got the hang of the interface. A lot of people really like it. I used to use Maya. It's very different. I prefer Blender's interface, personally, and can get things done very quickly and smoothly with it.

if Maya is emacs, Blender is vim. Neither of them are Sketchup, and neither are trying to be.

By the way: I used to hate vi, cause I never gave it a chance. Recently I buckled down and learned how to use it. Now I think it's awesome, and I've hardly scratched the surface. But I finally got over the steep hump, and it was worth it.
> It's moving from a memsafe language back to C++

JS a safer language than C++? I would argue the opposite.
I've just started tinkering with deep learning for a solo project; I recognized pretty quickly that there are many areas where I can't "play with the big boys", but I also realized there's a lot of low-hanging fruit that is accessible to me exactly because the big guys are open sourcing so much.

So, I can build products that aren't big enough to interest Google, but include a bunch of tech developed by Google (and others) and leverages their APIs to provide a unique service that is feasible for me to build, and will be useful to a wide variety of people. I can offer it for very little money (one person's side project), and hopefully have some fun learning about deep learning.

I'm so new to it that I'm not even thinking about advancing the state of the art or doing novel work. But, in a couple of years, who knows. Just tinkering with things in a new industry often provides pathways to cool stuff because so many doors are opening all the time. This is like being involved in the Internet in the early-to-mid 90s. You probably won't become the next Google, but the odds of finding a highly profitable smaller niche seems pretty high.

Also, there's going to be a ton of acquisitions in the AI/deep learning space over the next decade. Every company that even does a little tech will "need" an AI story to keep their investors happy. Your tiny thing could be one of those acqui-hires, or maybe not.

Then again, if you have an interest in other stuff, and really don't feel excited about it...probably not worth forcing yourself to get into it. Life is short, you should do stuff that's fun, even if you have to ring the cash register now and then.
Git has the same with `git add -p`, and if you're operating on a gui system, git-gui is excellent.
Er... but then you have (N+1) checkouts of the repository where N is the number of workdirs, no? How does this even work with submodules? Will I have a copy of the submodules tree in each workdir? Our submodules tree is like 4Gb at this point, I can't very well have 5 of them. Disks are large, but not yet infinite.
Which is a fine pithy answer, but does nothing to address the concerns about maintainability, bugs, etc.

Any modern system can read PDFs. Why does it need to be in the browser, instead of handed off to the app of the user's choosing?
And on iOS too!
Two sides to this comment:

1) It took Ballmer to leave for them to really get serious about innovating again.

2) ...because under Ballmer, they were able to make billions of dollars without innovating.

Bill Gates is probably pretty happy about #2 even if he's not thrilled about #1.
Surviving Failure – MaxiPharo
Good question. The answer is that time is an invariant here.

Dejavu uses a locally sensitive hash (LSH) just like any other approximate search hash might. The key to note is that we're binning both the frequency and time units of the spectrogram, giving us room for noise/error. In fact, you can tune the granularity to which this happens by adjusting the Dejavu FFT window (DEFAULT_WINDOW_SIZE). This will create a spectrogram with few (and therefore larger) cells.

The trade-off with smaller cells is that with too much granularity (or if the audio is even a tiny bit stretched or we have small Doplar shift effects), we may miss the fingerprints we want (false negative). On the other hand, with too low granularity, we risk having our frequency bins too large and having perhaps another song/query audio match when it shouldn't (false positive).

Luckily in either case, we don't need to see all the fingerprints, just enough to align properly in time.

So to answer your question, Dejavu is fairly resistant to noise (and can be tuned with FFT settings) as long as the audio's original timing is unchanged.
Part of the motivation of Rust and Servo is that Firefox in the long run is unmaintainable. It's many millions of lines of C++ code, any of which could corrupt memory or create a security vulnerability, and it's a very old codebase that has to deal with architectural decisions made decades ago when the web was very different. (Firefox was first released in 2002 as a fork of Mozilla, Mozilla was first released in 1998 as an open-source fork of Netscape Navigator/Communicator, and Netscape Navigator was released in 1994.)

Mozilla had the option of either remaining in long-term software maintenance mode and falling behind or doing something to move forward the state of the art in browser design and security. Sometimes the seemingly-risky choice is actually the safer option; I hope it works out.
> If you are a 1 person startup (and don't want to be a CEO)...

If you are reluctant to do any job required in your startup, the viability of said startup is in question.

You could always ask your dad or uncle or whomever to fill the role for you. But beware - large oaks grow from small acorns and ceding control/ shirking responsibility at such an early stage can have negative consequences down thre road; one of which may be a lack of familiarity with how your business truly operates. When your little hustle is ready to become a pre-IPO giant, what then?
there's a really funny paper clip from office 95 joke here somewhere.
Directory hard-links?
Let me tell you a story about a business I worked at.

This business had a CEO who was just plainly incompetent. The sort of person who was first to take credit and last to take blame.

We were operating with IT equipment that was a decade old (yet gifted after the equipment was written off in tax terms). As equipment failed, slightly newer IT equipment was put in place of it, also written off, and the reports went up to the parent business that the old gear had failed because production staff ("So how do I send an email again?") had not reported that it was failing because of bad fans and screaming hard drives. Last I heard, they were still operating with Windows 98 and NT 4 workstations in a couple of key roles, and XP on almost all of their other production systems.

The manager in charge of actually getting things done didn't get a pay increase in the decade I was there, and worked up to 70 hours a week (30 for free). All staff had to make up for the lack of investment by working extra hours for free, and refusing to do so was demonstrating a "lack of team spirit." Hours weren't recorded, legally required holiday pay wasn't paid. Reporting any of this to the authorities resulted in extrajudicial punishment (a visit from some friends of the owner).

The only time staff pay went up was when minimum wage went up. Training was non-existent; you were put in a job, they showed you which buttons to push, and if you didn't get it right you were reprimanded. I saw staff work double shifts for months and then get fired because of an inconsequential spelling mistake, and then the next person in the job (but with half the hours) get away with the worse mistakes for years.

Naturally, there was a high staff turnover. The more skilled the staff, the faster they were gone, but that meant the people who couldn't leave (for one reason or another) had to work much harder.

Ultimately, the business still exists because of the unrecognized and unpaid hard work of the staff, and absolutely in spite of the efforts of the incompetent and criminal CEO.

But what is the point of my story? ROI is seldom "analysed in greater depth" because few rich people want to be liable for the actions of their staff. Last I heard, the CEO was promoted, with the appropriate salary increase, to a second tier position in the parent organization because of his managerial skills.
For those of you dead set against using PA, you may want to look into this project to emulate PulseAudio support for ALSA: https://github.com/i-rinat/apulse
For the sake of me, after trying for hours I still couldn't understand how to do something as simple as put 2 cubes in a group and move them or resize them together in Blender and keep their dimensions with numbers that made the minimum sense while maintaining the 2 as different objects (i.e for texturing purposes).

Seriously, it's just that non intuitive. In the beginning I thought it was perhaps because I was used to C4D, but after that episode, I realised some things in blender simple don't make sense for someone that thinks in objects the mathematical way.

On a side note, I started 3D with POV-Ray many years ago, and, although not having a UI, at least the text description of the scenes was perfectly intuitive... I just can't reach that point with Blender.
For every repo I fork I usually add a remote named upstream pointing to the original.

So then, whenever I need to get my copy up to date with upstream it's:

update = !git fetch upstream && git merge upstream/master'

It's probably easily changed to make the branch configurable, but I have only ever needed this with master.
One might offer to sit them down at the computer for a while and see what they accomplish. The skeptic can probably even provide his own computer. Most people don't have a large corporation they can just casually make themselves CEO of in order to prove a point.
"Using <technology of the day> to <contribute to some exciting high level business sounding goal> with <impressive statistic>". Video, reportedly without technical specifics.

They say if you can't communicate something succinctly, then you don't truly understand it. They are right.
The paper doesn't discuss much how their implementation does better on their listed issues. One particularly interesting issue git has is referred to at one point as "Incoherent Commit":

"The problem with commit is that it constitutes a violation of the coherence criterion: the same concept (commit) has more than one, unrelated, purpose: make a set of changes persistent (P1) and group logically related changes (P2).

"These two purposes are not only unrelated, but in tension with each other. On the one hand, you would like to save your changes as often as possible, so that if something bad happens you lose as little data as possible (thus encouraging early committing). On the other hand, a logically related group of changes usually involves multiple individual changes, which means that you might be working for quite some time before you have enough changes to group (thus encouraging late committing).

Now a fix for that would be useful. Git only provides you with the ability to create a graph, and you get to choose what you use it for. You have to choose though because there is only one graph. Gitless doesn't seem to fix this problem, you still have to choose what goes into your final commits. Though I don't know what you could do about it without changing git to support something like grouping commits into blocks that are modified as a unit.
I'm not totally sure what Firefox did here, but requiring libpulse isn't the same as requiring PulseAudio. And the comments in that linked issue suggest that this merely introduces a required dependency on libpulse.

The standard Chromium package on Arch Linux requires libpulse, but I run it just fine on my laptop with no PulseAudio daemon. It seems like libpulse will fall back to ALSA if the PA daemon isn't running.

edit: disclaimer: I know very little about audio on Linux, merely describing my own experience and speculating wildly.
It would help if you could add some more substance to that assertion.

CxOs clearly require some competence- I don't think that is in dispute. It is the 200x + salary differential that is in question and the subject of the article.

Can you cite some other studies that contradict this?
Credit Suisse Research: Blockchain [pdf]
How I Hacked Uber for Delivery in Inda
I'm starting to think these people don't really have an interest in changing their views. If it wasn't this it would be about something else and they'd be making snarky drive-by comments on someone else's ShowHN.
How many use-after-frees leading to remote code execution have you seen in JavaScript?
PDF.js worked in my experience too, but it's the usual problem with a massively complex format like PDFs - getting 80% or 90% is feasible, and PDF.js does that great, but getting to 100% - things like forms, etc. - is very, very hard.

It's easier to just use an existing PDF renderer like PDFium that already has the 100%.

The Flash thing is separate. Flash is sadly still necessary on the web - most people won't use a browser without Flash, except on mobile. And the pepper version of Flash is more stable than the other.

Where the two connect is that if you support enough pepper for pepper-Flash, then you also have the option to use that pepper support to run PDFium.
Just wanted to point out that Blender also has a surprisingly decent video editing workflow. The usual caveats about the weird user interface and steep learning curve still apply, but I gave it about two days of practice and am very happy with the results.

Someone wrote a review claiming that Blender was the least painful way to edit video on Linux. I'm not sure if that was/is still true, but after trying two or three crash-tastic alternatives, I'm willing to believe it.
Did they? Edge definitely still opens PDFs by default on Windows 10.
I've never quite worked out why graphs and relations can't be unified in some way. They both rely on first order logic, after all.
What kills me about it refactoring c++ is dealing with headers. A lot of times, something should really be a separate file (or should me merged into another file) but it would be a pain in the ass to fix the headers.
The staging area is a lot more useful than what you can do with an interactive commit, since it persists between operations. You can use it to accumulate changes that are "done" while you continue to experiment with some other changes on top, even if you're planning on committing the whole thing at once, and if you wind up not liking your new changes, revert to what you had in the staging area; or you can realize what you're working on will be easier to finish as two commits, stage part of it, stash the other part, finish the part that was staged and commit it, then apply the stashed part and finish that too.

This is a lot more than you get with just a single interactive commit operation.

You could use a commit for this purpose, and continually amend or revert this commit, but in terms of UI, it's helpful to have a set of operations specifically for moving things in and out of the staging area that's different than what you do for manipulating commits on general.
I'm a big fan of GitUp. http://gitup.co/
Because your boss has no billable hours. Nor his boss, nor the boss above him. The front desk guy, the lady in accounting, the payroll people, facilities, most of the IT folk.

You need one of each these people for every N developers (different value of N for different classes of service). Therefore the cost of having you includes the 1/N cost of each of these people.
The Bizarre Second Life of the Utopian “Facebook Killer” (Ello)
> One disadvantage is that static typing causes more lines of code than dynamic code.

Not if the statically typed language uses inference.
Actually, in that scenario, the campfire is more likely to be a health threat to asthmatic members of the public (about 7% in the U.S.) than the cigar!
The largest computer ever built
On the other hand, isn't that just a sign of a weak ORM? For example, in the platform I use, when I "fetch" some records by ID, it doesn't actually issue a SELECT; it just collects the ID and returns a proxy object. Only when I access an attribute of that object, it'll issue a SELECT for all the IDs in question.

One could extend that for more complex operations - instead of immediately executing the operations, it'd collect the operations and convert them into efficient queries. In a way, this is already done in "fluent interfaces" like LINQ, but with a more flexible language (Lisp?), I'm sure one could use standard control flow instead of a custom layer.