Cast Project - The Open Deployment Platform - <AUTHOR> http://cast-project.org/

<comment><USER2> Here is a link to the original news on the project website [http://cast- project.org/news/2011/announcing-cast-preview-re...](http://cast- project.org/news/2011/announcing-cast-preview-release/) and a blog post on the Cloudkick website [https://www.cloudkick.com/blog/2011/apr/26/cast-the-open- dep...](https://www.cloudkick.com/blog/2011/apr/26/cast-the-open-deployment- platform/)

</comment><comment><USER3> It seems like a nice project. I like that you don't need to know a particular programming language to use it.

The way you define services feels a bit awkward though.

Also, it seems like install.sh scripts for various platforms would lower the barrier to entry. The installation documentation is nice enough, but really that should all just be scripted so it can be condensed to:

curl <http://cast-project.org/install.sh> | sh

Running runit scripts out of a user home-dir (as in the example) does feel wrong to me though.

<comment><USER2> We actually do have an install script. It is not the best one, but you should be good to go in a few simple steps:

1\. downloading a tarball 2\. unpacking it 3\. running "scons install"

Scons (our built tool of choice) is an extra dependency, but this shouldn't be a problem since it's a prerequisite for Node.js itself (platform on which Cast is built).

<comment><USER3> I got bored and wrote one for Ubuntu: <http://pastie.org/1837350>

I didn't try it, but probably pretty close to working. It does more than some people might want, but I didn't write it for the pedants in the crowd. ;-)

</comment></comment></comment><comment><USER3> So the actual process management stuff is built on top of runit?

Is this a Linuxey only sort of thing or are FreeBSD/OpenBSD/OpenSolaris/OpenIndiana invited to the party?

<comment><USER4> Runit runs just fine on top of FreeBSD and OSX (and Should work on OpenSolaris / OpenIndinana, though i don't have personal experience).

Nothing in cast itself is really linux specific, it should all work on any Unixy-enough OS, and we have plans for how to do it on top of Windows too.

<comment><USER3> I don't suppose you have any hints for getting runit installed/running on FreeBSD? There's a runit port, but it doesn't auto-start that I've been able to figure out and I never have found any real documentation on it.

Back to Cast though, the "create instance redis0" example is basically just creating a runit script?

Understood that "just" covers a lot, including the auth, agent, etc. But the thing it's actually doing on the server (after building/installing the requested package) is adding a runit script right?

<comment><AUTHOR> You're pretty much correct, but the building/installing step is responsible for a lot more Cast code than the runit part is.

When you run "create instance redis0" the high level steps are:

        1. Create a new directory structure in which to install redis.
        2. Copy all the redis files into a version-specific location in that structure.
        3. Process any templates (for config files, etc) that were provided.
        4. Create symlinks from the version-specific install location into a version-independent data root.
        5. Create various symlinks for tracking the 'current' version, etc.
        6. Create the runit script.

I might be forgetting a step somewhere in there, but you get the idea.

edit: fix list formatting</comment></comment></comment></comment>


Why Graphiti (Or, Why Not GraphQL?) - <AUTHOR> https://www.graphiti.dev/guides/why <comment><AUTHOR> someone at work just posted this on slack, they want to investigate changing a GraphQL API to use this</comment>


Rocket Fiber Launches 100GB/s Internet Service in Downtown Detroit - <AUTHOR> http://techcrunch.com/2015/11/12/rocket-fiber-launches-100gbs-internet-service-in-downtown-detroit/ <comment><USER2> The linked article states 100 Gb/s, i.e. gigabits per second. But the post title says "100GB/s" which suggests gigabytes per second. Worth correcting, because getting 100GB/s between two machines in the same rack would be quite an achievement today.

<comment><USER3> I used to resist the KiB/MiB/GiB nomenclature. But after seeing this problem everywhere, I've changed my mind.

<comment><USER4> I think in this case the issue isn't binary prefixes vs decimal which in this case would amount to a ~7% error, but rather bits vs bytes which is an error of ~800%

<comment><USER5> Yes, I'm not sure the parent realizes KiB (kibibyte) is different than Kb (kilobit): [https://en.wikipedia.org/wiki/Kibibyte](https://en.wikipedia.org/wiki/Kibibyte)

</comment></comment></comment></comment><comment><USER6> I live in Troy, MI (A suburb outside of Detroit) and pay $75 for a 300 Meg Down / 20 Meg Up connection from [http://www.wowway.com/](http://www.wowway.com/). I have lived in silicon valley, but now work in Detroit, the high tech scene in Detroit is one of the best.

<comment><USER7> I live in France and I pay 50€ for 3GB of 4G per month (then bw limited) _and_ 200Mb/s down 50Mb/s up fixed Internet (official speeds but I speedtest them at something like 270 / 70 Mb/s)

There are other operators which are even less expensive (but 4G coverage and upstream fixed network peering changes a bit).

<comment><USER8> These are wireless prices, correct? Do you not have a wired option?

<comment><USER9> I believe the prices are for a plan that includes _both_.

</comment></comment></comment></comment><comment><USER10> Not cheap? Where does the writer live that USD$70 for 1Gbps seems expensive to him? I want to move there!

<comment><USER11> $70 for an internet connection is not cheap. The author just means that it's not a no-brainer for individuals currently on one of the big providers who are on a budget.

<comment><USER12> It is for the area.

Comcast charges $65.95/mo. to $78.95/mo for 70mb/s in the Detroit metro area. $70/month for 1gbs service and not having to deal with Comcast _is_ a no- brainer

<comment><USER11> Oh wow that is expensive. In The Netherlands the big ADSL/Cable providers are 20/30 euro p/m + whatever you pay for TV and phone. The fiber operators charge 40-50 euro. I didn't expect it to be that much more expensive in the US.

<comment><USER13> Cable is certainly cheaper in the Netherlands, but not fiber.

In Utrecht, Online.nl is ~$54 for 50mbps fiber.

Fiber.nl is ~$44 euro for 50mbps fiber.

Per [https://www.internetten.nl](https://www.internetten.nl) and online.nl

$70 for 1gbps rather beats that by a drastic margin. Many cities in the US are seeing gigabit consumer fiber deployments at that price range.

<comment><USER14> > $70 for 1gbps rather beats that by a drastic margin.

You need to factor in the marginal utility of added bandwidth. Few people can meaningfully utilise 20-50mbps (a full HD stream is <10mbps), much less 1gbps, so you're looking at paying $20-30 for, essentially, nothing.

For the record, I count myself in the group of people who can't utilise such a connection, although I'm squarely in the group of people who'd pay for the faster connection in a heartbeat regardless.

</comment></comment></comment></comment></comment></comment><comment><USER15> Is it interesting this is in downtown Detroit?

Of late there have been some interesting photosets of the decay of formerly "high end" real estate (residential and commercial), and I seem to recall theories that Detroit could see a resurgence as tech businesses look to take advantage of the power infrastructure formerly needed by manufacturing companies.

<comment><USER16> One thing that seems strange to me as an outsider is how all your tech startups and companies are clustering in areas with very high cost of living. I don't know much about the US since I'm European but I do keep track of stuff around here on HN.

I can understand it from employee point of view - large city - big job market and naturally those places are also more desirable. But if you're going down the startup route you're already going to sacrifice things for a potentially big payout down the road (assuming you have stocks - right ?) which is why I would have no problem relocating to a cheaper/less desirable area in order to lower the operational costs and increase the chance of success.

Maybe I'm thinking about it wrong but unless you are doing B2B or direct sales location shouldn't matter more than having funds to stay operational/becoming profitable ?

One explanation I can come up with is that if you are looking for investors instead of profitability it makes sense to be closer to them - but at the same time that kind of feels like perverting incentives.

I was under the impression that the costs differences can be huge (2x) between regions - maybe that's not the case ?

<comment><USER17> Access to employees and access to investors is a big part of it for sure.

Depending on the nature of the business, it might also be access to prospective customers, particularly for b2b tech plays.

<comment><USER16> Do startups commonly have traditional employees in US ? As in people working for a paycheck and no shares ? I feel like if I was going to work in a startup I would have no problem moving for a couple of years and taking less money in exchange for shares in the company (ofc. if I thought the company was going somewhere)

From what I can see* locally it's usually founders with shares in company and there's also a growing number of investors/incubators in Eastern Europe (where the cost of doing business/living is considerably lower than Western Europe). Perhaps it's because Europe is more separated legally and governments also play a big role (trying to imitate US model) so investors are "forced" to go to multiple places instead of bringing everyone to them.

*I'm very superficially familiar with startup scene, I'm considering getting in so I'm trying to figure things out :)

</comment></comment></comment></comment><comment><USER18> We just got this at work and I have to say it's insanely fast. Makes downloading things like Xcode a joke. We are getting around 250Mb/s down over AC wifi and a blazing 800mb down over ethernet. Great stuff so far!

</comment><comment><USER19> Wanted to touch on this post. I think having that kind of bandwidth, given proper and reasonable connectivity outside the "last mile" is a big draw. I'm a co-founder of a telecommunications start-up (cloud call center stuff) and the thought of running our own DC on the cheap is a serious draw with a proper connection. But that's a separate discussion (only 19 buildings right now, etc etc etc).

Here in Portland, at my house I currently pay around 200/mo for 50/20, but only really get 25/10 most of the time, on top of their second from lowest end cable TV package. Google Fiber is moving in, but there is another player that is really ramping up here, CenturyLink. As far as the west coast goes, they are the kinds of fiber (from the long chain of acquisitions). Level3, Integra, etc all lease much of their network from CL. But now CL is offering Business 1g lines as well as residential for the same price (around $115-$145/mo depending on contract). I got TV (Prism) and 1Gbit for $145/mo. The kicker? No caps. No throttling and no data caps at all on neither their residential service nor their business. They also don't care if you use your residential line to host servers on. Their entire network is fiber, and they've been building it out since the late 80s.

I wonder why Comcast is so much more expensive here than what others are reporting? I suppose as far as Cable Providers go, until this year your choice in PDX has been Comcast or Satellite (Dish / DirecTV).

</comment><comment><USER20> This is not new. Existing Carriers have been offering 100GbE services for some time although the type of customer who requires this type of service is few and far between.

As for 10GbE for residential, if this is literally 10G to the home then that is something new (as a product offering, technology is not new). Interesting to know how they do the hand-off as 10GbE interfaces are simply not useful for home use.

<comment><USER21> It's new and _pointless_ at this point for individuals.

Very few places will be able to stream anything to them at 10GbE. Most regular harddrives have a bandwidth substantially below that - it takes an expensive RAID or high end SSD to feed a single user at that speed....

For an apartment complex, though, it might be useful to take 10GbE link...

Even on the business side - I run racks of servers handling dozens of clients running booking services for several hundred restaurants, and we're using tens of Mbps including really excessive amounts of regular disaster recovery syncs and backups between our two data centres.. Some companies will benefit, but most won't get anywhere near...

I think this is more of the case that it doesn't cost them that more to offer to set things up for 10GbE, since these users will mostly be limited by upstream servers that won't send them traffic enough so their bandwidth _usage_ won't go up nearly as much as it theoretically could, so it's part a long term view, part a competitive move to make 1Gbps or less from competitors seem too little or too expensive for what you get.

<comment><USER22> I see comments like this on every announcement of fast internet and it is very narrow minded.

Working remotely, high res video conferencing, screen casting, and even booting a computer remotely over the internet are all big applications for things like this.

With a 10gb connection you could have a computer at home that would boot remotely and be part of a company's network as if you were in the office.

<comment><USER21> Most people could do that with 1Gbps without any caching. If you want to run off fast remote SSDs, then yes, you may be able to exceed a 1Gbps connection. But if you're willing to pay for a suitable switch and network card for your computer, you'd be better off buying a high end SSD for your home machine.

Most office networks I've dealt with have fileservers attached that couldn't max out a 1Gbps connection at the best of days.

Of the rack fulls of servers I manage, we have a total of 2 unused 10GbE connections - this is fairly typical. Most peoples servers don't yet have more than a couple of 1Gbps connections. So trying to max out a 10GbE connection is an exercise in frustration.

Yes, there are the rare exceptional circumstance where someone could manage to make use of it, but they are just that: rare and exceptional.

Yes, there will be a time we can max it out with ease, but it's not there yet, and at the rate of adoption of 10GbE even for servers it won't be anytime soon.

</comment></comment></comment></comment><comment><USER23> If you have fiber and the right transceivers, you can run 100Gbit/s over it. If you need that sort of bandwidth, you'll probably do your own peering because just paying for traffic will be obscenely expensive.

Chaos Computer Club's 30c3 conference had a 100G fiber link to downtown Hamburg for a couple of days, still 12k users w/ Gigabit ports and a makeshift datacenter with 10g ports couldn't manage to saturate the link:

[https://media.ccc.de/v/30C3_-_5609_-_en_- _saal_6_-_201312301...](https://media.ccc.de/v/30C3_-_5609_-_en_- _saal_6_-_201312301430_-_infrastructure_review_-_kay_-_peter_stuge_-_florolf_- _sebastian_-_m#video&t=98)

<comment><USER24> Just because you have a 100G network does not mean that anybody will peer with you. You pay for transit like everybody else.

Even the usual suspects (Netflix, Google, etc.) have their own criteria before they will peer with you.

<comment><USER23> Right. But I doubt that anyone shifting that much traffic just buys 100G internet service to a certain location. If you push out that much you might make use of CDNs, if you consume that much Netflix/Google I guess you meet their criteria and the CDNs talk to you (and place their edge servers in your network).

<comment><USER24> True enough. The distinction really comes down to want and need 100G. If you need 100G, you have options and peering is on the table. If you just want 100G, like Rocket Fiber with their 19 buildings, not so much.

As to buying transit on a 100G port, obscene is perhaps a bit harsh. Transit cost goes down significantly with volume and there rarely is a need to commit to a full 100G port. In any case price per Mbps is going to be in cents, not dollars.

</comment></comment></comment></comment><comment><USER25> My understanding is it is being installed under the new M-1 rail line.

[https://en.wikipedia.org/wiki/M-1_Rail_Line](https://en.wikipedia.org/wiki/M-1_Rail_Line)

</comment><comment><USER26> I wonder how they terminate it into the premises? AFAIK (I don't work with fiber though) there aren't SFPs that go above 10G per fiber. On the other hand, there are connectors like MTP ([https://en.wikipedia.org/wiki/Optical_fiber_connector#/media...](https://en.wikipedia.org/wiki/Optical_fiber_connector#/media/File:MPO_Stecker_HR.jpg)) that allow you to multiplex multiple fibers into one cable then separate them back out into multiple cables so maybe that?

<comment><USER24> 100G transceivers from Fiberstore, the Amazon of fiber optics [http://www.fs.com/c/100g-transceivers_1159](http://www.fs.com/c/100g-transceivers_1159)

100G connectivity comes in different flavours. Some use MTP and multiple fibers to transport 100G others use normal LC connectors and transport 100G over multiple wavelenghts on a single fiber pair.

</comment></comment><comment><USER27> So, it looks like it's 10 gigabit for $70 for residential service, which is 10x the Google Fiber speed ("1000 megabits" for $70).

Does this service come with any restrictions such as how many devices can share it, can you host with a fixed IP, effectively run an ISP service out of a home? A lot of residential providers limit such activities.

Anyway it's a good sign that entrepreneurs are jumping into this market to challenge the dinosaurs like Comcast, Cox, Verizon, etc.

<comment><USER28> > So, it looks like it's 10 gigabit for $70 for residential service, which is > 10x the Google Fiber speed ("1000 megabits" for $70).

The difference between 10Gbps and 1Gbps last-mile is almost completely meaningless compared to how well the rest of the network is connected. And somehow I imagine that Google might have slight edge on that side...

<comment><USER29> Google Fiber != Google as far as networks/autonomous systems go.

</comment></comment></comment><comment><USER30> 100 gigabits per second for $300? Holy cow. You can run a whole datacenter off a single such link (and another one for redundancy of course). How is traffic priced?

<comment><USER22> 10gb for $300, 100gb was a business connection and a custom quote.

<comment><USER30> Ah, I misread. Still, for a small DC a 10GBit link is enough...

</comment></comment></comment><comment><USER31> Dear god, they chose the two cheapest upstream providers on the market [1]. It's a shame they didn't pick up a higher quality carrier to handle the majority of their traffic.

[1] [http://bgp.he.net/AS394141#_asinfo](http://bgp.he.net/AS394141#_asinfo)

<comment><USER32> What high quality carrier would you recommend for Detroit? They can go to Cogent, HE, Level3 or one of their competing Telcos. There is nothing wrong with using Cogent/HE for their eyeball network, it gives them cheap connectivity and allows Cogent/HE to balance their traffic ratios Win/Win.

Also to note Google Fiber uses a lot of nLayer/GTT for their eyeball traffic.

<comment><USER31> I can't really speak for that area. But if I chose out of three you listed, it would be L3.

A close friend of mine spent years managing the network of a smaller ISP in the northeast using both Cogent/HE for their eyeball network, and he was constantly telling me about packet loss issues with Cogent. On the other hand, I haven't seen as many issues with HE as a whole, more localized.

Either way using the cheaper options is a good choice if you want to keep costs low during expansion. Hell, it's probably still better than what I see through TWC.

<comment><USER33> Meh, I used to use Cogent in the mix of transit providers for hosting services, and it was more than adequate when peering spats weren't going on (in which case we'd dump traffic over to Hurricane Electric or Global Crossing).

Want quality bandwidth? Pay for quality bandwidth. Most people just want their packets delivered, a few extra 10s of milliseconds be damned.

</comment></comment></comment></comment><comment><USER34> Meanwhile in relatively suburban australia I pay $79/month for 'unlimited' 600kb/s. I so desperately want to get in on the whole remote working thing but the network I'm on seems to be getting slower by the month rather than faster

</comment><comment><USER35> I'm in Houston and pay $150/month for Comcast 50/10 "business class" service with 5 static IPs (do all my hosting, email, etc from home).

Can't wait for a faster alternative; the next step up is around $199/month for 75/15...

</comment><comment><USER36> Wonder if/what usage caps would get applied to this.

Given a 300GB cap like many providers have, it would take 26 seconds to reach it.

</comment><comment><USER37> And I'm on cloud nine for having a 10Mbps connection. #IndianWoes</comment>


C++ Lifetime profile v1.0 posted - <AUTHOR> https://herbsutter.com/2018/09/20/lifetime-profile-v1-0-posted/ <comment> Spartan-S63 I don't know the real narrative driving so much investment in safe C++, but it does appear that Rust is really driving C++ in this respect.

<comment><USER2> This proposal and Rust's guarantees are different. For example:

> We do not attempt to address all aliasing cases or make concurrency safety > guarantees. Programmers are still responsible for eliminating race > conditions.

Some stuff is the same:

> The analysis is local each to function (no whole program analysis),

Some stuff is in the middle:

> We do not currently attempt to check of the internals of Owner types, > including that we do not attempt to validate the correctness of pointer- > based data structures.

(Often, pointer-based data structures in Rust are implemented with unsafe, which isn't checked. Rust's lifetimes also don't interact with owners, in a sense. But Rust's ownership system does, which is together as one thing in this paper. But all of this is possibly splitting hairs.)

This is based on a CFG; Rust's historically has been based on lexical scope, but is moving to a CFG soon (NLL is slated for 1.31.)

Regardless, I'm glad to see anything that makes C++ safer, regardless of motivations. It's all about making software better, not cheering on the home team and booing the away team.

<comment><USER3> > This proposal and Rust's guarantees are different.

A little different, but only in the sense of being, for the moment, less ambitious (than Rust) about the completeness of the checker's implementation. But I think it substantially demonstrates a straightforward path to achieving the same level of memory safety in C++ as Rust.

> For example: > > We do not attempt to address all aliasing cases

It seems to me that a main principle behind the design of the Rust language was to eliminate the aliasing issue, by imposing the "mutable references are exclusive" restriction, as a prerequisite to addressing the memory safety issue. And there was an implication (and sometimes more than that) that as long as C++ can't address the aliasing issue it can't address the memory safety issue (like Rust can).

I think the key thing that the lifetime checker demonstrates is that this premise is not (quite) right. You don't need to completely eliminate the aliasing issue to achieve (efficient) memory safety, you just need to address it "enough". And that can be done for C++.

Now, whether the complete elimination of the aliasing issue is, apart from the memory safety implications, a virtue that's worth the (flexibility) cost of the "mutable references are exclusive" restriction, is as far as I'm aware, still a matter of opinion. (Given the existence of the _RefCell_ wrapper in Rust, and the ease (if not elegance) of implementing an "anti-RefCell" wrapper in C++, I'm guessing it's mostly a wash.)

> > or make concurrency safety guarantees. Programmers are still responsible > for eliminating race conditions.

Data races are a separate issue, but relative to the (single-threaded) memory safety issue, I think there'd be less controversy that it can be addressed in C++ in vaguely similar fashion to Rust. [1]

But both in the case of Rust and the C++ lifetime checker, I don't think that the cost of the imposed (compile-time) restrictions in terms of code/algorithmic flexibility is being adequately acknowledged. For example, say you have a list (or whatever container) of references to (pre-)existing objects. In both cases, the restrictions require that all the objects must (be known to) outlive the list container even if there is a reference to them in the list for only a short time [2]. Imo this is an impractical restriction. In C++, you could use run-time checked pointers[3][4] to alleviate the restriction without sacrificing memory safety [5]. It's not immediately obvious to me that Rust couldn't have such a run-time checked reference as well. But others would be more qualified to make that assessment.

[1] shameless plug: [https://github.com/duneroadrunner/SaferCPlusPlus#multithread...](https://github.com/duneroadrunner/SaferCPlusPlus#multithreading)

[2] [https://github.com/duneroadrunner/misc/blob/master/201/8/Jul...](https://github.com/duneroadrunner/misc/blob/master/201/8/Jul/implications%20of%20the%20lifetime%20checker%20restrictions.md#snippet-4)

[3] [https://github.com/duneroadrunner/SaferCPlusPlus#registered-...](https://github.com/duneroadrunner/SaferCPlusPlus#registered- pointers)

[4] [https://github.com/duneroadrunner/SaferCPlusPlus#norad- point...](https://github.com/duneroadrunner/SaferCPlusPlus#norad-pointers)

[5] [https://github.com/duneroadrunner/misc/blob/master/201/8/Jul...](https://github.com/duneroadrunner/misc/blob/master/201/8/Jul/implications1.cpp#L92)

<comment><USER2> > I think it substantially demonstrates a straightforward path to achieving > the same level of memory safety in C++ as Rust.

What path is that? It's not clear to me how this is possible without breaking backwards compatibility. This statement is directly at odds with

> You don't need to completely eliminate the aliasing issue to achieve > (efficient) memory safety, you just need to address it "enough"

Safe Rust isn't "enough" safe, it is 100% (proofs pending, of course) safe. A "safe enough" system is not equivalent.

 _Maybe_ if you mean that the existence of Unsafe Rust means that it's "enough", well fair. I still think it's substantially different; this proposal doesn't even get to being 100% safe.

That said, as I said above, I very much welcome _any_ sort of incremental improvement here.

<comment><USER3> > It's not clear to me how this is possible without breaking backwards > compatibility.

What do you mean? Presumably most existing sizable codebases will not satisfy the requirements of the (eventual completed) lifetime checker, even if the code is actually safe.

> > You don't need to completely eliminate the aliasing issue to achieve > (efficient) memory safety, you just need to address it "enough"

> Safe Rust isn't "enough" safe, it is 100% (proofs pending, of course) safe. > A "safe enough" system is not equivalent.

I'm asserting (perhaps mistakenly) that you don't need to address the aliasing issue as completely as (Safe) Rust does in order to achieve the same memory safety that (Safe) Rust does. Or maybe "completely" is not exactly the right word. I'm saying that the universal imposition of the "mutable references are exclusive" restriction is not a necessary prerequisite to (fully) achieving the same type of ("zero overhead") memory safety that (Safe) Rust does.

I'm not that familiar with Rust, but for example, if you have a reference to an element in a dynamic container, like a vector, (Safe) Rust ensures that that element is not prematurely deallocated by ensuring that there is no simultaneously existing mutable reference to the container. I.e. the container is immutable while an (immutable) reference to one of its elements exists. Right? (I mean, assuming you didn't "split" it first.) And if the reference to the element is a mutable reference, then the container cannot be referenced at all, right?

From a memory safety perspective, this is overkill. The container does not have to be immutable (or inaccessible) while a reference to an element exists, only its _structure_ needs to be immutable. The C++ lifetime checker imposes this lesser restriction.

And for simple objects that do not have dynamic structure (or any indirect references), then the "mutable references are exclusive" restriction provides no memory safety benefit at all, right?

As I said, even this lesser restriction will presumably break most existing C++ codebases, and you could (I think legitimately) argue that that makes this new "Safe" C++ a substantially different language than traditional C++. But the fact that the restrictions are much less severe than Rust's means that a lot fewer code modifications will be required than if a Rust-style universal "mutable references are exclusive" restriction had been adopted.

Am I making sense here? Maybe I'm mistaken and these "lesser" restrictions are somehow inadequate, but I don't see it.

<comment><USER2> > I'm asserting (perhaps mistakenly) that you don't need to address the > aliasing issue as completely as (Safe) Rust does in order to achieve the > same memory safety that (Safe) Rust does.

You need to address the aliasing, or address the mutability. They're two sides of the same coin.

> only its structure

I am not 100% sure what distinction you're making here, sorry. What's "the container" vs "its structure"?

> From a memory safety perspective, this is overkill.

Yes, in general, Rust takes a soundness-based approach. If you can't prove that it's safe, then it's not safe. This takes the other path, which is totally valid, mind you! But that means it will allow cases that are not safe.

> And for simple objects that do not have dynamic structure (or any indirect > references), then the "mutable references are exclusive" restriction > provides no memory safety benefit at all, right?

That's not right. You can have a data race to a plain old integer.

<comment><USER3> > That's not right. You can have a data race to a plain old integer.

Sure, if your language allows unprotected access to any object from any thread. Which, I guess traditional C++ essentially does, but presumably a "Safe" C++ would eventually have an "asynchronous sharing" checker that would require any shared objects to be appropriately "protected".

> > only its structure

> I am not 100% sure what distinction you're making here, sorry. What's "the > container" vs "its structure"?

For example:

        std::vector<int> vec1 {1, 2};
        {
            const auto& cref1 = vec1.at(0);
            auto& ref2 = vec1.at(1);
            ref2 = 3;
            auto& ref1 = vec1.at(0);
            std::cout << cref1;
            ref1 = 4;

            // co-existing const and non-const references are permitted and memory safe here

            std::cout << vec1.size();

            vec1.at(0) = 5;

            vec1.clear(); // <---- Rejected by the lifetime checker

            // because the clear() call mutates the structure.

            // Mutating the data contained in the vector is permitted though.

            std::cout << cref1;
        }

> Yes, in general, Rust takes a soundness-based approach. If you can't prove > that it's safe, then it's not safe.

The approach is not that different. The lifetime checker applies (or will apply) basically the same sorts of restrictions that the Rust compiler does (and "break" backward compatibility in the process), but only when necessary to enforce memory safety.

I mean, the way the lifetime checker works is that it basically keeps track, at compile-time, of the latest possible death-time of every reference and the earliest possible death-time of the target object (or potential target objects) that each reference points at, and complains anytime the former is later than the latter.

<comment><USER4> I think you will be disappointed if you expect an approach that doesn't do roughly what Rust does aliasing-wise, and doesn't do something very conservative on >1 word sized updates, to be memory safe in the presence of concurrency. People have been working on that problem for a _really_ long time and I frankly don't see _any_ approach that is going to work in a C++ environment other than Rust's. For the single threaded case, sure, you can probably get close with something much more relaxed. But the Rust core team is not stupid, they didn't insist on such stringent aliasing rules just so you could use restrict.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER5> > It aims to detect common local cases of dangling > pointers/iterators/string_views/spans/etc

Hmm, a good tool to have, but wouldn't be quite enough to sleep well, since it's only for "common cases".

</comment><comment><USER6> "I love C++. I also love safe code and not having to worry about dangling pointers and iterators and views. So I've been doing some work to make my life less conflicted"

I love the honesty there :)

</comment><comment><USER7> Good guy Herb!</comment>


Tell HN: Couldn't Sleep Last Night, Wrote a (No-Flash) HTML5 Viewer for YouTube - <AUTHOR> http://neosmart.net/blog/2009/watch-youtube-videos-in-html5/

<comment><AUTHOR> I was bored last night and browsing YouTube in bed on my MacBook, and as usual, when I reached an HD video the fans kicked in and the laptop got hot. Since YouTube now stores the .mp4 version of (most) videos on their servers, I figured it was inevitable that someone had coded something or the other to take advantage of it and view them in streaming format via HTML5 video containers.

When I didn't find one I wrote this instead. It's really basic, but it gets the job done. Give it a YouTube link and it'll display the HTML5 video. The userscript adds a link to the HTML5 viewer for all video pages on YouTube.

<comment><USER2> I'm not having any luck loading your page, so maybe it's explained there, but how do you get to the .mp4 version of a file? pwnyoutube often works, but it's also often down. I'd love to just be able to download the video and watch it locally, if the .mp4 link allows that.

<comment><USER3>
       javascript:(function(){url='http://deturl.com/download-video.js';document.body.appendChild(document.createElement('script')).src=url;})();

I've never had a problem using this.

<comment><USER4> sexy!

</comment></comment></comment></comment><comment><USER5> If you haven't seen ClickToFlash yet, it can transparently replace the YouTube flash player with an HTML5 <video> element in Safari:

<http://rentzsch.github.com/clicktoflash/>

<comment><USER6> From that link:

"Block evil Adobe Flash"

Great, more ideologists.

<comment><USER7> Aren't there enough objectively bad things about Flash to justify summarizing it as "evil"? It does so many bad things to a web site's accessibility, usability, download size, security, and performance that anybody with a genuine interest in making the web a better place should be encouraging migration to the open standards based alternatives. Now that HTML5 features are available, it seems that the only significant things Flash has going for it are a large install base and a decent authoring tool.

<comment><USER6> There's enough bad things about almost any good thing...

I use Flash (Flex, actually) for my company's website and it works very well for us. Blanket-labelling it as evil is just silly. Flash is no more evil than a hammer.

</comment></comment></comment></comment><comment><USER8> Google/youtube beat you to it in April: <http://www.youtube.com/html5>

Must be viewed in Chrome Also show a video of their O3D technology, similar to WebGL.

<comment><AUTHOR> That's just a sample. No way to load other videos in the HTML5 viewer.

fyi, the link works great in Safari.

<comment><USER8> True. But the player code is all there. It should work in any html5 enabled browser (Safari 4, Chrome, and FF 3.5) although FF 3.5 is having some issues with it.

This does highlight one problem with html5 based video, different browsers will interpret it differently no matter how hard standards are pushed. Flash video (FLV) saved us from that and all the horrible players like Real Media, Windows Media and Quicktime by being consistent and working across all browser as long as you have the plugin.

</comment></comment></comment><comment><AUTHOR> OK, it's going to be super-slow right now because it's already been slashdotted.

Don't know why it's taking it down so badly, MySQL has been acting up for the past fortnight :S

EDIT: Just swapped services (from Apache to IIS) and it looks like everything's doing better.

</comment><comment><USER9> Very nice! Just watched Did you Know 4.0 in HTML5 and the activity on the CPU on my MBP was super low, unlike when watching it in Flash. Thanks for staying up the night!

<comment><AUTHOR> Thank you! and you're welcome :)

</comment></comment><comment><USER10> This seems cool. It's not working for me though, the video never plays and the track scan and volume buttons have a blue border around them. I'm on FF 3.5.5

<comment><AUTHOR> You need to manually press the play button. The numbers are a lie (0:00/0:00) and the blue border only appears in FF (silly thing requires a border=0 which I'll add later). It may take a while on slower internet and some videos do not have an MP4 upload on YouTube. However, the YouTube slider _does_ work and you can use it to skip to any part of the movie.

<comment><USER11> Only browser I got your app working in was Chrome. What browser were you primarily testing the application in? What version? Because Firefox just released an update this morning and it could very well be the culprit.

I not only could not get Firefox (3.5.5), IE7, or Safari to work with your HTML5 YouTube app, but I could not get YouTube's app to work either; I hope this fact mitigates your worries.

<comment><AUTHOR> Main development was with Safari, WebKit, Chrome, and Firefox on OS X. Couldn't get it to work with Camino.

Tested as well on Chrome for Windows. Of course, Internet Explorer doesn't work.

EDIT: Sorry, guess that's the effect of an all-nighter. It actually doesn't load in Firefox for me, either.

<comment><USER11> Well I'm not gonna blame you for it not working in Firefox. I've actually had to re-write client-side code (generally just quick hacks, similar to your project) solely for Firefox patching some sort of quirk or behavior change into their browser. It can get especially annoying if you're always testing with the most recent version.

Nevertheless its a neat app. ;)

</comment></comment></comment></comment></comment><comment><USER12> Here is a browser bookmarklet for your Youtube HTML5 video viewer : <http://gist.github.com/229475>

</comment><comment><USER13> This is really cool. And I have a question about HTML5 video in general: how would an HTML5 player prevent users from messing with ads if it were used by a site like Hulu?

<comment><USER14> HTML5 video is not supposed to be used for video streaming at all. I think it is doubtful that companies with the concerns you described would use the video tag.

<comment><USER15> What makes you think so?

<comment><USER14> What makes me think HTML5 is not for streaming? Streaming video technology works differently.

What makes me think companies with the concerns outlined by the OP would not consider HTML5? It would be much more difficult to control their content. Flash is great as a hard to penetrate content container. Exposing your content by using HTML + JS to display it is less than ideal if you want to serve ads/make it difficult to steal content.

<comment><USER13> <http://www.youtube.com/html5>

Youtube streams the file. Youtube also serves ads. Youtube, as exemplified by the OP and by my link is experimenting with an HTML5 player. But you are right. HTML5 has this problem of exposing the player, so any mechanisms in the javascript to force ad viewing can be more easily defeated.

A possible solution would be to track user session and force a new ad on every new session (so you can't clear cookies). That way ad tracking can persist outside of the video player itself by using the cookie.

The other problem is, who serves video files themselves anymore? So if Youtube, or any other video services who depend on _ads_ to keep themselves afloat can't use the HTML5 video tag, who will?

<comment><USER14> Who will? Anyone who wants to serve video without interstitial ads. Think about the world before Youtube-like sites. How did we embed video? Often times hosted on our own servers. If I want to serve up a dynamic video for example, right now Youtube-like services do not allow me to do that. I think dynamic video is a great use case for the video tag e.g. splicing a use photo into video.

It seems to me that unless the ad is prepended to the actual video file then using javascript we can tell when an ad is playing and kill it/skip to the "real" content. On the other hand the average user probably does not have the expertise to kill ads, so maybe the point is moot.

<comment><USER13> Yes but someone can easily make a browser extension that kills it for them.

Or use firebug and inject javascript into the page.

I think people stopped embedding videos and started using third party tools because it makes it _easier_. Third party tools will always make it easier. No need to worry about bandwidth, file space, etc (even if the cost of these items are going down). And as long as these tools make it easier, these tools will probably want control of their players and will want to put ads in them.

</comment></comment></comment></comment></comment></comment></comment><comment><USER16> On my macbook, using this viewer causes Safari to take about 20% CPU. Same video using flash takes about 13%. Flash doesn't seem to be CPU-evil on my machine.

</comment><comment><USER17> thinking it would be nice if you also let us view a random video link rather than find/copy/paste.

</comment><comment><USER18> A crow eating a dead rat? (Zhuangzi)</comment>


New Discoveries Could Explain What Happened to the Lost Colony of Roanoke - <AUTHOR> http://gizmodo.com/new-discoveries-could-explain-what-happened-to-the-lost-1728576170 <comment><USER2> tl;dr: Modern analysis of period map reveals hidden mark 50 miles west of Roanoke, consistent with plans to move the colony. Ground penetrating radar used to identify dig sites at this spot. Interesting period artifacts located. Interim conclusion: They moved, as planned, from a bad spot. (They may have split into multiple groups, and they may have merged with local aboriginal populations.)</comment>


Google, Facebook, Microsoft, and Twitter partner for ambitious new data project - <AUTHOR> https://www.theverge.com/2018/7/20/17589246/data-transfer-project-google-facebook-microsoft-twitter <comment><USER2> Interesting, has Mozilla a take on this?</comment>


Ask HN: What are some Go projects looking for contributors? - <AUTHOR>

I've been fascinated with Go for a while now and would love to jump right in. Unfortunately, I am not quite ready to re-write my projects in Go. Are there open-source projects looking for contributors? <comment><USER2> Camlistore:

[http://camlistore.org/docs/contributing](http://camlistore.org/docs/contributing)

Docker:

[https://github.com/dotcloud/docker/issues?labels=Help- Wanted...](https://github.com/dotcloud/docker/issues?labels=Help- Wanted&page=1&state=open)

<comment><USER3> In the Docker issues, also look for the "easyfix" tag.

We try to set it for issues that are hopefully actionable for people with a moderate knowledge of Docker and/or Go.

</comment></comment><comment><USER4> Martini is looking for some more middleware in the martini-contrib repo:

[http://martini.codegangsta.io](http://martini.codegangsta.io)</comment>


Google's response to EU - <AUTHOR> http://googleblog.blogspot.com/2015/04/android-has-helped-create-more-choice.html?m=1

<comment><USER2> If that's their response it's way off the mark. Google is a huge company and yes Android is one aspect of it that is wonderful and open. However the aspect being scrutinised by the EU is its search monopoly.

It's no defence to just hold up a shield of good behaviour within another realm of business.

Personally I'm torn on the actual issue anyhow. I'm trying to see why a private company like Google is bound to any degree of public duty on its own websites. Are search engines special domains where the owners can't advertise their own products above and beyond all others?

Yes Google have search dominance, but it's a free service, there should be no pressure on Google to weaken their self-advertising on a free platform. Instead the onus is on its competitors to offer compelling reasons for searchers to use their platforms over Google's.</comment>


Show HN: Extension for improving case law search on Google Scholar - <AUTHOR> https://chrome.google.com/webstore/detail/jdgieokhkbggkodonpnjcocdfcjnbond <comment><AUTHOR> This is a Chrome extension I made that adds various UI enhancements to Google Scholar's case law search. Features include: a quick-view window for easy navigation, multicolored search-term highlighting and hash-marking, cited case highlighting, clickable search-result snippets, pin-cite recognition in case links, clickable search terms for cycling through occurrences, Bluebook citation cleanup, and two-columned printing.

I appreciate any feedback.</comment>


2004 Presentation on Marketing at Amazon [pdf] - <AUTHOR> http://ai.stanford.edu/~ronnyk/emetricsAmazon.pdf <comment><USER2> This is awesome. Shame it slipped through the cracks and didn't make the frontpage</comment>


Learning to Create the Perfect Cup of Coffee - <AUTHOR> http://www.nytimes.com/2013/01/02/dining/learning-to-create-the-perfect-cup-of-coffee.html?_r=0

<comment><USER2> Fussy coffee is the best - a somewhat battered hot air gun, a wooden spoon, an old colander and a variety of green beans is all one needs to roast for ones self. Cheaper, fresh and, after a time, usually better than what the shop offers. Fiddling the roast time, blend etc has been occupying me for about 5 years now.</comment>


Europe, Apple, and the money burning a hole in Silicon Valley's wallet - <AUTHOR> https://www.theguardian.com/business/2016/sep/03/ireland-apple-silicon-valley-money-burning-hole-wallet <comment><USER2> Tim Cook is challenging the Republican-controlled Congress to change the US tax code so that ALL big corporations must stop using foreign tax shelters, not just Apple. This is probably a safe bet, because Congress wrote the tax code that way for a reason.</comment>


I'm building a new business. I'm afraid to be copied. Should I patent it? - <AUTHOR> I've built a new product. I showed it to a couple of target groups (who are part of my target audience). All the people's response was: I like it and would be willing to pay money for it.
I tried contacting a company offering a related service, offering them a cooperation. I suggested a simplified version of what I showcased my focus group. The company said "thank you for the suggestion, we'll implement it ourselves".
After receiving this response I thought of patenting my idea.
I contacted a patent's lawyer who said that since I already launched a basic version it means that there's no novelty behind the idea any more. He said that I should remove the website and wait with gaining users until I receive the patent. This seems very counter to the common practise of startup companies these days.
What would you suggest? <comment><USER2> IANAL, but isn't it too late to patent an idea after you've disclosed it? If your lawyer said something like that already, then why is he still talking about patenting it? Also, if the idea is simple enough to explain to a competitor in a phone call well enough for them to implement it, then maybe it's too obvious to be patentable. Maybe someone can correct me if I'm wrong about this, but I thought patents were very expensive to acquire and even more expensive to defend, making them suitable only for big players who use them mainly to forge anti-competitive non-aggression pacts among themselves while keeping everyone else out of the market (as in the mobile phone space, for example). Your role as a small startup is to be smarter and more agile than they are (if you can) rather than trying to beat them at their own game.

</comment><comment><USER3> > _" thank you for the suggestion, we'll implement it ourselves"_

No matter what you do, this will happen. It's too early to worry about competition. Focus on getting your customers and building your business. If you provide better value, that other company won't matter.</comment>


GPUCC: An Open-Source GPGPU Compiler [video] - <AUTHOR> http://images.nvidia.com/events/sc15/SC5105-open-source-cuda-compiler.html <comment><USER2> It's just frustrating how everything GPU related is fragmented, mostly proprietary, overly complex and hard to use. Cuda? nvidia only, directX? windows only, Metal? iOS/OS X only, OpenGL? too high level, too much stuff, too complex.

If you don't specialize on utilizing graphic cards, then as a normal programmer you simply won't use them. I really hope that Vulkan and SPIR-V might tackle that problem.

<comment><USER3> Even when you specialize, you aren't privy to the same sort of functionality or information exposed to the inner circle of lead game developers, so you have to spend a lot more effort to gain the same insights.

</comment></comment><comment><USER4> This is an Open Source CUDA compiler (not clear from the title).

I guess at the moment, this targets Nvidia GPUs. I wonder how much effort it would be to target other vendors GPUs. Does someone has some insights on that? This could mean that we can finally use CUDA for all GPUs.

<comment><USER5> It solves a fundamentally different problem, AFAIK - it emits CUDA kernels which are then just handed to the driver's interface for copying and running CUDA kernels on the GPU, so if your GPU doesn't support it, they'd need to change the LLVM backend to emit something other than a CUDA kernel (OpenCL, I suppose?).

<comment><USER6> It compiles CUDA (a C++ like language) using LLVM down to host ISA (x86) and virtual low-level NV virtual assembly (SASS/PTX). Only translation from virtual assembly to model-specific GPU assembly is left to closed-source NV code.

For AMD porting you could possibly use [http://llvm.org/docs/AMDGPUUsage.html](http://llvm.org/docs/AMDGPUUsage.html)

</comment></comment></comment><comment><USER7> Related: [https://www.phoronix.com/scan.php?page=news_item&px=GPUCC- CU...](https://www.phoronix.com/scan.php?page=news_item&px=GPUCC-CUDA-GPGPU- Comp)

</comment><comment><USER3> I wonder how much of this was motivated by Nervana System's successes building their own assembler for Neon [0], or if perhaps this work started before it.

In either case more openness for low level hardware optimizations is always welcome and beneficial to the community.

[0] [https://github.com/NervanaSystems/nervanagpu](https://github.com/NervanaSystems/nervanagpu)

<comment><AUTHOR> I was wondering the same.

</comment></comment><comment><USER6> Video player is bugged for me in Chrome (doesn't stop stuttering after you do a seek).

Direct video link: [http://s3-2u.digitallyspeaking.com/assets/nvidia/events/sc15...](http://s3-2u.digitallyspeaking.com/assets/nvidia/events/sc15/SC5105_ETTS- va3d01-1300.mp4)

</comment><comment><USER8> This is a great thing since OpenCL has been spiraling towards the abyss after its main proponent (Apple) abandoned it, and programers seemed to prefer the less buggy and less verbose CUDA anyway.

In history of computing there seems to be an advantage for technologies with a single "de facto" implementation that is a compatibility target.

<comment><USER9> Being a C only API, while CUDA always had C++ and Fortran support didn't help either.

<comment><USER10> And that Fortan is still the language of choice for HPC - And has the support for CUDA allready

</comment></comment></comment><comment><USER11> Please do not use the titles of HN submissions to editorialize. (Submitted title was "Google breaks into Nvidia fortress (via OS compiler)".)

[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)</comment>


CrowdCode: Central Repository for Coding Tutorials - <AUTHOR> http://www.crowdco.de

<comment><USER2> The menu needs some work. I can't choose a category because the dropdown disappears as soon as I move the mouse.. Running Chrome 26</comment>


$822,000 Worker Shows California Leads U.S. Pay Giveaway - <AUTHOR> http://www.bloomberg.com/news/2012-12-11/-822-000-worker-shows-california-leads-u-s-pay-giveaway.html

<comment><USER2> Oh I completely agree that California is terrible with money management.

But the entire article is a thinly veil shot at unions and collective- bargaining-agreements.

Over simplified, the article is saying unions are causing all this mad spending and it's easy to see that they are at the root cause.

It praises all Republican, while blaming every Democrat.

</comment><comment><USER3> <quote>Davis escalated salaries and benefits for 164,000 state workers, including a 34 percent raise for prison guards, the first of a series of steps in which he and successors saddled California with a legacy of dysfunction</quote>

There's no question that it often feels that "leadership" is lacking from our political leaders. But much of the blame for this situation must be laid at the feet of the voters, who consistently wanted harsher and harsher penalties for criminals without regard to the cost. The prison guards would be much less politically powerful if there were fewer of them, and there would be less need for prison guards if not for idiocies like "three strikes" and mandatory minimum sentencing for nonviolent drug crimes.

<comment><USER4> Agreed, but that doesn't make for good linkbait.

One can ask where were the voters in the two terms since-- why didn't they hold the next governor responsible for undoing the "damage"-- but that wouldn't drive readership.</comment></comment>


Nine Javascript Gotchas - <AUTHOR> http://www.fitzblog.com/tabid/17782/bid/2127/Nine-Javascript-Gotchas.aspx

<comment><USER2> I thought the purpose of javascript was to be one big giant gotcha? :-)</comment>


Toward the next generation of programming tools - <AUTHOR> https://www.oreilly.com/ideas/toward-the-next-generation-of-programming-tools <comment><USER2> The linked Alan Kay answer is worth a read: [https://www.quora.com/What-was- the-last-breakthrough-in-comp...](https://www.quora.com/What-was-the-last- breakthrough-in-computer-programming)</comment>


Ask HN: Stolen Laptop - <AUTHOR>

Hello HN. I'm a long time lurker and the time has come for me to ask a question.
I woke on December 22, 2010 and found that the passenger window of my car was broken. The laptop and Christmas presents that were in the car were all gone! And, wow, that left me with quite a sinking feeling.
I have filed a report with the local police, but have not heard anything back yet. I would like to try to recover the item by sharing details of the laptop on various websites. My hope is that someone out there will realize that it is a stolen item. I plan on submitting detailed information (serial number, make, model, etc) on the local craigslist and stolencomputers.org.
Are there specific sites that HN users could recommend to post this information on?
I would love ANY general advice on the matter and any encouragment that this great community could offer in this tough time. I will be happy to answer any follow up questions if anyone would like more information.
Thank you, HN, and happy holidays!
ps. Here is a funny quote about stealing:
"In West Virginia yesterday, a man was arrested for stealing several blow-up dolls. Reportedly, police didn't have any trouble catching the man because he was completely out of breath." - <USER2> <comment><USER3> Since this is HN a better question would be: How can I communicate with my laptop if when and if it goes online again? Can I SSH into it? Is there some program running at startup that would allow me to control it remotely?

Best of luck with getting it back.

<comment><AUTHOR> The laptop runs Ubuntu Linux 10.10 and it uses a password protected log in screen. SSH is enabled.

I have thought about the questions you raise but I do not have any answer for that. Thanks for your reply.

<comment><USER4> Well you need some kind of service that updates your laptop's ip address like dyndns and the computer would have to log in automatically to an open network or another saved network in order for you to log in.

Given that it is password protected even if you had those I would suspect that the window would be extremely short to login if any and the most likely event is your laptop being formatted.

Best of luck, hope your christmas wasn't ruined because of some asshole.</comment></comment></comment>


Edible Microorganisms – Overlooked Tech to Counteract Agricultural Expansion - <AUTHOR> https://www.frontiersin.org/articles/10.3389/fsufs.2019.00032/full <comment><AUTHOR> Takes less than 1% of the space for equivalent food value of soybeans.

Does it scale? It can, but needs more development. One advantage could be in combining it with carbon capture. _Making the case for edible microorganisms as an integral part of a more sustainable and resilient food production system_ [https://link.springer.com/article/10.1007/s12571-019-00912-3](https://link.springer.com/article/10.1007/s12571-019-00912-3)

How does it taste? Start with Marmite, Spirulina, go from there. Better question is: How _can_ it taste? With those potential economies of scale, I suppose we'll find out soon enough.</comment>


Bitcoin Surges 15% Because Nobody Learned Their Lesson After the Last Crash - <AUTHOR> https://gizmodo.com/bitcoin-surges-15-overnight-because-nobody-learned-the-1833737971 <comment><USER2> This article makes no sense and the author is rather clueless about btc. Look in the comments. This guy says that BTC has no value, yet there is proof it does. Its a scam? Maybe this guy was scammed?</comment>


Show HN: Capian – Make better UX evaluations faster - <AUTHOR> http://capian.co

<comment><AUTHOR> Hello HN. My partner is a UX designer and I'm a full-stack dev. While watching her work, I found that she was wasting so much time building her usability evaluations reports that I built a tool to help her out.

It's a SaaS service for generating reports with a Chrome extension to allow capturing problems onsite.

I'd love to get feedback from fellow UX designers and usability professionals about their workflow and how to cover all the needs.</comment>


Four U.S. companies rule the world's cloud infrastructure - <AUTHOR> http://www.computerworld.com/article/3102904/cloud-computing/four-us-companies-rule-the-worlds-cloud-infrastructure.html <comment><USER2> Exoscale is a privacy focused public cloud provider with data centres in Switzerland. Strict Privacy laws there.</comment>


Building a Command-Line Application with Crystal - <AUTHOR> https://jclem.net/posts/building-a-command-line-application-with-crystal <comment><USER2> I've spent a number of years using ruby and I got super excited about the potential of Crystal about a year ago. The notion that I can use a Ruby-like syntax and ship a binary to deploy my web apps was killer. But, a year ago the language was a bit rough, and to some extent, it still is. The team behind it is open about their goals and it blows me away with how much changes on a _daily_ basis for a team of their size. Hopefully, the crystal team can set out to complete what they set their sights on for 2017[1]. That would really round out the feature set for a 1.0 release.

I think what I like the most is the community is willing to help you out. Although, nowadays a strong community is what makes or breaks a language.

[1] [https://crystal-lang.org/2016/12/29/crystal-new-year- resolut...](https://crystal-lang.org/2016/12/29/crystal-new-year-resolutions- for-2017-1-0.html)

</comment><comment><USER3> Anyone compare Nim to Crystal? Both are AOT languages with syntax inspired by dynamic languages (Python & Ruby). Nim transpiles to C and Crystal uses LLVM. I've been playing with Nim, but I have a feeling Crystal will catch on quicker.

<comment><USER4> i think nim has better compiler options (in particular, i don't know if it has already achieved go-like cross-compilation of static binaries, but if not it's further along that road than crystal is). [https://nim- lang.org/docs/nimc.html](https://nim-lang.org/docs/nimc.html)

meanwhile, crystal does not even support windows yet. [https://github.com/crystal- lang/crystal/issues/26](https://github.com/crystal-lang/crystal/issues/26)

<comment><USER5> Go-like cross-compilation only works with pure Go libraries that don't make use of either syscalls or cgo.

<comment><USER6> I keep hearing praise over how easy it is to statically compile Go applications. Does the same apply to static compilation? Is it only easy when using pure Go libraries?

<comment><USER5> Usually those praises come from young developers that never developed software back in the days when static linking was the only option.

So they look at Go's static linking, their experiences using _-static_ in gcc and glibc, and think they just found something magical.

It is interesting the amount of knowledge that gets lost within a few generations.

<comment><USER7> > _It is interesting the amount of knowledge that gets lost within a few > generations._

I've only been programming for 4 years. What's the second best way to learn the old practices and the way things were done (the first best being "living back then").

<comment><USER5> If you enjoy reading documents, BITSAVERS.ORG is a treasure mine full of lost knowledge.

[https://archive.org/details/bitsavers](https://archive.org/details/bitsavers)

Here you will find Xerox PARC, DEC, Burroughs, Apple, Sun, Borland,... old research documents, papers, manuals.

In the context of static compilation, for example in MS-DOS, take Turbo Pascal 6.0 programmer's guide.

[https://archive.org/details/bitsavers_borlandturVersion6.0Pr...](https://archive.org/details/bitsavers_borlandturVersion6.0ProgrammersGuide_11460728)

For some 8 bit love you can check ZX Spectrum and Atari archives.

[http://www.worldofspectrum.org/](http://www.worldofspectrum.org/)

[http://www.atariarchives.org/](http://www.atariarchives.org/)

Next step is to get an emulator for any of those old OS/computers and try to follow along one of those books.

Also there are some videos on YouTube showing those systems.

"The Smalltalk-80 Programming System"

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

"NeXT vs Sun"

[https://www.youtube.com/watch?v=UGhfB- NICzg](https://www.youtube.com/watch?v=UGhfB-NICzg)

"Steve Jobs internal demo of NeXTSTEP 3"

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

"Amiga Programming"

[https://www.youtube.com/watch?v=WOAyVIWFaXQ&list=PL1E7187BCF...](https://www.youtube.com/watch?v=WOAyVIWFaXQ&list=PL1E7187BCFFD11ABF)

"Amiga Hardware Programming"

[https://www.youtube.com/watch?v=p83QUZ1-P10&list=PLc3ltHgmii...](https://www.youtube.com/watch?v=p83QUZ1-P10&list=PLc3ltHgmiidpK-s0eP5hTKJnjdTHz0_bW)

The Mother of All Demos"

[https://www.youtube.com/watch?v=yJDv- zdhzMY](https://www.youtube.com/watch?v=yJDv-zdhzMY)

Just a very tiny sample of videos

<comment><USER8> I emailed the bitsavers link to our programming team at work with the subject: "jurassic park"

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> Hmm, seems like the author either does not know about JSON.mapping [0] or just chose not to use it. Honestly, the corresponding macro for YAML is the main reason I use Crystal for CLI apps since it comes with the stdlib. YAML is easy enough to write quickly that I don't have to do too much with option parsing. Plus you can just use your editor rather than the shell.

[0] [https://crystal- lang.org/api/master/JSON.html#mapping%28prop...](https://crystal- lang.org/api/master/JSON.html#mapping%28properties%2Cstrict%3Dfalse%29-macro)

<comment><USER10> I do use it in this project, but most definitely in the wrong way. I had a little trouble seeing how I could use it for getting at nested values of varying types and still have some sane error handling.

This post is very much about my first pass at this and my first experience with Crystal. Cleaning up the JSON parsing is the next item on my list when I have time.

<comment><USER9> Here's a quick gist that does what I think you want, modulo any specific error handling. [https://gist.github.com/usernamefornow/14f972df9429146b46846...](https://gist.github.com/usernamefornow/14f972df9429146b46846595b80e5fe2)

edit: note that the cleanest way would probably to write your own converter so you could avoid the union type, but I didn't want to put that in and have to write a comment about it.

<comment><USER10> Makes sense, thanks. For some reason, I was set on parsing the "env" values into instances of the same class, regardless of what type they were in JSON, but it's not really necessary. I'll also look into writing custom converters, because I'll likely need that in the future.

</comment></comment></comment></comment><comment><USER11> BTW the Crystal website has just been redesigned :) [https://crystal- lang.org/](https://crystal-lang.org/)

</comment><comment><USER12> Dangit, doesn't work natively on windows without bash :(

And I'm all windows lately. Guess I can try it on my mac but that's like over there.

I do love the multi-platform-ness and single file of go, so it'll be cool to try this and get some ruby love.

<comment><USER13> It seems like porting Crystal to run on WIndows is work in progress: [https://github.com/crystal- lang/crystal/pull/3582](https://github.com/crystal-lang/crystal/pull/3582)

</comment></comment><comment><USER7> I really, really like crystal but was bitten a few times on a project because it is still not quite ready for primetime.

Because its so young, there have been a handful of breaking changes which affected my code a few times (and even worse, my dependencies).

They have a good concurrency model but I'm waiting for them to add parallelism.

I mostly just crave the solidarity in tooling, dependencies, APIs, compiler options/performance which will come after hitting 1.0 (i hope). I'm excited for the day I can go all in. Keep it up Crystal team!</comment>


Ask HN: How will Comcast provide better service for Netflix content? - <AUTHOR>

Comcast and Netflix recently struct a deal last week that will improve the quality of Netflix video streaming [1]. What I would like to know is how exactly will this work? I envision two scenarios, which I will explain in a very general sense.
1. Comcast detects Netflix network data and somehow gives it preferential treatment.
2. Comcast uses algorithms to predict which videos are most likely to be watched in specific regions, and store the relevant video data locally so that network calls are more efficient (aka caching). I think this would be similar to the service that InstartLogic provides.
Which (if any) of these scenarios are happening? If it is the second, it seems like a really exciting innovation, and the story should receive much more positive reception in the media that it currently has.
[1] http://www.nytimes.com/2014/02/24/business/media/comcast-and-netflix-reach-a-streaming-agreement.html?_r=0 http://instartlogic.com/ <comment><USER2> I think your metaphor is kinda off.

Don't think of it like a stream, where some of the water can be separated off and filtered.

Think of it like a road system. All the roads between Netflix Town and Comcast City have to go through Cogentville, and the roads are PACKED. Traffic is crawling, really slow.

This deal is like opening a new six-Lane highway, direct from Netflix to Comcast, that allows everyone to travel really fast and avoids all the gridlock.

I don't think there was filtering before. I think Comcast just let the traffic get really bad, and was stalling issuing permits for the new bypass.

</comment><comment><USER3> How about 3, Comcast turns off whatever network throttling they have been employing against Netflix identified content streams. Which would be the inverse of 1. Comcast detects Netflix network data and does not give it detrimental treatment.

There have been a few articles claiming Comcast is throttling the connection when it knows it is coming from Netflix.

</comment><comment><USER4> Previously, Netflix was sending traffic to Comcast through Cogent. This traffic had problems because the link between Comcast and Cogent was saturated to such a degree that packets were dropping.

Today, Netflix now has their own connection to the Comcast network that is not shared with Cogent.

</comment><comment><USER5> Netflix has paid to have Comcast connect to their CDN, open connect. The way it works is you either host their hardware or you peer with them and they host it themselves. It is probably the second option, direct connections to netflix's network.</comment>


Once, the 'Judeo-Christian tradition' united Americans. Now it divides them - <AUTHOR> https://www.washingtonpost.com/politics/2019/04/17/once-judeo-christian-tradition-united-americans-now-it-divides-them/ <comment><USER2> "Judeo-Christian tradition" is a cultural label of dubious value and ambiguous meaning. I don't see what we have to gain by using the term.

</comment><comment><AUTHOR> What really strikes me as absurd about the insistence on "Judeo-Christian" roots (apart from the obvious historical enmity between the two religions and the difference in basic values), is the complete obliteration of the Greek and Latin roots of the Western world.

Greeks invented western philosophy, the Romans invented western jurisprudence. Insisting on Judaic roots (which are certainly in part conveyed, and transformed, by Christianity) and disregarding the cultural importance of Greece and Rome seems preposterous.

<comment><USER3> Because the Roman Empire eventually converted to Christianity, and many Greek and Roman works were transmitted down the ages through monasteries, the term "Judeo-Christian" does not necessarily deny the importance of Greek and Roman thought. It just underlines that what certain people may feel was really valuable from Antiquity, are those concepts that were compatible with Christianity (or, considering how many Jewish intellectuals figures grappled with Classical learning, Judaism).

<comment><AUTHOR> The fact that Greek and Roman texts were preserved in monasteries has nothing to do with the cultural contribution of Christianity- it's more of a lucky accident. A lot of Greek texts were translated and preserved by Arab scholars, nobody speaks of "Arab roots" of our culture.

Christianity has had a profound and determinant influence on the Western culture; so did Greek and Roman culture, which found a way to integrate with Christianity while remaining mostly distinct from it.

Judaism? Not so much. If anything reached us of Judaism it was already entirely contained and transformed by Christianity.

<comment><USER4> there is no christianity without judaism. if christianity had a profound impact, than by transitive property, judaism did as well.

the only way to argue your "If anything reached us of Judaism it was already entirely contained and transformed by Christianity." is to argue a christian supersessionist worldview (which was certainly the primary christian viewpoint for the majority of its history)

<comment><AUTHOR> It's exactly that. Christianity was historically born out of Judaism but (to simplify) in opposition to it. Any belief of Judaism that is not already included in Christianity is not part of the West's cultural heritage, and often in opposition to its values. Supersessionism was challenged only very recently, and out of purely political, not religious or cultural, reasons.

Claiming Judeo-Christian roots is a bit like saying that you're genetically the product of your father AND of your paternal great parents- pretty pointless, especially when you fail to mention the maternal contribution.</comment></comment></comment></comment></comment>


Go for the Music, Stay for the Holograms - <AUTHOR> https://medium.com/re-form/go-for-the-music-stay-for-the-holograms-bb369594c842

<comment><USER2> It's not a "hologram"' it's just a projection. You have to be reasonably close to the projection axis for this to be convincing, too.

In Japan, this has been taken further. No live performers at all. Here's a Vocaloid concert:

[http://www.youtube.com/watch?v=dhYaX01NOfA](http://www.youtube.com/watch?v=dhYaX01NOfA)

Both the image and singing in that video are entirely synthesized. Rock stars are headed for the unemployment office.

<comment><USER3> Hatsune Miku is also a projection, not a hologram. But I think it's "further" than you think, because every single song at the concert is created by a musician or team that releases the song online for free. The extremely popular ones are put into the concert, as a way of saying thanks by the company who makes the voice synthesizing software to the fans.

Miku is likely part of my dissertation; extremely outdated research page here: [http://alexleavitt.com/vocaloid](http://alexleavitt.com/vocaloid)

</comment></comment><comment><USER4> I wish the article knew the difference between a hologram and a projection.

</comment><comment><USER5> More shows with great visuals: Amon Tobin and Atom(tm) HD. If you have a chance, go see them!

</comment><comment><USER6> Are there any awesome shows like this coming up in Los Angeles?</comment>


Ask HN: What is it like to work at public Snapchat? - <AUTHOR> A recruiter from Snap reached out to me today and I thought to myself "they must be desperate if they're interested in me". I applied in the past but was ignored, even though I had experience working on a heavily used component of their cloud infrastructure. It could be that I have an extra year of experience under my belt, but I don't think that's the primary reason here.<p>My guess is that Snapchat is no longer the hottest place to work at. Could you share your experience with pre and post IPO Snap? <comment><USER2> Their RSUs vest immediately on a monthly instead of the standard 1 year cliff. I had an offer from December with a pretty generous share package that would have been very lucrative right now had I joined.

</comment><comment><USER3> I saw this "Ask" and checked their Careers website, I am surprised that they have so many 'gaps', and the recruitment on GRC/audit/security is only 2 people.</comment>


The volatile era that gave rise to Jane Austen and Lord Byron - <AUTHOR> https://www.washingtonpost.com/entertainment/books/the-wildest-decade-in-britains-history-it-doesnt-involve-the-beatles/2019/05/29/bb361246-818f-11e9-933d-7501070ee669_story.html <comment><USER2> [https://outline.com/FJqV4A](https://outline.com/FJqV4A)

<comment><USER3> Is there anything like this that doesn't require javascript to work?

<comment><USER4> Yes, [http://archive.is/3WT8X](http://archive.is/3WT8X)</comment></comment></comment>


ECMAScript 2016+ in Firefox - <AUTHOR> https://blog.mozilla.org/javascript/2017/02/22/ecmascript-2016plus-in-firefox/ <comment><USER2> Realistically, when are we going to see the modules situation resolved?

ES2017?

ES2018?

I know, I know, just use a transpiler and emit a bundle... but really?

It's been a draft since 2015, and no browsers have _any_ support for it yet, despite full support for the rest of the standard?

Are modules really that controversial?

I'm kind of disappointed, honestly, that despite all the progress in the ecosystem, this long standing issue still remains mysteriously unsolved, by anyone.

If you're using a transpiler anyway, who really cares if you have native support for the language features?

<comment><USER3> Forget about browsers, have you read the clusterfuck that Node.js is aiming for with ES6 Modules?

[https://medium.com/the-node-js-collection/an-update-on- es6-m...](https://medium.com/the-node-js-collection/an-update-on-es6-modules- in-node-js-42c958b890c#.afjuek8br)

<comment><USER4> It really is a shame isn't it? I'm not sure why the unambiguous syntax proposal was shot down – there were good reasons I'm sure – but I thought it was a pretty solid idea.

</comment></comment></comment><comment><USER5> I can see that strict mode inside a function using default parameters should throw according to the spec ( [https://tc39.github.io/ecma262/#sec-function- definitions-sta...](https://tc39.github.io/ecma262/#sec-function-definitions- static-semantics-early-errors)) but does anyone know why? Is strict mode something we should now be avoiding?

<comment><USER6> See here [1], under "Why make this change?".

[1] [https://www.nczonline.net/blog/2016/10/the- ecmascript-2016-c...](https://www.nczonline.net/blog/2016/10/the- ecmascript-2016-change-you-probably-dont-know/)

<comment><USER5> Ah that makes sense - by the time the parser sees a 'use strict' it's too late to apply strict mode to the default arguments. Thanks!

</comment></comment></comment><comment><USER7> Async Functions Status: Available from Firefox 52 (now Beta, will ship in March 2017).

</comment><comment><USER8> Good to see such quick progress in this area in major browsers. It's worth noting that WebKit also has 100% support for ES 2016+. So now only Edge is lagging in this regard.

[0] [http://kangax.github.io/compat- table/es2016plus/#webkit](http://kangax.github.io/compat- table/es2016plus/#webkit)

<comment><USER9> It doesn't help when one needs to target enterprise markets or devices that only have their factory provided browser.

<comment><USER10> That's what Babel[0] is for. Realistically you can't rely on native ES2016 for any target audience yet, but with Babel you can blissfully live in the future, today :)

Also, thrown in core-js[1] while you're at it.

[0] [https://babeljs.io/](https://babeljs.io/)

[1] [https://github.com/zloirock/core-js](https://github.com/zloirock/core-js)

<comment><USER9> Babel is only part of the history, then there is HTML and CSS support levels.

Some of our projects are with customers that still rely on XP with IE 8, require using the "Internet Browser" for pre-Android 4.4 or Windows Safari (!) or IoT devices without updatable browsers.

<comment><USER11> Your customers are lucky to have you. I imagine they will rely on XP and IE8 as long as you are around.

<comment><USER9> Not me personally, my employer is quite big, and any consulting company will happily sell such services.

</comment></comment></comment></comment></comment></comment><comment><USER12> Do any of these changes make the language objectively better? All I see are nice-to-haves that aren't really required.

<comment><USER13> I've always had a soft-spot for JavaScript, and have written a tonne of it over the years - all these "nice-to-haves" are really nice to have. I find it a lot more fun to write and, more importantly, easier to read six months later (assuming people don't try to be overly tricky with it: I'm looking at you, nested-destructed function parameters!)

</comment></comment><comment><USER14> I like how they added (what is essentially) left pad. Hah!

</comment><comment><USER15> I'm unreasonably happy about Async Iterators being on the roadmap. Makes it much easier to write imperative asynchronous streaming code.

</comment><comment><USER16> I wonder does ECMAScript 2017 has optional name ES8?

<comment><USER4> Not really, but there's certainly an off-by-one joke in there somewhere.

Since ES2015 the official nomenclature is ES<year>, to convey that a new version of the standard is cut yearly. While this may result in somewhat underwhelming releases, like ES2016, at least it's much easier to reason about and target than previously. Case in point, it took ten years or so to get from ES3 to ES5, and another five-six years I believe to get to ES2015.

These were substantial releases to be sure, but for a long time the uncertainty about when a spec draft was considered done was anything but fun, and I for one applaud the new nomenclature and process for being much, much easier to reason about and target.

<comment><USER17> We must stop using names like ES8 etc. _right now_ , otherwise there'll be a lot of confusion in 4024 about which version of ES your customers' IE supports.

<comment><USER18> Surely we'll get there in 2020 or 2021, is that ES10, ES11 or ES20, ES21?

Edit: and yes I know you were joking :)

</comment></comment></comment></comment><comment><USER19> Async iteration is already at Stage 3? Nice.</comment>


Randall's Theory Increases Number of Dimensions in Physical Universe (2009) - <AUTHOR> http://www.thecrimson.com/article/2009/6/2/class-of-1984-lisa-randall-as/ <comment><USER2> Title led me to expect a discussion of the mentioned theory; it turns out to be a biographical piece in the "Look how awesome our alumni are!" portion of the Harvard Crimson magazine. Nothing wrong with that per se, but not what I expected from the title.

<comment><USER3> This is exactly correct. I flagged the submission.

<comment><AUTHOR> @jerf, @silentplummet (all of 39 days) the article is posted on _" thecrimson"_, expect it to be a bit bio-ish. What title would you give the article? For me I only change the title if it's too long. This is a fault of story posters web wide. A bug bear of mine - there is no universal editor on the web.

<comment><USER2> Well, since you ask, I wouldn't post it as it doesn't seem to have anything of HN interest ("people exist who have done interesting things" isn't all that great of an article to start with, it being in a marketing context cuts it down even more), but apparently 47 people disagreed, so _shrug_. I do sometimes wonder if there's a substantial contingent of people who upvote things based on the title alone, bolstered by the occasional appearance of commenters who have clearly only read the title, but there's no way for me to prove it either way. (And that's an observation well beyond just this one article, btw, not a targeted thing.)

<comment><AUTHOR> _" I wouldn't post it as it doesn't seem to have anything of HN interest"_

I add anything I find interesting. You'd be surprised what the HN crowd read. A lot of the time I'll add two stories. The first a journal with an in-depth description of some topic. Followed by a general science article that points to the journal. Rarely does the source article get upvoted to the first page. Not always and it depends on the topic.

The article added here is further information on this article _" What killed the dinosaurs? Dark matter, says theoretical physicist Lisa Randall"_, [https://news.ycombinator.com/item?id=10714657](https://news.ycombinator.com/item?id=10714657) I was curious what kind of background Randall has to theorise an idea linking asteroid impacts, dinosaur extinction and dark matter.

</comment></comment></comment></comment></comment><comment><USER4> Dimensions in Physics are like indirections in C. One extra level of indirection fixes most problems in C. Same for Physics. The challenge is in explaining with less dimensions.

<comment><USER5> I don't see how that analogy works at all. Higher dimensions have completely different physics than lower dimensions. Whereas pointers are just an interpretation of an already existing data type.

</comment></comment><comment><USER6> Article is from 2009.

</comment><comment><USER7> My first thought was something XKCD related. I was dissapointed.</comment>


Flippant.js - A mini JS and CSS library for flipping things over - <AUTHOR> http://mintchaos.github.io/flippant.js/ <comment><USER2> Full flippant source is 79 lines: [https://github.com/mintchaos/flippant.js/blob/master/flippan...](https://github.com/mintchaos/flippant.js/blob/master/flippant.js)

Call me old-fashioned but I prefer not to use these "mini JS and CSS" libraries for every little thing I do. Any competent JS/HTML developer be able to implement something like this using CSS3 transitions in an hour. Too many developers just paste libraries together these days.

<comment><USER3> Why spend time re-inventing the wheel? If you're looking to sharpen your skills, then go for it. I believe most people would prefer to get their product out the door as quickly as it's reasonable.

<comment><USER2> Agreed, results are important but you're taking a chance trusting any library Joe Programmer created in a couple of hours. I think it's a form of Cargo cult programming.

<comment><USER4> Where do you draw the line? No more frameworks?

It's up to the dev to go through source and understand it. Having a test suite helps.

</comment></comment></comment></comment><comment><USER5> The initial flip isn't animating correctly every time in Firefox. Half the time it flips over too quickly to see any animation. Flipping back to the original content looks alright though.

<comment><USER6> I'm getting this also.

</comment></comment><comment><USER7> Note: doesn't work in <IE10 and doesn't degrade gracefully

<comment><USER8> In IE 10 the 'flip' in the demo worked for me, but the 'flip back' didn't. It looks like it is just the way the even handler on the 'back' of the item is wired up.

<comment><USER7> I don't think it's the library; the demo uses `CustomEvent`, external to the lib, which is not supported in IE, as a constructor. I honestly didn't test any of it, but looking at the code was obvious it'd both not work and just throw errors in IE.

<comment><USER8> Yes, re: event handler wire-up, that's why I wrote the part that said " It looks like it is just the way the event handler on the 'back' of the item is wired up"

</comment></comment></comment></comment><comment><USER9> The card version looks nice and usable, but the test flip has some issues. Works nice in IE10, but in Crome, the font gets ugly and has drawing artifacts (see [http://imgur.com/aXwvVr8](http://imgur.com/aXwvVr8) ), but that's chrome and not your fault :)

Also, in IE10, the input of the card is a bit off, where you can't read it properly ( [http://imgur.com/NF7lXbQ](http://imgur.com/NF7lXbQ) ) and the update button doesn't work...

</comment><comment><USER10> Very cool! I was actually thinking about wanting something like that.

</comment><comment><USER11> i like it, will combine it with [http://miniqr.com/onsnap.r](http://miniqr.com/onsnap.r) just because

</comment><comment><USER12> Broken in Opera...not surprising but worth nothing.

</comment><comment><USER13> Cool, but the modal is huge. Being mostly a noob at this kind of stuff, I assume that's outside of the scope of the library?

<comment><USER14> It's probably just sizing the modal to your browser window by default, and you can override/adjust it in the CSS when you're styling it for your needs anyways.

</comment></comment><comment><USER15> nitpick... why does the css class applied during card mode have 'modal' in its name?

</comment><comment><USER16> Flippant means creepy in French!

</comment><comment><USER17> no love for IE6? great stuff anyways. Saved for future use.

<comment><USER18> Does anyone love IE6? IE6 doesn't need love, it needs an axe.

</comment></comment><comment><USER19> Beautiful. thanks!

</comment><comment><USER20> not able to close windows</comment>


Tracking Assets in the Production of "Final Fantasy: The Spirits Within" (2002) - <AUTHOR> http://practical-scheme.net/docs/gdc2002.html

<comment><USER2> crazy to imagine the costs of 50 terabytes of storage in 1997. (also the pace at which those assets were probably loaded, sheesh)

if anyone has any clue, i'd love to know what the equivalent cost for that storage would've been.

<comment><USER3> [http://www.mkomo.com/cost-per-gigabyte](http://www.mkomo.com/cost-per- gigabyte)</comment></comment>


NASA Telescope Reveals Record-Breaking Exoplanet Discovery – NASA - <AUTHOR> https://www.nasa.gov/press-release/nasa-telescope-reveals-largest-batch-of-earth-size-habitable-zone-planets-around <comment><USER2> Main conversation: [https://news.ycombinator.com/item?id=13707547](https://news.ycombinator.com/item?id=13707547)

<comment><USER3> Thanks, we've moved most comments there.

</comment></comment><comment><USER4> HAHA. This discovery currently occupies 3 out of the top 4 spots on HN.

<comment><USER5> LOL.</comment></comment>


Lizard Squad launches DDoS tool, starting at $6 per month - <AUTHOR> http://venturebeat.com/2014/12/30/lizard-squad-launches-ddos-tool-that-lets-anyone-take-down-online-services-starting-at-5-99-per-month/

<comment><USER2> Can it be legal to sell a commercial DDoS tool ? Or can it be sold in the grab of security testing tool ?

</comment><comment><USER3> Seems to be the page:

[http://lizardstresser.su/](http://lizardstresser.su/)</comment>


Museum in a Box - <AUTHOR> https://museuminabox.org/ <comment><USER3> I'm genuinely conflicted on whether this is brilliant or a gimmick. I absolutely want people to be able to access a large percentage of museum holdings - ideally, 100% - but this seems like a problem of discovery and digitization. It's not clear what this gadget truly solves that wouldn't be better served by, for example, an augmented reality app.

The _only_ interesting point they make to chew on is that holding a physical object might help people forge stronger bonds with an these artifacts. However, the people most likely to be impacted by this is small children - <USER2> same ones that put things in their mouths. Montessori schools are all about manipulatable objects, ideally made of natural materials like wood.

I dunno, this seems noble enough and I don't want to shit on such a clever project. I just fret that 3D printed objects are expensive, breakable, likely to be stolen (accidentally or otherwise) and well, I can't help but feel like all of this is going to end up on the same garbage ship to Liberia some day.

Please, bring me to the other side! I want to love this.

<comment><USER4> I think it helps if you think of it as a project with two sides to it: a production/creative side, and a consumption side.

The positive thing about the 3d printed objects is that kids can choose and print them themselves. This has the benefits that the kids (a) get some hands- on 3d printing production experience, which is a fast gateway to wanting to make your own 3d models, which is a useful and empowering skill and (b) I have found that 3d printing a cultural artifact creates an incentive to learn more about it -- consumer 3d printers are so slow, it gives you plenty of time to ponder the item being printed, as well as the post-processing/finishing step, it builds an intimacy with the object you wouldn't have just walking by it in a museum. It might be hard to buy into this idea, but I have personally experienced it when printing scans of sculptures like the Pieta from the Vatican or Rodin's Thinker -- it motivated me to dig in and learn more about the background and nature of these works of art.

But yes, there is the issue that at the end of the day you are just pushing more plastic waste into the world. My adult daughter kind of hates my 3d printer for that reason, and I can identify with the angst. I wish there was a better story for PLA recycling.

</comment></comment><comment><USER4> I've spent some time looking into this as I was quite excited about the possibility of building one of these for the school where I work. It seems like an engaging project which would have benefit for the younger students, and could have all the content generated by older students, and make for some fun 3d printing projects as well.

I was a little surprised to find it is a closed EdTech commercial product and not open source. The whole thing feels more like a Hackaday project than a product offering. It is the kind of idea that when you look at it, you instantly get how it is built and can see how you could assemble one yourself given a week or so of time to tinker with a 3d printer, a Raspberry Pi, and another $10 to $20 of electronics, and make your own decisions over how much to focus on audio vs. putting a touchscreen on it as well. There just is not that much to it. And to have no real way of engaging other than as a big name museum they want to partner with, it is off-putting and discouraging -- this thing could have some real legs if it was open source. As it is now, it feels like they are artificially constraining the growth and application opportunities by holding the thing close to their vest. Good luck to them I guess, but it seems like a mismatch.

Yes, yes, "execution is everything" and ideas are a dime a dozen, and if it is so easy to build why haven't I made one yet? All good points.

</comment><comment><USER5> > Something like 5% of museum objects are on public display at any one time, > and then, they're normally only described by a small wall label.

I've heard this before. I've also read that its not that the items are rotated, but they never see the light of day. And its not just less significant works.

Michael O'Hare of UC Berkley argued that museums should sell or at least lease out much of their unseen inventory and use that money to lower or even eliminate admission fees. [0]

Certainly something better could be done. Museum in a Box is at least a step in the right direction

[0] [https://www.econtalk.org/michael-ohare-on-art- museums/](https://www.econtalk.org/michael-ohare-on-art-museums/)

<comment><USER4> I've bought into the idea that all major museums should have free admission or pay what you will. They are all well-endowed enough to do this, but are restricted from selling pieces of their collections to make ends meet. And what's the point of a museum anyways...is it just preservation or is it to allow the public to view and engage with our shared cultural heritage.

Part of the issue is the museum mafia puts onerous restrictions on the extent to which museums are allowed to sell off bits of their collections. That's why so many items are stowed away never to see the light of day. If they sell off items, they will be blacklisted from ever receiving a touring/visiting collection, which is the big money maker for additional admissions fees and bringing folks in who have already seen everything normally on display.

The code of ethics of the American Association of Museums explicitly forbids selling items from collections to meet operating expenses, and they will ban museums from receiving loans of artwork if they do so.</comment></comment>


Tutorial – creating space backgrounds using inkscape and the blur filter - <AUTHOR> http://www.2dgameartguru.com/2017/07/space-background-using-blur-filter.html <comment><AUTHOR> Here is another requested tutorial in the space series. This easy to follow step-by-step tutorial on creating the various elements to make a space background with nebula, stars, planet and asteroid uses the free vector tool inkscape.</comment>