STEM Education: Killing People and Breaking Things - <AUTHOR> https://mindmatters.ai/2019/02/stem-education-3-killing-people-and-breaking-things/ <comment><USER2> Great to read it, I would like to say thanks for share with us.</comment>


Review my site: SecretShare.net - Stop sharing passwords in emails & chat - <AUTHOR> https://www.secretshare.net

<comment><USER2> Hi looks cool but might be too technical for most people.

Perhaps you can keep it much simpler and have a link to technical details at the bottom. Many people probably don't know what "Encrypt client side" or Expires in x actually means. To that end you might want a really simple 3 step explanation of how to use it.

Or maybe you could have an "Advanced" mode with these options.

<comment><AUTHOR> Thanks for the feedback. I agree that as my goal was to keep things simple and clean, moving options into Advanced section does make sense. Will do that in next release.

</comment></comment><comment><USER3> How different this is from other pastebin-type sites which allows password- protected sharing and expiration feature?

<comment><AUTHOR> The goal is to make it really simple to use even for the non technical crowd. The pastebin type sites would overwhelm regular users.</comment></comment>


Apple closes trading with $700B+ market cap - <AUTHOR> http://www.bloomberg.com/news/articles/2015-02-10/apple-closes-at-record-market-value-of-more-than-700-billion <comment><USER2> For scale: [http://en.wikipedia.org/wiki/Orders_of_magnitude_%28currency...](http://en.wikipedia.org/wiki/Orders_of_magnitude_%28currency%29)

<comment><USER3> Wow - the closest number on that list is "Total assessed (taxable) market value of Manhattan real estate for FY 2014-2015" at $914.8 billion. That's the kind of order of magnitude of Apple's worth - one New York borough, containing the world's most valuable real estate.

(Sorry, but can't resist adding: Given that it's worth 30% more than Apple, I guess that's why they call NYC the Big Apple...)

<comment><USER4> TIL Why NYC is called the Big Apple (Question is when will they switch names?)

<comment><USER5> They won't have to change, Apple will just become Bigger Apple.

</comment></comment></comment></comment><comment><USER6> _The world's largest company by market capitalization got a little bit bigger Tuesday._

Shouldn't that be "..largest PUBLIC company by market cap..."? Isn't Saudi Aramco's value in trillions for example?

<comment><USER7> IIRC their revenue is about 4x Apple's.

<comment><USER8> actually, they averaged 95b/qtr last year vs apple's 75b last quarter. They have $36 trillion in assets (consisting of all of SAs oil and gas reserves + the state refining company that was merged in the 90s).

Considering the drop in oil prices lately, it's quite possible Apple's revenue exceeded Aramco's last quarter

<comment><USER9> Wikipedia tells me the company is valued somewhere between 1 and 7 trillion but has $30+ trillion is assets. I'm not a business person, shouldn't it be valued at more simply by the fact that is has a huge amount of assets?

<comment><USER10> I'm not an oil or gas expert, but the low valuation vs assets might be because many of those assets are underground in hard to reach places. Reserves may be proven but not economically viable to access at the current price of oil, for example.

</comment></comment></comment></comment></comment><comment><USER11> I wonder how much of the stock growth is due to the investor program (stocks buybacks), how much is linked to the stock split (making the stock more affordable and potentially more liquid)?

</comment><comment><USER12> Here's a fun comparison. That's within spitting distance of the GDP (PPP) of all of South Korea around the year 2000.

</comment><comment><USER13> It's called a bubble. Here's a company that sells grilled cheese out of 3 trucks, that has been valued at $100M: [http://www.zerohedge.com/news/2015-02-09/bubble- meet-25-mill...](http://www.zerohedge.com/news/2015-02-09/bubble- meet-25-million-grilled-cheese-truck)

Now let's watch the words "worth" and "value" be thrown around recklessly. :)

<comment><USER14> > Here's a company that sells grilled cheese out of 3 trucks, that has been > valued at $100M.

With zero liquidity. [http://www.otcmarkets.com/stock/GRLD/quote](http://www.otcmarkets.com/stock/GRLD/quote) indicates trading volume of 800 shares and their shares were $0.10 until January 28th, upon which someone started trading a few hundred shares a day at about $6.

That's not a bubble, that's someone screwing with a tiny stock. Probably selling back and forth to themself.

<comment><USER15> Excuse my ignorance here, but why would someone sell back and forth to themselves?

<comment><USER14> One reason might be the owner wanting to say "I'm worth $100 million on paper!" There's also the potential it's part of one of those pump-and-dump scams, and that people are getting emails right now saying "don't miss this hot stock! Up 10,000% this month alone!"

</comment></comment></comment></comment><comment><USER16> damn, if marketing doesn't prove its worth with these numbers. Yes they make good products but its obvious their margins are so damn high because their marketing has convinced people that it is worth it. (iphone/mac/airport owner.... so yeah)

Honestly though, I would love some other choices but they competition in general just sucks. For awhile android phones almost caught my attention but the pc world hasn't since my first 24 inch iMac. Tablet market is just, Apple.

<comment><USER17> I recently went to replace my HTC 1 M7. First I got a Moto G, but due to cell signal, and general quirks in lollipop I thought I would try a Samsung S5. Ugg. I don't know how people could stand all the non-standard stuff that samsung puts on there. So I decided to settle in with a Nexus 6. It was pretty good. But it just seemed empty. Maybe because I was used to using custom roms on One it just seemed like features were missing. I didn't want to install a custom rom on it because in the past I always just ended up with bugginess and quite frankly a custom roms are a cop out. I paid for something, the people I paid should give me a good experience not random people on the internet. But the app store, even though it gives users a plethora of customizations like lockscreens, locks, etc, they will never bring android up to the level of a unified experience of the iPhone.

So I went and got a 6+. I have to say since it was my first iPhone I was blown away. I was in the camp of "Why do I need to spend $1000 to do what this $200 moto g can do?" I really can't see how android users feel that any android device is as polished as the iphone. I guess its subjective but honestly >90% of people I know in silicon valley have an iphone. If the most tech centered place in the world all use iphones, I think that says something. Its more than just its the trendy cool thing to do. Its honestly a better experience and the professionals can see that. If I, an engineer in silicon valley, can't get android to do what I want when I want it, how can I expect the average user to master it? Maybe its because I have a higher standard for software and user design since I am in the business but everyday I find some subtle way that the iphone manages to impress me, a feeling I never got on android.

<comment><USER18> For a differing opinion:

I tried an iPhone 6, moving away from a Nexus 5 and then a Moto X. I enjoyed many parts of it--Touch ID is cool, Apple Pay is cool--but I took it back two days later because the operating system expects you to have a thumb the size of Montana to do something as simple as going back a screen in the mail app and I found dealing with applications and getting the phone the way I wanted it (and I'm no iOS newbie, I had an iPhone 4 and have multiple iPads) was at best interminable, at worst impossible. I bought a Sony Xperia Z3 Compact. It's the first cell phone I've _loved_ since the iPhone 4--unsurprising, as it borrows a lot from its design while being pretty unique and pleasant on its own. (The waterproofing is great, hiding the connectors during regular use is nice, having a real focus-stop camera button is _brilliant_. Also, it's bright orange. My Nexus 5 was bright red. This is kind of my thing.)

As far as your _argumentum ad turtleneckum_ , I wouldn't give ninety percent of the people I know in Silicon Valley the time of day. Their choice of phone doesn't reflect on me or the world at large.

<comment><USER19> I had an iPhone4 then moved to Nexus for the larger screen. I like Android, but it was never as polished at iOS. The iPhone 6 got me to try it again and I think it's awesome. The big thing I notice is how polished all the iPhone apps are over their Android counterparts.

Most of my iOS complaints were fixed in 8 and phone size was finally remedied.

Admittedly, if Google had released an update Nexus5+ for $350 I likely would have just stayed with Android for the cost alone.

<comment><USER18> Honestly? Every app I use on Android is really nice and polished. Chrome, GMail, Maps, Twitter, Slack, Facebook Messenger, Hangouts, 1Password, Pocket Casts, Poweramp, and Pandora are all completely satisfying. The worst app I have is OpenMBTA...which fails to get my jimmies rustled because it's a dropdown list and a map overlay.

There are lots of shovelware applications on Android (lots on iOS too, though), but I don't really live on my phone so I think it's just much less of a thing for me.</comment></comment></comment></comment></comment>


Cox to test new way to handle Internet congestion - <AUTHOR> http://www.google.com/hostednews/ap/article/ALeqM5iYRo0yIvJBjaP-zu5oLe1m0Y1fawD95VPFD00 <comment><USER2> Dear Cox: man tc

You probably should have done this in 1999.

<comment><USER3> tc doesn't run on real routers and there are many possible ways to configure it, most of which violate someone's idea of network neutrality. The problem is political, not technical.

<comment><USER2> Having been a cox customer with an inquisitive mind and tcpdump, I can say that they would certainly benefit from a fairness queue, even if they don't sort it by traffic type or destination. A single client should not be able to take and hold 90% of a segment no matter what protocol they are running. Even if these were just tiny routers, one per segment, this would be a drastic improvement.

My gigabit MPLS peering routers will be very disappointed to learn that they are not real.</comment></comment></comment>


Medium cancels the membership programs of its subscription publisher partners - <AUTHOR> http://www.niemanlab.org/2018/05/medium-abruptly-cancels-the-membership-programs-of-its-21-remaining-publisher-partners/ <comment><USER2> Two things

1 - Medium obviously should have given them a heads up

2 - it's _AMAZING_ to see a site that exclusively uses freelancers... whining about being treated like a freelancer

<comment><USER3> That 2nd bit seems a bit harsh. Those "freelancers" have invested in the platform there and there seems to be issues with how Medium notified users of it.

<comment><USER2> I don't think you understand?

whiner doesn't have employees, they have freelancers. That they can ditch on zero notice at all which is, after all, the very point of freelancers.

Medium just treated whiners like freelancers and... whiners don't like it? Why, it's awful! To be fired with no advanced notice. How could they!

<comment><USER4> Medium has consistently treated partners like this, though.

At this point, it's become clear that Medium likes burning bridges. I wouldn't trust them with my content any more than I would trust Facebook with my data.</comment></comment></comment></comment>


PlayStation 4 Will Be Running Modified FreeBSD - <AUTHOR> http://classic.slashdot.org/story/13/06/24/000250

<comment><USER2> Does anyone know if they support the full OpenGL this time, and what version? I imagine since AMD's GPU's do, PS4 should, too.

Also, too bad it's not Linux. That could've helped Linux gaming a lot. We'll have to wait for the Steambox to help with that now.</comment>


The U.S. Housing Market Looks Headed for Its Worst Slowdown in Years - <AUTHOR> https://www.bloomberg.com/news/articles/2018-07-26/american-housing-market-is-showing-signs-of-running-out-of-steam <comment><USER2> As they say, real estate is hyper local. Wouldn't surprise me if the rest of the US slows down, but we don't seem to be there yet in the Bay area.

</comment><comment><USER3> It is interesting that so many of these doom stories are coming out just before Us mid-term elections.</comment>


Bumpin - New social networking startup - <AUTHOR> http://www.bumpin.com/ Download our extension from http://images.bumpin.com/bump@in/ <comment><AUTHOR> Download our extension from images.bumpin.com/bump@in</comment>


Understanding JavaScript function invocation and "this" - <AUTHOR> http://yehudakatz.com/2011/08/11/understanding-javascript-function-invocation-and-this/

<comment><USER2> The handling of the _this_ argument is of crucial importance in the design of programming languages with first-class functions that feature some kind of objects, i.e. data with attached behavior (call them functions or methods).

There are basically 3 possibilities that I see:

\- _differen invocation syntax_ , with _explicit this parameter_ Lua is an example of a language that uses this approach:

      table.method1(arg1, arg2, arg3)
      table:method2(arg2, arg3, arg4)

Here, method1 is called with 3 parameters (without the _this_ parameter), but method2 is called with 4 (the first parameter is the _this_ object, table).

This is undoubtedly the approach with the most efficient execution, but it places a huge burden on the programmer, as one has to distinguish methods from ordinary functions both at call site, and at definition (if you attach a normal function to a table and invoke it as a method, you have a problem if the function doesn't expect the first parameter to be _this_ ). Also, this approach is the opposite from the one found in the traditional OOP languages such as Java and C++.

\- _automatic method binding_ Python is an example of a language that uses this approach:

      f = obj.method
      f(arg1, arg2)

In this case, the function f is called with the first parameter being _self_ , the Pythonic _this_. In Python, the _self_ parameter (Pythonic _this_ ) is declared explicitly at method definition, but I believe that it could also work if it were implicit.

This approach is perhaps the most sensible approach from the programmer's point of view, where methods "just work" - you can call them using the normal dot syntax, and you don't need to worry when using methods as first-class functions - they will remember the object they were attached to.

However, a naive implementation of this technique is quite slow, as the function must be bound to the _this_ object every time it is accessed. It is possible to invoke (access and call at the same time) a method without this overhead (e.g. use some object's internal dictionary to check whether it has a method with the appropriate name, and call it, passing _this_ as the first parameter), but not when accessing attributes - one must check whether the attribute is a method, and bind it to _this_ if it is. However, this is an irrelevant argument in a language that supports arbitrary getters/setters (which seems to be the direction that new OO languages are headed in).

Also, it complicates matters with ad-hoc objects:

      o = {}
      f = (arg1, arg2, arg3) -> arg1 + arg2 + arg3
      o.m = f

When we invoke the method _m_ of the object _o_ , do we pass _this_ as the first parameter (where the function _f_ might no expect it) or not (loosing the OO aspect)? Python conveniently avoids this matter by not supporting ad- hoc objects out-of-the-box.

\- _implicit this_ Javascript is an example of a language that uses this approach:

      f = (arg1, arg2) -> print this, arg1 + arg2
      f(1, 2)        // prints "undefined, 3"
      o.m = f
      o.m(1, 2)      // prints "o, 3"

Here, _this_ is an implicit, undeclared parameter of every function, and is passed at every call/invocation (if a function is called like in the second line, _this_ is set to the global object _window_ in the browser, or to _undefined_ in strict mode). Here, there is some overhead at every unbound function call, as an extra parameter is passed, and it is not clear how this overhead can be avoided (except by avoiding plain function calls, and sticking to OOP). Ad-hoc object creation is simple, as functions/methods have a simple way of knowing whether they were called (without a _this_ parameter) or invoked (with a _this_ parameter). However, care must be taken when using methods as first class values:

      f = o.m             // f will have the this parameter undefined
      g = o.m.bind(o)     // g will have o passed as the this parameter

A syntax extension would be nice, e.g.

      g = bind o.m

but it might be ambiguous. In my experience, this situation is not encountered very frequently, so the trade-off is acceptable.

\</comment><comment></comment><comment>---

I see all these possibilities lacking, but tend to consider the third solution as the most favorable, mainly because it supports elegant and unambiguous ad- hoc object construction. Maybe we could combine solutions 2 and 3, e.g. by using getters on method objects that set _this_ automagically, but to keep ad- hoc objects simple, an implicit _this_ seems to be a must, which means we cannot avoid the overhead...

I'm sure I'm missing a very simple, straightforward alternative, and I would be extremely grateful for any comments or constructive criticism.

</comment><comment><USER3> I am fairly new to JS and have read a number of articles on how 'this' works over the last few months after getting suitably confused by the (apparent) 'inconsistent' behaviour.

I think this is the best presentation of the concepts I've seen since it builds everything up from the simplest primitives ... either that or I just hit the critical number of repetitions to actually understand it!

<comment><USER4> I agree. The focus on "desugaring" and building up from the basics was key. Most of the time we're using "conveniences" without knowing what was made convenient!

</comment></comment><comment><USER5> Also refer this if you are new to JS - [https://developer.mozilla.org/en/A_re- introduction_to_JavaSc...](https://developer.mozilla.org/en/A_re- introduction_to_JavaScript)

<comment><USER6> I don't know why your comment was downvoted - I found your link interesting, if very basic. Certainly a well-written primer and it contains a decent introduction to "this".

<comment><USER7> Yes. I also find this tutorial is great.

</comment></comment></comment><comment><USER8> The underscore.js source (<http://documentcloud.github.com/underscore/>) also serves as a great primer on the effective use of 'this'. My rule of thumb is to never rely on 'this' unless 1) the function is already bound to an object or 2) I have explicitly set the binding via bind, call or apply. When in doubt favor explicit argument passing.

<comment><AUTHOR> In general, you can use explicit argument passing _or closing over what you need_. I tend to use closures to get information from my current scope to a callback, although that doesn't always work in heavily object-oriented code.

</comment></comment><comment><USER9> Quite good post; As I commented there - the only thing I think should be there, too, is the pattern to make bind available in pre-ES5</comment>


Wearable Tech: An evolving or dying trend? - <AUTHOR> http://swarmnyc.com/whiteboard/wearable-tech-evolving-dying-trend/ <comment><USER2> To strictly answer the question in the headline, as in, is it an evolving or a dying trend? Yes. The answer is yes.

What ends up being the wearable tech that becomes so ubiquitous that even Indians and Chinese regularly wear it (similar to how they regularly own cell phones now, something that was considered impossible even 5 years ago), will be different and very removed from what we have today.</comment>


Memory-Prediction Asymmetry - <AUTHOR> https://heteroskedasticblog.wordpress.com/2020/06/21/memory-prediction-asymmetry/ <comment><USER2> I think there are unresolved philosophical issues around probabilistic interpretations where it's not clear a priori what the space of possibilities is. Even if we could pin it down in an instant, that space is constantly reshaped in the brain as it adapts to its environment.

"brown dog" surely has some probabilistic content but it's hard to locate where it is because of the enormous complexity of the space of "possible situations in which a brain can perceive a brown dog".

</comment><comment><USER3> The language (Recognizing vs Generating) sounds awfully close to deep learning, and both are very hot subjects in the last 5 years. A GAN is basically made of a generator coupled to a recogniser. In reinforcement learning there have been promising results by coupling an agent with an internal world model capable of rolling out possible outcomes.</comment>


Offer HN: Top-level design - <AUTHOR>

Based on Jacques post here: http://news.ycombinator.com/item?id=1840143
I have some time on my hands so I would like to spend that helping startup comunity. If you are startup, company or developer that need design
for your project or software feel free to contact me. I have done some job for top-level companies and contributed to opensource projects (I will
send you link to the page that has some work I have done for OSS - you could read on HN about that project) where I worked on design together with
developers.
I will send links to my work on request and provide you with all info you need. If you are stealth mode startup you can contact me too and I will respect your privacy, I have already worked with companies (antivirus and software security companies) on their products that were in stealth mode and I would never(NEVER) share any details. This is not "building portfolio" or karma offer, if someone really need designer and need something to be finished so their product could be done on time I would be glad to help, from iphone/ipad/android apps to websites.As I said design quality will be at top level.
My email: email@example.com
- include link to you HN profile or provide some info
Thanks <comment><USER2> One screenshot would've been worth half of the description.

<comment><AUTHOR> Not a problem: <http://wiki.documentfoundation.org/User:See>

Just tell me in what kind of projects you are interested and I can show you more.

</comment></comment><comment><AUTHOR> note: I will reply to your emails in the next 24 hours</comment>


Banana Pi to Launch 24-Core Arm Server - <AUTHOR> https://www.cnx-software.com/2018/12/26/banana-pi-24-core-arm-server/ <comment><USER3> The sad thing about this chip is that you won't even get a datasheet for it, nor a reference manual. At least SocioNext didn't want to share it with me. That's why I prefer NXP or anything else that has NDA-free datasheets.

<comment><USER4> Seriously,why the f--k do vendors do that. Broadcom used to be notorious for that nonsense. They might as well keep their Manhattan Project chips to themselves.

<comment><USER5> > used to be

Sorry to be the one to wake you from your apparently very pleasant daydream, but I just picked three random chips from their website and the only links available are "request info" and "contact sales." I don't see any evidence to support a claim that they've changed at all. They're still the worst.

<comment><USER6> > Sorry to be the one to wake you from your apparently very pleasant daydream

This seems a bit uncharitable. Here's another way to look at it: perhaps the commenter you replied to was familiar with Broadcom's policies from some years ago, but had not kept up to date with them and didn't want to say one way or the other about Broadcom's current behavior.

</comment></comment></comment></comment><comment><USER7> Super niche use case. But I would absolutely love one of these for cross- compiled development work

Right now if I want to cross-compile Gentoo for ARM and ARM64. I can build "most" packages with the included emerge-wrapper. Which is great as it runs basically at 1:1 speed as doing x86_64 compile jobs

However a ton of packages still fail, many of their upstream developers also refuse to incorporate changes that might fix that [https://dev.gnupg.org/T2370](https://dev.gnupg.org/T2370)

For those packages, I have to use a QEMU usermode chroot. Which on my i7-4790 build host, is slower than native compilation on the Raspberry Pi itself

I'd love to be able to do direct, native builds to sidestep these flaws. But every "consumer" ARM board (Raspberry Pi, ODROID, ROCK64 etc) are flawed in some way as to make them unusable for development

\- Raspberry Pi lacks enough RAM and will hang even when doing single-threaded builds (heavy packages like GCC and Rust usually hit this limit)

\- The ODROID-C2 hits a similar limitation due to only having 2GB of memory itself

\- The ROCK64 "can" complete full self-hosting builds (slowly) but has a staggering amount of kernel bugs relating to its Ethernet and USB 3, which frequently cause the system to hang

<comment><USER8> > \- Raspberry Pi lacks enough RAM and will hang even when doing single- > threaded builds (heavy packages like GCC and Rust usually hit this limit)

Can someone ELI5 what exactly the compiler is doing when needs far greater than 2 Gigs of an RPI's RAM to compile itself/Rust?

Also, how is it a "flaw" of the RPI that GCC must exceed 2 Gigs of RAM to compile itself/Rust?

Warning-- I may use the explanation to cudgel future Electron-so-fat threads...

<comment><USER9> Generally it is the linker that seems to be the issue AFAIK. 32 bit platforms can no longer link at all for large programs like Firefox. Link time optimization will probably make this worse. The gold linker (that Android uses) uses less memory than GNU ld; possibly the llvm linker is better too.

<comment><USER8> Are there any articles about the algorithm GNU ld uses and why it can't work efficiently with less memory?

</comment></comment></comment></comment><comment><USER10> > The video below shows the server's 24 cores fully utilized while building > the Linux kernel, and as the title implies it's running the recent Linux > 4.19.

And how long does it take?

<comment><USER11> Even if it takes a while, it's much more convenient to native compile than cross-compile for linux distro maintainers and those who are compiling ARM packages.

Cross-compilation gives you performance, but a lot of other headaches... and currently using a quad or hex-core ARM takes quite a long time... so this would give a significant performance boost, especially with the 32GB of ram it seems to have.

<comment><USER12> Speak for yourself. I'll take faster builds in exchange managing a cross compilation toolchain any day of the week.

<comment><USER11> Perhaps for building a webapp or something...

For linux distros, they download the source, apply some patches, then let their build server/farm have at it.

Managing a cross compilation toolchain in addition to cross compilation flags and what-not for joe-random-package with quirks quickly becomes a nightmare. Version upgrades will break everything, or pull in build-system linked libraries when they're not supposed to, etc.

This sort of high-core count arm server alleviates a lot of headaches - <USER2> gives you faster build times as well as native builds. It also does away with a lot of complexity in your build pipeline, since you don't have to carefully isolate the build environment to prevent rouge linking x86 binaries.

Most linux distros that offer ARM versions already build natively... so this just gives them better build times, or more concurrent builds. That's a win.

</comment></comment></comment></comment><comment><USER13> I wonder what the price point will be. I always wanted a low cost DIY NAS server with PLEX server capabilities. I tried with a RasPi 3 but had some problems with it hanging up all the time when I ran a SAMBA server concurrently.

<comment><USER14> Is it a problem with all raspis? I have two of them and they all conk off after few days due to voltage issues and I have to physically restart them.

<comment><USER15> What are you using to power them? A proper 5V 2A supply should have no issues at load.

<comment><USER16> Yeah, that is a very likely cause. Make sure to get a quality power supply and a decent MicroSD card (as in, not the cheapest one on Amazon) so it doesn't fail after a few months. I have Raspberry Pis that have had uptimes of years+ with no issues.

<comment><USER17> And set up readonly rootfs. Or use a Banana Pi with onboard NAND to store rootfs. Or do both, just to be sure.

</comment></comment></comment></comment></comment><comment><USER18> What are the use-cases for such a server? It does not look good for desktop use.

<comment><USER19> ARM has some interesting power and heat advantages over Intel/AMD at the moment. Power and Cooling make up significant costs for cloud providers (and for many companies, for that matter), especially on the cloud storage side. For a fair number of the services, particularly ones with very bursting workloads, that superior idle CPU usage, and reduced heat output is _very_ interesting. It opens up a number of possibilities where "good enough" performance is actually good enough, and the extra rack density provides some strong advantages, _particularly_ in easily parallelisable workloads (or completely independent workloads happening in parallel, for example functions as a service)

Amazon isn't just providing ARM CPU servers because of customer demand, and nor is it just to get leverage with Intel. That's not the way they tend to work. They're providing them so that they can leverage them in-house as well. Amazon just likes to take the position that what is good for the goose is good for the gander. If it's good for them, there's bound to be customers that will find it good for them also, and as you sell it to customers, you get to those advantages of scale much quicker.

<comment><USER20> Arm has no intrinsic advantage over x86 ISA wise, for the most part. High performance arm cores consume similar energy to x86.

<comment><USER21> Not having to decode variable-length instructions is one advantage.

</comment></comment></comment></comment><comment><USER22> 24 cores & 32GB of RAM? This might just be enough for me to run Chromium with all my extensions enabled!

</comment><comment><USER23> I had this idea about ARM servers that they were going to be significantly smaller, demand less power, and generate less heat than the existing x86 units. Where I work all of our servers fit in something like 22U and I expect a solid minority of them could be swapped out for something smaller.

Instead what we got are big chips with ARM ISA that are essentially scaled up to roughly Xeon sizes... which in hindsight I suppose is obvious coz that's probably where the money is.

Nevertheless I still think there is a niche for smaller servers with smaller granulation of quanta of compute capacity.

<comment><USER24> Not sure how small you want it but there are smaller and less power hungry x86 alternatives too. The more server-oriented atom chips (2-16 cores) are pretty decent and the much more expensive but more powerful Xeon-D (4-16 cores) can both be found in mini-ITX motherboards and pretty low-power configurations.

Have not kept myself up to date in case AMD offers decent alternatives in this segment.

Though my hope would be for ARM to lower the price point for these kind of servers.

</comment></comment><comment><USER25> I think it can't be a SC2A11, because the SC2A11 maxes out at 16GiB of memory, AFAIK.

I wonder what the TDP is on the SoC, the SC2A11 is only 5W (though they get a lot out of that!). I'd like to see what they could accomplish with a higher TDP target.

<comment><USER26> There is a link in the article to another one about a Linaro development platform, it states that the chip can use 64GB.

<comment><USER25> Hmm, maybe they're configured with different memory controllers? WikiChip and a couple others seem to say it's 16GiB, maybe that's 16GiB per DDR4 PHY.

</comment></comment></comment><comment><USER27> A53 is a rather slow in-order core. I am not sure what use cases they imagine for this.

<comment> yjftsjthsd-h Acceptable server performance without worrying about Spectre?

</comment></comment><comment><USER28> It would be interesting if consumer grade parts could hit a low enough price point for server boards without easily serviced parts [integrated CPU, mem, basic storage]. Maybe you could have cheap boards that deliver high reliability in aggregate.

</comment><comment><USER29> They are not the only ones in Guangdong with hardware in this space. I saw an RK3399 ARM64 cluster board at Firefly a few months ago. [http://en.t-firefly.com/](http://en.t-firefly.com/)

<comment><USER30> The RK3399 doesn't come anywhere close to this. The BPi board looks to be 24 cores on a single soc (or at least running a single system image). The closest you could get is to hang 10gig ethernet off of the pcie bus on 4+ RK3399s. Then you also have to start thinking about fun things like cluster scheduling, and the overhead of running an OS on each device.

<comment><USER29> Yes, these were carrier boards with numerous (8-16?) sub-boards each of which had an RK3399 CPU, each of which has 6 CPU cores (2xCortex-A72 cores, 4xCortex-A53 cores) plus a NEON coprocessor and Mali T860 MP4 GPU. The article discusses 24 cores. The Firefly hardware I saw would therefore have at least 6x8 = 48 CPU cores, or double the ARM64 CPU cores discussed in the article, before even counting the coprocessor or the 8-16 GPUs also included.

<comment><USER30> Depending on workload, pure core count can be irrelevant when your interconnect is trash and you have no shared memory. You _might_ see OK performance if the interconnect somehow supports RDMA, but that seems exceedingly unlikely. Almost all these cluster boards are using gigabit ethernet interconnect. Not to mention you spend a core or more per SoC to handle your os and interconnect/network interrupts.

NEON is implemented on a per-core basis, not as a separate coprocessor. Every A53 (and your handful of A72s) supports NEON.

I'll give you the GPUs... if you really want to put in all the effort for that sweet sweet OpenCL 1.2 action on an out of date vendor kernel.

An RK3399 cluster, and a single many-core system is a nonsensical apples to oranges comparison.

</comment></comment></comment></comment><comment><USER21> That socionext A53 chip again… BUT if they manage to make it way cheaper than the developerbox, that might actually be interesting. Otherwise, I'd rather have four A72 cores (see macchiatobin) than twenty-four A53s.

</comment><comment><USER31> What's about power consumption at full throttle? In watts, say compiling linux kernel with -j24/-j48.

</comment><comment><USER32> I'd love to see a Banana Pi with x86 on it. Or literally any SBCs with good and afforadable x86

<comment> W-Stool Odroid H2 - dual gb nics, SBC (but a bigger one), x86_64, SATA and USB3. $111.

</comment></comment><comment><USER33> I do want one....

</comment><comment><USER34> If one can make a board with enough cheap high performance CPUs, it may be good for neural nets. The main reason we use NVIDIA hardware is because it's cheaper per FLOP.

<comment><USER11> > The main reason we use NVIDIA hardware is because it's cheaper per FLOP

... well... and largely because most neural network software only supports CUDA and/or has rudimentary OpenCL support.

Nvidia hardware isn't really cheaper per FLOP in all cases, AMD and Nvidia still leapfrog each other back and forth.

<comment><USER34> Sure, but every framework has full support for CPUs.

<comment><USER11> That's true to a point... latest versions of TensorFlow, for example, have caused a few issues with instruction sets that not all CPU's (even produced today) have.

<comment><USER35> Is that because of CPUs that are only available at major cloud providers?

<comment><USER11> No, not entirely.

AVX instruction set, for instance, seems to only be on select Intel and AMD cpu's, even modernly manufactured ones. TensorFlow changed to requiring AVX since version 1.4 (Nov 2017), which has caused grief for many users... even those with recent/performant systems.</comment></comment></comment></comment></comment></comment>


Show HN: Exosphere, Entrepreneurial Learning Community in Latin America - <AUTHOR>

Hi guys,
I'm evangelist of Exosphere[1], an awesome startup based in Santiago, Chile. We want to solve the problem of education for life, empowering people with entrepreneurial skills so they can grow themselves as citizens of 21st century and create great and impactful projects.
Alongside, we want to build a community of really high-level entrepreneurs, surrounded by mentors with real-world experience and with a lot of economic[2], geographical[3] and governmental[4] incentives in order to make a huge must-go hub in Latin America and shape the future of this century.
Right now, we're offering a 3-month intensive bootcamp[5] that will cover important skills to any entrepreneur, such as (the principles of) Design, Coding and Income Generation. The process will involve talented mentors[6] working hands-on with the applicants and walking them through the creation of profitable businesses during the program.
If you want to have fun in Latin America, finally own the Spanish language and a learn a lot (for your whole life) while building a business and lifelong alliances, come join us in September!
---
[1] http://exosphe.re
[2] http://www.secretsofthefed.com/5-best-countries-to-move-to-before-collapse-of-the-west/
[3] http://exosphe.re/files/The%20Guide.pdf
[4] https://www.credit-suisse.com/ch/en/news-and-expertise/news/economy/the-americas.article.html/article/pwp/news-and-expertise/2012/12/en/is-chile-latin-americas-answer-to-silicon-valley.html
[5] http://exosphe.re/files/Program%20Guide.pdf
[6] http://exosphe.re/team.php <comment><USER2> I think Chile is onward to become the biggest entrepreneurial city in LatAm. That's a big opportunity, I wish I could move to chile in a short-notice.

I have a question, can you tell me more about the mentors who made this?

<comment><USER3> What would you like to know about us specifically?

</comment></comment><comment><USER4> Interesting. There are plans for this "Bootcamp" to happen again next year? I live somewhat close from Chile (Brazil), but I plan to get my master's degree before going in a adventure in another country :)

<comment><USER3> We probably will conduct one next year, so Like us on Facebook ([http://facebook.com/exospherical](http://facebook.com/exospherical)) and we'll keep you updated on what's in the works for the future!

</comment></comment><comment><USER5> This is SO great. I almost cried when I read about the Creator's vision and thoughts about education, experiencing, learning... It's going to be amazing.

</comment><comment><USER6> They say Chile is going to be the Silicon Valley of South America, this looks like a great start.

</comment><comment><USER7> I am one of the fist entrepeneur on the internet and i lived on my skin the folly of the first internet bubble, i know how broke is the education system! This is why i decided to move to Santiago del Cile from Italy to be part of this tremendous and challenge project !</comment>


Is there a number with the same long and double bit representation? - <AUTHOR> http://www.quora.com/Does-there-exist-a-non-zero-number-for-which-its-double-and-long-representation-are-bit-equivalent

<comment><USER2> So, the two numbers are ∓4886674138783272960L aka ∓4.886674138783273e+18.</comment>


Ask HN: What are the cons of DAGs as compared to blockchains? - <AUTHOR> Crypto currencies based on directed acyclic graphs (e.g. IOTA) seem to solve nearly all of the biggest problems with blockchains -- scalability, low or 0 transaction costs, no 51% attack, no need for miners.
DAGs cannot be used for generalized smart contracts, so they are not a competitor for Ethereum. But do they have any disadvantages as compared to Bitcoin and other pure cryptocurrencies?
I assume I'm missing something, because otherwise DAGs seem too good to be true. And so far there has been little attention paid to them by the crypto ecosystem. <comment><USER2> The main disadvantage is that their growth rate is uncontrollable. If it's possible to add billions of tx to the DAG in a day (possibly with some custom hardware for solving simple PoWs), and a node needs to process those billions of tx to have absolute confidence that some payment it receives is not double spent, then the system breaks down.

<comment><USER3> Would a tx rate limiter not help here?

<comment><USER2> How do you limit the rate? I only see the requirement of a low-difficulty PoW, which is easily subverted with some custom hardware.

</comment></comment></comment><comment><USER4> A problem that the DAGs seem to face is that integration with an exchange is a much more difficult process. At least with XRB (Which I am most familiar with) each exchange has to set up multiple hot wallets and ensure they are kept in sync.

I think XRB is now exchanged on 3-4 sites and they all only have various levels of support.

I think the DAGs (XRB, Byteball, IOTA and likely many more I am unaware of) have the potential to be very useful for microtransactions.

</comment><comment><USER5> I am super interested in the answer to this as well. It seems too good to be true. That is why I have not dipped my toes in RaiBlocks (XRB).

<comment><USER6> I sent a few test transactions with XRB and they appeared in my wallet within 10 seconds. Confirmed on the network within 1 minute. I read the whitepaper and it seems solid and seems like it will scale much better than other mined coins, not to mention it's more energy efficient because of the lack of mining. Excited to see where it goes, as I'd love to see a coin that is viable for real-world transactions (honestly, I just dislike carrying/receiving cash and dealing with banks to use my money). Looking to check out IOTA next.

</comment></comment><comment><USER7> I've been playing with a small amount of IOTA (<$0.01) and found yes txns get stuck waiting for confirmations for days and it is very hard to force them through.

Due to the one-use addresses your entire funds are stuck, because you can't resend from that address, so you can only wait, reattach and 'promote'. Promote means create a 0-value txn confirming your txn that ends up being more likely to confirmed itself. Nice in theory.

</comment><comment><USER8> I own some byteball, rai, and iota. I like the high tps. But im not sure that no transaction cost is a positive. It makes it easy to spam the network to bring it down. Having some proof of work to guard against this seems inefficient and wasteful Why spend time burning electricity when you can just charge the same amount in transaction charges. A small but real transaction cost seems cleaner.

</comment><comment><USER9> I don't think any DAGs are running in the real world without a central conductor for security. Which is a huge attack vector and downside

</comment><comment><USER3> I see no reason why one could not develop a DAG based crypto-currency that is Turing complete to compete with Ethereum.

<comment><AUTHOR> DAGs do not keep track of the order of transactions, so general purpose smart contracts are not possible

<comment><USER10> byteball

</comment></comment></comment><comment><USER11> They require mass adoption to work as intended.

</comment><comment><USER10> byteball is a DAG system with smart contracts I suggest people to look into it</comment>


What do Bay Area millenials think of the SF tech scene? - <AUTHOR> http://www.sfgate.com/default/article/S-F-pricing-out-all-but-the-techie-few-4045203.php

<comment><USER2> Let's bring back the Renaissance-era model of the Art Patron. Instead that twenty-something pull out a roll of bills to buy a scalped sports ticket... get them to pull it out to fund the creation of a sculpture, a song, a painting.

Connect the influx of money and people directly to the creation of the "cultural contributions [that] attracted those neo-yuppies here in the first place". This has the advantage of turning those neo-yuppies into participants in the culture they're here for, rather than just consumers of it.</comment>


Good things cannot be sold; they can only be bought - <AUTHOR> http://bits.usablebytes.com/?p=102

<comment><USER2> Define UCD please.

(Suspects irony in this request.)

<comment><USER3> User Centered Design: [http://en.wikipedia.org/wiki/User- centered_design](http://en.wikipedia.org/wiki/User-centered_design)

<comment><USER2> I'd realized that after doing some Googling.

The lack of explanation of that acronym, however, fails the principle itself. User-centered design (or in this case, RSW -- reader-centered writing) would have expanded and defined the acronym on first use.

The failure of the author to do just that severely undermines his credibility (and the article is scattered to boot).</comment></comment></comment>


I'm turning into a Lisp snob - <AUTHOR> http://briancarper.net/blog/im-turning-into-a-lisp-snob <comment><USER3> I am (now) a lisp programmer and find myself boring many people to tears about it. But perhaps I am first a language guy, and like to see new solutions to problems. None give me the satisfaction that Lisp has (smalltalk was close, however). But I like to see new well-designed languages and how well, or not, they address the engineering challenges.

For example, turbo pascal was written during the time that I was writing a pascal compiler. The Pascal standard was truly a harsh mistress, and turbo pascal made a lot of very useful engineering choices to make a fast, very useful compiler in a small environment. Anders went on to do C#, which itself was a good engineering feat.

I watch with interest Clojure and the ecocsystem that it plugs into and it has a REPL.

But it is a pragmatic fact of life that C is a very large force in the day-to- day world, along with a tool used by serious hackers (c.f. Coders At Work).

Python is very nicely designed and gets you to a higher level of programming with ease.

So I was curious when Go came along, as a language development observer, to see what were they coming up with.

It is clearly a language that has had a lot of thought put into it and it seems to be something that will challenge C on its own turf ultimately. Faster than Python, and possibly ultimately approaching C in speed, it has some useful new ideas. In particular, how it does goroutines and channels is quite refreshing. It addresses the admonition that "threads won't work if they are just libraries" with new language constructs.

So criticism of language ought to be tempered by some experience with the language. Having done enough of them, it seems that I often don't have a full appreciation for a language until I have done something significant in that language. So I feel comfortable offering severe criticism of languages like RPG-III and Fortran II and Altair Basic and Bliss-36.

I am probably to the point of being a lisp snob by now, but do appreciate the finer points of other languages.

I think Go is a step in the right direction for the problem that it wants to solve.

<comment><USER4> how can you say that C is challenged by Go? Go is built with C. This is true with python as well - in being a C abstraction. C is well suited for the UNIX- like programming, where you create efficient system libraries. With as little abstraction as possible I might add.

</comment></comment><comment><USER5> > "Programming language quality is usually inversely proportional to the > number of special forms"

Programming language obscurity is also usually inversely proportional to the number of special forms. Church numerals?

The happy place is somewhere in the middle, where there's enough language such that you don't have to build it out of other pieces - and this also helps with performance, static analysis, tooling, debugging and lots of other areas - <USER2> there isn't so much that you end up with lots of methods to do the same thing, in similar but incompatible ways.

<comment><USER6> Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away. --Antoine de Saint Exupéry

<comment><USER7> And yet Antoine is famous for book-length works, not poetry, and certainly not _minimalist_ poetry.

Don't take the lesson too literally. You can, in fact, take too much away. How much you need to put in depends on your artistic goals and, of course, on your audience.

<comment><USER8>
      so much depends
      upon

      a red wheel
      barrow

      glazed with rain
      water

      beside the white
      chickens.

<comment><USER9> Makes you think, until

you realize you don't even

have a wheelbarrow.

</comment></comment></comment></comment></comment><comment><USER10> "I could show these poor imperative programmers how their problems could be solved much easier in Lisp if I wanted to." That to me (as an outsider) seems to be the main message of these Lisp blogs. But at some point, nobody will believe you could do it, unless you actually do.

<comment><USER11> Yes, if Lisp is so powerful, where are all the super programs written in it? I'm only aware of EMACs and maybe at one point Autocad? And I guess PG wrote a couple webapps with it....

<comment><USER12> That's a logical fallacy. Something can be both great and unknown to you. Usually, you seek information about things you know you need/want, and can afford. If a topic does not interest you, you will forever remain oblivious to it, except maybe for some tangential news about it that reach you by accident.

It's naive to think that just because you're a programmer you know everything there is to know about the software industry. You don't. You know about a small fraction of the _mainstream_ development _tools_ , and even those, at a superficial level. For example, can you name the top software products for running local elections? how about automating a chemistry research lab? packages for oil exploration? vacation property management? real-time spoken Chinese processing? computational archeology? artist talent management? threat modeling for distributed corporate networks?

See? :-)

"Social" programmers, the guys you see in chat rooms and "community" websites are all mostly generalists, and typically work in well defined roles as grunt programmers. Nothing fancy, website here, a database there, a GUI or two, click, generate, zip, distribute, and call it a day type work. Don't let this closed echo-system define your perception of "the software industry".

<comment><USER11> There should at least be one canonical example. I'm not claiming to know everything, I'm trying to fill in my knowledge. If lisp is so great, and so much more productive, and used by the greatest programmers on Earth, point me to some great code so I can become more informed.

Should I start reading EMACS source? Show me the code! If there's not at least one great open source project written in lisp, I'm not inclined to take your claims prima facie.

<comment><USER12> Google "cliki" and "lisp success stories" in the future.

<http://maxima.sourceforge.net/screenshots.html>

<http://www.izware.com/mirai/index.htm>

</comment></comment></comment></comment></comment><comment><USER13> OTOH the Go authors made it clear that it's intended to replace C for the basic system programs & libs. I think that's step in the right direction.

I started to earn money using Erlang & Clojure, so looks like I'm not only fan of new exciting high-level langs but also quite an adopter of them in the so- called real world. Still there are some uses when a VM of your Chosen One language brings an unacceptable overhead. Imagine your daily work using vi, grep, find as they were compiled into jars and each running via JVM. Nightmare with that 2 seconds delay of starting each little proggy, isn't it? (Have you ever used the original Amazon's EC2 commandline tools written in Java? You'd know what I mean).

Of course it could be solved by some kind of injecting of program to be run to some VM already running, but that's not an established practice of working with basic programs in your system. At some level fast binaries are needed.

Personally I think it's a pity that some language of SML family didn't get to the mainsteam for such system programming. Haskell is fun and people write things like text editors and window managers in it; but is still perceived as too academic for real tasks which isn't completely true.

<comment><USER14> _I think that's step in the right direction._

Maybe for UNIX junkies. Other people would like to use languages that don't suck and operating systems that aren't retarded.

<comment><USER15> Experimental evidence suggests that people want to use Visual Basic and Windows, actually. Although the language stats may have changed since the last time I looked at them, I'm reasonably certain at least Windows is still on top. Make of that what you will.

Edit: For what it's worth, I have some sympathy for Microsoft's position. I don't doubt that if they could just break away from backward compatibility they could make something far less kludgy than what they have; unfortunately, if they did break away from it, they'd lose an awful lot of money. Alas.

<comment><USER13> Erm, do people want to use VB for programming libraries and core system tools? (I thought we're talking about such case, as Go authors clearly stated that's their target).

Go competes rather with C/C++ than with VB or any Lisp.

C'mon guys, you don't have to bash any language or solution only because somebody wants to use it for _some_ reason (which may be different than yours).

Having Go in a toolchain traditionally reserved to gcc will only make things better and will NOT threaten a position of your shiny new high level language.

I wish Go people success. They are smart hackers from the ol' days.

</comment></comment></comment></comment><comment><USER16> "Ugh, look at all that syntax."

As a common lisp programmer it's sad to see somebody do to another language what people do to CL. One superficial glance at the syntax and write it off, without further criticism.

"Lisp has a lot of brackets, LOL"

<comment><USER17> After living with a nice s-exp language, C-like syntax seems like it brings a lot of problems with very few benefits. However I wouldn't dismiss a language based only on the syntax.

</comment></comment><comment><USER18> It seems you (as well as several other people) can only imagine a future with Haskell or Lisp syntax as if anything else is inferior. I find that to be foolish and immature.

Go was specifically designed to be a systems language, period. Lisp was never designed as so, and perhaps that is why its hardly used as a systems language today. Personally, I like Lisp, Haskell, and Python but I also know C is a great systems language even though its not perfect and its a bit passed its prime. Thus Go seems to be a good progression from the C/C++ family (I never really saw Java being a systems language but that's my opinion).

Anyway, I agree I think you're becoming a bit of a lisp snob. It might suit you to be a bit more open minded and objective. Even if you don't fully understand the design of Go, you should be able to understand that it was designed by people who have credible experience and skill in designing languages and systems. And sorry to spoil things for you, but the last thing I can imagine is Clojure being the next systems language.

Your post essentially is a brief comparison of a selection of fruits without much substance.

Lastly, here's a piece of advice:

"That's why I reserve the right to match the language to the problem, and even - often - to coordinate software written in several languages towards solving a single problem."

<comment><USER19> GO is only marginally better than C, and that's not exactly saying a lot.

Modula-3? Now there was a good language :D

</comment></comment><comment><USER20> "Sigh. (Programming language quality is usually inversely proportional to the number of special forms.)"

I tend to agree with this, and I'm not a lisp fanatic.

</comment><comment><USER21> Snob or not, what increasingly pulls me to languages are the highly productive DSLs that seem to fall out of them. For example, I need to deliver a few lightweight web apps/services - and I stumble across Sinatra on Ruby (with a little Sequel thrown in mixed with the oci8 oracle gem), which seems to do all I need. My little ruby code snippets look just like that - snippets that are short and expressive of the what I'm trying to do.

Lisp seems to be the "godfather" of these things and I'm more and more interested in what makes _me_ productive, without being surrounded by a team of enterprise programmers and all the boilerplate that seems to fall out of other languages.

I make my living hacking SQL. What I'm really looking for there is the ability to create a lambda on the fly for custom grouping (eg implementing a business rule dynamically). I've worked on at least three big enterprise projects where I could have eliminated thousands, if not tens of thousands of LOC with a feature like that. Maybe I should punt and roll with a Prolog engine in the Lisp of choice. Who knows.

I really enjoy the articles and comments on these topics here on HN. Keep 'em coming.

</comment><comment><USER22> If you're truly passionate about hacking it would be hard to avoid becoming a LISP snob at some point in your development. But if you're pragmatic, you'd be able to transfer what you've learned from LISP to other environments, that may be better suitable for today's technological landscape. Is Google Go the way to go? Only time will tell. But there's little you can usefully do with LISP these days (unless the scope of the program you're working on is so restricted that you really only need the language purely).

<comment><USER23> Nice troll. Isn't Hacker News written in lisp?

EDIT: HN is written in Arc. You're saying that there's "little you can usefully do with LISP" on a site which was written in lisp.

<comment><USER24> Even pg admits that Hacker News is a technology failure. HN is good because of the community, not the software. The software in fact seems to be a hacked together half-assed job.

<comment><USER25> No, that's not true. The software works quite well, especially considering how few lines of code it is. (To be able to say that was one of the goals for both app and language.)

What I said was that it's not user features that keep people here. But there is more to the software than user features. A good example is the code that protects against various kinds of abuse, like spam, trolls, and voting rings. By LOC that is a large percentage of the total, and HN as a community would be long since dead without it.

</comment></comment></comment></comment><comment><USER26> Go just strikes me as profoundly boring.

"Uh, we do lots of C. Yeah, and lots of Python. Dude. Let's make a language that's like, uh ... C _and_ Python! Yes! Awesome."

In a world where the only thing harder than Haskell is Google's interview questions, you'd think they would've come up with something more original.

</comment><comment><USER27> IMHO, he is not a snob. Realist would be a more apropriate term.

Just my 2c.

-lisp guy

</comment><comment><USER28> I'm waiting for a Lisp dialect with significant white space. I think I've turned into an anti-brackets-of-any-kind snob.

<comment><USER29> Lisp programmers already tend to use the indentation the way adopted by Python. Add more rules for indentation and newlining, and voila: all or almost all parentheses become superfluous.

(But you need to really like white space!)

<comment><USER15> Brackets make macros easy, because they make the abstract syntax tree blatant. Make it less blatant, and macros will become much more difficult to write. Given the options of i) macros are easy to write, and ii) Python-style indentation rules enforced by the interpreter/compiler, I'll take (i).

</comment></comment></comment><comment><USER30> Those guys, who designed it were not amateur. The main goal is easiness to code for average offshore programmer (hi, Java). Just name it 'C 2.0'.

<comment><USER31> Are you slamming the people of the island state of Java, or the programming language, or both?

<comment><USER30> I'm telling you that _commercially_ successful hi-tech things in general, and programming languages in particular, should be easy to use for average prople. Java and especially PHP (which is a total mess which was never designed) are the proof of concept. Note that both of them are using C-like syntax.

The biggest prof is, of course, the mobile phones market. Usability and simplicity (along with simple visual effects) sell. And interface practices and some widgets were adopted on the web.

And yes, Java (and Windows) was designed to use low-skilled labor. There is nothing wrong with it.

<comment><USER32> "And yes, Java (and Windows) was designed to use low-skilled labor."

This is an assertion I've seen repeated many times, but never with anything to back it up. Do have any evidence for this, or is it just a feeling that you have? Based on what I've read, Java was designed for use in embedded systems like set top boxes, and the authors wanted to design away some common developer errors. An evolutionary biologist might say that Java was "pre- adapted" for use by low-skilled labor, but I don't think there is any indication that it was designed for it.

<comment><USER30> _the authors wanted to design away some common developer errors_ , which average developer cannot overcome.

There is no rocket science in memory management and pointer manipulation, but, from commercial (manager's) point of view, those difficult to find and debug memory issues is the common cause of troubles with schedule and budget, because good programmers are rare, expensive and difficult to deal with, while average code monkeys are cheap in the first place, and easy to hire and replace.

That's why Java is the de-facto standard for corporate in-house development (read - coding fabrics) and no one in that world even considers that stuff like the ability (in theory) to run the same code on a different platform, especially while it is impossible in so-called objective reality. (Just try to run some bloated, poorly designed spring-hibernate-with-dependences project on a platform other than x86).

And finally, consider RoR - same approach, same and big success.

<comment><USER32> > the authors wanted to design away some common developer errors, which > average developer cannot overcome.

Even the best programmers make mistakes. When writing for an embedded platform, mistakes can be exponentially more costly and difficult to fix.

All I see is hand waving and misdirection, no facts. How disappointing.

<comment><USER30> If you didn't see any facts it not means that they does not exist. =)</comment></comment></comment></comment></comment></comment></comment>


Someone Is Stealing Tracker Songs and Selling Them - <AUTHOR> https://erikmcclure.com/blog/someone-is-stealing-tracker-songs/ <comment><USER2> Am i the only one who has no clue what a "Tracker Song" is?

The article barely touches on this, saying vaguely _" The songs that were stolen were often used in keygen cracking software that was popular in the 2000s to pirate software"_ \-- so the music was used as a key for the keygen? Or was it just included for giggles? Or is it a fingerprint intended for actual tracking?

edit: thanks for all the replies, some really great info below!

<comment><USER3> A "tracker" is a piece of music composition software, sort of a glorified spreadsheet. Imagine a virtual piano roll, with note and instrument data laid out over time.

The vast majority of tracker music was initially in a format called MOD, since it originated the format. MOD's specification was matched to the capabilities of the Amiga sound chip, which proved limiting as time went on, so other formats emerged. Formats and file extensions now include STM, S3M, XM, and countless more. The collective term "tracker music" is easier than trying to enumerate them all.

Trackers are differentiated from note-data formats like MIDI in that a tracker song includes the samples themselves, little snippets of WAV-like data which are played at sped-up or slowed-down sample rates according to the note data. Whereas a MIDI file only includes the notes and timing information, which gets sent to "instruments", which are responsible for translating those commands into sound. Different instruments may do it differently, so a MIDI can sound vastly different depending on what player you're using. A tracker song will sound roughly the same everywhere, barring bugs, with the only difference being that certain player software may have higher-quality math (higher CPU usage) for the sample-rate adjustment and mixing.

Because of their self-contained nature, containing only the sound samples actually used in a given song, tracked music was popular in video games and in the game cracking scene alike. (All the music in Star Control 2 is embedded MOD files, for instance.) And like anything else in what became the demo- scene, the mantra of doing more with less, making enjoyable music in just a few K of note data and samples combined, became its own factor to compete on.

Modarchive.org is the place to go to experience tracker music now; there are players that run in your browser. Click through the top couple songs and you'll get a feel for not just the format but also the era, since the heyday of MOD was the early 90s, much of it fits right into what we now nostalgically think of as 90s electronica.

<comment><USER4> Just to add that while most tracked music in the 90s was electronica, there were others who tried different genres. My favorite example is Leviathan's "Dust To Dust", a Scream Tracker 3 composition that tended towards jazz / soft rock with something like a saxophone sound for the lead - once it gets going about a minute in. You can even see briefly in the song notes at the start, Leviathan says "I hopefully will never be forced to return to the typical demomusic genre":

[https://youtu.be/gFWrHFQdb7E](https://youtu.be/gFWrHFQdb7E)

But even with the original MOD format, Bjorn Lynne / Dr Awesome wrote a lot of Prog Rock MODs inspired by Genesis and other bands.

<comment><USER3> Oh absolutely! And thank you -- I didn't mean to minimize the genre but I guess I did.

I think my favorite opposite-of-electronica would be Joegir Liljedahl's "Guitar Slinger", which he somehow manages to fit into a 4-track MOD, but it sounds like there's so much more going on.

Smallest-favorite would be "echoing", which is 43k uncompressed, and manages to be pretty listenable despite its simplicity. It's really fun to watch the rhythm track in a player that shows you the scrolling data...

</comment></comment></comment></comment><comment><USER5> The way I understand the tracker scene, most don't care about restricting distribution of their tracks. But when others are actually selling, I'd think some authors might disagree with that.

The original authors can sue. And given the extensive documentation on these tracks, it would be an easy case. But whether there'd be any money to recover is unclear. Given the paltry damages you likely get when you're not selling yourself and tolerating copying anyway. Also the seller might be hard to reach legally, and you'd still have to actually sue, which comes with costs.

So the other route is sending notices to at least damage the business model.

<comment><USER6> Just a quick note because it's often confused: the fact that you tolerate infringement in one place will not affect a judgement in another. That _will_ happen with trademark, but not copyright.

<comment><USER5> Yes, I didn't want to imply that not suing in other cases would change the legal options. And while I'm not deeply familiar with the topic, I just remember that determining damages depends in part on the price you charge for licences. So I think when you don't licence but tolerate unlicensed distribution, it becomes harder to argue for damages.

Though as another commenter has pointed out, in the U.S. at least there are statutory damages.

</comment></comment></comment><comment><USER7> Is it possible that the original author of these tracks is the one who has uploaded them to DistroKid? In which case it's not stealing at all. I guess it's fairly unlikely, though.

<comment><USER8> It's possible but I doubt they would change their artist name. Usually when artists have multiple handles, for both legal and artistic reasons, they re- release a song using the original name.

The exception is when a solo artist wants to "cover" a song they wrote as part of a band.

</comment></comment><comment><USER9> I believe Pud is on HN. He can perhaps provide the DistroKid response?

</comment><comment><USER10> despicable.

i am curious what legal protections these kinds of art forms/music have?

</comment><comment><USER11> There are people not only hijacking copyrights in this genre, but in every genre.

<comment><USER12> doesn't make it less disgusting, does it

<comment><USER13> Others among us find copyright off-puting.

</comment></comment></comment><comment><USER14> There's some irony when people are complaining about music stolen from _keygen cracking software_. How dare they steal from us while we stole from others!

<comment><USER15> I believe the author just gave this as a popular example where tracker music can be found. Not a lot of people are fully aware of the "demoscene", where this music/tech is still quite popular. The cracker scene and demoscene have some common roots (and I think still some personnel overlaps), but I met/know plenty of people who aren't into stealing/distributing cracked software, but are very much into the demo scene, producing wonderful pieces of art without breaking any copyright or other laws ;-)

If you have no idea what I'm talking about (and mind that I'm not involved with either scene), check out [https://en.wikipedia.org/wiki/Demoscene](https://en.wikipedia.org/wiki/Demoscene)</comment></comment>


Why Facebook's Seamless Sharing is Wrong - <AUTHOR> http://www.readwriteweb.com/archives/why_facebooks_seamless_sharing_is_wrong.php <comment><USER2> These days I see lots of links from all kinds of "social readers" in my Facebook feed.

A lot of them are actually interesting, but that does not mean I want to authorize the app and start broadcasting my every move online.

Here is what I do: copy / paste the headline into Google and find the article on lots of sites. The great benefit in addition to avoiding the Facebook Big Brother is to read comments from a variety of communities.

It is hard to eliminate Facebook from my routine completely, but I am surely not going to allow them to be more nosy than they already are.

PRO TIP: Install Facebook Disconnect to reduce the amount of tracking they can do

[1] <http://disconnect.me/facebook>

[2] [https://chrome.google.com/webstore/detail/ejpepffjfmamnambag...](https://chrome.google.com/webstore/detail/ejpepffjfmamnambagiibghpglaidiec)

<comment><USER3> I clicked one, looked at what permissions it wanted, and had an idea! You can set the default sharing settings while giving permission, so I simply set it to only share with myself! That way I can click the links, read what i like, and only I will see the links on my wall.

<comment><USER4> Did that too after I became annoyed by the Googling of the headlines in Facebook just to avoid the app. Yesterday I discovered that pressing cancel will get you to the article, so I deleted the app.

Nonetheless, it's still a nuisance to click on an article headline and not get there right away.

</comment></comment></comment><comment><USER5> I think we are slowly but surely walking into an era where any and every activity we do on the web will by default be broadcast to a (smaller) or bigger audience.

The government spies or NSA do not need to track users any more. Privacy is dead because websites like Facebook are now setting an exception of no privacy and lots of people are blindly falling for it.

</comment><comment><USER6> Facebook's seamless sharing has lot of privacy implications. There have been many instances where I have read something and felt that it was inappropriate to broadcast to my network. The value of sharing comes from sharing things which we feel are interesting or important. This behavior of sharing everything by default means that we will miss out on the quality stuff even more. When everything is shared, the good articles miss out from getting attention. Seamless sharing is reducing the overall value of Facebook.

On the other hand, I do like Ticker. It gives Facebook a real-time feel though it gives away the fact that you are online even if you are offline on Facebook chat.</comment>


David Cameron: We want your private keys - <AUTHOR> http://www.bbc.com/news/uk-politics-30778424

<comment><USER2> >There should be no "means of communication" which "we cannot read", he said.

All the more reason to become a member of the open rights group.

[https://www.openrightsgroup.org/](https://www.openrightsgroup.org/)

</comment><comment><USER3> My, is that bad rhetorics. False and stupid propositions won't come true by repeating them. In order to not " _allow terrorists the safe spaces to talk to each other_ ", he's denying the same right to everyone else, making all of us a terror suspect 24/7, from birth to death. Not only is that abandoning the Magna Carta (among other civil & human rights violations), it also explodes your suspect pool from a few selected ones to the whole earth population. Sounds like a really dumb idea if you're actually interested in catching any bad guys. I'll probably never understand how someone like Cameron gets voted into office in the first place.

</comment><comment><USER4> I just hope he is not reelected.

I wonder if Gordon Brown would have tried to pass such legislations.

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


The Art of Nomography (2008) - <AUTHOR> http://myreckonings.com/wordpress/2008/01/09/the-art-of-nomography-i-geometric-design/ <comment> racer-v [http://webcache.googleusercontent.com/search?q=cache:LsVMe9x...](http://webcache.googleusercontent.com/search?q=cache:LsVMe9x7Tq8J:myreckonings.com/wordpress/wp- content/uploads/JournalArticle/The_Lost_Art_of_Nomography.pdf+&cd=5&hl=en&ct=clnk&gl=us)

<comment><USER2> better, with graphics: [http://myreckonings.com/wordpress/wp- content/uploads/Journal...](http://myreckonings.com/wordpress/wp- content/uploads/JournalArticle/The_Lost_Art_of_Nomography.pdf)

<comment> racer-v Thanks, I posted the cache because the author's site was down at the time I clicked the link.

</comment></comment></comment><comment><USER3> Xenakis

</comment><comment><USER2> One of the most common articles posted to HN:

[https://hn.algolia.com/?query=nomography&sort=byPopularity&p...](https://hn.algolia.com/?query=nomography&sort=byPopularity&prefix&page=0&dateRange=all&type=story)

<comment><USER4> I certainly wouldn't say that! [1]

In any case, there was only one discussion and it was 6 years ago: [https://news.ycombinator.com/item?id=2991800](https://news.ycombinator.com/item?id=2991800). So a repost is fine (see [https://news.ycombinator.com/newsfaq.html](https://news.ycombinator.com/newsfaq.html)).

[1] [https://hn.algolia.com/?query=What%20every%20programmer%20sh...](https://hn.algolia.com/?query=What%20every%20programmer%20should%20know%20about%20memory&sort=byPopularity&prefix=false&page=0&dateRange=all&type=story) comes to mind as a standby. Also these: [https://hn.algolia.com/?query=beej%27s%20guide&sort=byPopula...](https://hn.algolia.com/?query=beej%27s%20guide&sort=byPopularity&prefix=false&page=0&dateRange=all&type=story). And Mel of course: [https://hn.algolia.com/?query=story%20of%20mel&sort=byPopula...](https://hn.algolia.com/?query=story%20of%20mel&sort=byPopularity&prefix=false&page=0&dateRange=all&type=story).</comment></comment>


Can You Fall in Love with Someone Through Text Message? - <AUTHOR> https://venngage.com/blog/can-you-fall-in-love-with-someone-through-text-message-infographic/ <comment><USER2> If it wasn't possible I would not have met my wife 12 years ago. Well, at least if you count IRC as text messaging :-)

<comment><USER3> Well, it's messaging using text.... so yup!

</comment></comment><comment><USER4> You can fall in love with anyone through anything! It is all in your head. ;-)

</comment><comment><USER5> This happened to me many times as a teenager.

If you have never met someone, the problem is that we many times only show one side of ourselves through text only...and often times, it's different than reality.

We would meet up after weeks or months of email/texting and the person would be completely different in terms of the fantasy portrayed online.

After this happened a few times, I had a rule of meeting the other person within 2 weeks or move on.

</comment><comment><USER6> Been happening for centuries. Plenty of letter correspondence romances.

</comment><comment><USER7> Can we please stop using early 2000s "txtspeak" to signal text conversations?

Does anyone still write "ppl" or "to" => "2" in the era of autocorrect?

<comment><USER8> > Does anyone still write "ppl" or "to" => "2" in the era of autocorrect?

Yes. I still receive messages from many people (who I know have smartphones) with "u", "ur", and so on.

<comment><USER9> I do this, and some of my friends still do too. It's nostalgic fun for those of us that can read it just fine. Of course, I only type like that with people I already know. r u going 2?

<comment><USER10> Nostalgic fun is a good way of putting it. I find myself doing this sometimes with friends as more or less a joke. If people outside my closer group of friends do it I actually find it pretty annoying.

</comment></comment></comment></comment><comment><USER11> Sounds like there's reason to think that a video only Tinder-style app might succeed; instead of sending text messages to your matches, you'd send them video messages. You'd probably need some kind of face recognition built in to only allow videos containing people's faces to be sent (to avoid obvious user experience problems that would be present in an anonymous dating app).

<comment><USER12> And within 2 min some one will paint a face on their ding dong and bypass your image recognition system.

</comment></comment><comment><USER13> I met my now wife at 15 in high school, and we definitely fell in love over AIM during the summer.

<comment><USER14> The only relationship I've been in to date - a long-term one that ended a few years ago - basically started over AIM, texting, and the occasional late-night phone call. After several months of that we made it official.

</comment></comment><comment><USER15> LOL, my teen did several times.

<comment><USER16> Hahaha

</comment></comment><comment><USER17> I didn't read the article, but texts messages are a common form of computer- mediated communication (CMC). I studied this a bit during my undergrad, and one of its more interesting effects is that it does seem to be significantly easier to form strong emotional bonds when utilizing CMC rather than more traditional methods. A compelling theory as to why is that people generally tend to assume that the unknown elements of the person with whom they are communicating are likely to closely align with their own ideals until proven otherwise.

</comment><comment><USER18> Of course it's possible, but the text message has to be crafted specifically for that person. Like an exploit.

I posit that for most people there exists a well-crafted SMS that immediately connects with them. The problem is it may be really hard to figure it out. :-)

Incidentally, I have recently watched the movie Groundhog Day, which also explores this theme to some extent.

<comment><USER19> Interestingly enough, I think the message in Groundhog Day was that the "perfect message" theory works for shallow relationships, but totally failed for true love.

<comment><USER18> I agree. Of course, eventually, the SMS will have to be backed up. But if you are interested in shallow relationship, you can make someone fall in love with you at least temporarily. I don't think it's a moral thing to do, but it's possible, and people do it.

</comment></comment></comment><comment><USER20> It's been two hours this has been posted and no one has yet self congratulatingly posted a wikipedia link to a certain law about title's ending in question marks. I'm proud of you guys.

<comment><USER21> You did. Just in a very paraphrasing way.

</comment></comment><comment><USER22> No. When you communicate via text, email, etc you perceive the message in a tone that fits what you want. Somebody you consider irrational will come off with an aggressive tone. Somebody you want to laugh at your jokes and be happy around you will come off in a happy mood that conveys they enjoy your presence/company.

<comment><USER23> It's not specific to text. If someone has a tendency to misconstrue others' emotions they can do that anywhere.

I DO fully believe it is true for a lot if not most people, especially those that didn't grow up on text communications.

Personally I'm much more emotive over text and it's much easier for me to pick up emotional cues over text (unless I happen to talk to a person that's really bad at text). And I'm pretty certain it's true for increasingly many people born in the last 20 years.

<comment><USER24> Teenagers are always certain of things they have no way of knowing. It is not a generational skill, just a common foible of humans at that maturity level.</comment></comment></comment>


Write Well, Blog Better - <AUTHOR> http://betterexplained.com/articles/build-a-site-you-and-your-readers-will-love/

<comment><USER2> _"... "You see, most blokes will be playing at 10. You're on 10, all the way up, all the way up...Where can you go from there? Nowhere. What we do, is if we need that extra push over the cliff...Eleven. One louder. ... these go to 11 ..."_ ~ <http://www.spinaltapfan.com/atozed/TAP00160.HTM>

Kalid from instacalc wrote this ~ <http://instacalc.com> the articles a bit lame but the idea on the site is vg, and is well worth reading through. But writing about _"writing blogs"_ is like _"writing about playing guitars"_.

Don't analyse, do.</comment>


Brazilians using Trello to organize proposals for government - <AUTHOR> https://trello.com/board/propostas-para-um-brasil-melhor/51c0d20bf9e3980143000766 I'm Brazilian, and I've been invited to ton of facebook events due to the protests in Brazil, one of then caught my attention, they are using trello to organize the proposals for the government. I found this fact very curious since all those protest started on-line, leaving aside if you are pro or against, this is a good example of how the internet/startups/etc enable people to do things.<p>If you guys aren't aware of what is happening in Brazil: http://news.yahoo.com/protests-planned-across-brazil-despite-concessions-155413790.html <comment><USER2> How do we build a better government? Our protests started with the bus fare rise, and we won this challenge, of if you will, we put this card in the Done column. If we could allocate all our efforts on the various protests to each cause at a time, we will definitely succeed at many of them, and Trello is the perfect tool for this organization.</comment>


Daimler abandons Iran expansion plans as sanctions bite - <AUTHOR> https://www.reuters.com/article/us-iran-nuclear-daimler/daimler-abandons-iran-expansion-plans-as-sanctions-bite-idUSKBN1KS0N8 <comment><AUTHOR> Unfortunately, Europe doesn't have enough leverage to force European companies to comply with European laws that forbid fopllowing U.S. sanctions on Iran.

We need to get stronger and we need to not depend on America anymore, aiming for a relationship between equals.</comment>


WATERLOOP – The University of Waterloo Hyperloop Pod Competition Team - <AUTHOR> https://www.teamwaterloop.com/#welcome-to-waterloop <comment><USER2> I'm surprised there are only two seats per row. It must be smaller than it looks in the plans. I hope it is still economical with low capacity seating.</comment>


Ha Do That in HTML5 - <AUTHOR> http://dothatin.com/

<comment><USER2> Will the flash button gracefully degrade if I have an obsolete version of Flash Player, or I use a flash blocker? Can an African schoolkid see it on their OLPC XO? Can a blind person read it with their screen reader or braille terminal? Can I select it using a keyboard or an accessible input device? Can I restyle it in the browser, so it's clear enough for my grandma to read through her cataracts and big enough for her to click on despite her arthritis?

Every time you use Flash, you're insulting the dignity of the elderly, the disabled and any number of others. You're saying to users "if you're not a healthy young person on a modern computer with a fast connection, you're a second-class citizen". We shouldn't tolerate it, and in many countries the law doesn't allow us to.

HTML works because it works for everyone, not just a fortunate few. This isn't about technology, it's a civil rights issue. No matter how hard Adobe try, Flash accessibility is massively inferior to HTML accessibility. They should be ashamed that they took so long to even begin to address the needs of disabled users and developers using their products should be ashamed for not using the open, standards-compliant, accessible alternative.

</comment><comment><USER3> You can do that in HTML5. You could use CSS3 with animated gifs/pngs --- or go straight to the canvas. Either way would get it done. I'd vote for using canvas.

I'll leave it to someone else to implement. I've got real applications to build today...

</comment><comment><USER4> So... the point is that HTML5 can't make annoying buttons with poor usability?

<comment><USER5> Annoying? Poor usability? It looks like a button, reacts on mouseovers, and would totally fit in some game's website. Besides, it is not the point here.

<comment><USER6> …takes 41KB, and does not work on systems without Flash installed.

</comment></comment></comment><comment><USER7> No, I don't believe I will. I'd rather my users know the button is a button, and will behave like they expect, all without taking up 50% of my CPU...

(Aside: I went back to the page to double-check CPU usage, and the button wasn't working this time. Yup, behold the awesome power of flash!)

<comment><USER8> I have seen many HTML5 demos that have taken up 50% or more of my CPU. So, what's the difference?

<comment><USER9> I think psadauskas' point was that a shiny button isn't a good benchmark for a flash vs. html5 comparison. Or at least that they don't think that shiny buttons make a lot of sense.

</comment></comment></comment><comment><USER10> Well, that shouldn't be very hard to reproduce: <http://dl.dropbox.com/u/360937/do-that-in-html5-fail.png>

<comment><USER11> Since I'm using an iPad at the moment, I was similarly spared from seeing what this button looked like.

That is, until people rose to his challenge. :(

</comment></comment><comment><USER12> People who complain the button is ugly seem to be missing the point. iF there is something that flash can do that HTML5 and the canvas can't do then it's a bridge to be crossed.

While this might be a bad example it would be worth wile to have a list of what flash can do that HTML5 can not yet. The we can talk about if it is or is not worth implementing.

</comment><comment><USER13> That is the ugliest button I've ever seen on the internet.

<comment><USER14> I take it this means you weren't around for The Dark Ages? The time when animated GIFs ran amuck, standards were wept for acceptance, and the kingdom of Geocities was strong?

<comment><USER13> I was around for The Dark Ages for sure, and even including everything there, this button is worse. I'd even prefer a Java applet mirror reflection button to this thing.

</comment></comment></comment><comment><USER15> I don't think the author knows much about html5 or the concept of canvas in general.

If he goes to <http://www.chromeexperiments.com/>, he'll realize that all this is doable.

</comment><comment><USER6> My rought take (sure, I cheated a bit with a background too):

<http://kod.as/lab/button/>

Safari and Chrome.

</comment><comment><USER16> I think the "gracefully" part is misleading. This could be done with Javascript and a simple CSS class added to the <button> is both graceful and degrades gracefully. But if we're comparing apples-to-apples, what's graceful about the Flash solution - opening one (possible more - Photoshop, etc) programs, learning a proprietary language (Actionscript) and exporting a binary that's not accessible to users or search engines, etc...

</comment><comment><USER17> From stackoverflow.com where some misguided fool wants to draw his page background with canvas:

 _… Webkit-based browsers do allow you to use a element in the CSS background property. Just give the canvas an id, then use "body { background:url(#mycanvas); }" in your CSS._

Sure, that isn't in the HTML5 standard per se, but since there is no HTML5 standard we can pretend it is.

steveklabnik points out in this thread an example of someone doing it, <http://mobdb.com/reddit/button.html> , but they use absolute positioning to overlay the button and canvas and will surely go mad if they try to use it for real.

I suppose, with this newfound CSS knowledge I will now have to change my home page background to a hilbert curve.

Edit: Actually, I think I'll use the "background: -webkit-canvas(name)" and getCSSCanvasContext() DOM function documented at <http://webkit.org/blog/176/css-canvas-drawing/>

Upshot: No hilbert for me. Takes about 1 second to render a maximally detailed hilbert in my browser on a core i7 processor.

</comment><comment><USER18> Someone on Reddit did it: [http://www.reddit.com/r/programming/comments/db37b/ha_do_tha...](http://www.reddit.com/r/programming/comments/db37b/ha_do_that_in_html5/c0yvojd)

<comment><USER19> Yup! guess it's time to eat his old Flash disks LOL!

<comment><USER20> He should have stipulated that the HTML5 version must have smooth animation, like the Flash version.

</comment></comment></comment><comment><USER21> Does the author realize that the last image has Mr T. representing flash and Rocky representing HTML5.... in the movie, I believe, Rocky won.

</comment><comment><USER22> Apparently the effect loops endlessly, always the same. In fact it can be replicated with 1995 tech, i. e. animated GIF.

</comment><comment><USER23> (Why are there so many posts here without a comment section? Now to the topic at hand...)

Why?

That's my first question. Why? As in why do I need this button? As in why do I have to do this in HTML 5?

HTML 5 doesn't have to replace Flash. Flash may be great for some devices, and the computers of today can do Flash.

Why does this argument always end up with "But I can do this wildly unnecessary thing in Flash! I should be able to make something unequally unnecessary in HTML 5".

Perhaps HTML 5 can't do the unnecessary. Perhaps that's all the more reason to go to HTML 5.

Simplicity is the ultimate sophistication. - Leonardo da Vinci

</comment><comment><USER24> He should have cleaned his room before taking a picture in it. If the debate was so tiresome between flash/html 5, why add fuel to the fire?

I still dont see the need to justify your purchase/platform/technology. build things that your consumers like, use VB script, Cobol, or powerbuilder for all I care- just make it cool.

</comment><comment><USER25> _yawn_ Whatever happened to use the right tool for the right job?

If you need a button like that (gaming website is about the only thing I can think of), chances are your audience probably has Flash.

My personal opinion however is Flash is not the right tool for the particular job of creating navigation.

</comment><comment><USER26> I can't, sorry, Flash doesn't support my OS so I can't see it.

</comment><comment><USER27> This should be posted as a challenge:

<http://armorgames.com/play/1716/gemcraft>

</comment><comment><USER19> Am I the only one who feels like this guy is just a troll???

</comment><comment><USER28> Is this from Adobe, or does someone really care that much?

</comment><comment><USER29> ITT: People getting trolled to help him convert a website from flash to html5.</comment>


Ask HN: How can learn about Linear Programming/Optimization? - <AUTHOR> ... For someone who has done web development most of his career.  I m interested in learning Linear Programming, Algorithmic optimization, geospatial optimization, portfolio optimization, MIP, Linear Regressions.<p>I am not interested in being a data scientist.  But I am interested in these topics. <comment><USER2> I'm a Ph.D. student in operations research (OR). My suggestion would be to first build a strong foundation in linear programming. This will introduce you to the notion of duality, which is heavily emphasized in many mathematical programming courses. Here's a good open source book on linear programming written by Jon Lee, the current editor of Mathematical Programming A: [https://github.com/jon77lee/JLee_LinearOptimizationBook](https://github.com/jon77lee/JLee_LinearOptimizationBook)

Then I'd suggest studying more general methods for continuous and convex optimization. The book I see mentioned a lot is Convex Optimization by Boyd and Vandenberghe, although we didn't use this in our coursework. Instead, we used a lot of the material presented here: [http://mitmgmtfaculty.mit.edu/rfreund/educationalactivities/](http://mitmgmtfaculty.mit.edu/rfreund/educationalactivities/)

If you read the above (or any other two books on linear programming and convex optimization), you'll probably have a better idea of what you want to study next and how you want to go about it. The next natural step would be to study combinatorial (i.e., integer or mixed-integer) optimization. (Jon Lee has another book on this subject; I've also heard good things about the Schrijver book.)

It's also not a bad idea to start getting familiar with the tools people use to solve mathematical programs in practice. The theory you'll learn to solve linear programs is different from the theory for general convex problems, and similarly for mixed-integer programs. As such, there are various "solvers" that are used to solve various problem types. Because of this, there are a lot of frameworks that are used to develop general mathematical programs, which can then interface with these solvers in a generic way. For example, Pyomo is a modeling language based in Python, and JuMP is a modeling language based in Julia.

If you want a general introduction to discrete optimization in a course format, you should take this class on Coursera ([https://www.coursera.org/learn/discrete- optimization](https://www.coursera.org/learn/discrete-optimization)). It's a fantastic introduction to operations research in general, and it will give you a good intuition of the types of problems you encounter in the field as well as the various techniques that are used to solve them. (Full disclosure: Pascal is my adviser.)

Let me know if you have any more questions. I recently became a moderator of /r/OperationsResearch on Reddit and love the idea of having a larger community that can answer questions like yours. Operations research seems somewhat overshadowed by machine learning at the moment (at least in popular culture), but they truly go hand-in-hand. I'm somewhat surprised that a lot of useful techniques from OR are not heavily discussed by machine learning practitioners. Both fields are, fundamentally, trying to solve difficult optimization problems.

<comment><USER3> Good answer.

I don't have a strong maths background, (had to relearn quite a bit), but found the coursera course to be really useful (and a lot of fun)</comment></comment>


Cofounders social network and Idea sharing - <AUTHOR>

is there a good site or program to share your startup ideas and look for cofounders? <comment><USER2> I'd be interested in something like this.

</comment><comment><USER3> cofounderslab</comment>


Atlassian releases native app for Jira - <AUTHOR> https://www.atlassian.com/software/jira/mac <comment><AUTHOR> An app which only requires 50-100MB released by a major software vendor in 2020. I am shocked. It's a bit short on features though. Hopefully, that's not going to break its neck.

<comment><USER2> Given how poorly their web Ui runs, I think I'll pass and save my battery.

Wonder if they are getting into the ad tracking business?</comment></comment>