The Unreasonable Effectiveness of Dynamic Typing for Practical Programs [video] - <AUTHOR> https://www.infoq.com/presentations/dynamic-static-typing <comment><USER2> Attempting to argue about the value of dynamic typing right now is like trying to win the vim/emacs (or is that now just Sublime Text/Atom) editor wars. It's more a recitation of dogma than useful conversations; you can't discuss any type system's pitfalls without "oh, that's just algebraic typing, not static typing".

Fear not, my fellow Ruby/Python/Lisp/Perlers - the pendulum will swing back, and all that will be discussed is how much of a pain the current static typing systems are and how type hinting is the real future.

<comment><USER3> I get the feeling that you didn't watch the talk. He specifically talks about the field making large decisions based mostly on dogma and that evidence should be used to make those decisions instead. He's trying to advocate the use of the scientific method as applied to language design choices.

He admits that the papers he cites are too few to make large decisions and that the analysis he does by looking at how many issues on GitHub are actually caused by type system errors (1-5%) but he's trying to steer away from dogmatism in favor of empirical evidence.

</comment></comment><comment><USER4> At the same time that this is showing on HN there is an article about an ESPN Analyst walking away after being upset at trauma on a football field [1]. The comments are very interesting in that they point out that football helmets may actually exacerbate injury because they their protection leads to players feeling protected enough to risk harder hits.

I don't think we have that same effect in software but I think there is an related one: when you don't have the protection of a static type system, you may become more careful.

[1] [https://news.ycombinator.com/item?id=15141495](https://news.ycombinator.com/item?id=15141495)

<comment><USER5> I find the opposite happens. Without the protection of the compiler enforcing rules before execution can occur we get "engineers" writing a mountain of fragile, dynamically typed mess quasi-protected by untold numbers of unit tests (themselves fraught with peril) half of which implement (poorly) type checking.

<comment><USER6> Ditto. After learning Java at uni I harboured a dislike for it for over 10 years while using dynamic languages. Now, having used it to implement microservices in an actually sane development environment, I love it to bits. Static typing gets rid of a crap-ton of subtly broken code which can only be guarded against with a ridiculous amount of over-testing. You basically need 800% coverage to handle all the special input and output which is handled in frankly insane ways. For example, how many methods treat zero as falsy (`if index`) and how many do the opposite (`if index != false`)?

</comment></comment></comment><comment><USER7> The presenter focuses on the cost of building software in the first place. Yet, in practice, the cost of maintenance often dwarfs the cost of initial development. This is where statically typed languages hold major advantage of dynamically type ones. In part, thanks to the ease of refactoring with modern IDEs.

The presented studies can hardly be used as a basis for making his arguments. The study where a student invests a new language that nobody else could possibly know is especially bad. Of course the learning curve is going to be longer for an invented statically typed language! You cannot assess productivity without factoring out the initial learning time. If anything, that study only shows that dynamically typed languages are easier to get into.

<comment><USER8> > Yet, in practice, the cost of maintenance often dwarfs the cost of initial > development.

However, funding the development is sometimes harder than funding the maintenance: You need the system to operate in the first place in order to get the benefits/money/revenue/etc.

Once the system is in place and brings benefits, it is easier to fund further investment on the system, be it maintenance, extension,etc.

<comment><USER7> The initial development of a chunk of code is not the same as the initial development of a shippable product. Code maintenance starts the moment you need to go back and add anything nontrivial to the existing code. And you will have to go back and change your code many times while using your initial funding. So the product funding argument, while true, does not apply here.

Try reading your own code written two weeks ago. How about a month ago? Three month ago?

Let's say your code is making some calls and gets back an object. Can you list all the important methods on that object from the top of your head? With a statically typed language IDE can always do that for you. If your team member added some more methods, they will be listed too. No need to waste time reading the function source to figure out the return type, and then waste more reading the class's source.

<comment><USER8> > Try reading your own code written two weeks ago. How about a month ago? > Three month ago?

In fact i did. Code of 8 months ago (december 2017). Easy to read, because i used named parameters extensively and added comments at every function Signature. Language Python (dynamic).

Don't assume that all programmers can't understand their past code. All my peers (we have over 12 years doing this professionally) would do the same. It is part of our job to read code written even years before by us. You never know when a past customer (internal or external) will call you to want an enhancement or upgrade.

> With a statically typed language IDE can always do that for you.

So? Not everybody needs to use a crutch to walk. How about having to patch a _live_ code on a running server using only a plain text editor? This is not fiction, this is real. (Servers almost never have any kind of IDE or even fancy text editor installed).

> And you will have to go back and change your code many times while using > your initial funding.

I am speaking about production software for using within an enterprise context. You have a defined budget and you need to ship a working product. For us , "maintenance" phase starts after the product has gone live in production. For us, if we deploy a working product, it is easy to get additional funding for maintenance and improvement. If we don't, we don't get subsequent funding for anything. Business will value more a slightly buggy program that is ready in 3 months than a perfect program that only is deployed after 8.

<comment><USER7> > So? Not everybody needs to use a crutch to walk. How about having to patch a > live code on a running server using only a plain text editor? This is not > fiction, this is real.

This is not a sound argument to advocate dynamic languages. There are good reasons industry best practices include things like code reviews, testing, and staging environments. But I suppose, if you are going to ignore all of these, then the lack of type safety is the least of your concerns.

<comment><USER8> Your argument was that some IDE features are really really needed.

> There are good reasons industry best practices include things like code > reviews, testing, and staging environments. But I suppose, if you are going > to ignore all of these, then the lack of type safety is the least of your > concerns.

You are doing a strawman fallacy. I _never ever_ spoke about having or not having code reviews, and separate testing and staging environments. All of these are also necessary, and what in the world does this has to do with static typing? Testing and staging environments are required and doable using any programming language.

</comment></comment></comment></comment></comment></comment><comment><USER9> I think one needs to be clear about the difference between "typing" and "type- checking". Typing means that objects can be instances of one or more type. Type-checking means that we can annotate the code so that it contains assertions about the types of its objects.

Static type declarations can help program understanding a lot without no effect on performance. But on the other dynamic assertions of properties of objects can be more flexible, you can program your own type-checking algorithms and define your own types and what it means to be a member of them.

</comment><comment><USER10> Like Smallshire mentions in the talk I think the way forward is gradual typing, like you have in e.g. TypeScript. Best of both worlds.

</comment><comment><USER11> I agree with the speaker that adding basic static types (Java/C/C++) is lot of work for not a lot of benefit.

However advanced type systems like the one in Elm, now that's something else. Especially when refactoring and almost-writes-it-for-quality error messages from the compiler.

</comment><comment><USER12> The thing I find interesting is that in many cases the types are "there", dynamic or not, except in most statically typed languages you have to type them out for the compiler. If explicit types everywhere arent an awesome communication tool, then shouldn't we be able to do away with them and keep the benefits? Or 85%? 90? Why not an uncluttered lisp or Python syntax and tools that don't require us to spell out the types by keyboard?

</comment><comment><USER13> If one doesn't have an hour to watch this (or wants to know if spending an hour watching this is worthwhile), is there a summary somewhere of the points this covers?

<comment><USER14> [https://news.ycombinator.com/item?id=15144544](https://news.ycombinator.com/item?id=15144544)

</comment></comment><comment><USER8> When static typing vs dynamic typing is discussed, i see that often a mistake is made and "static typing" is confused with "strong" typing, and "dynamic typing" is confused with "weak typing".

Just FYI: If one wants his/her "programming language" to catch typing errors/violations/mismatches, one needs to use a language with _strong typing_ , regardless of if the language itself supports static or dynamic typing.

Dynamic typing relies on being able to infer the types; this can be often achieved at compile time but in any case at runtime, if the platform is _strongly typed_ , any type error will be caught. Then, after being caught, what could be done about it depends on your platform -- some platforms will die with an error; some others will die but allow you to inspect what happened; then others allow you to patch (correct) the error and continue.

Static typing requests you to explicitly declare types. This helps the compiler do as much checking as possible at compile-time. This has the added side benefit to increase the speed of the compile code, since less checking is needed at runtime.

Some systems are dynamically typed but weakly-typed. Examples are PHP and ES/Javascript.

Some systems are statically typed but fairly weakly-typed. The Kerninghan&Ritchie C language is an example.

Some systems are dynamically typed and strongly typed. Python is one of them, although it also has what is so-called "duck" typing.

Some systems support dynamic _and_ (optional) static typing, and are strongly typed. Common Lisp is an example, as well as in Julia. In both cases (CL and Julia), static typing helps for increasing performance, and for achieving multiple dispatch (i.e. for Object-Oriented programming). CL is able to do compile-time checking as well, if the implementation supports it.

Some systems have fairly complete strong typing which relies on extensive static typing facilities. Haskell is an example.

<comment><USER15> > Static typing requests you to explicitly declare types.

You are confusing _explicit typing_ with _static typing_. "Static" means "compile-time checking". "Dynamic" means "defer checks to run-time". Some language implementations can disable run-time type checking if optional type annotations are added, such as in Typed Racket.

In other words, all the following combinations are possible:

      - Implicit + dynamic + strong: Python
      - Implicit + dynamic + weak: JavaScript
      - Implicit + static + strong: Standard ML without type annotations
      - Explicit + dynamic + strong: Elixir with type annotations
      - Explicit + static + strong: Java
      - Explicit + static + weak: C

I struggle to come up with examples for these...

      - Implicit + static + weak
      - Explicit + dynamic + weak

... but I'm sure they exist, perhaps as historical languages from when type systems were less sophisticated. After all, "strong" and "weak" are entirely relative, constantly in flux, and exist on a continuum. In a couple decades, anything lacking dependent types might perhaps be considered "weakly typed".

<comment><USER8> > "Static" means "compile-time checking". "Dynamic" means "defer checks to > run-time"

It is not really about _checking_ , it's about _allocation /binding_. Static typing, for binding a variable, requires declaring the type of the data, this can be explicit (as in C++) or inferred from another value where the type was declared (as in C++ with 'auto' or as in Haskell).

Dynamic typing does not require a type declaration. You can bind an unassigned variable and then assign a value later, without having to declare the variable type.

<comment><USER15> I'm no expert on type systems so my definitions are not meant to be theoretically correct, just to describe the practical implications of static and dynamic typing.

What you're talking about seems to be more related to how type systems are implemented, i.e. that dynamically-typed languages are "unityped", such as the one and only "static type" of Python being the PyObject. Thus, when you "bind an unassigned variable and then assign a value later", you're actually implicitly declaring the type to be PyObject.

But it is deceptive to define type systems purely in terms of this implementation detail, because then it would appear as if dynamically-typed languages are _untyped_ (i.e. "everything is one type" is the same as saying "there are no types"). Since we know languages like Python do some type- checking at run-time despite everything being a PyObject, it is more useful, I think, to think of these languages in terms of the practical result rather than in terms of the implementation.

But if that's not what you're saying, I apologize.

</comment></comment></comment></comment><comment><USER16> This video is not worth 50 minutes.

tl;dr:

A bunch of stuff about typing that you probably already know and for which there are better resources.

He cites a couple studies showing that static typing doesn't improve productivity.

His own analysis of python projects on Github shows that only 3% of bugs are caused by type errors.

He acknowledges that the evidence is not good and thinks that the industry should invest in doing better studies.

</comment><comment><USER17> This is just rehashing the same tired and fallacious argument that most errors aren't type errors. And it is pure fallacy because different languages have different ideas as to what constitutes a type, and therefore have completely different ideas as to what a type error is. If I write `Object.new.foo` in Ruby, I get a NoMethodError. Not a type error, right? But that's the thing, that would be a type error in almost all statically typed languages.

And it doesn't even come close to stopping there...there are hundreds of examples of errors that are not Type Errors in your dynamic language that _are_ type errors in some other language. NullPointerException? That's a type error that is entirely prevented by _many_ type systems. If you accidentally multiply your time and distance instead of divide to get your velocity, that would be a Type Error in F# using their units of measure types. If you accidentally pop an empty stack, that might be an EmptyStackException even in many statically typed languages, but would absolutely be a Type Error in a language with dependent types like ATS or Idris.

In the end, dynamic typing is just a way to make runtimes slow and building correct programs slower, in exchange for some entirely subjective aesthetic or ergonomic quality. And sure, most type systems in practical languages aren't "complete" enough to eliminate the need for tests. But don't tell me that because you don't eliminate tests that you don't need types. That's bullshit. Statically enforced types eliminate errors, and every check that you defer to runtime is an error waiting to happen. If you're willing to make that tradeoff, by all means do so...but don't lie to me.

<comment><USER18> Exactly. Almost any error can be a type error with a sufficiently expressive type system, because a type system is just a way to mechanically prove things about your code. A more expressive type system lets you prove more useful things.

Of course, you can easily do things in a dynamic language that are _observably_ correct, but which are very difficult to _prove_ correct without advanced logic (i.e., an expressive type system). And more advanced type systems typically lose some nice ergonomic properties of simpler type systems, such as clear error messages, type inference, principal types, or decidability. So I can definitely see how someone moving for example from Java to Python would find the latter very liberating at first.

On the other hand, you can argue that people shouldn't be writing code that's so difficult to prove things about in the first place. :)

To my mind, the benefit of static types is that they _allow_ proving properties of your code, but the cost is that they may _force_ you to do so; the benefit of dynamic types is that they _don't force_ you, but the cost is that they _don't allow_ it.

On balance I think static types are therefore preferable, because you can always fall back to dynamic types (strings/hashes/variants/sums) in a static language, but you can't "fall forward" to static types in a dynamic language.

<comment><USER19> > ...the cost is that they don't allow it.

Saying they don't allow it is too strong (they allow it, but it might be harder).

<comment><USER18> You can't prove even very simple universal properties of dynamically typed code, such as "when given an integer, this function always returns an integer", because its result type can depend on the _value_ of the integer passed in at runtime. You can only prove existential properties ("there are integers for which this function returns an integer") through testing.

That testing can be done before runtime in some languages, e.g., with Perl's BEGIN/UNITCHECK/CHECK/INIT blocks. But it's not really the same.

In a referentially transparent, statically typed language, if you give me a function of type ∀a. a → a, then I know for a fact that if this function halts, it must be the identity function. The only thing it can do is return its input.

The same function in a dynamically typed language could return _any value_ of _any type_ , because its result's type can depend on both the type and the runtime value of its input, or not depend on its input at all, even if it's referentially transparent.

Even if you supply that type annotation and check it at runtime ("this function returns a value of the same type as its input"), it would only be checking a single code path, and it could still give me any value. That is, a valid implementation would be "return 3"—I wouldn't get a type error if I only ever called it on integers, but it would still be non-parametric.

<comment><USER19> "when given an integer, this function always returns an integer"

        (defun foo (x)
          (declare (integer x))
          (round (/ x)))

        (describe #'foo)

Derived type:

        (function (integer) (values integer rational &optional))

When given an integer, the function returns an integer, as well as an additional rational value. ROUND's specification says the type of the remainder is a REAL, but since I call it with integer, it is more precisely a RATIONAL (a subtype of REAL).

        (foo 0)
        => arithmetic error DIVISION-BY-ZERO signalled

Note, the meaning of the derived type is: _if the code returns a value_ , then its type is .... The same applies in OCaml, where you can raise exceptions.

Let's restrict the input domain to non-zero integers:

        (defun foo (x)
          (declare (type (or (integer 1 *)
                             (integer * -1)) x))
          (round (/ x)))

        (describe #'foo)

        Derived type:

        (function ((or (integer 1) (integer * -1)))
                  (values (integer -1 1) (rational -2 2) &optional))

The primary return value is an integer between -1 and 1; the remainder is a rational between -2 and 2 (ranges are inclusive).

<comment><USER18> Cool—Common Lisp? Isn't that a promise to the compiler that you will obey the type, not a request to the compiler to enforce that you do? And can it correctly enforce something like the (∀a. a → a) that I described?

I consider gradual typing (e.g. Typed Racket, Hack) an interesting case of static typing where you're trying to provide good interop with your dynamically typed surroundings, typically while migrating from dynamic to static types. Not all dynamically typed systems that allow type annotations have "gradual typing" in that sense, because many of them don't give you enough power to get to "fully annotated" code (where the compiler is finally free to erase types completely).

<comment><USER20> That's right; those are promises to the compiler whose main use case is local "hotspot" optimizations. Those promises can be used as checking assertions in safe code; they become dangerous if code is optimized with _safety 0_.

You'd work around not being able to express (∀a. a → a) by focusing on the specific use scenario in the optimized code where that function is being called, and the concrete types that are involved. The _identity_ function fits this type. If we know that _x_ is _fixnum_ , we can do this: _(the fixnum (identity x))_. Using _the_ , we an assert types of individual forms.

Which is not to say that an implementation cannot do type inference for (identity x) and represent it type as (∀a. a → a) ; it's just that type inference is a separate thing from the ANSI CL declaration system.</comment></comment></comment></comment></comment></comment></comment>


New GDPR law becomes bedtime story for grown-ups - <AUTHOR> https://blog.calm.com/relax/once-upon-a-gdpr <comment><USER2> I was about to bash them for mocking an important document, but they might be right. I would love to see efforts on simplifying the law, "refactoring it" with the ultimate rule that it's something that everyone should be able to read and understand, measured by some "literacy score" as a core human competence. It's only fair given that everyone is expected to know it.

The problem is that the article doesn't explain why this law got long, reasons for its complexities... and this is why _I believe it 's poor writing_. They're calling out GDPR specifically while there's a lot of similarly important documents that are not shorter. Think of taxes for example - VAT in EU is a nightmare that makes GDPR look tiny. And it affects everyone - ultimately you need to hire an accountant to run a company. It's not fair not to underline that.

<comment><USER3> It seems especially unfair given that it's my understanding that the EU went to great lengths to make this one particularly readable and free of "legalese".

<comment><USER4> Yes, and I've got to say that they've done a pretty good job. Compared to most other similar texts, it's remarkably easy to read, and it's not even that long either.

</comment></comment></comment><comment><USER5> This is a PR article disguised as an anti-GDPR article.

An no, the EU will never get it right and create a short & simple law as long as they have to contend with massive corporate lobbying against the said law and bad corporate actors which try to work around it.

<comment><USER6> It isn't anti-GDPR at all. "but we also that hope that in the process it will bring still greater awareness to the important topic of data privacy."</comment></comment>


Russian Physicists Synthesize New Superheavy Element 117 - <AUTHOR> http://www.wired.com/wiredscience/2010/04/russian-physicists-synthesize-new-superheavy-element-117/

<comment><USER2> An interesting read, but as nearly always, the article is followed by crappy commentary (Obama and Simpsons jokes). Wired is like the Digg of tech and science publications. Comments are almost always the best part for me when I read a story online, which is perhaps why I like HN so much. I wish submitters would choose sources with more appropriate audiences for these kinds of articles.

Edit: [http://www.sciencenews.org/view/generic/id/57964/title/Super...](http://www.sciencenews.org/view/generic/id/57964/title/Superheavy_element_117_makes_debut_)</comment>


Ask HN: What are some methods of increasing your attention span? - <AUTHOR>

"Attention span is the amount of time that a person can concentrate on a task without becoming distracted." -- Wikipedia Attention Span<p>Please list any activities or links to resources/studies that claim to aid in attention span. <comment><USER2> Meditation has been shown in several clinical studies to increase attention span.

Also, there are a number of Cognitive-Behavioral Therapies with proven results.

</comment><comment><USER3> Getting off of HN.</comment>


Suggestions on web hosting providers for a startup - <AUTHOR>

<comment><USER2> Been discussed before...

[http://www.google.com/search?source=ig&hl;=en&q;=site%3Anews.ycombinator.com+hosting&btnG;=Google+Search](http://www.google.com/search?source=ig&hl=en&q=site%3Anews.ycombinator.com+hosting&btnG=Google+Search)

</comment><comment><AUTHOR> Details on server configurations & bandwidth contracts is appreciated :)</comment>


John Oliver crashes FCC site - <AUTHOR> http://thehill.com/policy/technology/332342-john-oliver-roasts-the-fccs-plan-to-curb-net-neutrality <comment><USER2> I guess their web servers have 'brandband' the way the FCC declares it. Anything over 25 Mbps Download and 3Mbps Upload.

[https://www.versatek.com/blog/fccs-new-25-mbps-broadband- def...](https://www.versatek.com/blog/fccs-new-25-mbps-broadband-definition- receives-isp-backlash/)

</comment><comment><USER3> Note that there are reports of a DDOS attack:

[https://news.ycombinator.com/item?id=14294830](https://news.ycombinator.com/item?id=14294830)</comment>


A world leading media theorist gives a name to the character of this millennium - <AUTHOR> http://www.rushkoff.com/present-shock/

<comment><USER2> Rushkoff kicks butt, but his book can come off a little geeky and at times incendiary. In short, you'd kind of say: "hey, just back off and half of the things he is saying aren't issues," and yet most of the population is engaged and actively struggling with what he's talking about, despite how silly it might be.</comment>


Frustrated man charged by police after shooting his uncooperative computer - <AUTHOR> http://www.theguardian.com/us-news/2015/apr/22/frustrated-man-charged-by-police-after-shooting-his-uncooperative-computer <comment><USER2> All In The Mind (BBC R4 programme about mental health) had an episode about screen time, especially for teenagers.

One of the researchers being interviewed pointed outthat violence by teenagers has been dropping since aboutthe mid 1990s, while games have been getting more violent and graphic. He said that in his research the way you make people violent is to make a game frustratig, not graphic or violent.

[http://www.bbc.co.uk/programmes/b05r3wgr](http://www.bbc.co.uk/programmes/b05r3wgr)

</comment><comment><USER3> I was hoping to find out what OS he was running -- or is this even a relevant thing to ask?</comment>


Pro-privacy search engine DuckDuckGo hits 30M daily searches, up 50% in a year - <AUTHOR> https://techcrunch.com/2018/10/11/pro-privacy-search-engine-duckduckgo-hits-30m-daily-searches-up-50-in-a-year/ <comment><USER2> [https://news.ycombinator.com/item?id=18100243](https://news.ycombinator.com/item?id=18100243)

</comment><comment><USER3> After everything that has happened in the last few weeks I've completely moved away from Google.

1\. I retired my ~15 year old Gmail account and registered with Fastmail

2\. I moved away from Chrome to Firefox on both my laptop and phone

3\. I stopped using Chrome's password manager on iOS in favor of 1Password and Firefox Lockbox

4\. I've mostly stopped using the Google search engine and now using DDG and Bing if I have to.

Part of what helped me transition away from Google to DDG was skinning DDG to look like Google[0]. The first few days were really tough and I kept finding myself going back to Google about 80% of the time. I thought that the search results were remarkably poorer. I considered that it might just be anxiety of _not_ using Google affecting my view, so as an experiment I decided to theme DDG to look like Google... and it worked. I stopped going back to Google and suddenly the searches became better.

I still use the !g bang for about 20% of my searches, and there are things that Google does so much better that I use quite often (for example searching a store name and it brings up all the local ones with information on what time they close etc, or if you were to write "tengo dolor de estomago en ingles" it would bring up an interactive translation box and so on) but for general searches I've more or less completely moved away.

[0] [https://userstyles.org/styles/153678/duckduckgooglymoogly](https://userstyles.org/styles/153678/duckduckgooglymoogly)

<comment><USER4> > 1\. I retired my ~15 year old Gmail account and registered with Fastmail

I'm looking to switch my email. Any thoughts on Fastmail vs ProtonMail? Do you feel secure with Fastmail?

<comment><USER5> Assuming you're looking at paid services, I wouldn't recommend either of them as the first choice. Take a look at Posteo.de, Runbox, Mailfence and Mailbox.org before you decide. At least browse through their websites and see what they offer. All these services are a lot cheaper than Fastmail or Protonmail (more so if you need multiple mailboxes, not just aliases). All of them offer IMAP access on all platforms, which isn't available directly in ProtonMail and requires a "bridge" application to be installed and setup on computers.

</comment></comment></comment><comment><USER6> The average tech person has been switching away from Google products, and this filters down to their social networks, and then their networks, and so on. It's a big deal when the tech people decide to switch.

For me, it was Chrome making me log-in to my account. Now I use Firefox, DDG, ublock, privacy badger, etc. I think society writ large will begin to take privacy more seriously in the coming years.

Edit FYI: If you want google results, add '!g' to the end of a DDG query and it will route to google. I use it sometimes, but not that often given that DDG is usually good.

<comment><USER7> There's all kinds of awesome 'bangs'. I realized it's actually easier to use the variety of google/bing search engines from ddg.

google scholar: !gsc

google images: !gi

bing: !b

<comment><USER8> Bing should have been !bing and !b should have been reserved from something more useful, like butternut squash recipes.

<comment><USER9> Not only is this funny, it's very true.

I work in IT, and even the most computer illiterate people generally can't get tricked into using Bing.

<comment><USER10> Bing's video search is actually surprisingly good. Some of my friends have told me that it's a lot better for porn than Google.

<comment><USER11> That's the only (positive) thing I ever hear about Bing.

</comment></comment></comment></comment></comment></comment><comment><USER12> Google isnt even a good search engine any more. I tried finding my friends website, www.catbartlett.com.au, with the terms "Freelance graphic designer Cat Bartlett Perth Western Australia" \- pretty specific, but the first page is nothing but LinkedIn profile links and random mentions of her in testimonials. If it takes thousands of $$ in SEO to get found, how is that a useful search engine? We might as well go back to human-submitted catalogues.

I think the Google vision is to become internet gatekeepers, not to be a useful tool for finding things. That's why they need to die.

<comment><USER13> This is most likely a WiX configuration issue. The HTML source for [https://www.catbartlett.com.au/](https://www.catbartlett.com.au/) contains

      <meta name="robots" content="noindex"/>

Maybe try [https://support.wix.com/en/article/enabling-search- engines-e...](https://support.wix.com/en/article/enabling-search-engines-eg- google-to-find-your-site) ?

<comment><USER14> The website also gets a 0/100 pagescore [1] because of "noindex". Plus the <title> tag has a single word "design"...nothing about the contents of the site. It only's mention of "Cat Bartlett Graphic Design" 1x and is in an <h5> tag halfway down the page (not repeat anywhere nor in an H1 tag.

No wonder google can't find it. This is SEO 101 that Google will tell you how to fix for free.

[1] [https://sitechecker.pro/seo- report/https://www.catbartlett.c...](https://sitechecker.pro/seo- report/https://www.catbartlett.com.au/)

<comment><USER15> Ironically for a site seemingly dedicated to checking other sites, it's unusable on mobile (especially after the over-wide and unscrollable "create an account" modal takes over)

<comment><USER16> On google mobile is actually a factor in page ranking, if you're not mobile friendly you won't rank. Obviously this person needs some help w/ their website, if they were on wordpress with a good mobile theme, and good page load they'd definitely be ranked first for that serp.

</comment></comment></comment></comment></comment><comment><USER17> Am I the only one that finds that the DDG's bang commands actually make DuckDuckGo more useable than google, even for googles own products? E.g. it's faster to type in a location and append !gm after (which will cause DuckDuckGo to redirect immediately to searching within google maps itself) than it is to click around on google to bring the maps up? (Likewise for google express !ge google images !gi and especially YouTube !yt)

My only wish would be some way to customize them and add new ones as they almost make web browsing into using a command line (and what that would be like with aliases and adding scripts to PATH).

<comment><USER18> I just use Chrome's address bar. "map<TAB>" enters a maps-only search. Same for "you<TAB>" for youtube, etc.

<comment><USER14> On mobile that's not possible though. !gi for image search is one I use often on mobile.

But otherwise that's very true, I also use desktop Chrome's search engines as a keyword system (typing "ny" to launch [https://nytimes.com](https://nytimes.com)), regardless if the URL actually includes a search query.

<comment><USER19> ffx also has this feature, you can right click in a search field and 'add keyword'. i distinctly remember thinking 'this would be a really cool feature' maybe 10 years ago and discovering that it was already there.

</comment></comment></comment></comment><comment><USER20> Does anyone know of a recent-ish description of the DDG infrastructure? Only posts I can find are 5 or 6 years old.

<comment><USER21> I would be interested in this as well.

</comment></comment><comment><USER22> So is privacy at last becoming mainstream? I look forward to the end of people saying "nobody cares about privacy".

<comment><USER23> That saying does seem to be a self-fulfilling prophecy, so I look forward in the same way.

I predict that a large swath of the population still won't care much about privacy, or at least take action to protect theirs, but I'm seeing an awakening of people coming to realize how dangerous big tech can become. What's funny to me is if Google wasn't so brazen in ditching their old "don't be evil" pretense, we probably wouldn't be having this discussion as often as we are.

<comment><USER24> Yeah I think this is the key, privacy online is very abstract. But the sentiment of a large, evil corporation out to get you is somehow less abstract.

</comment></comment></comment><comment><USER25> I switched earlier this year. It takes some time to get used to it. I used to !g often. It doesn't feel as intuitive at knowing what you are looking like Google. Addresses and map integration is not that good either and does not come even close to Google. It is a good enough. I have their app on my phone as my search tool, which I miss Google maps more often.

<comment><USER26> !gm <address> will push you back to google maps if you need it!

<comment><USER27> !maps also works for google maps, !osm will use OpenStreetMap instead.

</comment></comment></comment><comment><USER28> I had no idea how good ddg had gotten these days. Being from NZ, I thought I'd give it a good challenge. I entered !maori love, thinking it was impossible it would have a bang pattern for that, and it automatically brought me here [https://maoridictionary.co.nz/search?idiom=&phrase=&proverb=...](https://maoridictionary.co.nz/search?idiom=&phrase=&proverb=&loan=&histLoanWords=&keywords=love).

<comment><USER29> The !bangs aren't too hard to implement. It's basically just a very large config file. You can see that in our code: [https://github.com/jivesearch/jivesearch](https://github.com/jivesearch/jivesearch). I run the project, btw. And, yes, we have that same !bang as well as all of DDG's !bangs.

</comment></comment><comment><USER30> Using it as my default on my personal gadgets. Practically the same as Google for generic searches.

<comment><USER31> I haven't been so lucky, maybe that's because of searches in the UK ?

Google manages to find more locally relevant information (the most annoying one is the stuff from amazon.com instead of amazon.co.uk). You can easily turn "UK search" in DDG, but when you do it, but in turn that's less relevant for technical search.

Probably will wait a few more months to give it another go.

<comment><USER30> Yes, it's not good for the use case you described. That's what I intended to say with my comment on "generic searches". If you are looking for something very specific like a piece of code that resolves your OOM error or a uk seller of a xkcd hoodie then it's better to add !g to your search.

</comment></comment></comment><comment><USER32> I installed a DDG Chrome extension and said I'd try it for a week.

That was a month ago. Haven't found a need to switch to Google yet.

<comment><USER33> Same here, and I had done this same experiment last year and switched back quickly. DDG is better than google often, I find relevant things quickly. For most of my searches it takes the cake, Google has a heads up on relevant recent (last hour) sort of info at the moment

</comment></comment><comment><USER34> I'm curious to know if DuckDuckGo promotes itself using privacy-invasive platforms. How much do they truly value privacy if they're willing to let others invade for them?

Reason I ask is because strangely enough, after reading this article, I hopped on Reddit and saw a promoted ad for DuckDuckGo. That can't have been a coincidence...

</comment><comment><USER35> This is still very slow growth, 30M is still less than 1% of the amount of searches Google gets in a day.

If you add in the searches you don't see, i.e. those little titbits of travel and other information Google decides to search for you without you even asking, then the DDG search volume is really small.

Has anyone here tried 'Ecosia', the save-the-planet search engine that gives you 'Bing!' results? They don't exactly advertise where their search results come from. I wonder how their share of the search engine pie compares to DDG given that 'Ecosia' do advertise whereas DDG don't.

</comment><comment><USER36> A search engine that has nothing more to offer than "privacy" isn't really worth my time.

Whenever I use DDG I get inferior search results. If privacy is your concern with Google use Startpage. That Bing/Yahoo mashup that DDG want to sell simply doesn't cut it for me (or any of my friends/colleagues).

<comment><USER37> You are not concerned with privacy, obviously. What's your name, address, favorite food, latest medical issue?

<comment><USER36> That's not at all what I wrote.

</comment></comment></comment><comment><USER38> At a 50% growth rate, it would take DDG 12 years to surpass Google's 2015 volume of 3 billion searches, correct?

Not that DDG has to catch up to google to be a success. But it's interesting to consider the scale.

<comment><USER39> The cynical side of me wonders how long DDG will continue before they sell out. You can only live so long off of angel investors and random grants. Some organizations have been able to survive (wikipedia) this way, but it's definitely not easy.

<comment><USER40> I believe they have revenue through ads. Don't know if they're profitable or not, my guess would be no.

</comment></comment></comment><comment><USER41> The main reason I use DuckDuckGo is when I want to search for more controversial topics that Google decides to filter how they want.

When I search on DuckDuckGo I know I'm not having that filter imposed on me.

<comment><USER42> What kinds of searches are you referring to? I would guess DDG has the same legal requirements as Google. And do they not also filter violent hate groups and similar things?

<comment><USER43> many examples but non-illegal sites like antipolygraph.org

</comment></comment></comment><comment><USER44> The only place I still use google on is my phone because I haven't care enough to change the default browser. Even on desktop when I don't find what I want from DuckDuckGo I find myself using !b (bing) instead of !g (google)

On mobile it's another story. The intrusive ads from content creators (think auto playing video, full screen popup, etc.) ruin the experience and it's easier to just look at the google-provided snippets and stop visiting these sites altogether

<comment><USER45> I think a mobile browser that basically puts everything in a Reader-mode style format all the time, would be truly awesome.

The web is an absolute mess. I don't even like browsing stuff anymore because I know i'm going to be overwhelmed by horrible heavy designs, endless external scripts, autoplay video on every news site, and more ads than content.

I use adblockers, no-script (on desktop), etc, but there's definitely a market for browsers that take this on and give us a cleaner experience akin to the old-web.

</comment></comment><comment><USER46> Can anyone comment on the security of StartPage/IxQuick?

As far as I know, they proxy Google results and avoid storing them in the browser via either a URL rewrite or a POST call. I find Google to return superior search data than DDG, particularly if it's not giving you recommended or personally ranked results (that alone makes it feel worthwhile to switch to SP/IxQuick). But it kind of feels like a free lunch.

<comment><USER29> Beyond what you pointed out, it's hard to really know what's going on with something closed source. Disclosure: I run jivesearch.com (basically, an open source version of DDG). FYI, we've got an open issue on GitHub to add POST requests in addition to a proxy.

</comment></comment><comment><USER47> This is great, and congrats! I have also moved away from a google eyes.

Just for comparison though, Google is serving about 3.5 billion searches a day.

</comment><comment><USER40> One thing I was surprised about DDG was that most of their code is written in Perl. Curious how well this will actually scale.

</comment><comment><USER48> This metric is meaningless, for all we know DDG could have become less helpful and people have to rephrase their queries more often than before.

EDIT: I'm not saying that is the case, but I hope that this example illustrates why this metrics is not a good substitute for standard metrics like DAU, MAU, revenue.

<comment><USER49> If the results were less helpful than people would stop using it

<comment><USER8> It's very helpful: [https://duckduckgo.com/?q=then+vs+than&t=canonical&ia=web](https://duckduckgo.com/?q=then+vs+than&t=canonical&ia=web)

</comment></comment></comment><comment><USER14> A big part of this is probably Brave. I wasn't using DDG on mobile until I replaced Chrome with Brave (and I love Brave).

</comment><comment><USER19> i really want to switch to ddg, but despite seeing many comments to the contrary, the results for a lot of searches i do have noticeably inferior results. i know i shouldn't expect the world and i'll likely gradually switch, but google can be exceptionally useful for eg open-ended questions phrased in natural language.

</comment><comment><USER50> Honest questions:

1) isn't it somewhat unlawful these days not to log anything on the people that are using your website? I'm all in favor of DDG, but can't they be liable if it would ever come up someone build and detonated bomb thanks to finding info via their search engine?

2) How do we know they haven't been served with NSL ? With NSA capable of breaking SSL, how do we know using DDG != using Google ?

<comment><USER51> 1\. No, services in the US like DDG largely aren't liable for what users post (or do) on their sites, mostly because of Section 230 of the Communications Decency Act of 1996 [0].

2\. We don't know they haven't been served with a national security letter. DDG's protection scope doesn't cover you needing protection from the government, though. So we know using DDG != Google because that's the surveillance threat vector they're concerned with: literally not being Google (which they aren't).

[0]: [https://en.wikipedia.org/wiki/Communications_Decency_Act#Sec...](https://en.wikipedia.org/wiki/Communications_Decency_Act#Section_230)

</comment></comment><comment><USER52> is it possible to get personalized search results when using duck duck go?

<comment><USER53> The whole point of DDG is that they don't personalize results.

<comment><USER52> I would love to try out a search engine that would be able to offer personalised results while still being relatively private. Otherwise the feeling I get from DDG is a step back both in user experience, and from a general tech point of view.

</comment></comment></comment><comment><USER54> Add reverse image search and I'm there.</comment>


The U.S. Media Yesterday Suffered Its Most Humiliating Debacle in Ages - <AUTHOR> https://theintercept.com/2017/12/09/the-u-s-media-yesterday-suffered-its-most-humiliating-debacle-in-ages-now-refuses-all-transparency-over-what-happened/ <comment><USER2> That's why they call them fake news. They really need to tone down the emotions and improve their fact checking and concentrate the news on facts, otherwise the people will just classify them as biased, lying, conspiracy media instead of a legible news source.

Otherwise Trump is by default winning the "battle".

<comment><USER3> Trump is just exploiting a weakness media companies created themselves with sloppy work and a reliance on cheap talking heads shows. They made it easy for him.

</comment></comment><comment><USER4> The Intercept is doing great work. The media needs to be shamed for their blatant lack of integrity.

<comment><USER5> There is no evidence at all of any lack of "integrity", here. This was simply a stupid mistake. That's it.

<comment><USER6> That "mistake" aspect is addressed in the article.

Multiple sources make it unlikely it was "mistake". It was almost certainly disinformation. The "mistake" was running with unverified information.

Consistently making "mistakes" that go in one direction indicates lack of integrity.

<comment><USER7> > Multiple sources make it unlikely it was "mistake". It was almost certainly > disinformation. The "mistake" was running with unverified information.

When multiple sources agree, it's not unverified—it's a deliberately spread lie.

> Consistently making "mistakes" that go in one direction indicates lack of > integrity.

Consistently getting lied to in one direction implies that the people spreading these lies have a specific ideological goal in mind.

</comment></comment></comment></comment><comment><USER8> I guess he doesn't count Fox or Brietbart as part of the US Media? Since they intentionally do worse every single day.

<comment><USER9> Citation? Please point to a factually incorrect sorry - not opinion piece you disagree with - corroborating your claim. Greenwald posts concrete examples of stories that had to be retracted in the past week alone. Please present a single example of a story retracted by either of those two outlets.

<comment><USER10> [http://www.foxnews.com/politics/2017/12/08/roy-moore- accuser...](http://www.foxnews.com/politics/2017/12/08/roy-moore-accuser- admits-forged-part-yearbook-inscription-attributed-to-alabama-senate- candidate.html)

Source: [http://thehill.com/homenews/media/363990-fox-news-issues- cor...](http://thehill.com/homenews/media/363990-fox-news-issues-correction- on-roy-moore-accuser-yearbook-forgery-headline)

</comment></comment></comment><comment><USER11> And AGAIN.

Trump has just demanded (and got) an apology from a Washington Post reporter that posted a misleading photo suggesting a Trump rally was half-empty. (It really was a sellout.)

Hacker News is a site for readers who think. No matter what your politics happens to be, we should all recognize the dangers present in disingenuous journalism.

</comment><comment><USER7> If "U.S. Media lied to by multiple sources that collaborated to spread misleading information, issue retractions" is the most humiliating debacle in ages, then they're doing pretty damn good.

</comment><comment><USER11> Outrageous. In my opinion, the extreme partisan bias shown by CNN, NBC, and others is a great reason to have voted for Trump. (BTW, I voted for Gary Johnson.)

Democracy has no chance to survive when the news media is 'owned' by one political party.

This is a symptom of a problem, a big problem.

<comment><USER7> And what about the extreme partisan bias shown by Fox News?

</comment></comment><comment><USER12> That's precisely the kind of story we don't need helping discredit media.

<comment><USER13> Then they ought try and avoid doing things to discredit themselves I imagine.

</comment></comment><comment><USER11> 12/1: ABC: ".@realDonaldTrump colluded-Russia" 12/2: ABC: "RETRACTED"

12/4: Reuters: "Mueller subpeona Trumps banking" 12/5: Reuters: "RETRACTED"

12/8: CNN: Wikileaks sent .@DonaldJTrumpJr secret email 12/8: RETRACTED

</comment><comment><USER14> Why is this fagged?

<comment><USER14> oops *flagged</comment></comment>


EC2 Bare Metal Instances with Direct Access to Hardware - <AUTHOR> https://aws.amazon.com/blogs/aws/new-amazon-ec2-bare-metal-instances-with-direct-access-to-hardware/ <comment><USER2> I'm really, really, happy about this. I've been complaining about the lack of cloud servers with exposed performance counters to any cloud vendor that'll listen (though of course nothing ever came of that). Kudos AWS, this is really cool.

<comment><USER3> Thanks! Would love to hear more about the counters that your interested in. We've exposed more in C5 than in previous instance types and we are trying to make more available over time in a safe way.

<comment><USER2> I have two use cases:

\- General performance analysis. For this more counters is generally incrementally better.

\- Running [https://github.com/mozilla/rr](https://github.com/mozilla/rr). This requires the retired-branch-counter to be available (and accurate - sometimes virtualization messes that up)

The second one I actually care more about, because I've pretty much stopped trying to debug software when rr is not available, too painful ;). Feel free to email me (email is in my profile) for gory details.

<comment><USER4> For the benefit of anyone reading this, KVM and VMWare virtualization generally work. Xen has problems because of a stupid Xen workaround for a stupid Intel hardware bug from a decade ago. I can provide more details about that via email (in my profile) if desired.

<comment><USER5> Can you please just post the info. Intel deserves to be shamed

<comment><USER4> One of the things the performance monitoring unit (PMU) is capable of doing is triggering an interrupt (the PMI) when a counter overflows. When combined with the ability to write to the counters, this lets you program the PMU to interrupt after a certain number of counted events. Nehalem supposedly had a bug where the PMI fires not on overflow but instead whenever the counter is zero. Xen added a workaround to set the value to 1 whenever it would instead be 0. Later this was observed on microarchitectures other than Nehalem and Xen broadened the workaround to run on every x86 CPU. Intel never provided any help in narrowing it down and there don't seem to be official errata for this behavior too.

This behavior is ok for statistically profiling frequent events but if you depend on _exact_ counts (as rr does) or are profiling infrequent events it can mess up your day.

[https://lists.xen.org/archives/html/xen- devel/2017-07/msg022...](https://lists.xen.org/archives/html/xen- devel/2017-07/msg02242.html) goes a little deeper and has citations.

</comment></comment></comment></comment></comment></comment><comment><USER6> Packet.net, arguably the leader in api driven, on demand bare metal instances, recently blogged about this: [https://www.packet.net/blog/why-we-cant-wait- for-aws-to-anno...](https://www.packet.net/blog/why-we-cant-wait-for-aws-to- announce-its-bare-metal-product/)

I am a customer of packet's, along with other virtual and dedicated hosting providers. I don't use aws ec2. I've been pleased with Packet, and their offerings are much more diverse than this initial offering from aws.

<comment><USER7> I just now took a look at Packet's web site and their data center locations. They categorize each location as either "core" or "edge", but I couldn't find anything to indicate what those terms mean in this context. Are you familiar with that distinction?

The location nearest me is an "edge", not a "core". I wonder what I would be missing out on, if it's not "core".

<comment><USER8> Edge DCs only have one type of machine (1E) and no block storage, but I think are otherwise the same.

Even in core DCs though the availability of different types of machines varies.

Love packet.net btw -- the bgp stuff is really game changing.

</comment></comment></comment><comment><USER9> Impressive hardware but I wonder what will be the cost considering even the regular VMs of EC2 are generally more expensive than dedicated offerings of other providers.

<comment><USER10> Head-to-head cost comparison of Amazon's AWS, IBM's Softlayer, Hetzner and Google's ComputeEngine on a machine learning benchmark:

[https://rare-technologies.com/machine-learning-hardware- benc...](https://rare-technologies.com/machine-learning-hardware-benchmarks/)

<comment><USER11> Interesting, but the really big difference comes when you need to push data out to end users...network egress charges.

<comment><USER10> True! Not with machine learning though. The target of this benchmark is hardcore number-crunching.

</comment></comment></comment></comment><comment><USER12> What differentiates these from dedicated boxes in server rack? Is their dedicated "cloud" hardware somehow managing access to RAM/storage/etc?

On another tangent - how do Google Cloud and EC2 attach GPUs to instances - given that you can choose CPU and RAM the GPUs must somehow be modularized away from a dedicated server?

<comment><USER3> You can provision these servers just like any other instance. They work just like any other Amazon EC2 instance (same Nitro System platform as C5).

Disclaimer: I work at AWS on the team responsible for the Nitro System including EC2 Bare Metal Instances.

<comment><USER13> is there any information about nitro or ENA (assuming this is the "hardware accelerators" that are mentioned in tfa) that is publicly available? it seems like the most nifty little thing

<comment><USER14> how many NICs can you attach to these?

<comment><USER15> 15 Elastic Network Interfaces (ENIs) can be attached, just like i3.16xlarge.

</comment></comment></comment></comment></comment><comment><USER16> I'm looking forward to testing out FreeBSD on these... and also bhyve, for a fully BSD virtualization stack.

<comment><USER17> With them leaning bare-metal and low cost, I wonder if services like these could be used to bootstrap clouds in VAR form for niche OS's. Might be useful at the least for getting bugs out of the virtualization software using diverse workloads. If costs kept minimal, might even be profitable if the niche OS has enough users.

</comment></comment><comment><USER18> > Storage – 15.2 terabytes of local, SSD-based NVMe storage.

That's probably the most interesting aspect for me.

Does anyone know how that's provisioned? i.e 8x just under 2TB volumes, or something else?

<comment><USER3> It's exactly the same as with the i3.16xlarge instance type. There are eight 1900 GB drives. In an i3.16xlarge, those eight drives are passed through to the instance with PCIe passthrough but for the i3.metal instance, you avoid going through a hypervisor and IOMMU and have direct access.

<comment><USER18> Thanks.

I guess some other open questions:

\- If one of those drives fails, will Amazon hotswap them out, or do you need to migrate to a new instance (moving TBs of data to a new box without causing outages can be painful.)

\- Is there a hardware RAID controller for those drives, or is it software only?

\- Can anyone with access to one of these boxes produce some IO performance stats on them? Bonus points for stats on single drive vs concurrent across all drives (i.e is there any throttling). More points for RAID10 performance across the whole 8.

<comment><USER15> The local NVMe storage for i3.metal is the same as i3.16xlarge. There are 8 NVMe PCI devices. For i3.16xlarge those PCI devices are assigned to the instance running under the Xen hypervisor. When running i3.metal, there simply isn't a hypervisor and the PCI devices are accessed directly.

\- There is no hot swap for the NVMe storage.

\- The 8 NVMe devices are discrete, there is no hardware RAID controller

\- Anyone can get I/O performance stats on i3.16xlarge as a baseline. Intel VT-d can introduce some overhead from the handling (and caching) of DMA remapping requests in the IOMMU and interrupt delivery so I/O performance may be a bit higher on i3.metal, with a few microseconds lower latency.

</comment></comment></comment></comment><comment><USER19> For all this progress the billing on AWS is so damn confusing to figure out if some machine is left on unused that I won't use AWS again. GCE and Azure miles ahead here.

<comment><USER20> It takes all of 3 clicks to figure this out using cost explorer

<comment><USER19> Why did AWS support send me a 5329 word message on how to check every region and service then?

<comment><USER21> Cost Explorer takes [up to] 24 hours to set up, so it's not a good answer to support questions about billing.

</comment></comment></comment></comment><comment><USER22> So if it's truly bare, how does Amazon give and take control of the machine for provisioning? Don't they still need done kind of hypervisor?

<comment><USER23> Most servers have some sort of "lights out" management, which gives KVM + remote imaging and bios control.

With amazon, they have complete control over the network in and out, so cutting you off and re-imaging a server is pretty trivial.

To be fair, its not that hard to do even if you're not amazon.

Most of the big server vendor's out of band interfaces have an API, so telling a server to reboot from a network image is pretty trivial. Providing a netboot infrastructure to install images with a 'userdata' script is also not that difficult.

you'll need a DHCP server, tftp to serve the boot image, and usuaally an NFS server to pull the rest of the image over. With some engineering work that could be made to use HTTP.

[https://wiki.centos.org/HowTos/NetworkInstallServer](https://wiki.centos.org/HowTos/NetworkInstallServer)

<comment><USER24> It's a bit harder if you host something like this for the general public to use (vs administrating machines in your private DC). Normal setups aren't really hardened against someone flashing firmware, messing with UEFI, ..., all of which mean you can't entirely trust a machine coming back from customer control. I wouldn't be surprised if Amazon took this seriously and invested effort in stopping such things. At their scale, they probably can customize the hardware enough.

<comment><USER25> Everyone who sells bare metal as a service takes this seriously. As AWS build their own hardware, especially in these newer machines, I would guess that its not possible to flash firmware from the user machine, only from the control node.

</comment></comment></comment></comment><comment><USER26> I wonder what it will cost - as of now I don't see it in the price list

<comment><USER15> Pricing will come with general availability. I suspect (and hope) everyone will be surprised and happy with the price.

</comment></comment><comment><USER27> This is really good news, happy to see this is an option now.

And thanks for posting this here personally @jeffbarr.

<comment><AUTHOR> Any time!

</comment></comment><comment><USER28> Why fancy words when they are just offering regular dedicated servers?

<comment><USER29> These were my exact same thoughts. I suppose its almost like a step back from the framework of "virtualize everything"... what's old is new..

addon thoughts: nonetheless, the specs on the bare metal box are ridiculous. buying something like that will cost you $50k (someone correct me?) - then you need to find a place to host it... thats not easy to do.

<comment><USER13> Because they're still virtualizing literally everything but the actual computer. You can attach NVMe backed EBS volumes, snapshot them as normal, etc. You can have this thing exist in a vpc next to your virtualized components, with 25gbps dedicated link. They're virtualizing the things you shouldn't need to care about, leaving you with a free Cpu and access to all the things that make aws aws

</comment></comment></comment><comment><USER30> Accounting question: Might this qualify as a capital expense? If you squint hard enough?

For context, AWS is coy (at least publicly) about the existing dedicated instances and CapEx vs. OpEx.

<comment><USER15> The information found here should help your finance team or accountants determine how best to classify your expenses: [https://aws.amazon.com/ec2/dedicated- hosts/faqs/#Should_I_Co...](https://aws.amazon.com/ec2/dedicated- hosts/faqs/#Should_I_Consider_a_Dedicated_Host_Reservation_a_Capital_or_Operational_Expense)

Since EC2 Bare Metal instances will use the same pricing models as all other EC2 instances (on demand, reserved instances, dedicated host, spot), the same information is relevant.

</comment></comment><comment><USER31> Will there be smaller instances available eventually? I'm interested in bare metal performance but I don't need an instance that huge for my current workload.

<comment><USER15> Our goal is to for the majority of virtualized EC2 instances to be indistinguishable from bare metal (if not better). In most CPU and memory intensive benchmarks there is very little difference between an virtualized EC2 instance and bare metal, especially for smaller numbers of cores and memory sizes.

</comment></comment><comment><USER32> So now you can rent a dedicated server on AWS, what is nice.

<comment><USER33> AWS already had dedicated instances, but they still had a VM running on top. These are bare metal, which means you run directly on the hardware.

</comment></comment><comment><USER34> Interesting. I expect we'll be seeing a lot more VPS providers running on AWS with these instance types.

</comment><comment><USER35> This will expose virtualization? As in I can run my own virtualization stack on these instances (KVM, etc)?

<comment><USER15> EC2 Bare Metal instances provide all the typical Intel processor features, including VT-x and VT-d. Yes you can use KVM.

</comment></comment><comment><USER36> Seems like this would be better for container farms, depending on cost.

<comment><USER37> Seems like a good way to build your own version of Joyent Triton, running containers without VMs.

</comment></comment><comment><USER38> What is the price? I can't find it.

<comment><USER21> From _msw_ in this thread: "Pricing will come with general availability. I suspect (and hope) everyone will be surprised and happy with the price."

</comment></comment><comment><USER39> awesome stuff! Great to see AWS pushing things around the baremetal problem set.

</comment><comment><USER40> Isnt this just regular web hosting?

<comment><USER41> Not quite: this is cloud-provisioned so you can do things like supply your own image and it integrates with all the other AWS services like virtual machines do. Provisioning is automated and self-serve. Also per-second billing which you couldn't get in the olden days with hosting.

</comment></comment><comment><USER42> Thanks Jeff!

</comment><comment><USER43> I think Amazon is exposing themselves to far greater security risks than they realize.

<comment><USER44> Like what?

<comment><USER43> Blackhats, state actors, etc all trying to attack Amazon or colocated services. As an example (I don't know the extent of "bare metal" access, so I couldn't be sure) with the ability to run their own operating system, a client could potentially get all the way down to the NIC to form arbitrary network packets. With this they could potentially map and attack Amazon's internal network protocols (routers, etc). Any kind of vulnerability within Amazon's software stack on other servers now gets a whole lot worse. If the client did this at a very low rate, it would be difficult to detect. Firewalling off these servers only helps so much, since they could still attack colocated servers of other clients, or could potentially spoof the protocol of Amazon's own server management.

I hope they have thought this through carefully, because it potentially exposes everyone on EC2 to more, potentially worse, attacks.

<comment><USER15> The NIC that is used by EC2 Bare Metal instances is an Elastic Network Adapter (ENA) PCI device that surfaces a logical VPC Elastic Network Interface. ENA is implemented in an ASIC that we design and build.

When ENA is used in virtualized instances, Intel VT-d and SR-IOV are used to bypass the hypervisor. When ENA is used in a bare metal instance, the OS simply has direct access to the PCI device. In either case the device is a controlled surface, and VPC software defined networking deals with verifying and encapsulating network traffic.

<comment><USER43> It's all really cool that you design and build your own NICs. They are probably awesome tech designed by really smart people.

But how many hundreds of millions of lines of code are on these systems, roughly? Ballpark estimate.

</comment></comment></comment></comment></comment><comment><USER45> OT: Job advice needed (because I think many back-end devs will be here :D)

I'm thinking about going full-stack next year. I have a bit of experience building APIs besides being mainly a front-end developer.

Is going "cloud only" a good idea? I thought about starting with AWS Lambda, S3, DynamoDB and the Serverless framework.

Are the providers hugely different or is it a good idea to spread out and do some Azure and GCP too?

<comment><USER46> That's completely off topic. In fact, the question is so broad that I cannot think of anyplace other than the water cooler or Quora to ask it.

Career advice: Never go "foobar-only". Make an effort to learn "foobar" but understand whatever is one layer below it in the stack. Want to go "cloud- only"? Learn OpenCloud, not AWS.

<comment><USER45> lol, while complaining you still gave me a decent answer, thanks :)

<comment><USER46> Of course, we're all here to help each other! Good luck!</comment></comment></comment></comment>


Offer HN: I'll make a decal for your startup. - <AUTHOR>

I make vinyl decals. It's not a business - I do it for fun. It's extremely satisfying to see an idea come to life so quickly, and the labor itself is somewhat therapeutic. I genuinely enjoy the creative process involved with making vinyl decals, and I sure could use a break from these brain-busting college courses. If there could only be one community I would give back to, this would definitely be the one.
So here's my offer: You have a startup. I make decals. I will make a vinyl decal for your startup - for free. You can stick it on your office window to appear more legitimate or slap it on the back of your car for advertising. I really don't care what you do with it, as long as it is your company's logo and/or website.  These decals will be "die-cut" style, meaning there is no background or border. Here are some examples for clarification:
http://www.lorenburton.com/decals.jpg
No trademarked logos (unless you own the trademark). To keep things simple, let's do matte black or matte white only, maximum size 5"x8", and no crazy intricate designs.  Single color logo/text (see examples).
Final thought: not sure how to handle shipping. Obviously there would be shipping costs incurred, but I don't feel comfortable charing HN for shipping.  Any thoughts on how to handle this?
If your interested in a decal for your startup, send me an email at lorendburton (at) gmail.com, with .ai or .eps file attached.  Please specify size and color.
Let's have fun with this! I'm interested to see how this idea is received, considering most "Offer HN" threads have been in regards to services. I am not looking for any personal gain here, unless you consider having fun and bringing ideas to life to be personal gain. <comment><USER2> Curious what software you use? I bought a vinyl plotter (Graphtec CE3000mkII) a few years back but basically gave up on it because all the software I could find either sucked ass, or was incredibly expensive for what it did. Plus, I couldn't find a good affordable Mac option.

If you want, email me your mailing address. I've got a bunch of premium vinyls still left over and can send you some cool stuff.

<comment><AUTHOR> Yep, the software is generally terrible. Even the expensive stuff is laughably bad software. There could definitely be a market here.

I'm currently using SignCut. It might be called SignCut Productivity Pro - they seem to change the name when they release a new version. It's a pretty lightweight program and relatively easy to use. The difference between myself and most vinyl guys is that I create my eps files in illustrator while they generally rely on the vinyl software for both design and plotting. If the vinyl software stuck exclusively to plotting it would probably be of much higher quality.

</comment></comment><comment><USER3> I'd suggest using paypal gifts since its the easiest and most common form of online payment transfer that everyone uses. Even though i truly hate paypal, it usually is the option thats the easiest to implement. I sent you an email begging for some decal help!

btw your designs rock. =D

<comment><AUTHOR> I was thinking about paypal, but the part I don't feel comfortable with is asking for money. It might have to do - we'll see what kind of response this gets.

Glad you like the designs!

<comment><USER4> There's no reason to not ask people to cover the costs as long as they're fair.

</comment></comment></comment><comment><USER5> Nice, but clarify me on something: if I give you an eps of the logo, what else do you have to do to transform it into a decal ?

<comment><AUTHOR> Assuming the logo is one solid single color design (like the ones I included in my original post) - nothing. I just send it right to the cutter in eps format and it's done. I consider a solid design one that may have several separate shapes and text but they are all unified into one "shape area" ie - if I change the color of one piece of the design, the rest follows.

If the logo has overlapping shapes and things like that, I'd have to work some Illustrator magic (merge, add to shape area, remove from shape area, expand), but it's not really a problem. Hope that clarifies things!

</comment></comment><comment><USER6> pretty cool idea! We just launched (hangwith.me) and don't have an office...or car so we will save this offer for others but neat that you posted this!

<comment><AUTHOR> Thanks! I just have to say you have implemented one of the most clever non-.com URLs I've ever seen. It flows so naturally and instantly made me wonder about the application residing at the domain. Nice work!

<comment><USER6> Wow, Thank you so much for saying that! That is really amazing feedback. We just launched so hearing things like that is just, well, awesome :)

</comment></comment></comment><comment><USER7> That is so awesome! Love it for so many reasons!

</comment><comment><USER8> This is awesome. Email sent :)

</comment><comment><USER9> This is awesome. Upvoted.

</comment><comment><USER10> What's your email?

<comment><AUTHOR> Lorendburton at gmail</comment></comment>


Pilot's eye damaged by 'military' laser shone into cockpit at Heathrow - <AUTHOR> http://www.theguardian.com/world/2015/nov/23/ba-pilots-eye-damaged-by-military-laser-shone-into-cockpit-at-heathrow <comment><USER2> I'm not sure the people doing that do it 'for fun' \-- I think might be a bit of a reaction to what the aviation lobby does around Heathrow: the planes are being kept a low altitude for dozens of miles while making their turns.

I live between Slough and Maidenhead, _WAY_ off heathrow, and you have most planes flying at very low altitude over, especially after take off, because they (presumably) try to save fuel during the takeoff phase and turn for their primary heading.

Problem is, they piss off _millions_ of people over massively populated area by doing that, and are inherently also kept within range of these laser pointers for a lot longer, so they increase the probability of someone stupid wanting to 'do something about it'...

I don't have a solution mind you, apart perhaps installing some filtering for most common laser light on cockpit windows (if it's even possible to stack filters while still seeing thru)?

</comment><comment><AUTHOR> Can anyone here make a rough estimate of how powerful a laser would be required to do that?

<comment><USER2> I don't know, but that certainly requires quite a beam to still be dangerous over a few hundred meters, especially with the pollution around to scatter the light... I'd wouldn't think it would be the handheld kind, but I don't know..

What I know is that the military don't have exclusivity on big lazors -- my hackspace has a couple sourced from the medical industry that are scary. They are also the size of a washing machine, so not the 'pointy' kind.</comment></comment>


Gen - a generics library for Go - <AUTHOR> http://clipperhouse.github.io/gen/ <comment><USER2> Here is someone trying to come up with a good solution for generics, rather than simply complaining it don't exist. I am thankful for the effort.

<comment><USER3> Good? It's an ugly hack with limited functionality (due to Go's design, not the developers' skill and good will). A good solution would be forking the reference compiler and doing a proper implementation.

<comment><USER4> The library is Go. What you're suggesting seems to be extending Go so that it becomes some other language derived from Go. Extending Go might make for a cleaner and/or better generics solution but if you have to have customized compiler to run the code then you're no longer running Go.

<comment><USER5> It would be like Java to the Pizza Language: [http://en.wikipedia.org/wiki/Pizza_%28programming_language%2...](http://en.wikipedia.org/wiki/Pizza_%28programming_language%29)

<comment><USER6> Historical tidbit: Pizza is the precursor to Java's own generics implementation (introduced in Java 5), both were written by Martin Odersky who then went on to create Scala.

<comment><USER7> Wow, 12 years old: [http://pizzacompiler.sourceforge.net/](http://pizzacompiler.sourceforge.net/)

<comment><USER8> \- Generics (aka Parametric polymorphism) \- Function pointers (aka First- class functions) \- Class cases and pattern matching (aka Algebraic types)

13 years, and only it's three features has made it into Java

I wish Sun found a way to transfer the Java trademark to Odersky before dying. Scala has so many nice features that companies prohibit because the language isn't called "Java".

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> Author here, pleasantly surprised to see this on HN.

There is a substantial set of changes happening out on this branch: [https://github.com/clipperhouse/gen/tree/projection](https://github.com/clipperhouse/gen/tree/projection).

… for this reason: [https://github.com/clipperhouse/gen/issues/8](https://github.com/clipperhouse/gen/issues/8)

</comment><comment><USER10> I really hope this will get solved in the language itself, I like Go quite a bit, but there are quite ugly places, all related to generics I guess:

\- No min/max for integers (and Go doesn't have the ternary operator)

\- No IsMember for checking if an object is in a collection

\- Directly from the Gen page: _Go's sort package requires the fulfillment of three interface members, two of which are usually boilerplate. If you want to sort by different criteria, you need to implement multiple 'alias' types._

Also, unrelated to generics, but no multidimensional arrays.

<comment><USER11> > no multidimensional arrays

That's not true, e.g. [4][4]byte is a multi-dimensional array. It's a contiguous block of 16 bytes of memory.

<comment><USER10> The size has to be known at compile time, though. One can do a slice of slices, but then it's not necessarily continuous in memory. So you are left with allocating a one dimensional array of size x*y and doing index calculations by hand like in the good old 70's or something.

<comment> a-nom-a-ly (Can't reply to your post below)

> I edited that part of the comment out because it was not really related to > anything, but I meant that all identifiers go into a single namespace, e.g > if you have a package called bytes you can't call a variable bytes, if you > have a struct type called bytes, you can't call the instance bytes

[http://play.golang.org/p/98vt2YLslY](http://play.golang.org/p/98vt2YLslY)

<comment><USER10> I got confused about the details, but this does hit me, the example I had in mind is this:

      package main

      import (
      	"container/list"
    	"fmt"
      )

      func main() {
      	list := list.New()
      	list.PushBack(10)
      	list2 := list.New()
      	list2.PushBack(10)
      	fmt.Println(list)
      	fmt.Println(list2)
      }

This does not compile, list variable shadows the list package. I would much prefer doing list::New() for package access like in C++, and being free to use obvious variable names (all the time the most obvious variable name is also the name of the package).

<comment> a-nom-a-ly Adding `::` just to separate package namespace adds nothing useful IMO; just more noise and one more needless concept.

If I decided to re-use the package name more than once it'd be `list1, list2`

I guess it's probably a programming culture thing, but I wouldn't use the word `list` to begin with. I'd use `l1`, `l2` etc. in the case where the name isn't important. It conveys no less information than `list` and short variable names AFAIK are already idiomatic so it's not even unconventional... But with all that said, `list2` wasn't a very good variable name to begin with. If you needed more than one list, then they clearly served different purposes and in that case it makes sense to name them as such: `apples`, `oranges`, `input`, `output`.

<comment><USER10> It's an example, not a real program, I do like however to call my variables "file", "path", "buffer" instad of having "f", "p" and "b" or "buf", especially when there is a lot going on in the algorithm. I don't think there is a lot of baggage in having a separate namespace for packages and being able to say:

file = File:open("file")

</comment></comment></comment></comment></comment></comment></comment><comment> c-a Why call it a library when it's a code generator/compiler?

<comment><USER12> I would argue this is a new language which just happens to compile to go.

<comment> c-a Actually it's a code generator with a library of functions it can generate. This is how the "generics" are implemented: [https://github.com/clipperhouse/gen/blob/master/templates.go](https://github.com/clipperhouse/gen/blob/master/templates.go)

</comment></comment></comment><comment><USER13> This looks similar to an older generics system for Go, `got` (GO Templates). Got was pretty cool, but Go 1.0 broke it due to the parser getting stricter.

Edit: found it: [https://github.com/droundy/gotgo](https://github.com/droundy/gotgo)

</comment><comment><USER11> These higher-order functions are a very inefficient way to write loops in Go. When you chain them you will end up with multiple sequential iterations instead of only one. Sort should not allocate and return a new slice, it's better to sort in-place, etc.

<comment><USER14> That's functional programming for you. It's definitely less efficient, but there are other major advantages. For one thing, given the propagation of immutable data, things can be parallelized effortlessly - look at 'pmap' in Clojure for example. Once you're familiar with the style, it's significantly more concise and readable.

That being said, a systems programming language may not be the right place for FP concepts.

<comment><USER15> >That's functional programming for you.

Uhm, what? No it's not.

Haskell has stream fusion, thereby generating assembler that looks a lot like the optimal imperative version.

<comment><USER16> This is kind of misleading. Stream fusion isn't baked into Haskell; you need to use a library. [1,2]

        [1] - https://ghc.haskell.org/trac/ghc/ticket/915
        [2] - http://hackage.haskell.org/package/stream-fusion

<comment><USER15> [http://hackage.haskell.org/package/text-0.1/docs/Data- Text-F...](http://hackage.haskell.org/package/text-0.1/docs/Data-Text- Fusion.html)

[http://hackage.haskell.org/package/vector-0.9.1/docs/Data- Ve...](http://hackage.haskell.org/package/vector-0.9.1/docs/Data-Vector- Fusion-Stream.html)

Except it's bloody everywhere in the libraries you use and you can design your own libraries around it.

A language powerful enough that things like this can be done in libraries instead of in the compiler is a good thing.

</comment></comment></comment></comment></comment><comment><USER17> Thanks for your effort. This is not about the library. Your site's mobile version is kinda broken. The left menu thingy always remain in the site and you can't read the main context. This happened to me on my Android Firefox Browser.

<comment><USER18> Same here, I couldn't read it at all.</comment></comment>


Developers share their most memorable dirty coding tricks - <AUTHOR> https://www.gamasutra.com/view/news/310570/Developers_share_their_most_memorable_dirty_coding_tricks.php <comment><USER2> As a student team we made an autonomous racing car in scale 1:10 for a competition (Carolo-Cup). During the controller tuning we observed that the car would cut corners and therefore leave the track, which would of course lose us points in the competition. So we simply increased the speed until the car drifted enough due to inertia to get it back in track. In the end we could only drive properly at full speed.

</comment><comment><USER3> Not a game, but:

Intel Basic compiler (there used to be such things) got returned from QA, because it didn't meet the 600-lines-per-second spec. It was 10% too slow. This was the age of 8086 processors (no, not Pentium, the original 8086).

So the Engineer changed the 'lines per second' print at the end of compilation to add 10% to what it printed. Problem solved! Passed QA.</comment>


Beria and the Beautiful Game - <AUTHOR> https://beyondthelastman.com/2019/11/14/death-despots-dinamo-beria-the-beautiful-game/ <comment><USER3> Beria was a serial killer and rapist of young girls as well... strange that this wouldn't be mentioned in passing.

<comment><USER4> [https://en.wikipedia.org/wiki/Lavrentiy_Beria#Sexual_predato...](https://en.wikipedia.org/wiki/Lavrentiy_Beria#Sexual_predator)

<comment><USER5> Wow. Under "Arrest, trial and execution": He was found guilty of treason, terrorism and "counter-revolutionary activity" but not for his numerous other depraved crimes against individuals?

How many other monsters get away with evil that we wouldn't even know about to condemn 50-100 years later?

The recent case of Jeffrey Epstein comes to mind, and whoever his "clients" were that still walk free.

<comment><USER6> > He was found guilty of treason, terrorism and "counter-revolutionary > activity" but not for his numerous other depraved crimes against > individuals?

The point of the trial wasn't to deliver justice but to eliminate Beria. Khrushchev had to consolidate power first.

<comment><USER7> The hypocrisy was obvious at that time, and Khrushchev had to redirect the country to keep it together.

Apocryphal anecdote:

 _Following Stalin 's death, Nikita Khrushchev gave a speech to the Politburo denouncing Stalin's policies. A few minutes into Khrushchev's diatribe, somebody shouted out, "Why didn't you challenge him then, the way you are now?"

The room fell silent, as Khrushchev angrily swept the audience with his glare. "Who said that?" he asked in a reasoned voice. Silence.

"Who said that?" Khrushchev demanded, leaning forward. Silence.

Pounding his fist on the podium to accent each word, he screamed, "Who - <USER2> - that?" Still no answer.

Finally, after a long and strained silence, the elected politicians in the room fearful to even cough, a corner of Khrushchev's mouth lifted into a smile.

"Now you know," he said with a chuckle, "why I did not speak up against Stalin when I sat where you now sit."_

[I can't find the link to this just now, due to company's whitelist approach to deciding which web sites are safe]

<comment><USER8> My 'favourite' Khrushchev story was he apparently got drunk with the British ambassador and the latter gamely try to argue down the number of H-bombs it would take to destroy the UK whereas Khrushchev was arguing the number up.

In case anyone is interested - the actual number the UK government estimated it would take was 3, the Soviets targetted many hundreds of them.

<comment><USER9> One takes out 20% of England's population, if it's London.

<comment><USER8> I believe the UK estimates were based on the damage required before complete societal breakdown happens rather than simple headcount of immediate casualties. The UK government always was rather realistic about what would happen in the event of a 'general war', even if they didn't make that information widely known.

<comment><USER8> Speaking of the effects of a nuclear weapon on London, here is an excellent BBC documentary from the early 1980s on the subject:

[https://www.youtube.com/watch?v=9GJttnC8PoA](https://www.youtube.com/watch?v=9GJttnC8PoA)

In best British tradition it does even manage a bit of exceedingly dark humour.

<comment><USER10> The director, Mick Jackson, later made Threads [1], which is one of the bleakest, most depressing films ever made. Highly recommended, though not for the easily disturbed. It's filmed like a documentary, not too different from A Guide To Armageddon.

He also made Connections [2] with James Burke, which is a fantastic documentary series about the history of science.

(His later, very commercial Hollywood work is less interesting, though Steve Martin's L.A. Story is great.)

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

[2] [https://en.wikipedia.org/wiki/Connections_(TV_series)](https://en.wikipedia.org/wiki/Connections_\(TV_series\))

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> Spoiler alert on Beria [https://www.youtube.com/watch?v=YjT2FhubAf0](https://www.youtube.com/watch?v=YjT2FhubAf0)

</comment><comment><USER12> Anyone interested in this would do well to watch _Burnt by the Sun_.

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

</comment><comment><USER13> Lavrentiy Beria was in deed the name that came into my mind reading this headline. Interesting to see an article about that mass murderer here. One consolation is that this scoundrel died of his own medicine.

<comment><USER14> Indeed, the Stalinist system ate its own enablers. Not just Beria, but his predecessors Yezhov and Yagoda were monsters in their own right.

<comment><USER15> I think I read that Khrushchev wrote that the thing he was most proud of was that after he was done officials in disfavor were merely demoted and sent away rather than murdered.

I think also read that in the west we think of there being a 20 year peace between WWI and WWII. Where in eastern Europe that period was one of intercine ethno-national conflict.

</comment></comment></comment><comment><USER16> If you enjoyed this you'll likely enjoy the masterpiece which is Death of Stalin.

<comment><USER17> I pictured Steve Buscemi viscerally when I read the story upthread about Kruschev. I sure hope _Death of Stalin_ is a reasonably accurate pastiche of those figures because it's my main impression of them.

<comment><USER16> The timeline is compressed and key characters in the drama are shuffled in jobs and time for dramatic effect. It is almost as if adapted from a stage play, very much about the egos in the room. It has been critizised for ignoring the systematic banality of mass murder, but I think that misses the point of the movie.

</comment></comment></comment><comment><USER18> Slightly OT, but you can get a very good impression of what it was like to live in Stalin's Soviet Union from the Julian Barnes book "The Noise of Time", his autobiography of Dimitry Shostakovitch who lived a precarious life at times.

</comment><comment><USER19> This just makes me think more about what is going on in China and HK.</comment>


Show HN: Stackkup – Auto-Tagging Bookmark Base - <AUTHOR> http://stackkup.com <comment><USER2> Hello Jonathan, A security warning. The signup/login page lacks SSL (https). All passwords will be sent in clear text and can be easily stolen.

<comment><AUTHOR> Thanks for the headsup! I'm adding SSL and custom domain in the next few days. Do stay tuned to updates!

</comment></comment><comment><AUTHOR> Hi, I'm Jonathan. I built this tool out of frustration over existing bookmark managers (e.g.built-in Chrome) that you have to manually organize by creating folders. Auto-tagging is simple using the existing meta-data (title, description, body text). Hope it can help those with 100+ tabs open right now :)

</comment><comment><USER3> Been thinking about auto tagging lately. How did you end up putting your solution together? Do you find it reliable enough to not worry about it?

<comment><AUTHOR> It's a process involving basic Natural Language Processing tools: stopword removal and dictionaries. It works well for English most of the time (when the link is an article) and Chinese not as accurate (Chinese is hard to segment into useful words tbh).

What kind of links are you looking to auto-tag?

<comment><USER3> What would be a good way to reach you? I'd like to get in touch about your tech!

<comment><AUTHOR> hey @leshokunin, I'm reachable at email@example.com! Glad to discuss how to provide help for your task :D</comment></comment></comment></comment>


Easily evaluate the probability of every tennis betting market tennisjack.com - <AUTHOR> http://tennisjack.com/ <comment><USER2> Why have you submitted this? Did you write it? Do you maintain it? Do you work for them? Do you use it for betting?

Are you simply advertising it?</comment>


Evan Williams interview with Charlie Rose - <AUTHOR> http://iyadb.com/2009/03/02/evan-williams-predicts-that-normal-people-will-use-twitter-in-five-years/

<comment><AUTHOR> is it me or did Evan look a bit out of it in this interview? Almost as if he was sleep deprived.</comment>


Android will replace iOS as the most important platform to developers - <AUTHOR> http://ovum.com/press_releases/android-will-replace-ios-as-the-most-important-platform-to-developers-says-ovum/

<comment><USER2> Link is down for the moment. text: <http://pastebin.com/5NjKnyUD> cache: [http://webcache.googleusercontent.com/search?q=cache:lsi7EB1...](http://webcache.googleusercontent.com/search?q=cache:lsi7EB15bXoJ:ovum.com/press_releases/android- will-replace-ios-as-the-most-important-platform-to-developers-says-ovum/)

</comment><comment><USER3> I work as a freelancer making android and iOs apps, and already I am having clients that prefer launching on android first and later iphone.

Mostly it is because they believe their potential customers are more likely to have android devices, as android phones are cheaper and ubiquitous. Some of them believe competition is tougher in the app market, although I don't necessarily agree.

</comment><comment><USER4> Actually it's probable that web apps will replace iOS as the most important platform to developers, especially for apps dependent on network effects. Gaming that is asynchronously social is probably one space where one platform will dominate.

</comment><comment><USER5> Yeah...I stopped reading at "growing interest from developers in BlackBerry OS"</comment>


Interactive app to pick the right Linux distribution - <AUTHOR> http://tuxradar.com/content/distro-picker-0

<comment><USER2> Looks like this tool is for someone who already has advanced knowledge about different distros and their features. Asking about desktop environments and package managers should be replaced with easier questions such as asking about features, minimalism and lightweightness. I don't know who you are targeting with this but new users would be in trouble with these two questions.</comment>