Levels of Seniority - <AUTHOR> https://roadmap.sh/guides/levels-of-seniority <comment><USER3> I only recognize difference between junior/senior levels.

My definition of senior developer:

\- Senior will not be "stuck" with a problem. They recognize there is somebody to get help from and they will seek it. But they can also function when there is no person to get technical help from. They will dig, and dig, and dig, until they finally solve the problem.

\- I can trust the solution to be usable even without supervision.

\- They will have minimum standard they will enforce around them (ownership). Ownership for me means they will look for things that are not right and act on it, without being specifically instructed to.

\- Is adult in behavior, can recognize and control their emotions, can work with other people, recognize and deal with communication problems.

From my perspective, people who have huge technical knowledge and experience but can't be trusted with tasks, can't be trusted to not get conflicted with the team on the first possible occasion, are not honest with their results (hide problems), will sacrifice good of the project because they just have to test that new tech -- all these people are junior devs for me.

<comment><USER4> Your list only handles _how_ senior engineers solve problems.

IMO the most important qualities of a senior engineer pertain to knowing _what_ problems to solve, and, at an even higher level of seniority, _why_ those problems need solving.

For example, senior-level engineers will recognize when a problem is not worth solving at all. They might know that a solution is technically possible/feasible, but they will also understand that the engineering resources (i.e. their time) can, and in fact _should_ , be better spent elsewhere -- fixing more egregious bugs, enhancing existing features and developing new ones.

To go back to what you said, being able to "dig, and dig, and dig" until they solve a problem is not what makes someone senior-level. Anyone with sufficiently high levels of dedication and stubbornness can go down rabbit hole after rabbit hole until they stumble upon something that resembles a solution. What distinguishes senior-level engineers is being able to step back and analyze the situation to determine if the rabbit holes are worth diving into.

<comment><USER3> Let's be honest, this is requirements for a senior engineer, not a tech lead.

It would, of course, be nice for a senior engineer to have perfect awareness but I think that is too much to ask to _qualify_ to be called senior.

Have you watched Star Trek (DS9 for example) lately? You may have a bunch of senior officers but they still do not always understand why stuff needs to happen. They muddle through on principles until they succeed. Then it is always easy, retroactively, to say it was their idea all along.

</comment></comment></comment><comment><USER5> I wish that the article mentioned the fourth level of seniority: graybeard. Bluntly, that's any developer over 40. But in terms of mindset, it's more like having multiple years of experience in a discipline spanning 2 or more eras so that you begin to see solutions outside of the immediate problem space in front of you.

So for example, a graybeard in the 1990s knew desktop development as well as the web. In the 2000s it was probably web and mobile dev, then NoSQL and reactive programming in the teens. Today it might be digging up old sysadmin knowledge for containerization, or applying functional programming to big data and machine learning problems. Maybe the definition gets fuzzier over time :-P

The problem with all of this is the danger of being put out to pasture. I hit an existential crisis last year where I stopped seeing things in code and started seeing everything like this big spreadsheet that I had to keep consistent. Satisfying multiple constraints in very large search spaces started giving me decision fatigue and I reached a point where my productivity fell below the junior developer level. Like, I'd be given a ticket to fix a bug in a view controller and discover that the problem was actually due to an incorrect relationship in the database schema from 10 years ago. After awhile, nobody wanted to hear about refactoring, they just wanted it to work, and we began the long death march of playing whack-a-mole with technical debt. It felt like there was nothing for me to contribute, and I burned out.

Now I don't know if I should continue programming, or try to transition to being a mentor in a management role, or get out of the industry altogether and move to something like renewable energy and build stuff in the real world. I'm still struggling, so any thoughts on this would be much appreciated.

<comment><USER6> You're right-- nobody wants to hear about refactoring. Management instead hears "time sink and no additional revenue" (which isn't true, since too much technical debt reduces velocity-- but you're the engineering expert, not management. For a moment, let's forgive their naivete). So when you pick up tickets, build more time into your estimates. Adding 30% more time to your estimates isn't crazy, since estimates are often wrong, and people frequently go over them. This really is a communication issue with how you package up your discussion of time allocation to management. Before exiting industry, I would consider giving this strategy a try.

<comment><USER7> I've seen ex-engineers in management positions (one very well known and experienced engineer in particular) forget how important it is to offset technical debt. I think, more than naïveté, product managers just become consumed by feature-making and feel unproductive if there's not a constant rush to hand new features off to engineering (which are then rushed to release).

<comment><USER8> my charitable take is that they don't forget, but they have a hard time explaining to customers why the next release has fewer new features. "now with fewer crashes!" isn't really a good marketing pitch.

<comment><USER9> When OS X Snow Leopard was announced, this was the intro slide: [http://2ig18m1zutag3bjpoclbo8am-wpengine.netdna- ssl.com/wp-c...](http://2ig18m1zutag3bjpoclbo8am-wpengine.netdna-ssl.com/wp- content/uploads/S3/snow-leopard-0-new-features.jpg)

</comment></comment></comment></comment></comment><comment><USER10> Many of the points made in the article seem pertinent to me, however I think thinking in terms of discrete levels of seniority is counterproductive. I also think that there isn't a single dimension of seniority that we should talk about.

To give a precise example, in my previous job we had very hierarchically senior people who understood the industry and the business side very well and of course knew the company's platform very well. Oh the other hand, strictly in terms of technical competence I think they lacked a lot of the basic mental framework. Their code was atrocious (core code in classes of 1000+ lines with no documentation or tests, lots of copy-paste), their choice of technology and methodology parochial and antiquated (think Java 5-6, Ibatis in 2016 + a lot of in-house built stuff, no code reviews, no QA etc.).

This kind of people in some ways would rank as competent architects and in some other ways as fitting the good old adage "20 years of experience - <USER2> same year repeated 20 times".

<comment><USER11> It's also illustrating that we engineers love to nitpick over stuff that ultimately doesn't matter all that much. You know what's way more important than short functions and programming platitudes like DRY? Understanding the business, system architecture, and how to deliver fast in the context of what's already built.

<comment><USER12> You picked the easiest strawmen out of his examples to knock down in short funtions and DRY. The other examples were, no QA, no code reviews, which are things that I have seen first hand, combined with the other complains, to code that is always in a half broken state. The code is very difficult to change so you spend all of your time on support cases. Re-writes have their own pitfalls. Ultimately, developer retention and hiring suffer because no one wants to work on these products. The institutional knowledge leaves through attrition and it takes too long for new developers to learn to be productive in the code base. Eventually the quality of the product declines until customers leave. So, even highly profitable products die because of poor engineering practices. There are certainly engineers that get caught up in know-it-all platitudes, but I've personally seen more profitable products fail because of poor engineering practices than good engineering practices fail because of poor business sense. YMMV, but in my experience, good engineering is more rare than good business ideas.

<comment><USER13> Woah my experience is completely different. I've never seen a product fail because of poor engineering practices. And I've seen plenty fail because of business issues.

I've worked mostly on enterprise software, many of which had awful code bases but we're wildly profitable.

<comment><USER14> What kills those products is not the bad code itself, it's the side-effects piling up: added dev expanses, lagging behind the competition in adding new features, performance problems as app grows, etc. Badly written code is simply more expensive to maintain and improve. I guess it's less of an issue if you have a very profitable product and/or enterprise clients who are much more tolerable to things like the simplest customization taking weeks to finish, integrations that are complicated and cost thousands and thousands of dollars, etc. For startups and smaller businesses that are tight on dev budgets it's much bigger of an issue.

</comment></comment></comment></comment></comment><comment><USER15> "They know how to give feedback without hurting anyone."

Should instead be they use tact when giving constructive feedback. Too many people water feedback down--scared that they might "hurt" people--resulting in the value of the feedback being lost. We shouldn't be scared to be honest with people--even if it means they might be hurt by it. It'll be better for them in the long run to hear the truth now--even if it's tough to swallow. Giving this type of feedback needs to come from a place of love--a desire to truly help, and should never be done with the intention of hurting or trying to make them feel like they were "wrong".

It should also be added: "They can receive feedback without being hurt"

<comment><USER16> Second that.

Pain is constructive in the right dose, and it's also risky since you can lose trust if delivered incorrectly. It requires maturity to give honest feedback and recognize that it might be biased since we have a lot of limitations on how we perceive others.

</comment></comment><comment><USER17> I think the idea of having three (or four or five) buckets of seniority is not applicable for modern work any more. Leveling is too much about hierarchy and too less about the actual impact. Beyond leveling is something what doesn't need to be defined in a word, but is more about specific knowledge or competence that is needed to solve a problem.

<comment><USER18> Sure it is, you gate underperforming people at the low bands and attrit them out.

That's why in the regular army you don't see 50 year old Captains.

<comment><USER19> I do wonder about the wisdom of this up or out (to some level usually) some times. For example, you can't be SDE I at Amazon for 10 years. But why not? If I'm doing a good job as a SDE I, I'm happy with the job and pay and just want to keep doing it what's the problem?

<comment><USER20> Because they want people who will grow that they can promote because it's really expensive to hire SDE III+

<comment><USER19> I don't think internally promoted SED III+ are any cheaper than externally hired ones. If they were they'd soon go else where anyways.

<comment><USER21> It's really expensive to _hire_ at that level of seniority - even if the salary is the same once they start, it also takes a lot of time and money to get them to that point.

</comment></comment></comment></comment></comment></comment><comment><USER22> [https://roadmap.sh/backend](https://roadmap.sh/backend) \- I notice that this doesn't contain anything about understanding abstraction, abstraction barriers, managing complexity in problem v solution spaces, identifying "as simple as possible but not simpler", etc. I don't even mean design patterns or OOP, though those are nice applications. How things have changed. It's like how there was a time when physics was witnessable visual and tactile grappling with the world around us, and now it's become extreme math: the "programming" joy of yore has been replaced by webdev legoing.

<comment><USER23> Thank you for the feedback. It's still a work in progress. It was mainly moved from the repository[0] and needs to be updated. Plus it is lacking in a couple of other sections also which we plan on improving. Please feel free to leave your feedback and suggestions in the form of issues on the repository.

\- [0] [https://github.com/kamranahmedse/developer- roadmap](https://github.com/kamranahmedse/developer-roadmap)

</comment></comment><comment><USER24> Senior level developers are usually people with excellent domain and business knowledge. How does one get a senior programming job without knowledge of the field? I might consider myself a senior in my current job, but I wouldn't necessarily call myself that when applying to a new field.

<comment><USER25> IME autonomy is the primary measure of seniority. If you need mentoring, or are completely uncomfortable being told "I don't know, can you figure it out please?" then you definitely have an opportunity to grow.

There's a third kind of learning in software. The first two are technical and domain, the third is abstract application and adaptability of your skills. That latter one _only_ comes from experience. How do you efficiently learn both tech and domain? Can you identity waste (time and/or resources) early? Are you resourceful when seeking information? Are your questions and discussions phrased in ways that maintain direction and brevity? So on.

<comment><USER26> >IME autonomy is the primary measure of seniority

What if you're autonomous by heart, but the software is so huge and poorly documented, as well as having lots of bureaucratic rules and gripes, that you pretty much can't be autonomous? That's a reality for many developers, junior or senior.

<comment><USER27> The idea that you can't be anonymous in such a situation is a "junior" attitude.

The "senior" attitude would be to find ways to achieve autonomy _and_ improve the situation. They would either succeed or determine the company doesn't actually want a senior person in that role and move on.

In talking with senior people who have been in such situations, you hear stories about their valiant efforts with partial or full results. When I talk with junior people, you hear about complaints and wishes but little action beyond their own work.

<comment><USER26> Sounds very "no true Scotsman" and people are taking this way too senior vs junior. If you are a junior wanting to become a senior or prove themselves as being more than junior, but find yourself in scenarios where management isn't actually asking for a senior but a rockstar, domain-expert medior going under the title of senior, what do you do? Continuously hop jobs until you get lucky? Wait until you finally rack in enough years so society deems you worthy of senior? Most situations I find myself in don't want to be fixed. Trying to take charge comes across as trying to tell the driver how to drive, or take the wheel myself, when its their car we're riding in. And using my own car is akin to starting my own company or going contracting.

>The "senior" attitude would be to find ways to achieve autonomy and improve the situation. How is this a "senior" attitude anyway? This should be the _default_ attitude of any self-respecting employee, and I personally had this mindset from day 1 of my career. Who in their right mind wants to be either dependent or not make their life better? That's not junior, that's lazy.

<comment><USER28> The needs of a senior engineer vary by org and culture. It's only a "no true Scotsman" thing if we insist that there must be a single objective definition, but such a thing is a total myth. I've hired devs with the senior title that barely kept up with college interns. Similarly I've seen folks with 5+ years fail to meet expectations for baseline engineer with clear coaching and PIP over 6+ months, leave the company and land their first "senior engineer" a month after being fired. I've seen senior google engineers who failed to thrive in an open-source stack since they were used to being hand-held by Google's internal tooling and wealth of expertise they could turn to for any issue that was outside their immediate wheelhouse.

Within a company it's possible to have some standard, and a lot of companies work very hard to make their levels as objective as possible, but even then it's incredibly difficult to reduce a large set of diverse individuals working on diverse projects with diverse skillsets down to a single number.

All that said though, it doesn't matter how good your technical skills are, if you can't unblock yourself with cross-functional efforts, or figure out a way to optimize a bad situation, you will not be considered for the fast-track in most large engineering orgs. If the situation you find yourself in is truly intractable as you suggest, then the senior mentality would be to cut your losses and find a new situation.

</comment></comment></comment></comment></comment></comment><comment><USER29> This is a good read. Anyone have recommendations for reading on the next steps past 'senior'? This is called various things, like principal engineer, fellow, etc. at bigger organizations.

Some people's careers might take them to the point where they do not write much code, and act as a key interface between executives and programmers. If they aren't a manager and can still be on the IC track, where they provide technical leadership, coaching, vision, etc.

<comment><USER30> At Microsoft, I'd say roughly senior is able to lead a project end to end. Principal is being able to represent a department and take responsibility for making sure multiple projects are run smoothly, developers are growing, outages are prevented. There's some overlap, and it's really just a matter of scale and trust. As you produce results, you get more trust and more responsibility for larger things. Progressing through principal is much more about paying attention to the bottom line. It's your responsibility to make sure the things you're doing are things that either customers are willing to pay for, or things that greatly reduce COGS. These are all achievable by mortals so long as you're hard working, determined, and focused on the right things.

Beyond that, Distinguished Engineer I'd say is reserved for someone who works at a level beyond the most of us, whose work has produced multiple patents or been widely influential across the company or the industry at large. Fellow is someone who has done this continually throughout their career.

</comment></comment><comment><USER31> Everyone's talking so positively about seniority but I've seen it backfire horribly.

I am sure to catch backlash for this next statement but a lot of times it seems that people with kids stop caring. Which is only natural, understandable, because biologically something has arrived that takes all precedence.

But to me as an outside observer and co-worker I see a person stagnating.

I've had to teach senior architects not to send private ssh keys to each other and instead use public keys. How to do basic naming schemes for servers. And those are just two "timeless" examples. I won't even mention all the modern tech they ignore because they haven't cared about their profession for the last 15 years.

Edit: For context I am mid 30s and these people are late 40s or early 50s. I am not stupid enough to think I can avoid this in the future.

<comment><USER32> Competent people stop caring once they don't have anywhere to go, career-wise.

Incompetent people stop caring once they're sure they won't be found out.

Kids have nothing to do with it.

<comment><USER33> > Kids have nothing to do with it.

Kids do tend to consume time which may have otherwise been used for work or work-related personal development.

Time is finite, it's not just a binary matter of caring vs. not caring, it's also higher priorities displacing lower ones.

<comment><USER32> Kids change your life.

Whether they use up your energy or they force you to reevaluate and drop unimportant things to focus on what matters, depends on your individual experience.

For myself, having a child made me extremely career focused.

</comment></comment></comment></comment><comment><USER34> This article conflates personality traits and attitudes towards problem solving with seniority.

It also speaks of overengineering, which is a highly ambiguous and subjective term that rarely leads to constructive feedback. It translates to "you are overdoing your job", rather than how you are overdoing your work. It is not actionable feedback.

Asking for help is not a trait of junior engineers. Asking for help in a non- structured way, without providing useful context or asking for help without making a reasonable attempt to understand the problem first is something that you would expect of a junior person. Not asking for help while being blocked for a long period of time is also a trait of a junior person. Being able to leverage expertise from team members is a trait of a senior person.

Now, about this:

> They have respect for the code that was written before them. They are > generous when passing judgment on the architecture or the design decisions > made in the codebase. They approach inheriting legacy code with an > "opportunity mindset" rather than a complaining one.

No. Here the author is conflating seniority with blind personality cult loyalty. If something is suboptimal or wrong in a problematic way, then just go ahead and say it when the opportunity arises in the best way you can.

Even in the early days of software, people realized the importance of good engineering practices. If your legacy code doesn't reflect that mindset, it is not worth praising. The article author himself recognizes that dumping work on other people is a trait of junior engineers, but applies it inconsistently in this case. Senior maintainers may be able to identify legitimate tradeoffs, but when a code base is consistently bad, especially when it was already bad in its historical context, don't expect a lot of praise for the code or the authors.

</comment><comment><USER35> What's not covered here is overlap between what an engineer knows and what the business needs; and especially knowledge of the business's existing codebase and architecture.

If you know what exists and how it's put together (and this can come from tenure or experience in a vertical) you'll be far more productive. Tasks require less research and are implemented leveraging more of the existing design, possibly with a few tweaks in key locations, where an engineer with equivalent or even more talent may rewrite or reinvent a whole module owing to less deep understanding, and actually add less value.

This can lead to an engineer deserving to be senior in one company but not so senior in another. It's also a source of technical debt and risk when employees turn over. Knowledge is lost and merely hiring a replacement doesn't restore velocity. Sometimes modules need to be rewritten and replaced to get back to a good place.

<comment><USER36> I've seen this far too often. Theoretically, your pay should be a combination of what you could get for your same skill set on the open market plus getting paid over the market value based on what you bring to the company based on your domain knowledge and the relationships that you've built that allow you to be more efficient than someone off the streets.

If you're not careful, your marketable skills will become out of date, but your salary keeps increasing because you're very valuable to the company. Then when the company lets you go after a decade, you will be out there competing with people younger than you who have kept up to date and complaining about "ageism". I'm 45 FWIW.

</comment></comment><comment><USER37> Aren't these two statements below contradictory when taken at face value? Both under Junior dev.

Over-engineering is a major problem, often leading to fragility and bugs.

When given a problem, they often try to fix just the current problem a.k.a. fixing the symptoms instead of fixing the root problem.

</comment><comment><USER38> The actual content of the roadmaps doesn't seem to be in the GitHub repo so I can't open PRs to correct typos.

<comment><USER23> Hey, everything is there at [https://github.com/kamranahmedse/roadmap.sh/blob/master/cont...](https://github.com/kamranahmedse/roadmap.sh/blob/master/content/guides/levels- of-seniority.md)

<comment><USER38> I was trying to open a PR to fix a typo in the devops map but the repo doesn't seem to contain the text I want to fix...

</comment></comment></comment><comment><USER39> People trying to find ways to justify paying less to programmers

</comment><comment><USER40> The real truth is that none of these titles mean anything outside of a given organizational context. Hilarious that the author felt the need to add "can give feedback without hurting people" to the senior engineer bullet list. So much wishful thinking here.

<comment><USER26> There's some truth in your statement that most people do not wish to admit and are quick to dismiss as "rebellious, arrogant juniors".

I generally see two kind of seniors. The first group is senior in terms of experience and hard work. The second group got there only through obligation, working for years without growing a lot. Unfortunately, I see most management puts a hard cap on minimum experience before being a senior, so the former group and the latter group become indistinguishable. Other problems include Peter principle, where because someone got promoted to senior, he is now attributed as a good leader, despite having no experience leading as a junior before. Skills that are at best orthogonal are attributed to seniority, despite the fact many junior and medior people may be better at teaching, leading and mentoring others than their seniors. Nothing in the track guarantees a senior ever has to practice or show their excellence in these skills, either.

Furthermore, most people aren't doing interesting things. They get a revolutionizing experience at work maybe once a month at best, if not far longer. Couple that with an echo chamber and suddenly, they believe it is normal to take 3 to 10 years to become an expert on fairly trivial domain knowledge. We're not talking about top-of-the-line C++ programmers, ML experts, people driving innovation, veteran software architects or whatever. We're talking your average CRUD web programmer who did some backend, maybe some frontend. We're talking people who believe one can only be senior being able to deploy an application from scratch into a new environment, thinking this takes at minimum 3 years to learn when in reality, you could pick up a guide how to do this today. The only real thing you'll miss out are office politics and navigating in a group setting. The former is so volatile and context-dependent, you might as well learn it on the fly or wait until 15 years have passed by and pretty much any possible situation has come up. The latter is severely overstated in difficulty and most people will pick this up in no time, unless the team is dysfunctional to begin with.

<comment><USER40> Really enjoyed your comment. Your comments about lack of innovation/interesting problems at most places are spot on. And "senior" developers being hung up on CRUD techniques is laughable to anyone who has solved truly difficult problems.

</comment></comment></comment><comment><USER41> This interesting essay is marred by bad grammar.

Do you want to rise in the ranks? Learn to write well. Documentation, blogs, email memos, proposals, etc.—this is the evidence of accomplished seniority.

<comment><USER42> His name is Kamran Ahmed and he's from Dubai.

This comment didn't make you look good. Not even a little.

<comment><USER41> The point of discussion here is not to make oneself look good. Do you disagree with my statement?

<comment><USER36> English is my first language and I didn't notice any off putting grammar errors.

That being said, especially for a non native speaker, I don't judge their ability to communicate by their ability to write perfectly grammatically and idiomatically correct English. It's whether they got their point across.

</comment></comment></comment></comment><comment><USER43> This is a very good overview. One thing I would add for the junior and mid level developer is "attitude towards work in general". One thing I see commonly in many junior and some mid level engineers is an inappropriate attitude towards work vs their career aspirations. For example, they will treat their job like an hourly employee with no skin in the game, and then complain about raises, promotions and bonuses. You don't need the best development skills to show up on time, be diligent, work hard, and be a good teammate.

<comment><USER44> As somebody pretty firmly in the staff/principal firmament (when not in a management role), I absolutely, positively do not care in the slightest and at least low-key discourage people I mentor from having "skin in the game." Unless you have entire points in the company, "skin in the game" is a handle by which people can manipulate you to do things that are bad for you, your health, and your career. It's not that it should be an adversarial relationship, and one of the really nice things at my current job is that it it's the first I've ever been at that _isn 't_ (it's a genuinely good place to work, with empathic and decent upper management, and they get a lot more out of us for it)--but most are and it's not a line employee's fault and it's foolish to not recognize the game being played. Professionalism doesn't require emotional attachment and it shouldn't be expected or too generously given. Show up, do your job, do it well. But make sure you are building towards the next one and don't let the current one minimize your ability to get the next one.

As your manager I might and generally do care about your personal growth, but it's not because it relates to your KPIs, it's because you're a person and I'm in a place to help you improve and I should do that because doing that is good. And, selfishly, I want to find and build great people to work with in the future. But at most places, me doing this is in tension with what my bosses would like me to do. Which is mold you into a _better employee_ over the expected time horizon of your employee, irrespective of if that makes you a better developer or technologist. (I've learned that pushing people to be better technologists makes better employees too, but my experience is that most management doesn't get this and so we are mostly to be not trusted on that score.)</comment></comment>


Ask HN:  Please review my Facebook App - <AUTHOR>

This is a re-release of workola.com.  After a few suggestions from HN I decided to rework my marketing approach. To help clarify what the virtual desktop does I decided to build a Facebook application that adds the workola desktop to your Facebook page.  I also added a few chrome extensions and a toolbar to keep workola with you wherever you are on the web.
If you work at the computer you might find it useful.  Workola is an HTML5 application that works best with chrome and safari.
One of my favorite features is the 'tools section' and the resulting toolbar that appears once you add a tool. Similar to an igoogle page you can add tools/widgets to personalize your desktop.  It's a hands on experience, free and requires no account.
click the + icon next to the 'my files' | 'upload files'  buttons to see a few more sample tools.
Hopefully this helps a little,
http://workola.com
http://apps.facebook.com/workola/
This is a sample youtube widget for your tools section.
. <object width="535" height="300">
            <param name="movie" value="http://www.youtube.com/cp/vjVQa1PpcFN6q1tu9z-7uJyIW80-_gajJVwbmhyKwf4="></param>
            <param name="wmode" value="transparent"/>
            <embed src="http://www.youtube.com/cp/vjVQa1PpcFN6q1tu9z-7uJyIW80-_gajJVwbmhyKwf4=" type="application/x-shockwave-flash" wmode="transparent" width="535" height="300"></embed></object> <comment><AUTHOR> clickable: <http://workola.com></comment>


Ask HN: How fast should space-wifi be? - <AUTHOR>

I'm in the early stages of developing, with others, a space-based wifi system. It's a store-and-forward broadcast network that uses wifi multicast to provide content directly to mobile devices anywhere on Earth. One of way of thinking of it is GPS (50 bps) on steroids, or BitTorrent from space. The focus is more on unidirectional transmissions, rather than bi-directional connectivity, which would be way too costly at this point.<p>Although a constellation with as few as 25 cubesats is possible, the data rate would be incredibly low. Getting to dial up speeds will take a couple hundred satellites. So my question is: For people who would otherwise not have internet access, what kind of download speeds are useful? More about the project here http://outernet.is <comment><USER2> I frequently travel to developing countries (particularly in Africa/Middle East. I think what is more important than speed is reliability. Most countries have some sort of decent mobile internet service to some extent - it is just spotty and unreliable and usually a generation or two behind.

You should think of this project as complementary to normal internet access - a last resort backup that reliable works at a low speed. Dial up should be fine - pages might take a while to load (especially those that are image heavy) but people shouldn't expect to be able to stream YouTube on a service like this.</comment>


Some Notes on 'D for the Win' - <AUTHOR> http://tomerfiliba.com/blog/dlang-part2/

<comment><USER2> I have a feeling that adoption for D-lang is going to be even harder today because of the glut of new languages we have that now solve the same problems, specifically (IMO) Rust and Go.

D may be a fine language, but it never really marketed itself or got the "killer app/library" that convinced people to give it a try.</comment>


Spherical Trigonometry, Circle Packing, and Lead Generation – A Journey - <AUTHOR> http://blog.ablelending.com/post/117268294258/spherical-trigonometry-circle-packing-and-lead

<comment><USER2> Hmm. I think generating the centers is not so hard. All the centers for one triangular section lie along the points

      (x,y) = i * u1 + j * u2

where (i,j) are nonnegative integers and the basis vectors u1 and u2 are:

      u1 = (1,0)
      u2 = (1/2, sqrt(3)/2)

There is a 1:1 correspondence of (i,j) to centers, so you could generate all centers with a nested for loop.

If you want to generate all centers in the hexagon (not just the triangle) and still preserve the 1:1 nature of the map from (i,j) to (x,y), you could just rotate 6 times by 60 degrees each time.

Doing just this would introduce duplicates along the edges, where the triangular segments abut each other. You could eliminate those by insisting that i>0 rather than just i>=0.

You could get the same effect as rotation by introducing a third basis vector u3, but then there would be duplicates in the map from (i,j,k) -> (x,y).

<comment><AUTHOR> That's smart - coupling this with the 'min layers' equation could lead to a 100% iterative solution. We could swap this component in and remove the recursive triangle generation :)

As mentioned in the post - deduping is cheap and easy so introducing the third basis vector u3 could potentially be a great move away from the recursive logic that currently plagues the project.

<comment><USER2> The above is known to be the optimal 2D packing for equal-size circles. If you want to geek out, consider an algorithm for the optimal packing for unequal- size circles. Say, if there is an importance or frequency measure associated with each plotted circle. Now you've got yourself a math problem.

</comment></comment></comment><comment><USER3> The animations are incredible, more quantitative posts should have illustrations like the ones in this post!

<comment><USER4> Seems like the animations took more time to make than the actual query sub- division. But I agree that the illustrations made the post _much_ more easy to read.

</comment></comment><comment><USER5> Hexagonal packing is good but hexagonal packing into a hexagon appears to be leaving the edges of your search radius uncovered.

The packing density is about aligning on a hexagonal lattice, the points of which are a simple function of the inner circle's radius - the points in each row are 2r apart and every other row is horizontally offset by 2r * tan(60) (I hope that's right). Could you not build a row of circles out from the center to the right edge and copy it to the rows above, offsetting as required? The length of any given row is then half of the chord it sits on i.e. sqrt(r^2 - d^2) where d is the distance from the center, in this case 2r * row-index -- with this you can then filter out which circles are outside the containing circle for that row. This fills the top-right quarter segment of the circle, and the whole thing can be filled by flipping the coordinates along x to get the bottom right, and flipping all of that along y to get the other half, then dedup the cross that forms in the middle.

I think, in terms of coverage, this must always be at least as good as a hexagon built out from the center, but that should be a rare case and most of the time it'd be better.

Evidently I'm not a mathematician. Am I being stupid here?

</comment><comment><USER6> Very neat idea, and as others have said, cool animations! However, I'm not sure I buy the premise that "Social media signals can be used to give a rough picture of foot traffic around places of business," at least in general.

I can believe it for restaurants, hotels and popular hang-outs. But thinking about churches, strip clubs, the urologist, etc., I wonder if there are "blind spots" or other areas of low-quality data. Or even areas of poor cell coverage?

Maybe in most cities there are enough other places around that people frequent to cover over any blind spots? I'd be interested to know whether they've found any places like that?

<comment><AUTHOR> Absolutely - this wasn't meant to be a be-all-end-all to lead generation by geographical bounds. This was more of a "I had a cool idea, wanted to test it, and here's how I went about doing that" sort of post. There are a ton of things that don't get picked up by social signals, but it's a low enough hanging fruit that I figured it was worth looking into to see if it was even a viable source of data at scale.

I think a 'real' analysis of the data at a much larger scale (probably state- wide would be a good test) would yield some interesting data on the effectiveness of this implementation in specific.

As mentioned in the post - the circle packing implementation itself is general enough to be used in other applications. The point was to show off a cool potential application for a solution to a non-intuitive problem.

</comment></comment><comment><USER7> Pretty interesting read; I also love the graphics!</comment>


App Store scam - <AUTHOR> http://s4.postimage.org/5otalrxms/scam.png

<comment><USER2> Interesting. I wonder if they did that and then bought it themselves a few times to juice it into the list.

<comment><USER3> I'd say that's exactly what happened.

There's no better App Store marketing that the top lists and on a slow week it will only cost $125 (30% cut to Apple) * whatever number of sales it takes to break the list. Much cheaper than a big ad campaign. Very smart way to game the system.

<comment><USER4> I don't understand how this works ... what does this accomplish ?

They're remaining on the same spot in the list.

<comment><USER2> The list is 'top grossing'. You get there by having a high sales by dollar per unit time. They put the price up and bought the app a few times. They get 70% of what they paid back. And the app is suddenly grossing the same as a $0.99 app that's selling hundreds every minute. This launches it into the chart. Then they drop the price and real customers see it and think it's a very popular $0.99c app.

</comment></comment></comment></comment><comment><USER5> $449! Are they allowed to change prices at will just like that?

<comment><USER6> yes</comment></comment>


Flash and Chrome - <AUTHOR> http://chrome.googleblog.com/2016/08/flash-and-chrome.html <comment><USER2> Although Flash's heyday is long gone, let's not forget how much Flash brought to the table back in the late 90's and early 2000's: animation, sound, games, and scaleable vector graphics and more. Macromedia's purchase of FutureSplash and subsequent release of the ubiquitous Flash player was a game changer for the web. Being able to download and play real games and experience interactive websites over slow dial-up connections was amazing and changed people's perspectives of the web.

The FLV format also finally made streaming video a seamless experience for the end user; leading to the creation of Youtube and other streaming video services.

Like all technologies, Flash was overused in places (pre-loaders, rotating 3d logos, banner ads) and Adobe's push towards Flex and RIA's took Flash away from of it's roots in animation for quite a few years. However, it will be interesting to see if the equivalent HTML5 stack follows a similar timeline-- minus the website pre-loaders...of course.

</comment><comment><USER3> I'm happy to see Flash on its way out – I haven't even tried to install it the last few years. Native browser support tends to work and integrate much better on Linux than having to depend on a third party to deliver up-to-date software. The only site I visit that still seems to require Flash is the BBC, for video fragments.

There's some irony with Google blaming Flash for being spammy; I recently inspected what's probably the biggest shopping website in the EU because it slowed my computer to a crawl and noticed at least 30 to 40 outgoing connections, a lot of them to Google and its diverse ad, tracker and analytics properties.

<comment><USER4> Also if you want to stream BBC radio in browser it still insists on using Flash to do it. My concern is with the way Google tend to do things in Chrome (Aunty Google knows best, please do as I say) I might not even be able to continue to use flash for the very few sites I'd like to, or have to.

e.g. I tried to download an mp3 of a radio show from bbc.co.uk earlier today and "download blocked" with no option to override. I have all the protect me from myself settings firmly off. chrome help says it's Internet Settings. Internet settings says it's fine to download, and I've downloaded dozens of other mp3s flawlessly. mp3 actually downloads if you paste the button url in a new tab rather than click the button. I've had similar issues with other, innocent and harmless, files in the past. Well, since they brought in their cleverness and download "protections".

I forsee similar issues with flash as it goes through its deprecation.

<comment><USER5> If Chrome blocks a download, you can always go to chrome://downloads (or click the 'see all downloads' link) and unblock it manually there.

</comment></comment></comment><comment><USER6> > Today, more than 90% of Flash on the web loads behind the scenes to support > things like page analytics. This kind of Flash slows you down, and starting > this September, Chrome 53 will begin to block it.

Slightly off topic: I always found the term "block" to be a bit odd in the web browser context. The browser is the ultimate authority on what gets rendered and shown to the user; there's no need to block anything, because it can just not attempt to show it in the first place.

The term goes back at least as far as popup blockers. I wonder if it's because early popup blockers were browser plugins, rather than built in features, so they did have to actively intervene in the user experience.

<comment><USER7> I think it is very easy. Your browser BLOCKS the server from delivering something. I think the term "blocking" is perfect here. :)

<comment><USER8> I think your parent is pointing out that the browser is the one that initiates the fetching of all of this content in the first place. So, there's no need to "block the server from delivering something" as it can decide never to ask the server to deliver that something.

</comment></comment></comment><comment><USER9> The end of an era, to which all I can say is good riddance. Flash Player has been responsible for 892 published CVEs [1]. The world is safer without it.

[1] [https://www.cvedetails.com/vulnerability- list/vendor_id-53/p...](https://www.cvedetails.com/vulnerability- list/vendor_id-53/product_id-6761/Adobe-Flash-Player.html)

<comment><USER10> That's like saving good riddance to the internal combustion engine because we would be healthier without it, as if we've had better alternatives all along. If it weren't for Flash, we might all be complaining about Java applets right now.

<comment><USER9> > we've had better alternatives all along

We've had better alternatives on the desktop for over six years now, since Apple said "No Flash for iOS" in April 2010, when content creators panicked to capture that market and started conversion to HTML5 video. That already was a long time coming.

Chrome finally saying farewell to Flash in this manner forces the market to recognize that Flash is no longer an option even on the desktop.

As for my security argument: using the link above, if we start with vulnerabilities found in Flash Player after April 2010, that's still 830 of them.

<comment><USER11> Video alone isn't all of it though... there were a lot of games, and flash animation was also _MUCH_ lighter than video streaming on bandwidth and cpu overhead.

Beyond that, one of the most significant areas of flash as a player is eLearning, training and simulations. Say what you will about a lot of the garbage in player, the authoring tools were some of the best available... though I haven't seen what Adobe has on deck today, it was a very nice experience with nothing comparable for at least until 2012 (last time I worked with flash/flex).

What my real hopes were when adobe bought Macromedia, was that they'd open up the format, and convert it to a packaged zip file with a manifest, svg and javascript proper as the language. Allowing for browsers to co-opt and internalize the players. Then adobe could continue to make great tooling and the browser vendors could correct the ship on the players. My dream is pretty close to what Silverlight offered, but that was something nobody was willing to look at for good enough reasons.

<comment><USER12> Have a look at FlexJS.

<comment><USER11> I've seen it, and it may work for quite a bit of that legacy content... there are also stand alone players/clones that I've seen a few of... I haven't had to work with or generate that kind of content for a while though, so no idea what the modern tooling equivalent is.

</comment></comment></comment></comment></comment></comment><comment><USER13> As a former Flash animator and ActionScript programmer I appreciate the tone of the post. Flash sucks by today's standards but it played its crucial role in the history of the internet. Farewell.

<comment><USER11> Agreed... nothing compared to Flash's tooling at the time, and when Apple started the fist volley that started sinking flash, there really wasn't anything comparable, or having the reach of the tooling for authors.

I haven't had to deal with that kind of content for quite a while now, but I would think some of the authoring has gotten better. It's a bit of a shame though as flash animation projects were _so_ much lighter than video streaming.

</comment></comment><comment><USER14> I hope as the web moves on we find an easy way of preserving a lot of the creative work that's been done in Flash.

Some sort of WebGL/asm.js/WebAssembly player for SWFs on the internet archive would be the pipe dream, I think. That way we could watch Strong Bad long after Flash is available in the future.

<comment><USER15> That's Mozilla's Shumway, a SWF player in Javascript.

<comment><USER16> Shumway is DOA without the direct help from Adobe. That's not the first time someones tries to develop an open source flash player. They all failed.

<comment><USER17> There just wasn't enough work and money put into these open source players.

For instance there is proprietary Flash implementation called Scaleform used for games UI. Even long ago before Autodesk acquired them it's had both decent compatibility with normal SWF as well as full GPU acceleration for every platform possible include Linux.

<comment><USER18> I've used Scaleform a good amount. It's not 100% compatible with stock Flash but it's pretty darn close in the use cases I've been exposed to.

Scaleform has a complex code base but clearly it is possible to reverse engineer the Flash runtime and make a compatible player.

</comment></comment></comment></comment></comment><comment><USER19> I was a Flash developer. It blows my mind how far and wide this plugin went. We're still dealing with a transition out years after it fell out of favour. It's kind of neat and a good reminder that if people start using a technology it's not so easy to simply move away from it. Very similar to the days of IE 5,6,7,8 (and yes I know that's not "over" either... but a lot less of a concern than it was).

Still, faults aside, Flash was awesome. It was an advanced "Hypercard" (which I learned to build things in as a kid). I hope we don't completely lose some of the good aspects of these technologies.

<comment><USER16> Flash community was great. It was a real pleasure to work with visual artists and musicians. There will never be anything like it in web development.

</comment></comment><comment><USER20> They need a more technical description of "default experience". How is Chrome supposed to know if a site only supports Flash? I've tried several sites that require Flash, but only until I change the user agent to a mobile browser. Will Chrome try messing with the user agent in this case?

<comment><USER21> If the site is so poorly done that you have to fiddle with the user agent to get it to work, I'd say good riddance to that site. Sites like that need a market pressure to become good, and you quitting said site is a vote in the right direction.

<comment><USER22> You're assuming that the site is still actively maintained.

</comment></comment></comment><comment><USER23> Flash has also been used to circumvent some of the browser protections, especially for older browsers. For example it has been the way to achieve cross-origin http requests (CORS) for browsers that don't support it, like IExplorer < 9 (or 8?) and even IExplorer 9 because the CORS support is shit for that one. On one hand it's been cool for developers to be able to do such things, but on the other hand it makes your browser less secure.

Anyway, I'm a Firefox user and I don't have Flash installed. The web works just fine without it. One less plugin to worry about.

</comment><comment><USER24> There seems to be a lot of people saying "ohh people thing flash is bad now, but once upon a time it was really a useful thing."

That time was the 90s and early 2000s. And in that time, I avoided pages with Flash because they were painful. They are still a little painful now.

If Flash was transformative, I think it was that it introduced the kind of bloat and intrusiveness that we now take for granted on the web.

</comment><comment><USER25> As happy as I am overall about the death of Flash I will say that at least Flash being a plugin meant it was trivial to control.

The amount of auto-play videos (both ads and non-ads) is extremely obnoxious and I haven't found a good way to prevent that them yet.

<comment><USER26> Just use firefox with noscript!

I never have any issue with any auto-play videos at all.

The performance on the good old FF 30 is N*10 times better than latest chrome browser.

<comment><USER27> Firefox 30? isn't that extremely outdated however?

</comment></comment></comment><comment><USER28> Does archive.org archive flash stuff? Decades into the future, playing back archived flash games and animations will be very difficult.

<comment><USER29> One problem with archive.org is that it retroactively obeys the robots.txt file, even if the files have been spidered and archived [0].

For example, consider the case when a new domain owner attempts to block all bots from spidering their site, by adding something like this to their robots.txt file

        User-agent: *
        Disallow: /

This is actually a fairly common case when domain resellers purchase expired domains.

Now when you try to visit the archived link, because the live robots.txt file disallows bots, you won't be able to access the archived site (which may have been owned by someone completely different).

[0] [https://archive.org/post/406632/why-does-the-wayback- machine...](https://archive.org/post/406632/why-does-the-wayback-machine-pay- attention-to-robotstxt)

<comment><USER30> This is true, however they don't purge any of the old archives. If the robots.txt is updated to allow bots again then all of the previous archives will become available again.

<comment><USER21> it seems weird to me to retroactively obey robots.txt for a _different_ version of the site.

It makes much more sense to archive the robots.txt along with the content, and use the robots.txt linked with that version of the site. Updating the current robots.txt shouldn't affect a past archive.

<comment><USER31> I believe the reasoning is that if I accidentally published a public page and didn't realize it but later fixed the problem, I'd like to make sure no one else could see it later. It's probably easier than dealing with all kinds of takedown requests.

</comment></comment></comment></comment></comment><comment><USER32> > In December, Chrome 55 will make HTML5 the default experience, except for > sites which only support Flash. For those, you'll be prompted to enable > Flash when you first visit the site.

Are they still planning to grant a one-year exemption to the top ten flash- only sites? The article doesn't mention it, but I haven't heard anything about it being cancelled.

<comment><USER33> As far as I understood, the rumours were blown up. Chrome will show a prompt asking you whether you would like to allow Flash (similar to the one asking you to give permission to access your location) if it's used on the website you just opened.

The only exemption those top 10 Flash sites will get is they will have this permission by default, but you should still be able to both permanently add other websites to the whitelist and remove those default ones ones from it. Which, in my book, isn't nearly as bad as Apple's hardcoded support for FairPlay + DASH in Safari only on netflix.com.

I could be wrong though, there could be more stages where it gets harsher and what I described is only the first step.

</comment></comment><comment><USER34> Looks like [https://google.com/finance](https://google.com/finance) didn't get the memo.

 _" Adobe Flash Player is required for interactive charts."_

</comment><comment><USER35> [http://www.apple.com/hotnews/thoughts-on- flash/](http://www.apple.com/hotnews/thoughts-on-flash/) Steve Jobs, April 2010

</comment><comment><USER36> When I clicked on the link, I expected to see something like "Flash is an abomination and shouldn't exist, that's why we are killing it". I was wrong and happy to be. Today "Flash" means "problems", but I remember the time where it meant "modernity" and "Improved user experience": I'm glad to witness that Google discards Flash while honoring its legacy!

</comment><comment><USER37> I find it a bit funny and ironic that the only app I regularly use which prompts me to install Flash [0] is Google Music. On both Safari and Safari Technology Preview!

I'm all for killing Flash, but if even Google is unable to completely do away with it, doesn't that mean that it might be a premature move?

I don't have any interest in seeing Flash kept around. In fact, I'm quite happy to see it die. But do we actually have working alternatives for the problems it currently solves? I don't ask this rhetorically, I'm very curious if there's still problems which HTML5 is unable to reasonably solve.

[0] [https://www.dropbox.com/s/f52ew4wpwcmt1dr/Screenshot%202016-...](https://www.dropbox.com/s/f52ew4wpwcmt1dr/Screenshot%202016-08-10%2005.25.48.png?dl=0)

<comment><USER38> That is ... strange. I run chromium on FreeBSD without flash, and Google Play Music works well for me (as opposed to Amazon Music, which wants flash). Perhaps it is something about safari vs chrome?

<comment><USER39> Google Play Music supports HTML5, however I think it works better (i.e. more tested) with Flash or something. So Flash is still the default, while HTML5 is the fallback.

And btw, GPM seems to use a similar DRM method as the one supported in Netflix, so if your browser does not support DRM, you're out of luck [1].

[1]: [http://googlesystem.blogspot.com.br/2016/04/google-play- musi...](http://googlesystem.blogspot.com.br/2016/04/google-play-music-still- requires-flash.html)

<comment><USER37> It's a bit frustrating, because it's the only remaining reason I have for installing Flash.

There's some superb wrapper apps [0], but they apparently use WebKit.framework, so it still prompts you to install Flash.

Although I just discovered that the Radiant Player people are working on an Electron version [1], which is very exciting!

[0] [https://github.com/radiant-player/radiant-player- mac](https://github.com/radiant-player/radiant-player-mac)

[1] [https://github.com/radiant-player/radiant-player- electron](https://github.com/radiant-player/radiant-player-electron)

</comment></comment></comment></comment><comment><USER40> The only site I visit that still uses Flash is [https://twitch.tv/](https://twitch.tv/)

<comment><USER41> That was the case for me as well until I started utilizing Livestreamer [0].

[0]- [http://docs.livestreamer.io/](http://docs.livestreamer.io/)

</comment></comment><comment><USER42> Flash is definitively the perfect scapegoat

whatever your problem: slow machine, battery, security, etc. it's all its fault

seriously, if everyone have already moved to HTML5, how come we are still blaming Flash for those daily petty problems ?

It's not used so let's block it but it is still responsible for the majority of problems ...

nobody notice the ambiguity of the argument ?

It's quite painful to see such arguments from Google, I thought they would be smart enough to understand that any popular technology get hacked, the problem is not really Flash, its the browser itself (and the advertising networks that are perfect to distribute dodgy payloads to tons of users).

The other sad point is the amalgam of everything, for some ppl Flash equals advertising, and that's bad so Flash is bad, and they don't want to think further than that.

The choice of the users ? The tons of SWF content (that will probably not be ported to HTML5) ? nobody care apparently

And about throwing everything in the same bag, so apparently if Flash is dead then ActionScript is dead too right ?

nope

Flash is just 1 runtime running in the browser, there are other runtimes: Adobe AIR for desktop and mobile, and also Redtamarin [1] for the command-line / server-side.

[1]: [https://github.com/Corsaair/redtamarin](https://github.com/Corsaair/redtamarin)

</comment><comment><USER43> I used to make and release flash games and still have them on my website. Is there a good low-to-moderate effort way to convert them to HTML5?

A couple of the games used a ton of frame by frame animation with large sprites, so they probably wouldn't convert to spritesheets very well and should stay vector graphics.

Example: [https://youtu.be/Qk9HlXbqRTQ?t=43s](https://youtu.be/Qk9HlXbqRTQ?t=43s)

<comment><USER44> No, there is not a simple way to convert flash to html5. I say from experience, we look for it for years.

Moreover, you can rewrite a game in html5 from scratch, if it is simple enough, but it will be slower, less smooth, and require some latest browser versions to run at all.

</comment></comment><comment><USER45> So what specifically is going to happen? Instead of a click-to-play box, you'll get an HTML5 version of the content if the site is serving one, and if the site isn't serving one, you get a button to click to enable Flash content on that domain? Seems a little unclear to me and not much different from click-to-play. It sounds like Flash will continue to work with a clickthrough, which is the status quo.

</comment><comment><USER46> I can't be happier that Flash is bein removed except that I a heavily use Google's own MotionChart[1] which is built using Flash and there seems to be no HTML5 alternative yet available [2] (although google internally seems to be uing a HTML5 version of it [3]):-(

[1] [https://developers.google.com/chart/interactive/docs/gallery...](https://developers.google.com/chart/interactive/docs/gallery/motionchart)

[2] [https://github.com/google/google-visualization- issues/issues...](https://github.com/google/google-visualization- issues/issues/1046)

[3] [https://www.google.com/publicdata/explore?ds=ltjib1m1uf3pf_#...](https://www.google.com/publicdata/explore?ds=ltjib1m1uf3pf_#!ctype=m&strail=false&bcs=d&nselm=s&met_s=incinequal_t1g&scale_s=lin&ind_s=false&idim=country:KOR:JPN:ISL:IRL:GBR:FRA&ifdim=country:country_group:oecd&hl=de&dl=de&ind=false)

<comment><USER47> MotionChart is being rebuilt in HTML5. See demo here: [https://www.gapminder.org/tools/bubbles](https://www.gapminder.org/tools/bubbles)

I believe this is the library: [http://vizabi.org/examples/bubble- chart.html](http://vizabi.org/examples/bubble-chart.html)

</comment></comment><comment><USER48> This seems to me to be an obvious power play by google. Does no one else see how this is not against flash, but in favor of code which google can analyse and extract data from. When the analytics are in flash, google has no insight, but when forced into js they have full visibility into everything a developer does.

<comment><USER44> Not only that. I believe the main purpose of the whole war agains flash is to kill the online games ecosystem, from which neither Apple nor Google make profit, and move gamers to appstores.

<comment><USER49> That seems unlikely. It's true that Flash is overwhelmingly popular among browser game devs, but there's been efforts to encourage them to move to HTML5 for years, because Flash is terrible for users.

</comment></comment></comment><comment><USER50> Can we have then a decent alternative to "Copy to clipboard button" that does not use flash? :(

<comment><USER51> document.execCommand('copy') seems to be decently supported (Chrome, FF, IE9+, Safari 10) by now: [https://developer.mozilla.org/en- US/docs/Web/API/Document/ex...](https://developer.mozilla.org/en- US/docs/Web/API/Document/execCommand)

<comment><USER52> Note that Safari 10 hasn't actually been released yet - it's only in a Developer Preview

</comment></comment></comment><comment><USER53> Wonder how does Firefox compare with it and what steps it is taking in this direction?

<comment><USER54> Firefox plans to make Flash "click-to-play" by default sometime in 2017. This is similar to Chrome's plan.

[https://blog.mozilla.org/futurereleases/2016/07/20/reducing-...](https://blog.mozilla.org/futurereleases/2016/07/20/reducing- adobe-flash-usage-in-firefox/)

Meanwhile, it's pretty easy to force Firefox to apply this policy _right now_. Just go to the Plugins screen and select "Ask to activate" for Flash. I've been using Firefox like this for over two years, and have never been happier with my web experience.

<comment><USER55> Firefox will start blocking the "Flash pixels" too, as noted in the Mozilla blog post.

</comment></comment></comment><comment><USER56> To all those saying Flash is dead or dying, this is simply not so. Mainstream use of Flash may be on it's way out, but browsers will continue to support it in one way or another for the foreseeable future.

Why? As I've said before, and will say again: A lot of enterprisey applications have tools developed in Flash/Flex. Mostly internal and B2B tools, but tools nonetheless. It's not likely that they will be replaced anytime soon, because no one is going to authorize the budget for replacing something that still works, so Flash will be around in one form or another for a long while.

<comment><USER57> The same is true for java applets. There are still lots of LOB applications that depend on it. Nonetheless, chrome removed support, firefox said they will by the end of this year, and Edge has no support.

Companies still using them are now in the same position as those using active-X, they need IT to deploy special measures for users that need to access them.

I think it's fair to sum up this situation by saying that java applets are dead or dying. Flash may well be in the same position in 3-4 years.

<comment><USER56> I was going to counter by saying that our MIS displays some reports using a java applet, and I can still access them in Chrome. However, I just attempted to run one of those reports, and it turns out that the latest version of our MIS no longer offers the java applet as a display option. Therefore, I must concede. TIL.

</comment></comment></comment><comment><USER58> Thank god. The nightmare is ending.

</comment><comment><USER59> Am I the only one who feels like this has been talked about for a long, long time? I actually already thought that Flash had been just about eradicated from the major browsers.

</comment><comment><USER60> I still use Flash for youtube (with an add-on that enforces it) because Firefox doesn't seem to be able to handle my 4-monitor Xmonad setup properly with HTML5 fullscreen video. And the process also locks up my soundcard until I kill the process. Flash behaves much better. After youtube ditches its Flash player altogether, I guess it's chromium for YT then. No biggie.

<comment><USER61> Same with me as well, Firefox or Chrome both are slower with HTML5 media versus flash. Flash video runs faster than HTML5 and also has hardware acceleration which HTML5 fails at on my hardware, a couple of laptops and a desktop rig.

</comment></comment><comment><USER62> > Today, more than 90% of Flash on the web loads behind the scenes to support > things like page analytics. This kind of Flash slows you down, and starting > this September, Chrome 53 will begin to block it.

I'm all against Flash. But this argument sounds silly. Why not handle this like any decent OS, and "nice" the Flash portion of the page, so that it takes only cycles (or bandwidth) which are otherwise left unused?

<comment><USER31> Because that's not really the reason behind the change, it's just a convenient argument to use.

</comment></comment><comment><USER63> > _This kind of Flash slows you down_

I wonder if Flash is still slower than the current JS bloat of the "modern web". My intuition says, probably not.

<comment><USER3> And funnily enough, Google itself is behind a lot of that JS bloat and background tracking. They are probably not the ones that should be pointing fingers at Flash.

</comment></comment><comment><USER44> I wonder, does anybody here plays online games? I wonder, further, is there anyone who thinks HTML5 is even close to Flash for games creation?

</comment><comment><USER64> Good. Maybe that'd force Facebook to update their OpenGraph video embedding. Right now it essentially requires an URL that's either application/x-shockwave-flash or video/mp4 (with undocumented <iframe> embedding for chosen parties), which doesn't really cover all the cases for online videos (e.g. live streaming with DASH or HLS).

</comment><comment><USER65> Some of the comments on that page are just sad. I didn't realise Flash still had so many fans.

</comment><comment><USER66> The article mentions Flash content slows web page loading and is power inefficient. Flash also has an abysmal security record. Chrome 53 will start blocking certain kinds of Flash usage, and Chrome 55, in December 2016, will go further.

Great news!

</comment><comment><USER67> Even then Chrome's battery usage is pathetic. I sincerely hope you guys get it right in battery consumption from within chrome rather than blaming on flash! Please! It hurts.

</comment><comment><USER68> For years!!! we been waiting for Flash to be kicked to the curb.

</comment><comment><USER69> Remember when this was a selling point for android devices? I think everyone that owned one pretty much touted it as the killer feature.

<comment><USER70> "Everyone that owned one" feels like kind of an exaggeration, but it was a big feature at the time. I found it very useful for video players and was glad my phone could plug the gap while the web caught up to HTML5.

</comment></comment><comment><USER71> It's great that Google is highlighting the importance of power efficiency as a major part of their justification for killing flash. Now they need to fix Chrome itself: [http://www.theverge.com/2016/6/20/11975514/microsoft- chrome-...](http://www.theverge.com/2016/6/20/11975514/microsoft-chrome-edge- browser-battery-life-tests)

</comment><comment><USER72> Don't want to troll around but it seems to me only two things are inevitable: taxes and Flash Obituaries. ;)

</comment><comment><USER73> I use Linux, what's flash? Joking, but seriously I would like HBO now to finally work on my Linux boxes.

</comment><comment><USER74> "This kind of Flash slows you down" .. Shame they apply the "block" only to "this kind of flash".

</comment><comment><USER75> great decision, it is time to move forward. i believe flash will cease to exist in 5 years

</comment><comment><USER76> will they address the elephant in the room and also say that Google analytics slow down 90% of the web just for tracking?

</comment><comment><USER77> I updated my Chrome today (Mac OSX) and the graphics took a huuuuge step backward. Almost like someone accidentally published the Linux build to the Mac link. A couple of my friends have reported the same experience, but I don't see anything official about this. Am I going to have to attempt to downgrade to get the better UI back?

<comment><USER78> It's the new "material design". You can disable it in chrome://flags to get the non Windows 95 style back. I too hate it. Not sure what the recent design trend of sucking all colour from UIs is hoping to achieve.

<comment><USER79> Just know that that flag will not stick around. It will be removed at some point, the rule of thumb is 2 major updates, so 12 weeks.

If you have actual issues with the new design, file bugreports or issues.

<comment><USER80> Where they will sit ignored and unaddressed like literally every complaint about crappy browser UI.

(Me, bitter?)

</comment></comment></comment></comment><comment><USER81> Since recently flash in chrome makes my computer reset after 3s of video playback...

<comment><USER82> What kind of system are you working on?? That is ridiculous. Flash has never made any computer that I have ever owned reset.

<comment><USER83> And anecdotal evidence of what never happened to you, still works best, to ridiculise other peoples experience, right?

</comment></comment></comment><comment><USER49> Surprised they didn't just ban it from the browser outright, like they did with Unity.

<comment><USER84> They didn't ban Unity. The legacy NPAPI extension format (which the Unity web player plugin was built on) was deprecated in favour of PPAPI.

NPAPI was outdated, unperformant and insecure, the goal of PPAPI was to address those issues. All that would be needed for Unity web player to work out-of-the-box in Chrome again is for it to be ported to PPAPI

<comment><USER79> And they were given a 4 year heads up that chrome was going to remove it.

Instead Java used that time to build several help pages that showed you how to install other browsers then made a shitty anti-chrome campaign when it was finally removed, and unity just sat there and did nothing the whole time.

<comment><USER85> Here's what a Unity dev said:

"I don't expect Chrome to keep supporting PPAPI native plugins for any longer then they have to (in order to support Flash), because it has the same security issues as NPAPI.

And, porting the plugin to PPAPI would be far from trivial, and not be compatible with existing content anyways"

Is any of that fundamentally wrong? They decided it was a better use of their time to go right to WebGL.

<comment><USER79> Honestly I'm not that sure, and that was a shitty way for me to word it about Unity. The big thing with PPAPI is that it can be much more sandboxed than NPAPI ever could, which means it already has a big step up in security, but obviously anything whose purpose is to circumvent the restrictions put in place for the browser is going to be inherently less secure than just running a website. In the end PPAPI could let you run code from a webpage as "root" on your computer, and there is nothing Chrome or anyone else can do to stop that.

That being said, I think Unity is going in the right direction trying to get away from plugins altogether. They are trying (successfully IMO) to compile to "true" web technologies and let the game be exported as HTML5 and javascript which is the right choice.

</comment></comment></comment></comment></comment><comment><USER86> Flash has one key advantage over HTML5 video.

Flash can be blocked, through browser extensions, CSS, or simply by removing the !@#$%^&*() Flash plugin, disabling all autoplay video.

HTML5 has no such similar functionality.

This feature of Flash is very sorely missed.

(/etc/hosts or similar blocklists of all known video service providers is an effective and reasonably concise, if not entirely perfect, alternative. I recommend it.)

<comment><USER87> That's not really correct. It can be blocked both by extensions (ABP and uBlock), and by CSS (just hide <video> or other containing element).

<comment><USER86> My experience on hiding video was that the video was hidden, yes, but the audio continued to play and video content, I believe, was being downloaded.

I've yet to find an extension which blocks _all_ video effectively. Or prevents autoplay.

Chome/Android doesn't support extensions at all. So there's that.

Flash, by its very blobbiness, had an effective defeat mechanism: remove the blob.

Again, for video, especially autoplay sources, I've found blackholing the video platform provider's hosts or domain quite effective. It's still only a handful for most offenders. And if the practice spreads we may see pressure from the providers themselves to defeat autoplay.

Though those of us blocking will be beyond caring.</comment></comment></comment>


Philosophy of Ghost in the Shell - <AUTHOR> http://ghostintheshellphilosophy.info <comment><USER2> Stand Alone Complex is actually an amazing social commentary on emergent resistance movements among a group of marginalized people in the era of "fake news" or "false memories". It was way ahead of its time -- and even more relevant today than it was a decade ago.

Trump is basically the galvanizing "cult of personality" figure who was able to connect with a population that was marginalized by both the government and the media -- much like Hideo Kuze was to the refugees. In the case of Trump, he energized the people, but also similar to Kuze, he can't really control every aspect of the emergent behavior (anti-semitism in Trump's case, etc). I would even say that it's similar to the Kuze storyline in that the "cult of personality" figure is actually being manipulated by a foreign power (ironically the American Empire in SAC) for their own ends.

Similar comparisons can be made with Al Qaeda, ISIS, Boko Haram, or any other movements that start with legitimate gripes but are manipulated by false information to different ends.

It's definitely not a new phenomenon, but SAC was amazingly prophetic about how it would play out in an age of instant communication. It's unfortunate that it's so difficult to approach (you won't really "get it" until your second or third watch through) -- I don't know any other show that had multiple episodes that were essentially philosophical lectures by the main characters / tachikomas .

<comment><USER3> While Kuze is kind of a launching point, Trump is more like one of the other members of the Individual Eleven. He's a byproduct of a collective group that is already spawning copycats. He's had lateral movement from social power to personal power, and harnesses both, which other copycats simply have failed to do so far. He's a sort of evolved organism.

I heard an example of it today in a program by the Guardian, covering the special election in Montana. The reporter interviewed an old (80? 90?) lady, who said this one candidate was clearly ridiculous because he had a TV ad where he shot a television. The reporter then mentioned how the opposing candidate - her candidate - ran an identical ad. She said they were completely different examples. He then said she probably only thought they were different because one of them was for the candidate she wanted, and she agreed. Another example was when the reporter asked her why she supported Trump regardless of his failures or scandals, and she said because he is a real, normal person. The reporter offered that many people find him the opposite of a normal person, and she replied that they don't know what they're talking about.

 _" Gouda notes that there is a tendency within a Stand Alone Complex for the masses to unconsciously project their inadequacies and common desires onto a leader."_

I think this kind of self-manipulation in order to achieve a specific goal is essentially a form of Stand Alone Complex, in the form of thought patterns being duplicated among a group, with no explicit intention to do so. In order to achieve an unspoken specific social change the people follow an icon, and do anything they need to do to continue following that icon and eventually achieve the goal.

<comment><USER2> I dunno; I do think Trump fits the structure (with someone like Bannon acting as Gouda in this case). Regardless of how you feel about him, he is clearly a very charismatic person -- SAC mentions MLK and Hitler as pre-cyber examples of people around whom a Stand Alone Complex formed, so the motives of the person are less important than their charisma and ability to identify and address the distributed concerns of the population.

Trump was obviously able to tap into this collective consciousness / common desires -- a border wall is a stupid fucking idea that basically every expert thinks is a waste of money, but is an example of the masses projecting their inadequacies onto him (and Trump reacting in turn to give them what they want).

</comment></comment></comment><comment><USER4> I think it might be appropriate to do a brief introduction for western readers about Japanese (Shintoist+Budist) philosophy first. If you're an _old school_ manga/anime consumer you probably know a bit about it indirectly with Studio Ghibli movies and others.

In most modern philosophy spirits are assigned to humans (with exceptions), while in Japan everything in nature has a spirit/energy [1]. This makes the concept of nature different between our cultures, animals even more different so the concept of a robot is really different.

So a _Ghost in the shell_ for us westerns is kind of obvious; a robot has nothing, it _is_ a shell by default, and you can add a human consciousness which is just a group of thoughts like you'd add a different program. However for the Japanese culture where everything has _vital_ energy this is not entirely the same concept. An empty shell/robot is a void much larger than what a robot is for us and a normal, working robot in the real world has _something_ making it move. Heck, even "electricity" includes the word "気" (spirit/energy).

Of course I am not good at explaining all of this and just know it because I like learning about it. But I do think that there are important cultural differences when watching this movie and many details are lost from a western point of view.

[1] [https://en.wikipedia.org/wiki/Kami](https://en.wikipedia.org/wiki/Kami)

<comment><USER5> > So a Ghost in the shell for us westerns is kind of obvious; a robot has > nothing, it is a shell by default, and you can add a human consciousness.

I don't think it's obvious at all. If you can add a human consciousness to a(n entirely non-human-biological) robot, then that "human consciousness" is no different in nature to the robot's software. A difference in degree, certainly, but not of kind. Yet most westerners would claim a difference in kind between software and a "person".

Point taken, though, about the way the film's interpretation changes depending on the cultural mindset of the watcher. I'll do some reading. :)

<comment><USER4> Ah sorry, I was trying to make emphasis on the part that the robot _is_ an empty shell for us and not specially on human consciousness being easy to swap/just software (for which I agree with you).

Edit: After thinking and reading about it, I think that is actually the opposite in the other direction. What might shock us _is_ the concept of the spirit being transfered, while for Shintoism that is not _such_ a shocking concept since they are not so concerned with the afterlife and their spirit will just join nature:

"The afterlife, and belief, are not major concerns in Shinto; the emphasis is on fitting into this world instead of preparing for the next, and on ritual and observance rather than on faith." \- interesting read: [https://www.japanspecialist.co.uk/travel-tips/shinto- buddhis...](https://www.japanspecialist.co.uk/travel-tips/shinto-buddhism/)

</comment></comment></comment><comment><USER6> We're in an interesting cultural moment for narratives like this, between Her, Ex Machina, GITS, Alien: Covenant, the upcoming Blade Runner 2049, and the great TV show Westworld.

This is my favorite essay on these themes, tying together threads spanning from ancient myths to contemporary movies: "The Robots Are Winning!" [http://www.nybooks.com/articles/2015/06/04/robots-are- winnin...](http://www.nybooks.com/articles/2015/06/04/robots-are-winning/)

One interesting thing I've understood when discussing GITS the anime vs the new movie is that in the anime, Motoko embraces her cybernetic body, so the question is: What does it mean to be human? But in the new movie, Major is the first cybernetic body, so the question is more: Who am I? This an interesting essay by Hideo Kojima about the differences: [http://www.glixel.com/news/hideo-kojima-on-the-philosophy- be...](http://www.glixel.com/news/hideo-kojima-on-the-philosophy-behind-ghost- in-the-shell-w475805)

By the way, people into GITS might like this post we made about shots in the movie recreated from the anime: [https://medium.com/@gitsost/a-love-letter-to- ghost-in-the-sh...](https://medium.com/@gitsost/a-love-letter-to-ghost-in-the- shell-how-shots-from-the-2017-movie-allude-to-the-anime-972a7dfb74e8)

<comment><USER7> > people into GITS might like this post we made about shots in the movie > recreated from the anime: [https://medium.com/@gitsost/a-love-letter-to- > ghost-in-the-sh...](https://medium.com/@gitsost/a-love-letter-to-ghost-in- > the-shell-how-shots-from-the-2017-movie-allude-to-the-anime-972a7dfb74e8)

I find it quite superficial to call the new movie a love letter just because a number of stills have similar elements in them.

As an example: In the water fight scene the anime has a LOT of story-telling with her actions being clearly based on high level moral motivations, as well as observations of and adaption to the progression of the fight itself. Every action taken has a reason and nuance behind it, based on who and what her adversary is as well as the tactical situation. In the movie it's a straight- up beat-down of an almost entirely unresponsive puppet.

<comment><USER8> Indeed. Less a love letter than a cheap porn adaptation, IMHO.

As a long-time GITS fan, the new movie was a complete disappointment. It added nothing new or interesting, and dropped almost all of the philosophical content of the original.

If you haven't seen the original, start there. And then move on to the sequels, the TV show, etc. if you want. But avoid this new one. None of the individual elements (soundtrack, cinematography, etc) are the equal of the original and as whole it is utterly lacking in style and substance.

<comment><USER2> I don't think you can do GITS as a live action movie. The amount of special effects required to pull it off means the budget needs to be huge, but that also means you have to "dumb down" the plot for mainstream audiences to have a chance to recover your costs.

<comment><USER6> Well, you also can't have those lengthy expositions from the 95 anime. I think in a good film you would show the outlines to philosophical angles about consciousness without filling them in with so much prose. Of course GITS '17 went a bit too far in the other direction of keeping the dialog too simple, eg. the bad guy blurting out his clearly-bad motivations. I think Westworld achieved a good balance of throwing in monologues while keeping scenes lively...

<comment><USER2> Yeah; that's what I meant about "dumbing down" the movie. I agree that Ghost in the Shell in all of its iterations is heavy on exposition -- which makes it a difficult show for audiences to get into.

I also agree about your point about Westworld -- I think Ghost in the Shell could be pulled off as a live-action TV series because the exposition could be spread out across a whole season. Because it often doesn't have a guaranteed global market at the time of production, anime in general tends to be a balance between ambition and budget -- the compromise often being "recap" or "expositional" episodes focused on one or two characters (fewer voice actors to worry about) and using recycled animation. I get why they do it, but it's frustrating.

</comment></comment></comment></comment></comment></comment><comment><USER9> I rather like Hannu Rajaniemi's take on "ghost-dubbing" among the Sobornost in the Flower Prince trilogy. He posits that each initial individual ("Prime") can create unlimited copies ("gogols") which may be full or edited. Although they have individual consciousness, they're all managed by a "metaself".

There's a downside, though. The masses become gogol slaves, used basically as appliances by the Primes.

Edit: Also, the Primes make highly numerous copies of slave gogols, introducing random variation, and then select for performance on some task.

<comment><USER10> David Brin's book Kiln People is a really fun book which runs along these lines as well.

</comment></comment><comment><USER11> Some admin should add a [spoiler] flag to it.

Fantastic read. It's sad such great content has no right to stay on Wikipedia, where this article originated. (I'm not implying the rules of Wikipedia are wrong.)

<comment><USER4> For a story that has decades? IMO it'd be akin to a [spoiler] alert when talking about LOTR or similar.

<comment><USER12> I didn't finally watch Citizen Kane till a few years ago, and somehow I'd made it my whole life without the end being spoiled.

I can't say the same for Soylent Green.

</comment></comment></comment><comment><USER13> Related to this, I've been considering how we can accurately report on incidences such as arsons or shootings without giving them a narratively appealing context.

My naive approach was to replace "terrorist" with "some asshole", so that the news report "Terrorists detonated a bomb" would become "some assholes detonated a bomb". This is a joke example of a real concept. I think that our news sources have tried to do something similar by referring to ISIS as "Daesh", but the significance was lost on non-Arabic-speakers, and its usage never caught on.

<comment><USER14> John Oliver used this strategy effectively in his HBO coverage of the 2015 Paris Bataclan attack by calling the attackers "Unconscionable, flaming assholes, possibly working with other fucking assholes".

Donald Trump has recently begun calling terrorists "Losers".

George W. Bush called Al Qaeda members "thugs and killers".

You are also correct that Daesh is preferred in Arabic media over the term ISIS, and although the former is really an acronym, it is close to to the Arabic words 'Daes', 'one who crushes something underfoot' and 'Dahes', translated as 'one who sows discord'. Members of the group also really hate the term being used to describe them, which helped spur it's usage.

It's a strategy that's been used for some time and has proven effective in some cases in discouraging copycat behaviors.

</comment></comment><comment><USER15> Reading this reminds me why I was disgusted with the recent remake of Ghost in the Shell.

The merging of minds between Kusanagi and the Puppet Master was the finalé in the journey Kusanagi took through the film. To remove that final step from the remake made me angry.

<comment><USER16> Spoiler alert: Not only that, but making the "Puppet Master" Kusanagi's ex boyfriend is so cringe-worthy.

</comment></comment><comment><USER17> > Gouda notes that there is a tendency within a Stand Alone Complex for the > masses to unconsciously project their inadequacies and common desires onto a > leader.

Sounds very familiar.

</comment><comment><USER18> The about tag at the bottom points to a wikipedia page that was deleted but this content also lives here: [http://ghostintheshell.wikia.com/wiki/Philosophy](http://ghostintheshell.wikia.com/wiki/Philosophy)

<comment><AUTHOR> Thanks for the note, just added the link to the site.

<comment><USER19> It would probably make sense to also link to the deletion discussion: [https://en.wikipedia.org/wiki/Wikipedia:Articles_for_deletio...](https://en.wikipedia.org/wiki/Wikipedia:Articles_for_deletion/Philosophy_of_Ghost_in_the_Shell)

</comment></comment></comment><comment><USER20> That article has an extremely strange title. It links to a few philosophical topics, like dualism, without exploring them and then gives a plot synopsis.

</comment><comment><USER21> Apart from the philosophy I find it interesting to note, that the website has all external links routed via the Web Archive, even those, which are not going to get lost that easily, like Wikipedia's.

<comment><USER22> since the sites content was originally a wikipedia article which got deleted, i think this is a good choice to preserve the articles in the form they have been linked too. Archive.org is so amazing, but it is sad that it does not work for a lot websites nowadays.

</comment></comment><comment><USER23> The reading experience is really rough on mobile: huge font with weird spacing to keep it justified.

<comment><USER24> It looks really good on desktop.

I find it really annoying that we now have to design/develop for different screensizes. The web used to be much more simpler when we were just making 1024*768 pages with <table>s

<comment><USER25> We don't need to design/develop for different screen sizes when it's just text and a few images. The developer in this case decided to use font-size 130% which is too big. Combined with justified text, it will be painful to read on a small screen. Justified text is more suited to print.

<comment><AUTHOR> Thanks for the feedback. Just made font smaller.

</comment></comment></comment></comment><comment><USER26> Let me guess, just as Ruby on Rails, is Ghost in the Shell a new framework for web development using Bash?

(just kidding...)

<comment><USER27> If that's what you want there's always Bash on Balls! [0]

[0] [https://github.com/jneen/balls](https://github.com/jneen/balls)

<comment><USER28> I can't see any reason to favor that over COBOL on COGS[0].

[0]: [http://www.coboloncogs.org/INDEX.HTM](http://www.coboloncogs.org/INDEX.HTM)

<comment><USER26> Why should I work with COBOL ON COGS when I can be using a more modern framework such as COBOL ON WHEELCHAIR?

[http://adrianzandberg.pl/cobol-on- wheelchair/](http://adrianzandberg.pl/cobol-on-wheelchair/)

<comment><USER28> OMG, somebody actually invested the time to create a _real_ web framework for COBOL!?!??? ROFLMFAO... I have to try this out now.</comment></comment></comment></comment></comment>


Now I have been censored by Facebook - <AUTHOR> https://medium.com/@0rf/now-i-have-been-censored-by-facebook-ac1ffe094476 <comment><USER2> This is the inevitable result when you erode free speech. Many will say Facebook is private and therefore free speech is not an issue here (an issue up for debate), but the concept is the same. Once you start banning speech for any reason, you no longer have free speech, and the wealthy and powerful will find ways to ban any speech that they don't like. All the people advocating that we ban "hate speech", criminalize "cyberbullying" or otherwise ban speech they find offensive are useful idiots to the powerful interests that want to eliminate free speech for purposes of control. Nothing is as central to the concept of a free and open society then free speech and free expression.

</comment><comment><USER3> What makes you think that Facebook is censoring you rather than an employee of Facebook who is being paid by somebody else? This is a classic technique of subversion. You don't have to control an organization or get their leaders on your side. You simply get some of your own people into that organization in jobs that have the powers that you want to exercise.

These people are sleepers (like the Manchurian candidate) who wait for instructions. To keep them on your side you pay them extra above and beyond the Facebook salary. And when you activate them to do your bidding, you pay them a bonus.

From the outside, it looks like the organization(Facebook) is unfair but in reality it has been subverted.

So, is there any evidence that this is anything other than subversion by a 3rd party political organization?

Free speech is clearly not the issue since there is no free speech in America today. Anyone who looks objectively at the media and free speech over a time scale in decades, will have noticed the steady erosion of free speech since the beginning of the Cold War.

Speech has been "captured" by powerful elites. What you see as an assault on free speech is simply one of those elites exercising one of their levers of power. The freedom of speech was already lost when those elites got away with capturing speech.

What people today see as "free speech" is only a phantom that is allowed to exist because it covers the real capture of speech. But whenever that phantom of free speech threatens to have a "material" impact, then the owners of the USA, clamp down and beat it back to a dull humming noise.

As Marie Antoinette said, let them eat cake. Or Juvenal who said about 2000 years ago, let them have bread and circuses.

<comment><USER4> This explanation feels much more plausible to me. Either that or it's just a cock-up. If it was a command from on high then it's the dumbest thing ever as it was obviously going to be noticed.

</comment></comment><comment><USER5> As much as we all may loathe Trump - they do this to him every day, all day.

I recently had to do some video editing related technology work - we used Trump speeches as samples.

Watching a bunch of Trump speeches, none of which I have ever seen in full (because I generally don't care about him) - I found that his rhetoric was pretty normal actually. He wasn't bombastic or crazy. Neither were his positions.

But reading the CNN headlines every day - you'd think the guy was Hitler. They took a lot of things out of context.

Now - maybe Trump is 'too dangerous' or whatever to be President - I don't know - I'm not American and I don't have that much of an opinion on it politically, other than he does say some things that are a little scary ...

That said - the means by which information is edited is just as powerful as creating the script oneself.

You don't need to put words in someone's mouth - all you need to do is selectively show the words you want to create a narrative.

And of course - this happens all across the spectrum, not just with more extreme candidates.

<comment><USER3> If you've ever been interviewed by the media, you will be shocked at what they publish. Distortion of the message is ingrained even when the topic is totally non-political.

The media is mostly about doing a "rush-job". Hurry up and get it out.

</comment></comment><comment><USER6> See also - swaths of conservative Facebook groups disappearing, Twitter pulling hashtags critical of Clinton, Reddit taking action to limit the presence of Pro-Trump posts. Regardless of my political affiliation, I am infuriated that both sides of the aisle are being silenced for speaking against the corporate-supported establishment.

</comment><comment> amiga-workbench Why people expect anything different from Facebook & Twitter utterly eludes me, it takes all of 15 minutes to spin up your own server and host whatever content you fancy.

Locking most of the discourse on the web into two or three private platforms severely limits the kinds of discussion that will be tolerated.

<comment><USER3> There is open source software called [http://pump.io/](http://pump.io/) that does most of what you want in a social network. If you are technically inclined, then yes it is easy to set up a server and run this. But even if you are not technically inclined, there is such a large population of people who have these kind of skills nowadays that if you search through your circle of friends, you will find them.

Talk to them, ask them to set up a server for you. Offer to manage it on behalf of your circle of friends, and go for it.

P.S. nobody says you have to have only one server and one circle of friends. You can set up a separate one for your circle of political acquaintances too. This is what the web was created for, not to make a small number of new national networks that dominate everything.</comment></comment>