Show HN: Eclipse Deeplearning4j - <AUTHOR> https://projects.eclipse.org/proposals/deeplearning4j <comment><USER3> For anyone that hasn't checked out Deeplearning4j yet, and think that Python is the only place where the cool AI stuff happens, you really should check this project out!

Their Gitter channel is absolutely kicking, where lots of the actual devs, including CTO and co-founder Adam Gibson, hang out and /really/ answer /any/ question - I find their responsiveness stunning! (I discussed and reported a minor improvement to the config builder, and it was implemented - literally - the very next day!)

Just recently found the library myself, and I found it very refreshing to be able to utilize my decent Java competence in ML, instead of continuously having to hammer my way through limited Python experience to get things done. (Python also have limited multi-threading capabilities which I found annoying when wanting to do some larger ETL stuff "inline". Python also gives me a strong feeling of "this is a scripting language!": It is super fast and expressive when your needs are met by the vast set of (native) libraries - <USER2> when I just want to do something myself with raw code, things gets slower. I also love a properly typed language, which python obviously isn't!)

Do notice that with dl4j, you still get full-on GPU acceleration via Nd4j, which is a "NumPy-style" multi-dim array system.

<comment><USER4> If you prefer Java over Python, some of the other more popular frameworks also have Java bindings. E.g. TensorFlow or CNTK.

<comment><USER5> I'm not exactly sure I'd call those "bindings". If you want an actual compelling competitor to us because we're not a big name, at least look at mxnet. That's more credible.

It's incredible that folks insist on this still. Both those frameworks aren't even going to be aiming for any level of integration with the JVM.

At least take a look at what makes us different.

A big one being: [https://github.com/bytedeco/javacpp](https://github.com/bytedeco/javacpp)

We own the whole stack here and integrate pretty deeply. This has lead to some great performance improvements.

We aren't just "java bindings" but offering a lot more in one place than the other frameworks.

Also: I highly doubt you've even looked at the numbers.

We're actually doing pretty well in the rankings: [https://twitter.com/fchollet/status/915366704401719296](https://twitter.com/fchollet/status/915366704401719296)

We're not #1 but we have an actual user base.

I think a lot of our upcoming things like our python bindings where people don't have to "see" java and integrations with spark will win over some folks at big companies..maybe not DL researchers which is also fine. Our upcoming api _will_ be like pytorch though.

Regardless: I'm not sure the framework will matter long term given that model import and things like ONNX are becoming more common.

Finally, I'll just say this: It doesn't hurt the ecosystem to have more competition and different interests than research.

Every single person who says this usually dismisses us for 1 silly reason or another ranging from:

1\. Not a "big name" (despite being put in production by a ton of them)

2\. Not a lot of research papers (yeah no crap we're not a research framework, we do have publications though!)

3\. They see java bindings and can't tell the difference between a full application suite

and a tensor lib with java bindings generated by SWIG

4\. Usually a PHD student at a university who hasn't worked at a large company and doesn't understand my actual target audience

<comment><USER4> It sounds like you got a bit angry because of my comment? Sorry, I didn't meant to mean it negative in any way, esp nothing negative about DL4J. I just thought that it might be a good contribution to the discussion to have a more complete overview of the DL options in Java, as it was not mentioned here. Of course, there are advantages and disadvantages for each. E.g. TensorFlow might be more well-known but its Java bindings are lacking a lot of the tools which you have in the Python bindings. Also, despite the programming language, each framework underlying design has its advantages and disadvantages.

I know some people / companies who do the research and training in Python with TensorFlow and in production for inference they use the Java bindings (or C++). That works quite well.

Also, competition never hurts.

<comment><USER5> Oh no problem! I guess what I was getting at with my reply. We get dismissed all the time by the folks doing research (understandly, they wouldn't use us)

I guess what I was elaborating on (partially for clarity of other readers who _really_ don't know the difference, partially as a response to your comment here) was the fact that they really are very different things.

My problem with these things being posted as "alternatives" is: deep learning is just 1 part of the suite.

When you want to do anything with these other frameworks, usually python is somewhere in your workflow.

That isn't my only complaint though: Dl4j "the deep learning framework" is 2 parts. Nd4j (the tensor library directly comparable to TF/mxnet,..) and dl4j the deep learning DSL which is higher level like keras.

As for your point about folks using C++/Java bindings: Even "production" ends up being nuanced there. TF has different deployment modes with almost no out of the box tooling for very common deployment scenarios. That includes things like kafka, spark,..

We take an angular js like approach to this. Rather than have deployment as an exercise left to the reader, you get imports from different frameworks, a clear way of doing everything from ETL to setting up a server, and a way of actually debugging/controlling things from the JVM rather than using some SWIG bindings with a black box.

For example, our tensor library has deep integrations with the java gc which allows reference collecting as well as in java memory management system for cpu and gpu all for handling management on the gpu.

You need to control those things if you say: run things on a tomcat server. You don't get that granularity when just deploying some c++ bindings. There's a reason I emphasize having the full runtime tooling available to you (not just integrations).

So yes: In general when I see someone just off hand pitching these things, I clarify it. As I said in my previous comment: A whole application suite is a very different approach than a "tensor lib with autodiff and some java bindings".

People have different use cases and different requirements. I'd at least like a fair comparison side by side though..

</comment></comment></comment></comment></comment><comment><AUTHOR> The interesting thing about this process is timing. You shouldn't really contribute a code base to a foundation until it's mature enough.

I think any group of people developing an open-source project wants it to develop quickly and with healthy governance. Joining any foundation, whether it's Apache or Eclipse or Linux, sends a signal that they're mature, thinking about governance and want to make sure the product develops in a way that agrees with the community.

But sometimes governance can get in the way of speed. What we found talking to Eclipse was that we could get the governance and keep the speed. Which means we'll be able to keep pushing DL4J forward without confusion.

Fwiw, here's the DL4J site: [https://deeplearning4j.org/](https://deeplearning4j.org/)

Here are the repositories: [https://github.com/deeplearning4j](https://github.com/deeplearning4j)

And the Gitter community: [https://gitter.im/deeplearning4j/deeplearning4j](https://gitter.im/deeplearning4j/deeplearning4j)

<comment><USER6> DL4J strikes me as reasonably mature anyway, although you probably know more about that than I do. :-)

Does this mean anything specific for Skymind as the commercial vendor behind DL4J?

<comment><AUTHOR> That's nice of you. :-) It's mature now, which is why this was the moment to move it into Eclipse.

It means that DL4J & suite is now vendor neutral. On the Skymind side, we will continue to develop all those open-source projects, so you can expect a lot more cool stuff to come: interpretable models, better ETL, Keras as our Python API, vertical-specific apps for EDA, Robotics...

<comment><USER6> Very cool. I'm a DL4J fan. I actually did a talk at Tri-JUG a couple of weeks ago, on real-time machine learning and BPM, which featured DL4J as part of the tech stack. I'm also working on a SaaS offering around AI/ML and plan to include support for DL4J at some point. Hopefully at some point I can get to a place where I can make some useful contributions to the project.

<comment><USER5> Thanks! Please share what you're doing and we'll promote as much as we can.

</comment></comment></comment></comment></comment><comment><USER7> The amount of work we've done this year with Deeplearning4j on performance has been much higher than previous years. We brought DL4J up to par with community standards while maintaining the advantages of Java. I think what a lot of people don't realize is that a ton of effort has been made toward ETL and integration tooling.

It's very difficult to train on multiple GPUs while maintaining performance of ETL. ETL is a scary hidden bottleneck.

I'm very interested to see how Eclipse can continue to push development. I think the people who will especially benefit from this are devops/production teams operationalizing data science.

<comment><USER8> As someone who is mostly working in the field of data warehousing, ETL has a very meaning to me (Extract, Transform, Load). Is this the same as you're talking about ?

<comment><USER7> Yes, so one of the core libraries within the DL4J project is datavec which is ETL-focused. One key problem that we discovered - and fixed - was that reading and transforming data for training could bottleneck a multi-GPU process. You spend a lot of $$$ on a deep learning computer, but making the library performant enough so that you could load data at the same rate the GPUs could consume it was challenging. This scales to about 4+ GPUs (depending on datatype) and we're building a datavec server so this can scale much larger. There are still good returns if you clean and transform your data and presave to disk, which helps with large machines such as a DGX. However, other bottlenecks still apply (which we are solving right now).

I hope that answers your question. I consider the process of extracting records, transforming them, and loading them for training to be "ETL". I understand ETL also applies to other data consumption.

*I should also note that if you wanted to use datavec for ETL and do not wish to train a deep learning model, it is quite useful for columnar data.

<comment><USER9> Why mix ETL and training?

I am using TF, and in my workflow I first do all ETL in some separate process, dump all training/validation data into TFRecord file, and then my training program consumes it. Clear separation of concerns without any performance penalty.

And I can iterate over training logic with various parameters as many times as I want without touching ETL.

<comment><USER10> But what if your training logic needs a change in ETL - You have to iterate on ETL too. So doing it inline makes a lot of sense. Microsoft has done something like this with SQL server + R offering. Personally I find the MS approach quite appalling. You have to load your model in a PLSQL script, so the ETL + running the model is seamless, but imagine debugging and oh forget about multi GPU support.

<comment><USER5> The part of the ETL you'd want to "crystallize" is just the transformation from raw data to feature vector.

Beyond that, you already "change in ETL" when you experiment. I'm not sure how this changes anything.

Out of nowhere you've sprinkled in "multi gpu support" which I'm not sure is relevant here. Do you mean as part of training?

We handle the gpu bits for you. All you do is define your transform logic, it runs on one of our backends like spark and then when you go to allocate a tensor boom gpu.

There's no special compilation or process needed to make this happen.

Dl4j supports multi gpu training out of the box. All you need to do is uses our parallelwrapper module.

We can also do distributed training with gpus on spark as well (yes this includes cudnn).

You've also for some reason decided to attach an open ended coding library where you can do whatever you want to a database?

Baked in ML in the database servers is already notoriously bad. The whole point of what we're doing is to provide a middle ground.

Data engineers have to do this anyways.

<comment><USER10> Adam, sorry guess I was not clear. What I said was that the MS Sql server + R strategy of baking in ML in PLSQL is appalling and doing something like what you are doing with DL4J is perhaps the right approach. The multi GPU support rant was for SQL Server + R, not DL4J.

"You've also for some reason decided to attach an open ended coding library where you can do whatever you want to a database?" I didn't catch this part.

<comment><USER5> Right so I think we were agreeing that how database servers bake in the ML is a bit weird and not the way to go.

The "open ended coding library" is datavec here. Comparing them here is only really semi valid. The processes there are definitely brittle.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> This is super, super cool!

Love the work you guys have been putting out. How do you generally see the community mindshare in space especially with [https://techcrunch.com/2017/02/13/yahoo-supercharges- tensorf...](https://techcrunch.com/2017/02/13/yahoo-supercharges-tensorflow- with-apache-spark/) (you guys are also mentioned there)

You guys run this at scale, but Yahoo's TensorFlowOnSpark does look very enticing with its "Easily migrate all existing TensorFlow programs with <10 lines of code change" punchline

<comment><USER5> Doesn't matter. We don't need to be the #1 framework. We're going to be focused on model import and integrating with the big data ecosystem.

None of these frameworks you're mentioning integrate properly, are really supported by an actual community, and don't get meaningful updates.

The biggest problem you run in to pretty quickly is maintenance. TF and spark both update quickly.

Every time someone has attempted to do a "TF on spark" they don't add ETL, proper JVM integrations (proper control of cuda and memory management from the JVM), there are also usually strange interactions with JVM/python run times.

Also, please don't ignore the rest of dl4j. We have a whole suite of tools in there. It's not just a matrix lib with autodiff like TF and co is.

TF in its own way is adding some of this stuff like TF records and some of their readers, but it's not going to add a lot in the way of things like connectors to kafka and a lot of the big data ecosystem.

They've basically added HDFS..that was about it.

Dl4j is also significantly easier to deploy. It's just a jar file or zip file..you don't need a blob of c++ just to run a model.

<comment><USER11> So just trying to understand this - does dl4j become the essential middle layer if someone wants to run Tensorflow on spark seamlessly?

Because it seemed on the surface that you guys replaced tf. If you guys offer a better ecosystem where tf and spark work together (but don't really rip out tf), then it is even more awesome.

<comment><USER5> Not just TF: pytorch, keras,mxnet,.. Like I said: We won't be the #1 framework data scientists use. There's a ton of churn in that space yet.

Granted, a ton of it is TF. Google is doing an amazing job now.

We're trying to be a moderate middle ground.

TF and pytorch and anything in python tends to be an interface.

Core logic still operates in C/C++.

That's great when you want speed, but you end up missing the benefits of the JVM (the tooling is great for monitoring and things folks need at scale).

So we do everything via JNI where we push down the math one block with minimal overhead if any.

That and if you want to write production code, you don't need to push logic down to c. You can do something JVM based instead, which gives you kotlin,scala,clojure,..

<comment><USER11> i think this aspect of dl4j gets lost in the overall message. For me, this is much more powerful - "use dl4j if you want to have a seamless experience running tensorflow/keras/mxnet on spark".

Because right now, it looks like it is tensorflow vs dl4j.

<comment><USER5> Honestly hard for me to care..They can both compete as well as integrate.No offense here but model import existing will become a common thing as things like ONNX become standard.

We play up what's unique about Dl4j anyways. It's right in the name. We're square focused on the JVM.

We also hedge our bets against spark. Most of our logic doesn't even run on spark.

Spark is just a facilitator..it's not where anything that matters runs. We could just as easily use flink or apex here too. Those are also JVM based streaming engines.

We can't overplay spark because most of our deployments won't even be with spark. We don't even use spark in our own production inference tools. We just deploy as a microservice.

<comment><USER11> Well interesting parallel you give here !

I have personally been campaigning for ONNX to merge/leverage Apache Arrow ([https://news.ycombinator.com/item?id=15195658](https://news.ycombinator.com/item?id=15195658)). It probably makes sense for the efforts to build on top of each other.

YMMV ;)

<comment><USER5> Integrating with arrow is on our bucket list as well. We plan on integrating with their tensor data type and format.

I feel like you're trying to cross 2 worlds that shouldn't be for arrow/ONNX though. You're trying to map a neural net description language to a columnar format..that doesn't make any sense to me. In our case, our runtime will understand both but for different reasons though.

We will import the format for our neural nets and integrate with arrow for our ETL -> tensor pipelines.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER5> For those wondering, why the heck are you guys java:

Our tensor library has a python interface in the making: [https://www.slideshare.net/agibsonccc/strata- beijing-2017-ju...](https://www.slideshare.net/agibsonccc/strata- beijing-2017-jumpy-a-python-interface-for-nd4j)

Our goal with this will be then to write side by side benchmarks with the other libs that people can easily run. We know a lot of folks from python land won't jump over and we don't expect them to. The hope is that we're equivalent and can integrate better with a big data cluster.

Dl4j is not trying to be TF. When I started dl4j 4 years ago, it was theano and torch as the primary frameworks.

I wrote it for deployment in to production apps and for the hadoop/spark ecosystem.

We will continue that going forward at the eclipse foundation as well as using dl4j in our product.

Please check out the oreilly book as well (currently #2 on amazon right next to the goodfellow book):

[https://amazon.com/Deep-Learning-Practitioners-Josh- Patterso...](https://amazon.com/Deep-Learning-Practitioners-Josh- Patterson/dp/1491914254)

Email in profile if there's any specific questions.</comment>


Meetings, Version 2.0, at Microsoft - <AUTHOR> http://www.nytimes.com/2009/05/17/business/17corner.html?hpw=&pagewanted=all <comment><USER2> I hope he gets more than slides before the meeting. He should get an essay, maybe with graphics.

There is nothing as mind numbing as communication via bullet point in powerpoint.

</comment><comment><USER3> Wow, hes almost.... likeable.

(Of course, it would have been funny if the interviewer had put the standard movie disclaimer -- No chairs were harmed in the making of this interview).

</comment><comment><USER4> Requires login BTW</comment>


Solr: The Most Important Open Source Project You've Never Heard Of - <AUTHOR> http://blog.smartbear.com/open-source/solr-the-most-important-open-source-project-youve-never-heard-of/

<comment><USER2> I've switched from Solr to ElasticSearch. They're very similar, but ES is easier to maintain and has some nice additional features. They are both based on Lucene and are both fantastic projects.

</comment><comment><USER3> I find it hard to believe that there are many devs out there who are interested in search yet have never heard of Solr.

<comment><USER4> You can be interested in open source and not know about it. (Especially if you're thinking, "Wait, _this_ is one of the most in-demand skills?! Maybe I should find out about it!")</comment></comment>


Mercedes G 63 AMG 6x6 - <AUTHOR> http://vidinterest.com/video/4777/mercedes-has-introduced-this-sixwheeled-beast-to-haunt-your- Mercedes has introduced this six-wheeled beast to haunt your dreams. <comment><USER2> Coming to the valet parking area of a Moscow Night Club near you.</comment>


System-measure: A management tool for software dev/digital marketing - <AUTHOR> http://systemmeasure.com <comment><USER2> An easy way to visualize outcomes, with a simple interface. Worth a look.

</comment><comment><AUTHOR> Thanks - UI was the primary consideration in its creation.</comment>


A Self-Appointed Teacher Runs a One-Man 'Academy' on YouTube - <AUTHOR> http://chronicle.com/article/A-Self-Appointed-Teacher-Runs/65793/

<comment><USER2> I love the article, just about anyone can come forward to make a difference! Especially with the Internet as the platform and so many tools such as YouTube available to everyday users. And I dun think he started out with a big bang too, with no funding and short video lectures are short—about 10 minutes each. Slowly and steadily.

One thing why I love this model is that it allow for mistakes to be made. Try doing that in a corporate environment. :X With each mistake he made, he get interactions from its students/viewers. Ultimately this makes students/viewers more engaged with the material and more connected with him.

To think that overall, he's collected about $150,000 in donations and makes $2,000 a month from ads on his Web site. I love it! Got a passion, what are you waiting for? The barrier for entry is almost non existent!</comment>


GNOME 3.0 Rescheduled for September 2011 Release (April Fool's?) - <AUTHOR> http://www.gnome.org/press/releases/2011-04-gnome-3.0-rescheduled.html

<comment><AUTHOR> With GNOME 3.0 being such a major (and controversial) redesign, there are plenty of people who would say that it should be delayed for further refinement of the design. Most notably, Ubuntu has spurned the new GNOME Shell in favor of their Unity desktop environment. However, GNOME's got a history of not second-guessing or reconsidering their UI changes just because they're controversial. Also, the crazy talk about a GTK4 is a dead giveaway.</comment>


Are U.S. phone landlines in danger of being disconnected? - <AUTHOR> http://www.rawstory.com/rs/2013/11/28/are-u-s-phone-landlines-in-danger-of-being-disconnected/

<comment><USER3> In response to: [http://www.foxnews.com/tech/2013/11/20/fcc-announces- plans-t...](http://www.foxnews.com/tech/2013/11/20/fcc-announces-plans-to- upgrade-century-old-phone-system/?intcmp=obnetwork) [http://www.fcc.gov/blog/ip-transition-starting- now](http://www.fcc.gov/blog/ip-transition-starting-now)

It's all conjecture on my part, but I'll take a stab.

Deploying a next-generation telecom infrastructure is an interesting challenge - but one that is underway as we speak.

Verizon chose Fiber to the Premises (FTTP) (FiOS). AT&T chose fiber to the node (FTTN) (U-verse) and is rolling out VDSL. CenturyLink (Qwest) has also picked FTTN and is rolling out VDSL as well.

These rollouts are slow moving - but will continue to use copper for the foreseeable future - FTTP is the long term future still I think - but we keep being able cram more and more data over a pair - and with pair bonding that number keeps rising. For now at least, most voice will still be served over fairly long loops from the CO - AT&T is rolling out VoIP over U-verse - Verizon is doing the same over FiOS, CenturyLink has not yet marketed VoIP to residences - but I suspect it will come in a while (when more of their footprint is covered). Fiber to the Node has the advantage of having fiber near the customer when the cost of repairing the legacy copper exceeds the cost of putting fiber in to each house.

Largely, based on my research - the new VoIP circuits are often being served off TDM offices that have upgraded been to packet switching. Both Lucent and Genband offer a way to upgrade their TDM switches to a packet based core (Lucent 7ESS or 7 R/E and Genband C15 Session Controller).

In short - the article was full of hyperbole - If you look at the underlying blog post - it doesn't mention the removal of copper, copper will play a big part in last mile service delivery for likely another 20-30 years - in the end is about replacing the TDM based network core with packet switching - <USER2> process that has been going on for almost 20 years at this point. With proper engineering a packet based system is every bit as (if not more) reliable as TDM based one.

That said, it raises some real questions - what of universal service? How about the CLEC market - will they be granted access to the new networks which are replacing the old?

Only time will tell.</comment>


Paul Graham is still asking to be eaten - <AUTHOR> https://medium.com/@girlziplocked/paul-graham-is-still-asking-to-be-eaten-5f021c0c0650#.9jjyl1xmi <comment><USER2> I don't agree with this essay. But I ALSO don't fully agree with Paul Graham's essay[1] either, and I think this one has something useful to offer.

Paul's essay said (and obviously I'm compressing a LOT): "People complain about income inequality. But some income is not part of a zero-sum game, and we'd lose some benefits (like startups) if we banned income inequality. Let's attack poverty instead of attacking income inequality."

But, while I think poverty is a problem (and the bigger problem), I ALSO think that extreme income inequality (or, more accurately, extreme wealth inequality) is a problem. Albeit a DIFFERENT problem, but also a problem.

This essay helps a little in expressing the reasons. Roughly, I would say "Having 10x or 100x wealth inequality isn't harmful. But having 1,000,000x wealth inequality creates some serious problems. And I simply don't believe any arguments that this level of inequality is 'fair' or 'earned'."

[1] - [http://paulgraham.com/ineq.html](http://paulgraham.com/ineq.html)</comment>


Facebook leads the pack tracking you online - <AUTHOR> http://natereport.com/2013/11/facebook-leads-the-pack-tracking-you-online/

<comment><AUTHOR> The top 1M website homepages were downloaded and analyzed to determine the % that use Facebook, Google+, and Twitter sharing buttons. The raw html is cached and easily searchable so let me know if there are other interesting analyses that can be done.

<comment><USER2> How many sites have a like or share button, but don't automatically run javascript to report each visit?</comment></comment>


Google AI Challenge: Winner post-mortem and source code - <AUTHOR> http://a1k0n.net/blah/archives/2010/03/index.html

<comment><USER2> The interesting subtext of this competition is that to an extremely good approximation, everyone who was interested enough to write a competitive entry used C/C++, even though the organizers went to great lengths to support as many languages as possible (e.g. Haskell, Scheme, etc.) This is with a small self-contained problem where performance wasn't a main difference between entries, and fast prototyping and experimentation could be _extremely_ valuable.

What I take from it is being more convinced that the claims of dramatically increased productivity from other languages, in practical terms, are at best extremely overblown. If this isn't a practical problem where a Haskell or Scheme programmer could be competitive using advantages of those languages, it really makes me question what is.

<comment><USER3> You know, I didn't even once mention the language I used. Realtime constraints and searching speed were the driving factor here; you have to return a move in under one second. I didn't want to risk GC pauses, and I'm not good enough with Haskell to guarantee I'm writing fast code. Otherwise I probably would have used something else, but I don't consider it all that important. Really, there wasn't anything too complicated data-structure-wise to do. In fact it does next to no dynamic allocation. I wanted to use destructive updates for speed when doing a backtracking search on a map. The hard part was just implementing various recursive algorithms, and C++ didn't really get in the way of doing it except that it would have been nice to have multiple return values.

I did have some problems throughout the contest with my choice of C++ -- in fact without Valgrind, my entry may never have run correctly. (Turns out one of my algorithms was "escaping" off the border of the map and scribbling in RAM) But hey, I've been dealing with problems like that for more years than I care to count right now.

<comment><USER4> > I did have some problems throughout the contest with my choice of C++ -- in > fact without Valgrind, my entry may never have run correctly. (Turns out one > of my algorithms was "escaping" off the border of the map and scribbling in > RAM) But hey, I've been dealing with problems like that for more years than > I care to count right now.

:D

[http://blog.danielwellman.com/2008/10/real-life-tron-on- an-a...](http://blog.danielwellman.com/2008/10/real-life-tron-on-an-apple- iigs.html)

</comment></comment></comment><comment><USER5> Here is a brief overview and the source code from my 5th place entry. <http://janzert.com/tron/>

</comment><comment><USER6> Now I understand why my bot did so badly (190 out of 800). My iterative deepening algorithm never worked quite right because I didn't have the Voronoi heuristic implemented properly.

This was a great walkthrough, and the contest, even though I was nowhere near winning, was a nice learning experience for me.

</comment><comment><USER7> Great PM. It's always interesting how much thought goes into challenges like this.

Favourite line:

 _I don't have a good formal reason for this, it just seemed intuitively right_

</comment><comment><USER8> Did you do any sort of memoization of the minmax evaluation?

For example the expected value of moving up and left should be the same as the the expected value of moving left then up?

That would cut down the search space some. Of course it adds memory overheads.

You could also memoize the voronoi heuristic if that takes a long time to compute.

<comment><USER3> > Did you do any sort of memoization of the minmax evaluation?

None. Considered it, but didn't really think it was worthwhile. I was mostly focused on having a good evaluation. I know a lot of my competitors did that, though, but without changing the evaluator it is, as I said, self-deluded.

> For example the expected value of moving up and left should be the same as > the the expected value of moving left then up?

That isn't true; that ends up with the wall from the middle move in a different spot.

At any rate, there was a lot I could have done to improve the search speed/depth but I didn't have time, so instead I worked on a better evaluator.

It was pretty interesting -- I would frequently see stronger moves (as best I could tell, after analyzing a losing game) found at shallower levels of search depth discarded in favor of weaker moves at deeper levels. Presumably it assumed the opponent would maximize its Voronoi territory at a time when it was actually a bad thing to do.

<comment><USER8> > That isn't true; that ends up with the wall from the middle move in a > different spot.

Oops yes you are right. They would only be of the same value if the map was symmetrical on the diagonal line going between the first position and the last one.

I wonder it they should be similar (at least in situations where you don't touch walls).

</comment></comment></comment><comment><USER9> Guys, shouldn't we be talking about 11th position? Lisp! Remember?

</comment><comment><USER10> Very interesting article! I would like to know how much time was spent on developing the bot.

<comment><USER3> So would I, but I'm afraid to find out.

Most of the development was done after putting my son to bed and before collapsing of exhaustion at 3am.</comment></comment>


Xenon Death Flash: a free physics lesson (2015) - <AUTHOR> https://www.raspberrypi.org/blog/xenon-death-flash-a-free-physics-lesson/ <comment><USER2> I wonder how often this condition is tested for in the design of circuit boards, especially mission critical items like automobile computers or medical equipment.

</comment><comment><USER3> Xenon Death Flash is the name of my next band.</comment>


Why Twitter's New Security Solution Could Pave the Way to a Future Web of Mashups - <AUTHOR> http://www.readwriteweb.com/archives/why_twitters_new_oauth_matters.php <comment><USER2> I've always had too much on my plate to be twittering, but this sounds like some useful innovation on part of Twitter team. I may just have to twit-up just to experience what they're doing. Unfortunately, article says that the developer-(?beta)-trial offers got snatched up. What seems regrettable in this process is the lack of a real universal standard (with Facebook Connect / OpenID / Twitter OAuth ). And can Microsoft and Apple be far behind? On the other hand: I still hold back from any uber-security process because of the multiplication of the impact of any vulnerability that developed. In particular: (not to disparage the team than developed OAuth) how far do I want to trust a corporation that would recommend "users to give up (to web services, etc.) their Twitter usernames and passwords in order to read and write to Twitter user data." Go phish!</comment>


"Epigrams on Programming", Perlis 1982 [pdf] - <AUTHOR> https://www.gwern.net/docs/1982-perlis.pdf <comment><AUTHOR> Note: this is the full version; the HTML version usually quoted has typos and is incomplete.</comment>


Twitter's New Music App Launches Friday - <AUTHOR> http://allthingsd.com/20130411/twitters-new-music-app-launches-friday/ <comment><USER2> Watchlisted — they have an amazing hacker potential that could make a dint in the triade of Last.fm, Rdio and Spotify, what can I say for HypeMachine, Exfm, 8tracks and all the other youngsters...

There still isn't much to go on with speculation. It is safe to assume though Twitter won't be going near music-distribution — their tap into the existing infrastructure of Digital Music is a great example of "new way of building", which is frankly: "not inventing the bicycle all over again".

I'm wishful.

<comment><USER2> It's actually in Standby: <https://music.twitter.com/> (there is already a HN submission for it — <https://news.ycombinator.com/item?id=5539041>)</comment></comment>


Cal State Will Keep Classes Online in the Fall - <AUTHOR> https://www.nytimes.com/2020/05/12/us/cal-state-online-classes.html <comment><USER2> There are going to be some tough decisions if this becomes widespread. It was one thing to finish off the semester as best they could this spring. It's another thing to knowingly walk into a much degraded school situation for (at least) the fall.

I would think this was particularly true for entering students. On the other hand, alternative jobs will be scarce and other activities (for those who can afford) for some sort of gap year may be as well.</comment>


Boxes and Text (alpha): a super-fast design playground for the web - <AUTHOR> http://boxesandtext.com/ <comment><AUTHOR> New intro video and templates to start from:

Video: <http://vimeo.com/24285343>

Example starting template: [http://alpha.boxesandtext.com/#20110526_024324_73273226bb120...](http://alpha.boxesandtext.com/#20110526_024324_73273226bb12080d)</comment>


Fedora Python 3 Porting Database History - <AUTHOR> http://fedora.portingdb.xyz/history/ <comment><AUTHOR> It's been awesome watching progress being made on Python 3 porting.</comment>


Newspapers Are America's Fastest Shrinking Industry - <AUTHOR> http://www.psfk.com/2012/03/newspapers-shrinking-industry-headlines.html

<comment><USER2> Here's the link to the original article: [http://www.guardian.co.uk/media/greenslade/2012/mar/14/us- pr...](http://www.guardian.co.uk/media/greenslade/2012/mar/14/us-press- publishing-downturn)

</comment><comment><USER3> And yet, online publishing is the third fastest growing industry. Shouldn't (some, at least) newspapers be included in that industry?</comment>


Dear HN'ers, please check out my new startup - <AUTHOR> http://www.masteryourcard.com :) <comment><AUTHOR> Hi guys, for the past few months a friend and I have been working on a web application in our spare time that I hope will really help people put a dent in their credit card debt.

It's still in really early stages (like pre-alpha), and it's still got a bunch of bugs and spelling mistakes, but I was wondering if any of you could give it a once-over and let me know if anything screws up - and of course general feedback would be most welcome.

Its up at my domain now: www.masteryourcard.com. The 'take a tour' feature doesn't work yet, but there's a little summary of what it's all about on the Index page.

Here's a direct link to the Sign-Up page: <http://masteryourcard.com/signup.php>

Its all 100% anonymous, you'll never be asked for your personal or banking details. Even if you don't have any cc debt I'd really appreciate any thoughts you might have.

</comment><comment><USER2> Great idea - few things:

\- You could have problems with mastercard wanting to protect their trademark.

\- Your homepage is pretty heavy on copy. The copy's a bit long on hyperbole, too. Maybe edit down a bit and add a banner pic/video. Webapp homepages are a bit of an art, but good ones are fairly formulaic, too. Lots of examples out there, smashing magazine is always worth a look for inspiration.

I didn't try your app (not really very useful for me), but I think if you fix your homepage, you could convert really well. It's a problem a lot of people could use help with.

<comment><AUTHOR> Thanks gstar - any examples of some good webapp homepages?

<comment><USER2> Yes. Some are more webapp than others. <http://280slides.com/>, <http://basecamphq.com/> (not to my taste, but might be to yours), <http://vimeo.com/>, <http://www.campaignmonitor.com/>, <http://www.checkoutapp.com/>

The list is endless!

</comment></comment></comment><comment><USER3> I checked it out real quick because it actually looked pretty presentable/useful for other folks (I have 0 debt, literally, not even a quarter to a co-worker now). Playing with the test account, there's no way to view the annual interest rate for cards after you've entered them, or a way to change the interest rates. I tried and tried. Also, it's unintuitive to provide options in the edit card screen that weren't there for the initial creation, but to not display fields that were there for the initial creation.

<comment><AUTHOR> ismarc - I will get that fixed, thanks! And if you have a chance to set up a new account (even though you don't have any debt yourself) and give it a proper run through some time I'd love to hear some more of your thoughts on design/usability.

<comment><USER3> I forgot to add above...the reason I was looking for interest rates was I was looking to understand how you were prioritizing what to be paid off. I wasn't sure if it was biggest + minimums first, or if it was prioritized to prevent growth of outstanding balance on all but one that was being paid down, or if it performed calculations based on "best" payoff options (high interest + low balance being prioritized over low interest + high balance, minimizing total interest paid over the period for paying off the balance, etc.).

I would highlight the method, use it as a draw point and explain it somewhere, and have the website be the tool to track progress with the method. That's the catch with credit cards, they have a limit, but the part that is never pointed out is the total amount you really end up paying including interest.

</comment></comment></comment><comment><USER4> You'll have a marketing challenge because of all the scammers and spammers out there. Instead of saying manage your credit card debt, maybe say personal card management software. My initial reaction is that you're looking at a huge disadvantage just because of other non-related evil doers.

<comment><USER5> To be completely honest, my initial reaction was that the site was a scammer, and I only came in here to flag it...

Luckily I realized that it was a real site from reading the comments.

Maybe you could revise the copy to make it less scam-like. I think I was thrown off by phrases like "100% secure", frequent use of "free", all the exclamation points, also the second-person voice "So if you want to say goodbye to your credit card debt.."

Hope these suggestions are helpful.</comment></comment>


Which quadrant does your company/employer fall into? - <AUTHOR> http://www.japansubculture.com/wp-content/uploads/2010/05/chart.jpg

<comment><USER2> I find that I, as a worker, overlap quadrant numbers 2 and 1.

This is from the post entitled "Shafuu 101–Choosing a company for the new generation".

"Learning Japanese business culture is always a hot topic for those looking to deal on this side of the Pacific, but little do many know that Japanese young adults are almost just as confused by the the traditions and hype surrounding the complex world of Japanese shafuu."[1]

[1] [http://www.japansubculture.com/2010/05/shafuu-101-choosing-a...](http://www.japansubculture.com/2010/05/shafuu-101-choosing- a-company-for-the-new-generation/)</comment>


Yugoslavia's thrilling brutalist architecture - <AUTHOR> http://bostonreview.net/literature-culture/anthony-paletta-was-architecture-better-under-socialism <comment><USER2> I have a weird fascination with bruatlist architecture. It seems that everybody else hates it, but I like (some of) it.

It's a bit the architecture of the 60s in general, universally hated in germany. But I find the optimism and futurism very interesting. The often neglected facades have something tragic, like a broken promise of a future straight out of comic-books.

There are definitily bad examples, but I define them by being boring, not brutalist. I think it's an interesting expression of a epoch that's worth preserving and also complements the architecture of the city. Of course, you don't have to preserve everything.

I think the difference is that I don't think a building has to be good or pleasant looking for me to like it (not that there are not example of good/pleasant looking brutalist buildings!).

<comment><USER3> @LeanderK I have facionation with sci-fi / cyber punk movies, but would I like to live in such world? I'm so sure about that.

It's same with the eastern bloc architecture. I'm guessing that you don't live in one of those countries. Believe me it's not that fun at all.

Here is one interesting instagram channel with hand drawings of Belgrade architecture: [https://www.instagram.com/brutalizam_i_renesansa/](https://www.instagram.com/brutalizam_i_renesansa/)

<comment><USER4> Not the OP but I'm an American guy that has been living in ex-Communist countries (Poland, Serbia, Croatia, Etc.) for a few years. I don't mind the brutalist stuff - it beats mindless suburban America any day.

</comment></comment></comment><comment><USER5> Some pictures (besides just the first one) would've been a great addition to this article.

<comment><USER6> The copyrights aren't bostonreview's. There was a MoMA exhibition:

[https://www.moma.org/calendar/exhibitions/3931](https://www.moma.org/calendar/exhibitions/3931)

The matching catalogue:

[https://store.moma.org/books/exhibition- catalogues/toward-a-...](https://store.moma.org/books/exhibition- catalogues/toward-a-concrete-utopia-architecture-in- yugoslavia-1948%E2%80%931980---hardcover/900051-900051.html)

and

[https://store.moma.org/books/moma- publications/bogdanovi%C4%...](https://store.moma.org/books/moma- publications/bogdanovi%C4%87-by-bogdanovi%C4%87-yugoslav-memorials-through- the-eyes-of-their-architect---hardcover/900052-900052.html)

You can however try searching the images using your favorite search machine.

E.g. one monument in Wikipedia:

[https://en.wikipedia.org/wiki/Stone_Flower_(sculpture)](https://en.wikipedia.org/wiki/Stone_Flower_\(sculpture\))

(Probably later image then on the second book cover and center is of the flower is missing, or it's taken from another perspective)

</comment></comment><comment><USER7> I know I'm in a minority, but I have had a long interest and affinity with brutalism since performing in school musicals at QPAC in Brisbane Australia. It's a version of brutalism I think has been softened a bit to make it more appealing to the general population. At the time it was built I believe it was received with negativity, but now Queenslanders love the Southbank precinct.

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

<comment><USER8> The whole precinct is great from the GOMA, State Library and Museum to QPAC.

The only letdown is maybe The Edge which is a bit on the boring side.

As a thought: If you take the white tiles off the Sydney Opera House what do you have?

[https://www.nma.gov.au/__data/assets/image/0008/544652/Opera...](https://www.nma.gov.au/__data/assets/image/0008/544652/Opera- House-under-construction-1400h.jpg)</comment></comment>


The last king of Xinjiang - how-about-this https://www.scmp.com/magazines/post-magazine/long-reads/article/2188216/last-king-xinjiang-how-bertram-sheldrake-went <comment><AUTHOR> Quite an interesting story.

Unfortunately every paragraph is in its own div tag which screws up scrolling and means you can't just use the space bar to page through the text. Why would they go to all that effort just to make the article hard to read?</comment>


Magic in software development - <AUTHOR> http://skilldrick.co.uk/2011/04/magic-in-software-development/ <comment><USER2> I'm going to mention what I think the other big definition of magic is, because I haven't seen it spelled out yet. It's when there is something that is occurring in code but you have no handle on how to follow it back to where the magic occurred. For instance, you write a class that looks something like

        class A:
            thing1 = 0
            thing2 = 0

but somewhere in between your definition and your usage, the class is suddenly an ORM mapping onto a database. As cool as that may be, just looking at class A, you have no idea where to look for that behavior. If you had to subclass something to get that behavior, you could have looked there; if you had to call a function on the class to get this behavior, you could follow it back from there, but when you have this sort of magic you can't. The forensic trail has gone cold.

If you think about it, you can see how the two definitions are related; this sort of magic tends to stay something you don't understand because you don't just naturally pick it up over time, you must make great effort to figure out what the problem is. But it's a different problem with a different solution, certainly.

Generally the two places this magic lives is in some all-encompassing framework, and in the language itself. Perl has numerous magical constructs, some of which turn out to be very difficult to even search for in the docs because it isn't even obvious what the operator is. The flip-flop operator comes to mind: [http://perl-tricks.blogspot.com/2007/01/flip-flop- operator.h...](http://perl-tricks.blogspot.com/2007/01/flip-flop- operator.html) If you encounter that for the first time you can be _really lost_ trying to figure out how the list construction is occurring and it's not at all obvious what to search for.

</comment><comment><USER3> I've seen some backlash against 'magic' lately and it surprised me. 'Magic' doesn't need to be understood to be used.

I don't care how my car works, just that it gets me to work every day. If it breaks day, I have the choice of learning another craft (car repair) or paying someone that already knows it.

Likewise, if I find a bug in Ruby's base code, I can choose to learn enough about Ruby's code to fix it, or write a bug report and let someone else.

I'm not advocating ignorance, I'm saying it's a perfectly valid option given that we aren't immortal.

<comment><USER4> But i do want to learn more about how my car works, theres very little technology at home that i haven't seen disassembled(washing machine, microwave oven, tv, pc, mp3 player, cell phone). I've at least skimmed over parts of the source of a lot of software i use daily(emacs, slime, sbcl, HN). Even though i barely understand the electronics in my tv, and even though I've barely scratched the surface of emacs, i still prefer a more hands-on approach to the things i use in my daily life. I've been like this since a very young age, apparently i didn't have any toys that weren't destroyed by my curiosity :) I had the impression that this was true for a lot of people on this site.

<comment><USER5> As mentioned in the posts abstractions are leaky. You can't drive a car without having a rough knowledge about how it works or how forces act upon your car but if you drive a hybrid you don't have to know how the engines interact nor do you need to know how energy is stored when you brake. If you are interested in that you take a look otherwise you accept that it just works.

<comment><USER3> Actually, all I need to know is the controls and the daily maintenance, like putting gas in it. All the rest can be left to a specialist. I don't have to care anything about why pushing 1 pedal makes it go forward and the other slows it down. Or how turning a wheel changes the direction. Or how various buttons activate various features.

They just do, and that's good enough.

(I'm not actually ignorant of these things, but it certainly wasn't necessary to learn them. I chose to. It hasn't really helped me much, except to satisfy my curiosity.)

</comment></comment></comment></comment><comment><USER6> Nick, I'm reading two really cool books that you might enjoy when you're in a "bottom-up" phase: The Elements of Computing Systems [0] and Computer Systems: A Programmer's Perspective [1]

[0] <http://www1.idc.ac.il/tecs/> [1] <http://csapp.cs.cmu.edu/>

CSAPP is unfortunately a hulking $100 hardback, but the authors have put close to 200 sample pages online. Despite looking a bit fearsome, it's _extremely_ clear. And TECS is just awesome--they take you all the way through building (in a hardware simulator) a simple 16bit computer!

<comment><AUTHOR> Wow, those sound very interesting.

I've been toying with the idea of a series of blog posts (or possibly even a separate site) that give a bottom-up explanation of all the stacks we work with - starting with electronics => circuits => computers => programming languages. It would be a way of teaching myself the material _and_ provide a useful resource to others.

Feels like a lot of work though :P

<comment><USER7> Using TECS to go from NAND gates to assembly is 4-6 evenings worth of work and totally worthwhile. I have a rough idea how compilers and operating systems work but until TECS everything below that was run by little laptop pixies.

<comment><AUTHOR> Haha I love "little laptop pixies" :) That's exactly what I was talking about.

I think I'm going to have to get this TECS book (no pun intended) - it sounds just what I'm after. Need to finish SICP first though :P Not enough hours in the day.

</comment></comment></comment></comment><comment><AUTHOR> Just so people know, I'm not talking Rails magic here - more the idea that there's stuff we don't understand that's going on that to all intents and purposes is magic. In other words:

> anything below your current level of abstraction that you don't understand

</comment><comment><USER8> I hate the phrase "law of leaky abstractions." Where is Joel's peer reviewed article containing a mathematical proof describing leaky abstractions?

<comment><USER2> "Where is Joel's peer reviewed article containing a mathematical proof describing leaky abstractions?"

The proof is so obvious that it borders on a "by definition"... an abstraction is something that has had details removed from it. When those details are still important for some purpose, as they almost always are, your abstraction is leaky. When you suddenly have those purposes, you suffer.

The idea of a _non-leaky abstraction_ is almost nonsensical; if it doesn't leak at all it pretty much _isn't_ an abstraction, it's an isomorphism.

<comment><USER8> The leakiness of an abstraction sounds like its dependent upon the value of the details that are abstracted away. Clearly there are cases where these details don't matter. If those cases constitute 100% of the usages of the abstraction, then the abstraction doesn't leak.

The point here is we're talking about a "principle" of un-intended abstraction leaks, not a "law of leaky abstractions", which sounds more authoritative than it should be and leads to shoddy thinking on the part of people who cite it as some immovable law.</comment></comment></comment>


Most People Are Depressed For a Very Good Reason - <AUTHOR> http://www.violentacres.com/archives/169/most-people-are-depressed-for-a-very-good-reason

<comment> daniel-cussen My hypothesis: Happiness is a response your body gives you when you do something right. Because it's somewhat outdated, it rewards hunting, eating and mating than studying or doing a desk job. It's basically a way your genes judge how well you're doing their bidding, and it is often way off. I see it as a byproduct of achieving other, more worthwhile goals, and not something worth pursuing for its own sake. Your nucleus accumbens is an outdated, selfish judge of success that has too much control over your brain. It's a bad judge.

I ignore it as much as I can. Obviously, I run the risk of being unhappy. It's probably a bad decision, and I might have to give in eventually. I'll see how it goes.

<comment><USER2> Interesting. But how do you define "worthwhile", when deciding what to pursue besides happiness?

<comment> daniel-cussen If your brain and your genes are similar in that they both see continuing to exist as their ultimate goal (because if they didn't they'd stop existing and be replaced by things that are driven to keep existing), you could prioritize immortalizing your mind, if that's what you think "you" "are." That might mean trying to live as long as possible, uploading your mind to a computer, spreading memes as a way of spreading your mind piecemeal, or writing and art as a way to leave a footprint.

Of course, it would be good to get your cake and eat it too; it might someday be possible to calibrate your brain's reward system so it rewards whey protein instead of trans fats, say. It might be possible to stop the negative feedback mechanism that regulates dopamine levels. If you could permanently increase dopamine levels, you could be happy ever after.

</comment></comment></comment><comment><USER3> Haha, VA on news.yc...

Most people who make generalizations about most people make mostly bad generalizations. {yes, the irony}. I agree that widespread depression is a social problem, but those anecdotes about "reason" amount to little. Mental disorders are overdiagnosed in USA, but "their lives suck"? Not that I dispute this entirely, but it's still quite a preposterous assumption.

If one can readily identify a reason for depression then they already fall into a different group of people than those who get depressed for no apparent reason. And this is the depression that _induces_ one to think one's life sucks ,when it seemed fine the day, or hour, ago.

</comment><comment><USER4> There is evidence that suggests otherwise. Specifically, people's happiness levels don't change much over their lives. After a major life event (death of someone close, marriage) happiness levels return back to normal after a year.

</comment><comment><USER5> I'm skiing at SnowBird at the moment and let me tell you: this is one of the true antidepressants. I sense even reading the RTFA could potentially be depressing. :-)

Take care of yourselves boys and girls.

</comment><comment><USER6> Modded up for truthiness.

Funnily enough, I was reading my school report card the other day, and it was full of "inattentive", "lacks zest", "work patchy", and I thought, "Wow, I must have been really depressed."

And then I realized, I was 16 at the time, with bad acne, crappy grades, and a severe popularity problem.

No shit sherlock, my life really did suck. ;-)

<comment><USER7> Yeah, my outlook improved once I had more control over my life and didn't have to live in the socially backward world of public school. Once my social worth became dependent on the actual productive things I did than on my ability to fit in, I had higher self esteem.

That's why I think the US is pretty cool. Just think, in many countries people have to live in public school society for the whole of their lives.

</comment></comment><comment><USER8> Another way of looking at it: _"If a little is not enough for you, nothing is."_

[http://www.spring.org.uk/2007/12/hedonist-philosopher- epicur...](http://www.spring.org.uk/2007/12/hedonist-philosopher-epicurus-was- right.php)

</comment><comment><USER9> I agree with the article.

Yet I wish he'd put more emphasis on how drugs can break you out of a loop of depression (what? i'm a computer scientist. can't I make awful cs puns?), and are very useful as long as the users doesn't become dependent on the drugs for that help.

There's a good article about psychedelic drugs (although I realise the author was speaking about legal drugs) and psychotherapy here: [http://www.sciam.com/article.cfm?id=psychedelic- healing&...](http://www.sciam.com/article.cfm?id=psychedelic-healing&page=1) which I previously couldn't decide whether to submit or not.

</comment><comment><USER10> function DepressionDefined('name') {

//Lets make some equations!

//First lets define depression

var Depression = sad state of mind;

var Super = 10000000000000;

Super + Depression = "super sad state of mind";

//Now geek, special classification

var Geek = obsessive state of mind;

//Add them up...

var Suicide;

Depression + Geek = Super + Depression = Suicide;

//Call advanced functions

Suicide = Permanent solution to temporary problem('name');

//And that returns

Return Suicide; }

Lets see the output

"NAME has committed suicide. SUICIDE is FAIL."

<comment><USER11> Parse error.</comment></comment>


Is D-Wave a Quantum Computer? - <AUTHOR> http://www.eetimes.com/document.asp?doc_id=1326592 <comment><USER2> As far as I know people do not doubt D-Wave's machine is a quantum computer because it is adiabatic instead of the general kind, but because there are doubts that it speeds anything up at all compared to normal computers. If it doesn't, then it might not even be an adiabatic quantum machine.

<comment><USER3> How is it not clear which is more performant?

<comment><USER2> You can read more about that here: [http://phys.org/news/2014-06-independent- group-d-wave-quantu...](http://phys.org/news/2014-06-independent-group-d-wave- quantum-speedup.html)

Scientists claim is that a previous positive comparison was unfair because, "problems designed to run well on the D-Wave Systems were run without optimizing on conventional machines"

</comment></comment></comment><comment><USER4> Short version: It's not a universal quantum computer, but it's a device using quantum mechanical effects to solve a specific type of problems faster than conventional computers can.

<comment><USER5> I hasn't been proven to be any faster than conventional machines under fair testing. It is unclear that it has any algorithmic advantage as of yet.

</comment></comment><comment><AUTHOR> I think it takes a broader definition of "computing" to really answer the question in the end ...

</comment><comment><USER6> Betteridge's law of headlines strikes again.

It's like what teachers and cops tell you in elementary school to do if someone offers you drugs: "JUST SAY NO".</comment>


The Unix reader, Doug McIlroy's annotated guide to research Unix - <AUTHOR> http://pic.plover.com/UnixReader/

<comment><AUTHOR> Doug McIlroy[1] invented pipes, by the way. He's also the author of spell, diff, sort, join, graph, speak and tr. He has written some fascinating papers, like Squinting at Power Series[2].

Thanks Christian Neukirchen for posting this on his blog[3], Mark Dominus[4] for asking for a copy and Doug McIlroy for sharing in the first place.

[1] <http://www.cs.dartmouth.edu/~doug/>

[2] <http://swtch.com/~rsc/thread/squint.pdf>

[3] <http://chneukirchen.org/trivium>

[4] <http://blog.plover.com></comment>


Joel Spolsky and Paul Biggar on SE Podcast #22 - <AUTHOR> http://blog.stackoverflow.com/2011/10/se-podcast-22/

<comment><USER2> I really enjoyed this

(Oldie who happens to have just started writing a Python static type checker... ouch)</comment>


How well does music predict your politics? - <AUTHOR> http://notes.variogr.am/post/26869688460/how-well-does-music-predict-your-politics <comment><USER2> I usually don't like stories along the lines of "scientists correlate brain size with political party" but I liked this one. I'm just not sure there's anything meaningful here.

Most folks in the states know that Democrats are by and large young, city folks. Republicans are older people who live in rural areas (fly-over country). So it's not very surprising that Republicans like country music and Democrats like younger pop music.

Two things stuck out. One, that Pink Floyd listeners trend Replubican! Who knew? Second, that Democrats have a much more diverse taste in music than Republicans (not news, probably, but interesting).

<comment><USER3> Seriously, Pink Floyd? Maybe it's a case of age outweighing the lyrical content and the overall cultural bent of the music?

I'd have accepted the beatles-ish even split, since everyone likes Pink Floyd and the Beatles even though both are very counter-culture. But leaning Republican is just plain weird for the band that made "Us and Them", "Another brick in the wall", "Have a cigar", etc.

<comment><USER4> I was very upset when I saw that result but a good scientist never shows his bias :(

I do really think that once we get better at "artist evolvement" (separating Pink Floyd into two or three separate artists as they had very distinct phases) the PF signifier will drop. I only listen to Syd and "It Would Be So Nice" era PF and definitely am not a Romney booster.

<comment><USER5> Everybody becomes The Man over time. The CEOs of today were getting stoned in their dorm rooms in the 70s and 80s.

</comment></comment></comment></comment><comment><USER6> > _Artists whose fans are most correlated to Republican_

> _Artists whose fans are most correlated to Democrat_

I'm French. I have never heard of the first _eight_ artists listed as Republican friendly; I know and am familiar with most artists in the Democrat list (all but two).

Do "Republican artists" target something very American that doesn't appeal to an international audience?

<comment><USER7> All those artists are part of a genre we in America call "country music". It is basically the modern, more pop-like evolution of the music of artists like Johnny Cash, Patsy Cline, Hank Williams (senior), and Willie Nelson. And if you haven't heard of _those_ artists, you should check them out. If you're interested, the best modern country artist (in my opinion at least) is someone not appearing on the list: Brad Paisley.

<comment><USER6> Oh, ok. I know and love Johnny Cash, Tammy Wynette et al. I don't know existing country artists.

I would guess this "music analysis" is in fact a proxy for other predictors such as location (inland / coastal regions) and age, no?

<comment><USER8> _age_

The first thing I thought was that I'd love to see this with age accounted for as well

</comment></comment></comment></comment><comment><USER9> Coming from Texas, I didn't find the country/republican correlation at all surprising. But here's my question: has it always been this way, or would this be another example of "the Big Sort,"[1] where cultural and political affiliations are becoming increasingly clustered and polarized?

[1] [http://www.amazon.com/The-Big-Sort-Clustering-Like- Minded/dp...](http://www.amazon.com/The-Big-Sort-Clustering-Like- Minded/dp/0618689354)

</comment><comment><USER10> Yet another example of a fallacy of representing the political spectrum in one dimension. People are being conditioned to thinking in terms of left-right, good-bad, democrats-republicans; instead of in terms of real issues. While entertaining, this article adds nothing of value to the political discussion.

<comment><USER11> Rather, its yet another example of people using a single, readily identifiable feature to classify a data set.

It's not an article about politics. It's an article about binary classifiers.

</comment></comment><comment><USER12> Grooveshark's beluga project (<http://beluga.grooveshark.com>) reveals a lot of the same patterns. Looking up Mormon tabernacle choir, for instance, shows a high listenership of politically active, religious conservatives, while people that listen to system of a down tend to be moderate liberals with less political involvement.

Music demographics data is fascinating!

<comment><USER13> This is far more interesting than the linked article, mostly because it actually shows data for the music that I listen to.

For example, Paul van Dyk, Three Drives, and Ferry Corsten all have "IT Specialist / Programmer" as highly over-represented (wow!).

In addition, Tiësto (had to look up Tiesto) shows that advertising does in fact, work! ... 92% of the listeners on Grooveshark uses Windows Live Spaces.

He was hired by Microsoft to sell Vista to the Dutch market: [http://www.reuters.com/article/2007/04/15/music-tiesto-dc- id...](http://www.reuters.com/article/2007/04/15/music-tiesto-dc- idUSN1524677820070415)

Good find! :)

</comment></comment><comment><USER14> There are lots of things that predict your politics to varying degrees: age, gender, sexual orientation, whether you have children, education, income, job, where you live, to name a few. These can be used together to fairly accurately predict at least whether you lean left or lean right.

In any given election in the US you have about 40% of the general population who votes Democrat always, 40% who vote Republican always and 20% who decide the election results. Even the massive landslides of Reagan in 84 and Nixon in 72 didn't go more than about 60-40.

Politics on a mass scale is so predictable that maps are produced of political leanings that are used for redistricting.

A lot of these same factors can be used to predict music tastes. Age and where you grew up are probably the two biggest. So don't make the mistake that many in the press often do and mistake this for causation for correlation. Correlation isn't surprising given the common factors.

</comment><comment><USER15> _Metal fans could save us all from a two-party system._

Hmm... I'm a huge metal fan myself, and very much an anarcho-capitalist / libertarian / voluntaryist / $whatever_term_you_prefer. But, to be honest, I haven't really noticed much correlation between a preference for metal, and 3rd party political affiliation, at least among my metal loving friends. If anything, I'd say that metalheads perhaps run towards "politically apathetic / don't care" more than other groups. But that's a pretty subjective and totally non-scientific observation.

<comment><USER16> RTFA. Their conclusion was not that metal fans have a preference for 3rd party affiliation.

<comment><USER15> Not strictly speaking, but if they say:

"I found it neat these non-predictive artists were mainly metal. Perhaps the genre that can finally bring this divided country together or break the lock on the two party system."

then it's a small bit of inference to think that they are suggesting metal fans are more likely to go for something other than the two incumbent parties.

Anyway, I'm generalizing a bit here. It's not always necessary to reply only to the conclusions than the authors of an article explicitly drew.

</comment></comment></comment><comment><USER17> should consider throwing in age distinctions. [old music-old people- conservative] vs [new-music-young people-liberal] is neither interesting nor exciting.

<comment><USER18> _[old music-old people-conservative] vs [new-music-young people-liberal] is neither interesting nor exciting._

Indeed. The saying attributed to Winston Churchill (he didn't actually say it)

<http://en.wikiquote.org/wiki/List_of_misquotations>

<http://en.wikiquote.org/wiki/Winston_Churchill#Misattributed>

"Show me a young Conservative and I'll show you someone with no heart. Show me an old Liberal and I'll show you someone with no brains." is a familiar statement that people change their political opinions over the course of life. I might add that most observers of politics in the United States think neither "conservative" nor "liberal" are useful terms for describing where people fit in United States politics.

For the record, my radio presets in my car are to "classic rock" stations (of which there are usually at least two at any one time in my town) and most of the music I rip to my computer is similarly music that was top-airplay pop music for the Baby Boom. When the Baby Boomers were young, that was probably considered somewhat radical, antiestablishment music, but I've been surprised at how many of my contemporaries have grown up into middle-aged people who might be characterized as "conservative" politically active voters today, while keeping the same musical tastes.

</comment></comment><comment><USER19> Some non-normalized results might be nice. If the sample size of Republican- leaning vs. Democrat-leaning are orders of magnitude different, then the diversity of taste comparison is questionable.

</comment><comment><USER20> It looks a bit like you're matching location to both traits: country/republican to rural/lower density and pop/hiphop/democrat to urban/coastal

</comment><comment><USER21> Pretty predicible - modern country music is pretty much pandering to right- wing values. It's not really any different than rap - it's just a matter of who your demo is; inner city black youth with baseball hats or middle-American farm boys with cowboy hats. Either way, it's music marketed toward marginalized, uneducated people that need to cling to some sort of social identity to feel empowered.

...why do YOU know so many people that "like all music but rap and country"? We're well-to-do, educated, white boys.</comment>


Economists See Merit in Trump's Trade Case Against China - <AUTHOR> https://www.wsj.com/articles/china-started-the-trade-war-not-trump-1521797401 <comment><USER2> Fwiw, the IP trade case seems absolutely valid.

Either China can abide by international laws and actually enforce IP prosecution on _strategic domestic_ companies, or they don't deserve to play at the free trade table.

The "Well, we know the Chinese government is unfairly tilting the domestic economic market in favor of local companies, but if we give them a seat at the table then eventually they'll change" is never going to be realized when they're treated with kid gloves by everyone who wants access to their market.

And now that China has a number of internationally competive industries, it seems like as good of a time as any to press harder.

For all the bullshit that made it's way into the TPP, it was strategically a good idea. Multilateral tariffs are the only real pressure that an economy as big as China's will feel.

<comment><USER3> I am less concerned about them enforcing IP and more concerned about the blatant hacking and industrial espionage.

Maybe they should stop that first, then we can worry about pirated DVDs

<comment><USER4> > industrial espionage

Are the Chinese the only ones doing it or are they better at it?

<comment><USER3> They might be so good they should launch it as a subscription platform...stealing other countries stuff as a service

<comment><USER5> I get that you're being fascetious, but there are many Chinese manufacturers who will copy a product for you if you ask nicely (i.e. want a large enough volume to make it worth their time). The other common way this happens is ODMs there simply produce more of an order for a customer and sell it unbranded or under some made-up brand name. This is partially why you see so many products on Amazon with names like WinBuyer, iEnjoyWare, GooBang, Anewish, Globmall, GooDee, APEMAN, etc etc (those are all real examples). Amazon does sometimes step in and eat their lunch with AmazonBasics versions of common products (car top carry bags, camera cases, many home goods, etc). I personally do go for the AmazonBasics brands in these cases, since while they might be from the exact same factories as the GooBuy3000 version, I have higher confidence that I'll be able to reasonably return it if it's terrible, and moderate confidence that it's at least a passable version of whatever it is (e.g. I own an AB umbrella and many batteries, all of which are decent).

Amazon also has their own group of "house" brands that they go through some effort to obscure: [https://www.l2inc.com/daily-insights/amazon-has-more- private...](https://www.l2inc.com/daily-insights/amazon-has-more-private- label-brands-than-you-think)

<comment><USER3> I actually was not being facetious, I was flat out accusing the Chinese government of industrial espionage. There is a difference between a company copying ideas and implementing them independently vs straight up hacking and stealing secrets. Everyone does the first, China does the latter on a massive scale.

</comment></comment></comment></comment></comment></comment><comment><USER6> At least, you can cherry-pick two who think so (that is how many economists are quoted in the article). On the other hand, you can probably find two economists who will say almost anything. I'm more interested in surveys like the ones the IGM Forum conducts. Here is what they think about the aluminum and steel tariffs:

[http://www.igmchicago.org/surveys/steel-and-aluminum- tariffs](http://www.igmchicago.org/surveys/steel-and-aluminum-tariffs)

I don't really expect the China tariffs to get much better results, but I guess we will see!

<comment><USER7> Yeah, you're telling us the tariffs won't work and people don't agree with them. How about we back up and discuss the degree to which China is or is not being fair in trade.

Elon Musk, for example, wants certain tariffs because China has a 25% tariff:

[https://www.cnbc.com/2018/03/08/elon-musk-sides-with- trump-o...](https://www.cnbc.com/2018/03/08/elon-musk-sides-with-trump-on- trade-with-china-citing-25-percent-import-duty-on-american-cars.html)

<comment><USER8> Sure, they're good for his business. Tariffs are generally good for the industries they protect, at the expense of consumers, because prices will rise in that industry. So one industry and it's employees receive protection from foreign competition, but consumers "pay for it" on the backend with higher prices.

<comment><USER9> That's a one-dimensional view. We are not only consumers. We're also laborers, and citizens of a nation. If every other nation has tariffs, and the U.S. doesn't, then it's not a level playing field and industry and capital will leave, as we have seen. It's important to national security that the U.S. maintains its manufacturing base, and personally, I'd rather pay a little more for American goods if that means the working class doesn't descend into poverty, which is costly in other ways.

</comment></comment></comment></comment><comment><USER10> "Fair" is a bullshit notion when it comes to trade. What Americans say is that China can produce <insert commodity> cheaper than the USA only because "it's subsidized", and that's unfair.

What exactly does it mean to say that is "unfair"? The USA for example subsidizes their soybean exports, is that "unfair" to the rest of the world?

Their society spotted a strategic opportunity in collectively working together to lower the prices of some exports. Now, it might make sense for the USA to apply strategic tariffs. But calling their decision "unfair" is just filler word nonsense, as we're all playing by the same rules.

<comment><USER11> You seem to be focusing on one rallying point of the protectionist agenda (subsidized production), and not the underlying predatory trade practices.

See, there are unfair trade practices, even if you think your example isn't - practices such as dumping, or outrageously high unilateral tariffs. These destabilize global economies, and are used specifically to damage foreign industry. These are not simply a matter of 'strategic opportunity', which is why they are generally forbidden by international trade groups.

Of course they don't actually get to do much to enforce international law at the WTO, but that's a different story.

<comment><USER12> You make some good points. I agree. There are differences in subsidies. For example. It may be ok to subsidize food production so that a country can ensure continued ability to maintain production capacity domestically, even where it's not economically viable. But that is very different from a country strategically subsidizing an industry with the objective of marking the products so low priced that they drive all the domestic producers out of business and then, when they are left standing, jacking up the prices. That's called dumping. There is a reason we have the WTO and a dispute resolution process, it's be cause some things are ok and some are not.

<comment><USER10> > It may be ok to subsidize food production so that a country can ensure > continued ability to maintain production capacity domestically

Isn't that how the Chinese justify what they do?

</comment></comment></comment></comment><comment><USER13> It would have been better 20+ years ago, before wholesale IP flow there and some other places.

There was theft. There was also taking advantage of that theft by "Western", "IP friendly" businesses. Hardly the only, but one of the reasons that "outsourcing" had such "cost savings". Because the suppliers outsourced to weren't actually paying for the tools and technology they were using (versus e.g. a domestic U.S. producer).

It would have been better 20+ years ago, before wholesale IP flow there and some other places.

There was theft. There was also taking advantage of that theft by "Western", "IP friendly" businesses. Hardly the only, but one of the reasons that "outsourcing" had such "cost savings". Because the suppliers outsourced to weren't actually paying for the tools and technology they were using (versus e.g. a domestic U.S. producer).

P.S. I'm all for the "third world" \-- or "second", or whatever -- advancing. I don't think nor respect the idea that the "first world" had to hollow itself out to accomplish this. Nor so distort other societies and governments into such abusive forms, e.g. by using our technology to empower an abusive but cooperative faction over the others.

But then I've been an optimist. The last some years of U.S. politics have really put that to the test for me, personally.

</comment><comment><USER14> People might be more understanding if he wasn't at the same time threatening tariffs on everyone else too.

</comment><comment><USER15> Suppose that we decided that we shouldn't have abnormal tariffs. We decide to do what is typical for large and/or advanced economies.

We'd have to raise tariffs.

</comment><comment><USER16> IMHO, Trump's idea on tariffs and China is not really about trade, free trade, or economics. Instead, Trump's ideas go back to some simpler stuff -- predatory marketing to achieve and then exploit a monopoly. So, run losses, drive competitors out of business, then take all the market, have a monopoly, and raise prices. Also for China, much of the goal is international power.

China is like the guy who promised to catch the wild pig. So each day he took a walk in the woods and left a trail of corn. Soon the pig found the corn and started following the corn trail. Slowly the corn trail led to a corral with an open gate. So, sure, as soon as the pig was inside the corral, the guy closed the gate. Done. One pig captured.

China doesn't want trade or free trade; instead, China wants to use "the old take over the world ploy". So, China will try to reduce everyone else to colonies supplying goods, especially from agriculture, at low prices while they import products from China at high prices. That idea used to be called _mercantilism_ , e.g., what England did to India.

The Chinese Communist party is willing to have their citizens work however long at whatever work to support their "old take over the world ploy".

For the US, the situation is easy: Slap on tariffs.

The US tariffs will also be good for the Chinese people -- have the Communist party keep the Chinese people busy making consumer products, concentrating on education, a nicer country, etc.

China is a big country with lots of land area near by -- Mongolia, Russia, India, SE Asia, Australia, etc., and doesn't much need to import anything and needs next to nothing from the US.

Similarly the US needs next to nothing from China.

The US tariffs will also be good for the US, e.g., put many millions of US citizens back to work. In many ways, the US standard of living was much higher in 1950 when foreign trade was not very important for the US.

Besides, just why should the work output of US workers be shipped out of the US? Really, only if that output can be swapped for something more valuable to the US, e.g., products we need and don't have, e.g., tin, natural rubber, teak, but there isn't a lot of such products the US really needs. Okay, we could sell the output for gold, sell the gold to the US government, and let the gold accumulate in Fort Knox. To what end? Fort Knox is awash in gold.

I know; I know; I know: The big plan was that poorly paid US workers would give their jobs to China, India, Pakistan, etc. and, then, get much better jobs at Microsoft selling software at high prices to China, India, Pakistan, etc. Well, mostly it didn't work: Instead the textile workers in the Carolinas are still out of work; same for the steel workers in the Rust Belt, etc.

Why? Some US foreign policy thinkers thought that such trade would make a more peaceful world. The people doing the importing liked making the money. Pakistan liked getting US help setting up a textile industry and selling back to the US to get cash to buy, say, oil or stuff to make their atomic bombs. Bummer.

Trump is correct: China has devastated large areas of the US fly-over states. The whole show, from Nixon's trip to China to China in the WTO to the present has been a disaster in nearly every sense for the US.

<comment><USER17> This is also the reason Trump wants friendship with Russia. China would be easier to handle if Russia weren't so aligned with them</comment></comment>