Show HN: Browser plugin that turns 'disrupt' into 'bullshit' - <AUTHOR> https://chrome.google.com/webstore/detail/disrupt-to-bullshit/mahaemfhlcjficbbkbpmkbhhenfnikcf <comment><USER2> Love this! I'd also love to see a plugin which replaces the disgusting term "growth hacking" with its actual meaning - "marketing".

<comment><USER3> I'd like to see "metrics" replaced with "measurements" – metrics is the theory of measurement, not the measurements themselves.

</comment></comment><comment><USER4> I wonder how the community over at addons.mozilla.org (AMO) feels when they see something like this. On one hand, there's a sense of "We'll never see any playful plugins like this because our approval process is slower than Apple's and less well defined."

On the other hand, their garden is well groomed while the Chrome Web Store has a lot of noise...

<comment><USER5> But Mozilla didn't lock their browser down to only install addons from their own app site. So you can load addons from any developer's own web site (or any other site), which is what usually happens for toy stuff like this. e.g. [https://github.com/DaveRandom/cloud-to-butt- mozilla](https://github.com/DaveRandom/cloud-to-butt-mozilla)

<comment><USER6> Chrome lets you install .crx extensions on your own too, although it's harder.

Not that I like the proprietary Chrome or the fauxpen Chromium...

<comment><USER7> They will also warn you a few browser restarts later that the extension may be malicious and disable it for you. I know this, because I used to make my own extensions, distribute them as .crx files, and people would use them. Now they keep getting disabled. The only way around it is to list them on the chrome store. You can have an unlisted entry on the chrome store which is free, but they will remain in control of your private keys and update process. And of course they will know that the extension exists and who uses it.

The only way around this, apparently, is to install the developer edition of Chrome, which means being plagued with bugs and possible security risks. Splendid.

[https://support.google.com/chrome/answer/2811969](https://support.google.com/chrome/answer/2811969)

<comment><USER6> Woah what the fuck. Thank God I don't have to use this crappy browser except for a few pages that break in FF.

<comment><USER7> Yes, I used to be an avid Chrome user but recently feel like it has becoming less and less pleasant.

</comment></comment></comment></comment></comment></comment><comment><USER8> petition to add word 'pivot'.

countdown until an addon with 'cloud', 'disrupt' , and 'pivot' functionality initiated.

<comment><USER9> Let's add some more:

      lean
      vertical
      arena
      ninja
      rockstar

It'd be nice to have a plugin that masks all of the lame business-speak on the internet...

<comment><USER10> You need to suggest what those words should map to, otherwise, what are we suppose to do with them? Map them to bullshit also? That would make the article not necessarily make sense.

I propose the following:

lean -> no money

startup -> small business

disrupt -> survive

vertical -> business

arena -> business

ninja -> obedient intern

rockstar -> young and naive

growth-hackers -> salesmen

cloud -> rental servers

social media -> facebook clone

analytics -> number crunching

Consider the following sentence translation:

"We are a lean cloud-based startup looking to disrupt the analytics arena in the social media vertical, we are looking for growth-hackers who are also ninja programmers and rockstar coders."

Maps to:

"We are a no-money rental-server-based small business looking to survive the number crunching business in the facebook clone business, we are looking for salesmen who are also obedient intern programmers and young and naive coders."

<comment><USER11> But I already have "cloud" mapped to "butt". I'm conflicted now.

<comment><USER12> closures to the rescue...

        var dict = {
                'disrupt': 'bullshit',
                'growth hacking': 'marketing',
                'rockstar': 'arrogant jerk',
                'ninja': '2cool4u',
                'guru': 'knowitall',
                'lean': 'cheap',
                'startup': 'small business',
                'social media': 'facebook clone',
                'FREE': 'free',
                'cloud': (function () {
                    var a = [
                        'rental servers',
                        'butt'
                    ];
                    return a[Math.floor(Math.random() * a.length)];
                }) ()
            };

</comment></comment></comment></comment></comment><comment><USER13> This plugin is so _bullshitive_.

EDIT: Hey it works!

</comment><comment><USER14> I am really digging this trend.

</comment><comment><USER15> Silly, but I think still generally more useful that the people who seriously use the term "disrupt" when talking about their big ideas.

</comment><comment><USER16> That is one disruptive plugin.

<comment><USER17> It is so unfortunate that bullshitive is not a word...

<comment><AUTHOR> The plugin actually contains a large number of rules for different forms of the word 'disrupt'. Try it and see. For instance, both the words 'disruption' and 'disruptive' become 'bullshit'.

<comment><USER18> This comment makes no sense once you have the plugin installed, and that's wonderful.

</comment></comment></comment></comment><comment><USER19> The best thing i saw in a month. simply awesome, might force me to move from Safari to Chrome :)

<comment><AUTHOR> Or, make a Safari version! If there's enough interest and no one else does it, I'll get around to that at some point.

<comment><USER20> I'd stick to Firefox and Chrome. They're both widely used and fully cross- platform (Windows, Mac and Linux). Desktop Safari is kind of the modern-day IE in that it's artificially tied to a single OS (Apple dumped the Windows version of Safari a couple years ago with no notice leaving users in a lurch).

</comment></comment></comment><comment><USER21> What is _really_ needed is a plugin for turning "beautiful" into "ordinary"... It really distrupts me when companies/people puts " beautiful interface" as one of the features of their app/site/whatnot.

</comment><comment><USER22> Does chrome also have a cloud to butt plugin? If so it may become my main browser (again).

<comment><AUTHOR> Yes, it does. But both Disrupt to Bullshit and Cloud to Butt are available for Firefox as well, if you don't want to switch. Disrupt to Bullshit's Firefox link is not searchable yet, but it's [https://addons.mozilla.org/en- US/firefox/addon/disrupt-to-bu...](https://addons.mozilla.org/en- US/firefox/addon/disrupt-to-bullshit/)

<comment><USER22> thank you very much!

</comment></comment></comment><comment><USER23> After "cloud to butt" and "disrupt to bullshit" how long until there's an arbitrary regex replacement addon for Chrome/Firefox so we can stop writing new plugins and just add new replacements?

<comment><USER24> It has been around for many years. It's called Greasemonkey.

<comment><AUTHOR> Thanks for the tip. I'll check that out.

</comment></comment></comment><comment><USER12> Quick and dirty greasemonkey version for firefox: [https://gist.github.com/kennethrapp/571d5d8e2d9c875d27be](https://gist.github.com/kennethrapp/571d5d8e2d9c875d27be)

<comment><AUTHOR> Nice. I have also put a version of Disrupt to Bullshit up on Firefox's add-on store already: [https://addons.mozilla.org/en-US/firefox/addon/disrupt-to- bu...](https://addons.mozilla.org/en-US/firefox/addon/disrupt-to-bullshit/)

But I initially didn't spread the word about it as much as for the Chrome one because as previous commenters have noted, the Firefox one is under review for 10 days, and before that it's not a searchable page.

<comment><USER12> Turns out mine replaces the href inside links too... so that's annoying.

<comment><AUTHOR> It should not do that. If it does, there's a bug. Can you tell me what page you're looking at?

EDIT: Oh, you mean the actual text inside the "a" tag? Yes, the plugin will change that in its current form. It would be pretty trivial to not have it do that. I will add that next. In the meantime, I don't think the link itself will be affected -- even now, you should be able to click on it and it will go to the right place.

<comment><USER12> Sorry.. I was talking about my script. I was just lazy with the regex but I fixed it, although it's still a bit buggy.

</comment></comment></comment></comment></comment><comment><USER11> We need to start working toward a generic plugin for word replacement so that I can merge this with my existing s/cloud/butt and s/keyboard/leopard substitutions.

<comment><AUTHOR> Yes. I think it should consist of two independent modules. The first would be the basic mechanism for creating the plugin, walking the node, and doing the text conversion, which would just be a function you could pass in. Then it would have a build step to make Chrome and FireFox extensions.

Or maybe you would want to pass in a series of regexp replacement pairs there, but even that is too limiting, I think. You might want to do something based on information about the whole node, not just the regex

Then the second module would be the good-enough natural language processor. You'd have an API for nouns, one for verbs, etc.

</comment></comment><comment><USER25> Realizing that these regexes are running each time I open a page makes me realize how far the browsers have come since I've started web programming ...

<comment><AUTHOR> Totally. It takes about 30-40 milliseconds on a typical news page, and that's after I added a pretty hacky series of brute-force regexps in a panic after I realized that I had been assuming that disrupt is always a transitive verb, but it's increasingly used intransitively these days, especially in the kinds of articles this plugin is meant for.

So the translation, ('We disrupted that industry' => 'We rained bullshit on that industry'), was rendering badly when the verb was used intransitively ('We can't disrupt on our own' => 'We can't rain bullshit on on our own').

The regexps I added have mostly taken care of the problem for the time being, as Chrome auto-updates its extensions in users' browsers. Now the latter sentence above renders 'We can't bullshit on our own.'

Once I reintegrate the new rules into the generalized verb creation function this weekend, it should be a little faster.

</comment></comment><comment><USER26> "Pivot" replaced with..."we don't know what we're doing."

Open to suggestions. Not feeling clever today.

</comment><comment><USER27> It should also do these:

rockstar -> arrogant jerk, ninja -> 2cool4u, guru -> know-it-all

</comment><comment><USER28> I enjoy viewing ad agency sites with this plugin enabled.

</comment><comment><USER29> This needs to be endorsed by Karl Pilkington.

</comment><comment><USER30> Beautiful. Thanks for this!

</comment><comment><USER31> Brilliant

</comment><comment><USER32> This plugin is interesting as well as this thread because it shows the large portion of minds here think we maybe in a bubble. Meaning, disruptive startups or products are not really so, people are seeing through.

</comment><comment><USER33> How witty.

(Apologies to anyone with a sarcasm-detecting extension that I just broke).

</comment><comment><USER34> Why so negative?

If any industry is to call itself disruptive surely it should be ours.

Edit: -4 points and counting but nobody to dispute whether negativity is actually a bad thing or whether the technology industry hasn't been "disruptive". Well okay free-minded people, do your thing.

<comment><USER35> _If any industry is to call itself disruptive surely it should be ours._

If any industry is arrogant enough to make the locals of the city we move to for work hate us, surely it is ours.

<comment><USER34> That's a very manipulative comment you've written.

I won't fault you for your opinion that it is arrogance to say that technology is disruptive.

However, I would like to point out that it is technological disruption which causes the economic disruption to previous settlers and this often happen when rent-seekers try to make a profit off a quickly rising class.

It's not "brogrammers arrogance" and words like "disruption" that are driving out the more humble people. It's rising rent which is the problem. The new engineering class has had a tax placed upon it by elites and the original workers are just collateral damage.

Do tech workers really want rising rent? When A raises prices on B and causes C to be driven from a market it is not B's fault for existing or wanting to congregate somewhere in the world.

I don't live in SV. Maybe those people are truly arrogant. Maybe this has everything to do with their arrogance, and nothing to do with the rent-seeking being imposed on them.

<comment><USER35> I'm not talking about the economic disruption to the city per se, I'm talking about the social arrogance of the people on the ground. Both in general and specifically how they think about the economic changes.

<comment><USER34> I just get annoyed that people want to shit on tech workers for pushing them out of a city when it's clearly rent-seeking and bad policy that those tech workers have little control over causing the problems.

When firing a gun point it at the right people. Anti-tech sentiment will cause cultural problems without fixing the underlying economic problems. It's sad.

Edit: I'd take a bet that a bunch of mostly introverted nerds don't have anyway as big of an arrogance problem as many other groups might.</comment></comment></comment></comment></comment>


Github is down :( - <AUTHOR> http://twitter.com/#!/github <comment><USER2> Who cares? You can still code and commit code. Thats the magic of a DVCS.

If its bothering you that you can't push, take a break and watch the football game, or something[1]. The Bills might win their first game this season and the Jets were playing like they're trying to lose to the Browns (but are still winning).

1\. No, not everyone is American. But, even in Australia, its not even 8AM on a Monday yet. I think its safe to assume that its not the busiest time in the world.

// edit: My point (glibly made) was that this shouldn't stop you from writing code, if you don't want it to. But, there are plenty of other things to do as well, besides coding.

<comment> Vic-nyc It's been down for over an hour. For some of us who work on projects during weekends, this IS one of the busiest times.

I don't know about you but seeing mine and other people's repositories and history completely gone is unsettling, to say the least.

And regarding being able to work without it - well, I happen to need to look into the source code for some of the libraries I depend on.

<comment><USER2> Git is a dvcs and while magical, GitHub isn't the only way to view a repository or its history.

If you have a clone of your project (and you _do_ have a clone, right? One copy of anything and its never safe), the entire history is still there. You can view it with `git log` or any other web interface out there.

<comment> Vic-nyc Believe it or not, in this case I did not have a clone of that external library, since I am using it as a jar. I was therefore relying on GitHub for browsing the actual source code.

</comment></comment></comment></comment><comment><USER3> I reckon they are just doing it so in a couple of days they can post one of those "We're being transparent by giving you way too much information about what went wrong" articles that are so popular these days.

Actually, I'm just making jokes on Hacker News because GitHub is down. I can't believe how much I rely on that thing.

</comment><comment> Vic-nyc I had quite a scare. I was searching for this fairly popular repo and when I saw it was gone, I was afraid the author took to the hills like _why. I then thought maybe I've done something wrong when I saw that all my history and repos were completely gone. Finally, twitter revealed they are having problems.</comment>


Why GitHub used Haskell for Semantic - <AUTHOR> https://github.com/github/semantic/blob/master/docs/why-haskell.md <comment><USER2> > An example of this is the concept of resumable exceptions. During Semantic's > interpretation passes, invalid code (unbound variables, type errors, > infinite recursion) is recognized and handled based on the pass's calling > context. ... Porting this to Java would require tremendous abuse of the > try/catch/finally mechanism, as Java provides no way to separate control > flow's policy and mechanism. And given Go's lack of exceptions, such a > feature would be entirely impossible.

Not knowing much about FP, It'd be great to see a more in-depth article explaining this problem domain a bit more and showing some side-by-side examples of Haskell's specialized call sites compared to a Java try/except/finally solution (although Python would be a better procedural exception-based language to compare to)

One of the main reasons I don't care much about Haskell is because without any side-by-side comparisons of Haskell vs <insert procedural language> I don't understand what the Haskell advantages are, and I don't know when I'm dealing with a problem space where Haskell would help me.

<comment><USER3> > One of the main reasons I don't care much about Haskell is because without > any side-by-side comparisons of Haskell vs <insert procedural language> I > don't understand what the Haskell advantages are, and I don't know when I'm > dealing with a problem space where Haskell would help me.

This is one of haskell's biggest problems. It's just enough outside of the normal flow of imperative languages (yet usable for the same problems) that you can't tell how much of an improvement it is unless you try it. Also, people who write haskell are more inclined to share lofty/abstract/interesting-to-other-haskellers code rather than your normal day-to-day code that is massively improved/safer and benefited from haskell's features.

I've mentioned this before, but one example of where it became apparent to me how much haskell had changed what I expected from language was non-nullable types. It's starting to be really common in languages now (typescript, kotlin, etc), but if you are used to writing imperative languages, the worry of nil/None/null is ever present, and a concept like Optional<T> is actually quite foreign looking. If you really think about it, it means that _none_ of your language is safe -- none of your functions are safe because they said they wanted a String but you might have gotten a null that _looks_ like a String to the typechecker and will blow up at runtime.

Another key improvement in haskell is the removal of class-based code-sharing (i.e. inheritance) -- the separation of behavior and data is really important, and most languages are starting to come around to this now (go w/ structs + interfaces, java w/ data classes, kotlin w/ data classes, rust w/ structs + traits), but haskell (and other ML languages) have been there for a while.

Yet another key improvement in haskell is the errors-as-values paradigm that is everywhere. If some function has a possibility of failure, then it _should_ return `Maybe TheThing` or `Either AnError TheThing` (see how nice and legible those types are?) -- this forces explicit checks on failure and allows cases where there isn't a chance of failure (just `TheThing`) to speed ahead without nullchecks and be fairly certain. This actually pressures you into trying to sequester failure across your codebase -- you try to write functions that have signatures like `TheThing -> SomeArgument -> OtherThing` (see how legibile that is?), to minimize on the amount of `Maybe x` or `Either error x` you have to deal with -- this is often if not always good for codebases.

Maybe this is something I can help with, I write about pedestrian haskell a bunch, and I've been meaning to do a blog post on why haskell is better <your language>, something to really rustle the jimmies.

BTW, the quote about resumable exceptions is actually referring to a concept called a monad, which can be incredibly hard to grasp if you don't look in the right places (there are a lot of bad tutorials out there), or don't give your brain long enough to marinate in the concepts. If I were to take a stab at explaining it simply, in this case it's like a combination of exceptions-as- values (i.e. _not_ go's approach, and _not_ java's approach) and the value that is being passed around has enough state in it to continue stop, fix itself, whatever else. When something goes wrong in most imperative languages, you kind of get the hell out of dodge, and you lose access (usually) to whatever work was done up until the function boundary -- it doesn't _have_ to be this way but it usually is.

<comment><USER4> It's interesting that any time I read about Haskell, I realize most of the features can be found in other languages.

Functional programming and lazy evaluation are common in Apache Spark ("analytics engine for large-scale data processing."). You cannot write a good pipeline if you think in terms of imperative language.

Non-nullable types can be found in Java (@NonNull) and in C++ (references). C++17 got std::optional type.

We have languages without inheritance, like Go, Rust and so on.

Errors-as-values are pretty common as well (C++'s boost had boost::error code for a while now, and of course there is Go again)

Even monads find themselves in other languages -- using org.apache.spark.rdd.RDD is pretty close to IO monad.

I find this an unfortunate downside of many Haskell tutorials -- they often claim there are unique features that are present in Haskell only, but on the closer inspection, it turns out those features are present / can be trivially added in many other languages as well

<comment><USER3> Hey that was kind of my point -- but I think you have it in reverse, Haskell has had a lot of this stuff _for a long time_ (as in most of them since it's inception), and it's trickling down to other languages now.

But to make some concrete counter points:

\- Apache Spark is not a general purpose programing language (you're totally right about FP and lazy evaluation being important in DAG-land of course)

\- "Non-nullable types can be found in Java", yeah except them being _the default_ is the big innovation, along with the recognition of the problem, and facilitation of the worldview that recognizes the issue. Optional didn't show up until a few years ago (Java 8?), first class functions weren't a thing without subclassing till around then too, Function references, Functional interfaces, etc. I'm less familiar with C++ and it's commendable that it's adopting new things and people are moving forward, but it's basically the gold standard of footguns with type-system scopes attached (again I don't write C++ on a daily basis and haven't felt just how much better the new editions are).

\- Go and Rust _learned_ from Haskell, Rust heavily so. BTW these days I'm more and more of the opinion that Rust is the one more worth praising of the two

\- What go does is kind of error as values, but it's also kind of not -- I mean a near complete lack of use of exceptions at all. The distinction is subtle, but coding to _always_ handle the error case (because it _is_ the result) is different from having a sometimes-present error code that you sometimes check.

\- Again, you're right that Monads are everywhere -- Haskell didn't invent the concept, but it is one of the places you can go to see it actually used functionally and _learn_ from what people are doing with it (never mind all the novel papers).

Haskell is one of the few places that all these features come together to form a coherent whole.

</comment></comment></comment></comment><comment><USER5> I'm really curious why Haskell has seen so little adoption in industry. Is it just the difficulty? Or a chicken-and-egg effect with tooling and libraries?

One thing I've wondered is if it actually isn't ideal for a lot of cases. FP is beautiful for certain things. But in some domains (or pieces of domains), state and mutation aren't just unfortunate implementation details, but a core element of the problem space. For these cases, the FP answer is usually "recompute and replace" (generally with immutable data structures that make this efficient). This can be syntactically clunky when it's a major part of your application, and not just a necessary evil to be swept out to the edge. The most successful languages let you be pure-functional where it makes sense and then stateful where it makes sense. Haskell doesn't, really (from my cursory reading about it).

<comment><USER6> It's 100% the difficulty. Anyone saying otherwise is lying because they want Haskell to be popular, adopted it very early on in their career when they could really invest in it, or is a natural at this type of stuff and simply doesn't know any better.

I've learned about 10 different languages now and Haskell easily had the highest learning curve. Most languages I was able to get semi-usable in within a couple days, at least to do some minor stuff that works. But Haskell was a real commitment that took months until I was comfortable doing real stuff.

You have to learn about how to mutate data and how to manage state using monads and functors, how to query through complex objects using lenses, even getting it to parse some complex data coming from a JSON feed into a usable form requires a good understanding of the type system.

But ultimately besides when I first learned Clojure (my first exposure to FP), I don't think there's a language that has taught me as much about programming as Haskell. It was very rewarding and something I still continually dabble with and learn from on the side.

I've yet to pull the trigger and actually build a full side project with Haskell. Which is typically my biggest test. I've found Erlang/Elixir to be the far better middle ground from my day-to-day work in Ruby/JS when I want something modern, fast, and functional.

Once PureScript becomes stable I have a feeling I'll be diving harder into Haskell and may finally make that full commitment it requires for a real project.

<comment><USER5> You seem like someone who could answer this: why use PureScript over Elm?

<comment> T-R I've worked in Elm a decent bit, and used PureScript a little.

Elm is a very opinionated language - it's very deliberately missing some abstraction power (typeclasses), and some functions that are the bread-and- butter of every functional programmer have steadily been getting removed from the base libraries, so if you're used to Haskell, you'll find yourself falling back to duplicating code by hand a lot. Elm also makes certain stylistic choices into parse errors - "where" clauses are strictly forbidden, and indentation preferences are strictly enforced. It's basically taken an awkward edge-case from Haskell's indentation rules and made it not only a requirement, but a prerequisite to seeing if there are any other errors in your program. The back-and-forth trying to get the compiler to accept things that would just work in Haskell, but don't because of someone's stylistic preferences, is absolutely maddening.

PureScript, from the bit I've used it, is like a strict version of Haskell with row polymorphism, a feature Haskellers have been hoping for for a while. I've chosen Elm over PureScript in the past because of PureScript's dependency on Bower (which I think has changed since then), but that's the only reason.

<comment><USER7> > indentation preferences are strictly enforced. It's basically taken an > awkward edge-case from Haskell's indentation rules and made it not only a > requirement, but a prerequisite to seeing if there are any other errors in > your program.

Some parsing is less efficient than Haskell because Elm doesn't have 20+ years of PhDs working on it, but there is no such thing as compiler-enforced formatting. I can't think of compiler errors regarding format that are the expression of a choice, as you put it, rather than the expression of less manpower.

Likewise, `where` clauses aren't forbidden, they are simply not implemented, which, given that you can already use `let.. in`, is not especially shocking.

<comment> T-R The omission of where clauses was explicitly a stylistic choice[1].

This is perfectly valid Haskell:

        #!/usr/bin/env stack
        {- stack script --resolver lts-12.19 -}
        data Test = Test {count :: Int}

        test = let
          something = Test {
            count = 5
          }
          in 5+(count something)

        main = putStrLn $ show test

To get the equivalent Elm to compile, it _must_ be indented like this:

        test = let
                   something = {
                     count = 5
                     }
          in 5+(something.count)

Note that `something` _must_ be indented beyond the beginning of `let`, and the closing curly brace _must_ be indented to the same level as `count`. These are both not a warning, but a parse error - you can confirm it with Ellie[2]. If that were due to a lack of resources, it would absolutely be understandable, but this also was an explicit choice[3] which developer time was spent implementing.

[1] [https://github.com/elm/compiler/issues/621](https://github.com/elm/compiler/issues/621)

[2] [https://ellie-app.com/5KRg4g5ZMkba1](https://ellie-app.com/5KRg4g5ZMkba1)

[3] [https://github.com/elm/compiler/issues/1573](https://github.com/elm/compiler/issues/1573)

</comment></comment></comment></comment></comment></comment><comment><USER8> I don't like these posts (for any language, not only Haskell). Invariably they will list many points, most of which are subjective or tangential.

There are one or two core points (here I guess it is "Control Flow") that would benefit going into much deeper. I think, you'll find these points aren't as solid as they appear (cf. other threads in the comments).

Using Haskell is fine. You don't have to justify it. It's enough to like it, being comfortable and productive with it.

Own your gut. Don't make pseudo-truth argument lists to justify your decisions.

<comment><USER9> I agree with you. It's sufficient to like using a tool and be productive with the tool to justify using it.

But sometimes, solid engineers who are productive with certain tools are working at the behest of unenlightened managers. Articles that say "BigCo uses X for Y because of Scientifically Sounding Reasons" help those engineers use the tools they like and are productive in.

</comment></comment><comment><USER6> Seems to be the same reason Facebook used it and one of the well-worn areas that Haskell has proven itself (language parsing/analysis).

The section about their day-to-day experience of programming serious software with Haskell compared to other languages is really interesting though.

</comment><comment><USER10> > it's worth mentioning that Semantic, as a rule, does not encounter runtime > crashes: null pointer exceptions, missing-method exceptions, and invalid > casts are entirely obviated, as Haskell makes it nigh-impossible to build > programs that contain such bugs.

This I think is the real drug of Haskell.

There are lots of challenges involved with moving to Haskell for production software, and the article notes some of them. But once your code builds and you ship -- man, there is nothing remotely like it. v1.0 software running for weeks in prod without a bug.

Then, the super-sauce is: maintainers don't break your already-working code. Sure new code might have bugs, and deep semantic changes to code can break anything, but workaday fixes to one corner of the codebase simply can't break all the other corners. v2, v3, v4 all migrate to production with none of the working stuff falling over.

PS I don't buy that the "control flow" feature couldn't have been done in Java -- however I would bet huge dollars that you couldn't do it in a way that wouldn't require massive investment in maintainers understanding a complex and subtle data-driven control flow pattern that any single dev could easily subvert, intentionally or not. I was a huge fan of FP-style coding in Java, but it required buy-in from all maintainers; as soon as somebody got lazy and went back to mutability etc there was nothing to stop them.

<comment><USER11> There's another "real drug" hidden in the subtext of your post and Semantic's post, right in between

"Sure new code might have bugs, and deep semantic changes to code can break anything..."

and

"Its language features allow concise, correct, and elegant expression of the data structures and algorithms we work with."

\- the notion that fundamental abstractions (not just the ones someboy thought up like the Gang of Four) compose well. This is something that we've seen the industry slowly migrating towards in the form of functional JS flavors like typescript and purescript, Java's lambdas, Scala's Cats and so on.

The ability to refactor and as importantly be confident that your refactor is not messing with the semantics of anything upstream is a hidden feature of static types applied to expressive abstractions.

So far, I have only seen this achieved with Haskell's libraries, type system, and reliance on fundamental mathematical concepts while also being able to avoid any "there's something rotten in Denmark" moments. The content in the Hackage ecosystem is a wonder of the modern programming world, warts and all.

There are many rough edges to the development process, as always, but at least in Haskell you can limit the language's contributions to that edgeset. It actually makes you want to produce good code and be a better developer as a result!

</comment></comment><comment><USER12> Apart from being a great language, Haskell also has a great community. I recommend learning the lang and interacting with the people (irc, #haskell on freenode for example). :)

</comment><comment><USER13> "Semantic" looks pretty neat. Are there are previous threads or announcements about Github's goal in developing it (i.e. services for which they plan to use it)?

<comment><USER14> I saw on Twitter[1] that they're using it to show which methods/functions changed in a pull request[2].

[1]: [https://twitter.com/rob_rix/status/1134537990095720450](https://twitter.com/rob_rix/status/1134537990095720450)

[2]: [https://github.blog/2017-07-26-quickly-review-changed- method...](https://github.blog/2017-07-26-quickly-review-changed-methods-and- functions-in-your-pull-requests/)

</comment></comment><comment><USER15> > Editor tooling is sub-par (especially compared to language communities like > Java and C#) and finicky - we often end up just compiling in a separate > terminal.

[https://github.com/ndmitchell/ghcid](https://github.com/ndmitchell/ghcid) is a great tool that does exactly the last part.

</comment><comment><USER16> This week I need to do some crazy validation in C#. I wrote a bunch of plain imperative code. Then I thought I could use applicative validation with LinQ.

I tried to wrote Maybe, Either and Validation, and wanted to extract an applicative and monadic interface. Then I found there are huge pitfalls and difficulties to do it properly.

I also tried the same thing in JavaScript, while it's not a safe language, but the equivalent idea is quite easy to express.

The thing I found disturbing is typical static typed languages limit our expression of imagination. Every now and then I work in Java or C# project, when I tried to express some abstract I would mostly face some difficulties. When I tried to express those ideas to colleagues they mostly didn't think about those things ever.

On the other hand, the dynamic nature of JavaScript (of course Ruby and Python, etc) make things easier to express and try new ideas. I can express new ideas to dynamically typed languages programmer much easier. There's definitely "box" for programming languages which prevents people from thinking "out of the box".

A lot of people tend to think of Haskell as a Perlis language. And I think statically typed languages without a flexible design makes Anti-Perlis languages.

<comment><USER17> It sounds like you're trying to judge Haskell based on your experience of Java and C#? Don't do that. The Java/C# type systems have substantial limitations, but that's not a problem of type systems in general, it's a problem of C++-family languages specifically.

<comment><USER16> On the contrary, I'm not judging Haskell and Haskell is one of the most Perlis languages to me.

I'm judging Java and C# etc (statically typed but not flexible) are Anti- Perlis because it draws too many imagination boundaries to their users.

</comment></comment></comment><comment><USER18> The control flow section perplexed me a bit, just because you can embed a DSL in Haskell with monads doesn't mean that "control flow isn't embedded in the language". You still have a main entry point and all functions are executed top to bottom albeit with lazy semantics. You could write a DSL and interpret it with C# with all of the properties they want. Haskell is better for this sort of task but their reasons seemed off. Am I misunderstanding that section?

<comment><USER19> Using C# as an example, foreach and IEnumerable are baked into the language as is try/catch and more recently Async/Await. These are all just library functions in Haskell and often more general (e.g. forM in Haskell works for any Monad not just IO). Because they are library functions they can be changed/customized very easily. In C#, how could foreach be made to support a different stream type, exceptions be made checked or Async/Await be made to suspend across stack frames?

For this reason, Haskell is probably closer to a general purpose language than many of the imperative systems programming languages (especially Go).

<comment><USER20> C# has LINQ. Implement Select and SelectMany extension methods for whatever you like, and you can use the LINQ syntax with your type just as easily as with IEnumerable. Foreach and async/await are baked in, that's true, but the LINQ syntax is easily extendable to new use cases.

<comment><USER21> I wonder why this is?

[https://www.infoq.com/interviews/erik-meijer- linq/](https://www.infoq.com/interviews/erik-meijer-linq/)

(from "3\. How does LINQ work?")

 _What we have done, and what the mathematicians call Monads, we have identified these sets of operations, we call them standard query operators; we have a list of about 25 standard operators that you can apply to any data model._

</comment></comment></comment></comment><comment><USER22> Request change to

Why Github uses Haskell for its newly released Semantic package

<comment><USER23> Why?

<comment><USER24> Because in its current form the subject and verb don't agree.

<comment><USER23> Only in American English. Groups are plural in British English. "The police are corrupt" vs "the police is corrupt".

<comment><USER25> I have no idea if what you're saying is generally true, but I can say with certainty that no one would ever say "the police is corrupt" in American English.

<comment><USER26> A better example might be a British soccer club, e.g. Chelsea are corrupt.

</comment></comment></comment></comment></comment></comment><comment><USER27> > _Semantic is a singular project and we often find ourselves at the edges of > modern computer science research._

This is exactly where I DONT'T want to be when creating production software. If that's thrilling to you then by all means. As for me, I like my software boring.

</comment><comment><USER28> I don't understand why they didn't use Java with ANTLR. It can also generate parsers in many other languages, but Java version supports more advanced stuff.

There's already parsing support for many languages, and the parser itself is world-class. It's used internally by tons of systems. [https://en.m.wikipedia.org/wiki/ANTLR#Projects](https://en.m.wikipedia.org/wiki/ANTLR#Projects)

I mean, I guess Haskell is cool, but their critism of Java sounds like more of a design choice than a deal breaker. Did they really need to reinvent this wheel in an unpopular language where almost nobody can reuse/improve their work?

I don't mean to be dismissive, but when your plans are to open source something corporate sponsored, you should do it in a way that benefits the community significantly. There's 20 other languages they could have chosen that fulfilled that objective better

<comment><USER29> > I don't mean to be dismissive, but when your plans are to open source > something corporate sponsored, you should do it in a way that benefits the > community significantly

This is a super weird objection to me; is your argument that open sourcing something that might not be useful to others is worse than just keeping it closed-source? Even if literally nobody else ever gets any use from this, I don't see why it's harmful for it to be open sourced. More generally, I feel like companies releasing everything that they don't have a strong business reason not to as open source is strictly positive.

<comment><USER28> More if you're going to open source something that widely useful you should write it in a common language.

Otherwise the public benefit to open sourcing it is less. In this case, the project is almost as useful as binaries. It's unlikely that many will able to integrate into existing systems or even have the Haskell skills to work with it

<comment><USER29> I guess I just have a fundamentally different view on open source than you. I don't see anything wrong with a company writing a tool in the way that is best for them given their current circumstances (e.g. skills of the team working on it) and then open sourcing it. The team that wrote this obviously felt that Haskell was their best choice for this project, and I don't begrudge them for open sourcing it just because it might not be useful for others.

</comment></comment></comment></comment><comment><USER30> > given Go's lack of exceptions, such a feature would be entirely impossible.

Haskell is a nice programming language, but ultimately if a program written in language A can run on your computer, a program can be written in language B that can run on your computer and do the same things.

If you think "return foo, err" is a lot different than return "Left foo" or "Right err", then you might want to think more about how you think about computer programs.

<comment><USER31> "return foo, err" can return 4 kinds of responses:

\- foo, nil

\- nil, error

\- nil, nil

\- foo, error

What's the right behavior when the function returns both a result and an error? What's the right behavior when it returns two nils? At best, you make everybody agree to language conventions to prevent that from happening.

In Haskell (or even Swift and Kotlin with their optional types) the compiler guarantees those cases cannot happen. In Go, you just hope they never happen because almost no code handles them.

I code in Go every day. But I can't defend its decision here. I'd much rather have a richer type system where the compiler can guarantee that I'll get an error or a result, but not both or neither.

<comment><USER30> I think you just treat an error being returned as the value being ignored, which is what 99.9% of go programs do.

As for two nils being returned, I think it's reasonable for a program to run successfully without returning a result. Search for some work to do, return a list of tasks -- if there are none, the list is empty (nil) but there was no problem checking, so there is also no error. I don't see a problem.

As for the compiler checking, try running "func f() (value, error)" like "foo := f()". It blows up. What you do with the error is up to you; all Haskell adds with the Error monad is that it short-circuits to the end of the do {} block with the error value. No different than a Java exception; all of the upsides, all of the downsides.

Regardless, I stand by my original point that if you want to handle runtime errors, Haskell doesn't really add anything over any other language. Semantic has cases that handle errors. So would the program written in any other language.

The author should have just said, "I wrote it in Haskell because I felt like it" instead of making up reasons that simply aren't true.</comment></comment></comment>


Facebook is partnering with Unity for a desktop gaming platform - <AUTHOR> http://www.theverge.com/2016/8/18/12533960/facebook-unity-partnership-export-tool-desktop-gaming-platform <comment><USER2> Sample of one here: I get it why they have to do it, but I just can't see them replacing Steam. Add to that they'll most likely try to push ads and their 'vision' of social experience while gaming, and the whole thing is unappealing.</comment>


Ghostery Starts Messaging Users with "product announcements, promotions" - <AUTHOR> https://purplebox.ghostery.com/post/1016024835

<comment><USER2> According to Ghostery, you can disable this "messaging system".

Still, it's a bit concerning. Ghostery has long walked a fine line, serving both end users' privacy and advertisers' needs. Their most important asset might be user trust; nobody has the time a skill to learn what Ghostery's add- on is really doing. This move seems to suggest they are willing to risk that trust, as they appear to have no problem converting their privacy add-on into a private ad network. Users may wonder what's next, and what else is happening that they don't know about.

Also, does this change violate any Mozilla add-on rules? Users installed this add-on to limit the effects of advertising (i.e., tracking); using the add-on to send ads, even if only Ghostery promotions, is a major change.</comment>


UltraDNS Server Problem Pulls Down Websites, Including Netflix, for 90 Minutes - <AUTHOR> http://www.nytimes.com/2015/10/16/technology/ultradns-server-problem-pulls-down-websites-including-netflix-for-90-minutes.html <comment><USER2> Here are the sequence of emails we as a customer received:

1:44PM PST - The Neustar UltraDNS service is currently experiencing DDoS traffic in the U.S. East Region. The Security Operations Team is currently working on mitigating attack traffic and further updates will be provided as soon as possible.

3:07PM PST - The Neustar UltraDNS service is currently experiencing a major spike in traffic across several regions. The Security Operations Team is conducting routing changes and working to reroute traffic at this time. Customer will experience DNS timeouts and lack of resolution. Further updates will be sent as soon as possible.

4:50PM PST - At 4:18 EDT time, a service outage affected Neustar's UltraDNS service. The impact was predominately on the East Coast of the U.S., however some impacts could be seen in other U.S regions. Neustar UltraDNS Service was restored at 6:34 EDT time. We are currently investigating the root cause of the outage and will provide an update as more information is available.

<comment><USER3> The data from the outage is all here:

[https://blog.thousandeyes.com/ultradns-outage- october-2015/](https://blog.thousandeyes.com/ultradns-outage-october-2015/)

Check it out.

</comment></comment><comment><USER4> Serious question here: Do people really spend $90/month for 2M DNS queries?

[https://www.neustar.biz/services/dns-services/managed-dns- pa...](https://www.neustar.biz/services/dns-services/managed-dns-packages)

<comment><USER5> And that's even without 'DNSSEC and IPv6 support', 'Regional Routing' and 'DNS Load Balancing (where available)', that's only available for 'UltraDNS Enterprise'... (I'm running my own (Power)DNS, after EveryDNS was bought by DYN and they didn't grandfathered old plans, charging per domain, which made it extremely pricey)

<comment><USER6> Yeah - i looked at DYN and they are expensive. The "Internet Intelligence" stuff looks interesting but that is an add on.

<comment><USER7> I need some dynamic DNS for my VMs, I'm getting away with Avahi/mDNS right now but I need to set up an Active Directory lab. Do you have any recommendations for dynamic DNS? Bonus points if it's BIND9 compatible.

<comment><USER8> Put AD-joined hosts in a subdomain, e.g. _subdomain.example.com_. AD DCs are authoritative for the subdomain. Your public facing / authoritative nameservers for _example.com_ should be listed (publicly) as the only NS's for _subdomain.example.com_ and should slave it from your DCs.

</comment></comment></comment></comment></comment><comment><USER9> I suppose this was also the cause of the 90 minute Bitbucket outage today?

<comment><USER10> Surprisingly, no. Or at least they're not claiming so. They say it was a problem with a database server. [http://status.bitbucket.org/](http://status.bitbucket.org/)

<comment><USER9> That was a different "Git and Mercurial over HTTPS slow or not responding" outage from yesterday (or "02:00 and 03:00 UTC on 15 October 2015")

The more recent one started @ Oct 15, 20:19 UTC, they don't seem to have root cause on the status page for it yet.

</comment></comment></comment><comment><USER11> I am surprised that Netflix uses UltraDNS when they use AWS and they could be using Route53.

<comment><USER12> I would imagine they don't use it for exactly that case. Imagine a case where most of AWS is having critical problems, you would want (at the very least) control of your DNS to attempt a partial recovery of service for some portion of your customers that have providers who respect DNS TTL's.

<comment><USER13> Netflix is 100% dependent on AWS for infrastructure. If AWS is having problems, there is nowhere to redirect to.

<comment><USER14> of course there is, they could redirect to a page explaining the problem instead of a generic error page...

</comment></comment></comment></comment><comment><USER15> How can unicast be DDoS?

<comment><USER11> The article says it was an internal issue, not DDoS or hacking.

</comment></comment><comment><USER2> Interesting. We use UltraDNS and didn't go down at all.

</comment><comment><USER16> Titular hyperbole, much?

<comment><USER17> We changed the title from "UltraDNS takes down the Internet for 90min" to the article's title.</comment></comment>


Chart of YC companies' hosting decisions, 2010 edition - <AUTHOR> http://jpf.github.com/domain-profiler/ycombinator.html?2010 <comment><USER2> Very surprising so many people use Godaddy for their DNS, given it is very slow as far as DNS servers go. I've been running a Pingdom speed/reliability test for a few popular DNS servers for the past few months, and here is the data:

      Guide:
      <dns provider> <uptime %> <downtime> <outages> <avg speed>

      October:
      Godaddy DNS	100.00%	0h 00m 00s	0	68 ms
      Dynect SMB	100.00%	0h 00m 00s	0	31 ms
      DNSMadeEasy	100.00%	0h 00m 00s	0	39 ms

      November:
      Godaddy DNS	100.00%	0h 00m 00s	0	67 ms
      Dynect SMB	100.00%	0h 00m 00s	0	26 ms
      DNSMadeEasy	99.98%	0h 10m 00s	1	43 ms

      December:
      Godaddy DNS	99.99%	0h 05m 00s	1	58 ms
      Dynect SMB	100.00%	0h 00m 00s	0	28 ms
      DNSMadeEasy	99.00%	7h 25m 00s	22	40 ms

So basically Godaddy DNS is reliable but slow, DNSMadeEasy is relatively fast but had some uptime troubles in December, and Dynect (Dyn Inc) is fast + super reliable.

As for pricing:

\- Godaddy DNS is free (I think?)

\- DNSMadeEasy runs about $2-5/month (max of 10 million queries/month)

\- Dynect SMB runs between $30-95/month depending on what you need (max of 1.8 million queries/month)

<comment><USER3> Were the DNSMadeEasy outages related to their DDoS after they terminated DNS services for Wikileaks?

<comment><USER2> Well to be completely fair to DNSMadeEasy, this failure wasn't necessarily their entire service, it was just the one nameserver pingdom was testing, ns10.dnsmadeeasy.com. However, both GoDaddy and Dynect were tested using just one nameserver, so the comparison is fair.

I'm not sure what the cause of it was though.

<comment><USER4> Not 'fair' if you're posting statistics from one nameserver of each in order to represent uptime for the service as a whole.

</comment></comment></comment></comment><comment><USER5> Our company (Gamador) is listed as hosting from "Global Net Access LLC" which I had never heard of - we just use Linode. So there might be some Linode undercounting going on.

<comment><USER6> I believe Global Net Access LLC owns the subnet of IP addresses that Linode use.

<comment><AUTHOR> I updated my script to take that into account. The page has has been updated to reflect that change.

<comment><USER7> Heroku IPs are 22.214.171.124, 22.214.171.124, and 220.127.116.11, if you want to update the script to make the distinction from raw Amazon EC2.

<comment><USER8> Yeah, I was confused by the lack of people using Heroku.

</comment></comment></comment></comment></comment><comment><USER9> So despite the vociferous defense app engine received here about a month ago after some criticism it looks like no YC companies actually use it?

<comment><USER10> I think a large part of this has to do with programming language choice. I suspect there is a large group of ruby hackers out there who can only use Amazon, and not GAE.

<comment><USER11> A survey of language choice by YC companies would be interesting - I think Python is actually very well represented.

I'd guess that the reason people aren't using AppEngine is more that it's strategically a pretty bad idea. You can't move off it, and its constraints have a major effect on how you design and architect your application. When you're still figuring out what your product is, using a platform that requires you to design your data storage to fit the queries you are going to run isn't necessarily that smart.

<comment><USER12> Wasn't data access very slow up until recently? From the outside I question how important GAE is to Google, has it got a decent sized team behind it and will it always be around. With Amazon cloud hosting seems much more of a key business. Of course this is from the outside if I were considering options, I don't use either of them.

</comment></comment></comment></comment><comment><USER13> I'm surprised not to see more alternatives to GoDaddy for registrars (say, NameCheap.) GoDaddy interface and upselling are simply infuriating and I've always thought of it as a "Wal-Mart for domains/etc," not something a tech- savvy startup would use.

</comment><comment><USER14> I find this chart fascinating - though I'm wondering how much of Rackspace is Rackspace "Cloud" and how much of Rackspace is "VPS". Also, I'm embarrassed to admit that I'd never heard of SoftLayer as a server hosting company - I wonder what the attraction there is.

For Web Hosts it comes (roughly) to:

      o Amazon EC2
      o Rackspace Cloud
      o Self Hosted (Surprisingly large number)
      o Slicehost
      o Hurricane Electric (which is likely self hosted? EDIT (per jedsmith) Linode?)

Two things I found very, very surprising.

      #1 - Small use of Linode
      #2 - How much Rackspace is used more than Slicehost.

Anybody care to comment on why SoftLayer is so predominant?

<comment><USER15> I operate a server management company.

We we have worked with many providers, including all of those listed.

We continue to recommend Softlayer for leased dedicated hardware needs because of the features they provide, and the solid network infrastructure (although they do have hiccups on occasion).

Softlayer has a great support team, fast server deployment (1-2 hours) and full management capabilities - power strip reboot, IPMI KVM, OS reloads, etc..

<comment><USER16> I wouldn't trust Softlayer with my clients' data. Look at what happened to SimpleCDN and others. In a matter of a couple of days Softlayer pulled the plug on all their servers. SimpleCDN was erased from the CDN map. They used to have over 100 servers with them.

Regards

<comment><USER17> We've hosted our site at SoftLayer since 2006 and trust them with our customers' data. We have a significant investment in time and money in them (dozens of servers in 3 datacenters) and don't regret it.

The SimpleCDN issue involved three parties: SimpleCDN, 100TB (aka UK2), and SoftLayer. We've only heard from SimpleCDN and they threatened to sue the other two, so the silence is not surprising. In any case, my opinion of SoftLayer didn't change as a result.

<comment><USER16> FileVo is another victim. They were shutdown by none other than Softlayer without providing a reason for termination.

I do admire your courage.

Regards

<comment><USER17> I didn't know about FileVo. I just read up on their situation and curiously, it's another issue involving UK2 (in this case their MidPhase brand) and SoftLayer.

Both the SimpleCDN and FileVo shutdowns do look bad. But I'm not relying on courage, I'm relying on experience. Over four years I personally have had hundreds of phone, email, and forum interactions with SoftLayer at every level from their CEO to first level support. And countless DMCA requests. If I believed based on those experiences I was at risk hosting my company and my livelihood there, you better believe I would beat a path to the door.

<comment><USER18> From what I understand of FileVo, they were running a file upload service, not retaining any identifying information on uploaders, and not taking any steps to prevent copyrighted files from being uploaded. Softlayer's decision to terminate their hosting was no different from what any other hosting company would do (and, in fact, what they would be legally required to do!).

</comment></comment></comment></comment></comment></comment></comment><comment><USER19> Doesn't YC have a special discount with one or more of the hosting providers, which might be influencing decisions?

<comment><USER20> Too lazy to Google, but I think they have deal with Rackspace.

</comment></comment><comment><USER21> I'm not affiliated with the company in anyway, but I'm a big fan of <http://iwantmyname.com/> for domain registration. Super quick and easy especially if you're using Heroku or GAE.

It's depressing how little GoDaddy has innovated and how dominant it still is.

<comment><USER22> For me, a domain name is a commodity, so I go for the cheapest: GoDaddy.

<comment><USER23> 1and1 is almost always cheaper than GoDaddy. Currently it's $4.99 for the first year and $8.99 afterwards. GoDaddy is $11.99 per year.

<comment><USER24> You never have to pay full retail at GoDaddy. Not for .com at least. There's at least one coupon available 365 days a year; check retailmenot.com.

<comment><USER23> Even with the 30% coupon it's still not cheaper for the first year or following years.

<comment><USER25> Does it matter if your domain costs $3 more or less _per year_?

I'll gladly pay plenty more only to avoid being exposed to the ridiculous mess that GoDaddy calls a web interface.

</comment></comment></comment></comment></comment></comment><comment><USER26> I'd like to move my email away from Google Apps, for various reasons, but they have the best spam filter by far. It's worth sticking with them just for that.

<comment><USER27> Would you care to elaborate? I'm just getting to grips with Google Apps and would be interested in what experiences others have had with it.

<comment><USER28> There is very little spam; what's to elaborate?

<comment><USER29> How about, "I'd like to move my email away from Google Apps, for various reasons."

I am always interested to know what pitfalls other smart people have run into.

</comment></comment></comment></comment><comment><USER30> I'm interested in seeing aggregates of technology choices like: primary database, main programming language(s), frameworks, etc

<comment><USER31> I'd love to see that too, but it's not something you can easily identify just by querying their web server. This list was compiled using the domain-profiler tool:

<https://github.com/jpf/domain-profiler>

</comment></comment><comment><USER32> Oh, a bit of a side note on hosting for startups. I know many people want to save costs by centralizing hosting, but as a word of advice keep your database, mail, and web servers separated. By not doing so you've created a single point of failure. Not only that, but it makes securing things appropriately more difficult (ie. you are unable to create only web server specific firewall rules for the server).

<comment><USER33> A good trick we've been using while building <http://www.webpop.com> has been to use the cheap small instances on the Rackspace cloud to build a mini version of a nice distributed setup with load balancers, web servers, database servers, monitoring, etc...

The small instances are very cheap, and we've been automating everything with chef, so it's east for us to gradually scale up by adding large instances to our cluster instead of small ones.

This means we've been able to build a scalable and secure infrastructure, that didn't cost us much more than a hundred bucks a month during development.

<comment><USER34> We've been doing the same thing on Linode, and initially did our development on Rackspace cloud. One important thing to note about Rackspace cloud is that your private network bandwidth is limited to 10mbps when you're on their small Xen instances - this may not be a big deal during development, but after you go live if you have any traction, then with simultaneous backups, sql replication, and any other chatter that might be happening between servers, it can really "slow down", and you might end up having to move to larger instances simply for the port speed, even though your existing server is sufficient in regards to CPU, RAM and disk.

Our testing ended up leading us back to Linode, since with a simple support ticket you can up your private interface to the full 100mbps. So our "combo" ended up being Linode + Amazon S3 (since for many of our items the reduced redundancy storage is sufficient, and is half the price of could files).

It's sure fun though setting up your own small "cloud" system ;)

</comment></comment></comment><comment><USER35> Anyone that's self-hosting email care to explain why they're doing it? Seems like something that makes no sense to do internally until you start getting more "enterprisey".

<comment><USER36> I'm not affiliated with a YC company, but I do self-host my email. My reasons:

1\. I'm a control freak and a privacy freak. I don't trust any third party with my email. I want to know how things work under the hood. And if I want to make a change, I don't want to have to depend on any third party to do it.

2\. It's not hard to do. apt-get install postfix and dovecot, invest a couple of hours munging config files, and you're done.

3\. Much easier to transition your data if you do get "enterprisey." All your data is on your server, so you can just tar it up and ship it anywhere.

4\. You can configure the server so that insecure connections are not possible, making it that much less likely that someone will leak a password accidentally.

5\. Stealth. It's much less likely that someone will try to break into my server than into Google's servers.

<comment><USER37>
      2. It's not hard to do. apt-get install postfix and dovecot, invest a couple of hours munging config files, and you're done

Bullshit. There's troubleshooting when things go wrong, patching, maintenance, etc.

edit: don't forget adding additional storage, managing spam and malware filtering, user admin, backups, and other tasks.

      5. Stealth. It's much less likely that someone will try to break into my server than into Google's servers.

You wish. Your single server is much easier to target and break into than Google's.

<comment><USER38> With Google email hosting you just have to worry about a few hundred people who can read all your email, their data retention policies, and who can subpoena your private communications.

(conspiracy theory: Google gives the public one text box on a webpage to search the Internet. Do you think they don't have a text box on an internal webpage to search all of Gmail? Do you think facebook doesn't have one internal webpage capable of searching all private communications? Facebook used to advertise "spy on your friends!" as an employment perk.)

<comment><USER37>
      and who can subpoena your private communications.

Hate to break it to you, but that same subpoena can just as easily allow your house, office, or datacenter to be raided. Your data is just as susceptible to lawful intercept at Google as it is your private premises.

<comment> mike-cardwell When self hosting, you can make sure that deleted email has actually been deleted. You have control over how long logs are kept. You have control over whether or not to use encrypted filesystems.

</comment></comment></comment></comment></comment></comment><comment><USER22> I'm surprised Slicehost is not present. Perhaps is it included in Rackspace?

<comment><USER39> I was wondering if anybody who uses Slicehost would elaborate on the advantages of Slicehost over Linode?

At the surface, it would seem that Linode offers more bang for your buck (almost twice as much) and outdoes Slice in the performance benchmarks.

Thoughts?

<comment><USER6> Slicehost is more friendly to inexperienced sys admins in terms of docs, etc.

<comment><USER40> But you can use all the Slicehost docs while you setup your Linode box, which is what I do :)

Linode also has StackScripts, which are pre-configured user-contributed setups for your VPS, so setting up a LAMP server is really easy.

<comment><USER41> Linode has <http://library.linode.com/> too.

</comment></comment></comment></comment></comment><comment><USER42> Loopt is self hosted? Is that actually cost effective? I can understand a company like justin.tv being self hosted, but loopt makes less sense to me.

<comment><USER43> We're not 100% Microsoft. Probably 80% though.

We do it for security and privacy reasons. It matters less now, but for getting early carrier deals it was key, and now those agreements still bind us.

I use Amazon EC2 personally and would love to use it for more at Loopt, but can't.

<comment><USER42> Ah interesting, that makes sense. I'm sure carriers threw a bunch of inane capital intensive requirements at you. Frame relay anyone?

</comment></comment></comment><comment><USER44> Is this only pre-acquisition companies?

Where's reddit? ;)

FWIW:

Web Host: EC2 (Amazon)

Email Host: Self hosted

DNS Host: Akamai

Registrar: Corporation Service Company

SSL Issuer: None

Certificate Type: None

<comment><AUTHOR> > Is this only pre-acquisition companies?

Yes, it's a "List of active Y Combinator startups that haven't exited yet."

[https://github.com/jpf/domain- profiler/blob/master/ycombinat...](https://github.com/jpf/domain- profiler/blob/master/ycombinator-list)

</comment></comment><comment><USER45> I love that despite all the Firesheep business, about half of the companies on that list don't even own an SSL certificate. :-(

</comment><comment><USER46> Seems like a few companies have chosen WebFaction for email hosting. Any specific reason?

<comment><USER47> I was wondering the same thing. Maybe they started out on WebFaction before moving to a VPS or cloud server and decided to keep their email there?

</comment></comment><comment><USER48> This is pretty cool Joel! Small nitpick - Zerigo is spelled incorrectly as "Zeroigo".

<comment><USER49> I recently switched to Zerigo after years with DNSMadeEasy. I got tired of their clunky interface from 1993 and their login captcha (?!). Zerigo has a fantastic UI, quite refreshing...

</comment></comment><comment><USER50> Google Apps uses Go Daddy for domain registration. Would that be why there are similar number of Google Email users and Go Daddy Registrars?

</comment><comment><USER51> Surprised to see no one using Linode.

<comment><USER5> We (Gamador) are using Linode, but it lists us as being from some no-name hosting. So something is awry with the Linode stats.

<comment><AUTHOR> I'll fix that after I'm done with the meeting I'm in now.

Edit: Fixed.

</comment></comment></comment><comment><USER52> I'm surprised that no–one is using Linode.

<comment><USER5> We (Gamador) are using Linode but it does not list us as using Linode, so I suspect this is a problem with the script.

<comment><AUTHOR> Host is determined by the name of the owner of the netblock that the IP address of the A record for that domain is in...

</comment></comment></comment><comment><USER53> I think it's very telling that something like 60% of YC companies have a SSL certificate...means they are most likely processing some financial transactions, so they charge their users directly

it's also interesting that so many are using the hurricane electric host...never even heard of them before

<comment><USER54> Or they like to handle logins properly.

<comment><AUTHOR> Or that they paid attention when Firesheep came out.

</comment></comment></comment><comment><USER55> So, no YC companies on Rails use Heroku? (or is that lumped into Amazon?)

<comment><USER56> Look at the 'certificate type' column for *.heroku.com. That shows at least 8 using Heroku.

</comment></comment><comment><USER57> what is the catch with google as email hosting? we use rackspace, it seems nobody is using rackspace for email. What is the criteria in choosing email hosting?

<comment><USER58> Google Apps email is free and easy. The paranoid will not use it, because Google can read your email, possibly with good reason.

</comment></comment><comment><USER59> I don't see any prgmr.com hosting. I've seen it mentioned quite a few times in when people were looking for hosting.

<comment><USER60> prgmr will appear has Hurricane Electric ash thats who I believe provide all their IP space.

</comment></comment><comment><USER61> Missing are data stores. Web store isn't the same thing. I'd like to see the percentage that use S3.

</comment><comment><USER62> i am very surprised that linode is not in the chart for webhosting section! something must be wrong

</comment><comment><USER63> Surprised to see none of them using Route 53. Suspect that won't be the case in a year's time.

</comment><comment><USER64> Surprised how few of these I knew, considering I read HN pretty regularly

</comment><comment><USER65> I am surprised to see no heroku.

<comment><USER66> Look at the SSL column for *.heroku.com. They are all listed as using AWS for web hosting.

</comment></comment><comment><USER67> best charts ever

</comment><comment><USER68> would have been even better if the "language decisions" would also be included - what programming language each startup has

</comment><comment><USER69> Great to see godaddy successfully disrupting the ripoff ssl certificate market.</comment>


The Social Commerce Attribution Problem - <AUTHOR> http://techcrunch.com/2012/11/26/the-social-commerce-attribution-problem/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Techcrunch+%28TechCrunch%29 <comment><USER2> A known issue, I remember listening a talk where Gokul at Facebook used to position themselves as mid-funnel company. The entire online display advertising space today is direct response & bottom of the funnel as search advertising. Companies like Vizu (now Nielsen) is trying to address this measurement of brand lift, question is do brands believe in them!</comment>


Google and Bing to deprecate piracy websites - <AUTHOR> https://www.theguardian.com/technology/2017/feb/20/google-and-bing-to-demote-piracy-websites <comment><USER4> Why are search engines getting involved in censorship? I understand that they need to blank out certain sites as required by law, but omitting them entirely is a bad move. When I perform a search I want it to search the web, not the approved-web.

<comment><USER5> Because they're afraid of having iy forced down their throats. Pre-emptive complicance with regulations that don't exist yet is a way for businesses to maintain their autonomy in uncertain regulatory climates. Cf. antibiotic use in animal factory farming.

<comment><USER6> This is pretty brutal, because in the end these "chilling effects" versions of censorship can be much harsher than any actual government censorship (which would be constrained by the First Amendment and judicially reviewable).

</comment></comment></comment><comment><USER7> Although, the elephant in the room is most piracy happens under their roof, at least for music. I used to "steal" music on p2p. Now I just "watch" youtube.

[http://www.digitalmusicnews.com/2016/05/05/what-music- piracy...](http://www.digitalmusicnews.com/2016/05/05/what-music-piracy- really-looks-like/)

<comment><USER8> I would argue however that in some instances its a bit ambiguous if it is 'stealing' in that way with Youtube. While i think there are obvious examples of this (user freemusc69 certainly is NOT the legitimate copyright holder or the artist known as Kayne West, for instance), I do not believe official music video uploads like those from Vevo to youtube on behalf the recording artist or the record label are piracy in the same respect....or why would they even bother?

I think the bigger problem the music industry has with youtube is semi- legitimate: They used the non-official uploads as a leverage to get them to sign en masse for Google Play Music / Youtube Music Key instead of doing the proper thing and enforcing the DMCA take downs of the music at scale. They could easily do most of this algorithmically by doing sample checks with automated software and it would likely work most of the time (plus, they could work with rights holders/publishers/record companies to maintain a 'white list' of channels that wouldn't be scanned if they're uploaded by the channel owner unless an actual DMCA complaint was filed against that channel and it turned out to be legitimate).

Like most things, the real story is very complicated, and there isn't usually a good vs bad side as the water is very murky in the details.

<comment><USER9> I believe they do what you described, but it's not perfect. In order to do it, they need to know what a song sounds like and who owns that sound. If the owner hasn't uploaded it, then they can't take down copies. They also have the problem that the copyright on a certain song might have expired, and therefore one uploader can't claim copyright to every recording (but will try). Another thing is that they will sometimes catch someone for just having a snippet of a song in a video (fair use). The result is that they can't just take every matching video down, they have to hold it in dispute, which means it will stay up for a while.

<comment><USER8> I wouldn't expect it to be perfect i suppose. I didn't mean to imply that it would be.

I would say having some experience with the actual business of distributing music, that alot of distributors that are used to say, get your content on iTunes and the like en masse, do have the capability of allowing a service to 'sample' a song and do a lot of pre-checks of verification in that way.

They could tap into that ecosystem for legitimacy. It certainly does get harder beyond that though.

</comment></comment></comment></comment><comment><USER10> > _It means [search users] will more likely to be taken to bona fide providers > rather than pirate sites, where a user's security may be at risk._

I'm 100% certain that was the main motivation for the change. /s

<comment><USER11> It might not be the _main_ motivation, but it's certainly a legitimate concern. Malware does get distributed via illegal content sharing sites. Those sites do get used for phishing and card fraud.

While I can't say I'm full of sympathy for pirates who get hoist by their own petard, plenty of innocent people also get hurt because they don't realise the site they are visiting is not kosher. It was high up on their favourite search engine, after all!

Sending their users to those dangerous sources is hardly in any search engine's best interests, regardless of any other incentives that may be at work here.

</comment></comment><comment><USER8> I fail to see how this is censorship. They're not censoring content that you are able to access legitimately nor are they stopping you from finding content that you agree or disagree with. They aren't stopping facts from coming to light. They aren't stifling news sites.

They're stifling an illegal act of procuring content that is within the confines of the current law, agree with it or not, thats all these sites allow you to do.

I don't think for instance, pirate bay has ever been known for its breaking news on current events.

Edit: For what its worth, these are private companies after all. So 'censorship' in terms of a legal or constitutional definition under freedom of speech, would not apply here anyway.

<comment><USER12> > I fail to see how this is censorship... They're not censoring content that > you are able to access legitimately

Legitimately doesn't come into it.

        censorship
        noun
        "the suppression or prohibition of any parts of books, films, news, etc. that
        are considered obscene, politically unacceptable, or a threat to security."

<comment><USER13> So not censorship in this case. They are removing illegal software sites from their company websites.

Side note, I'd like to hear the age of people who argue either side of this topic.

<comment><USER14> 38, born in a communist country.

Yes, it is a censorship. It is manipulating the output in order to not provide an information, that would be otherwise available, caused by interest of some third party.

To expand on the topic:

1) it is not illegal to tell other people where to find bootleg software or media,

2) in many countries it is legal to download such software or media (and they pay for the privilege in the form of an extra fee on their blank media, memory cards and hard drives, whether they do it or not)

3) what is illegal is to distribute software or media without the consent of the rights owners.

Point 3) is an issue between those sites that do it and the rights owners, nothing between the end users or search engines. Neither of them do 3) themselves.

<comment><USER13> Are you OK then with Google removing sites that are spam, or sites that aren't mobile friendly, or removing a site from the top 10 page one results? Are you good with children being presented with porn/cigarette/alcohol/whatever advertising/results? At what point does "censorship" fall off, and common sense take over.

<comment><USER14> Neither of those you named are Google problems.

Nobody of us might like spam, but there is obviously something that keeps these in the business. What? Eradicate _that_ , remove their cash flow.

I might not like sites that aren't mobile friendly, but fortunately, when I'm not in a mood so scroll around it, I can always close it. No need for Google to step in.

I also do not like children being presented with porn/cigarette/alcohol/whatever advertising/results. But - these result do not come themselves, they are initiated, usually by those children. There is more need for parenting, than for Google protection. If it really bothers you, most routers allow for filtering the web, and some ISPs provide that as a service - for those interested, as it should be.

The problem with common sense vs censorship is: where you draw the line? That's the hard question, and easily abused one at that. Especially by entities like Google, who are not a harmless protector of innocent or knight in shiny armor. They are businesses, who have interest that may not align with yours, especially in the long run.

<comment><USER8> Which is also why you're free to take your business elsewhere.

There are a myriad of search engines out there. They have competition.

I would say Google's right to do what google wants to do trumps any real arguments against them doing this here. I doubt they'll have any notable downtick in users.

Of course, you right to have an opinion on their practices is valid, i hope its not coming across as if its not, i just wanted to focus on the realities of the situation for the broader reading audience

</comment></comment></comment></comment></comment></comment></comment><comment><USER15> In another reality it's easier to offer services people want, made available by technological developments, than spend billions of dollars in lobbying to force people to use antiquated modes of purchase.

I've paid Steam and Spotify for 13 and 9 years respectively to not have to do any work in getting games and music.

Now if only the movie (and to a lesser extent TV) industry caught on.

</comment><comment><USER16> A couple of thoughts:

1) This could open up the market again for search engines (ie - "we don't censor your search, so use us instead of the other guys".

2) How long until you try to search for "{name of research paper} pdf" and you only get links back to the pay-for-access sites for research papers?

Personally I think this is BS, but I understand why they are doing it. It won't stop piracy or other illegal crap - it will just move it elsewhere, like it always has. If you want the stuff, you can find it. You always have, you always will.

The second one, though, bothers me. All too often, I read an article about a research paper I want to read, only to be paywalled by one of the big research paper companies. But usually - if the paper is older than 6 months or so - <USER2> can google for it, and find a copy (sometimes a draft). In many cases, it will be off of one of the researcher's sites or blogs. Other times, it will be in an FTP archive somewhere, or linked by someone else.

It really bothers me when for a research paper, I am asked to pay anywhere from $25.00 USD or more for a PDF, as an interested individual or hobbyist. Researchers are also expected to do the same, but are largely insulated from it by their institutions, who shell out big $$$ for a subscription to the services (so for the researcher, they don't see the cost - though most know about it otherwise - plus they usually have to pay thru the nose themselves just to get it on the path to publishing!).

I have found that sometimes - in certain cases - finding the author(s) of a paper and emailing them asking for a copy (stating that I am a hobbyist interested in their work) generally works well enough to get a copy sent to me (and sometimes much more).

Ultimately - I wouldn't be surprised to see Google and Bing do this after a few threats from the publishing companies...

</comment><comment><USER17> DuckDuckGo just got themselves a few percent more traffic

<comment><USER18> The use bing

<comment><USER19> And a few other sources, and do the final ranking themselves.

</comment></comment></comment><comment><USER20> Yeah, someone should just create a search engine specifically for piracy websites.

<comment><USER21> I guess [http://yacy.net](http://yacy.net) should work fine.

<comment><USER22> Until it is blocked by ISPs. In the UK ISPs have blocked access to most torrent sites and other torrent related sites too.

It feels or seem the p2p era has seen its time at least for us in the UK, because of censorship and legitimate alternatives.

The lobbyist have finally influenced far enough.

<comment><USER23> > Until it is blocked by ISPs

And promptly unblocked by using a different DNS server or a VPN, both things no longer limited to the realm of the computer-savvy.

<comment><USER22> There's something quite telling of the need to resort to VPNs to access sites that should be accessible. A VPN isn't really a solution to the wider problem that is powerful piracy lobbyist.

I see this response all the time but fail to see how it addresses the real problem.

<comment><USER23> > I see this response all the time but fail to see how it addresses the real > problem.

It's being pragmatic rather than an idealist. Politics sucks, and nothing may change even if you do the right thing or in this case, specially if you do the right thing since your opponents don't give a shit about such concepts.

It's sad and it's dumb, but that's human nature.

</comment></comment></comment></comment></comment></comment><comment><USER24> I'm actually kinda suprised this hasn't happened already. I wish one of those distributed search engines was in a usable and useful state already. That can't be an impossible problem to solve eventhough it does seem really difficult.

</comment><comment><USER25> These corps are becoming too powerful.

</comment><comment><USER26> Automated Uber vehicles will eventually feature something similar - <USER3> on driving to 'illegal' places

<comment><USER27> Or a free ride to a police station at no extra charge, for appropriate pat down before going to high-crime location.

There's a short story im not able to find, that has this very idea as a plot.

</comment></comment><comment><USER28> Am I missing something here, because it doesn't sound like they are going to censor the content, just score them lower.

Search will always be biased, it's inherent to the problem space. Word appearance, cross linking, and every other metric used to sort and score results are always going to optimize certain things over others.

So in this case it's a matter of ethics, and I find it hard for anyone to morally suggest that illegal content should score higher and be considered more relevant, unless you want to debate over the legality of it.

</comment><comment><USER29> This could be positive for 'ethical' pirates. i.e. non-scam sites. Usually the more dubious torrent sites or similar seem to rank quite highly. Reverting to word of mouth could increase the likelihood of trustworthy sites maintaining their prominence.

Everything above is written with the full knowledge that there is some irony in talking about ethics and trustworthiness in relation to copyright infringement. Nonetheless - I think the terms still carry some validity in context.

</comment><comment><USER30> These are usually spread by word of mouth, rather than Googling. Of course, Google and Microsoft own a browser and can block them client-side, but that will only cause people to switch to alternative browsers. Finally, an OS-level block or even hardware-level block could be attempted. I think we'll be heading into that direction at some point.

</comment><comment><USER31> I can see Google/Bing thinking that this kind of traffic does not generate much income anyway, so might as well bow to the pressure and censor it.

I think they haven't fully factored in the longer term losses they might incur when people might look for, find, and switch to an alternative good-enough uncensored search engine, e.g. Yandex.

</comment><comment><USER32> Does anyone actually find torrent sites by googleing (or binging) "torrent website"?

<comment><USER13> That's how people find EVERYTHING. Which is why paying $10,000 for the dot com version of your company doesn't mean much, when you can get the .whatever for much less.</comment></comment>


Ask HN: Review my Nov sprint micro app, Markup Converter - <AUTHOR>

http://markupconverter.com/
The functionality is very simple: it's just a web service to convert markup from one format to another, usable via the web or through a simple API.
When deciding what to do for the sprint I realized that making something simple and useful would be the best approach for getting it done by the end of the month as a side project. This also gave me the opportunity to put to use a couple markup-related libraries I put together for other projects and work with MongoDB, which I had previously only used for email storage for a landing page. Most of the conversions in the app are done by the Haskell library Pandoc, but I'm also using Discount, Python's Docutils and Ruby's RedCloth for better support of certain markup languages. The next step will be exposing more options, eg, autolinking HTML, including headers for RTF, etc.
Anyway, it's not nearly as ambitious as many other projects, but I think some people might find it useful. Any thoughts? <comment><USER2> The google translator for markups. From my point of view, Some actual features or interface design options from this Google translator could, may be, inspire you as well. :)

<comment><AUTHOR> That's an insightful analogy. I hadn't really thought about it that way, but you are absolutely right. I'll keep that in mind.

</comment></comment><comment><USER3> Very cool! Congrats on launching something.

One thing I would absolutely love is a way to convert HTML into FBML, which is currently just an awful awful process.

<comment><AUTHOR> Thanks! I'll definitely look into it and see if there's something I can do for FBML.

</comment></comment><comment><AUTHOR> Clickable: <http://markupconverter.com/></comment>


"Nah, who needs another search engine?" - <AUTHOR> http://www.reddit.com/r/AskReddit/comments/dv0hk/oops_whats_the_most_expensive_mistake_youve_made/c134ycr <comment><USER2> Different field, but ...

I'm a novelist. For some reason, folks in the graphic novel biz seem to think that novelists have a usefully transferable skill set. About six years ago I got an email from a guy at Marvel comics. "We're looking for a novelist to take over writing this superhero property we just rebooted, and Warren Ellis, who did the reboot, suggested you. Wanna Talk?"

We talked, I did some recon on the superhero in question, decided I _really_ hated him and life was too short (even if it _was_ an opportunity to make a big break into comic writing) ... and turned down "Iron Man".

<comment><USER3> How does a HackerNews user not like Tony Starks? ;)

<comment><USER2> Tony Stark is Donald Rumsfeld's Mary-Sue.

I am a British center-left -- liberal democrat voting -- Volvo-driving organic-eating media luvvie. (I'm also a self-employed businessman and a sometime dot-com veteran; let's not get _too_ carried away with the socialism here.) Muscular two-fisted violent imperialism lacks appeal. I _could_ have written Tony Stark as an anti-hero, but the risk for pushback from the fans would have been significant.

When you're looking for a project to work on for possibly several years, you should pick something you love. As I was simultaneously looking at two multi- book contracts from major publishers for books that I would have complete creative control over (and retain copyright on -- don't forget, Marvel and DC insist on work-for-hire!) I went with the "do what you love" option.

(The books in question, for what it's worth, were "Accelerando", "Glasshouse", and the last three Merchant Princes books.)

<comment><USER4> I think a lot of the HN crowd identify less with Tony Stark as an ass-kicker, but more because he's one of the few superheroes that you can truly say is a "self-made man" (pun unintended, but apt). He's amazing not because of some genetic accident, but because of his own intelligence.

I don't remember the character being as much of a jerk as RDJ plays him, but admittedly I only ever watched the cartoons as a kid, not read the comic books.

<comment><USER5> The difference between "genetic accident" and "intelligence" is not big.

<comment><USER6> On the contrary, the _environment_ play a strong role in intelligence.

Few, if any, poor families taught their children to be an _autodidact_. Once people are autodidact, I would expect a rise in socioeconomic status.

Let face it, it's going to be hard to rise up when you're stuck in a poor neighborhood with gangsters and bad influences.

</comment></comment></comment></comment></comment></comment><comment><USER7> That is pretty sad/funny. But to tell you the truth I actually thought that we did need another search engine towards the end of the 90s. It was around that time that search got totally broken.

I remember usually if I would search for X, I was sure to get a lot of "hot sluts taking X up their asses" links no matter what X was. Right before Google became popular search was totally and completely useless. I remember I actually went back to using the old Yahoo subject matter directory trees to find stuff. It was not very helpful, their links were mostly outdated. And for a while I was trying very hard to bookmark or remember any URL I found interesting because I thought I would never be able to find them again if i closed my browser.

And once I learned about Google it was like my eyes were opened once again. So yeah, if they offered me a job in 1998 and I had tried their website, I would be all over it. But alas they did not.

It was funny, they actually were looking hard for someone in my field (patent attorney). They needed a patent lawyer so much that they actually listed the position in the main Google page, and this was the only time ever that I know of that they have listed a job position on the main google.com page. Unfortunately, I was still in law school then :(.

<comment><USER8> "search was totally and completely useless"

Often I feel that in recent years the quality of the results are declining again. Now if you search for X, you get a lot of webshops, which tell you the price, but not any other useful information. Or if X is not a product, more and more of the results are pointing to all kind of aggregator sites which are again linking to each other instead of useful content or links. Or the similar case is when all the results on the first page are the same content on different pages.

So perhaps there is a market opportunity again. Anyone? :)

<comment><USER9> True. I have subconsciously raised my google game over the years to cope.

I use more terms "in quotes" now, include more negative terms, use more site- specific searches, and use inurl as well. I still get what I want, but I wouldn't if I wasn't tech savvy.

</comment></comment></comment><comment><USER10> I turned down a meeting with Bill Gates in 1982. It was a personal connection, and we were going to meet at his house; maybe his dad's house, maybe he was still living there, I don't recall. MS was ~150 employees at the time and hiring like crazy. Bill had my cv.

I was visiting from the UK with my girlfriend who was raised in Bellevue. I think I instead opted to jam with a band called Myth in a barn in Redmond. Myth morphed into Queensrÿche soon after, so I guess I missed two chances!

<comment><USER11> Do you often think about those "what if"?

<comment><USER10> No, never, honestly.

Life is a sequence of half chances. You make your choices, and you make them for good reasons at the time.

Looking at the past doesn't mean that the present would be as it is if you'd made different choices. That's a theme used in almost every time-travel movie.

</comment></comment></comment><comment><USER12> The first time I tried Google I did a search for "foo bar" and it returned web pages that _only_ contained the phrase "foo bar", and I promptly deleted my Alta Vista bookmark. What's funny is that I remember it so vividly, like how someone would remember where they were the day Kennedy was shot.

It would be really great if Alta Vista kept their old search engine and search index circa 1999 on-line, so we could periodically remind ourselves what the web used to be like.

<comment><USER13> But in Altavista, you could have searched on _foo bar_ , _"foo bar"_ , or _foo NEAR bar_ ; I still wish Google had the latter option.

<comment><USER14> This feature is similar: [http://www.google.com/search?hl=en&q=%22google+****+barc...](http://www.google.com/search?hl=en&q=%22google+****+barcode%22) One star will fill in any number of words. If you use two or more stars, the number of stars is the number of words Google will fill in.

</comment></comment></comment><comment><USER15> Similar thing happened to me in 1999.

I realized Google was way cooler than alta vista and better at finding unknown things rather than Yahoo's directory. Truly the future, I thought. I sent in a resume to do some kind of work not development related; data center & sys admin stuff. They called me twice but I convinced myself that they would not have hired me anyways so I never called back.

I was probably right, though, given how their interviewing process is (or was).

<comment><USER16> Come on now, at least let THEM reject you.

<comment><USER15> My whole life is pock-marked with failure and rejection. I can't imagine they would have been any different.

<comment><USER17> Whose life isn't?

</comment></comment></comment></comment><comment><USER18> I met someone who says, _Every time people ask me for career advice, I tell them they shouldn't ask me. I had the opportunity to be in the first 5 employees at both Yahoo and Google, and finished my PhD instead of doing either._

</comment><comment><USER19> Hindsight is 20/20.

</comment><comment><USER20> Ouch.

I think you've got to judge opportunities largely by the people executing them. Lots of pedestrian opportunities with great execution do well. Lots of great opportunities with pedestrian execution go poorly.

</comment><comment><USER21> Ha, I know that guy. He is completely awesome.

</comment><comment><USER22> Nah, who needs another search engine? Nah, who needs another groupon clone? Nah, who needs another social networking site? Nah, who needs another virtual currency based game?

Seems like there's always room for innovation, if you're willing to ignore the nay-sayers.

<comment><USER23> At least for Google, Facebook (and MySpace) and Groupon, their products became popular because of how they implemented it, not because of what they built.

Making a better product, successfully, is what sets apart clones from revolutionaries.

</comment></comment><comment><USER24> Whether we like it or not, chance plays big role in major decision making in life.

</comment><comment><USER25> Perceptiveness and luck are all you have in a situation such as this. You would need an extremely rare caliber of at least one.

</comment><comment><USER26> Reminds me of how i screwed up my recent interview with a big internet company. Every morning i wake up and regret it! #FML</comment>


How the Fed Creates Money - <AUTHOR> http://www.exstrom.com/blog/butcher-blog//posts/fedcreatesmoney.html

<comment><USER2> I don't believe a bubble is what we will experience (First). What might happen is inflation, however providing liquidity in the market is Bernake's main goal and once he sees markets moving more fluidly he will start to tighten the money supply.</comment>


Mawk-2, update from mike brennan after 25 years - <AUTHOR> https://github.com/mikebrennan000/mawk-2 <comment><AUTHOR> there is something fascinating about a lone programmer, disconnected from the net, writing the fastest interpreter for awk. [https://www.gnu.org/software/gawk/manual/gawk.html#Foreword3](https://www.gnu.org/software/gawk/manual/gawk.html#Foreword3)</comment>


Tying Yourself to the Mast - <AUTHOR> http://www.norcalsc.com/tying-yourself-to-the-mast

<comment><USER2> I tie myself to the mizzen mast or go sit in the Bastille dungeon, but none of it ever works. I do what I passionately want to do and no punitive restriction sways me. Creativity always slips its bindings.</comment>


'I was a teacher for 17 years, but I couldn't read or write' - <AUTHOR> http://www.bbc.com/news/stories-43700153 <comment><USER2> Amazing story, I'm not crying, you are! :'-)

I can only imagine his pain in hiding for 47+ years not being able to read.</comment>


How does a computer restart itself? (2011) - <AUTHOR> http://superuser.com/q/294681/73619

<comment><USER2> Where can I learn more about the PC hardware? I find this topic very interesting however I've never learnt more than the basic PC architecture.</comment>