WebGL Fluid Experiment (2014) - <AUTHOR> http://haxiomic.github.io/GPU-Fluid-Experiments/html5/?q=Medium <comment><USER2> Hey, I feel bad for not updating this demo in 6 years! Back then it wouldn't run on iOS, today it could run with no trouble

For people on iOS, here's another version with rainbow colors and multi-touch [https://haxiomic.github.io/demos/rainbow- fluid/index.html](https://haxiomic.github.io/demos/rainbow-fluid/index.html)

If you like this sort of thing and want to learn more about it I recommend checking out [https://www.shadertoy.com/](https://www.shadertoy.com/) for more demos and [https://thebookofshaders.com/](https://thebookofshaders.com/) for tutorials

And if GPU simulations is your thing then I think you'll enjoy what these two amazing guys are doing with shaders:

\- [https://www.shadertoy.com/user/michael0884](https://www.shadertoy.com/user/michael0884)

\- [https://www.shadertoy.com/user/wyatt](https://www.shadertoy.com/user/wyatt)

<comment><USER3> FWIW the rainbow link gives this console error in Firefox on a Surface Book with Intel graphics:

        Uncaught TypeError: rgHalfFloatLinear is null

I assume that means it doesn't support 16-bit float pixel formats; maybe this is something that could be detected and shown as an error message in the page?

The original HN link works great, though, very cool!

<comment><USER2> Ahh that's a shame, yeah looks like 16-bit float textures aren't supported but 32 bit are. Thanks for the heads up – I should really be checking if either are supported here!

</comment></comment></comment><comment><USER4> At first I expected this to be some new version, but nope, it's the original. I love that this repo[0] hasn't been touched significantly in 6 years and it's still going strong.

[0] [https://github.com/haxiomic/GPU-Fluid- Experiments](https://github.com/haxiomic/GPU-Fluid-Experiments)

<comment><USER5> Given that the original commit is clearly a giant copy&pasta from somewhere else, not surprised there is little development or changes as time goes on

<comment><USER5> Oh, my bad, this the copy&pasta one [https://paveldogreat.github.io/WebGL- Fluid-Simulation/](https://paveldogreat.github.io/WebGL-Fluid-Simulation/)

<comment><USER6> Trying to figure out what you are suggesting with the copy/paste stuff. I looked at the first few commits in both the PavelDoGreat repo and the haxiomic repo and see no obvious signs of copypaste. PavelDoGreat's initial commits start with initializing WebGL, seems reasonable. haxiomic's starts with a README and then a code drop, again, doesn't seem too unexpected. I also doubt one took from the other since one is Haxe and the other is JS.

</comment></comment></comment></comment><comment><USER7> This is fantastic. Runs really smooth, the color and design looks wonderful. I could lose few afternoons playing with this thing.

Looking forward to the app. Would be fun to manipulate the sim by moving my iPad around.

Potentially fun ideas...

Allow me to place shapes/blocks down and lock them in place to see how the fluid moves around them.

Let me put a small 'pump' in the liquid to keep constant or pulsed movement. add a couple dials for pump speed, etc. I want to put two pumps facing one another and watch the interaction where they meet.

Different pool shapes - round, star, sphere?

Allow for particles to reach the edge of the pool to fall off and then let me drop new ones into flowing water.

Loads of fun. Thank you!

</comment><comment><USER6> There is also this one, and the corresponding iOS app (which I have.) It seems to run a bit faster on my phone.

[https://paveldogreat.github.io/WebGL-Fluid- Simulation/](https://paveldogreat.github.io/WebGL-Fluid-Simulation/)

<comment><USER8> The README links to the original as a reference!

</comment></comment><comment><USER9> Nice, the effect reminds me of Powder Game ([https://dan- ball.jp/en/javagame/dust/](https://dan-ball.jp/en/javagame/dust/))

<comment><USER10> At least give me some warning before you link to it; I'm gonna be playing it all day today :)

<comment><USER11> Man there was some game similar to this called Sand Sand Sand, that I was totally addicted to. I showed my kid recently and he loved it too, timeless fun!

<comment><USER12> There's also the stand alone Powder Toy which has more powders and saves and such

[https://powdertoy.co.uk/](https://powdertoy.co.uk/)

<comment><USER13> And the modern web-based incarnation Sandspiel, which was extremely popular on HN a while ago: [https://news.ycombinator.com/item?id=18696291](https://news.ycombinator.com/item?id=18696291)

</comment></comment></comment></comment></comment><comment><USER14> Tangentially related: For a long time I've always been looking for some software for particle simulations that is free or even open source, easy to get started, and at least somewhat visual. I'm not doing anything like that professionally, just want to play around with a virtual wind tunnel for the fun of it. I'm thinking of something like Blender where I would click together a 3d mesh, "turn on" wind and see what happens.

Does anyone have tips or hints? Are my expectations perhaps unrealistic? I looked into OpenFOAM before but always eventually gave up, as it seems quite heavy on headless, scripted simulation, and would need some significant run-up time.

<comment><USER15> Specifically for fluid (and similar) you could have a play with mantaflow [http://mantaflow.com/](http://mantaflow.com/) it's relatively easy to build (you will need Qt and Python). Houdini (free apprentice version will work for fun) is great for particle effects and this sort of stuff as well [https://www.sidefx.com/](https://www.sidefx.com/)

</comment></comment><comment><USER16> Damn, the performance on that is really impressive.

</comment><comment><USER17> It reminds me of [http://minimal.be/lab/fluGL/index80000.html](http://minimal.be/lab/fluGL/index80000.html)

</comment><comment><USER18> Would be even more fun if such things (including the Powder Game) were also affected by device orientation/gyroscope/accelerometers.

</comment><comment><USER19> all these simulators out there and still not one remake of plasma pong

<comment><USER20> [http://anirudhjoshi.github.io/fluid_table_tennis/](http://anirudhjoshi.github.io/fluid_table_tennis/)

No good for mobile, but perhaps someone could fix that.

<comment><USER21> There's a paid Android app linked from that page. You are technically correct that the [free] webpage indeed not work on mobile.

<comment><USER19> I'm fine with non free thanks both for the links and the tips!

</comment></comment></comment></comment><comment><USER22> Discussed at the time: [https://news.ycombinator.com/item?id=8502477](https://news.ycombinator.com/item?id=8502477)

also [https://news.ycombinator.com/item?id=8325700](https://news.ycombinator.com/item?id=8325700)

</comment><comment><USER23> just out of curiousity, but how does the algorithm roughly works. does every pixel/particle position gets calculated? or is it optimized by smart grouping? is the GPU used for paralell computing? very interesting stuff to heavily optimize I guess.

</comment><comment><USER24> The title seems to imply that it needs a touch screen device. It seems to work just fine on my desktop with a mouse.

</comment><comment><USER25> i'm constantly amazed at what can be done with webgl these day (shame about the iOS support). surprised we don't see more immersive games with this tech!

</comment><comment><USER26> Doesn't support iOS

<comment><USER27> Here's one that works on iOS. It also has an app. [https://paveldogreat.github.io/WebGL-Fluid- Simulation/](https://paveldogreat.github.io/WebGL-Fluid-Simulation/)

</comment></comment><comment><USER28> ha ha ha, outer space is a simulated fluid.

<comment><USER28> with that assumption, it gets easier to build an eye observing an eye....observing an eye observing a thing.

<comment><USER28> Neural network learning models are good, but it scales well only when NN watches a NN watching an NN being trained with a data.

<comment><USER29> To be sure that you're not a NN yourself, I should require you to draw a triangle.

<comment><USER21> _[Triangle is distorted by unseen fluid]_

<comment><USER28> Triangle connected by three eyes.

<comment><USER21> With 60° fields of view :D

</comment></comment></comment></comment></comment></comment></comment><comment><USER30> That's very fun and relaxing!

</comment><comment><USER31> Therapeutic... I mean really.

</comment><comment><USER32> iOS not supported. Ridiculous that iOS doesn't support WebGL 2.0

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

</comment></comment><comment><USER34> Very satisfying effect.

</comment><comment><USER35> beautifully made!</comment>


Ask HN: Dev Environments and Workflows - <AUTHOR>

I am working on a project, where my code/db reside on a local VM (Ubuntu server) sitting on my windows machine.
My workflow is the currently: 1. Write code on desktop 2. Push changes to GIT 3. Go to VM and pull git changes 4. Test code on VM<p>I understand there are tools to improve this workflow (Vagrant+Puppet), but I am curious to hear what other dev environments/workflows look like or work for others. <comment><USER2> Try _rsync_ you could bypass 2 and 3. Basically, every change you made on your desktop can be automatically synced with the VM.

Alternatively, you can code directly on the VM and use an editor that lets you do remote editing (vim, emacs, sublime text ...).

<comment><AUTHOR> So when would be a good time to start using git - perhaps when the project is deployed into beta?

<comment><USER3> You could use Git right now, but not to transfer code to the VM and compile. Its a system to version [1] your code.

(Although I mostly skip using Git in toy projects, and just backup to Dropbox).

[1] If you push your changes to some offsite remote like Github, you are also backing up your code.

</comment></comment></comment><comment><USER3> Expandrive also works ok and its easy to setup, but IIRC what worked better for me in the same setup (Windows host + Ubuntu VM) was the old solution that I was avoiding all the time: Samba.</comment>


Ask HN: Tags at Hacker News - <AUTHOR>

One of the few things I'm missing at Hacker News is tags. I mentioned this to a friend yesterday and his first response was "No, it would introduce unneeded complexity and be subject to useless discussions", and I think he was right.
Obviously this doesn't solve my problem, which I believe is boils down to "the ability to see at glance what a link is about", as the titles aren't always as descriptive as they could be. I think the original submitter is most suited to tag the submit and would like to propose it to be done in the following manner: by optionally prepending a single tag in square brackets to the title, quite similar to what's done on mailinglists. Thus "[C++] To auto or not to auto?" for example.
Yes, this optionally introduces an extra bit of complexity for the submitter, but the first word that comes to his or her mind is probably most suited as a tag. By limiting who can edit and add to this I hope to keep the discussions down, the submitter adding a tag is something that should be considered a service to the other readers.
What do you think, is it a viable solution? <comment><USER2> (Disclaimer: I'm that friend)

I'm pretty conservative about this, since it's hard to completely oversee the influence it has on a community (Slashdot's tag system comes to mind). While the need of categories/tags is already illustrated with the "Ask HN:" in this title, it does raise a few concerns:

\- it puts an extra burden on the submitter, do we really want that ?

\- is there enough content on HN to justify a category system at all ?

\- what if someone submits content in the wrong category, how should we deal with that? should the mods deal with this, thus adding an extra burden on the mods too?

\- what if an article belongs to multiple categories?

All in all, doesn't it create more problems than it actually solves?

</comment><comment><USER3> As the problem is that original submitters can't always be bothered providing a descriptive title, why would they be any more likely to bother providing a suitable tag?

</comment><comment><USER4> There is an external implementation of tags, although most likely it hasn't taken off because no one uses it, and no one uses it because it hasn't taken off.

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

PG is talking about having multiple flags for items, but that's about appropriateness, not about the semantics of the content:

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

The problem is always getting the elvel of complexity right. Allowing free- form tags makes it impossible to search for what you want, and makes it hard to decide what tags to make up and apply. Having a limited collection makes it impossible for some submissions to decide what tags to apply.

It's hard, but not impossible. It would also prevent me from seeing some of the things I've really appreciated. I would tend to skim over things that don't appear relevant, and sometimes those are the very things that have engaged my interest and expanded my horizons.

It's like with these dating agencies, or friend suggesting algorithms. I don't want to meet people with whom I share an interset - I want to meet people who are interesting.

Solve that, execute well, and you'll make a fortune.

<comment><USER5> Conceptually, what should tags denote? At some level, I'd argue that tags are solely to give the reader a better idea of subject category. Do others agree?

I ask because (and especially on a discussion site like HN), usage of (free- form) tags to editorialize is inevitable without heavy moderator monitoring. Would the tags 'yes' 'godyes' and 'hellyes' on a link titled "Is Apple Evil?" add anything other than gasoline to a flame full discussion? (Not that flamebait tends to last long on the frontpage.)

Are tags really just for the disillusioned to block all stories tagged with 'ipad'?

<comment><USER6> > At some level, I'd argue that tags are solely to give the reader a better > idea of subject category. Do others agree?

I want something to help me find "interesting to me". If tags are "solely ... subject category", they can't be very useful because subject is neither necessary nor sufficient when it comes to interesting.

Here's a test - are you actually interested in everything in any subject? Are you ever interested in something in a new subject or a subject that you typically don't care about? If your answers are "no, yes", subject category information isn't enough for you.

</comment></comment></comment><comment><USER7> I don't really care so much about the category of the post, as in programming/startups/CSS/Apple. I'm more interested in knowing what kind of post it is, as in pdf/magazine article/blog article/video etc.

</comment><comment><USER8> One possible way "to see at glance what a link is about" is to make an automatic term extraction of the link. A small box could be included (I know this could overload a bit the current nice and minimalistic interface) showing the inverse frequency of the most popular terms in the retrieved link using a kind of TF-IDF weight algorithm.

I suppose a "stop words" list would be required along with a stemming algorithm to limit the tokens/"words" with less semantic meaning. In this case, the work can be done while the submitter is adding the link and the software proposes the extracted list automatically. The submitter can alter the list proposed to improve the meaning of terms extracted.

</comment><comment><USER9> It may well be a viable solution, but I am not convinced that the problem of "the ability to see at glance what a link is about" exists for everyone. Not for me, anyway.

In terms of "anything that gratifies one's intellectual curiosity", the variety that I find by clicking through a high-rated item with an obscure or mystifying headline is welcome.

A tagging system may help me to pre-filter, but by applying my own filters instead of trusting the HN community filter, I would no doubt lose the surprises and intellectual gratification. Some of my favourite items have come through not knowing what the link is about, but clicking anyway.

<comment><USER10> I agree with each paragraph above. Generally, I consider the quality of most headlines to be sufficient, and in cases where it is not, I still have a second option - click on the comments first, which will give me enough suggestions whether it is worth to visit the site.

Moreover, I surely wouldn't want to pre-filter according to the tags, because one of the main reasons I like HN is that I am confronted with topics, which are not my primary interest, but allows me to expand my thinking to new areas.

</comment></comment><comment><USER11> To me the viable solution is to sometimes look at the comments to establish whether I should read it.

Sometimes I know it's of interest so I go to where the link takes me, but I just found that often I get a much better summary by someone here at HN than from the url in question.

<comment><USER12> I always scan the comments first. I'm usually much more interested in the discussion than the original post.

</comment></comment><comment><USER13> It would be possible to get a classification of the link through opencalais pretty easily (don't know about the legalities about how that service can be used though). I suppose it's mostly useful to be able to browse hacker news by category.

Example: the post "'Chang' from Google accidentally publishes TechCrunch post on Blogger Buzz"

Topic:

"Technology Internet"

Social Tags:

Technology Internet, Yahoo!, Computing, World Wide Web, Yahoo! Mail, LinkedIn Open Networker, AOL, Facebook, Carol Bartz, Communication

Entities: Company Facebook Inc [36%] Time Warner Inc. [30%] Twitter Inc [10%] Yahoo! Inc. [79%] Country United States [26%] Industry Term advertising industry conference [32%] analytics tools [19%] display advertising tools [31%] finance chat rooms [12%] online marketing [6%] Person Carol Bartz [80%] Comscore [26%] Position CEO [32%] Published Medium Advertising Age [29%]

</comment><comment><USER14> Most of the comments so far have focused on the fact that tagging may benefit readers before clicking through on a post.

I actually think the benefits of tagging would biggest _after_ submission. Namely:

\- If you could view articles by tag it would help new users coming to HN view what might have been said before about a given topic

\- It would make mashups like this a heck of a lot easier: <http://www.gabrielweinberg.com/startupswiki/Ask_YC_Archive>

\- It would make searching for relevant historical discussions easier. There is so much good content on HN that is effectively lost

Some suggestions for an implementation:

\- Make the tags freeform, ala Delicious, so as not to box things in to strict categories

\- Bake it into the main site itself - <http://hntags.com> doesn't work because that's not where we hang out.

\- Have the ability to view all articles with a given tag

\- To relieve the burden on the official mods give users above a certain karma level the ability to apply or alter tags on submissions</comment>


The Swiss Are About to Vote 'No' on Basic Income - <AUTHOR> http://fivethirtyeight.com/features/the-swiss-are-about-to-vote-no-on-basic-income/ <comment><USER2> Despite the likely "no", the very fact that it has gone this far is a very positive step. I'm personally coming to the conclusion that Basic Income will be the key economic model of the 21st century, and will be adopted by every major nation in the world.</comment>


Pick for CIA chief linked to torture site - shaki-dora https://www.theguardian.com/us-news/2018/mar/13/who-is-gina-haspel-trump-cia-director-torture-site-link <comment><AUTHOR> More discussion on this subject on these previously-flagged threads:

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

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

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

</comment><comment><USER2> To the submitter: You've posted this story three times in an hour. Maybe it's time to give it a rest?

<comment><USER3> Maybe it's time one of these threads wasn't flagged/shadow-flagged.

<comment><USER2> If HN's readership decides something is flag-worthy, then they've decided it. That's really all there is to it.

<comment> shaki-dora It's not. Flaggings are routinely overridden by mods, in both directions.

<comment><USER4> Not routinely; occasionally, when an article clearly fits the site guidelines and the site mandate as described at [https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html). That's not clear with this story. Indeed one can make a somewhat stronger argument that it doesn't: would they cover it on TV news? (yes) — is it evidence of a new phenomenon? (no, unfortunately) — is it likely to turn into a flamewar? (highly). We'd need stronger answers to those questions in order to turn off the flags.

What does seem clear is that most of the community doesn't consider this a good story for HN. If they did, the upvotes would have outweighed the flags, and the opposite was the case. I know a smaller set of users feels passionately the other way, but that's not enough for us to override community opinion. In fact, that would be a strategy for turning HN into a mostly- political site.

</comment></comment></comment></comment></comment><comment><USER5> To try to walk very lightly and not be political, I'll put it this way.

A nomination sometimes (usually?) reflects an administrations views and policy.

</comment><comment><USER6> Good luck finding anyone who is a CIA lifer who isn't linked to anything morally dubious somewhere along the line. It's kind of their job to fight dirty in the shadows.

</comment><comment><USER7> This article covers considerably less of the torture Ms. Haskel is responsible for than the other two threads on this, which were both flagged in under an hour.

Maybe since this one sanitises the gory details it'll be allowed live past the hour mark - but I doubt it.

<comment><USER7> ... And it's flagged.

Fuuuuuuuck.

<comment><AUTHOR> Looks like this one was unflagged. There seems to have been some funny business on these threads. Three others previously reached the front page and then were flagged.

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

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

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

<comment><USER3> Try to find this thread on the front pages of HN...

It's not there, at least in the first 150 results.

It seems to have been unflagged, then "shadow flagged". Which is even more fucked up.

Your first two links are the same btw, did you mean to link to this one, [https://news.ycombinator.com/item?id=16577485](https://news.ycombinator.com/item?id=16577485) , where I asked for a discussion on removal of such an important story? According to moderator 'dang', I was just "creating drama".

<comment><AUTHOR> Thanks, I meant to link this one, but upon looking again it appears it likely never got enough votes to hit the front page before being flagged/shadowflagged

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


Google Android personal thoughts - <AUTHOR> http://www.boygeniusreport.com/2010/01/09/google-android-personal-thoughts/

<comment><USER2> _People would die for their iPhones, people would die for their BlackBerrys – and they feel like their lives are in there. People feel connected to their BlackBerrys. Some sleep with them next to their pillow. No one gives a crap about their Android phone, there's zero emotional attachment._

This contrasts sharply with the response Pogue had on his review ([http://pogue.blogs.nytimes.com/2010/01/07/reader- responses-t...](http://pogue.blogs.nytimes.com/2010/01/07/reader-responses-to- review-of-googles-nexus-one/)):

 _Reader feedback about my review of Google's new cellphone yesterday was unusually voluminous and, in some sectors, vitriolic. Where I had written, "The Nexus One is an excellent app phone, fast and powerful but marred by some glitches," some readers seemed to read, "You are a pathetic loser, your religion is bogus and your mother wears Army boots."_ _here is this new army of Google defenders, raising their spears and chanting as though you've insulted….Apple._</comment>


Ask HN: Is mobile a good career path? - <AUTHOR>

I am currently working as a web developer and have been for the past few years.  I'm fairly happy at my current company, but I was recently approached by a consulting firm about becoming a mobile developer (iPhone, Android, perhaps some HTML5 apps).  It seems like a good situation and I think it would be fun.  My biggest question is, is mobile development a good field to get into, or would I be better suited in the long term to stay in web development?
My fear is that mobile may begin dying out over the next few years and leave me with a lot of unusable experience.  On the other hand, mobile is a market currently experiencing a lot of growth, so it could be even bigger in the future.
All that to say, what direction do you see the mobile market going in the near-to-mid future? <comment><USER2> Hey - ex-mobile guy here.

I used to work at Blyk, ad funded mobile network that started in the UK and has grown out into some other territories.

I guess the short answer is: you can make a ton of money in mobile.

Anyway, I've got friends now who are on the visual side of things (ranging from all levels of experience) and they charge anywhere from £200-£500 a day.

You have to get into the right circles, i.e. with the ad agencies (not mobile agencies) - then you can make an absolute fortune. For these guys mobile is a dark art, they don't get native apps (still) and HTML 5 is still a long way away for them.

If your going to go down this route, don't package yourself up as a developer or designer - if you are able to plan a campaign for someone like Mastercard, with a gimmicky app or similar (and make the prototype) then your absolute gold dust.

Anyway, long story short - lots of money in mobile, knowledge is sparse, work with ad agencies and definitely (if you can) freelance.

<comment><USER3> This comment piques my interest. I am a developer and my girlfriend is a digital media planner. We want to maybe start a business together that merges both our skills, but we're not sure how to implement anything you mention. I'd love to chat, but I don't see any contact info in your profile. My email is in my profile.

</comment></comment><comment><USER4> _All that to say, what direction do you see the mobile market going in the near-to-mid future?_

I think we'll see a convergence of the web, mobile, and tablet spaces. Mobile is largely OS-specific at this point, but we are seeing a trend toward HTML5 apps. Same with tablets, where HTML5 was already popular, given the large screens and the fact that there were fewer OS-specific apps than with mobile. And with the web, the newest generation of HTML5-compatible browsers just launched, with FireFox 4 and IE9 joining WebKit. To design a new app today, particularly with audio and video, your best bet would be to go with HTML5 so you could kill 3 birds with one stone...you can reach the web, mobile, and tablets, without having to reinvent the wheel on both iOS and Android.

</comment><comment><USER5> First things first, mobile is not dying out. It will be an increasingly large portion of application development for a long time, all of the major players are deeply committed to mobile.

I would not worry about gaining 'unusable' experience. Working in IT/Development means you need to be constantly learning. Gaining experience with the hot platforms (iOS/Android) now will only make it easier to adapt to future mobile advances.

Like I said, the mobile market will only increase in the near to mid future. Anyone entering the mobile space will need to be aware of how to more effectively server their users/customers in a cross-channel and cross-platform way. I believe you can't go wrong with focusing on becoming a mobile expert, if you are passionate about what it offers.

</comment><comment><USER6> I'm not sure how mobile could "die out," unless you mean web apps will replace native apps. That hasn't happened on the desktop and it won't happen in mobile; they'll continue to live side by side into the far future.

I work in mobile games and we're desperate for good devs.

</comment><comment><USER7> I doubt that mobile platforms/languages change as fast as the flavor-of-the- month in the web space..

Looking ahead several years, you're likely to be using a new language/tools regardless.</comment>


A fish that can steer its tank around the room - <AUTHOR> http://www.youtube.com/watch?v=YbNmL6hSNKw nice expression of embodiment <comment><USER2> This is undoubtedly some cool technology, but it seems traumatizing for the fish. I have no idea what degree of consciousness a goldfish has, but my guess is a) not enough to be aware it's controlling the movements, yet b) aware enough of the jostling and movement that it's highly panicked. The result is that it's flailing around frantically; its fight-or-flight mode is always engaged.

So I'm a little conflicted here. Love the tech; concerned about the ethics.

<comment><USER3> I think part of the problem is that the steering is not responsive enough, and that might be preventing it from realizing it can control direction.

<comment><USER4> It should also probably move slower to keep it from jostling the fish around.

</comment></comment></comment><comment><USER5> I think the concept is pretty neat, but the implementation leaves a lot to be desired. For one thing the inertial effects on the water should be contained (a lid would help there) and secondly the response time is way too high. But given the mechanism, its possible to do some really interesting fish intelligence studies.

For example. set the cart to move very very slowly, so that basically the fish staying on the edge would move maybe 1 or 2 feet per minute. Second, use roller wheels so that the orientation of the tank stays the same regardless of direction, and only its position changes. Finally put different "scenes" around the room and see if the fish gets the tank to move over to the scene or not.

Then I would be LED lamps at different parts of the room, when one was the target color if the fish moved the tank to it, it would drop food in the water and the light would turn off. Then another of the lamps would turn the target color. Could you train the fish to move the tank to the correct light color?

<comment><USER6> Any idea how well a fish can see (and process/understand) outside its aquarium?

<comment><USER7> The eyes vary with the adaptions of each species, but overall fish have a strong vision sense, similar to us. They can focus, have day and night vision (rods and cones), most see in color and some can see into the UV spectrum. So, in the vision department, fish are capable.

I don't know how much a fish navigates the space based on vision alone (and I don't think it plays a big role, since visibility underwater is limited), but I know some from the Cichlidae family like the Oscar are able to recognize it's owner, which is quite a feat.

</comment></comment></comment><comment><USER8> Is the fish aware that it has control of the movement, or it just swimming in random terror?

<comment><USER7> There's no positive feedback, so I doubt the fish will ever develop control over it.

</comment></comment><comment><USER9> Put some caterpillar treads under that bad-boy and the tank can also be a tank! (Actually, that's where tanks got their name. The British WWI code words referred to them as "water tanks" to keep them out of the attention of spies.)

I read somewhere that Survival Research Labs did something similar with a giant legged robot and a hamster, with the added feature of a flame thrower that went off whenever the hamster would squeak.

<comment><USER10> That's interesting, I didn't know about the "water tanks" code word. A fun bit of related trivia: those early WW1 tanks were piloted by navy sailors and, at least officially, were called "landships".

</comment></comment><comment><USER11> Ok, let's crowdsource one big enough for a dolphin, a couple million should be enough.

</comment><comment><USER12> Shouldn't the headline be: A fish named wander

</comment><comment><USER13> This takes walking into a room and forgetting what you came for to a whole new level.

</comment><comment><USER14> Klaus from American dad needs this so much! Not sure about regular fish though

</comment><comment><USER15> I would like to see how the fish behaves in a bigger tank where there is a larger dead point in the middle where the cart doesn't move at all. If it still likes to explore around maybe it does like the experience.

A few years ago I saw a cockroach on a trackball that controlled a similar vehicle. You could chase around by visual stimuli so in turn you would control the cockroach. It was a bit perverse but very interesting at the same time.

</comment><comment><USER16> More interesting would be a quad copter fish.

<comment><USER17> I tried once with a cockroach: [http://rockolo.com/#aeroflux](http://rockolo.com/#aeroflux)

</comment></comment><comment><USER18> Seems to take some inspiration from a similar device for a parrot: [https://www.youtube.com/watch?v=R5N3-QtMdf8](https://www.youtube.com/watch?v=R5N3-QtMdf8)

</comment><comment><USER19> I can see this kind of technology being developed towards a method for controlling "vehicles" while in a liquid capable of absorbing hits.

Something like the LCL of Evangelion.

</comment><comment><USER20> Attach the fish to a Roomba! There goes the rest of my weekend...

</comment><comment><USER21> Has science gone too far?

</comment><comment><USER22> It's probably not true but it seems like this would be a very happy fish.</comment>


Ask HN: How did people bake before thermometers? - <AUTHOR> I was reading about https://en.wikipedia.org/wiki/Mille-feuille and then googled when the thermometer was invented, https://en.wikipedia.org/wiki/Thermometer , then I googled 'how did people bake before thermometers' among other things and couldn't find a satisfactory historical reason. Anyone have the knowledge? <comment><USER2> By using empirical rules related to the state of the ingredients (look, physical properties, etc). French especially has developed a very rich technical vocabulary for this. For example, the continuum from sugar to caramel has very precise phases (and words to name them) that you can recognize by color, consistence, and so on even if you can't measure the temperature of the sugar.

<comment><AUTHOR> Oh that makes a ton of sense, do you know of any pre thermometer texts about this, thank you for bringing sense to my bar discussion

<comment><USER3> Not a pre-thermomenter text, but a good summary: [https://www.exploratorium.edu/cooking/candy/sugar- stages.htm...](https://www.exploratorium.edu/cooking/candy/sugar-stages.html)

<comment><USER4> To bring this full circle, my wife's sugar thermometer has the stages ("soft ball" etc) marked on it alongside the temperatures.

To insert a side rant on the subject: this is why IoT cooking gizmos like smart pand get a terrible reception. Because there's already a full set of tranditional techniques for cooking, most of which are fairly easy to learn with time.

<comment><USER5> Sous vide is revelation for delicate proteins and transforms low and slow for tough ones.

For everything else there is pressure cooker (which by the virtue of its design is extremely high tech/precise instrument).

</comment></comment></comment></comment></comment><comment><USER4> Strange question for HN .. anyway, plenty of people bake today without a thermometer. It requires "knowing your oven", such as by doing a reference batch of cupcakes to see the heat distribution. There's also various techniques for assesing whether a cake is done (does a wooden skewer inserted come out clean?)

Coal and wood fired ovens usually have a huge thermal mass so once it's up to temperature with a particular size fire it will stay there.

Edit: the gas oven doesn't predate the thermometer, but traditionally is set by "gas mark" rather than a thermostat. Old recipies would say "gas mark 7" etc.

<comment> jon-wood That's far from an old thing - gas ovens are still in wide use, at least in the UK, and recipes will commonly mention both a temperature in degrees and the appropriate gas mark.

Having said that, gas ovens are a pain to use until you've got used to the one you've got. I've never had one where the actual temperature of the oven matched the gas mark it was set to. Typically you'll have to benchmark it with an oven thermometer and then adjust whatever the recipe says to fit.

Gas hobs however, you can take from my cold dead hands. I'd rather use a camp stove than an electric hob. Nothing beats instantaneous heat adjustments.

<comment><USER6> > Nothing beats instantaneous heat adjustments.

You can get that with a good induction stove. I still prefer gas, but induction is pretty good. Other advantages of gas are for example the ability to use non-flat pots (woks or similar). On the other hand it's much harder to clean.

</comment></comment></comment><comment><USER7> Once a year, my friends and I rent a cabin somewhere off the grid. Sometimes, those cabins (or small ex-farms) still have working stone ovens. It's not hard, you make a big fire and when the wood has been reduced to embers and the stone has soaked up the heat, you put your baking goods into it. It works great for pizza, bread, pastries, everything. You have to inspect the state of the process from time to time, but as you get more experience you need to do it less frequently.

Personally, when I bake things in modern ovens, I don't use the thermometer either. Sort of, because they still have a thermostat of course. But in general you really don't need a thermometer for baking.

<comment><AUTHOR> How do you inspect and decide what the oven is right for?

<comment><AUTHOR> Do you put different things in at different periods of the burn cycle, and how do you determine what to put in when

<comment><USER7> I would say by trial and error, although I didn't really experience any bad results yet. When the fire has reached the ember stage, temperature can remain stable for a long time.

In general, you can put in things with a large surface-to-volume ratio at almost any point, like pizza, pretzels, or buns. If you put them in early they just get done faster. With larger things like bulky bread loaves, I would wait a bit until the oven cools down somewhat because they are at risk of heating up slowly on the inside while the outside is already done. Personally, I find the bread variants with larger surfaces more appealing, so I don't have a lot of experience with the bulky ones. With pastries it depends on the temperature tolerances of their components.

Really, I would suggest you try it out yourself. I found that intuition works pretty well, even for me as a city-dweller with a non-agricultural background.

<comment><USER6> There are some kinds of food that evolved out of that question. French tarte flambée (a very thin pizza-like dough with a topping of sour cream, bacon and onions) was used to determine if the oven has the right temperature for bread. If the temperature is right is bakes in a handful of minutes. So you'd heat up the oven and do a couple of test-bakes with a quick tarte. Then you'd bake the bread while not heating the oven. After the bread, the oven has the right temperature for cakes.

</comment></comment></comment></comment></comment><comment><USER8> Baking things often works at a fairly wide range of temperatures. What matters I that the inside of what's being baked gets to a certain temperature and you can achieve that with different oven temperatures. It just takes a different amount of time. Then there are techniques like poking a fork or a toothpick into your cake to see whether the dough sticks to it or not. If not, it's done. And then there's trial and error and experience. Others mentioned a gas oven which a) doesn't have a precise temperature and b) often an uneven heat distribution. Works just as well, though, with a bit of learning.

</comment><comment><USER9> I think your question is a bit more involved than "just cook it". Pastry evolved over many years. Techniques were developed and learned and passed on.

This involves more than just the temperature of the oven. When baking bread you want long gluten chains, so you need the bread. But for most pastries you don't want that so you need to distribute the fat without building up the gluten chains.

[https://vintagecookbooktrials.wordpress.com/2011/02/27/a-sho...](https://vintagecookbooktrials.wordpress.com/2011/02/27/a-short- history-of-pastry/)

> The many different kinds of pastry which are made in Britain today have > evolved over the centuries from a crude flour and water dough mixture > invented by the Romans. The paste was wrapped around meat and game before > roasting and was not intended to be eaten. It served only to retain meat > juices and aroma.

</comment><comment><USER10> Like everyone here has already mentioned: knowledge and practice.

Knowledge of cooking was passed down from generation to generation via schools, guilds and families. We stand on the shoulders of giants. Thousands of years of trial and error passed down. People measure by sight, sound, touch and smell. For example, there are multiple ways to guess steak doneness. Simmering is visually different from boiling which is different from a rolling boil. If you're frying something in a pan, you can guess the temperature by sound. If you're making a stew or braise, it's done when the meat breaks apart. Doesn't matter what the cookbook says about exact times because environment and cooking equipment is different for everybody. Water boils before 100 C at high elevation. I moved to an area with high humidity in the summers and all my baking recipes from home failed.

With practice, you also build an intuitive sense of doneness. For example, I've cooked enough "black on the outside, raw on the inside" chicken to know how hot the heat should be and how long it should take--even without a thermometer or a timer. Like others have mentioned, sometimes you just have to cook a proxy item or sacrifice a piece.

One of the big differences between new cooks, and experienced cooks is that people who have cooked for a while are constantly tasting, touching and inspecting their food. New cooks tend to follow recipes word for word and only taste at the end. Then they get surprised when something is under/over cooked and under/over seasoned.

Lastly, I think previous generations had different expectations of consistency and quality. Modern society is hyper-precise. Traditional recipes have a huge margin for error.

</comment><comment><USER11> I've spent hundreds of hours baking bread over a period of months. For some reason I got into the habit of baking a fresh loaf for the family and one for my sister-in-law to take to work, daily.

I started using a bread thermometer. Experimented with various breads and converged on trying to make a great basic french boule. Doing this at 6000 feet in Colorado in a conventional oven is challenging.

I could write at least 4000 words about bread, so I'll cut to the chase. I eventually got rid of the bread thermometer because I had my recipe down. The trick is measuring quantities (by weight, not volume) and using the same recipe, oven configuration and oven temperature every time. Once you figure out what works, that is. Once you eliminate variables and all you're left with is temperature or 'doneness' it's easy to just use time instead of temperature.

So to answer your question, I think they used to use trial and error, then consistency. Or perhaps a baker who taught the apprentice the exact method, perfected over time.

With a crisp loaf, you can just knock the underside and you'll get a reasonable idea of whether it's done. But a few fails (or not perfect results) will eventually get you to where you need to be.

Just for fun, here's some more detail: If you're interested in bread in your conventional oven, I'd highly recommend the awesome experience of making bread out of just flour, salt, yeast and water - a classic french recipe. And then hand knead it. Don't fall to the temptation of adding an egg yolk, sugar or olive oil just yet. It's like adding cocaine to soda. Of COURSE it will be more popular. But get the basics right first.

A few tips for your conventional oven: Get the thickest pizza stone you can get and a cast iron pan. Put the stone on a middle rack and the cast iron pan on the lower rack.

Use a moister dough (70 to 80% IIRC) and calculate the percentages of water vs flour based on weight. A scale is essential and a huge time saver. Make a nice wet dough and learn how to knead it. This will give you that wonderful crumb with big spaces. Learn about when to knead and when to rest. For better results, make an autolyse where you just lightly knead only the flour and water first and let it rest for 30 minutes before adding the yeast and salt and kneading. Sounds odd, but it gives amazing results. Calvel's technique (Julia Child's guru).

Preheat the hell out of the stone in the oven AND the cast iron pan under it. Boil a kettle _full_ of water. Put thick gloves on for this next part.

When you put the bread into the oven, put the moist dough directly on the hot stone. Then immediately pour just a few ounces of the hot kettle water into the pan under the stone and shut the oven as soon as you can (with a face full of steam). You now probably realize that filling the kettle all the way saved you from having to tip the whole kettle into the oven and getting a nice steam burn. And those gloves were handy weren't they?

What you've just done is simulate a commercial baking oven in your crappy kitchen oven. The bread will rise suddenly and then the crust will start forming after about 7 mins. Let it get nice and crisp. Check it at around 30 to 45 mins depending on your oven temp. Use a bread thermometer. Take it out when it's 195. Flip upside down on a bread rack and let cool. Resist, resist, resist the urge to bust it open because you'll damage the fragile loaf at this point. After about 10 mins you can cut it if you want to serve hot bread.

When I was in my bread phase, my wife and I would eat hot bread fresh out of the oven with mature cheddar that would soften on the hot slices with red wine late at night.

<comment><USER12> I also got into a bread-baking period a while ago. It's wonderful to eat your own bread every morning even though it's not always perfect. Makes it much more interesting that you can test a new flower mix every time.

The base receipe I used was 240 g flour, 0.35 l water, 5 g yeast, salt

And the most important part, 12 hour leavening time, no kneading and a cast iron pan preheated in the oven. Makes for very easy baking.

</comment></comment><comment><USER13> Mostly, by learning small tricks. Stovetop isn't all that much different to cook on once you get the fire going - stoves and grates of sorts have been around for some time. Baking - you'd stick your hand in the oven and see how long you can keep your hand in there and things of that nature. (keep your hand in 2 seconds but not more and the oven is ready).

If you are really curios to see it done, I'd suggest visiting a live history museum - the only one I know of is outside of Indianapolis, though. They put the research in to make it historically accurate, including the cooking you see them do, and employees are generally knowledgeable about their roles.

</comment><comment><USER14> By sight and experience. It's not very difficult to cook food without thermometer. We still do it, for example when grilling with coal. Also, humans can eat raw, over-cooked and everything in between for nearly all foods.

<comment><AUTHOR> I get that, I can cook free style fine and somewhat consistently. But how did people bake the same thing multiple times and establish pastries, like what was the process I guess would be a better question

<comment><USER15> >But how did people bake the same thing multiple times

They didn't. The concept of food or beverages that taste the same, no matter when or where they're made is an extremely modern invention. It really only came about in the late 19th and early 20th century when industrial processes, statistical techniques, and physical sensors became well developed enough to reasonably guarantee the same outcome over and over again, for run after run. Prior to that, people just accepted a greater level of inconsistency in their foods, because that's all they'd ever known.

<comment><USER16> I would think that people that were baking all the time would build up so much practice and experience that they could probably be surprisingly consistent.

If you were a professional baker, or you had to bake all your own bread, I'd think you would become intimately familiar with the performance of your oven, with the characteristics of your leavening agent (probably a continually refreshed yeast or sourdough culture that you'd keep going for years), and with the local flour.

Although, since I'm currently reading through the Aubrey-Maturin novels, I wonder if the predominance of all these puddings they are always eating had something to do with them being easier to prepare reliably, compared to baked deserts.

<comment><USER17> Yes, or course there'd be some level of consistency, but nothing we'd recognise as the industrial level of consistency we're used to today. The specific characteristics of the local flour will change from harvest to harvest, and plausibly through the season as well depending on storage conditions. The sourdough is a living organism with "temperament", and ambient factors like temperature and air moisture (which obviously change from day to day) affects the outcome as well.

</comment></comment></comment></comment></comment><comment><USER18> I don't think my gas stove has an accurate themostat of any kind. I use my hand if I'm making a pizza or something. You have to keep an eye on the thing that's cooking I guess. If I cooked pies everyday, I would probably get it nailed down by trial and error. I wouldn't ever need to know the exact temperature as a scientific measurement though. The hand measurement is like "hot" vs. "really hot".

</comment><comment><USER19> Everybody has an unique tongue/mouth so a taste which is connected to old memories. I do beleive temp control is good if someone want to automate their receipe but for new cookers it is like casting double to short, best tastes can be only found with tons of expriments by trying never tried.

</comment><comment><USER20> I heard that the acadians people where praying in front of the over. If they can stay there until the end of the pray, the oven is ready to bake the bread. Otherwise, they had to wait a few more minutes. I think it was this way because they didn't learn how to count.

<comment><USER21> It wouldn't be about "not learning how to count", but about keeping a rhythm that makes the time predictable within a relatively small variation. I used similar tricks for long exposure photography back in the long ago. (There was a period in the late '70s and early '80s when radium illuminated dials had gone away, their replacements didn't stay illuminated long enough, GraLab-type timers were too bulky by far, and neither LEDs/micro fluorescent segment displays nor LCD side-lighting on watches were up to the task. I had, between cadets and the regular force, more than a decade of military experience then. _British Grenadiers_ \- a marching tune - takes 16 seconds to play/whistle/hum through once, breaks down easily into 4-second chunks, and only "feels" right if the speed is right for a 120 paces-per-minute march. _Heart Of Oak_ takes 32 seconds, etc. That allowed me to be remarkably consistent across exposures without a usable external timing device. Habitual prayers, especially when combined with something like a rosary to keep the count accurate, would have the same sort of consistency.)

</comment></comment><comment><USER22> The way I've seen described most often is that you stick your arm in the oven and count the number of seconds before it becomes uncomfortable. Early cookbooks used this method to describe various oven temperatures.

</comment><comment><USER23> There's a story in _Primo Levi - The periodic table_ where a raw onion is used in the recipe for a varnish and nobody knows why. Turns out that it was used in the past to measure temperature (it would fry at a certain temp) and people kept doing it even when it was no longer necessary.

<comment><AUTHOR> Was that for pastries? That's super interesting

<comment><USER23> No, it was a chemical plant.

</comment></comment></comment><comment><USER24> Reddit is the best place for questions like these, in my opinion. You will get better answers and discussions.

<comment><AUTHOR> The comments on here are the best I've seen anywhere, but I'm scared of trolls. Also, I think it's a legit hacking question

<comment><USER25> I agree about the quality of discussion on HN - although you should also find the communities at AskCulinary and AskHistorians quite troll-free - AskHistorians in particular has a very strict policy on rigorous answers that can be fact-checked.

<comment><AUTHOR> Oh these look great! Thanks</comment></comment></comment></comment>


A Coder's Guide to Coffee (2002) - <AUTHOR> http://blog.moertel.com/posts/2002-04-25-coders-guide-to-coffee.html <comment><USER2> If you find good beans, grind your own and measure your water temp you can make an outstanding brew with one of these [https://youtu.be/9c14DxfVOY4](https://youtu.be/9c14DxfVOY4)

edit: aeropress

<comment><USER3> My aeropress makes great coffee. But each and every cup always involves fiddly preparation followed by managing a drippy wet mess before drinking. There's no silver bullet.

<comment><USER2> Have you tried the "inversion method?" less mess

<comment><USER3> The preparation is still fiddly and the press itself is still a drippy wet mess. The inversion method doesn't change the fundamental design of the process or the machinery. The aeropress has to be used near a sink and the sink will need to be cleaned after use.</comment></comment></comment></comment>


Standalone JavaScript Routing - <AUTHOR> http://collectiveidea.com/blog/archives/2012/01/25/standalone-javascript-routing/

<comment><USER2> There's also a really nice pre-existing library for this: PathJS.

<https://github.com/mtrpcic/pathjs>

Been using this for a while, with a lot of success.

</comment><comment><USER3> Crossroads is another stand-alone routing library with only one external dependency.

<http://millermedeiros.github.com/crossroads.js/>

<comment><USER4> I see crossroads also lets you use the same code on both ends.

Added it to a document I recently started for components, frameworks and articles of interest to people trying to share the same codebase on the client and server: [http://insin-notes.readthedocs.org/en/latest/scratch/dual- si...](http://insin-notes.readthedocs.org/en/latest/scratch/dual- sided_javascript.html)</comment></comment>


This local paper's bet on micropayments will generate ~$100k this year - <AUTHOR> http://www.niemanlab.org/2016/04/the-winnipeg-free-press-bet-on-micropayments-will-generate-about-100000-in-revenue-this-year/ <comment><USER2> Yeah, well....How long before the paid for articles are copied and released for free?</comment>


TornadoVM: Running Java on GPUs and FPGAs - <AUTHOR> https://www.infoq.com/news/2020/03/TornadoVM-QCon-London/ <comment><USER2> > Due to limitations in the underlying programming model, TornadoVM doesn't > support objects (except for trivial cases), recursion, dynamic memory > allocation or exceptions.

So basically Java syntax for some kind of restricted C/CUDA dialect. How can you even say you're running Java if you don't have objects or dynamic allocation? Everytime the promise of a general purpose programming language running on GPUs is made, this is actually what is delivered, eg. marketing fluff, not compilers actually getting smarter in any fashion

And when you think about how a GPU works, it completely makes sense. A high level language for a GPU will _not_ look like Java

<comment><USER3> >And when you think about how a GPU works, it completely makes sense. A high level language for a GPU will not look like Java

Can someone explain this further? I am genuinely interested in learning what makes Java etc not suitable for GPUs.

<comment><USER4> CPUs are like taxis and GPUs are like buses. You have 64 people sitting in your bus all taking the same path. As soon as two people need to arrive at two different destinations (branching) this whole system breaks down. Eventually the bus must drive to all destinations. Then there is the time wasted stopping to load passengers. To efficiently utilize the bus you must load 64 people at the same. If you were to let people hail the bus like a taxi it would constantly have to stop to just load a single passenger while the other 63 people in the bus have to wait for that single person (random memory access).

A pointer can point to object of any arbitrary sub type in any memory location. Suddenly you have both branching and random memory access. If your program is branching heavily then you may end up with 1 piece of data being computed by a core that can handle 64 pieces of data at once and random memory access kills you because GPUs don't have huge caches like CPUs. The way GPUs deal with high latency is that they simply batch a large amount of work and switch to a different "thread" during memory access. If all your threads are busy loading from memory then you won't see any speedups.

Finally GPUs do not actually have 4096 cores. The RX Vega 64 only has 64 cores and those cores only run at around 1.3GHz. A Ryzen with 8 cores running at 4GHz with out of order execution can trivially outperform a GPU that is only using 1.6% (1/64) of its theoretical performance.

<comment><USER5> Analogies break down or.. is this actually within the analogy? Some buses, they permit small variances from the set route to deal with specific issues which can be done en-route.

The simplest is "drop me off anywhere on the route, but only pick up on demand at scheduled stops"

The more complex is "wear one diversion every now and then"

Some small buses actually self-optimize to a locally efficient route. Post- Buses in rural locations.

It is surely possible GPU can segment, into small disjoint sets of "like" and so continue to offer parallelism, but at reduced intensity? Or, have point inefficiencies in the computation, toward the overall goal of "all alike"

<comment><USER6> Yes. GPUs also do not have tires. Who cares?

</comment></comment></comment></comment></comment><comment><USER7> Just because you can doesn't mean you should. Even OpenCL for FPGAs was too much of an impedence mismatch to be useful for the vast majority of cases.

And getting Java to even run on these is going to remove so many features that there's no real reason to pick it anyway. It's sorta like how JavaCard that removes keywords like "new", "long" and "throw". Like at that point it's a stretch to even call it Java.

<comment><AUTHOR> Being stuck with C, while CUDA allows for higher level programming models, is one of the reasons why most researchers just flocked to CUDA.

When Khronos realised they should have had their own PTX (SPIR) and higher level programming models, the race was already lost.

<comment><USER8> No. Language was not a problem at all. For people who are accustomed to writing code for modern CPUs, switching languages is no big deal: they all perform as good as compiler and language runtime are designed. That's because CPUs are forgiving to the programmer, and they employ a lot of techniques to run _arbitrary_ code well. GPUs were super "dumb" at the time, but they had truckload of ALUs, and people wanted to maximize usage of ALUs at all costs. Because running a power-hungry cluster on a task for one month or two months actually makes a lot of difference. So you choose a tool that gives _the most control over tricky hardware_. And this is going to be a vendor-provided tool. So, if CUDA was based on Forth or Unlambda instead of C++, people would've used it anyways.

OpenCL advertised "write once, run everywhere" approach, it was completely bonkers when it comes to HPC. Optimizations that one applies on different hardware make code look completely different. It has its niche, but not in HPC. I am no longer in this industry, so maybe things changed. But at the time, some teams picked up OpenCL and quickly dropped, as it didn't give enough bang for a buck, and tooling didn't compare with rather polished CUDA stuff.

<comment><USER9> Initially OpenCL and CUDA were competitors. You _had_ choice of C (OpenCL) and limited support of C++ (CUDA). C++ especially in HPC context is way easier (templates!) as properly organized C++ codebase doesn't have problem with:

"Optimizations that one applies on different hardware make code look completely different."

Unless you got C program where this statement is true.

<comment><USER8> > as properly organized C++ codebase doesn't have problem

I'm still having hard time to believe that kernels optimized for SIMD architecture will be useful on CPU and vice versa. And OpenCL people advertised this, if memory serves me well.

<comment><USER9> If you got SIMD it means you had to solve most of problems that you'd have when going for AVX implementation.

</comment></comment></comment></comment></comment></comment><comment><USER10> "Due to limitations in the underlying programming model, TornadoVM doesn't support objects (except for trivial cases), recursion, dynamic memory allocation or exceptions."

Given Objects are not supported, I am having a hard time seeing any valid use case for this over C,C++,Rust etc...

<comment><USER11> Simplified integration with some host environment? But now I am wondering what it would take to run "regular" code on a GPU -- even if it's super inefficient -- just to avoid the need of a "host" environment / CPU?

<comment><USER8> > just to avoid the need of a "host" environment / CPU?

Why would you need to avoid that?

<comment> o-__-o Malware?

</comment></comment></comment></comment><comment><USER12> It's worth noting that this isn't really a solution for FPGA. It just takes Java, generates OpenCL and then pushes it through the existing Intel OpenCL compiler for FPGA. The problem is that to get even close to Ok performance on FPGA with the current OpenCL compiler you need to spend months hand optimizing your code (and often the compiler too), but with this tool you can't even touch the OpenCL code.

Also, just as a separate point can someone point me to a design that acheives 5TFlops on Stratix 10, let alone the claimed 10TFlops - because my understanding is to get that performance you would need to run the fabic at 1GHz and use 100% of the DSPs - which is frankly hilariously impossible.

<comment><USER13> Totally agree. OpenCL code is portable, but performance is not. That's why TornadoVM specializes the OpenCL code depending on the target device. For FPGAs we do a lot more optimizations compared to GPUs, such as tuning the thread-scheduling, better loop unrolling and loop flattening, use of local memory, etc. All of these optimizations are automatically performed in the compiler-IR (GraalIR) before generating the actual OpenCL C code.

With those compiler specializations, we aim to close the performance gap between hand-tuned code and generated code.

</comment></comment><comment><USER11> Where exactly is this in the range from running an actual JVM on a GPU to scheduling some tasks using a restricted Java subset limited to specialized libraries on a GPU? The title seems to suggest the former but I'd be quite surprised by anything other than the latter?

<comment><USER14> It's closer to the latter, but obviously it isn't using specialized hardware libraries. It's a compiler. It just compiles Java down to VHDL for instance. The Java doesn't run on the FPGA at all.

Obviously he's still hit an extremely useful sweet spot right there. I don't know many non-masochists who would choose to use VHDL over Java, that's for sure. Who out there would really rather work out the intricacies of VHDL instead of just compiling a Java class and calling it a day?

Ditto for the GPU. You could learn Vulkan, but if what you're doing is just GPGPU type stuff, why?

Just throw it in a Java class and call it be done with it.

<comment><USER15> As someone who occasionally has to program fpgas, the syntax of vhdl is not why performance fpga programming is difficult.

<comment><USER8> Same goes for GPGPU

<comment><USER4> The restrictions in language features make the limitations of GPUs visible to high level language users. The reason why GPGPU is hard is that most tasks simply don't satisfy these constraints. You don't need to be a genius to run a multiplication of two arrays on a GPU.

<comment><USER8> > You don't need to be a genius to run a multiplication of two arrays on a > GPU.

You don't need to be a genius, but you need to know a lot about low-level stuff. "Simple" matrix-vector multiplication is a task where quirks of hardware already make quirks of the language fade in comparison. You need to find out how to split your task into blocks to minimize access to global memory, you need to manage your shared memory, etc, etc. _Somewhat_ performant matrix-vector multiplication algorithm looks nowhere close to textbook definition because of this. So sticking Java or whatever popular language on the problem is not going to make it much more accessible, as you still need very specific knowledge to not waste electricity by writing an algorithm that is 5-10 times slower than it should be, because all it does is waiting for global memory.

</comment></comment></comment></comment></comment></comment><comment><USER16> I wrote the InfoQ piece. Some further thoughts on my blog - [http://blog.thestateofme.com/2020/03/10/further-thoughts- on-...](http://blog.thestateofme.com/2020/03/10/further-thoughts-on- tornadovm/)

</comment><comment><USER17> I used to love the idea back in the day of BEA's "LiquidVM" product ([https://docs.oracle.com/cd/E13217_01/wloc/docs10/lvm/overvie...](https://docs.oracle.com/cd/E13217_01/wloc/docs10/lvm/overview.html)) - not sure what advances there's been made since that (apart from better hardware and newer versions of Java etc)?

</comment><comment><USER18> It's amazing to think that Java started out as a language for small embedded devices. I guess it's coming full circle :)

Cool project, even if there are a lot of features missing atm. It's always nice to see alternatives to raw VHDL or Verilog for FPGA programming.

<comment><USER19> All it ever needed was two additional levels of abstraction 20 years later to ever fulfill that promise, so obvious and purpose built!

</comment></comment><comment><USER20> I wonder if it'd be feasible to make a Java VM that runs on nothing but a GPU, without any assistance of the CPU except for bootstrapping the system.

<comment><USER21> It is not possible to run the entire VM due to lack of OS support for some features required. However, even you could run all of it, it would not yield the best performance due to control flow divergence.

We did some preliminary work on executing some parts of the interpreter on a GPU this year: [https://github.com/jjfumero/jjfumero.github.io/blob/master/f...](https://github.com/jjfumero/jjfumero.github.io/blob/master/files/JuanFumero- MoreVMs2020-Preprint.pdf)

<comment><USER20> The only way something like this would work would be the OS treating the heterogeneous compute resources as "first-class citizens" and part of the normal OS scheduling and resource management. I don't think any production OS today does that.

And just after I write it, an article on AMD's work on ROCm pops up.

Exciting times.

</comment></comment></comment><comment><USER22> What is it with the Java ecosystem and the term/name tornado. A lot of projects have been named tornado. Any interesting reasons for this?

</comment><comment><USER23> Why not using DSL like [http://taichi.graphics](http://taichi.graphics) rather than create entire VM?

<comment><USER24> It's not an entire VM. Where did you get that idea from? It's _less_ than a DSL - it's Java with a modified compiler library.

<comment><USER25> Just a shot in the dark here ... but maybe the person you are responding to got the idea that this is a VM from the fact that TornadoVM literally has VM it it's name...

<comment><USER24> It's clarified in the _first sentence_ of the article.

<comment><USER26> Then why create that confusion with the name?

<comment><USER13> The VM name came because TornadoVM implements its own set of bytecodes for handling heterogeneous execution. These bytecodes are used for handling JIT compilation, device exploration, data management and live task-migration for heterogeneous devices (multi-core CPUs, GPUs, and FPGAs). We sometimes refer to a VM inside a VM (nested VM). The main VM is the Java Virtual Machine, and TornadoVM sits on top of that.

You can find more information here: [https://dl.acm.org/doi/10.1145/3313808.3313819](https://dl.acm.org/doi/10.1145/3313808.3313819)

</comment></comment></comment></comment></comment></comment><comment><USER27> How would this compare to aparapi? I think aparapi worked by converting java to openCL, which could then run on GPU and FPGA.

<comment><USER28> Indeed aparapi worked by converting java to OpenCL. However, exposed to the user many aspects of GPU programming such as thread indexing (e.g global ids) and memory allocation for specific optimizations (e.g local memory). In the case of TornadoVM these aspects handled by the compiler and the runtime.

<comment><USER29> If I am not mistaken, aparapi included some templates where those low-level aspects were hidden.

The runtime can be added via a jar file, but lambda-based operations must be converted to OpenCL/Cuda/PTX/LLVM or other low-level GPGPU language.

Aparapi did the latter using runtime byte code instrumentation. TornadoVM also does the same thing as a JDK compiler plugin. AeminiumGPU did the same using a transpiler [0] before the actual Java compilation step.

[0] [https://github.com/AEminium/AeminiumGPUCompiler](https://github.com/AEminium/AeminiumGPUCompiler)

<comment><USER13> Aparapi is a direct translation from Java bytecode to OpenCL. To do so, Aparapi provides a compiler and a runtime system to automatically handle data and execute the generated OpenCL Kernel.

TornadoVM compiles from Java bytecode to OpenCL as well. But additionally, it optimizes and specializes the code by interleaving Graal compiler optimizations, such as partial escape analysis, canonicalization, loop unrolling, constant propagation, etc) with GPU/CPU/FPGA specific optimizations (e.g., parallel loop exploration, automatic use of local memory, parallel skeletons exploration such as reductions). TornadoVM generates different OpenCL code depending on the target device, which means that the code generated for GPUs is different for FPGAs and multi-cores. This is because of OpenCL code is portable across devices, but performance is not portable. TornadoVM addresses this challenge by applying compiler specialization depending on the device.

Additionally, TornadoVM performs live task migration between devices, which means that TornadoVM decides where to execute the code to increase performance (if possible). In other words, TornadoVM switches devices if it knows the new device offers better performance. As far as we know, this is not available in Aparapi (in which device selection is static). With the task-migration, the TornadoVM's approach is to only switch device if it detects application can be executed faster than the CPU execution using the code compiled by C2 or Graal- JIT, otherwise it will stay on CPU. So TornadoVM can be seen as a complement to C2 and Graal. This is because there is no single hardware to best execute all workloads efficiently. GPUs are very good at exploiting SIMD applications, and FPGAs are very good at exploiting pipeline applications. If your applications follow those models, TornadoVM will likely select heterogeneous hardware. Otherwise, it will stay on CPU using the default compilers (C2 or Graal).

Some references:

* Compiler specializations: [https://dl.acm.org/doi/10.1145/3237009.3237016](https://dl.acm.org/doi/10.1145/3237009.3237016)

* Parallel skeletons: [https://dl.acm.org/doi/10.1145/3281287.3281292](https://dl.acm.org/doi/10.1145/3281287.3281292)

* Live task-migration: [https://dl.acm.org/doi/10.1145/3313808.3313819](https://dl.acm.org/doi/10.1145/3313808.3313819)

</comment></comment></comment></comment><comment><USER30> But Why?</comment>


The (Highly Controversial) YouNoodle Startup Predictor Is Coming - <AUTHOR> http://www.techcrunch.com/2008/08/05/the-highly-controversial-younoodle-startup-predictor-is-coming/

<comment><USER2> I'm skeptical of this on a very plain basis: If you had technology that could do this for companies, why would you focus on the startup market and not instead on the potentially much more lucrative public markets?

If the technology is as good as is stated in the TC article couldn't they pretty rapidly build up a listing of undervalued companies on Wall Street and buy into them?

<comment><USER3> I think it is a PR gimmick rather than an expected useful product -- their main product is a social network for investors and entrepreneurs.

<comment><USER4> Actually, we're pretty serious about this. Connecting a large number of people in the startup industry -is- a big opportunity in itself (and we've already gotten a high level of traction on that front). However, we've found enough evidence to suggest that data can be used to significantly improve decision- making within it also, which is even more valuable.

<comment><USER3> I wish you guys the best of luck. There is certainly an absolutely enormous amount of money in solving this problem.

</comment></comment></comment></comment><comment><USER5> Techcrunch should have also tested whether predictions for startups that failed were correct too; otherwise this is way too incomplete (YouNoodle might be designed to make you happy by making you believe your company is always worth a lot).

<comment><USER6> >YouNoodle might be designed to make you happy by making you believe your company is always worth a lot

just like astrology

<comment><USER7> Which is a viable business model..."There's a sucker born every minute" or something like that.

</comment></comment></comment><comment><USER8> I would prefer a tool for entrepreneurs that would show them directly what factors they can focus on to get a higher valuation and/or higher chances of success.

The page would be interactive and users would drag bars or change data such as cost of infrastructure per user, cost of marketing per user, data about competition etc, and then the probability of success would change in real- time.

</comment><comment><USER9> Startup Idea: Take the same concept and apply it to indie bands. It's such a point of pride among hipsters to predict the next big band that I bet it'd be a niche hit.

<comment><USER10> I'm sure people like songkick are already working on it. However, as always, building it and getting it to take off are different challenges.

<comment><USER11> I forget the name but there is such a company out of Spain and CA who have an algorithm that analyze the song and compare it to others that were hits to give you a number.

found it [http://edition.cnn.com/2008/WORLD/europe/03/07/spiritof.musi...](http://edition.cnn.com/2008/WORLD/europe/03/07/spiritof.music/index.html)

</comment></comment></comment><comment><USER12> This makes me want to make a YouNoodleNoodle that predicts whether or not YouNoodle will succeed.

Done! Here's the code:

NO!

But seriously, there are so many subjective factors (including luck) in judging the viability of a business that I doubt their ability to do so. If they produce a better-than-random track record, they can change my mind. Until then, I am highly skeptical.

<comment><USER13> I wouldn't be so sure. While I doubt YouNoodle will be able to make valuable predictions, people are gullible and this tool will produce great linkbait.

The predictions from YouNoodle might be closer than simply picking a random number from 0-$1B, but I think a regression with a few regressors(founders previous startup success, current income, market size, etc) would be just as useful.

But most people don't understand statistics, and if you overestimate the valuations of new startups, that particular startup will likely link to YouNoodle. They could turn into a successful player in the TechCrunch/Valleywag space.

<comment><USER14> I wonder if the prediction will be more than just a single number but in fact a distribution of probabilities with predictions. That will make it less trashy.

</comment></comment></comment><comment><USER15> Quit hating; this is awesome. Statistical analysis can tell upstarts what's important and what isn't in a way a blog post can't. It might reveal statistical surprises a la Freakonomics. I'm just saying, I'm happy someone is bothering to do the math on what works and what doesn't. This is something I want. If my startup were taking off, I'd pay to access this information.

</comment><comment><USER14> I like the idea, but there will always be anomalies that crop up. So just as Google is always fine-tuning their algorithm, so must YouNoodle. Only God knows what will really happen and it sounds like there is an over-emphasis on the Social Proof of those associated with a startup. Opportunities exist that can present themselves to anyone.

It says: "YouNoodle aims to make the prediction right before the first round of funding for a company."

What happens if a company can't or doesn't raise capital? If there were a tool on the site like the just launched <http://webequity.com.com.au> <http://bit.ly/3lZTZa>, these startups could still launch whereby the team is paid with equity in the startup instead of cash.

Also, with the valuations in place, tools could be provided to raise money by way of small payments from investors who would also use the site. Alternatively, tools may exist to simply locate such investors with the financial exchange to take place off-site. Such investors may co-invest alongside a high-profile investor who leads the round and who takes an active role in monitoring and working with the company. In this way, a company can uphold its valuation by enabling many diversely sourced investors to access a round who are prepared to pay a premium to access such an investment that they would otherwise not be able to find or participate in, and are likewise also willing to forgoe any board seat claim.

</comment><comment><USER16> This one's probably more accurate and much simpler: <http://web.ics.purdue.edu/~ssanty/cgi-bin/eightball.cgi>

<comment><USER17> "How much will my startup be worth in 3 years?"

"Definately."

Hmm.. should really repeat and average..

"Will my startup be worth megabucks in 3 years?"

"Yes."

Sweet - I like this one.

</comment></comment><comment><USER18> It would be interesting what the prediction would be for 37Signals.

</comment><comment><USER19> I really believe in this to change how investors validate their gut assumptions. All YN is trying to do is take the social, psychological and environment factors to generate an accurate estimate.

Historically successful entrepreneurial teams have exhibited drive, ambition, a great network and ruthless determination. What makes you say its going to change.

Hats off to these guys

<comment><USER20> eh I wouldn't count on that, this is actually just a tool to reinforce their current preferences.

</comment></comment><comment><USER21> How is it impressive that a company in 2008 predicted data that is accurate as of 2008? I'm sure they legitimately used 2005 data in doing so, but they probably tweaked their algorithms until the 2005 data was accurate given what we now know. Anyone could do that.

This is posed as being equivalent to making accurate predictions of the near future, but it's not.

<comment><USER22> There are very standard ways of validating a predictor. Using test & training sets, and tuning the output to be optimized even on unseen data.

If they did this, they should be open about the numbers. Hell, I'd be open about the data too, and make a challenge to make a better predictor. If the algorithms still run on their machines, they can only gain by being open.

<comment><USER23> Sure, standard machine learning stuff.

But in order to be a reliable predictor, I think it would be necessary to predict the economy as well. The same startup that would be successful during the bubble would not be so successful after it popped. In other words, I don't think they have enough inputs to be reliable predictors.

On the other hand, perhaps they don't need to be reliable absolute predictors. The VC's question is basically which should be funded. This might be able to give a rough ordering, which is plenty valuable.

<comment><USER22> The life of a company from start to big exit or large acquisition is pretty long. I'm not sure the economy matters so much -- just delays things sometimes.

</comment></comment></comment></comment><comment><USER24> I really don't see the point of it. Its like horoscopes, and its basing all startups as a neutral idea with the same success rate - Facebook is the same as Techcrunch which is the same as Twitter, even though they are completely different in the size of the target audience.

It looks as if its mainly basing the predicted investments off the founders and what they have worked on in the past, but is that good enough? We all know startups can fail no matter who is behind them - Cuil, its founders had first hand experience with the leader of search, Google, but has still pretty much failed so far.

Plus, apart from a bit of fun, who would use it? I doubt investors would use it over their years of experience in the industry, and it seems like they are in fact the target audience!

I look forward to giving it a go.

</comment><comment><USER25> I don't really get why this is "highly controversial" unless it's just more TC link bait.

Sounds like a good idea to me; if they're able to do what what Moneyball did for baseball and what PER did (to a lesser extent) did for basketball all the power to them. What's the downside of having more accurate tools and indicators> Since the tool will be public and founders will know what to focus on.

However, I highly doubt too many VC's will take them seriously until they start producing verifiable results instead of form fitting historical data. Very few took sabermetrics and some of the other sports' quant stuff seriously to start either.

<comment><USER14> If you read Arrington's first post about YouNoodle <http://bit.ly/326Nx6>, he was very scathing to the point of being unfair. Along with Crunchbase, my guess is that he wants TC to be the Goto point for startups, not YouNoodle, and YouNoodle is positioned to establish many relationships with many entrepreneurs to which he may be jealous.

"It's hype and nonsense, and it won't work." ~MA

<comment><USER25> Ah ok thanks for the background information. Arrington sounds like a lot of old school baseball scouts and GMs.

</comment></comment></comment><comment><USER26> There is a movie production company called Epagogix <http://www.epagogix.com/index.html> that has an algorithm which predicts the success of a movie from the script. Epagogix was profiled in the book Super Crunchers <http://www.randomhouse.com/bantamdell/supercrunchers/>

</comment><comment><USER27> I think all this predictor thing is a hype they are using to gain traction.

I used YouNoodle and I felt all this prediction thing is spoof - The real crux - This IS going to be a startup directory (crunchbase + social aspect.)

Imagine a niche area for linkedin to concentrate on - high powered entrepreneurs all connected and talking about their ventures even stealth startups.

</comment><comment><USER10> I am still wondering why others like TechCrunch et al have not at least _tried_ something like a quantitative prediction tool before.

Perhaps it was too much conflict of interest to their core reporting/news business model, or too much work?

Still it is interesting to observe the shifts from reactive to proactive process in that space.

</comment><comment><USER28> "YouNoodle is also basing predictions on historical data, and in a rapidly changing world that is consistently disrupted by new technologies, those predictions are very hard to make. Humans who are on top of recent developments can make subjective decisions that are far more likely to be accurate than an algorithm."

</comment><comment><USER29> No startup predictor can take in consideration how well team members execute their ideas.

Sure, it could take in account information about past startup founders, but what if you asked it about Larry and Sergey in 1998? No past information. How are you going to predict how well they executed Google?

<comment><USER4> Even though Google is an anomaly (black swan:), as you can see in the Techcrunch article, YouNoodle would've still predicted an $80M+ valuation for Google, in part because of the high quality team and advisors they managed to assemble from the start, including Ram Shriram and Andy Bechtolsheim.

<comment><USER29> True, true.

Quite a smart system, though. Kudos to the YouNoodle team.

(The name's awful, though. If the founders are here, don't be offended, it's nothing personal, but consider another name?)

<comment><USER30> great name, imo

</comment></comment></comment></comment><comment><USER31> I love this kind of idea, but it never works.

TechCrunch tested predictions of success - but what of failure? (maybe it says they all succeed...?)

Anyone care to enter a past learning-experience startup, to test this out?

</comment><comment><USER32> I'd be interested see how YC companies are valued by this predictor.

YouNoodle may or may not be an accurate predictor, but I bet they're good at predicting which teams/startups are likely to get funding from investors/VCs.

</comment><comment><USER33> Surely they don't have enough data on the startups that didn't make it, that didn't have a high profile. Will the algorithm not tend to be very optimistic?

</comment><comment><USER34> it doesn't calculate for supply & demand.

Powerset is worth whatever MSFT was willing to pay for it, not what the predictor says its worth.

<comment><USER6> MSFT was willing to pay Powerset for whatever it thinks its worth. So acquisition price is fair enough I think.

<comment><USER15> Officially, MSFT will pay as little as it can (ethically/legally/effectively) get away with.

</comment></comment></comment><comment><USER35> How is YouNoodle going to make money from this?

<comment><USER36> If it's as good as they say, making money is trvial: just make the predictor proprietary. The real question is: "Can they make the predictor good?"

<comment><USER35> This makes sense, now that I've thought about it some more. It is logical that they would use the predictor to decide where to invest. But, they probably don't actually have any money to invest. By hyping themselves on TechCrunch or whatever, they can get some seed funding :)

That's my theory anyway.

</comment></comment></comment><comment><USER37> rand(60,150)*1000000

</comment><comment><USER38> the only predictions worth a damn are the ones with money involved.</comment>


Ask HN: Converting Wordpress themes to Go templates? - <AUTHOR> Is there any free software that can help in converting wordpress themes to the Go html/template format? <comment><USER2> That would be _incredibly_ difficult for an arbitrary WordPress theme, as they're allowed to do a heck of a lot more than just present content from the database in straightforwardly generated HTML and CSS.

Presumably you have a blog template and want to make a small utility or portion of your site match the template visually, right? That is straightforward to do with a bit of elbow grease: create a minimal blog post with a placeholder $TITLE for the title and $POST for the body content, publish it, save the HTML, then grep for $TITLE and $POST and replace with the appropriate magic for your templating language of choice. You're probably done now, or done modulo changing some paths to point from your application's directory to wherever WordPress locates the CS/JS files.

This general trick helps make individual pages of a WordPress template into any sort of templating system very, very quickly. I've used variants to e.g. make WordPress and Rails apps pretend to be siblings as opposed to mere housemates. (Note that you should examine your theme's licensing; it's highly likely that this is a consequential choice if you're working with a theme you obtained commercially and then embed that template into an application which is not WordPress.)

If you want to duplicate functionality of WordPress like e.g. interfacing with the database, offering a backend, etc... be forewarned that you are embarking upon an ambitious and involved project.

<comment><AUTHOR> Pat, thanks. I was just hoping maybe there was something out there. The theme I am using is horrible in terms of performance. It serves up 1.8MB on desktop and 1.8MB on mobile. There are a ton of optimizations I could make with media queries and compression. For now, I have been just slicing it up into standard html/template pieces.</comment></comment>


Economia - <AUTHOR> http://idea-maze.com/2010/12/11/economia/

<comment><USER2> It's yet another "command economy simulator", probably not very different from the models used by our central bankers. That is, if they indeed rely on models and not nakedly trying to enrich or prop up the big banks.

There is nothing special about credit and money, they are goods and services that arise naturally from market interactions. Having central banks "in charge of the free markets" is self-contradictory.

Another specimen: <http://nobelprize.org/educational/economics/trade/index.html></comment>


Future-Proof Jobs - <AUTHOR> http://www.popularmechanics.com/technology/industry/4314253.html

<comment><USER2> Pfff, nonsense. Here are some proven future-proof jobs:

\- baker \- prostitute \- politician \- musician

<comment><USER3> I don't necessarily see 'undersea welder' as a future proof job. Our whole prediction of the future, currently, is the end of oil, which means the end of offshore oil platforms, which probably means 90% of these jobs will be gone. This doesn't really make it future proof.

Ed: I'd say any job that is future proof, has likely already survived the industrial and information revolutions. My personal opinion of future proof jobs is, if Jesus could have done it then we likely will in 2,000 years.

Fishing, Farming (Crop and Animal), Carpenter, Blacksmith (There's still farriers, but also still people who work with cast iron and such, but I suppose most construction-based welding would probably be included), Plasterers (Now mostly dry waller's), masonry (brick laying, tilers and all the more specialist tasks), plumbers (water, sewage, gas).

Having worked as an electrician I'd like to include it as I doubt it will go away, however it didn't exist 2,000 years ago so by my own rule I wouldn't consider it truly future proof until time proves me wrong.

<comment><USER4> "I don't necessarily see 'undersea welder' as a future proof job. Our whole prediction of the future, currently, is the end of oil, which means the end of offshore oil platforms, which probably means 90% of these jobs will be gone. This doesn't really make it future proof."

Ah, but you forget about the growth in demand due to seasteads.

</comment></comment></comment><comment><USER5> What a wonderful future: building carbon fiber composites at $20 per hour. I did the equivalent, building fiberglass boat when I was in college decades ago. I dont recommend it: stick, smelly, and toxic.

</comment><comment><USER6> Suits Digg much better than HN.

</comment><comment><USER7> Won't the carbon fiber guys get replaced by fabbers in 10 years?</comment>