A Java EE Startup: Filtering information with zeef.com - john-waterwood http://www.adam-bien.com/roller/abien/entry/a_java_ee_startup_filtering

<comment><AUTHOR> JSF ? Oh those gullible youngsters !

JSF is the slowest way to do web development for rich client UI: starting stopping J2EE servers is time consuming. HTML templating is difficult; you can't see what you screen looks like until you serve the page from your J2EE server .Also JSF is an unnecessary abstraction over HTML : it is much easier to maintain state on client itself using any of Javascript libraries like React or Backbone or others. You are much better off using REST servlets or REST Spring MVC with your javascript. JSF impedes the growth of features or functionality on a page: as you add more widgets to you page like JQuery plugins , you will be suprised by the amount of backend code you will have to write. Ultimately ,you will eventually resort to hacks and you page state and you JSF state for the page will deverge. Sadly you wont discover this mess until you are waist deep in this pile of muck.

JPA is pretty awesome ; however I have learnt over the years that you need to fine tune your queries using explainplan rather that relying on generated queries; define the views on the db itself and load them with JPA; this way the others frameworks or related application ,like a ASP application or a python web application or reportng application, can also leverage the same data and view.

<comment><USER2> JSF isn't the greatest, but it's improved a lot starting with version 2.0. I can indeed see a preview of what my page will look like (with templates applied) right in my IDE. The fact that you called it J2EE makes me think you're talking about the "old" Enterprise Java. I abandoned it for a while back then too - it was no fun to use!

<comment><AUTHOR> I should have clarified: previewing a page in an IDE is not enough in my use case (banking): I would want to preview my page on different devices' browsers.

<comment><USER3> >I would want to preview my page on different devices' browsers.

What's stopping you?

With JSF you can write normal HTML that you can load on every device. See [http://jdevelopment.nl/jsf-22/#1111](http://jdevelopment.nl/jsf-22/#1111) and for the older somewhat less capable version: [https://en.wikipedia.org/wiki/Facelets](https://en.wikipedia.org/wiki/Facelets)

</comment></comment></comment></comment><comment><USER4> Modern Java EE has taken a lot of influence from other web frameworks. It is now much more convention over configuration than it used to be. I think it just lacks a new MVC module as an alternative to JSF. If only jersey 2.0's mvc templates were added to the core, I would have considered it instead of other alternatives (e.g. Adding routing to a view from JAX-RS, right now it's not trivial and meant mostly for "services" e.g. API methods vs JSF for your friendly neighborhood MVC. I think JAX-RS is much more friendly and familiar to people coming from other web frameworks. JSF is not too, well, RESTful and feels a little outdated to me, although it's very powerful...)

(Dropwizard uses JAX-RS by the way if I'm not mistaken)

Now with Java 8, Java EE is quite a powerful and productive framework, and the performance is pretty predictably just awesome.

<comment><USER5> > I think it just lacks a new MVC module as an alternative to JSF.

In Java EE 8 such a new MVC framework is indeed coming. From the same startup the article uses as an example: [https://mvc.zeef.com/manfred.riem](https://mvc.zeef.com/manfred.riem)

That page is from the MVC 1.0 spec lead (Manfred Riem). It's going to be strongly based on JAX-RS and mimicking how Spring MVC and Jersey MVC now works.

<comment><USER6> Personally, I think "blessing" UI frameworks as JSRs ("official!") is a bad idea.

I think it leads to the UI framework (e.g. JSF in the past or this new MVC spec) "winning" and getting adopted by teams who, if they had to evaluate several competing non-blessed frameworks, would pick something better/easier/more modern, but instead go with the JSR-backed option.

Although perhaps I'm just being pessimistic. JSRs can probably be a good thing; as a programmer in the JVM ecosystem, I've just never considered "it's a JSR" as a brand of quality/something that should affect my choice, and if anything it's the opposite.

(My pessimism aside, if they're basing the spec on existing good ideas, like JPA did for Hibernate, and JSR-310 did for Joda time, that is at least a smart approach.)

</comment></comment></comment><comment><USER2> We're (re)developing almost all our infrastructure in modern Java EE (as layers of microservices). We're seeing less than 2mS response time for most services and can afford to stack quite a few to build our customer facing applications.

Ignoring the business logic, a RESTful API can be built to run on a Java EE application server in about 10 lines of code. And it will run on any Java EE 6-7 compliant server implementation (as a single JAX-RS application ... you'll need Java EE 7 for multiple JAX-RS applications per context).

EDIT:

I also should have pointed out that the "XML Hell" that was required to configure applications and almost every managed object in J2EE <= 4 has been eliminated. When the default behavior isn't quite what you want, meta- programming can be accomplished with an annotation in the code. The few remaining XML files can often be left empty - they're simply markers that activate features of the server (CDI bean scanning, Java Server Faces, etc).

<comment><USER7> Excellent timing. So I have played most of the time since college in Python, bash, Perl, and very little Ruby (in that order). I am going back to school to Java as part of my "torture yourself with the basics you blew off" undergrad career that was not CS, and now had a change of heart.

I have seen in /r/java and Reddit and elsewhere people eschew even for newbies the use of Spring Boot, Ninja, Dropwizard in company. Some like you say Java EE is very friendly and I can write a full-featured REST service in like a dozen or so lines of Java. Seeing as I wrote small pieces of homework "employee ID insertion into memory" classes in like 100-200 lines, can you show me said examples? Hyperbole or not, I would love to see good articles about building REST services and other stuff in pure Java EE and/or JAX-RS style explaining how a Java newbie can do this stuff.

I think other novates would greatly appreciate. The expanse of Java web libraries is so vast even showing the minimalist modern style I am jealous of in your post would be a huge benefit to me.

UPDATE: Oh Jesus Christ! Now I remember why the name Zeef seemed familiar. You make that one of the few tutorial sites I found. Now, I will go crawl under the HN couch while onlookers stare and surpress chuckles. Always read the articles, dammit! Or meet me under the couch, rather.

</comment></comment><comment><USER8> Is this article telling the story of someone who's been on the JEE for 12 years, loves it, and would certainly choose it again.

While I'm happy for him, I dont think it makes a good case JEE as a "startup's secret weapon" (SSW).

By hypothetical comparison, if someone used 6 major tool chains for the last $DOUBLE_DIGIT_NUMBER years, and by comparison says one particular tool chain is an SSW, then I'm much more inclined to value the recommendation.

<comment><USER5> I agree with what you say. Certainly would have had a bit more value if the article had elaborated on whether they used anything else. I feel the interviewer should have asked about that. Even a "no, we didn't" would have been valuable. Now we know nothing.

That said, it DOES mean that they have been happy with Java EE and have been so happy that they choose it again for their latest startup.

Contrast this with a typical startup where engineers always seem to hate whatever they used before and are like children in a candy shop for having the opportunity to use whatever we think is cool here.

<comment><USER8> > That said, it DOES mean that they have been happy with Java EE

Sure. I'm also happy for them, and I acknowledge JEE's massive installed-base and performance.

Just the "startup secret weapon" claim/title I thought was unfounded.

<comment> john-waterwood I hear you. I personally stand by the title choice because IMHO there are two facets to Java EE. I'm not saying that it's a fact (I simply don't have the data to back it up), but those 2 facets I see are:

* huge installed enterprise base

* modernisation of the platform aiming it a both small and big users

I've been active in Java/Java EE for some time, and I know that these facets can be at odds with each other.

For instance Java EE people wanting to support enterprises exclusively still think in needs of enterprises, which means there's always a dedicated ops team, an installed server that nobody but ops can touch and developers that communicate with ops via tickets.

This warrants having data sources and security modules configured outside the application and maintained by ops.

For small users this is silly overhead. When you're the only one developing an app the security module can be right inside the app.

Some Java EE people have introduced mechanisms to do so, but the enterprise people who are still there hate it, saying a server should always be maintained by an ops team. The very idea that a small shop doesn't have an ops team just doesn't occur to them.

Long story, but the simplifications that are making Java EE incresingly suitable for small shops and startups, while maintaining access to the power of the full platform to me doesn't seem well known yet.

<comment><USER8> I respect your views totally. But I still disagree on the title.

> huge installed enterprise base

This is more a reason for a consulting shop to pick JEE.

All in all I think the article more describes why one cannot get around JEE for enterprise work. And how JEE is not as terrible as it was.

That last point assumes levels of "terribleness" are well understood by by many.

When it comes to "startup secret weapons" (except maybe for startups that have to tie in with enterprise systems), I think JEE is the last thing that comes to my mind. Even after reading the article.

<comment> john-waterwood We're all free to have our opinions ;)

About the reason for the consulting shop to pick EE because of the installed base, that was indeed my point regarding the first facet.

The first facet (huge base) is what appeals to enterprises. The second facet (modernisation & aimed at small users) is what appeals to startups.

That EE had a huge installed base is pretty well known I think. But that EE now also aims at small shops? Perhaps not so much ;)

</comment></comment></comment></comment></comment></comment><comment><USER9> That was a good interview. A few years ago, I took almost a year out to help a friend (from since we were little kids) and his company and they were a J2EE shop for the server side. One of the first things I did was to buy one of Adam Bien's J2EE books because I had not touched J2EE for years. My friend is a true Java Ninja and his architecture and code were elegant. That said, for my own stuff I like the simplicity of Clojure and Compojure :-)

I looked at zeef.com and it is an interesting idea, but I tried searching for a few broad topics that I am an expert in and found the results so-so. zeef.com needs a larger number of human experts contributing.

</comment><comment><USER10> When HN comment mention how bad is "J2EE", I start to know the it refer to old J2EE (J2EE 1.4 (November 11, 2003)). Now is JEE 7, no more J2EE!

Yes, JEE/Java is bad but please, there is no perfect framework/language. Ruby/Python/NodeJS whatever is awesome, but it does not mean that it is perfect langauge either.

Now JEE 7 is awesome enough that you should stop mention _J2EE_.

Also, Java maintenance best backward comparability that I ever know. Anyone want to discuss Python 2 vs Python 3 and Ruby 1.8 vs Ruby 2?

<comment><USER11> it's funny to see the same defense over and over. no one said any other framework is perfect, but JEE is design-by-committee crap mainly designed to sell consulting hours. that lack of external perfection does not make JEE usable or worthwhile.

<comment><USER3> >JEE is design-by-committee crap mainly designed to sell consulting hours.

To whom does Geronimo sell consulting hours?

The design-by-committee hasn't been the case for at least 10 years. J2EE 1.4 was the last version largely developed that way. The last released version (EE 7) and the current one (EE 8) sees a lot of community contributions.

People from the community create JIRA issues, send contributions, even implement entire features (see the work for JSF 2.3 and MVC 1.0).

If that's design-by-committee then everything is design-by-committee.

</comment></comment></comment><comment><USER12> For rich web applications, GWT is a great option. It is a blessing to write the frontend with the same language and toolchain as the backend, re-using domain classes and constants across the projects.

Our current project uses Spring MVC for the backend, exposing REST services, and GWT for the frontend, with Resty for marshalling data structures back and forth. It works really well.

<comment><USER13> How do you feel about improvements in GWT development speed? In terms of development mode, compilation times and the whole process of making a java code change and seeing the result in a browser? Is there a lot of work on making this better?

GWT is nice, but I remember a lot of frustration came from buggy dev modes and compilation times.

<comment><USER6> We've been using GWT master with both incremental compilation + Java 8 lambdas (!) and it's pretty fun.

Granted, the non-JVM debugging experience is not nearly as magical as it was before, but I believe there is some work afoot to merge SDBG (source map-based debugging in Eclipse) + the GWT plugin. Still WIP.

</comment></comment></comment><comment><USER14> Seems like people are upset that they didn't compare JEE to common frameworks and platforms that startups are known to use often like node.js w/ Express, Ruby on Rails, and Django rather than trying to explain more of what's interesting about modern JEE.

</comment><comment><USER15> Try other frameworks like Play, Spring,before you are confident to speak out the word "productive", try other frameworks from other languages like Rails before you are confident about start up speed

<comment> john-waterwood I tried rails once. Startup was fast, but after 3 months we got stuck and things weren't so fast anymore.

Modern Java EE let's you start about as fast as rails, especially when starting from a good Maven archetype. The code is immensely simplified. I got a backend service with JAX-RS and CDI running in literally no time!

</comment></comment><comment><USER16> There is no doubt this combination would be extremely high performant e.g. Wildfly was always in the top handful on Techempower benchmarks. But using JSF and EJB is a pretty extraordinary combination to be using these days. You would honestly be laughed out of every Java development team for even considering it.

Would definitely like to see why something like Dropwizard, Vert.x or even Play 1 wasn't considered.

<comment> john-waterwood JSF and EJB are the reason why Java EE is lately considered the "secret weapon".

The fact is that both invoke memories of old times where they were very heavyweight and problematic technologies.

EJB was a total disaster, where you needed to implement 3 interfaces and inherit from a framework provided base class, compile your code with a special "enhancing" tool and run yet another tool to generate something called stubs and skeletons, just to do hello world.

Modern EJB on the other hand is a POJO with a single annotation:

        @Stateless
        public class Bean {
            // do something
        }

That's all. There are no required framework or business interfaces, no obligation to put ejb beans in a separate EJB module and there are no specific compiler tools needed. It's a total day and night difference.

In modern Java EE there's no reason whatsoever to avoid EJB.

There's a similar story with JSF. The first versions (1.x) were mostly POST focused, had heavy session space requirements, and components were hard to create.

In modern JSF 2.x, there's first class support for using GET, and the PRG pattern is at the heart of interactions that are logically POST. Session requiremebts are largely minimized by use of a partial state saving (only changes to state are saved) and a stateless mode (nothing is saved). You can use plain html to author pages with a single extra namespaced attribute to mark it as a component to JSF.

Again a night and day difference and no need to avoid it anymore.

Then JSF has a number of very cool extensions available such as PrimeFaces (beautiful visual components) and OmniFaces (Swiss army knife like Guave is for plain Java)

<comment><USER17> The fact that people that have used Java do not realize that EJB3 is pretty good, when it's pretty old! I switched to EJB3 in 2006, and I really couldn't see why people would choose Spring anything instead. The switch to Soap, and then to Rest, was changing a couple of annotations. Not bad for a 9 year old framework.

Now, my biggest problem with the stack, and the reason I do not use it anymore, is Java itself. A switch to Scala makes a lot of the Java boilerplate go away, and even Java 8 doesn't get close. Now, I find all the major Scala web libraries to be lacking, in one form or another. Play's second compilation feels clumsy. Spray's freedom of routing leads to very ugly code: Just look at their own large examples. So what I am currently doing is using a homebrew routing on top of Spray, which also gives me some documentation for free: Pretty useful when you have hundreds of services in hundreds of servers.

It's a pity that Java itself moves so slowly, and is so reluctant from adding key features, like pattern matching, because the rest of the tooling is pretty good.

<comment><USER18> > I really couldn't see why people would choose Spring anything instead

Testing. Updates and fixes not tied to server releases (which can take years).

<comment> john-waterwood Fixes don't take years with Java EE!!!

We're using JBoss and there's an updated version mostly every few weeks, months at most. Absolutely not years, that's totally ridiculous and tells me you've never really used Java EE.

<comment><USER18> JBoss still doesn't have a supported Java EE 7 server. JBoss releases still much less frequently than Spring. If you want to look at how quickly things are fixed in JBoss have a look at this: [https://issues.jboss.org/browse/SECURITY-746](https://issues.jboss.org/browse/SECURITY-746)

If you need a feature in Java EE you have to wait several years for the next Java EE release and several years more for the next server release that implements this, see JBoss.

<comment> john-waterwood You're mixing up things.

JBoss releases updates to its implementation rather frequently. If you look at their release dates it's almost every other month. See ftp://ftp.redhat.com/redhat/jbeap/

You're quoting an individual bug that has been open for some time. Did you also looked at the many bugs that were fixed after a few hours after being reported? Do you dare to state that Spring has no bugs or that none of their bugs is open for more than a day, week, month?

Java EE has a spec cycle of about 2 to 3 years (there was an article about this recently, Google it if you want). That's the time between 2 spec releases. It's about the same time as between major supported JBoss releases, so between EAP 5, 6 and 7. There's 3 to 4 years between major Spring releases (Spring 2 2006, Spring 3 2009, Spring 4 2013).

And Java SE doesn't release a major new version montly, let alone yearly either. A spec should move fast enough to stay relevant, but slow enough to provide the stability needed so lots of other technology can build on it.

<comment><USER18> > JBoss releases updates to its implementation rather frequently. If you look > at their release dates it's almost every other month. See > ftp://ftp.redhat.com/redhat/jbeap/

[http://jbossas.jboss.org/downloads](http://jbossas.jboss.org/downloads)

EAP 6.4: 8 months EAP 6.3: 8 months EAP 6.2: 7 months

> Do you dare to state that Spring has no bugs or that none of their bugs is > open for more than a day, week, month?

In about 50% of the times I have reported bugs or submitted pull requests against Spring they were closed within 6 hours. Spring releases about a month apart. The other 50% lay dormant for years. Still way better than any contribution I tried to make so far to Java EE. 0% success in about 6 tries.

> Java EE has a spec cycle of about 2 to 3 years (there was an article about > this recently, Google it if you want).

[https://en.wikipedia.org/wiki/Java_Platform,_Enterprise_Edit...](https://en.wikipedia.org/wiki/Java_Platform,_Enterprise_Edition)

Java EE 8: at least 3 years Java EE 7: 4 years Java EE 6: 3 years Java EE 5: 3 years

<comment> john-waterwood >EAP 6.4: 8 months EAP 6.3: 8 months EAP 6.2: 7 months

That's skipping a lot of updates. EAP 6.2.2: 1 month EAP 6.2.3: 2 months EAP 6.2.4 1 month EAP EAP 6.3.0: 1.5 months Etc

>The other 50% lay dormant for years

So this exactly the same as with a Java EE implementation or any other open source project for that matter. Many get fixed in hours, others weeks or months and some years or simply never. Spring is not inherently better here as their track record proves. That your personal reports were of no success maybe says more about yourself than of any Java EE implementation. I got many bugs fixed and have seen others reporting bugs that have been fixed in no time.

>Java EE 8: at least 3 years Java EE 7: 4 years Java EE 6: 3 years Java EE 5: 3 years

I was more referring to this one: [http://arjan- tijms.omnifaces.org/2014/10/java-ee-process-cyc...](http://arjan- tijms.omnifaces.org/2014/10/java-ee-process-cycles-and-server.html)

The actual time spend on the spec is less (see table). Whatever number you look at, it's not that different from the major Spring releases, and Spring is a product even, not a spec.

<comment><USER18> > Whatever number you look at, it's not that different from the major Spring > releases, and Spring is a product even, not a spec.

Spring releases are every month. When there is a bug in a Java EE spec (like the WebSocket/CDI integration or the CDI annotation scanning in EE 7) you have to wait for the next major spec version to fix it. The spec has to be "perfect" for 3 to 4 years because there is no way to fix it.

<comment><USER3> >The spec has to be "perfect" for 3 to 4 years because there is no way to fix it.

This is absolutely not true.

There's the MR (Maintenance Release) for that. See for example JSF 2.1 and CDI 1.2. They were intermediate quick releases between major Java EE versions.

Even the platform spec itself can have a MR. Currently there's an MR for Java EE 7 in the works. See [https://java.net/downloads/javaee- spec/JavaEE_7_Platform_MR_...](https://java.net/downloads/javaee- spec/JavaEE_7_Platform_MR_Candidate.pdf)

Because it's a spec, naturally more consideration has to go into it. Many implementations depend on it to be stable. In case of Spring there's only one Spring. Take it or leave it. Not having a spec behind you can be an advantage (change things whenever you want), but is a disadvantage as well (the implicit specification of how things work is in the code, but Java is not declarative and it's always a guess if specific behavior is just an implementation side- effect or an intended one).

Even changing things whenever you want can be a disadvantage. A spec naturally favors stability, which means I can run my old code with minimal or no changes at modern Java EE. Try that for regular open source libraries (be it from within the Java EE universe, Spring universe, or whatever). Chances are that the APIs and config files have changed 10 tens in the meantime.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER19> From the article:

"So our strategy has been to reduce the number of relations between entities to what is strictly necessary, and occasionally to use JPA DTOs when a subset of data is needed for a rather complex entity. Such DTOs are populated using the constructor selector syntax in JPQL queries and JPA is generally smart enough to generate far more optimal queries then."

I have been using this "pattern" a lot lately, its great. looks something like this:

SELECT NEW mypackage.Pojo( e.id, oe.name ) FROM MyEntity e JOIN e.otherEntity oe WHERE e.someProperty = :parameter1

Its also possible to place these in external files, working around Javas inability to have multi line strings after all these years.

</comment><comment><USER20> Perhaps OT: I often swing by Java web/services frameworks every year or so and I never see a good DB migration/evolution story. I'm fairly certain that it's because I don't know where to look or that I'm thinking about it incorrectly, but I've yet to see a Java web/services framework that supports the easy database migration/evolution schemes of Django/South or of Rails. Are these migration schemes not supported for a reason? Or am I missing the docs?

<comment><USER6> I imagine most Java web/services would consider it bad style/coupling to pick just one data back end (e.g. assume everyone uses JPA or Hibernate or what not), which would be needed to support migrations.

Even after Rails, the Java ecosystem is less "everything out of the box" and more "build your own stack". There are some exceptions, e.g. Grails and Play. Although both of those have migration modules:

[https://www.playframework.com/modules/migrate-1.3.2/home](https://www.playframework.com/modules/migrate-1.3.2/home)

[https://grails.org/plugin/database- migration](https://grails.org/plugin/database-migration)

(First hits from Google, so apologies if those aren't the latest/best results.)

And, even then, I think both Grails/Play also try to be backend-agnostic, e.g. the migrations being plugins instead of first-class/backed in, like Rails which assumes "yeah, you'll basically always use a relational db".

Also, re migrations, a shameless plug for my ORM that relies on migrations+the database schema to codegen the rest of the boilerplate: [http://joist.ws/](http://joist.ws/).

</comment></comment><comment><USER21> I hate to tell you all since none will thank me, but the horse has left the barn - we now have 'thick client' where the app is client side in .js.

Also consider APIs/Baas: Backendless.com, Kinvery, App42, etc. [http://baas.apievangelist.com](http://baas.apievangelist.com). DIY REST is purely optional, for companies w/ poor CTO/CFO. PHP, JSP, ASP, Rails, Django is in same boat, server side rendering of UI is past prime, we now need stunning UI, ex: datatables.net, Admin LTE, etc.

Framework today is UI Kit, BootStrap, Foundation, etc. That is a framework. Alternative to that is PhoneGap, Swift - and for Java, there is hope, in Android.

<comment><USER22> I read somewhere that the best troll comments are ones where you can't tell if the poster actually means what he says or is trolling.

</comment></comment><comment><USER23> I can imagine that they feel themselves productive with EJB but only without the contrast say Ruby, Python or LISP would give.

<comment><USER24> Choosing Java over Ruby/Python for your web-app really depends on what you want to sacrifice.

I counted LISP out because unless you're using Clojure, I know for sure you're not going to be able to beat anything else for web-app development. LISP for web-app probably works in the 90's for PG but we're in 2015 where libraries, frameworks, and tools for these other languages are just far too advanced and more productive than writing macros... sorry mate.

Anyway, back to Java over Ruby/Python.

Take a few examples:

At the Microservice area, Java seems to shine over other languages/platforms. JAX-RS feels more complete than Sinatra or whatever Django plugins that the Python community use. See a quick example of JAX-RS vs Sinatra somewhere in this blog post: ([http://www.appneta.com/blog/microservice-service-oriented- ar...](http://www.appneta.com/blog/microservice-service-oriented- architecture/))

Maven can be huge and underwhelming (and ugly once in a while) but it's definitely more powerful than gems+bundler+rake and whatever Python adopts these days. Maven has been around for a while so most Java DEVs don't have to pick up tools as Python DEVs have to do quite often. But again, there are trade-offs: Maven XML is definitely uglier than Bundler or requirements.txt or package.json.

Let me ask one thing: in platform other than Java, do you use declarative transaction? My guess is "No". Which means you have to know when to open and close a transaction (and potentially join an existing one if the library isn't smart enough). Java Spring/EJB provides annotation based transaction.

I'm not suggesting that Java is better than other languages, but there are advantages of choosing Java.

<comment><USER23> Clojure is a LISP and from my experience I'm way faster with Clojure than with Java. Plus Clojure can use any java library. And by the way it seems that you have never used any lisp for web development. When you bump into the first problem with the bloatware made of 30.000 files and you have to debug it because there were no answers on stackoverflow...then you will find all out about the dark sides of "advanced frameworks".

</comment></comment></comment><comment><USER25> Please, Java EE here is an offence to our intelligence. There are infoq and other yellow paid content sites for it. Please.

<comment><USER26> What's wrong if that platform is improving . There are so many really good java libraries to play with .

I for instance wanted to build a webapp with the StanfordNLP .

<comment><USER25> Oh, come on, the creator of this site has a whole essay about languages (or platforms) which has been made to solve actual problems faced by its creators or to solve other people's problems (to be sold to greater fools). There is no better example of second approach than J2EE.

To Google J2EE sucks is not that difficult. My favourite quote from Bell Labs folks - "whole encyclopedia could be written about what is wrong with J2EE". Rebranding doesn't matter - it is the same crappy mess of piles of unnecessary layes of ugly, redundant abstractions.

Don't be hypocrites. It sucks.

<comment><USER27> > it is the same crappy mess of piles of unnecessary layes of ugly, redundant > abstractions.

This is straw-man stuff based on an old view of who uses Java and when.

I've programmed in a lot of languages - C++, Java, Objective-C (with a NeXT, of course) and the trendier functional, meta-programming languages.

One of the cliches (and truisms) of C++ is that you only use a subset. This is what people are doing with Java these days. You can bring up high-performance web services using only a thin layer of J2EE and throw away all that cruft you mention. In my company we do it all with a third-party web layer and just SE (is it just J2EE you're agin - are you fine with SE?).

What Java brings to the table is a well-sorted high performance JVM, copious free and high-quality third-party libraries and a clear and easy to use syntax. Yea, it's quite verbose, but, as you know, you spend more time reading code than writing it...

<comment><USER25> OK. This your choice and your conditionig.

I, if you allow me, would still hold an opinion that web services could be made without "everything is an object" meme or "static typing which catches errors". There are Arc and Erlang and even Common Lisp based solutions.

Also I would argue that Golang is a much better alternative, which has been creayed, in part, because J2EE sucks.

Straw man or whatever you would call it.

<comment><USER3> > because J2EE sucks

It does, but Java EE is great! :)</comment></comment></comment></comment></comment></comment>


Unsolved Problems in Physics (2003) - <AUTHOR> http://www.oglethorpe.edu/faculty/~m_rulison/top10.htm# <comment><USER2> Another question related to the first; is the fine-structure constant actually constant? [http://en.wikipedia.org/wiki/Fine- structure_constant](http://en.wikipedia.org/wiki/Fine-structure_constant)

</comment><comment><USER3> The Wikipedia article [1] is better than this one, IMO.

1: [http://en.wikipedia.org/wiki/List_of_unsolved_problems_in_ph...](http://en.wikipedia.org/wiki/List_of_unsolved_problems_in_physics)</comment>


Programming with RISC-V Vector Instructions - <AUTHOR> https://gms.tf/riscv-vector.html <comment><USER2> Wow, this RISC-V ISA truly is quite brilliant.

Having worked on PPC, with a RISC Instruction set the difference between 128 bit vs 256 bit instructions really does eat up the limited opcode space for really trivial differences.

Also having written say one fast version of vector array copy can now just be used between different vector version lengths, no need to write different versions to exploit expanded width, and same goes for many vector compiler optimizations.

How does this work with physical registers as opposed to architectural ones? Typically in PPC the 128 bit and 256 bit ones were architecturally and physically non-overlapping so you did get extra registers when you go from 128 to 256 or 512. I don't know if that's the case for RISC-V here.

But yeah, brilliant looking forward to more!

<comment><USER3> The 32 variable length registers don't overlap; the register grouping is orthogonal to the length of each register.

The grouping... sounds "interesting" to implement in an OoOE design. Most obvious would be to have the instruction decoder emit one uop per register in the grouping... but that means vsetvli would have to stall decoding until it's resolved. But that also seems to be how element size is set, so that would kill the performance of mixing precision in the same kernel...

Well I guess it could assume the grouping doesn't change and flush the pipeline if it did. But you still don't want to be mixing kernels with different groupings...

<comment><USER4> It's absolutely essential to be able to change vsetvli in the middle of a kernel.

It is expected that in a future expanded Vector instruction set with 48 bit or 64 bit opcodes the vtype will be explicitly encoded in every instruction and can change every instruction.

Right now the vsetvli is setting (slightly) persistent state that affects following instructions. You're allowed to put one before every vector instruction if you want, without significant execution penalty -- there will be a little, from extra instruction fetch and decode -- but similar to doing, say, an integer add between each vector instruction.

The natural implementation even now is to have each vector instruction pick up the current vtype when it is decoded and carry it along with it through the pipeline as a few extra bits of opcode.

You certainly don't want to have any stalls or pipeline flushes just because the vtype changes.

</comment></comment></comment><comment><USER5> I highly recommend Lex Fridman's recent podcast with David Patterson [1] for anyone interested in learning about the history of RISC, computer architecture, and also interesting predictions re: Moore's Law.

[1] [https://www.youtube.com/watch?v=naed4C4hfAg](https://www.youtube.com/watch?v=naed4C4hfAg)

<comment><USER6> Like a year ago I only learned about Patterson, because I got a (random) book out of my uni library about computer architectures. His books are fascinating. He is fascinating.

</comment></comment><comment><USER7> Irrelevant i know, but:

> For the purpose of our example, the exercise is to write vector code that > efficiently converts a BCD string such as { 0x12, 0x34, ..., 0xcd, 0xef } to > a corresponding ASCII string (e.g. { '1', '2', '3', '4', ..., 'c', 'd', 'e', > 'f' }). On a high-level, a solution involves separating the nibbles into > single bytes and then converting each byte to the matching ASCII value.

If your BCD string has 0xcd or 0xef in it, it's not BCD, is it? It's "binary coded hexadecimal", or as we usually call it, "binary".

This code converts a byte string to its hex representation. It has nothing to do with BCD, right?

<comment><USER8> > _This code converts a byte string to its hex representation. It has nothing > to do with BCD, right?_

BCD to ASCII is a strict subset of bin to hex ASCII; and in this case there is no runtime cost to supporting both. This also covers nybble-coded octal.

<comment><USER9> Describing something that produces a hex string from binary as "BCD to ASCII" is unusual and misleading. And claiming that 0xcd and 0xef are BCD is simply incorrect.

</comment></comment></comment><comment><USER4> This is a reasonably good example (except it's binary to hex, not just BCD to hex), but it's from the start of the year and based on the already out of date version 0.8 draft spec.

A couple of things need to be changed to bring it up to date:

      -vlbu.v v16, (a1)
      +vle8.v v16, (a1)
      +vzext.vf2 v16, v16

      -vsb.v v24, (a0)
      +vse8.v v24, (a0)

I'd also probably make (or at least compare the speed of) one more change:

      -vrgather.vv v24, v8, v16
      +vmsgtu.vi v0, v16, 9 # set mask-bit if >9
      +vadd.vi v16, v16, '0' # add '0' to each element
      +vadd.vi v16, v16, 'a'-0xA-'0', v0.t # masked add to correct A..F

That's basically the same code as he used to create the lookup table in v8 for the vrgather. I think it might run faster on many machines, and also the vrgather would fail on the smallest machines (with only 32 bits in each vector register) if anyone modified the code to not use m8 (LMUL=8).

For more explanation see my post at [https://www.reddit.com/r/RISCV/comments/i5alno/programming_w...](https://www.reddit.com/r/RISCV/comments/i5alno/programming_with_riscv_vector_instructions/g0p6rz0/)

[NB slight cheat -- those vadd.vi immediates are too big to fit .. you'd actually need to put them in integer registers and use vadd.vx, which can be set up outside the loop]

</comment><comment><USER10> Is there a big penalty for context switching to another process that uses a different vector length?

<comment><USER11> It's really funny that you asked this because I clicked on the RISC-V "V" extension spec on GitHub, and literally the only thing I read was "you can't context switch to another CPU with different vector lengths".

EDIT: Non-layman wording

> Thread contexts with active vector state cannot be migrated during execution > between harts that have any difference in VLEN or ELEN parameters.

[https://github.com/riscv/riscv-v- spec/blob/master/v-spec.ado...](https://github.com/riscv/riscv-v- spec/blob/master/v-spec.adoc#2-implementation-defined-constant-parameters)

<comment><USER10> Very cool, thanks.

</comment></comment></comment><comment> lachlan-sneff Whoa, that's a well designed ISA.

<comment><USER12> The vector extension yes, the C (compressed) extension is unusual: you can have 32 bits instructions aligned on 16bit, while nice for code density this means that the implementation is much more complex than Thumb/MIPS16 extensions..

<comment><USER13> RISC-V has a variable-length instruction encoding. It's just that unlike x86 you can easily tell from parsing a few bits the length of every instruction in the stream, and like MIPS etc most "ordinary" instructions are 32 bit.

BTW if unaligned 32 bit instructions are a concern there is a Compressed NOP (C.NOP == addi x0, x0, 0 but without RAW hazards).

<comment><USER12> C.Nop isn't a solution, if you implement a compliant RISC V processor with the C extension you need to handle all the possible case, for example an instruction straddling several pages.

</comment></comment></comment></comment><comment><USER14> Would something like this be possible for FPUs as well? I see there are currently three separate extensions for floating point instructions varying by register widths.

<comment><USER15> The vector extension includes FP instructions too

</comment></comment><comment><USER16> What's the deal with the group sizes here?

vsetvli t0, a6, e8, m8 # switch to 8 bit element size, # i.e. 4 groups of 8 registers

vmsgtu.vi v0, v8, 9 # set mask-bit if greater than unsigned immediate # --> v0 = | 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 |

If vsetvli results in groups of 8 registers, then surely vmsgtu.vi only affects v0 which is the first 8 registers? The following 8 are in v8 if I understood the previous writing correctly.

<comment><USER17> As I understand it, it affects the whole "group" at v0, and it's only storing 16 8-bit elements which likely fit in the full 8 registers you have grouped together. (That is, it's not storing one element per register, I'm not sure exactly how the layout is but it's probably packing them somewhere along the lines of, if the register size was 64 bit, v8 would be 0x0706050403020100, v9 would be 0x0f0e0d0c0b0a0908, and then v0 would be 0x0101010101010101 and v1 would be 0x0000000000000101.)

(What personally don't understand is the point of these register groupings; they seem a bit extraneous and error prone, as you already can set the element size and you have to guess at the minimum vector register size…and why wouldn't you always just set them to 8? I think ARM's SVE does something similar but it fixes the size for you essentially.)

<comment><USER18> AIUI the group size is a trade-off between the number of independently addressable vectors and the vector size. If the group size were always set to eight then you could only have four distinct vectors, whereas a group size of one would give you 32 vectors. You want to use the largest group size you can to take full advantage of the hardware, but you're limited by the number of vectors required by your algorithm. This is orthogonal to the size of an element within each vector.

The current RISC-V "V" draft standard requires the vector registers to be at least 32 bits wide (VLEN ≥ SLEN ≥ 32)[1], so a 128-bit vector with 16 8-bit elements may require up to four registers. Setting the group size to eight is a bit extravagant, but since the total number of elements was limited to 16 any extra registers in the group will not be affected. With a smaller group size you could potentially use those registers for something else.

P.S. I think you have the mask bits reversed. The instruction is "set if greater than" so v1 should be 0x0101010101010000 and v0 should be 0x0000000000000000 (corresponding to the |1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0| state shown in the article for the combined v1:v0 register group).

[1] [https://github.com/riscv/riscv-v- spec/releases/tag/0.9](https://github.com/riscv/riscv-v-spec/releases/tag/0.9)

</comment></comment></comment><comment><USER19> Pretty cool. For RISC-V experts out there, can someone explain to me the purpose of the proxy kernel? I can't seem to wrap my head around it. Why not just run a normal kernel (e.g. Linux) on top of the emulator? What advantages/disadvantages does the proxy kernel have?

<comment><USER20> It gives you a hardware testing environment with system calls for reasonable amounts of wall clock time.

If you're simulating actual hardware, e.g., a Verilog description of a RISC-V microprocessor compiled to a cycle-accurate simulation with Verilator, your simulation rate is going to be ~10KHz. You can write useful tests with the Proxy Kernel (or something like it) that run in ~1 million instructions (minutes of wall clock time) while still getting full system calls like printf. However, booting Linux is out of the question (days of wall clock time). Running bare metal is useful, too, but you don't have system calls there.

If you're doing fast RISC-V virtualization, like on QEMU, or doing emulation on an FPGA, you're running at >1MHz and running a "normal kernel" like Linux is totally tractable. However, it would be foolhardy to expect to jump from hardware design to immediately booting Linux.

<comment><USER21> Nitpick: printf is is a libc call.

<comment><USER4> ... and that libc code (usually NewLib[nano]) formats a buffer then calls write(2), which pk provides.</comment></comment></comment></comment>


Apple, Microsoft, and Google hold 23% of all U.S. corporate cash - <AUTHOR> http://www.geekwire.com/2016/apple-microsoft-google-hold-nearly-quarter-u-s-corporate-cash/ <comment><USER2> The US tax code heavily punishes companies that hold cash in a variety of ways. The motive is to subsidize banks by requiring companies to rely on short term debt for operations. It's the biggest and most lucrative of subsidies for the banking industry and laundering such subsidies is how many bankers get rich. For instance, Mitt Romney made his money that way.

(The main tax code subsidies here are the business interest loophole and the accumulated earnings tax)

Usually a big company holds almost no liquid assets and hands profits out to bondholders and shareholders or invests actively to grow, even in unrelated businesses. That's to avoid tax penalties.

Apple, Google, Microsoft, and the like are holding masses of cash outside the USA. Gridlock in Washington and a stagnant and irrational corporate tax code make it very hard to bring cash home to invest for American companies. Therefore you find tech companies with few overseas expenses exporting services and accumulating cash they can't bring home.

(The main tax issue here is the non-territorial tax system in the USA. All other developed countries have a territorial system.)

Other countries can see this is a problem that kills jobs and wages at home so they don't do it. Obama has tried to fix it and Trump's main tax proposal is aimed at it, but both parties in Congress block change. Republicans don't want to hand Obama a victory and would rather hand out goodies to donors with loopholes than simplify taxes and Democrats just want to punish profitable multinationals even if it kills jobs.

And Wall Street is very mercurial with credit for tech companies, especially growing ones, so they can't rely on the banking subsidies.

The result is that tech giants are the only companies with a reason to accumulate cash so they overwhelmingly are the only ones that do so.

In summary, this is a government regulatory policy that creates cash rich tech companies. It's a result of bad decisions on Capitol Hill, not on Wall Street or Sand Hill Road. It is not a stock valuation or corporate strategy issue.

<comment><USER3> I'm trying to figure out where to start with this comment.

1) What is "business interest loophole"? Do you mean carried interest, which really only applies to investment partnerships and not corporations?

2) The purpose of the Accumulated Earnings Tax is right in the IRS description of it - "The purpose of the accumulated earnings tax is to prevent a corporation from accumulating its earnings and profits beyond the reasonable needs of the business for the purpose of avoiding income taxes on its stockholders." It is generally in society's best interest for companies to reinvest their money in the economy and citizens rather than hoarding it, hence the tax. Or do you disagree with that?

3) I have yet to see anyone take the "we should let corporations bring back their money tax-free" argument beyond just saying that it would somehow magically create jobs. Can you provide a rational breakdown of how this is supposed to work? Apple brings back $200B to the US and then... what? Hires people it doesn't need? Builds factories that won't be profitable? If a company thinks it can make more money by investing in on-shore resources, then it will invest. Instead they're hoarding cash because they don't have anything good to spend it on. The only argument I can see is that ROI for on-shore use of funds has to be higher than the repatriation tax rate to justify bringing the money back, but so what? That just means that we're in an economic situation where no one thinks they can get a 35% ROI on hiring more people or spending more on R&D at the scale of multiple billions per year.

<comment><USER4> 3.) I'll take that position. Tax repatriation holiday please!

Money is only useful at a macro scale if it's in motion. These cash reserves are worthless if they just accumulate. Better to take them back into the US, and be distributed as dividends to shareholders or through buy backs than to leave them.

If that money could be invested internationally it would, and so basically the mere fact that the money is sitting idle in the bahamas is a huge vote of no- confidence in the other economies of the world. Every once and a while you used to see the big companies buy stupid expensive office space in London and other European/asian cities that were experiencing real estate growth. We see that less now probably because they are already well allocated in that asset class.

Now you may be thinking, well if it's better to take the money home then leave it sitting there for a decade, consider the following. If you repatriate the money and pay anywhere near the 35% corporate tax rate to do so you have to invest it in the US for at least 5 years with a 10% rate of return before you get back to what you had held internationally. Outside the fact that this is basically impossible to do with hundreds of billions of dollars... Absolutely no quarterly venture (wall street) is going to be allowed to do that, they will be sued into oblivion by their shareholders just for trying. Especially since the US regularly holds repatriation holidays. The only tenable long-term solution to this problem is to not tax corporate earnings from overseas. Tax them through individuals later, but not the corps. Otherwise Apple could exist in one form or another for 100 years with 100s billions of dollars just sitting overseas. Of course people who don't understand economics will argue that this is defrauding the US gov't of legitimate tax revenue, but my argument is the US is not the jurisdiction in which this money was earned, so it should see none of it.

<comment><USER3> I think you missed the point of my #3. This is like the underpants gnomes in South Park: Step 1: Tax-free repatriation Step 2: ???? Step 3: Economic pizza party

What is step 2 here? Is there any actual evidence that repatriated funds would go back to productive things in the US economy? When we had a tax holiday in 2004, it was a complete failure for jobs and development [1], and only helped shareholders and executives. Is that really what we want? For that matter, is there even a guarantee that companies would distribute all the money back to shareholders in a way that would lead to personal income tax?

Your argument that the money is not being spent overseas implies lack of confidence in other economies is exactly what I'm saying - there is no productive use of those funds available, or else the holders would already be spending it. I would personally much rather some portion of that money go back to the government for expenditure directly on public projects than have all of it go who knows where when it gets repatriated.

I and may other people opposed to tax-free repatriation are perfectly aware of the economics and simply disagree with you on desired outcomes. My opinion is that if you don't want to pay US taxes, don't do business in the US. If you want the benefits of the US labor force, infrastructure, education, legal and military protection, etc. then you should be willing to pay taxes to enjoy those benefits. What other countries do or do not do is irrelevant, as are the desires of necessarily selfish investors. I also disagree that tax-free repatriation is the only long-term solution available - it's just the one you personally like the most. For example, there's nothing stopping Congress from enacting laws to tax stockpiled funds.

[1] [http://www.wsj.com/articles/SB100014240529702036331045766237...](http://www.wsj.com/articles/SB10001424052970203633104576623771022129888)

<comment><USER5> If they repatriate the cash, the company can

a) pay dividends, which are taxed on the recipient

b) buy back shares, generating a capital gain for the seller, which is taxed

c) park it in a bank, which boosts reserves and indirectly stimulates the economy

d) make alternative investments such as corporate venture capital, real estate etc

I personally think there should be no corporate income tax. Instead, taxes should be paid by citizens when the money hits their personal bank account.

Yes, there would be opportunities for evasion by people incorporating themselves. No, I don't know what the ultimate solution to that is.

BUT... right now there is an army of accountants and lawyers who are able to charge companies like Apple exorbitant fees because the potential tax savings is so huge. If you have a $100 million tax liability, using accounting tricks to lower that liability by $20 million justifies paying a lot of lawyers.

If those gains were distributed instead of taxed at the corporate level, suddenly those lawyers will find they have to service a thousand, probably tens of thousands of customers to realize the same payoff they get from one big customer. That changes the economics of tax evasion considerably.

<comment><USER3> Thank you for laying out the likely outcomes. My issue is two-fold: 1) we're basically saying "I guess 15% (dividend and long term cap gains tax) at most (probably less) is good enough" instead of the 35% they would normally pay, which just generally seems like bad thinking to me when it comes to setting policy, rather than finding a different solution. And 2) I'm not aware of any evidence that b, c, and d are likely to have a positive outcome for the US as a whole rather than for individuals. (b) assumes that capital gains will be realized and taxed within a short-term time frame, (c) assumes that banks are actually in need of reserves, which I don't believe is true [1], and (d) assumes that alternate investments would actually be pursued that aren't being funded right now, which I'm also not sure is true to any significant extent (ex. Google already has Tech Stars and spends mountains of cash on real estate)

[1] [https://twitter.com/dallasfed/status/433408941947494400](https://twitter.com/dallasfed/status/433408941947494400)

<comment><USER6> That "15 percent" dividend tax is _on top_ of venture returns that are taxed at 35%. It's like if people were saying you have it easy because you only pay 5% taxes, without mentioning that you have to pay regular income/FICA taxes, before it hits your bank account, and the 5% attaches the second you start to spend it.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> There was a very interesting article in the NY Times earlier this year about this subject:

"For other industries, though, a dollar of savings is worth a lot more than itself. For pharmaceutical companies, a dollar in savings is worth $1.50. For software firms, it's even higher: more than $2. This means that investors are behaving as if they trust the executives in these industries, like Larry Page of Alphabet, to be smarter about using that money than the investors themselves could be. ...

"Why? The answer, perhaps, is that both the executives and the investors in these industries believe that something big is coming, but — this is crucial — they're not sure what it will be. Through the 20th century, as we shifted from a horse-and-sun-powered agrarian economy to an electricity-and-motor-powered industrial economy to a silicon-based information economy, it was clear that every company had to invest in the new thing that was coming. These were big, expensive investments in buildings and machinery and computer technology. Today, though, value is created far more through new ideas and new ways of interaction. Ideas appear and spread much more quickly, and their worth is much harder to estimate."

Source: [http://www.nytimes.com/2016/01/24/magazine/why-are- corporati...](http://www.nytimes.com/2016/01/24/magazine/why-are-corporations- hoarding-trillions.html?_r=0)

The implication is that big tech companies see some very disruptive trends coming down the pipeline, but they're not sure which specific idea or ideas should take most of the investment, and they're hedging their bets by hoarding cash for now. Maybe when the AI/automation revolution kicks into high gear, we'll finally see what they spend all this money on.

<comment><USER8> I like Warren Buffet's phrasing as cash is a call option with no expiration date. Standard finance theory is that companies should either invest the cash themselves, or if they can't find good investments, they should return it to their shareholders so the shareholders can deploy it elsewhere. However if the management of these companies thinks that the ultimate return on the cash they hold will be greater _even given the time value of holding a zero-return investment for years_ then it makes sense to wait to deploy. I happen to think they're wrong and that they'd be better off returning most of the cash to their shareholders but that's for the respective boards to decide.

<comment><USER9> Something I don't understand: why would a company ever return cash if they don't have to? Isn't it better to have it than not?

<comment> tuna-piano Think of the "company" as fictitious. All the company is, is the combined assets of shareholders. So the shareholders decide if they would rather have the cash in the corporate entity or in their own pockets.

</comment></comment></comment></comment><comment><USER10> I think Occam's razor applies here: It's not that management teams have big plans for the money, or that they "believe that something big is coming, but... they're not sure what it will be". It's that they don't know what to do with the money and there isn't much pressure to disburse it.

Cash hordes are reflected in the share price, so investors can monetize the cash by selling a few shares. If you're a "buy and hold" investor you don't want a dividend because that's a taxable event.

</comment><comment><USER11> When a company like Apple has $200B in "cash" overseas, where do they put it? I mean, is there literally a giant vault of physical cash or gold somewhere or do they buy 6 month T-Bills or just put it all in a private bank?

BTW: $200 billion in $100 bills weighs 2,200 tons.

<comment><USER12> It is all a legal fiction. The money is deposited with banks in NYC, so it's all here in the USA. Legally it is deposited in the accounts of "Apple Ireland", "Apple China", etc even though those subsidiary companies are wholly owned by Apple Inc, a US company.

To be clear I'm in favor of a lower corporate tax rate and making up the difference in taxes on those worth >$10 million. Money sitting idle in bank accounts doesn't even do any good for the "capital" part of capitalism, let alone put money in consumer's pockets. It represents a sink, reducing the amount of money available to the rest of the economy.

(A separate issue is the fact that accumulating money into corporations or the top 1% of individuals is bad for the economy as economies function on consumer spending, either external or internal. You get much greater leverage by taking money away from them and giving it to consumers, who will immediately spend most of it and ultimately putting it back into corporate/1% pockets anyway. The ultra-low taxes and stagnant wages in the US are a form of killing the golden goose).

<comment><USER13> > I'm in favor of a lower corporate tax rate and making up the difference in > taxes on those worth >$10 million.

Doesn't that mean that each rich person would just start a tiny personal "corporation" that owns a lot of very nice things and gives its one employee free access to the company car, yacht, mansion, etc?

<comment><USER14> This is done _all the time_. Even on the smaller scale with middle/upper- middle class families; they have LLCs or some other legal avenue that owns their car, their suburban home(s), etc. It's not just the rich people who do this - it's not hard for someone who's just intelligent to make the right choices in both protecting assets as well as diversifying their wealth.

</comment></comment></comment></comment><comment><USER15> Is it apropos on HN to link to cite one's own comment? I made a comment about this a month or so ago that I think is relevant: [https://news.ycombinator.com/item?id=11592455](https://news.ycombinator.com/item?id=11592455). Essentially, I think this cash hoarding is motivated by fear, fear of being "disrupted" and becoming the next RIM or Palm or whatever: in a dominant position in year N; dead as a doorknob in year N+3. And this is the toughest kind of fear, because it's perfectly reasonable but can still get pathological when taken too far.

</comment><comment><USER16> >Excluding the energy sector, tech comprised 40% of non-financial free cash flow in 2015, similar to the 42% average since 2007.

This writeup is a bit sensationalized. They try to argue that "tech" is the biggest by ignoring the actual two biggest. This is like arguing that men are the majority population, 100% of the remainder after women.

<comment><USER17> Well, what are the numbers for the others sectors: energy and finance? Would like to know for the sake of comparison.

</comment></comment><comment><USER18> As someone not an US citizen, it is because US are running into 2016 election that we have to be constantly reminded by the media there are lots of US companies holding huge amount of cash overseas?

The amount of these article popping up is just getting silly. And yet not a single one has proposed a (fair ) solution to the problem / US Tax Code. Everytime I just end up skip read the article or go straight to HN comment for some of the best thoughts around.

</comment><comment><USER19> Maybe a stupid question, but why doesn't Apple start a vc fund?

<comment><USER20> They don't need it?

<comment><USER21> Define 'need'. I assume the average VC fund returns more than treasuries or nobody would do it.

They could even give the companies they invest in preferential treatment at Apple (instant iOS approvals, secret APIs, whatever) to give them a competitive edge.

</comment></comment></comment><comment><USER22> What is meant by cash in this context? I'm assuming a lot of it is invested in financial vehicles with varying degrees of risk and liquidity? It's not just sitting in a savings account earning 0.01% interest, is it?

<comment><USER23> The cash is sitting in a bank account in NYC under the name "Apple Ireland" or "Apple China", or invested in US stocks, bonds, etc with US brokerages, or lent to "Apple Inc" with corporate bonds.

</comment></comment><comment><USER24> So those 3 could cover federal spending for almost 2 weeks.

</comment><comment><USER25> Once again the boatloads of cash story rears its head. Except that the figures stated are inflated, most certainly in the case of Apple who already spent a good amount of that cash by issuing debt to pay for dividends and stock buybacks.

</comment><comment><USER26> Don't share holders want some of this money back? 200 billion in cash just sitting there is not doing anyone much good.

</comment><comment><USER27> I am curious as to how links on HN work. I am certain i posted this very link two days ago. Does HN now allow multiple posts of the same link?

<comment><USER28> Yes. I'm on my phone so I can't find a link right now, but I've seen multiple people mention that it's OK to re-post until it hits the front page. Sorry for the lack of sources.

</comment></comment><comment><USER29> I feel like I read a similar headline with the same figure but it was 23% among technology corporations cash...

</comment><comment><USER30> One more reason why I endorse [https://en.wikipedia.org/wiki/Basic_income_around_the_world](https://en.wikipedia.org/wiki/Basic_income_around_the_world)

</comment><comment><USER31> When I hear the phrase corporate profits, I think of the fact that they aren't really profits at all. According to a UN report, the amount of environmental damage the companies caused is on par in dollar terms than the profits they made. They just exchanged something for something else, except that the global population has to eat the losses in the form of pollution. Nothing is free in this world unfortunately, not even corporate profits.

[http://www.theguardian.com/environment/2010/feb/18/worlds- to...](http://www.theguardian.com/environment/2010/feb/18/worlds-top-firms- environmental-damage)

<comment><USER32> Even hunter-gatherers have HUGE impact on the environment. They often set fires to clear underbrush in forests (making hunting easier) or wildfires in grasslands to drive herds of animals (again for hunting). They move around and introduce new plants, they divert streams, they drain swamps, etc, etc. pre- industrial man was responsible for the extinction of dozens (if not more) species. The idea that man's impact on nature is recent is laughable. We have been shaping our environment for tens of thousands of years.

Thing is, other animals do this too. The canonical example is beavers and their dams. But recent detailed study of ecosystems have shown that the impact of wolves is astounding. The same is probably true for most other species.

There is no "balance of nature". Nature is dynamic and ever changing. Man is a part of that dynamic. Our advantage is that we are aware of our impact and can manage it.

Wealth from industrialization allows societies to take steps to clean up previous damage. The rivers and lakes of wealthy nations are cleaner now than at any time in the last 100 years. The US and western europe have more forest cover now than in 1900. The air is MUCH cleaner too. All that requires the wealth that industrialization brings. Poor people are simply too worried about feeding their children to demand that there are pretty forests and parks to go camping in.

<comment><USER33> > Wealth from industrialization allows societies to take steps to clean up > previous damage. The rivers and lakes of wealthy nations are cleaner now > than at any time in the last 100 years. The US and western europe have more > forest cover now than in 1900. The air is MUCH cleaner too.

The price of cleaned up Western countries is that the dirty stuff (mining rare earth metals, mining for coal and iron, ore processing, lots of chemical production processes, producing oil) shift from Western countries into poorer countries. Africa suffers from massive pollution due to uranium mining, China has a truckload of environmental problems, and India isn't far behind.</comment></comment></comment>


Make a website in an hour with Django and Pinax - <AUTHOR> http://rogueleaderr.tumblr.com/post/21769585437/setup-a-basic-publicly-accessible-website-in-an-hour

<comment><USER2> I have been looking at deployment possibilities for django on a number of platforms such as heroku, gondor, and openshift. I follow how to get a site set up, but I am wondering how much your costs rise as you scale. For example, I am interested to know rough answers to these two questions, for any of the above-mentioned platforms:

\- About how much traffic can the free tier on these platforms handle? I ask, because I am wondering how soon you outgrow the free tier when you are demoing an MVP.

\- When you outgrow the free tier, what is the next price level? For bootstrapping, it would be nice if it didn't have to go from free to ~$200/month. (I am just thinking of the cost of having a dedicated db on heroku.)

I know the exact answers depend on things like db size, but considering a small db (not a photo sharing site), can someone offer rough answers to these questions?

<comment><AUTHOR> Hi Japhyr, I actually haven't taken this method through to deployment and scaling, so I can't personally answer the cost question (though hopefully someone else can.) I know that it's not super difficult to get Django running off an EC2 server, and unless your server is doing anything particularly complicated, you can probably get away with using Micro instances which are free for light use. Also, costs of scale are one of those "good problems" to have, since if you're getting to the point where you have enough traffic to be expensive, you'll have a much (relatively) easier time raising capital to fund your ongoing operations.</comment></comment>


Dubai: How not to build a city - <AUTHOR> http://www.thestar.com/news/insight/article/613885 <comment><USER2> Dubai is a city built on the backs of maltreated migrant workers. There is little glamour for these mainly South East Asian workers who earn $1 a day. The difference in lifestyles between the labor camps these workers live in (people literally living out of massive shipping containers) and the fast cars, over-sized houses that expats own couldn't be any greater. The companies that bring the migrant workers over have been accused of purposely forcing them to stay in the UAE by misplacing their passports and delaying salary payments. The UAE has also had its human rights record heavily criticized by the UN and human rights organizations. So despite lavish expat lifestyles and impressive urban growth, there are plenty of non-economic reasons why Dubai is an example of how not to build a city.

<comment><USER3> Couldn't the same thing be said for NYC? Look at living conditions in a turn- of-the-century NYC tenement, and you'll be appalled. Millions of immigrants arrived with literally nothing except the clothes on their backs and toiled for pennies a day so the fat cats could have their mansions on 5th avenue. Yet most people don't say that NYC is an example of how not to build a city...

<comment><USER4> Yes, but those immigrants had a better life and more opportunity in America than their homeland. They came and stayed voluntarily.

<comment><USER3> I don't really know the details of Dubai's labor situation, but aren't they also there voluntarily? I know laws are different in the Middle East, but I thought slavery was still illegal in the UAE.

<comment><USER5> If you're laid off or fired, and you owe money, you will be stopped at the border from leaving. It takes about a week for the notification from your employer to get into the financial system, which is why many westerners drive to the airport and leave their cars in the parking lot with the keys in them - never to return to Dubai.

<comment><USER3> That doesn't sound all that different from turn-of-the-century America, where debtors were often forced to work _for their creditor_ until the money was paid off. I guess the difference is that now it seems like everyone's a debtor, but if you choose to live by the standards someone from a century ago, you have much _more_ freedom and purchasing power, not less.

(Seriously, when did living debt-free go out of style? If my grandparents wanted something big like a summer home, they _saved_ for it, they didn't go out and get a mortgage.)

<comment><USER6> The difference is that in America's history employers worked in good faith (aside from slavery). In Dubai (and to some extent, China) migrant workers are defrauded and deceived by their employers out of their rightfully due pay.

</comment></comment></comment></comment></comment></comment></comment><comment><USER3> Wasn't it just a year ago that Dubai was held up as a shining example of modernity in the Arab world? The future of cities in this interlocking global economy? Its reliance on tourism and finance was lauded because everyone knew that oil in the Persian Gulf would eventually run out. And a lot of people I know wanted to go to Dubai (my sister actually wanted to be spend a year working overseas there) just to check it out.

Dubai's problem is that they've built an economy that's almost entirely pro- cyclical. Tourism does well when the economy booms, but dries up when it busts. Finance does well when the economy booms, but blows up when it busts. So it's no wonder that in the biggest downturn in 80 years, Dubai's economy is hurting.

But that doesn't mean that Dubai's an example of how not to build a city, any more than Silicon Valley or Detroit are examples of how not to build a city.

<comment><USER7> For me, the city looks like if they were trying to build already complete adult human, then turn it on and hope it will live, without having to be born and then grow up to that form. Which is something I'm quite afraid of, because it usually works badly.

<comment><USER8> You've... already built a complete adult human?

</comment></comment></comment><comment><USER9> Wonder if the architects considered the "ruin value" of what they were constructing. May become relevant sooner than anyone would wish.

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

</comment><comment><USER10> The article didn't point out any arguments or facts to back up the theory that "you don't build a city like this", except for the opinion that "you just don't". Too much emotions, too little reason. The city may in fact be in decline but for the whole other reasons: decline in tourism and financial markets. These are the factors that influence it badly, not the way it was built. And if the city keeps declining it's because tourism, technology and finance dived too deep and weren't able to keep the city afloat, not because "it was built badly". I could understand such wording in an emotional blog post, not in anything even resembling serious journalims.

</comment><comment><USER11> One thing is striking: An AMERICAN (I ssume) says thatcity built for driving. I am afraid to even imagine when a guyfrom have-a-car-or-starve-because-of-no- foodstores-in-walkable -distance country make such statatements, what a place it is.

<comment><USER6> He's Canadian

</comment></comment><comment><USER12> What makes this a suitable post?

<comment><USER13> What makes this an interesting comment?

Someone posts your same urgent insight on every tenth story that makes the front page... Come on folks, please read the guidelines:

 _"Please don't submit comments complaining that a submission is inappropriate for the site. If you think something is spam or egregiously offtopic, you can flag it by going to its page and clicking on the "flag" link. (Not all users will see this; there is a karma threshold.) If you flag something, please don't also comment that you did."_

<http://ycombinator.com/newsguidelines.html>

<comment><USER12> Yeah. I read them and occasionally re-read them when I start thinking that the explanation for WTF these stories make it to the front page might be that the criteria have changed.

<comment><USER13> You can improve your experience without polluting the comments.

Consider writing a greasemonkey script that filters domains that contain content that you don't want to see, then share the script with the community.

<comment><USER12> That is beyond my abilities since, as a previous poster said, this is a potentially interesting topic but this article about it is completely uninteresting.</comment></comment></comment></comment></comment>


Why most hedge funds may never be able to beat the market again - <AUTHOR> http://www.cnbc.com/2017/02/07/commentary-why-hedge-funds-may-never-be-able-to-beat-the-market-again.html <comment><USER2> If more and better skilled managers means lower returns does that imply even lower ones for AI?</comment>


An airfoil that will never stall, no matter the angle of attack - <AUTHOR> http://www.propulsivewing.com/ <comment><USER2> Rather than kill the site (as the video is a downloadable 27mb file), I've uploaded it to youtube [https://www.youtube.com/watch?v=frgCQVGOdgs&feature=youtu.be](https://www.youtube.com/watch?v=frgCQVGOdgs&feature=youtu.be)

I'll delete it in a couple of days once this drops off HN.

</comment><comment><USER3> There is a difference between stalling due to high angles of attack, and having too much drag from cross-sectional resistance on an unstalled wing to be able to lift. The practical outcome is the same however, not enough lift to overcome the weight.

<comment><USER4> Or not enough airspeed, which is the most common stall condition real pilots face (caused by a variety of scenarios such as too much altitude, runway approach too slow, etc).

</comment></comment><comment><USER5> Hey guys, I worked on this program as an intern in my senior year of college (2012-2013). There are 5 units of the mini-PW's out right now for testing, and I've built all of them. I can answer any questions you might have and I'll do my best to explain the aerodynamics behind it if anyone is interested!

<comment><USER6> What does the list-to-drag ratio versus AOA curve look like?

<comment><USER6> *lift, sorry about that.

And I'd actually be interested in both the lift curve and the drag curve, as well as lift/drag.

</comment></comment></comment><comment><USER7> The title is a bit sensationalist - _An airfoil that will never stall, no matter the angle of attack_. They did CFD simulations that _shows_ their wing not stalling at extreme angles of attack (not at any angle).

Also, they are talking about a _wing_. An airfoil is a wing section not the actual wing.

<comment><USER8> An airfoil describes the stall characteristics of the wing.

Camber, chord, edges, angle of attack .. these are all described by the airfoil and are key to flight control, including stall handling. How an airfoil gets itself out of the stall state is of great interest to designers.

Airfoils which utilize the Magnus effect (as in this case) do have different stall characteristics. Its not incorrect to refer to the airfoil in that context.. a bit like calling a soccer ball not just a sphere but also a wing, too, which in fact it is to most airfoil designers .. ;)

</comment></comment><comment><USER9> Not entirely correct as turning it over 90 degrees does not apear to work.

</comment><comment><USER10> I'm reminded of some of the other attempts to utilize the Magnus effect:

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

[https://www.youtube.com/watch?v=_BDCcSR1pJ4&list=PLB851DC7DF...](https://www.youtube.com/watch?v=_BDCcSR1pJ4&list=PLB851DC7DF2995130)

[https://www.youtube.com/watch?v=acXvl-8xrBM](https://www.youtube.com/watch?v=acXvl-8xrBM)

Very interesting flight mechanics are possible when designers try to utilize this effect, and its exciting to see this little-known technology come to the forefront as more and more folks enter the 'drone-fleets are the new network' age ..

</comment><comment><USER11> This reminds me of the Boeing YC14 blown wing (1). It looks a little like a fully structure-contained implementation of that concept.

(1) [http://en.wikipedia.org/wiki/Boeing_YC-14](http://en.wikipedia.org/wiki/Boeing_YC-14)

<comment><USER12> Kind of reminds me of a lot of ekranoplan designs.

</comment></comment><comment><USER13> I wonder how it performs when there is power failure? Does it glide well?

<comment><USER5> Absolutely not. To glide well, you need big ol' wings. There's a concept called aspect-ratio, which is basically the relationship between the wingspan (left to right) and wing chord (front to back). High AR = better for gliding. Conversely, and in the case of the mini-PW, when you have virtually no wingspan, you aren't going to glide very far. We affectionatly referred to power loss as "brick mode".

<comment><USER13> So i suppose you could design a trade-off or balance. Increase AR while reducing the size of the mangus effect airfans.

<comment><USER5> Well ideally we wouldn't lose power to begin with but yes. The PW is essentially a powered wing to begin with, so losing power leaves you with just a wing. The real design benefit here is that with the powered wing, you can make the win extra thick. And I can tell you, that internal space is huge. Plenty of room for any kind of payload.

</comment></comment></comment></comment><comment><USER14> Cool, is fairly similar to the fanwing configuration. [http://www.fanwing.com/](http://www.fanwing.com/)

</comment><comment><USER15> Could a (2010) be added to the title? The website don't seem to have been updated since then

<comment><USER5> The website hasn't been updated in a while, but I assure you that development is still going on.</comment></comment>


Energy Breakthrough could Store Solar Power for Decades - <AUTHOR> https://www.bloomberg.com/news/articles/2019-11-04/moth-poulsen-s-energy-trapping-molecule-could-solve-solar-storage <comment><USER2> Real paper, I think (from the linked principal researcher): [https://research.chalmers.se/publication/511209/file/511209_...](https://research.chalmers.se/publication/511209/file/511209_Fulltext.pdf)

The claims are reduced somewhat:

> The system features several attractive properties, such as a long energy > storage half-life (40 h) at room temperature,

> Concerning the energy storage efficiency, 0.88% of the solar energy could > theoretically be stored in a neat sample (S5, ESI†). The highest efficiency > that can be expected for a 5104M solution is 0.02%, and for a 2104M > solution is 0.01%

> However, the reaction rate was still too low to be used for macroscopic heat > release purposes

This isn't a commercialisable solution. What this is, is fundamental research. Which often looks completely terrible because it's a first attempt at something. Once the relevant quantum effects are more understood, better candidate chemicals can be developed.

<comment><USER3> Paper: "a long energy storage half-life (40 h) at room temperature" Headline: "Energy Breakthrough could Store Solar Power for Decades"

This is too egregious a misrepresentation by Bloomberg to let slide. Flagged, and I encourage others to do the same.

<comment><USER4> I also generally have trouble taking anything from Bloomberg seriously after the chip story.

</comment></comment></comment><comment><USER5> Oddly enough, there's a chemical with proved hundred-million-year-plus storage capability for solar power, of the general form CnH2n+2:

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

Though in recent decades sourced from naturally-occurring reserves, a practice which raises both suffiency and unintended consequence concerns, these are also produced within the biosphere (though at levels insufficient to present or projected future levels of human consumption), and may be synthesized by artificial means from surplus electricity generation, or possibly, other forms of energy.

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

<comment><USER6> Those require a large deal of work to be reformed into an usable form after storage. Even an year is enough to damage them to the point that they are unfit for many mainstream applications.

<comment><USER5> If directly synthesized in to desired forms, absent an antifungicidal treatment, storage for months to decades is well within reason. Particularly for direct thermal use.

The problem with the really old stuff is that the synthesis process was a bit slipshod and the Designer(s) failed to anticipate the strict quality controls required of present consumers.

</comment></comment></comment><comment><USER7> Articles like this remind me of this house, which was built in Iowa City, IA by a Physics professor (he was my professor for several classes). At the time this house was being built, ISU had an "active solar" research facility, i.e., using all kinds of mechanical means to turn solar energy into heat for homes. Once this house was built, ISU shut down the "active solar" research because, as this house showed, passive solar was just so, so much cheaper and efficient: [https://lhodges.public.iastate.edu/house.htm](https://lhodges.public.iastate.edu/house.htm)

<comment><USER8> It's actually remarkable how much heat a simple "soda can solar panel" or "downspout solar panel" can inject into a room. Add a photovoltaic panel to run a 12v brushless 100CFM fan to stir the air and inject the hot air into the room, and you have a "free" source of 120F air to heat a few hundred square feet. Add a south-facing window shining sunlight onto a dark grey slate tile floor (which acts like heat sink) and the floor will release that heat well into the night. So with two very simple passive elements, one can, to a large degree, supplement a traditional heat source (heat pump, gas furnace, etc.). I've seen this approach work with vacation cabins in the mountains, and RVs, a well as the traditional house-on-the-cul-de-sac.

These heat collectors are cheap and simple to make (<$500), and should be quite reliable, giving a +50 degree F delta with almost zero maintenance and no utility consumption. The only moving part is the inexpensive and reliable fan.

* [https://www.pinterest.com/jayhike/soda-can-solar-heater/](https://www.pinterest.com/jayhike/soda-can-solar-heater/) and [https://lifehacker.com/build-your-own-soda-can-solar-heater-...](https://lifehacker.com/build-your-own-soda-can-solar-heater-5574597)

<comment><USER9> You might enjoy this: [http://www.iedu.com/Solar/Panels/index.html](http://www.iedu.com/Solar/Panels/index.html)

<comment><USER8> Ah, a high-efficiency version of the simple soda can version. Yes, it's of great interest to me. Thank you!

</comment></comment></comment></comment><comment><USER10> Titles with "could" seem strongly correlated with clickbait.

<comment><USER11> Sociologists discover titles with "could" could be correlated with clickbait.

FTFY :-)

</comment></comment><comment><USER12> I think the domestic applications are partly covered by phase change materials: waxes selected for a melting point at the desired temperature. So, for example, you can embed a 23C phase change material in the plaster of a room - giving the room a high apparent thermal mass at the temperature you want it to stay at. A phase change material formulated to melt at 60C can make a hot water tank much "bigger" for coupling with a solar thermal system. These days houses can and should be built with enough insulation that they need very little heating (in most climes).

On the other hand there probably are valuable industrial applications for this sort of material, particularly now that we really want high efficiency. There might even be uses in neighbourhood or utility scale power project.

</comment><comment><USER13> [http://archive.is/Ayuyv](http://archive.is/Ayuyv)

</comment><comment><USER14> > A big unknown is whether the system can produce electricity.

So what! In the winter, demand for energy goes up for heating. With current solar technology, it's impossible for someone to stockpile energy from rooftop solar for winter heating. (Net metering is a numbers game.)

If this works, and I could somehow put panels on my roof or exterior walls that allow me to stockpile energy throughout the year to use for winter heating, it would be "the solution" for me.

Edit: I should add, anyone who sells a "magic thing" that charges up throughout the year, and then provides free heat through the winter, will be extremely rich.

</comment><comment> gene-h Disappointingly this article doesn't provide a link to the research. I think this paper might be it[0], but I am not sure. So in the paper they develop a material that has an estimated storage efficiency of 3.8%(this might be solar conversion efficiency) and energy density of 0.48 MJ/kg. This material is what's called a photochromic meaning it changes color when exposed to sunlight. This is just like those glasses which darken when you go outside. Well it turns out that many photochromic molecules accomplish this by changing or reconfiguring their molecular structure, with azobenzene being the classic example of this[1].

Now as you may know color changing glasses eventually change back to their original color, this is because the color changed state is at a little bit higher energy than the clear state. There might be a bit of a hill it has to overcome before it can go all the way downhill to the lower energy state, but eventually random thermal motion will push it over. So because the color changed state is at higher energy it can release energy as it falls down.

So the interesting thing they show here is that their molecule has a half life or rate at which it converts back to its original form of 10 months, which is a pretty long time. The energy density is also pretty good too, 0.48 MJ/kg is about the energy density of alkaline batteries. And while 3.8% energy conversion efficiency seems pretty bad it's pretty good for photochromic materials of which efficiencies less than 1% are typical. Of course they want to put this in windows and since you can't make the whole window out of this material the energy density of the material+window plastic ends up being ~2.7-3.8 kJ/kg. Of course there's another problem here too. The material they develop is yellow in its uncharged state only converting to clear when exposed to sufficient sunlight, which may not be very attractive to consumers.

[0][https://research.chalmers.se/publication/510123/file/510123_...](https://research.chalmers.se/publication/510123/file/510123_Fulltext.pdf)

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

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

<comment><USER15> table 1 of the paper you reference [0], also lists "N5d" with a half-life of 18 years

I am confused with the different efficiency metrics, one kind of metric hovers around the single digit percentages, but Table 1 lists Φ/photo conversion [%] between 46% and 77% ...

This is substance 2l in the referenced paper at

[https://doi.org/10.1002/chem.201802932](https://doi.org/10.1002/chem.201802932)

<comment> gene-h The single digit efficiency metric is probably overall conversion efficiency of sunlight. The two efficiencies are probably quantum yield, or the efficiency at converting one wavelength of light. We have two because the molecule's tristable. Converting from state 0 to 1 has one efficiency while converting from state 1 to 2 has another. State 0 and 1 also absorb different wavelengths of light. Because sunlight's a mix of different wavelengths not just the two our molecule's active at, the efficiency at sunlight conversion will be different than the quantum efficiency.

</comment></comment></comment><comment><USER16> As soon as I read that eco-something could be used to "coat windows, or even clothing", I just assume it's bollocks.

<comment><USER8> nothing like having a molecular coating on one's clothing storing large amounts of energy, and releasing it as heat. What could go wrong?

However, this type of storage might have promise as a power source for an external combustion engine like the Sterling? [https://en.wikipedia.org/wiki/External_combustion_engine](https://en.wikipedia.org/wiki/External_combustion_engine)

</comment></comment><comment><USER17> Bloomberg. Proceed with extreme caution.

</comment><comment><USER18> Could any physicist speculate on the viability of using the Wigner energy for energy storage.

Questions are, energy density, ease of 'injecting' the energy, how controlled can the release be, anything else.</comment>


TikTok – How the White House Helped U.S. Investors to Raid a Chinese Company - <AUTHOR> https://www.moonofalabama.org/2020/08/tiktok-how-the-white-house-helped-us-investors-to-raid-a-chinese-company.html <comment><USER2> why even bother playing the victim card, clearly this is propaganda page. the loss to byte dance is just the tip of the ice berg . US is comming at china for the theft of trillions worth of intellectual property in the form of lost revenue. Also its a quid pro quo alow us social media companies in china and US will allow Chinese social media companies.</comment>


Noam Chomsky Has 'Never Seen Anything Like This' - <AUTHOR> http://www.truthdig.com/report/item/noam_chomsky_has_never_seen_anything_like_this_20100419/

<comment><USER2> Although I am a bit sceptical of Chomsky's approach to linguistics (he seems to leave out the messy human side of language, reducing it to something easier to study), I think that his other life role as someone who deeply distrusts power is useful to society. I am not saying that I agree with him most of the time, but we need more people like him who have the courage to step outside the box and take a cool hard look at what is happening in the world.

</comment><comment><USER3> _Noam Chomsky is America's greatest intellectual._

What is the point of this "article", or posting it on HN?

<comment><USER4> See: <http://en.wikipedia.org/wiki/Noam_Chomsky>

Wikipedia says he's one of the most highly cited people in the world.

I 'know' him better through his ideas of grammars (Chomsky Normal Forms) and their applications to bioinformatics.

The article itself is interesting, a bit wordy. Chomsky is a well known academic in the sense that his work on linguistics is seen in many places from Psychology to Computer science.

The fact that he's also anti-government is new. I liked one line from the article (towards the end of page 1): What I talk about are the liberal intellectuals, ... They tell us how far we can go. They say, 'Look how courageous I am.' But do not go one millimeter beyond that. At least for the educated sectors, they are the most dangerous in supporting power.

If nothing else the article is a bit thought provoking and I think most people could use a bit more thinking in their daily lives.

<comment><USER3> When you say "The fact that he's also anti-government is new", I have to assume you mean the fact that he's opposed to the current administration, as Chomsky's opposition to the US government in general is long standing.

In my eyes, the article reads largely as a hagiography. The only "news" I see in it is that Chomsky compares the current situation in the US to the Weimar Republic. I am not an expert on either pre-WWII Germany, or modern US politics, but it seems contradictory to me to compare the US today with the effectively powerless Weimar government while simultaneously decrying the US as the most powerful government in the world. While there may be some parallels in terms of public attitudes, to me this seems like a more literate example of Godwin's Law (except not on Usenet).

You mention that Wikipedia states that "According to the Arts and Humanities Citation Index in 1992, Chomsky was cited as a source more often than any other living scholar during the 1980–92 period, and was the eighth most-cited source." This seems like an argument to authority. It occurs to me that the period chosen ('80 - '92) corresponds to the Reagan and Bush administrations, and that these citations may therefore reflect the amount of discourse among administration opponents as much as they reflect Chomsky's intellectual stature.

To be clear, I would be just as unhappy about someone posting an article on HN reporting that Pat Robertson thinks that the Obama administration is massing troops in Cuba for a "socialist" overthrow of the US government. That would be "thought provoking" too. Of course, the bias among HN reviewers (and comments) makes this pretty unlikely. My own preference would be that political stories on HN have at least some technology angle, and a modicum of reporting, rather than just editorializing (for example, the recent stories about Wikileaks have both).

</comment></comment></comment><comment><USER5> Noam Chomsky is America's greatest intellectual ????????

Never mind Richard Feynman, the guy who thinks socialism works and apologizes for Stalin, Mao and Pol Pot's murdering tens of millions is America's greatest intellectual.

<comment><USER6> I am not sure if your comment about apologising for Stalin / MAO etc is aimed at Chomsky or not. But you should be aware that Chomsky is an anarchist socialist and not a Marxist. He has written and spoken some of the most illuminating and critical stuff I have read on the revolution in Russia.

Chomsky has never supported any Marxist dictator.</comment></comment>