When did parents get so scared? - <AUTHOR> http://www.bostonglobe.com/magazine/2015/08/26/when-did-parents-get-scared/dEsGOllSt3zhFPfy1iOzKI/story.html <comment><USER2> As I have said elsewhere here on HN, I would like to let my kids play in the front yard but I don't. Not because I fear they'll be hit by a car jumping the curb, a serious injury from falling down, or some bad person kidnapping them.

I don't let them play in the front yard because I don't want to deal with the possibility of someone calling the cops after seeing my kids in the front yard that will lead to a government employee with more power than their agency is supposed to have showing up to threaten taking my kids away from me for playing in the front yard.

</comment><comment><USER3> I am sure it was a slow change that we hardly noticed. I think a couple things contributed to this mentality (there are plenty of others): 1) The tragic death of Adam Walsh became national news and spawned his father's advocacy for victims of crime. That spawned "America's Most Wanted"; a show that convinced viewers that each person wearing a sleeveless undershirt was a criminal. Faces of missing people appeared on milk cartons. No one wanted their child to be next. 2) Cable TV news needs to fill up 24 hours a day, so it breathes fear into us with each story so we don't dare change the channel.

Or not...

</comment><comment><USER4> I wonder how much it is related to the fact that we hardly know the people around us. I don't know my neighbors. I've heard that's a new phenomenon. We, the adults, might not even step out of our bubbles as much these days, much less allowing our children to do so.

<comment><USER5> I wonder if this is a big part of it, I know all my neighbors on a "Hi, how are you?" basis, and some better than that. We all know each others kids, and we all look out for each other. One of the reasons I chose the house I did was so that our kids could walk to the park without crossing any busy streets.

I think you have to be intentional about it though. We walk our dog and say Hi to everyone we pass.

</comment></comment><comment><USER6> "With more first-time parents than ever older than 35..."

I would gess this probably has a larger subconscious impact than societal drivers, I wonder if any studies on this have been done</comment>


Node Modules at War: Why CommonJS and ES Modules Can't Get Along - <AUTHOR> https://redfin.engineering/node-modules-at-war-why-commonjs-and-es-modules-cant-get-along-9617135eeca1 <comment><USER2> <quote>

I'll conclude with three guidelines for library authors to follow:

Provide a CJS version of your library

Provide a thin ESM wrapper for your CJS

Add an exports map to your package.json

</quote>

This seems like the same fallacy of python's 2to3, and why they should have written 3to2 instead. If ESM is the new way, library authors should instead have a CJS shim to prevent fossilization of cruft.

<comment><USER3> > This seems like the same fallacy of python's 2to3, and why they should have > written 3to2 instead.

This is incredibly insightful. I'm frankly a bit stunned. I would never have thought of this (and clearly the Python people also didn't) but it is absolutely true. It's also a very transferable strategy for any time compatibility is to be broken.

Is this an original thought of yours or do you have references to further reading?

<comment><USER2> It's a common refrain when the py2/3 discussions get going. [https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...](https://hn.algolia.com/?dateRange=all&page=0&prefix=false&query=3to2&sort=byPopularity&type=comment)

</comment></comment></comment><comment><USER4> Sorry about nitpicking, but I feel that we shouldn't say that CJS has named exports. It does not.

CJS has a single export which might be an object. And objects have named properties/fields.

On the other hand, ESM CAN have unnamed "default" export and CAN have arbitrary number of named exports.

<comment><USER5> > On the other hand, ESM CAN have unnamed "default" export and CAN have > arbitrary number of named exports.

And this is a constant source of confusion and frustration for me when working with so many npm modules lately...

</comment></comment><comment><USER6> Wow that was informative. So ES Modules is really about the Red functions [1] getting module support.

I find it fascinating watching our understanding of async computation mature over the years.

[1] [http://journal.stuffwithstuff.com/2015/02/01/what-color- is-y...](http://journal.stuffwithstuff.com/2015/02/01/what-color-is-your- function//)

<comment><USER7> The last time I asked here why async-await is even a thing, when you can just introduce light/green threads, coroutines, you name it, everyone jumped that it is _even better_ when you mark awaiting points explicitly. Now that it goes from a blog post of some popular language designer, seems no one gonna disagree.

>async computation mature over the years

A good thing, really, but would be much better if the experience from few decades ago wasn't ignored by cool kids who mature.

<comment><USER8> The reason why async/await is a good fit for Javascript is that it neatly wraps up asynchronous callback hell and Promises, which were already ubiquitous in Javascript code, because the web runtime enforces non-blocking IO.

<comment><USER7> It may be the reason, but not the only option.

      function cpsfoo(cb) {...}
      function foo() {
        var thread = this_thread()
        cpsfoo(x => thread.resume(x))
        return thread.yield()
      }

Error and immediate cb invokation handling omitted for clarity. Similar wrapper or wrapper-generator (uncps(f), unpromise(f)) may be done for other primitives.

<comment><USER9> > Error and immediate cb invokation handling omitted for clarity.

... but this is exactly the reason why callback hell existed. Error handling down the callback branches were a total mess, especially with networked state transfers.

<comment><USER7> Error handling can be easily added to the example wrapper above, completely hiding all the burden from a user of foo(), who then could do their usual try- catch. It's just my phone keyboard that prevents me from implementing it right here.

</comment></comment></comment></comment></comment></comment><comment><USER10> In two-and-a-half months the last 5 stable releases on Node, the last 2 LTS releases of Node, and all current major browsers will support standard JS modules.

It's time we all published standard JS modules and only standard JS modules to npm.

<comment><AUTHOR> > the last 2 LTS releases of Node

(Author here.)

Node 14 supports ESM, but Node 12 only supports ESM behind the --experimental- modules flag, and its error handling for incorrectly importing CJS is not good.

In 2020, I think it's a bit early to go ESM only, especially since it's straightforward for CJS libraries to support both CJS and ESM clients. (I document how to do this in the article.)

<comment><USER11> The experimental flag was recently removed in v12.17.0 (though the release notes still say ESM is an experimental feature)

[https://github.com/nodejs/node/releases/tag/v12.17.0](https://github.com/nodejs/node/releases/tag/v12.17.0)

</comment></comment></comment><comment><USER12> Meanwhile, I found this on how Deno handles modules (it's all esm):

[https://www.sitepoint.com/deno-module-system-a-beginners- gui...](https://www.sitepoint.com/deno-module-system-a-beginners-guide/)

Note that - if you can get an esm out of your cjs - and it doesn't use any nodejs apis unsupported by deno, then you might be able to use it:

> (...) Several CDNs can convert npm/CommonJS packages to ES2015 module URLs, > including: Skypack.dev, jspm.org, unpkg.com (add a ?module querystring to a > URL)

Ed: submitted as: [https://news.ycombinator.com/item?id=24069037](https://news.ycombinator.com/item?id=24069037) since I couldn't find an earlier submission, and maybe it'll generate some interesting discussion on deno / modern js vs node.

In particular I wonder if it'll in practice be easier to share (more) code between backend and front-end.

<comment><USER12> There's also a crutch - I'm not sure how attractive it would be in a project using deno, though. Maybe to get up and running quickly on deno when moving a legacy project from nodejs?

[https://email@example.com/node#commonjs-module- loading](https://firstname.lastname@example.com/node#commonjs-module-loading)

</comment></comment><comment><USER13> JavaScript just gives to much options. I keep having problems with libraries because ES6 allows

      import x from "library";
      import {x} from "library";
      import * as x from "library";
      import {x as y} from "library";

Just to compare Java uses this:

      import java.lang.Double;
      import java.lang.*;

No renaming, not a gazillion options during in- and export, but one statement. If you want to rename something, assign it to a variable.

I don't understand why ES-module authors made it that complicated, when they had the chance to introduce a proper module system.

Why did they not just copy Java's system and be done with it.

<comment><USER14> Java's packaging system sucks as does all the similar ones like C#, C++ etc compared to JavaScript's IMO.

All of those the space of namespaces is global. You can't have 2 modules named math.quaterinions in any of those languages. You can in JavaScript. To put it another way, in order to prevent name clashes in C++/C#/Java you have to know the name of every other project on the planet. If someone uses the same namespace then if you ever need to use those 2 projects together one of them will have to be re-factored.

That problem doesn't exist in modern JavaScript. There are no namespaces. There is just floating references to code.

<comment><USER15> I honestly have no idea where you got the idea that namespace conflicts are a problem in C# or Java. Both have solved this problem (C# with aliasing and Java with packages).

<comment><USER14> aliases help you use bar from foo.bar and moo.bar. They don't help you with 2 files both of which declare foo.bar

<comment><USER16> Why would you declare the same type in 2 different files in the same project?

<comment><USER14> you don't have control of all 3rd party libraries.

<comment><USER16> Then it's not the same project and the fully qualified type name will be different.

</comment></comment></comment></comment></comment></comment></comment><comment><USER17> Rollup makes building both CJS and ES versions of a library fairly straightforward. [https://rollupjs.org/guide/en/#outputformat](https://rollupjs.org/guide/en/#outputformat)

<comment><USER18> Just tinkering with Rollup: How can I let Rollup work with a pnpm monorepo, so that it's resolving local packages declared via pnpm's pnpm-workspace.yaml?

</comment></comment><comment><USER19> I use the ESM dependency to load ESM modules as a CJS shim:

[https://www.npmjs.com/package/esm](https://www.npmjs.com/package/esm)

I highly recommend it. Really let's you unify on ESM modules without much thought

<comment><USER20> For those who, like me, wondered how this is possible without hitting the top- level await obstacle mentioned in the article, the options doc includes this line (emphasis mine):

> "await":false - A boolean for top-level await in modules _without ESM > exports_. (Node 10+)

So, yeah, seems to rely on "most ESM modules don't use top-level await". Seems like a useful option to have, thanks!

</comment></comment><comment><USER21> Wow, I've been coding JS/Typescript frontends for years and somehow completely missed out knowing anything about CJS & ESM or their differences.

I guess it's all irrelevant when you don't use Node, aren't publishing libraries, and are compiling all JavaScript into bundles for deployment and never read the bundled code.

<comment><USER22> Unless you are developing libraries which will be published to the nodejs ecosystem, you really don't need to worry about this.

You pick one of these when you first create your app which is typically based on whatever framework or template you are starting from, and you just always stick with that.

<comment><USER23> Also, typescript can compile `import`s into `require()`s.

</comment></comment></comment><comment><USER24> I think CJS can export 1 more thing than ESM is a problem too.

        // cjs.js
        module.exports = (a, b) => a + b
        exports.default = 'default'
        exports.nice = 69
        // esm.js
        import * as mod from './cjs'
        // what is `mod` now?

In babel, `mod` will be `{ default: [Function], nice: 69 }`, and the string 'default' will be discarded because ESM always exports a `{ [key: string]: any }` while CJS can export whatevey they want (`any`).

</comment><comment><USER25> I really feel like default exports were a mistake, everything is simpler without them, they don't even work with things like `export * from './foo'`

</comment><comment><USER26> Another issue about module import I encountered before and wasted me 1 hour to find the culprit:

When converting TypeScript that using `import default xxx` to JS using `tsc`, it would convert it to something like `exports.default = xxx`.

To import it, you have to use `const XXX = require('./mo.js').default` instead of just `const XXX = require('./mo.js')` in plain ES6 JS.

This is fine but Babel _used to_ [1] be able to convert `const XXX = require('./mo.js')` to valid code, which made lots of people wrote it (incorrectly) that way (I was very baffled why people wrote like that since it does not work in plain ES6).

[1] [https://github.com/babel/babel/issues/2212](https://github.com/babel/babel/issues/2212)

<comment><USER18> But how do you solve it in a tsc context?

Using the default prop doesn't work in tsc and breaks all type information because tsc just doesn't know of any default prop.

<comment><USER26> Not exactly sure what you mean but you can check this: [https://github.com/microsoft/TypeScript/issues/2719](https://github.com/microsoft/TypeScript/issues/2719)

<comment><USER18> Thanks for the link. I meant following case:

A TS file which compiles to an es6 ("esnext") module cannot import cjs. Either node breaks or TS' type-checking fails. Former if you omit default when importing and latter if you introduce .default in the TS codebase.

It's a bit complicated, what I just wrote about is reflected in the chart in step 4-6 here [https://github.com/microsoft/TypeScript/issues/18442#issueco...](https://github.com/microsoft/TypeScript/issues/18442#issuecomment-666190219)

</comment></comment></comment></comment><comment><USER27> I spent half an hour yesterday banging my head against the wall on exactly this.

Thank you.

</comment><comment><USER28> Holy crap, this redefines dependency hell.

<comment><USER29> Gimme COM+ back! I'm sorry I hated you...

</comment></comment><comment><USER30> While I understand why it was done, I feel ESM vs CJS Will be the breaking point for node.js. All my clients are using Babel to avoid this single issue but it's slow enough to be a DX problem.

I wonder if deno (maybe with a tsc reimplementation written in rust) will take its place for new projects. Personally, I've already suffered enough with python 2/3 and decided, after 9 years writing node, to use uniquely rust for new backend development.

Frontend development is quite a slow process as well, but all the faster alternatives imply knowing a different language - which impacts developers availability (given historically frontend developers are mostly JS).

</comment><comment><USER31> It's always surprising to read about the trouble this causes for Node. I've been writing mostly Webpack-compiled JS for the past few years, and it seems to allow any random mixture of require and import. Have I just been avoiding trouble areas by chance?

<comment><USER32> Webpack + babel are basically rewriting `import` and `require` calls into their own `__webpack_require__` helper and converting ESM to CJS. Whereas `require` and `import` are node built-ins and `import` is browser built-in. Making stuff interoperate requires some trickery and lax spec compliance.

There are high chances you are relying on some non-spec compliant behaviors but you don't know about it. For example, ESM exports have immutable bindings, which means, mocking exports for unit testing is impossible. If it works for you, it's because you transpile the code from ESM to CJS (either via `babel`, `rewire` or similar tool).

</comment></comment><comment><USER33> The description of how require() works is not quite correct. Node does not always fully initialize the dependency module before returning from require(). It can't work that way, because Node allows circular require() dependencies. Try it!

<comment><USER34> The reason is not correct. Nodejs cache the require lot and so circular dependencies can work without returning half finished loads.

<comment><USER33> Nodejs does cache the results of require(), but that doesn't help with this problem. Example: [https://repl.it/repls/SwiftOlivedrabBrace](https://repl.it/repls/SwiftOlivedrabBrace)

</comment></comment></comment><comment><USER35> This is an important issue to consider because as we are witnesses a Cambrian Explosion in 'new tech' (and by the way, in 'new' we can include evolutions of 'current') ... we need to grasp that 'a new piece' is is just going to be 'one of many pieces'.

My first instinct these days is how that funky new bit of Lego fits with all the other bits of Lego.

When you start there, it's becomes easy to understand just how incumbent C++ and javascript are, even with all their necessary spells and arcane witchcraft.

</comment><comment><USER36> Honestly, all I need is a standardized way to publish and consume packages directly as Typescript (right now you can point "main" & "types to it, but I'd rather something like export maps) because the transpilation should be done by the end user as you can't assume which build target they might prefer.

<comment><USER37> Typescript transpilation is already pretty slow when just used for your own application, if all the node_modules directory entries were in TS I'd probably be looking at hours for the transpilation.

<comment><USER36> I removed Babel from my toolchains a while ago (and instead use TS to transpile even dependencies), so the compilation times are fine.

</comment></comment></comment><comment><USER18> fwiw, TypeScript and ES Modules are just not compatible and never will be: [https://github.com/microsoft/TypeScript/issues/18442#issueco...](https://github.com/microsoft/TypeScript/issues/18442#issuecomment-666190219)

<comment><USER38> That chart shows that Typescript is incompatible with CJS modules, because it inherits ES Modules incompatibilities with CJS, not that it it is incompatible with ES Modules.

</comment></comment><comment><USER39> You can use ESM (including dynamic import) in node 6+ (without babel) by using [https://github.com/standard-things/esm](https://github.com/standard- things/esm) and cut the `.mjs` and "it can't work like that" crap.

<comment><USER40> You can definitely continue to use transpilers like esm or babel to continue using CommonJS behind the scenes while writing module syntax. But it's not quite the same as using native modules, as implemented by JavaScript engines.

</comment></comment><comment><USER41> it seems so insane that there are competing module patterns in a single language, but perhaps i'm ignorant. are there other languages with such incompatibilities on a fundamental component?

<comment><USER38> Lisp is the easiest classic example that took ages to settle on a module standard and has had different competing standards over the years.

PHP and Perl are probably more recent examples comparable to JS here that provided mostly only low level plumbing (include/require) support and nearly wound up with multiple incompatible module loading patterns.

Even C/C++ the "module" system started as a text processing hack in a macro pre-processor that used to be a separate tool (though I don't think any modern C/C++ toolchain uses a separate macro pre-processor, as there are tons of optimization layers now and some of the macro pre-processor knowledge makes its way all the way through to the linker these days).

Historically, modules were always just "smash these two files together in this order" and it was only later that languages started asking hard questions such as "which symbols from this other file are available".

The modern concept of modules as a fixed "shape" of self-describing public symbols is as much a later abstraction out of Object-Oriented Programming as anything else. Our idea of what a module should be in 2020 is much more informed by "recent" notions such as Component systems like COM and languages such as Java and C#.

<comment><USER41> very cool thanks for the context!

</comment></comment></comment><comment><USER42> Is this really such a big deal? Using ESM with imported CJS packages has been pretty straight forward for me. It's hardly the worst thing about Node.js development.

</comment><comment><USER43> If library authors make esm as a thin wrapper over cjs, won't it hinder tree shaking.

And for tools that want end to end esm, like vite. Won't it cause degradation in behaviour?

<comment><USER44> > If library authors make esm as a thin wrapper over cjs, won't it hinder tree > shaking.

Correct. I wouldn't follow the article's advice wrapping ESM with CJS as it leads to larger bundles.

> Won't it cause degradation in behaviour?

For web apps - certainly. The forced sync behavior of CJS wouldn't be very noticeable for local applications however.

</comment></comment><comment><USER45> And the article is not even talking about default imports on transpiling with tsc or babel (or both!). Too many combinations.

<comment><USER18> Oh yes, especially with tsc (it's just not working), see my other post here with a Github issue link

</comment></comment><comment> lf-non Not taking seamless CJS interop into account was IMHO the biggest failure of TC39 till date.

Given the widespread popularity of CJS they should have prioritized CJS backward compatibility over things like better support for circular dependencies and mutable exports. Many languages are doing quite fine without them.

</comment><comment><USER46> npm install esm

Then everything just works. Top level await and all.

<comment><USER47> Wait till you throw a package.json with "type": "module" in there.

Everything used to work until Node 12.15, then 12.16 started throwing when trying to require type:module packages with `require` (which is what `esm` does)

[https://github.com/standard- things/esm/issues/868](https://github.com/standard-things/esm/issues/868)

</comment></comment><comment><USER48> I haven't seen CommonJS modules for years now, only ES modules. Didn't realize this was such an issue still.

> You can't require() ESM scripts

That's one way to put it! Another would be to say that you don't have to. require() came about because we didn't have the import keyword.

<comment><AUTHOR> (Author here.)

You were not using native ESM in Node years ago. Node 14 shipped with unflagged ESM support just this year. (If I had to take a guess, you were probably transpiling "import" statements into "require" statements and/or bundles, which honestly works better than native ESM, because there's no interop issue.)

Almost all of the most depended on NPM packages are CJS, and provide no ESM exports. [https://www.npmjs.com/browse/depended](https://www.npmjs.com/browse/depended)

lodash, react, chalk, commander, moment, express, axios, and vue are all CJS.

</comment></comment><comment><USER49> A major benefit of node modules using ESM, at the moment, is that they aren't swimming in a swamp of NPM packages.

</comment><comment> iso8859-1 Enough with the hornet hate. They are great animals. If you know German, you can learn how great they are in the knowledge podcast of the Bavarian Broadcast: [https://www.br.de/mediathek/podcast/radiowissen/die-wespe- un...](https://www.br.de/mediathek/podcast/radiowissen/die-wespe-ungeliebtes- insekt-mit-grossem-nutzfaktor/1799970)

Or if you prefer this Hessian article:

[https://www.faz.net/podcasts/wie-erklaere-ich-s-meinem- kind/...](https://www.faz.net/podcasts/wie-erklaere-ich-s-meinem- kind/faszination-wespen-was-das-tolle-an-den-tieren-ist-16882996.html)

<comment><USER50> They might be great animals, but as you know here trying to have a picnick with them arriving as an uninvited gang doesn't turn out a great outdoors experience.

<comment><USER51> I can't say I have ever been bothered by hornets as opposed to wasps.

(Central Europe)

<comment><USER52> US here, but I've never been particularly bothered by wasps, at a picnic or otherwise. I suppose it helps that I don't mind them, or mind sharing food with them; they're peaceful until given cause not to be, cleanly in their personal habits, and quite beautiful.

One of my earliest memories is of sitting on the open tailgate of my mom's truck, carefully holding a slice of pizza so as not to disturb the black-and- yellow mud dauber who had landed on it to nibble daintily at the edge of a bit of pepperoni. In the general run of human theory, I gather, such a moment should require all sorts of histrionics, but neither she nor I saw any need for them, and no one else was around to disturb her appetite or my fascination. On reflection, I suppose that moment must have done something to set a tone for my life in terms of my relationship with aculeates.

And it's not as if they eat enough for a human appetite to notice, anyway. They're hell on caterpillars - I've seen a few P. metricus foragers entirely depopulate a thriving fall webworm nest in the course of a couple of days - but, having never developed a taste of my own for such things, that really doesn't bother me. And I do very much enjoy watching them hunt!

Squirrels, on the other hand, can all go straight to hell.</comment></comment></comment></comment>


Microsoft: Mango Will Roll Out "In The Next Week Or Two" - <AUTHOR> http://techcrunch.com/2011/09/21/microsoft-mango-will-roll-out-in-the-next-week-or-two/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Techcrunch+%28TechCrunch%29

<comment><USER2> I had two reactions to this, quick, and back-to-back:

1) Finally some non-MS apps that'll support multitasking, yay!

2) I'll believe it when I see it

Hopefully, my dev drop of Mango will allow me access to RTM Mango apps on the app store, so #2 really won't matter.

<comment><USER3> It's more like a quick resume than real multitasking, except for audio playing apps.

<comment><USER4> That's pretty much how all the big mobile OS's handle multitasking save WebOS. Even if they keep processes running there isn't any real UI navigation that separates the running from the paused from the dead.

I really loved the WebOS cards UI. It's a shame it's dead, hopefully Android will move in that direction since they hired the head of WebOS's UI design team.

</comment></comment></comment><comment><USER5> Microsoft seems to have learnt a lot since the lat update. NoDo update took a bit longer to be delivered. Mango seems much better planned. Good to see Microsoft learning from past experiences.

It's a great thing for users and developers alike because this is one sweet release. Have been using it for some time now and loving it since day 1.

</comment><comment><USER6> I'd never heard of this product. From the title, I had my hopes up that MS bought that failed desktop-based distributed storage product from the late 90s called Mango and brought it back to life. It seemed a very cool and ambitious product, perhaps too ahead of its time.

Anyone else remember that product? I can't even find mention of it on Wikipedia.

</comment><comment><USER7> Would be nice if they could finally deliver something! MS is talking about this update since February, yet people are still waiting...

<comment><USER3> They've always said Fall 2011 and Fall starts on Friday. What are you talking about?

<comment><USER7> I know, but I guess that's called frustration because of WP7 stagnation. Both Android and iOS get planty of updates with new features and WP7 users are still waiting to get the basics like background audio since almost one year.

</comment></comment></comment><comment><USER7> After No-Do, Mango will be update number 2 for Windows Phone, if you don't count that update to enable updates which didn't really work on first try and had to be updated again. Anyway, I wonder how many unpatched security holes IE mobile has by now. Good for them they don't get all the media presence Android and iOS do.

Edit: Why the downvote? I remember iOS updates fixing plenty of security bugs so I assume there are lots of unpatched holes in WP7.

<comment><USER8> My NoDo update worked the first time so do you mean only for Samsung Focus phones?</comment></comment>


A new Amiga with customizable coprocessor - <AUTHOR> http://www.osnews.com/story/22693/New_Amiga_Sports_Programmable_Co-Processor_Dualcore_PPC

<comment><USER3> The persistence of the Amiga people is definitely something to learn from.

If anybody ever wants to put an end to it they'd better bring some garlic, wooden stakes and silver bullets.

<comment><USER4> The Amiga is similar to the Mac to the extent that the users loved it. Unlike the Mac however, the parent company detested and destroyed the Amiga.

<comment><USER3> I remember when they first came out and literally standing glued to the floor, multiple active windows, it was the first time I ever saw that.

The only other machines at the time capable of doing that were priced way out of ordinary mortals budget.

There as the Acorn 'unicorn', probably the cheapest and then right away big $ stuff like the Apollos.

There was no way I could afford a machine like that (nor the Amiga, for that matter, at least not at that time) so I stuck to my trusty 8 bitter for a bit longer and built the Elektuur 'GDP', a hardware assist for vector graphics.

But it never looked as good as the Amiga OS.

<comment><USER5> > [...] I stuck to my trusty 8 bitter for a bit longer and built the Elektuur > 'GDP', a hardware assist for vector graphics.

Interesting... This one? [http://en.wikipedia.org/wiki/Acorn_Electron#Slogger.2FElektu...](http://en.wikipedia.org/wiki/Acorn_Electron#Slogger.2FElektuur_Turbo_Board)

<comment><USER3> Close :) BBC model B.

</comment></comment></comment></comment></comment><comment><USER6> 10/10 for persistence. I'm sure it'll run BeOS too before long ;)

</comment><comment><USER7> Whilst this is interesting technology wise and may open impressive possibilities... so what? Without a solid install base why would I spend my time writing impressive software that is tied to this machine? Profit? No install base = no customers. Hubris? No install base = no one to impress.

I'm fully aware this is a chicken and egg situation...

(I say all of the above as a total Amiga fanboy from back in the day!)

<comment><USER8> I think it's designed for the number crunchers out there. A GPU can crush a CPU for some applications but there is a huge middle ground between a GPU and a CPU.

<comment><USER9> Why do you think it's designed for the number crunchers? I want one (I'm an ex-Amiga user, and still miss it...), but I certainly don't think a dual core PowerPC + a 400 MIPS co-processor is going to be cost/performance competitive with a suitable x86-64 based server at this stage. In fact, I'd be surprised if it was much faster than my current $600 laptop.

The XCORE ("Xena") co-processor they've added is exciting, but because of the hard-realtime capabilities / low latency and IO lines, not for raw performance.

<comment><USER8> I was thinking of the people that crunch numbers not the programs. I don't think it's designed for a production environment; rather it's a dev box that lets you explore programmable processors. I think they avoided making an x86 with coprocessor because they want to own the dev environment for such things, but the innovation is all about that coprocessor.

PS: 1x Xorro slot with a card that's 102400 MIPS is fast. An example of number crunching would be real time encoding of super? HD (4x 1080p). Or a custom high bandwidth router etc.

<comment><USER9> I don't consider it a dev box as much as a box intended to satisfy Amiga hobbyists, some of which may use it for development, but a lot of which just want a non-x86 box running AmigaOS at decent speeds... Keep in mind that the people behind this are long time Amiga supporters - they're not in this for the sake of the XCore.

For the people who _are_ interested in the XCore, it's cheap to buy USB attached dev-board, so this only really matters if you want to play with a system that _may_ have significantly tighter integration (we don't really know yet how tight).

For the Amiga community, an x86 box would've been a non-starter. The people in the most likely buying segment for this box are people that have stuck to ancient "classic" Amigas, or at best upgraded to sub 1GHz single-core PowerPC boards running newer versions of AmigaOS, that they've paid more for than what you'd pay for a quad core 2GHz+ x86 box. Most of them would've been happy with "just" another PowerPC machine, but the XCore adds some extra excitement and may entice a few ex-Amigans like me to have a go for the fun too.

> PS: 1x Xorro slot with a card that's 102400 MIPS is fast. An example of > number crunching would be real time encoding of super? HD (4x 1080p). Or a > custom high bandwidth router etc.

The 102400 MIPS is an example based on a hypothetical card that doesn't exist, though.

For comparison, XMOS themselves sells a roughly 25000 MIPS experimental board for $1500, so while you can make it fast, it'd also be fairly expensive and it does require a new product.

I _am_ excited about having the XCORE chip there, and I may buy an X1000 (who am I kidding, I will buy one unless the price is absolutely outrageous), but I _am_ an ex-Amiga guy and would buy it in part because I still really love the whole Amiga experience, without any illusion that I couldn't do most of the same things on a PC much cheaper in most instances.

When it comes to the XCORE what excites me about it, rather than performance, is that it will be standard. In other words, (the few) people who write Amiga software can soon reasonably rely on having it available in the computers of most users of their software. People are already thinking up all kinds of bizarre uses for it.

<comment><USER8> Thanks for the background. When I read:

"We believe that with this easy gateway to the world of 'Software Defined Silicon' and a path to massive parallelism, the X1000 will once more make the AmigaOS platform the best choice for truly creative and unique applications. For custom hardware control from robotics to theatrical lighting, for _hobbyist creativity, for hardware hacking_ and for a multitude of applications we haven't even imagined yet, the X1000 is a dream platform - <USER2> therein lies another meaning of 'X', the unknown. _It is you, not us, who will define the future._ "

I thought it was a great way to attract hobbyist developers. A quad core 2+ GHz x86 chip can do an insane amount of computation quickly and cheaply and even a mid range GPU takes that to a whole other level. I don't know how many flops you can get per MIPS on XCore, but if you are handcrafting at that level you can do things for less power than a CPU while having more flexibility than a GPU.

It never really occurred to me that people where still using the Amiga OS. From that standpoint it's much more evolutionary than revolutionary, but still cool.

PS: In my mind computer hobbyists and developer often mean just about the same thing. But, I realize developer makes people think of Software Developer not a HW dev.

</comment></comment></comment></comment></comment></comment><comment><USER10> Oh cool. A dead platform jumps onto another dead platform. The concept of a modern Amiga has gotten beyond ridiculous at this point.</comment>


Scribd Launches Massive Redesign - <AUTHOR> http://www.techcrunch.com/2008/08/28/scribd-finally-starts-a-new-chapter-with-a-redesign/

<comment><USER2> What's up with the logo? I think the design has gone in a better direction, but the logo doesn't do it for me.

</comment><comment><USER3> For an early stage company like Scribd, what exactly is the rationale for funneling resources into a site redesign instead of into developing/expanding features? I mean, this design is an improvement, but the original site wasn't bad at all.

<comment><USER4> "Scribd has seen the number of searches double (the number of uploads increased by 70% as well"

</comment></comment><comment><USER5> I haven't logged into Scribd in a while, but strangely when I accessed their website now, it shows me logged-in as some other user. I can see the profile, and all uploaded documents of that user.

Looks like a major security (cookie mixup) flaw!

<comment><USER6> Ashutosh, please contact me about this so I can investigate - jared @ scribd.

</comment></comment><comment><USER7> Looks better, but i wish they'd take a hint from google. Give us the stuff then get out of the way.

</comment><comment><USER8> I still think that the killer app. for Scribd is converting PDF and flash (and everything else) into plain old, super fast html. Then you would know that every Scribd link loads super fast and doesn't give you anything but clean pure text. Like Google's "view as html" but better.

That would make me a Scribd fanatic!

Flash - not so much.

</comment><comment><USER9> Looks a lot better, absolutely. Still not my cup of tea (my startup focuses on the more artisan side of writing), but for what it is, this redesign was pretty excellent.

</comment><comment><USER10> Awesome, so they don't use flash anymore? Whoops nevermind...</comment>


Putting the fun in functional programming - <AUTHOR> http://www.whattofix.com/blog/archives/2010/08/putting-the-fun.php

<comment><USER2> I've worked with OOP a lot and I've also used FP, although less than OOP. In my experience, what you're saying is both right and wrong.

It's right, because FP really is fun and it really is just the way you describe it. But it's also wrong, because you believe that OOP can't be like that. It can.

Aggressive, continuous refactoring as a coding "process" (I hate using such an overloaded, overused word) is not exclusive to FP. Nowadays, I do my best OOP coding just like that, whenever I have the luxury.

And it really _is_ a luxury. As soon as your code is "out there", available for the rest of the team to use and rely on, your days of aggressive, continuous refactoring are numbered. Unless you want to be known as "that guy who keeps yanking the rug from under our feet all the time", you have to settle down into the boring old routine of "I know this might not be the best way to do it, but I can't touch that other thing right now". Show me a team with two or more members and I'll show you bits of code left as a "compromise".

</comment><comment><USER3> This is why I play with FP all the time, and sometimes get real work done in it. I'm also currently exploring embedding nano-interpreters into existing languages.

But there are some cautionary tales, too. Here's one I submitted earlier:

<http://news.ycombinator.com/item?id=1626130>

<comment><AUTHOR> You are correct.

I was going to include the good and bad parts of FP, but the bad parts really deserve their own posts. Lots of little "gotchas" there.</comment></comment>


Samsung's 6Gbps SSD gets a consumer label, October release date - <AUTHOR> http://www.engadget.com/2011/08/17/samsungs-6gbps-ssd-gets-a-consumer-label-october-ship-date/ <comment><USER2> We won't know til fall, but any guesses on pricing?</comment>


Show HN: Build a Pet Hotel Web App with React, Node.js and DB with ScaffoldHub - <AUTHOR> https://www.youtube.com/watch?v=MMOvx38dXz4 <comment><AUTHOR> Learn how to build a Pet Hotel web application with React, GraphQL, NodeJS, SQL, MongoDB or Firebase Firestore using ScaffoldHub.

You can see the end result of the course here: [https://reactpethotel.com](https://reactpethotel.com).

The course uses ScaffoldHub.io ([https://scaffoldhub.io](https://scaffoldhub.io)) to create the initial application and then we deploy it in the cloud. After we explain the basics of Javascript, React, Redux, React Router, Formik and Yup. GraphQL, Sequelize (SQL), Mongoose (MongoDB) and Firebase Firestore, and finally, how the application is customized to attend all the Pet Hotel needs.

DEMO: [https://reactpethotel.com](https://reactpethotel.com)

WEBPAGE: [https://scaffoldhub.io/courses/react-pet- hotel](https://scaffoldhub.io/courses/react-pet-hotel)

CODE: [https://github.com/felipepastorelima/react-pet- hotel](https://github.com/felipepastorelima/react-pet-hotel)</comment>


Is presentation the cause of loneliness? (2017) - <AUTHOR> https://kaomorphism.com/2017/10/06/Is-Presentation-The-Cause-Of-Loneliness.html <comment><USER2> Relationships naturally form when people have common activities and goals. I think the problem is that outside of the office and family, that connective tissue just isn't there anymore. You can find it, if you seek it out (various hobby meetups for instance), but anymore nobody is just automatically included. Everyone has diverse interests, which is great, but often you find you have nothing in common with your neighbours.

I don't think the problem is people's protective layers of presentation. We need those fictions when we're learning if we can trust someone. The problem is it's incredibly hard to form a bond with someone if you don't have a clear "why", and there's rarely that context anymore. There are a lot of people I meet Id love to be friends with, but it's awkward to just organise that without a social excuse sometimes. Especially because if the relationship goes poorly, if you have a common thing its easier to pull back, whereas if its just "want to be friends?", if you pull back it seems more personal.

<comment><USER3> I think that these two are causes rather then requirements. The fact that in our current culture it is awkward and socially wrong to "just organise that without a social excuse" and that we need "common activities and goals" to even consider socialization is why we are lonely.

Of course common activities and goals do help. But when they are the only thing, the relationship is destined to die the moment something changes.

But people who are not lonely tend to value relationships for themselves. They organize without excuse, send each other mails for no reason about ordinary life and call each other for no reason. What they do have is values that put priority on relationship and skills to keep them. There is also mutual reciprocity to some extend with helping each other and such.

A lot of these things are low-key stigmatized in some sub-cultures. The above is wasting time, just hanging around, just being social etc. See how spending a lot of time on phone was mocked - but it was reasonable way for people who dont have common activities and goals to keep relationships. The need for at least pretend common goal and important enough topic so that we dont feel like wasting time is more of symptom then the solution. Because it prevents us to keep relationship unless it is immediately useful.

<comment><USER4> > A lot of these things are low-key stigmatized in some sub-cultures.

I would actually go further and say that it is high-key stigmatized. My take on this is it has a lot to do with how individualistic & market-oriented American culture (and to an extent 'western' culture) is. I spent the formative part of my youth both in a highly individualistic culture and a more communal culture and while both have their pros and cons the lack of authentic interaction or community is very much a feature of the existing (North American) culture, it is not a bug.

</comment></comment></comment><comment><USER5> Hmm maybe I can give some advice here. The key is to just not care whether or not people are just pretending to like you. "Just don't give a fuck" sounds really trite but I really think caring too much about other people's feelings is an anti-super power. I find what really helps me is just assuming that the other person doesn't like me, and then making a conscious decision to make the effort to make them like me. This is almost the opposite of what people say, "just be confident". I think being attractive (personality) and likable is a trainable social skill, and once you do it often enough the effort becomes effortless. Of course a mind reading device to skip the presentation stuff would also be nice.

<comment><USER6> How do you both "don't give a fuck" while also "mak[ing] the effort to make them like me"?

<comment><USER7> That's always the problem with these forms of obliquitous advice - they are paradoxical. I'm not saying they don't work or are necessarily to be dismissed because they seem practically impossible because they are on the surface self- limiting. I'm just saying that's what they all share.

Zen. Buddhism. Sufism. Stoicism. Minimalism. Less is more.

You have to experience it to know it. The anti-thesis of science.

<comment><USER8> Actually, the manifestation of science..

Science is about testing (experiencing) your hypothesis not memorizing dogma. If someone says: "gravity is a thing" then as a scientist you think through the consequences, if something doesn't align with your expectation then you design an experiment. This way you realize the truth yourself, problem is that people use the word 'science' as 'that thing that other people do to find out the truth' (where 'truth' is the thing you are supposed to believe unquestioningly since you are not a priest, sorry.. scientist).

<comment><USER3> Scientists learn awful lot without checking from books, articles and talks. Each scientist tests and verifies only tiny little part of he or she considers science. And they typically assume that non cutting edge parts are correct, unless there is very strong reason to doubt that.

It does cause too much inertia in some cases and it can be hard to overturn old theories, but it also makes science overall possible.

</comment></comment></comment></comment></comment><comment><USER9> I think the inability to find a price here also has to do with value. To develop a relationship with someone requires that you offer value in the form of conversation, entertainment, etc.

People are most attracted to attractive people. (And by "attractive" I mean _primarily_ personality characteristics.) Most people seem to actually have an aversion to lonely people whether conscious or subconscious. Perhaps it's an old social defense mechanism from times in our history where it was dangerous to associate with unpopular people. You were more likely to be shunned as well and less likely to be given mating opportunities.

I often go out of my way to talk to the wall flowers and shy people that no one is talking to, but I've found by and large, they are also much harder to talk to! It's much more work to stoke the conversation, and we all know there's a threshold there, below which, the conversation just isn't stable. Putting two wall flowers together has a much lower conversational success rate (which is a basic minimum hurdle to continuing any kind of social relationship) than two social people.

It's a tough nut to crack, and I don't think unknown intentions is the problem.

<comment><USER10> > I think the inability to find a price here also has to do with value. To > develop a relationship with someone requires that you offer value in the > form of conversation, entertainment, etc.

I think part of the problem here is forcing everything to be viewed through the lens of market economics and trying to make every human activity a kind of market exchange. Markets are a powerful paradigm in some contexts, but they're not the end-all-be-all of human behavior.

Loneliness may be a product of marketization of social relationships, so market-thinking won't offer a path out.

<comment><USER11> This exchange triggered me:

I'm so sick of the "market" paradigm. It's seeped so deeply into every cultural value we have blinded us to many parts of life.

Everything is a market now. Every waking moment your time is on the market. Every thought you have is either contributing to "value" or worthless. Every social interaction is an exchange of value. Every relationship is "optimized." Everyone is an atomized economic actor.

This idea has completely outlived its usefulness and is like a sort of cultural grey goo that corrodes humanity from the inside out.

Sorry, rant over.

<comment><USER10> > Everything is a market now. Every waking moment your time is on the market. > Every thought you have is either contributing to "value" or worthless. Every > social interaction is an exchange of value. Every relationship is > "optimized." Everyone is an atomized economic actor.

You might want to check out _The Great Transformation_ by Karl Polanyi. I'm about 3/4 of the way through, and it's been eye-opening.

</comment></comment></comment></comment><comment><USER12> Judith Butler has spent a good portion of her career exploring this concept from a non tech third wave feminist view point, and I have found her work to be incredibly insightful and applicable to many discussions outside of feminism as well.

As a man, I have caught myself "performing" for other people on a regular basis. Wearing a suit to formal occasions. Shaking hands with a firm handshake. Laughing at jokes that I wouldn't laugh at in private. Are these things "me"? By outlining both mentally and on paper which behaviors I do for myself and which I do for other people I have unraveled a good portion of my character. Many of the behaviors I have decided to keep, despite knowing that they are a performance for others - the difference now being that I can feel confident that my performance is rooted in active decision and authenticity with how I want the world to perceive me, rather than a simple need to please others. This is an ongoing process.

<comment><USER13> What's the boundary between "performing" and "behaving in a socially expected way"?

<comment><USER14> In my opinion the difference is that "behaving in a socially expected way" is following norms so that no bad attention is drawn to you or to prevent others from having negative experiences from your behavior, and "performing" is the constant feedback cycle of emulating behaviors and traits that you think will draw positive attention and create good experiences with others.

A good example is that most things people do to be polite are considered "behaving in a socially expected way" while interactions like a young adolescent male lowering their voice when talking to somebody they are attracted to is "performing".

Performance is common for many other interactions like dressing up and formalizing language for job interviews, "telephone voice", as well as matching posture and speaking style during interactions. Performance captures the potentially unfounded change in behavior to better a specific interaction. Many sitcoms often create comedic moments when performance for a specific interaction is not compatible with performance for another interaction, so when "worlds collide" (as in Seinfeld) the character has to either struggle with maintaining both performances, or choose one form of performance to stick with and ruin an interaction with some other situation.

</comment></comment></comment><comment><USER15> On the other hand, if nobody in the room thinks you're cool enough to want to talk to you, the ambiguity in presentation is more a feature than a bug. You're wishing that we could read each other's minds, but only a subset of us would enjoy that knowledge. Please leave the rest of us space to indulge our illusions. They make some of us _more_ social.

<comment><USER16> Never thought of it that way, but you're right!

</comment></comment><comment><USER17> No you're thinking too much the cause of loneliness is living alone. It 100% starts and ends at how we live in modern society. Living spaces that have shared communal spaces for essential requirements like a kitchen, dining table or a Television room will end loneliness.

I have no doubt about this. The problem is, people living in these communal spaces complain about the lack of privacy or ownership. People don't know what they want even when the answer is in front of them. Humans have conflicting individualistic needs and needs for companionship as well, the dual nature of our desires actually evolved under communal living spaces so in actuality, despite the fact that you desire privacy, you're actually healthier if you give in to the alternative desire of companionship. People do need to own things but not to the extent that communal living spaces are abandoned.

What people think is that we're designed to search for this state of satisfaction even when living things aren't actually designed to ever reach this state. There is no evolutionary advantage to a creature who is perpetually content and therefore you will never be content. That being said my theory is humans are actually designed to live in communal spaces while being a bit discontent about the lack of privacy or ownership. This is the natural state of things similar to how you have endless desires to eat greasy unhealthy junk food but your desires are not evolved to be in an environment where such food is plentiful.

The alternative is to give in to your capitalistic desires and be lonely. I believe this is the worse alternative from pure anecdotal experience and from the way humans lived anthropologically in the past.

</comment><comment><USER18> Whatever floats your boat.

I'm pretty lonely sometimes, and I wish I was nicer sometimes, and I wish people spoke _my_ language more often. These things are harder when the culture is larger, as funny as it sounds.

Keeping up, is just so damn hard. Staying in requires trust, and empathy.

There's a sad paradox of our times. We both need to slow down and get to know each other, and we need to race to address the problems we all see plain as day.

Sadly, we're DISTRACTED. And the more distracted we are, the less we address the underlying issues.

</rant>

</comment><comment><USER19> My god, it's full of scroll bars. [https://imgur.com/a/KcV6v5W](https://imgur.com/a/KcV6v5W)

</comment><comment><USER20> I've been thinking about this for a long time. About 5 years ago, me and some friends got together to build a "Dating app but for people looking for friends and activity partners".

Fortunately, we all quit before we got in too deep. It didn't seem like a problem that had any good solutions.

Today, I'm convinced that a technology solution is not the right approach. Screen addiction and various dopamine hits from social media have produced a catastrophic collapse of various IRL social institutions that traditionally facilitated opportunities to meet new people.

The most practical "if I had a magic wand..." solution that I can think of is to wave a magic wand and undo all forms of screen addictions that has destroyed our IRL social interactions.

<comment><USER21> _Screen addiction and various dopamine hits from social media have produced a catastrophic collapse of various IRL social institutions that traditionally facilitated opportunities to meet new people._

The book "Bowling Alone" documented this collapse and was written between 1995-2000, well before the advent of smartphones and social media.

While I'm not convinced a technology solution is necessarily the right approach, what you're suggesting is straight up waldenponding.

<comment><USER10> > The book "Bowling Alone" documented this collapse and was written between > 1995-2000, well before the advent of smartphones and social media.

Smartphones and social media may just be the latest and most extreme manifestation of technological changes that were already underway then. Before you had smartphone screens, you had television screens, etc.

</comment></comment></comment><comment><USER22> A favorite book on this is _Our Internal Conflicts_ by psychoanalyst Karen Horney.

Carl Rogers referred to congruence of the self, as we navigate to actualize ourselves against external introjections from parental / authority figures and society.

Both Rogers and Horney had concepts of an ideal self and the anxiety when we're strained by social pressures. The emotions are hard to articulate, and why bother, what's to gain in vulnerability? If we dare to say our feelings, we fear others will not regard us in a positive light. Our feelings will be hurt deeply. So, we shape ourselves based on the impressions we want the audience to see, which feels safe, but leaves us inner unease. We're not doing what we really want, we're pleasing others.

Another area to dig into is True self and false self: [https://en.wikipedia.org/wiki/True_self_and_false_self](https://en.wikipedia.org/wiki/True_self_and_false_self)

In Social Psychology, related terms and concepts include self-monitoring, impression management ([https://faculty.washington.edu/jdb/452/452_chapter_07.pdf](https://faculty.washington.edu/jdb/452/452_chapter_07.pdf))

> And they have good reason to: In a game theoretic way, unless they're > already inundated with social bids

Social Exchange Theory and CL-Alt covers this in greater detail: [https://smashtyn.wordpress.com/2011/04/24/social-exchange- th...](https://smashtyn.wordpress.com/2011/04/24/social-exchange-theory/)

</comment><comment><USER23> What he mentions about people being superficially nice to allow for more selectiveness is very interesting. I think it's hard to say that being direct from the get go about interest is ideal beyond that reason alone because friendship with people is something you build, not something you immediately just know you'll have when you meet someone. If you don't feign interest in the beginning you'll miss out on all the people who you could have become good friends with only after a certain level of closeness.

While feigning interest causes people to second guess themselves, I think being direct could also do the same. If I know someone I've just met will tell me they don't like me if I don't give them a good impression I'll be constantly trying to please them. Though I guess if you're also trying to be highly direct things become even more complicated.

It seems like there are far more social dimensions to this than I'd first thought.

</comment><comment><USER24> I've always thought that my chosen superpower, if I could have one, would be as to tell by looking at someone what they honestly think about me.

Do they think I'm cool, weird, ugly, creepy, friendly etc.

I would never hsve to ask if someone is only pretending to like me or put up withe because they want something out of it.

Life would be so much easier, meeting people would be so much easier.

<comment><USER25> I think you would be shocked by how little this power would be used.

Most of us drastically over-estimate how much other people are thinking about us.

I think 99% of the time you used this power you would find that people, know who you are, think of you as generally ok, with a slight positive association just for remembering your name, but no other significant opinions about you one way or the other.

By the time people actually develop strong opinions about you as a person, your superpower would no longer be necessary to learn what those opinions are.

Maybe a few times a year you would catch a hardcore "faker" though. So that is kind of cool.

<comment><USER26> Perhaps this person wants to use this superpower to gain a deeper understanding of their closest relationships?

</comment></comment></comment><comment><USER27> This is why I love dog tails. They can't help but show their authentic intentions

</comment><comment><USER28> There is a budding sector of the economy now selling 'authentic' relating. Recycled cult indoctrination methods are easily repackaged as the solution to loneliness and lack of community.

</comment><comment><USER29> Can we talk about why there are so many scrollbars on this page?

<comment><USER30> The css has "div{overflow:scroll}".

</comment></comment><comment><USER31> Isn't the web a connection without presentation ? it works to an extent, I also think people have a need for deeper, thus presented connection.

<comment><USER32> No. It's a low bandwidth communication medium which, because it is asynchronous, allows for more calculated choice of presentation (eg, Instagram).

<comment><USER31> I had irc and reddit in mind, not social networks with images though

<comment><USER33> It's still the same, and also much harder to tell when people leave the conversation if they do so without interaction clues.</comment></comment></comment></comment>


Show HN: How LinkedIn detects browser extensions - <AUTHOR> https://github.com/prophittcorey/nefarious-linkedin <comment><USER2> How is this information useful for LinkedIn?

Every user fingerprint is worth something I guess, but up the point of trying to detect extensions? Not sure what kind of value could that give them.

Anyone has any idea? perhaps try to determine if users with similar extensions are correlated by similar jobs as well?

<comment><AUTHOR> They are known to ban users that are using extensions they deem "violate" their terms of service.

I imagine they primarily use this information to ban accounts and/or fingerprint devices.</comment></comment>


Ask HN: Hackers/Founders in Munich/Germany - <AUTHOR>

I wonder if other people from Munich hanging around on HN, too.<p>Interested in a user meeting and some beer? <comment><USER2> Here is one Hacker from Munich interested in having some beer :)

</comment><comment><AUTHOR> only 2? :(

<comment><USER2> at least better than being alone :)

i guess, germany as a whole (maybe berlin being the exception) is not very much into y combinator like founding and munich might be especially adverse to this kind of company seeding.</comment></comment>


Pocket-Sized Lab's Killer App: Analyzing Illegal and Semi-Legal Drugs - <AUTHOR> http://spectrum.ieee.org/the-human-os/biomedical/diagnostics/pocket-sized-labs-killer-app-analyzing-illegal-and-semilegal-drugs <comment><USER2> It is, in my opinion, almost impossible to overstate the significance of this. This is a huge deal. Being able to analyze the surrounding environment at a molecular level, in a relatively cheap (it's still kind of expensive, but i'm sure it'll get cheaper) way will enable an enormous new fleet of apps.

Being able to quickly ascertain which pesticide residue is on the fruit you're buying _at the point of sale_ without relying on an agency or intermediary. That's huge. Worried about counterfeit prescription drugs ordered online? Not anymore.

There are so many interesting, valuable applications of this kind of technology. This is really exciting.

</comment><comment><USER3> Having something like this accessible to harm reduction groups could save a lot of lives lost due to fentanyl overdose, which is currently epidemic in North America.

On the other hand, groups switching to this method from traditional chemical reagent tests would basically be building evidence for the police to use against them by creating digital records of exactly what chemicals they had in their possession (even briefly) and when.

Legally, posession is posession, even if you're at a festival trying to save some kid from OD.</comment>


Dear Twitter. I Want To Share My Revenue With You. - <AUTHOR> http://tweetminer.net/blog/?p=30

<comment><USER2> That makes good sense. It also helps cement a business relationship that would be much more solid than the loose structure in place right now.

After all, who will you complain to if one day twitter decides that tweetminer has to die. Better if you have a win/win and it costs them too if they shut you down.

These 'third party products' on top of other peoples infrastructure are a recent thing, and I have to admit I'm still getting used to it and not really comfortable with it.

A project like that should be called a 'feature', it's not an independent business by any definition, even if it does make money.

<comment><USER3> The twitter app I built <http://tweetarium.com> would benefit from something like this. With regards to twitter pulling the plug on third parities, while it is a worry this could happen, it's risk you factor when building on any platform.

<comment><USER2> If at all possible try to differentiate and make your application work with other ways of exchanging messages (such as IM).

That way you're not completely dependent on just the one platform. Ebuddy is a nice sample of a company that did that right, they started out as single platform and now support a whole bunch of them.

</comment></comment></comment><comment><USER4> Don't worry, you'll be able to. I imagine what's going to happen with Twitter will be the same thing that will happen with Facebook, just faster. They might even beat Facebook across the finish line. It's a pretty simple plan really:

1\. Build a product that gets lots of users. (check) 2\. Build a platform on it that is easy and compelling to develop for so third parties can build apps. (check) 3\. Let developers figure out how to make money off of those apps. (currently in progress) 4\. Create a payment system to make accepting payments from Twitter customers as easy as tweeting, take a cut of the revenue from that.

<comment><USER5> I think the iPhone and iTMS is the best example of this. If I'm not wrong (and I could be), I thought Zynga was processing payment information on their own servers.

<comment><USER6> Zynga has used several partners for payment processing, but yes, they're not relying on Facebook for this service. Actually, Facebook is making a pile of money off of the Mafia/Farm advertising Zynga does.

</comment></comment></comment><comment><USER7> Considering the value of Twitter was really created by all the third-party apps that use it, it is very possible that a model where third-party developers bring in the revenue isn't so far off from what may happen.

</comment><comment><USER8> Perhaps building a micropayment service would get Twitter the much talked about revenue??? An option to pay anybody on Twitter by mobile would be great. Kind of like the App Store, you pay by Twitter and the sum + service charges get added to your monthly phone bill.

</comment><comment><USER9> How much of a business do you believe can be built around Twitter?

This is not to sound sarcastic or not. I made use of the Twitter API back in 2007 to deliver mobile content and RSS to SMS, but those were just features of an application and not a business that relies on Twitter.

Do you really believe the Twitter ecosystem is viable for business in the long term?

<comment><USER10> Millions of dollars are built on the Facebook platform, I fail to see how this is all that different.

<comment><USER9> I would like to know what percentage of Facebook apps can be considered a business?

<comment><USER11> Considering thousands and thousands are made per day and most are not necessarily, probably a very low percentage.

A more interesting question, IMO, is the "market size" of Facebook apps, irrespective of your chance of success. I've built a few apps that generate $800k-$1MM in revenue per year.

It's just much easier to get massive scale on Facebook than outside on the web, and the monetization methods are constantly improving.

Of course, it's hard to say if you can just build a viable ten year business out of it, or if the Platform will be dead in two years. But you take what you can get now, factor in the risk of long-term failure, and branch out it ways that protect you against that.

There's certainly enough money to sustain a decent business in a short-to- medium-term.

<comment><USER2> Ok, I believe that without a seconds hesitation. But here is my problem with this: A _REAL_ business, such as twitter or facebook creates an ecosystem around it. You are just part of their ecosystem, conclusion, you are not a business.

A business stands on its own strengths, and minimizes its dependence on outside factors that threaten its existence.

If your business is solely dependent on Twitter or Facebook you should be trying to diversify like mad.

<comment><USER12> _A REAL business, such as twitter or facebook creates an ecosystem around it_

:s/REAL/big

It's called an ecosystem because of the web of interdependencies. If it makes money, it's a business.

Biologists define an organism as a "thing that eats, poops and reproduces." Let's just define a business as "a thing that eats resources and poops profits".

In which case, businesses that are "just features" certainly count as businesses. <http://en.wikipedia.org/wiki/Gut_flora>

<comment><USER2> > a thing that eats resources and poops profits

By that definition large numbers of web 'businesses' are not businesses (yet) because they do not make profits. Their owners might disagree though.

And there are plenty of 'real' businesses out there that make a loss.

It's really not that simple to put out a definition of what really is a business, but I think that something that lives by the grace of an API as a total dependent on some other company does not count as a business in its own right.

Every now and then you come across a rant somewhere from someone that got 'cut off by google' because they depend for 100% of their sales on search engine traffic, and google happened to provide the bigger portion of that.

Suddenly they find out that even though they were profitable last month they did not have an actual business, they forgot to realize they were actually a small extension of the google ecosystem and were only able to make a profit because of that. Anybody that has been in business for a while would realize that is an accident waiting to happen.

Making your company 100% dependent on FB or Twitter is no different.

It's easy money if and when it works, but easy come, easy go.

<comment><USER13> Following your logic, if you're in the business of selling pencil sharpeners, relying on the existence of one or more third parties selling pencils, who in turn rely on a market of people who want to use pencils, is also not a 'real' business, because who knows, the third parties may decide to start selling a self-sharpening pencil and stop offering the regular ones, effectively cutting you off.

Now, the above mentions _one or more_ third parties. Having redundant providers significantly reduces the risk of being cut off like that, but while having a known single point of failure may seem stupid, it's not as if only businesses that don't have any are real.

Whether or not something constitutes a 'real' business does not hinge on that business' dependencies or any other risk factors. Whether you'd want to be a stakeholder in it is an entirely different matter.

How many of us in the software world would actually have _a real business_ within this definition of dependencies if you consider how quickly we'd all go in the red if google somehow ends up blacklisting us? With a somewhat grown-up business, you don't need 100% of your sales to evaporate to be in serious trouble..

<comment><USER2> > Now, the above mentions one or more third parties.

Exactly.

> Whether or not something constitutes a 'real' business does not hinge on > that business' dependencies or any other risk factors.

If a business is created with the explicit goal of being in the position of building right on top of another business for which there is no alternative, then I doubt the right of that business to call itself an independent business.

Sure, no business is without risk, there are always factors that increase or decrease the risk. You should always be trying to minimize those risks, and if there is one thing that is a huge red flag for investors or buyers then it would be a dependency like that.

The 'What if you get cut off' question is absolutely unanswerable. If you manage to get it to the point of a contract with termination clauses and such then that's a different story, but until then, to just build your enterprise on top of an API and hope for the best is not a good long term strategy.

Your point about google is well taken, I'm happy to report that my business depends for less than 2% of it's traffic and income on google, I wouldn't have it any other way.

Of course there are numerous examples of companies that did great building for instance software on top of the microsoft platform, but worst case there would have been other operating systems that they could have ported their software to in case microsoft would go under.

If a company like twitter or facebook would go under or decide they no longer want you or that you become too much of a threat you're done.

Instantly.

And you don't even have any recourse, simply because you never had a contractual right to be there in the first place, after all you use an API at the providers discretion, and nowhere in their terms of service does it say that you have a right to access, no matter how popular or profitable you are.

That's not the same as being in a business relationship, even about something as mundane as buying and selling pencils.

The self sharpening pencil, by the way, has been done:

<http://en.wikipedia.org/wiki/Mechanical_pencil>

And, more in jest:

[http://www.pencilthings.com/product.php?productid=100664?utm...](http://www.pencilthings.com/product.php?productid=100664?utm_source=googlebase&utm_medium=ppc)

But they didn't put any pencil sharpener producers out of business, though I suspect the typewriter and the word processor may have caused a few of them to find different sources of income.</comment></comment></comment></comment></comment></comment></comment></comment></comment>