skysight-inc/HackerNews huggingface dataset:
While this is probably true, it benefits immensely from hindsight.

Even when Nokia decided not to move forward with MeeGo (which was an extremely defensible decision given how behind schedule both the OS and the products to run it on had become), they considered their services--particularly mapping--a major "crown jewel." They went with Windows Phone (n.b.: not Windows Mobile, which was the earlier OS) because Microsoft would partner with them and promote the Nokia products as "premium" Windows Phone devices while letting Nokia use their own services. That deal wouldn't have been possible with Google. While Android is open source, the Android branding is not, and to be able to market their device as Android--and get any support from Google--they would have had abandon their own services and use Google's.

If I'd been in charge of things, would I have done that? No. I think Nokia should have gone with AOSP and put not only their own services but their own UX on it, along with Qt. I was at Nokia at 2010 and we were in the process of unifying Symbian and Meego on Qt, with the notion that you'd (mostly) just be able to recompile a Qt-based app to move between OSes; they could have kept that strategy while moving to Android. Then they'd be able to run Android apps natively and have a solid platform to move ahead on, while not leaving Nokia's existing community feeling like they'd been shut out. And, as others have pointed out, Nokia had some fantastic industrial design; the N8/N9, whose design language carried over into the Lumia line, was really the only phone design I've liked as much as the iPhone 4/4s design.

But, Nokia's choice wasn't entirely bananas at the time. We all knew Windows Phone was late to the game, but initially it still got a lot of positive attention, a lot of love for its UX design, and it was Microsoft. I was arguably a skeptic, and even I wildly underestimated how hard the platform ended up cratering.
I can second this. Recently migrated from NoScript to uMatrix. I was finally confident enough to put NoScript to "globally allow all" mode this week and use uMatrix alone for controlling scripting permissions. (After reading this disabled NoScript altogether.)

uMatrix allows more fine-grained control than NoScript. It's basically based on three contexts (scopes): host, domain and global, but my experience is I only ever use the global and domain scopes. I would recommend starting by globally white-listing the popular CDNs (so scripts on all sites delivered e.g. through Google's CDN are always executed and <script> snippets to integrate Google widgets work).

Then, for a majority of trusted sites it's enough to just white-list the local domain (allow executing scripts from example.com when you are visiting example.com sites). Scripts included on foobar.org from example.com still remain blocked – this is the crucial difference between global and local scopes that NoScript doesn't lend to.

I would recommend always allowing XHR and iframes in the site-local scope. IIRC this is not in the default config but since XHR anyway requires scripting you can then easily control both XHR / scripting by just white-listing the site for scripting. So this is my uMatrix base configuration currently and a good starting point for migrating from NoScript:

* * * block
* * css allow
* * image allow
* 1st-party cookie allow
* 1st-party frame allow
* 1st-party xhr allow

I.e. CSS / images allowed from all sources (except those blocked explicitly). Cookies, frames and XHR allowed from the same site you are currently visiting. Only scripting must be allowed per-site, just like with NoScript.
My favorite: "Beef House" on the Illinois-Indiana border, Hwy 74. Its this enormous rambling place, parking lot like a basketball arena. Menu is the size of a newspaper page, with ribeyes of different sizes splashed across the center of the page. From 8 to 20 oz. Tables have captain's chairs with wheels, presumably so they can roll you out to your car after the meal.
Fashion’s old guard are right to fear the blogger
There is an interesting story by the New Yorker: "It wasn’t just that Nokia failed to recognize the increasing importance of software, though. It also underestimated how important the transition to smartphones would be. And this was, in retrospect, a classic case of a company being enthralled (and, in a way, imprisoned) by its past success. Nokia was, after all, earning more than fifty per cent of all the profits in the mobile-phone industry in 2007, and most of those profits were not coming from smartphones. Diverting a lot of resources into a high-end, low-volume business (which is what the touch-screen smartphone business was in 2007) would have looked risky. In that sense, Nokia’s failure resulted at least in part from an institutional reluctance to transition into a new era."

http://www.newyorker.com/business/currency/where-nokia-went-...
The Swedish Loneliness
I would say that before you consider all offers, you should be aware of your circumstances. Are you integral to your current company? Do you have an open relationship about your career with your current employer? Do you like your current job? Are the benefits something you think about regularly (4 weeks leave time, work from home, fully covered health insurance)?, having researched pay for your level of experience, where are you? (knowing this is critical). If you're on the low end, ask your employer why. If you do get offered a new position, is "total compensation" better (salary - taxes, medical, dental, leave time, additional benefits)? If offered a bonus, remember you have to pay taxes on it.

I tend to agree with the rule "don't entertain counter offers", but if you think you may get one, discuss it directly. A lot of employers will be very honest about your total comp and why they level you there. It's often about their own costs, their own "grid" of salaries, and because they have a "system", they can't really pay you more unless you're promoted to management. It could be about you and if that's the case, they probably view you as expendable and you should almost certainly move on.

Whatever you do, try to minimize the emotions and focus on all of the tangible aspects.
How kids building pink furry buildings is key to Microsoft's $2.5B Minecraft bet
the release notes page? there's a checkbox for "display the release notes on updates".
Thanks for raising some really valid counterpoints to my argument, while framing this as a contest of ideas and not people. I really appreciate it. I imagine others on HN do too.

Regarding "I don't see how it is a (globally-speaking) bad thing to have migration make it so that enough people decide to move there to make it less feasible." - to be honest I tend to agree in principle, but I worry that the practical effect would be far more negative. Making the decision to move less feasible seems to mean making the destination country less desirable, which sucks and is a bummer for those who live there. Then again, there's nothing fair about me being paid ten times as much as someone in India to work with databases. I just happen to like the stuff I can buy by making 10x as much cash.

I want to live in a liberal democracy with a high standard of living and low carbon emissions (so apartments close to amenities with lots of bike lanes and very few automobiles) with a steady or slowly decreasing population, because there are too many people in the world for it to support. If such a place existed (Denmark comes to mind, or perhaps Japan), it would probably be a desirable target for migrants from all over the world, which would strain the systems that could make such a place possible. How do you build schools to house families with 4+ children when your budget was built on the idea that you would need to build no more, or slowly downsize them with time? How do you allocate land?
A honest thought: the typical user of NoScript won't fall for those ads, I think.
Looks like the new syncing story involves logstash as an ETL platform

https://www.elastic.co/guide/en/logstash/current/deploying-a...
> insofar as it usually allows Javascript on the local site by default

NoScript can do this too BTW. The web is almost unusable without that setting enabled.

The drawbacks you identified are exactly the same on NoScript so they should not be used as a reason to pick one over the other.

It takes a LONG time to get a good list of whitelisted sites, now that mine is more or less usable I don't intend to switch - especially since I disabled the "show webpage with ads" thing on NoScript, so I don't have the problem in the article.
Open source turns nasty Metamarkets / Imply fight over Druid.io viz engine
...Whereas as an Emacs user, I put a lot of work into customizing my tools, learning to work as efficiently as a possible with the tools I have, and all that, and so have a greater connection to them.

We don't have Dialog editors built in, we don't have SQL Server or Azure integration. But we do have doc intgration, courtesy of OmniSharp for C#, and courtesy of various packages for other languages.

Sure, it's a good bit of work, but you get a better environment out of it.
I haven't made it public. I didn't think anyone would care about the code. Let me know if you want me to publish it.

Technically, it's a static website made with Middleman and a tiny bit of Javascript. I am using Pure CSS as a base for styles.
I always hear this, but where do you people work that this is the case? As some who has been on the other side of the table this was never how it worked. Losing a team member sucks. A counter offer is an attempt to avoid that. The idea that your boss would secretly interview your replacement before firing you just seems silly to me. At the most practical level doing something so cold hearted would send every other member of my team searching for a job.
Generally speaking a lot of .PHONY targets require information that the build system, and build system alone has. You would have to replicate that information in the scripts if you wanted them to work, which is at the very least a messy situation, and somewhat defeats part of the purpose of using tup in the first place. This is obvious for targets like `clean` - hence why you suggest it should be supported in the build system - but most phony's require a certain amount of information from the build system.

I also disagree on `install`. `install` is useful for creating packages in the first place. The build system already knows (or is told) which files are suppose to go in which general locations (configured via environment variables for the paths) and then install the correct files for your configuration. It is easy enough to use this to create a package by installing into a separate directory then /. The key is that the build system knows all the information to make `install` work as wanted (Along with being provided some paths). Separate scripts would not.

Providing nothing at all to do for an `install` like the tup project does is simply not user-friendly. I install packages directly to `/usr/local/` all the time, and even ignoring that use-case there's no reason to leave the user wondering "Where do I put what files?". The developer know this information, the person attempting to use it or make a package generally doesn't (Or doesn't know all of them). Allowing you to define such a 'command' in the build system makes it a lot easier to write, and providing such a command makes the entire project tons easier to use and make into a package.
"Lead suspect" is actually a very apt analogy here in its purest form: while there is no new evidence indicating that H. sapiens and H. floresiensis were actually in competition for resources, there is evidence consistent with that theory, and other explanations for the latter species' demise are less plausible.

We should be careful, in this and when reading about modern-day criminal accusations, to not exaggerate what "suspect" actually means and jump to a presumption of guilt, or even believe that there is evidence for guilt!

In this case, H. sapiens teeth were found in a cave where H. floresiensis was known to live some 4000 years prior. But this itself is no evidence of overlap. From the article:

> Other evidence presented by Sutikna puts humans in Liang Bua very soon after H. floresiensis vanished, which adds weight to the possibility that humans played a role in the extinction of hobbits, possibly by out-competing them for limited resources on Flores.

> “What we don't yet know is whether there was at least a short overlap in the populations, thus raising the question once again of the possible role of modern humans in the extinction of floresiensis,” says Chris Stringer, a palaeoanthropologist at the Natural History Museum in London who attended the meeting.
No-one is disputing the power of git. People are merely pointing out that it's textual user interface is clunky and inconsistent. Just because it won the DVCS wars doesn't mean the conversation needs to end and we have to accept this is as good as it gets. It won despite it's CLI not because of it.
It's just the fonts being loaded over http instead of https like the site is.

Easy fix is just change all the font urls to https since Google Fonts supports https as well.
The burden of having to know everything about it, is precisely what gets in your way. Granted, I use an actual tool (sourcetree) that abstracts away the BS that is the git commandline.

This idea that 'if you don't like the tool, it's because you're not good enough to use it, because you don't know everything about it' is elitist hokum.
It is all about point of reference, depends on you are comparing yourself with someone that makes you more in industry or someone that makes less in other industry.
Its only a problem if you assume a supportive employer, one that is looking out for your productivity and success. When you find out your company is only in it for the money, it can be a shock.

I agree its wrong to moralize about it. This is business. You sell your skills for cash. You should be prepared to get the best deal you can. Just asking meekly is a losing gambit. It will take more than that to put wheels in motion (get considered for a raise). Like showing an offer you received.

Now, that said, my son works as an ME at a contract house. The company owner threatens that anyone even looking for a job will be fired summarily. Childish. It just means resentment simmers, and nobody gives notice which has to screw up schedules and hurt their bottom line.
Sphinx Search is great and can work. Felt a bit obtuse.
My recruiter practically broke down in tears when I accepted a counteroffer in 2013. Counteroffers can be great tools to increase your salary, whether you accept or reject them. In my case it was purely about money. I was making $117k and I wanted a raise, but the company only wanted to give options. If it were an early stage Google or Uber, I'd go for it, but not this company. I wanted cash.

They played the old "not in the budget, lets revisit in 6 months game" but my ace in the hole was an unsecured network share drive where I found an offer letter for a coworker showing he made $135k. I was genuinely ready to leave so I contacted my recruiter (who had placed me at 2 consecutive companies) and she got me an interview at CAA (the Hollywood talent agency) as a node.js dev. They beat my salary with an offer of $125k, plus some perks like 2 week company shutdown around the holidays, half day before every gov't holiday, generous bonuses and 401k match. The downsides were a commute to Century City, and having to wear a suit everyday.

I went back to my employer and handed in my resignation and told them about the offer. They came back (unsolicited) with a counteroffer of $140k and an extra week of vacation. I took it and told my recruiter. She told me horror stories about people who take counteroffers who get fired or quit within months and how I would never work in this town again, etc.

I stayed at the company for 2 more years and was promoted to director of engineering, and got raises to $155k and then $175k before resigning to work freelance. On my way out the company was begging me to stay and I could only imagine what they'd offer if I chose to entertain them.
This is how I picture it http://i.imgur.com/TK9zjDF.gif :D
> ...phony targets, and `clean` and `install` are unnecessary.

For clean, there is a solution if you are using git; tup can generate a .gitignore for all the output files, and there is a git command to remove all ignored files. I'm with you on "clean" being something that is both easy to implement and useful in tup.

The author's stance on phony and install isn't that they are unnecessary, but rather that they are orthogonal to the problem Tup is trying to solve. install and phony targets are handled by an external script. I will have either a Makefile or a shell script that perform the tup invocation as part of the process.

The thing that tup does well is prevent you from making certain mistakes in your build system. If you have a missing dependency, it will error out; I have actually found bugs in makefiles that I converted to tup.
I'd guess plenty of people are in a situation where they're not miserable at the current company but they would like to get paid more.
It depends on why you got a counter offer in the first place. Accepting a counter offer because you told your boss "I like my job but I'm paid way less than some other companies would be willing to pay me, can we do something about it?" is a very sane thing to do.
Find excuses to learn things outside your comfort zone, at your work or through pet projects.

The pet project can be easy, as long as you have the time and motivation - pick a tech and make a small hacky thing. (I must admit to being an unrepentant procrastinator so this is advice I have rarely followed myself.)

The work route can also be rewarding though, given the appropriate work culture. I haven't found it too hard to take the time to learn about a thing that is blocking my team, and in my case I've gradually built up my knowledge of infrastructure and deployment practices where previously I'd mainly only written code.

When you run into a bug, make sure you dive down into _why_ it broke in the first place, as well as what. This will help you avoid [cargo-culting][1] and can also give you some [pretty fun stories][2].

[1]: https://en.wikipedia.org/wiki/Cargo_cult_programming
[2]: https://medium.engineering/the-curious-case-of-disappearing-polish-s-fa398313d4df
Not to mention the horizontal space they demand everyone else dedicate to parking, so "their" on-street space is always available.
Okay, partly wrong, there. There are some issues emulating the hardware. But given how crazy intel is about backwards compatability, the PIII itself might not be too hard...
Thanks, very informative.

I feel like an idiot now.
Everything can be faked - a combination of various biometrics would be significantly harder to fake than the current systems in place.
In fact Nokia always was an infrastructure company. (Well, "always" as in "telecommunication infrastructure products since 1960's", i.e. it started in telecoms about 100 years after its founding in 1867).

One can always say that there are other mistakes Nokia did. Like, why did it not acquire Cisco back around 1990 when it could have done it? But then again, many other Nokia acquisitions did not work so well so very likely Nokia Cisco wouldn't have been anything like Cisco is now.

Nokia came to telecom infra because before that it was a cable manufacturer, and it came to cable manufacturing due to being a rubber product manufacturer, and before that it was also wood industry manufacturer. You can still by "Nokian" brand boots and shoes in Europe, although it's a separate company, and you can also buy "Nokian" brand car and bicycle tyres, though that is another separate company.

(I worked in Nokia's infra side for 20 years and 1 day.)
Have been using Karabiner for years.

Works great if you have an "I set my drink too close to my keyboard" moment and need to make a spare PC keyboard work with your Mac to meet your deadlines. =D
Decentralized Court
>I'm surprised at how many people are responding negatively to software that improves user experience.

At the cost of doing things technically correct.
response: https://hackademix.net/2009/05/04/dear-adblock-plus-and-nosc...

it wasn't circumventing the filters just to show ads. It was circumventing the filters because the filter were blocking everything, including the install extension button.
I've been a blog junkie for the last 15+ years, and have accumulated a very large list of blogs that I read. Some of them are aggregators, and there's also a variety of individual blogs as well.

The main aggregators I subscribe to are DZone, EchoJS, JavascriptKicks, and PlanetPython. (I also still subscribe to a few .NET-related aggregators, like CodeBetter, MSDN Blogs, etc, but tend to just automatically mark those feeds as read).

I've also finally set up a Twitter account and started following a number of people, primarily those in the React community.

If anyone's actually interested, I've posted a copy of my tech blog subscription list at http://www.isquaredsoftware.com/files/bazqux-reader-subscrip... . Probably a bit crufty and some dead blogs in there I need to prune, but there ya go.
And of course the last one in the sequence is "Goto Considered Harmful Considered Harmful Considered Harmful". Yet another illustration of Ultrafinite Recursion!

(https://m.facebook.com/story.php?story_fbid=1015411943840422...)
Here's a link to one of the author's academic papers with detailed description of methodology:

https://halshs.archives-ouvertes.fr/halshs-00932197/file/A_2...
> If it doesn't work out, it's a whole lot easier to undo than a divorce.

Are you sure? It seems to me the paperwork involved is a whole lot easier than the emotions involved. You aren't really saving much head/heart ache by living together first as a trial.

It takes a lot less time, effort, and emotions to simply discuss the things first. Plus you can meet a lot more people in that time, vs living with each one as a trial.
Honestly, I stand by my position and advice.

Broad match is really not a default in the traditional sense...it is a default if you are too lazy/arrogant/dumb to understand how Google serves ads in the most basic way before flipping the switch on.

If you are too lazy to google Adwords Beginner or read Googles getting started documentation, you only have yourself to blame. Understanding match types is absolute fundamentals day one stuff.

Yes, if you want to be completely blind, you get backed into a default, but you only have yourself to blame if that happens...it is so fundamental and easy to discover that I just cant reconcile a rational scenario with not knowing enough to not end up defaulting to broad match with no idea that there is even a thing called match types.

Edit: just to add to this, I was being literal when I mentioned 2 minutes...it literally does not take more than 2 minutes to learn how Google matches ads to queries...

Edit2: I realize I am being a little defensive and unforgiving. The truth is, I can see plenty of people making this mistake...just assuming that its super easy to advertise...I guess I get a little emotional because its such a easy thing to learn. Its like my mom asking me a technical question that I simply Google and tell her the answer...she could have easily googled it herself :) understandable but frustrating!
There's no reason to believe that. How many people install NoScript on friends' and family's machines?
This is most likely retaliation for North Korea's latest nuclear test
The testing infrastructure they've built up around the project is incredible.A handful of developers spent years building it out and now the entire project benefits immensely from it. It's the kind of thing developers fantasize about having on a project they work on.