Facebook is gaslighting the web. We can fix it. - slig
http://dashes.com/anil/2011/11/facebook-is-gaslighting-the-web.html
======
lbrandy
I work on the team that generated the warning that seems to be the crux of
this post. I am pretty convinced that it is a bug.

His central theme, though, is a bit misguided. I don't understand why 1) using
opengraph, or 2) using a like button implies facebook should trust your link
and whitelist it. Even pages with those integrations can be malicious.

In this actual case though, the notification link (generated from the
commenting widget) seems to malformed and causing it to trip a security check.
I've pinged a bunch of people about figuring out what is happening and getting
it fixed. The guy sitting next to me is currently trying to repro.

As for convincing Google/Microsoft to warn users when visiting facebook.com
because of security false-positives, I'll leave that discussion for you guys.

~~~
cft
Let's argue Reductio ad absurdum.

Why does not Google pop-up similar warnings when you click on its search
results?

-Because Google is dependent on the richness and abundance of third-party websites, for its search to be meaningful.

What is the objective of Facebook?

\- To suck users into facebook.com, and sandbox them there. Similarly, the
smaller objective of Facebook Social plugins is to lift the userbase from
third party websites and move it into Facebook.

~~~
lbrandy
You seem to be under a collection of interesting misapprehensions...

1\. Google does warn in various ways when it detects possible badness. As it
should.

2\. We don't gate ALL links through such warnings. This can be verified by
going to your news feed and clicking just about anything.

3\. This is about a specific issue with notifications generated from comment
widgets (a very common spam vector).

4\. Detecting all badness via the domain name at "write-time" is not a
sufficient solution to the malicious link problem.

5\. Whatever that was, it wasn't reductio ad absurdum.

~~~
cft
>4\. Detecting all badness via the domain name at "write-time" is not a
sufficient solution to the malicious link problem.

Doesn't Google has this problem too, that detecting badness at the "indexing
time" is not a sufficient solution? The content of a site may change between
their checks. No pop-ups are shown in between indexing times nevertheless.

With your abuse reporting volume, you should be able to almost instantly
detect statistically significant malicious links, and remove them from your
news feeds, should the content change to malicious after "write-time".

~~~
podperson
I can't believe I'm posting something that might be taken as defending
Facebook but...

If a site appears to contain malicious content at time X but not at time Y
than I would PREFER to be notified that it is a dubious site until the site
has earned back trust in some way. Continuing to warn users about a site that
historically contained badness seems to me to be a FEATURE.

~~~
ajross
That's actually exactly Google's solution: they give you a set of reports and
an indication of when the malware or malicious link was last detected on the
site.

But I don't think that's the issue here. That facebook warning does _not_ , as
far as I know, get generated from a positive malware/spam/badness metric. It's
just thrown up as a default action when someone links to an unblessed site on
the web. That's what the poster doesn't like: it goes against the whole idea
of hyperlinking.

~~~
benregenspan
But as lbrandy mentioned, this is in one rare case and appears to be the
result of a bug. If this happened when most links were clicked leaving
Facebook, you can rest assured that all publishers would be up in arms.

~~~
ajross
Hopefully it's a bug. But I see it routinely. It's definitely not a "rare
case" by any metric I can think of.

------
ChuckMcM
Cache link is essential, of course the term 'gaslighting' [1] may be common in
some groups, it was new to me. The general theme is that Facebook is making
changes which make the service benefit Facebook more and is less user
friendly. I'm not sure it rises to the level of abuse implied by the term but
that is clearly subjective. The 'answer' of course is to leave.

I know, I know, "But all my friends are there!" or "Nothing else has the reach
of Facebook!" or "I've invested thousands of hours in Facebook!". At the end
of the day, Facebook is on the road to becoming a 'public' company, and they
are making choices which are in Facebook's interest (mostly about the whole
Open Graph stuff which they will sell for money to advertisers for revenue.

The 'good' Facebook you are looking for has to charge its users for accounts
because that is the only way to pay the bills without selling you off to less
purient interests.

[1] <https://en.wikipedia.org/wiki/Gaslighting> (warning Wikipedia link)

~~~
redthrowaway
>(warning Wikipedia link)

What's the warning for? If it's warning against being confronted with Jimbo's
piercing gaze, that seems a bit snarky.

~~~
saturdayplace
I took it as a warning that you're about to click a link that has a high
potential of sending you down a rat hole that eventually ends up on the
Philosophy article.

------
tlrobinson
I'm usually pretty tolerant of Facebook's more aggressive initiatives, but
I've started blocking all of the "frictionless sharing" apps. The user
interface they present is ridiculous.

1\. I see a friend read an article that looks interesting. I click it.

2\. Every time I click one of these I'm asked to _add the application_ before
I'm allowed to view the link.

3\. My options are "ok" and "cancel". The first few times I assumed I couldn't
read the article without clicking ok so I just hit the back button. It turns
out "cancel" really means "don't add the app, just take me to the link".

Without that confirmation dialog (which most people probably blindly click
through) this is exactly how social media worms work.

Perhaps alert users will click "cancel" the first 5 or 10 times, but
eventually they're going to accidentally click "ok" or just give in. Not cool.

Plus, why would I want to see articles that friends read, but didn't think
were worthy of manually posting about in the first place?

~~~
shaver
Yes, you should block apps that you don't want to see. They are (per your
reasonable definition) badly behaved, and you should exclude them from your
stream. I think that's exactly the behaviour that FB would want, because it
ties the utility/economics of those apps to the quality of their user-
experience.

(Disclosure: I start at FB next week, though I don't have any inside info on
this.)

~~~
tlrobinson
It's an ok solution for me, but unfortunately I think most users will just
click "ok" so they can see their friend's link without realizing what they're
actually agreeing to.

I think that's what Facebook wants: "making the world more open and
connected"... at all costs. They're constantly pushing the limit of what level
of openness users will accept. It's going to backfire.

------
paganel
If you believe FB is out-there trying to conquer and destroy the web then
please don't use FB comments on your website.

~~~
marshray
Or just don't use FB.

Everything I read about it just makes me happier that I don't.

------
mnutt
Regarding "Web sites are deemed unsafe, even if Facebook monitors them",
wouldn't it be worse if Facebook deemed websites that it monitored 'safe'?
Then Facebook would be saying: "use Facebook services on your site, or we'll
scare all of your users with an interstitial message"

~~~
notahacker
This is true. I presume a preferred option would be dumping the warnings
altogether, but this would be a big boon for phishers.

What I don't like about the article is the suggestion that the best way of
combating Facebook's excessively paranoid and usually unwarranted warnings
about offsite content is to show excessively paranoid warnings to people
trying to get into Facebook. Particularly when one of the principal gateways
to Facebook is the browsers and websites operated by Google - not exactly a
disinterested third party.

~~~
ajross
Why would it be a boon to phishers? Existing solutions for phishing/malware
blacklisting are mature and quite well supported. There's lost of competition
in the market, and they work quite well overall. It's not like Facebook
couldn't just buy one of these for decent coverage.

The point is that putting up what amounts to a false negative malware warning
on basically every "minor" link on facebook (I know it's not really a false
negative, but that's how it's perceived) is just terrible overkill for the
problem, and a terrible experience for the users.

That it survives _at all_ leads one to wonder seriously about facebook's
intentions.

------
droithomme
People who use Facebook are silly people. No this is not a flame, it's AOL all
over again. The walled garden, except the garden is a dystopian big brother
state.

I don't mind people being in the dystopia of their own choosing at all. I
enjoy going for walks outside the cyberdome. It's quiet and peaceful out here
and people are not monitoring and trying to manipulate and control me.

Those who enjoy being a cog in a machine I am sure lead happy fulfilling lives
inside The Facebook.

~~~
thom
You know, the dystopia in which I'm forced to share pictures of my newborn son
with my family, and talk to friends on the other side of the country that I
haven't seen for months, is better than pretty much any other dystopia I can
imagine.

~~~
VladRussian
>the dystopia in which I'm forced to share pictures of my newborn son with my
family, and talk to friends on the other side of the country that I haven't
seen for months

the things impossible without Facebook :)

The main thing that Facebbok does isn't [technically] enabling some specific
communications in some specific space, the main thing is that Facebook puts
people into that space, bumps them one into another and thus
forcing/making/nudging/tempting to perform act of communication that otherwise
may not have happened. Facebook makes [helps to unleash] one a social beast.

Vs. the force in dystopias, in the Facebook case we have dopamine generating
activities grounded in the Facebook environment. While they can be replaced by
dopamine generating activities in other environments [ i enjoy mine here on HN
for example ], why would a social dopamine addicted beast that gets it fix on-
schedule bother?

~~~
thom
I guess I just haven't met these Facebook victims - vegetables chained to
their computers, grinning and drooling as they click reflexively on adverts
all day, unaware that they could be outside, surrounded by swarms of
butterflies and running with wild horses in the warmth of the Summer sun.

Mostly it's just a website.

------
natrius
Point 3 ("WEB SITES ARE DEEMED UNSAFE, EVEN IF FACEBOOK MONITORS THEM") has
been addressed. Here are the other two.

 _"YOU CANNOT BRING YOUR CONTENT IN TO FACEBOOK"_

False. Facebook's API allows all sorts of external content to enter Facebook.
They're just shutting down their app that does that automatically. There are
plenty of third party apps that already solve this problem.

 _"PUBLISHERS WHOSE CONTENT IS CAPTIVE ARE PRIVILEGED"_

False. The Washington Post has chosen to embed their stories within the
Facebook canvas pages, but that's not a requirement. The other popular news
sites on Facebook, The Guardian and Yahoo, do not do this.

This entire post is woefully misinformed.

~~~
ricardobeat
Thanks Dewey.

------
ck2
The only thing that will "fix" facebook is the next thing to popup to diminish
their influence.

Of course shooting themselves in the foot wouldn't hurt either.

Remember MySpace? How about Digg?

~~~
1010010111
Exactly.

It is only when the annoyance levels reach a breaking point that the FB
alternatives will be made as user-friendly as FB and brought to the attention
of the masses. One will emerge as dominant. And the cycle begins again.

Every itch gets properly scratched, eventually.

~~~
ck2
There's also the "fad" and "uncool" factor.

When everyone's mom and dad (and their mom and dad) is also on facebook, it's
going to slowly start losing it's edginess.

Then the next "cool" site will emerge.

~~~
reinhardt
I put more hope to the "uncoolness" factor rather than the privacy and
security concerns to drive FB's demise.

~~~
101001010111
I see them as the same. It may take some years for non-nerds to see the
"uncoolness" of FB, but I believe they will see it, in time.

------
aj700
I am no great fan of facebook. The timeline sucks.

I think the warnings fb use are necessary, there's so many worms and spam wall
postings. You can debate the wording and motive. Many users need paternalism.

You can AUTOMATICALLY have posterous post a link on your wall every time you
write a blog post. It doesn't use the notes system at all. It sounds like fb
are stopping people using notes for something they weren't designed for.

If he's saying every dumb aol/xp/ie6 user will be too scared to ever leave fb
for the rest of the web, wouldn't that be the end of the Eternal September,
which some would welcome?

------
anildash
Apologies for the server flakiness; Trying to address it now. Please feel free
to repost/share -- everything is CC licensed.

------
tawm
Google cache:
[http://webcache.googleusercontent.com/search?q=cache%3Adashe...](http://webcache.googleusercontent.com/search?q=cache%3Adashes.com%2Fanil%2F2011%2F11%2Ffacebook-
is-gaslighting-the-web.html)

~~~
Semiapies
If that doesn't come up, the text-only link works for me:

[http://webcache.googleusercontent.com/search?q=cache:dashes....](http://webcache.googleusercontent.com/search?q=cache:dashes.com/anil/2011/11/facebook-
is-gaslighting-the-web.html&hl=en&strip=1)

------
steve8918
This sounds pretty similar to the complaints from SEO gamers whenever Google
changes their algorithms and removes them from the top ranks for a search. I
don't agree that any of the examples used by the author is anything
particularly harmful.

------
nomdeplume
I applaud the author's use of detailed documentation and the ability and
willingness to dig deeper into the technical side of what he believes to be
the problem. As soon as I had installed the Firefox addon Noscript I began to
notice the facebook scripts put in place on many sites having nothing to do
with Facebook. Their real interest is not in being nice by providing you with
a free service, but in using data aggregated by its large user base in order
to find patterns - and to sell that information to the highest bidder. Pretty
soon advertisers and governments will know more about you than you do
yourself.

~~~
jerhewet
The Ghostery plus RequestPolicy addins. Don't leave home without 'em.

------
derekreed
I agree completely.

Well thought out and sound reasoning.

And the effort is probably hopeless, but maybe it will at least draw some
attention to facebook's abhorrent practices. But they get plenty of negative
press already, doesn't seem to slow them down.

I figure it's going to take a lot more efforts like this, to stop the abuses
when portals gain monopoly power on user's attention.

User's will put up with it, (and probably put up with much worse), there is no
alternative to facebook for what facebook does and is. Chickens and eggs ...

------
bsimpson
Good luck with that. Imagine all the YouTube-quality comments that would flood
crbug:

        PLZ FIX TEH FACEBOOK LOGIN SCREEN!!

We can have discussions all we like about whether or not Facebook is a net-
positive or a net-negative for the Web, but there's no way Google, Microsoft,
or Apple is going to blacklist them.

~~~
carols10cents
Exactly! I hate to say this because it makes me sound like a tech elitist, but
some people really do need those warnings because they can't tell what website
they're on.

See the ReadWriteWeb article that had to put a big "this is not Facebook"
notice on it.

------
mark_l_watson
I like to login to FB for several minutes once or twice a week - a quick way
to see what some friends are doing. However, I logout as soon as I am done. I
also went through and disabled all FB apps, except for my own test app.

Given these simple precautions, is there really anything wrong with FB? Am I
missing something?

~~~
MBlume
_If_ you think that people less prudent than you should be "protected" from
Facebook, then your participation may be harmful to them because it's part of
what encourages them to participate.

------
iamandrus
The only way to stop Facebook is to protest and boycott it. It worked in 2006
and 2007 (News Feed and Beacon, but Beacon might have been 2008) and it'll
work again.

~~~
billybob
I agree with your first sentence. Whether it worked in the past is arguable,
since they continue to do slimy things. But one thing is sure: they can't
abuse your data if you don't give it to them.

~~~
Karunamon
.. and that it's not "abuse" if you know what they're doing with it and expect
it.

Don't share anything on Facebook that you wouldn't want to see on the news the
next morning. Simple and easy.

~~~
iamandrus
That sounds simple and easy but for today's teens there's no limit. I know
people who have gotten expelled from private schools for posting stupid things
on Facebook. It's a disturbingly common occurrence. It's not Facebook's fault
obviously, but for kids, dangers about "oversharing" go in one ear and out the
other.

------
mikeklaas
Aside: I really like the typography of your title/subheads. I mistook the font
for Gill Sans Light initially, though.

------
bct
Disappointing. "We can beg other powers to intervene" is not "we can fix it".

------
chimeracoder
How ironic that this blog's own comment system relies on Facebook.

~~~
anildash
It's not ironic, it's deliberate. I want to make sure I'm making informed
criticisms of Facebook based on actual usage of the service as both an
individual user and as a publisher.

~~~
jlujan
Been a reader of your blog for a while now, and enjoy your insight. I do feel
that chimeracoder's criticism is valid, regardless of your argument of
establishing objectivity through participation. As a reader, the inclusion of
Facebook Connect and Comments really detracts from the credibility, err.
sincerity, of your article.

"toolbar that helps you shop online more effectively but neglects to mention
that it will send a list of everything you buy online to the company that
provides the toolbar."

What about a website that injects its content on every website you visit,
regardless of your willingness to participate as a user? Or tracks every visit
regardless of your willingness to participate?

Exhibit A: [http://mashable.com/2011/11/17/facebook-reveals-its-user-
tra...](http://mashable.com/2011/11/17/facebook-reveals-its-user-tracking-
secrets/)

There is no terms of service or privacy statement on your site disclosing that
you are effectively sharing my activity with Facebook. By the way, I opt-out
through the disconnect and Ghostery Chrome extensions, so your site has no
comment system... just a Comments heading.

"Facebook has moved from merely being a walled garden into openly attacking
its users' ability and willingness to navigate the rest of the web."

As the website operator that uses Facebook Connect, you are signaling to
Facebook that you are OK with their current strategy to exist on every page on
the internet and dictate the way content should be shared. You cannot complain
that they are getting rid of the ability to automatically share your blog
content in facebook when they have given you the ability to incorporate all
the same functionality directly on your page. It is a genius move on their
part. They no longer have to worry about users visiting facebook less over
time if they are on every other page the user might visit.

------
royaltenenbaum
The walls are closing in on Facebook. It's only a matter of time for it's
business model. People eventually wake up. Better squeeze that IPO for all
it's worth.


Solving the Problem of Enterprise Software Customizations - dshah
http://blog.assembla.com/assemblablog/tabid/12618/bid/3890/Solving-the-Problem-of-Enterprise-Software-Customizations.aspx
======
bdfh42
OK, I can see that this post suggests a "solution" that solves some of the
problems faced by the main development team although I suspect that it does
not really solve the issue of having to meet the needs of a specific corporate
customer at a specfied date - it just translates feature requests into API
enhancement requests.

Plus almost nothing solves the problem of long term complexity where new
enhancements (or bug fixes) break existing functionality that is effectively
unknown to the development team. If you don't know what your customers are
dong with your software then you can't protect their subset of the software
functionality.


Show HN: Hacker News as an Event Stream - todsacerdoti
https://pipedream.com/sources/new?app=hacker-news
======
summitsummit
incredibly cool. im inclined to simplify a lot of my heroku services to a
couple workflows here but have the following concerns

* proven data privacy and security

* longevity of this project

* pricing model (free seems unsustainable and suspect)

* daily quotas (30mins seems like it will change)

~~~
dylburger
Hi, Pipedream co-founder and engineer here. Thank you for noting the concerns.
Some questions / thoughts below:

* Would technical docs on our privacy and security practices help? e.g. how we use AWS, specific security controls, automatic data deletion policies?

* Yes, the product is still in beta but maturing quickly. Happy to answer any specific questions where you think lack of longevity will be an issue for you.

* Paid plans for individual developers, teams, and enterprises are coming soon. We started with a free tier to encourage experimentation and solicit feedback while the product is in beta. This has worked well, but lack of pricing is one of the top pieces of feedback - I hear you clearly on the concern.

* We've raised the quota for early users who need that added time, and we're happy to do it if you expect you'll need that for your workflows. In general, we expect the 30 min daily quota to stay that way for users of the free tier. You'd then be able to pay for additional time.

Let me know if that helps and reach out to dylan [at] pipedream [dot] com
anytime.


Show HN: BemTV – Hybrid CDN/P2P Architecture for HLS Broadcasts - flavioribeiro
http://blog.flavioribeiro.com/bemtv-hls-p2p-webrtc/
======
okal
Great work. I'm always excited by attempts to marry the centralized nature of
the web with all we've learnt about P2P. Best of both worlds. Just gave it a
try. The video was a bit choppy for me, on a ~3Mbps connection, but I'd like
to see how it works with a larger swarm (it's remained fairly stable at 8).
I'll take some time to look at the code, too, though it's likely beyond my
immediate grasp :)

~~~
flavioribeiro
thank you! I still need to calibrate when a peer gives up to receive by p2p
and goes to CDN, but it seems it's working for some swarms with low RTT.
Regarding the code, I bet you'll not have problems to understand but feel free
to ask me anything you want.

------
CaveTech
I hate the fact that as a Canadian, I can't really support any video streaming
services relying on P2P simply due to our archaic bandwidth restrictions.

Most Canadian ISPs have combined Up/Down Bandwidth Caps, which are already
insanely easy to hit with any sort of media streaming (they usually range from
40-80 GB/mo). Peering any of these services is only going to make matters
worse.

~~~
guiomie
They offer unlimited data plans for internet. And it isn't archaic (unless you
live outside a city).

~~~
CaveTech
Not on any major providers, at least in Ontario. Bell, Rogers, Cogeco are all
definitely metered and limited (for all reasonable price ranges at least, $90+
for unlimited bandwidth is not reasonable compared to prices in other
countries).

~~~
jmreid
But in most of the services areas where you can get Bell or Rogers, you can
get one of the 3rd party providers like Start or Teksavvy. These providers
have an unmetered upstream cap and very generous downstream caps.

~~~
robert_foss
A download cap of 300Gb on a 150Mpbs link is hardly generous, which is what
Teksavvy offers in Ontario.

It's a joke. And the only reason is to make you pay for the more expensive
connection. Maybe also to hand you additional charges.

------
flavioribeiro
Since some people asked for, I just released a small step-by-step guide on how
to deploy BemTV on your transmissions: [https://github.com/bemtv/bemtv#how-to-
use-it-on-my-own-hls-t...](https://github.com/bemtv/bemtv#how-to-use-it-on-my-
own-hls-transmission)

------
fiatjaf
Project's page with a live demo: [http://bem.tv/](http://bem.tv/)

~~~
dublinben
This doesn't seem to work without Flash. I'm a little disappointed.

~~~
flavioribeiro
hey dublinben, thank you for your comment. Since the browsers do not support
HLS by default, it is needed to use Flash for it. I'm planning to bootstrap a
version with DASH support (probably using dash.js) dropping the need of Flash.

------
shacharz
Awesome work Flavio! Hope to integrate with Peer5 soon.
[https://github.com/Peer5/bemtv](https://github.com/Peer5/bemtv)
[https://github.com/Peer5/P2PXHR](https://github.com/Peer5/P2PXHR)

------
warcode
A service that I pay for or that shows me ads does not get to also steal my
upload for P2P.

Especially if they do it without even telling me.

~~~
rglullis
Right, because the only costs associated with any content service are due to
distribution. Producing said content is free, right?

------
bussiere
Hum very interesting.

The adult video sector will be very interested ... The bandwith is a mjaor
problem there.

And professionnal streamer too.

Regards

------
fiatjaf
Maybe Google Hangouts should be interested in this.

~~~
flavioribeiro
hey fiatjaf. Actually, Google is already using WebRTC on Hangouts:
[http://www.webrtcworld.com/topics/webrtc-
world/articles/3584...](http://www.webrtcworld.com/topics/webrtc-
world/articles/358421-hangouts-move-toward-webrtc-with-hd-calling-among.htm)

------
higherpurpose
This is what Netflix and the like need to use, too.

------
dreampeppers99
Twitch.tv should use it too!


Google+ cannot be used with customer or brand accounts anymore - anticensor
https://plus.google.com/
======
neic
ArchiveTeam did manage to scrape ~98.6% of the user profiles before it went
down. It was around 16 hours from completion when Google pulled the plug.

It was done with the distributed scraper 'Warrior' using a massive amount of
small cloud instances to spread the load to 1000s of IP adresses. The dataset
is ~1.45 PB.

[http://tracker.archiveteam.org/googleplus/](http://tracker.archiveteam.org/googleplus/)

~~~
orev
I really wonder what is so valuable about saving everything on the Internet.
For all of human history until now, every little human interaction was
fleeting and only meant something to the people involved. Things that were
significant were preserved when the people involved decided they were
important. Now we are trying to keep every one of those insignificant things,
for what purpose? Training an AI is all I can think of.

~~~
est31
> Now we are trying to keep every one of those insignificant things, for what
> purpose?

What seems unimportant and insignificant to us now might become very
interesting in the future. People in the future might consider the arrival of
the internet as the beginning of a new age. Furthermore, some things may seem
obvious to a person born in our times, but might not be obvious to people born
in the future.

So many works, including even movies from the 20th century are lost now. E.g.
the original version of Metropolis used during its premiere screening.
Diogenes wasn't just a guy living in the town square, he also created some
written works. They are lost now.

~~~
sephoric
I had room fulls of boxes of things that I thought might one day be important,
or significant to someone. Then I realized, when I die, all those things are
just going to be thrown away or donated to a thrift store, and it's highly
unlikely that anyone who buys any of that will find the same value in it that
I thought it had. If I have created anything truly timeless and worthwhile,
then it had better be something I created for a client and got paid for
making, otherwise it's just going to probably end up in a garbage heap. So I
made a decision to get rid of all of it. Time is too short to be held down by
the (truly) endless possibilities of "what if" this or that thing ends up
being useful to someone in the future.

~~~
est31
Yeah, keeping physical things around does only make sense if it is actually
valuable to someone. Archives only accept objects actually worthwhile of
keeping. But it's different for digital content, as it's so much easier to
store. At least for now.

Also, Archaeologists _love_ the garbage dumps and cesspits of old towns,
literally the places where people put their least valuable things, because
they weren't raided by earlier visitors and they can derive so much info about
it. And it's nicely stratified so it gives some rough chronology.

~~~
Traster
Another way to look at this is that the more you store, the more difficult it
is for people to actually find the valuable parts of what you've stored. One
of the fascinating aspects of the internet is that our internet lives diverge
so thoroughly from our offline lives - so the data we're leaving for the
future is arguably horribly unrepresentative.

~~~
est31
> difficult it is for people to actually find the valuable parts

That's why you need to catalog stuff.

And if you have stored something, you can always get rid of it if you deem it
to be unimportant, but if you haven't stored it, most times you can't get it
back. Erring on the side of storing unimportant things is an important
strategy to cope with that.

------
cydonian_monk
And the shutdown seems to be fuzzy, because I can still post to Google+, +1
things, and presumably do other usual G+ things despite it telling me it's
shutdown. Now I'm only occasionally reloading to watch my follower count drop
as things get deleted.

I still feel the early variant of + with the original implementation of
Circles (back in 2012) was one of the most useful takes on social sharing I've
come across. And it worked especially well for photographers. Once they moved
everybody to Collections I stopped using it with any regularity, and stuck
mostly to groups/Communities. Hitching YouTube to it was basically the last
straw. When I made a farewell post last month it had been about four years
since my previous completely-Public post.

The platform had flaws, and I'm a bit sad to see it go, but I won't
particularly miss it.

Cheers,

------
obelos
Though I suppose I've gotten accustomed to using double quotes to specify
mandatory search terms, perhaps we can get back the `+foo` search syntax that
was so unceremoniously taken from us and reappropriated for Google+?

------
ocdtrekkie
My Google+ notifications were more active than they have been in months as
everyone was checking in to see how much longer was left. Google didn't
specify the time of the shutdown, just "sometime on April 2nd", so none of us
were sure when the cutoff would be. Middle of the day, as it turns out.

~~~
anticensor
Yes, the last day was probably the most active period of Google+.

------
joeblau
The title should say: Google plus cannot be used.

~~~
anticensor
G Suite and Google internal accounts still work.

------
CrankyBear
I'm going to miss it. A lot.

------
orblivion
"Looks like you've reached the end"

------
dredmorbius
When Google first announced its plans to shut down G+, originally slated for
August 2019, a few of us started looking at the question of helping people and
communities (in both the technical "G+ Community", and the social "community
of people" senses) keep intact.

For all the ribbing G+ gets, the problem is a big one. And it's not one that's
specific to Google+. As the regular parade of shut-down announcements of
services and firms on HN attests, online mediated services can be cancelled,
often quite abruptly. And there's often very little notice.

The world of social media sites is likely to go through more shakeups, for
various reasons (and there are a number of sites presently looking pretty
shaky), while the options for alternative provisioning of similar services
(and the question of whether what we now call "social media" really _is_ a net
positive or something people want, need, or even should use) either personally
or at a more local scale (though through what institutions isn't entirely
clear) is a possibility. Projects such as IndieWeb, the POSSE initiative
("post on (your own) server, syndicate elsewhere"), federated protocols, IPFS,
DAT, Beaker browser, and more (I've been discovering a lot in the past six
months) may break us out of the current proprietary silo model.

Or not. The technical landscape is confusing, technical skills are limited,
and the risks of DiY hosting can be large. It's a difficult trade-off. Though
it's one I'd like to explore.

There are huge changes that have and will be happening on the regulatory
front, from privacy to copyright to liability to propaganda and
disinformation, and far more. Some of these laws and regulation seem written
with self-service in mind, many do not. That's a whole 'nother field.

(I've got a To-Do item to get ahold of the EFF on these questions, as well as
other groups.)

And then there's the whole fact that the tech world is in the midst of a (very
well deserved IMO) backlash for its cavalier attitudes abuses and outright
harm inflicted on both individuals and society as a whole. The promise of the
1990s has _not_ been delivered.

Back to the group: we looked at the problem of migrating, realised there were
many different users and groups, with different interests, and a wide range of
technical abilities, from top-tier Linux kernel hackers (Alan Cox) to none at
all. Some are best served by commercial solutions, for now, but many can look
at federated or self-service options. We put together FAQs and Wikis and
discussion forums and gathered a lot of data (we seem to have the best
information outside Google on the actual size and scope of G+ users, data, and
communities), and more. All inside six months.

It's been a group effort, and a lot of people contributed. I need to dig
through my G+ archives to find the thank yous I'd posted earlier today, but
it's substantial, and _that_ was only a partial list.

What I hope is that others can use and be helped by what we've done.

The wiki is
[https://social.antefriguserat.de](https://social.antefriguserat.de) and
there's a subreddit at
[https://old.reddit.com/r/plexodus](https://old.reddit.com/r/plexodus) Both
will continue to be active over coming months, we're only part-way through the
process, and still need to establish ourselves in our new spaces.


Shutting Down a Service with 500M Requests per Month - danielamitay
http://danielamitay.com/blog/2015/5/29/shutting-down-a-500mm-requestsmonth-api
======
strommen
> your app uses public APIs in a manner not prescribed by Apple

What an enraging way to phrase this. I understand Apple's desire to shut this
down, but they make their contempt for app developers obvious at every
possible turn.

~~~
killface
That seems like an incredibly petty way to view it.

Apple's not out to get you. In fact, I'm glad they did this. That iHasApp
looks creepy as hell, and it pisses me off that other devs were using it to
basically spy on me. It reduces my trust in all apps.

~~~
strommen
To be clear - I have no problem with this service getting shut down, as it's
clearly intended to violate the user's privacy. But to say you must use APIs
as "prescribed" by Apple is way too broad and subjective.

I'm sure the iOS developer Terms of Service forbids this at some level. If
not, then update it. Then say you're shutting this down because it violates
the TOS.

~~~
ceejayoz
That's a good way to get a million page TOS.

[https://developer.apple.com/app-
store/review/guidelines/](https://developer.apple.com/app-
store/review/guidelines/)

> We will reject Apps for any content or behavior that we believe is over the
> line. What line, you ask? Well, as a Supreme Court Justice once said, "I'll
> know it when I see it". And we think that you will also know it when you
> cross it.

------
sergiotapia
So why is this kosher?
[https://support.twitter.com/articles/20172069](https://support.twitter.com/articles/20172069)

~~~
x0x0
one guess

       We will notify you about this feature being turned on for your account by
       showing a prompt letting you know that to help tailor your experience,
       Twitter uses the apps on your device. Until you see this prompt, this
       setting is turned off and we are not collecting a list of your apps. If you
       do not see Tailor Twitter based on my apps in your account settings, app
       graph collection is not occurring for your account.

So it's opt-in with a default of off.

second, some partners are more equal than others...

------
rounak
Twitter and Facebook also have similar solutions. Have they been shut down
too?

~~~
ceejayoz
Twitter and Facebook have extensive OS level integrations put together by
Apple.

------
ianstallings
_The obvious lesson is that you shouldn 't build a service that skirts right
on the edge of "Apple definitely won't like this."_

Well at least you kept your sense of humor about it all. It will probably help
your chances at employment (or investment of your own business) going forward.
Nothing wrong with pushing the barriers a little bit.

------
ascendantlogic
I want to be outraged on your behalf over this but I can't really summon it
forth. While I understand the ever-present engineer desire to "see if it can
be done", no good can really come from this sort of service in my opinion. I
guess chalk it up to an interesting technical exercise and that's it.

------
hellameta
It's a shame you had to bring this down but it looks like you saw it coming
and enjoyed the ride. I think the posts that characterize you as unethical are
just not willing to cope with the disillusion that technology is a two sided
coin. The information was there and you used it. I commend you on seizing on
the opportunity and wish you best of luck in the future.

~~~
npizzolato
Sorry, no. Technology is a two sided coin, mostly unable to be ethical or
unethical. The _people_ using technology, however, are surely able to fall
somewhere in the spectrum. The OP is using this technology for (imo obviously)
unethical reasons and is capable of being judged by that decision.

~~~
hellameta
Well I certainly don't disagree that he's capable of being judged. And you're
right - it's simply my opinion that what he did was not unethical.

------
shiv86
Thanks for sharing. Must be tough. But Iam sure you'll move onto bigger and
better things in the future.

------
throwaway34234
You are an unethical person. I'm pleasantly surprised Apple shut this down.

~~~
coreyoconnor
I am ignorant of what iHasApp means in terms of users. Much less the ethics of
it all. Why is what iHasApp did considered unethical?

~~~
nilliams
Presumably parent is offended by the privacy violation. It allows developer of
app A to know I have app B installed, which can be used to target adds etc.

~~~
petercooper
While unlikely, it could be used for worse. Let's say a local or niche
publication has an app and can detect if any of its subscribers are also using
Grindr, Tinder, or some sort of app that signifies, to them, some cardinal sin
on the part of the subscriber. That could be used to blackmail/shame/harass
people.

------
mherdeg
Huh, how does this service's behavior differ from what the Twitter App Graph
does?

------
x3n0ph3n3
Why do people continue to use MM for "million", especially outside of the
context of money?

~~~
nostromo
M is often used to mean 1,000 from the Roman Numeral, so using it to mean "one
million" is confusing.

It's not just finance, but in other contexts too, such as online marketing CPM
= Cost Per Thousand.

MM then is used to denote a thousand thousands, or one million. In online
marketing sometimes you'll see CPMM = Cost Per Million.

~~~
sebastianavina
k is used for 1000, M for millions... damn americans.

~~~
killface
blame the brits, not the americans.

~~~
psykovsky
Can we just blame one person instead of an entire country?

~~~
nkozyra
Blame Todd. Todd did this to us.


Unpaid Interns: Real World Work Or Just Free Labor? - ALee
http://www.npr.org/2011/11/16/142224360/unpaid-interns-real-world-work-or-just-free-labor
======
tokenadult
Here's an excellent job-market signal for college students to check: if an
internship is unpaid, bail out of that occupation. Students pursuing
worthwhile majors and learning skills that are truly in demand should be able
to obtain PAID internships with a routine expectation that successful interns
will be offered full-time employment at the same company, as my oldest son did
last summer.


The World Would Be a Better Place if Everyone Was a Hacker - b14ck
http://rdegges.com/the-world-would-be-a-better-place-if-everyone
======
wallflower
Not everyone is a hacker.

I see this in some of my co-workers who only code for a living, not for a
passion. They go home to their TVs and Netflix and raise their families. They
could care less about Hacker News and the signal/noise ratio of the content.

I see this nowadays - people just expect things to work - my niece (under 6
yrs of age) will go to photo frames and swipe across them, expecting something
to happen. From a very early age, she expects touch screen interfaces.

I see this in my parents when I have to do technical support (they refuse to
move from Windows - Go Microsoft!) - and have to explain to them that a
computer operating system is a dynamic system and, yes, the printer will stop
working- just because it worked yesterday doesn't mean it will work today.

When I try explaining to my dad the process for fixing something on the
computer, he just doesn't want to do it or can't. He wants a step by step by
step process. But I can't give it to him. Because the process is finding out
the process.

Isn't that what hacking is?

I would argue, based on a non-scientific sample of some of my friends talking
about TV shows they watch and the restaurant food they go to, that the world
is divided into producers and consumers. The catch here is that everyone is a
producer and everyone is a consumer.

Pre-digital distribution, it was very hard for someone to produce at scale
(the Gutenberg press revolutionized information access - previously books were
_hand-copied_ , a process taking months if not years).

Now, with digital distribution, people who can produce works that can be
copied (sometimes illegally, to detriment of the author's profit) can make a
profit off their creativity and hard work. They can produce at scale
(software, CDs). Mozart died broke because he lived in an age before
distribution, before he could reach an audience that would appreciate and pay
- concerts were the only means of distribution - couldn't load his tunes on
your iPod.

As hackers, we can produce something that can be copied digitally and
distributed digitally. From Youtube Instant search to TwitterVision - people
can consume (even if just for free) - what we can hack. Hacking isn't always
fun though - it's not easy (my dad, potential CS students who drop out because
it isn't as easy as they thought) which is a subject for another time.

I'm a hacker - though not a great one - I love being able to modify and create
things. To create is to live, for me.

~~~
rytis
> I see this in some of my co-workers who only code for a living, not for a
> passion. They go home to their TVs and Netflix and raise their families.

Especially this one:

> ... and raise their families.

You think being a coder and raising a family is oxymoron? Or rather not being
a 'passionate' coder is a bad thing? Or even being a hacker for 8 hours a day
is the same as not being a hacker at all?

Trust me, raising a family (if done properly) involves a hell of a lot more
'hacking' than saving 8ms on some random SQL query...

~~~
mbesto
In both cases it's the act of creation, they're just manifested differently.
Hacker's enjoy their creation because they feel like stretch the limit of
their intellect. Creating a family (IMHO) is both as equally, if not more,
challenging.

~~~
wallflower
You are both right. Somehow raising a family seems to be more than hacking,
though, it is the meaning of life.

------
moocow01
If only life was so simple. Most problems are not so one-dimensional. Problems
in life are typically not math problems - they usually are complex situations
with multiple solutions that have numerous impacts with degrees of good and
bad.

For example, we would all like our roads well paved at all times but you'd
also have to take into consideration the environmental impacts of upping the
frequency of putting tar on all of our roads across society. On top of it
you'd most likely have higher incidences of road worker deaths. etc. etc.

I'd agree that we need more people attempting to solve problems and that there
are many things that could be vastly improved -- but I think the dynamics of
true social problems are somewhat misrepresented in the article.

~~~
gaius
_Problems in life are typically not math problems - they usually are complex
situations with multiple solutions that have numerous impacts with degrees of
good and bad._

Like maths problems.

------
_Y_
I'd like slightly disagree. I do think more people needs to be analytical but
without empathy and morality all hacker qualities would be rendered
meaningless and pointless.

As a hacker without empathic skills I could pick any goal and ruthlessly
implement it: Goal: Need more organ donors 1\. People are unwilling to donate
organs 2\. Force all prisoners on death row to give away they organs for
staying in death row accommodation 3\. Kill them in ways that doesn't hurt the
organs (they might suffer some inconvenience) 4\. Harvest organs

As Charlie Chaplin in Great Dictator said: "More than machinery we need
humanity, more than cleverness we need kindness and gentleness, without these
qualities life would be violent and all would be lost."

~~~
tikhonj
I don't think "empathy" and "morality" are fundamentally required; rather,
they are convenient heuristics for interacting with other humans. As long as
you are rational, then acting without empathy or morals would still result in
similar behavior (depending on how "smart" and well-informed you are, I
guess).

A rational agent seeks to maximize utility. It turns out that murdering people
for their organs _does not_ maximize utility! At the very least, society is
cleverly structured in a way that the probable utility of murdering somebody
for their organs is relatively low.

Basically, my point is that your argument is a straw man. The issue isn't too
much logic but rather than you (the agent killing everybody in the example)
did not use _enough_ of it. For some reason, all the "arguments" about the
inferiority of logic always assume the logical person is extremely short-
sighted or ill-informed.

~~~
_Y_
You can call it a heuristic or a guideline, but I consider them essential.
Perfectly rational agents without empathy can commits massive acts of evil
trying to achieve their goal. Or as the proverb says "Road to hell is paved
with good intentions".

And I don't think short-sightedness or ill-informing was ever an integral part
with arguing about how empathy is essential to human live. IIRC there was an
example of perfectly informed and rational computer of super human
intelligence who was told to calculate a particularly difficult equation, to
which he promptly restructured all matter on earth, including people into a
giant super-computer.

------
henryl
Sorry this deserves dramatic pose. Hackers are not immune from the human
condition. What of the irrational triumphs? Of serendipity and of chance? To
believe all things solvable through logic, science, and engineering is hubris.
Emotions matter. Manipulation matters. Hackers excel at local optimization,
but without the turbulence, the conflict, and the occasional "kick" delivered
by those that think differently, we would face a gradual descent into
extinction.

------
tnuc
The conclusion I come to from some of the points made almost equate to: "To
make everyone a millionaire print more money".

Increasing taxes and the average income really does little in the scheme of
things other than create/abolish a disparity. The talk of money offers no real
solutions, throwing money to fix US education has done next to nothing.

I have been in places where most people had very little money and it was
wonderful, while in some rich places it was anarchy with people living behind
razor wire and armed guards.

There are a lot of books that have been written about how to fix things in
poorer countries. Take a look at William Easterly or if you like Bono try
Jeffrey Sachs. Whatever your politics there is no easy answer. Try reading
some books and see the mess that has been made by people trying to make things
better, and all they've done is make it worse.

------
tagawa
No it wouldn't. Rather than being a monoculture, the world needs more respect
for the differences that naturally exist.

------
clicker
I agree. It is all too natural to accept things as they are--just go with the
flow. The world would benefit having more people take a hard look at systems
and situations we take for granted, call out short comings, and take action to
improve things. The trouble is that hackers are more apt at noticing these
deficiencies than the laymen. How do you encourage this heightened awareness
in everybody? Entrepreneurs have profits and hackers have their curiosity.
What motivations are there for everyone else?

~~~
klez
> What motivations are there for everyone else?

In a worst case scenario, survival.

------
viandante
I believe that's the second part, there is a first part although: realizing
there is a problem. For example, you may not see cancer as a problem and not
try to find a cure as you may see this as a special destiny.

And to help people to realize problems you need to teach them to doubt. And
not only doubting about religion, but also science (didn't Eistein somehow
prove Newton wrong?) and their life choises and everything basicaly.

Who is good at doubting? I believe usually really good scientists or people
that have a grasp of good philosophy (the greeks, Popper, etc.).

So, as it's not even that difficult to learn, I believe the world needs more
(good) philosophy...

------
InclinedPlane
The world would also be a better place if everyone was a police officer, and a
chef, and a plumber, etc. That doesn't necessarily mean it's practical.

------
ulf
> Increase the average income of residents of your community.

Let's aim for raising the median income instead


Advice for incoming CS students - kgosar

For an incoming EECS student this fall interested in programming, software engineering and technology is general, what is the best way to get started in the tech world? How to learn, explore and gain experience in this world?
======
bshef
Whatever project you do, do it small-scale first. Release early, and then
release often. All too often people get started on a myriad of wonderful side
projects, but they are never in a usable state because their initial scopes
are too broad.


Show HN: Windows 95 in the browser - TazeTSchnitzel
http://win95.ajf.me/
======
oxguy3
This is pretty nifty. I rediscovered how much I hate Windows solitaire:
[http://i.imgur.com/a8jbpok.png](http://i.imgur.com/a8jbpok.png)

~~~
TazeTSchnitzel
The three-at-a-time version is frequently unbeatable. However, there's an
option in the settings to let you flip through the deck one-at-a-time, which
makes it always beatable.

Klondike Solitaire, or at least Microsoft's implementation of it, is fatally
flawed. A shame, it can be fun sometimes.

------
fiatjaf
It isn't starting here. Maybe the download hasn't complete, but it says it
has.

~~~
TazeTSchnitzel
There's a 47MB disk image it has to download. That's after the "All downloads
are complete" message, unfortunately.

------
patrickfl
awesome...except it froze my entire PC (i74640k, 16GB, SSD) Firefox, Windows
10

~~~
TazeTSchnitzel
If a web browser is able to freeze your system, that's rather damning for
Windows 10's stability.

~~~
patrickfl
I can't argue with that, was just giving some feedback in case you wanted to
look into it. Oddly enough, it froze around the time I tried launching IE 3.0
:)

Either way, really impressive software, very well executed.

Edit: happened on Chrome too, froze the tab but not the app. JS Console:

[http://i.imgur.com/jlvX9Gp.jpg](http://i.imgur.com/jlvX9Gp.jpg)

~~~
TazeTSchnitzel
Weird. The emulation has some issues and the emulator will abort in some cases
(like opening IE3.0). But it shouldn't crash the tab.

------
yarper
epic!


Why were mid-century futurist predictions – like flying cars – so wrong? - JacobAldridge
http://www.straightdope.com/columns/read/3188/why-were-midcentury-futurist-predictions-like-flying-cars-so-wrong

======
Gravityloss
What if there was no global warming and oil costed a quarter of current? We
could have a lot more turbine machines for example, including aircraft.


Why The "Star Trek Computer" Will Be Open Source and ALv2 Licensed - mindcrime
http://fogbeam.blogspot.com/2013/05/why-star-trek-computer-will-be-open.html

======
m0nastic
I don't have any kind of knack for predicting things, but I'd argue that it's
at least as likely for the "Star Trek computer" to be what things like Google
Now turn into (which as far as I can tell, isn't open source at all).

I would be very surprised if the aggregation of technology required for this
type of interface doesn't require a company with a lot of services know-how to
champion (I could see Apple, for instance trying to go down that path, but I
don't think they've ever shown any aptitude for online services).

Maybe after someone makes it, a shitty, open-source knockoff will show up; but
I don't think what's laid out in this article is a foregone conclusion.

~~~
mindcrime
_Maybe after someone makes it, a shitty, open-source knockoff will show up;
but I don't think what's laid out in this article is a foregone conclusion._

Perhaps not. But nobody wants to read a headline like:

"Some reasons why I think that it's possible that maybe, just maybe, something
like the Star Trek Computer might come along someday and it might, with some
luck, be open source, and it could be Apache Licensed, but maybe not".

At some point, you have to say _something_ , and while I'm not big on
headlines that are outright "linkbait" if you write stuff, you typically want
people to read and comment on it, so the headline has to be somewhat catchy
and maybe even a little controversial.

The key point here, isn't really the posit that the Star Trek computer _will_
be Open Source and ALv2 licensed, it's that a lot of awesome work is going on
in various semi-related ASF projects right now, some or all of which could
well become part of something like the Star Trek Computer. But, again, that's
too long and wordy for a headline.

~~~
obviouslygreen
So you're suggesting that articles without compelling content should still
have compelling titles?

The goal is certainly to gain readership, but adding controversy to a title on
an article that doesn't contain any isn't a good idea. It's a
misrepresentation of your article, and what extra traffic it does bring you
isn't likely to result in happy new readers.

Some articles just don't appeal to a lot of people because of their content.
That doesn't mean a title that reflects what's in the article is a bad idea;
it just means the author should either have realistic expectations regarding
the exposure their article can reasonably expect, they should be writing
something that _is_ controversial, or they should be writing something else
entirely.

If your goal is to communicate specific information and your title doesn't
reflect it accurately, all you've done is fail at titling your work.

~~~
mindcrime
_So you're suggesting that articles without compelling content should still
have compelling titles?_

Not at all. Obviously this exists on a continuum and is somewhat subjective,
however. I would never advocate posting low quality content with a flat-out
link-baity title like "Learn About Bill Gates and Ada Lovelace's Secret
Lovechild: Mark Zuckerberg" or something. But I think you have to create a
title which is as compelling as you can, while being faithful to the content.

But, as in all cases, there will always be people who agree and some who
disagree about whether you've accomplished that or not.

All I'm getting at is that a headline shouldn't dissemble and be wishy-washy
and say nothing. It's an opinion, that I'm asserting (that the "Star Trek
Computer Will Be..."), but even I won't go quite as far as saying it's "a
foregone conclusion". There is evidence to suggest that such a thing may be
the case, and that's what this post was about.

In this case, I'm perfectly happy with the congruence between the headline and
the content. If others aren't, then I'll be curious to hear their POV on it.

------
mindcrime
On a related note, there are two interesting (older) posts "out there" on "How
to build your own Watson". And while you probably aren't going to win Jeopardy
with your garage built supercomputer, a lot of the basic technologies are out
there to enable you to do some pretty cool stuff.

[http://www.theregister.co.uk/2011/02/21/ibm_watson_qa_system...](http://www.theregister.co.uk/2011/02/21/ibm_watson_qa_system/)

[http://www.forbes.com/sites/tomgroenfeldt/2011/04/14/build-y...](http://www.forbes.com/sites/tomgroenfeldt/2011/04/14/build-
your-own-watson-with-open-source-software/)

~~~
teawithcarl
Thank you.

------
sp332
The Star Trek computer is already here, and it's closed-source and owned by
Google. <https://news.ycombinator.com/item?id=5750148>

~~~
mindcrime
Funny you would mention that... I wrote down the title for this blog post last
night or yesterday sometime, inspired by something (don't remember what,
exactly) then sat down and wrote this piece this morning, without having seen
that post. But it is funny how related they are. I guess it's just something
that's "in the air" right now... some zeitgeist thing or whatever.

That said, this blog post is one of those where I had the seed of it in mind
for at least a year, but "the moment" to actually pull the pieces together and
write it didn't happen... until it did. Why now versus 6 months ago, or a year
ago, or 3 days ago, I could not tell you.

Anyway, there will be - IMO - plenty of room for competition between the Open
Source stuff and the closed-source stuff. I'm just really excited about this
little ecosystem that has formed around the ASF, and some of the cool stuff
that's being worked on.


Software Companies Tech Competency Matrix - ojhaujjwal
https://geshan.com.np/blog/2017/06/software-companies-tech-competency-matrix/
======
rgbrenner
Some of this is just completely wrong. Like the entire row titled code
performance.

Level 4 isn't going around your codebase shaving milliseconds from execution
time.. Level 4 is knowing that not everything needs to be optimized.. In fact,
most code doesn't need to be optimized at all. The only parts that actually
need optimization are those that have been deemed to be too slow (because of
some external reason--ie: effect on users, for ex) or that are on a hot code
path.

I'll go one step further... all new code should be written for clarity only.
Optimized only if necessary.

No one cares if your function thats called once a month takes an extra few
seconds to run.

~~~
sbov
> I'll go one step further... all new code should be written for clarity only.
> Optimized only if necessary.

I'm not saying you do, but many people I run across who have this point of
view do a poor job at measuring the "if necessary" part. You aren't really
prepared to detect it without some form of production performance monitoring,
meaning on the chart, a level of around 2.5. I would say they should probably
change this section of the spreadsheet to emphasize knowledge of performance.

~~~
endorphone
To add to that point, in my experience the laissez faire optimize-later
attitude is often pursued under the notion that you'll just optimize that hot
code path or that single function and everything will be glorious. The best of
both worlds. In reality such implementations are often death by thousands of
cuts, where endemic poor performance makes it impossible to fix without
enormous re-engineering. Where users get delighted when a competitor's product
is just a little bit faster.

This applies at virtually every level. From your web page being just a
_little_ bit faster than a competitor, to the sense of fluidity of an app, to
being able to host a profitable service on a reasonable set of hardware (we've
watched countless Ruby services fold when a trivial system serving a small
number of users needs to be scaled across dozens of machines). Performance is
one aspect that seldom goes without payoff.

~~~
rgbrenner
It's not that simple. Optimization is almost always additional complexity.

So an argument in favor of optimizing whenever and wherever possible, is an
argument in favor of introducing unnecessary complexity.

Optimization isn't free. It has a cost to implement (slowing development) and
another cost whenever the code is read/refactored/extended/etc (also slowing
development time). That second part is incurred by every developer working on
that piece of code now and in the future.

So the danger in unnecessary optimization is both wasted time and slowing of
development, delaying product market fit or making it difficult to respond to
competitors introduction of new features (for example).

What is the more common story: start up died because competitor was slightly
faster; or start up died because they never found product market fit.

~~~
endorphone
I don't disagree with what you wrote, or the spirit of its meanings.

But optimizations in a modern sense seldom means implementing a section in
assembly. In most cases it means a skillful, well-considered use of
appropriate technologies, appropriate algorithms (e.g. a hash table instead of
a simple linked list for a lookup heavy section, appropriate database designs,
etc) and a coherent design.

When you start from day 1 thinking "performance matters", it doesn't and
shouldn't demand any added complexity. But it does demand constant
consideration as implementing requirement.

Of course the counterpoint is that of course we should use appropriate
technologies, algos, designs, etc. Who could argue otherwise? But whenever
I've seen the premature optimization boogeyman appear in a modern context, it
is usually in the context of just such a discussion. A sort of "performance is
a concern for another day".

~~~
rgbrenner
I don't consider appropriate use of algos (where no additional development
cost is incurred), and coherent design to be optimizations.

I'm not sure how to respond to this. You're using a definition I've never
heard before.. this sounds like basic competency being called optimization.

Nothing I've written here should be misconstrued as an argument in favor of
sloppy code.

~~~
endorphone
This is the cycle of every "premature optimization" discussion, ever. Someone
discounts optimization, but when countered with optimizations states that they
aren't actually optimizations.

Your root post states "In fact, most code doesn't need to be optimized at
all". That is de facto meaningless if we go under the assumption that
optimizing itself -- ergo implementing optimally -- doesn't count as
optimizing.

~~~
rgbrenner
You've thrown a lot of stuff under the label of optimization.

Take coherent design. I started off saying everything should be written for
clarity, and having a coherent design is part of that.

A coherent design can mean the code has lower performance than an incoherent
design.

How could this possibly be considered an optimization? An optimization now
includes things that reduce performance?!

Edit: Also "implementing optimally" is not the definition of optimization.
optimal: "best or most favorable." optimize: "rearrange or rewrite (data,
software, etc.) to improve efficiency of retrieval or processing."

~~~
endorphone
I think you should revisit the line in the linked page that you disagreed with
so strongly. It doesn't say "go back and rewrite in assembly", but simply asks
that you develop with performance in mind (with an awareness of the costs of
the choices you are making). Your comment was that performance effectively
doesn't matter, deal with that later.

Optimization in the context of "premature-optimization" doesn't refer to going
back and rewriting code early. It refers to a mental concern about
performance, where there is a very wrong, but persistent and common, attitude
that performance is something you can add later. But in most cases that simply
isn't true, and it's one of the biggest lies in this industry, trotted out
like it's grizzled experience and wisdom when it's the foundation of countless
project failures.

------
andrewvc
Oh, this old chestnut. It keeps coming around again and again and again.

Instead of complaining about this thing point by point I'll just ask a
question. Has anyone taken this self-serious pseudo-quantified thing and tried
to actually put it into practice? Have you found any quantifiable results?

This, TBH, seems like an arbitrary yardstick for insecure people to measure
themselves by IMHO.

------
ChuckMcM
I don't agree with all the levels and their description, but I do think this
is an excellent way for a senior engineering leader to ask themselves "What
can I do to make the engineering team better?"

You'll notice that a lot of the different items are directly under the control
of a VP Eng/Dir Eng role. "Do you insist on code reviews? Yes we do/ No we
don't" etc.

So if you find yourself in such a role, whether you've inherited a "good"
organization or one that needs work, its a good methodology for stepping
through and figuring out what to improve.

------
joshribakoff
So I use custom written scripts to deploy instead of Capistrano. Automatically
I'm a lower level developer according to this chart. And somehow using docker
is objectively better than Capistrano? I disagree. There are pros and cons.
Docker adds complexity and has "setup costs" just because someone uses the
simpler tool doesn't mean they are any less of a developer. If anything it
shows pragmatism and humility

~~~
scaryclam
There's a _lot_ wrong with this article.

The matrix feels really rather cargo-culty to me. If deployment is pushing one
file then use scp. If it's coordinating a world wide fleet of servers, use
something more sophisticated.

I find it funny that we've seen a "You're not Google" article today, and then
this gets posted.

At the end of the day, as long as you've cut out as many manual steps as you
can, without being stupid about it (don't spend two weeks creating an all
singing all dancing deployment pipeline for a microsite that's going away in
three weeks), you should be happy with how you're doing things, regarding
deployment. If that's running scripts, so be it.

~~~
dasmoth
_The matrix feels really rather cargo-culty to me. If deployment is pushing
one file then use scp. If it 's coordinating a world wide fleet of servers,
use something more sophisticated._

Agreed. And critically, if you can stay in a world where scp deployment (or
something comparably simple) is working well, that's a _good thing_.

------
k2xl
I don't know if "competency" is the right word to use.

As the OP points out in the "Assumptions", if you have a company with 5
engineers working on completely different codebases, you may make a conscious
decision to not be at "level 4" code review status. Doesn't mean you are
incompetent it just means you are practical.

A lot of small business operate efficiently by electing to not overly
complexify their development process. So maybe instead of "competency" using a
word like "sophistication" would be better

~~~
CorvusCrypto
The infrastructure one had me chuckle a bit. Just go straight to large
clusters or platform service plans guys. 2ezpz

------
s3nnyy
This is also handy for recruiting.

Stackoverflow includes the famous Joel Spolsky 12-steps-to-better-code list to
its job ads ([https://www.joelonsoftware.com/2000/08/09/the-joel-
test-12-s...](https://www.joelonsoftware.com/2000/08/09/the-joel-
test-12-steps-to-better-code/)). I think it needs an update after 17-years.

This blog post might be something in that direction. I usually do a similar
evaluation when I decide if whether to recruit for a company. (Content
marketing: I am programmer and now I source, assess and hire engineers for
tech firms and startups in Zurich, Switzerland - see
[https://www.coderfit.com](https://www.coderfit.com), and
[https://medium.com/@iwaninzurich/eight-reasons-why-i-
moved-t...](https://medium.com/@iwaninzurich/eight-reasons-why-i-moved-to-
switzerland-to-work-in-it-c7ac18af4f90))

It is rather challenging as different things carry different weight to
different people and there is also the thing that what is good for a big
company, or high-growth startup might not make sense for a web agency that
will stay below 20 people forever.

Nevertheless, I'd be super happy to brainstorm with like-minded people about
what makes a company good from an engineering perspective.

~~~
noir_lord
I just got hired on as developer #1 at a 150 year old company that has until
me depended entirely on outsourced developers (at great expense and you can
imagine what the codebase looks like).

I'm the first developer but not the last so one of the things I'll be doing
will be setting the engineering standards going forwards, I might drop you an
email.

~~~
Tenhundfeld
Slight tangent, but I'll just comment that the business world runs on
generally bad software – if they even have "software" and don't just use
insanely complex spreadsheets. It's one of those surprising things I've
learned doing consulting for the last decade+. At first, I thought it was just
the clients I happened to have, but given enough data points, a pattern
emerged.

Most software is bad, especially at places that don't consider themselves
software companies, e.g., they don't sell a software service/product, they
just use software for efficiency.

I don't mean this as a judgement of the developers who wrote it. I've written
plenty of software that looks bad in retrospect, from the outside. When you
have the context of how decisions were made in the past, more often than not,
you find a lot of small decisions that were reasonable in isolation but added
together equal a big ball of mess where technical debt was rarely/never paid
down, refactoring rarely/never took place, etc.

It's not that hard to convince non-technical business folks of the value of
paying down technical debt, but I've found it is hard to convince them to
prioritize it. It always gets planned for the future, after whatever super-
urgent CEO-driven initiative is currently happening, which is quickly followed
by another and another.

So yeah, I can imagine what the codebase looks like but not because of
outsourced developers. You could just as easily say, "150 year old company
depended entirely on overworked internal developers (you can imagine what the
codebase looks like)."

~~~
noir_lord
I completely agree except in this case the software is just outright bad.

I found a function yesterday that was 15 lines and reduced it to one, it was a
Boolean check but they hadn't just returned that.

Its mostly php and they declare all variables and then immediately overwrite
them, I'm not convinced the main programmer had a good grasp of PHP tbh.

In any case its mine now. :)

~~~
Tenhundfeld
Yep, there are definitely exceptions to my "generally reasonable in isolation"
idea, where the software is just bad, in any context. I've seen 'em. Hell,
I've probably written 'em.

Anyway, good luck. I've been in similar situations. It can be overwhelming,
but if you have executive buy-in, you have a big opportunity to establish a
new direction and effect significant change.

------
taeric
Is this just a stripped down CMM for people that don't believe in things like
the CMM?

Link:
[https://en.wikipedia.org/wiki/Capability_Maturity_Model](https://en.wikipedia.org/wiki/Capability_Maturity_Model)

~~~
nradov
It's hilarious how some developers reflexively criticize things like the CMM
in the abstract, and yet are unable to provide any hard data to show that
specific elements of the CMM produce bad results.

~~~
gaius
One company I worked for decided to offshore, opened an office in a faraway
land, six months later, that office stuffed to the gills with fresh grads,
having never shipped a single line of code to a customer or into production,
achieved CMM level 5 certification. It's a complete farce.

~~~
taeric
There is a distinction, though, between feeling that certification can be
gamed and thinking that the goals outlined are poor.

And I am sympathetic on both ends. Nobody likes admitting that you will
basically always start at level 1. More amusingly, folks that have progressed
to later stages forget some of the advantages you have in earlier stages. If
this was a completely solved problem, we would just set the counter at max and
be done with it.

Taleb had a quote about this that I have misplaced, so I'm game of someone can
find it. Basic gist is that even if you know what the end result should be,
that does not mean you get to skip the steps that brought it about.

~~~
gaius
_There is a distinction, though, between feeling that certification can be
gamed and thinking that the goals outlined are poor_

In that debacle they laid off 6000 people in the West, including me. Shortly
afterwards they realised that they were unable to ship or even maintain the
product. Shortly after that, they were taken over by a rival. The CEO who
drove all this pocketed an 8-figure sum and walked away... It's clear what the
"goals" were.

~~~
taeric
That seriously sucks and you have my sympathies.

I think this ultimately runs into the field that as soon as you define what
the grading criteria is, then there arises the serious risk of gaming the
system. Especially when that grading criteria is a proxy of the actual value
that the company is creating.

That is, at the end of the day, the only thing that matters is value delivered
to the customer. Any other proxy measure ultimately doesn't matter. Good for
prediction capabilities up to the point that they are gamed for the same
prediction capabilities.

------
swsieber
One thing to note is that competency as it's used here is _often_ a stand-in
for process - how much process a company uses around a particular feature.

------
tovacinni
Correct me if I'm wrong, but for VCS, isn't it generally bad practice to
unnecessarily branch off and introduce complex structures?

In my experience, branches generally lead to people feeling like they have
free reign and introducing a slew of issues (reduced code quality,
difficulties in merging, broken builds, etc)

~~~
rimliu
What do you mean by "unnecessarily branch"? At least for git it used to be
"new branch for each discreate task". Atlassian tools even support this: you
have "Create branch" option for JIRA task. We use it and are very happy with
this. Take a task, create branch (which automatically moves the related JIRA
task to "In progress"), when done—create pull request (task status once again
is updated automatically), when merged kick off automatic build and
deployment. It all would be a lot messier without branching.

~~~
tovacinni
I think it really depends on the atomicity of the said "tasks" and how often
branches get merged back into the master branch. It's very easy for branches
to get abused and merging long-standing branches in with the master branch is
always expensive task that's bound to have scary issues.

In an organized enough team with a large enough project, tasks should be able
to be carried through concurrently on a single branch for the most part.

~~~
sangnoir
> It's very easy for branches to get abused and merging long-standing branches
> in with the master branch is always expensive task that's bound to have
> scary issues.

You only get scary merge issues if you do not frequently pull in changes from
your upstream branch! Daily works for me, and not once have I been let down
when squash-merging back - even for large, multiweek changes. I'm always
surprised to hear this is not common practice on HN.

------
theGimp
There is no one-size-fits-all approach for measuring competence. Different
companies and different teams have different dynamics.

What makes sense for your team and the things you work on can be very
different from mine.

The tools and process my team settles on can achieve better results despite
looking more primitive on your measuring stick. Complexity is not the end
goal.

------
m0llusk
There are many valid points raised here, though there is clearly room for
argument with every metric. What strikes me about this article is the site and
content itself. Reading this article loads layers upon layers of javascript
which collectively download megabytes of content, the vast majority of which
is utterly useless crap that contributes absolutely nothing to the experience
of reading the article.

The intent of this article is to propose some metrics for maturity and
capacity of technology development, but careful measure of downloading shows
that this site is an abomination beyond reason that shuts out users lacking
broadband and fast machines with plenty of memory.

If you really want to learn about technology development competence then
compare how this page is served compared to a static plain text version of the
same content.

------
iLemming
JIRA? It is sad that even in 2017 people still promote JIRA. There are better
alternatives to that ugly, clunky, stupid piece of junk. Clubhouse is one
example.

------
jarsin
Got a job at a level 1 once early in my career (2 years experience). Before I
started the COO told me that the his team was the best and given I was just
starting out in my career I had a lot to learn from them. Massive warning sign
in hindsight.

First day on the job...so you guys really don't have source control?

~~~
majewsky
"Only idiots need source control. We know what we're doing 'round here!"
_proceeds to edit PHP source file directly on production server_

~~~
nradov
There's a story somewhere of Paul Graham making live changes to the Viaweb
production Lisp code while in the middle of a customer tech support call. OK,
the bug should be fixed, try it now...

~~~
majewsky
And that's precisely the problem. A handful of people _can_ work this way and
do great. But their visibility will make others try to emulate them, usually
with disastrous consequences.

------
corpMaverick
Nice. I don't agree with lots of things but it is a great way to think about
how software organizations work.

It focuses a lot on whether or not tools are used. IMHO, the fact that a tool
is used doesn't tell you much. Often is the wrong tool for the wrong problem,
or the tools is not properly being used.

~~~
majewsky
Another instance of Goodhart's Law: "When a measure becomes a target, it
ceases to be a good measure." When companies introduce certain tools because
they heard that successful companies use that tool, rather than because they
want to use it to improve their processes, it won't help much.

------
buro9
Ruined in the very first line by suggesting that JIRA is somehow a project
management tool.

JIRA manages issues.

Advanced use of JIRA may mean that you can use it as a risk log, or a
milestone tracker, or an epic planner... but let's not mistake "advanced use
of JIRA" with "advanced project management".

Just try and use JIRA to determine a critical path, or to track the impact on
one project when a deliverable expected from another project slips, or to
alert when the threshold of a slipped due date is exceeded. JIRA cannot even
auto-promote a risk (something that may happen) to an issue (something that
has happened) based on a change in circumstances (i.e. time-based overdue, or
some threshold being exceeded).

Just try and use JIRA to go beyond a single project, and to manage a program
of projects delivering multiple things as part of one complex product. If that
sounds like jargon, imagine trying to use JIRA to project manage the the
construction of a new vehicle, with multiple teams in different facilities
providing the chassis, drivetrain, etc.

This is all basic stuff for good project management software, and only those
not versed in project management make the mistake of thinking that JIRA is an
issue.

On a project management tooling scale, JIRA itself would never pass the first
level of maturity.

Few tech companies manage projects well. Few identify risks, few track inter
project dependencies, few can determine whether there are resource issues
(headcount availability) 6 months out due to multiple projects needing
delivering at the same time and competing for the same internal resource.

JIRA is not a project management tool. It is a glorified issue tracker that
allows the unskilled to imagine they are managing projects.

I guess that's a strong statement, but it does need to be made. JIRA can work
for you, but it is only a simple tool.

~~~
UK-AL
"Few tech companies manage projects well." \- That's because your comparing it
to traditional style project management. It rarely works well in software.

If this style of project management worked, then companies that used it would
be at the top. But they aren't.

The only companies that seem to use it are government projects, or
corporations where software isn't their main concern. In my experience
software output by these organisation is basically awful.

They don't get software development is more of discovery and learning process,
where you become increasing better at serving your customers as you learn
more. It's not a gather requirements, implement then finished thing.

~~~
walterbell
This is good book on learning in software dev,
[https://www.amazon.com/Adaptive-Software-Development-
Collabo...](https://www.amazon.com/Adaptive-Software-Development-
Collaborative-Approach/dp/0932633404/)

~~~
nradov
Not sure why you're getting downvoted. That is a good book. I wouldn't
necessarily follow everything in it, but every software manager could learn
something from it.

------
coldcode
If you meet their assumptions it might make useful, but it's a very
opinionated list which is likely not applicable to many companies. I am not
sure you can make such a list that is generally applicable to enough companies
to be useful.

------
gaius
The author of this is level 1 and only imagining the other levels.

------
Dowwie
Is there no way to export this?

------
aemus
0ow


Google Patents Gears - pierrefar
http://appft1.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sect2=HITOFF&p=1&u=%2Fnetahtml%2FPTO%2Fsearch-adv.html&r=1&f=G&l=50&d=PG01&S1=20080301221.PGNR.&OS=dn/20080301221&RS=DN/20080301221
======
dchest
Looks like Gears, but I can't find a word about Google in this text.

~~~
evgen
People file patents, not companies. The people then assign ownership to the
company. Erik Arvidsson's blog clearly shows he works at Google and while
Andrew Palay does not have a blog his $4600 donation to the Obama campaign
reveals that he also works at Google.

------
shabda
Do no evil?

~~~
imp
Or at least protect their ass from those that are evil.

~~~
shabda
Yes, as patent trollling is a good way to do that.

How is when Amazon tries to patent single click checkout, that is evil, but
when your favorite company does the a frivolous patent, that is just
protecting their ass?

Also related read: [http://googlepublicpolicy.blogspot.com/2007/09/reforming-
pat...](http://googlepublicpolicy.blogspot.com/2007/09/reforming-patents-
promoting-innovation.html) (Google's official policy on patents.)

~~~
alexandros
Without going into the frivolity of each patent, let's not forget that Amazon
has actually used their patent aggressively against Barnes and Noble.

<http://www.out-law.com/page-2424>


Importance of OKR Template and How to Create a Template via Excel - growth_corvisio
https://corvisio.com/
======
growth_corvisio
If you have a business that aims to improve itself, it is better to set goals
to reach higher points. Aiming a far distance will make employees discover
their real potential. Therefore, business can go further. To organize goals
that have been set and enter progress, OKR template is used commonly.

For detailed information about how to set goals and what is OKR you can visit
our blog! [https://corvisio.com/okr-template/](https://corvisio.com/okr-
template/)

------
rankam
Misleading title


Ask HN: Best way for a self-taught programmer to have code reviewed? - emagdnim2100
I've been self teaching for about eight months now and can hack together working projects, but I'm sure my code is an absolute mess. Does anyone know of good resources (free or paid) for a more experienced developer to give feedback on one's code?
======
new_hackers
[http://codereview.stackexchange.com/](http://codereview.stackexchange.com/)

------
voiper1
Cool idea. You can post it online and surely you can get tons of criticism ;)