Nuclear will die. Solar will live - <AUTHOR> http://noahpinionblog.blogspot.com/2015/01/nuclear-will-die-solar-will-live.html <comment><USER2> "A single nuclear plant can cost on the order of $10 billion U.S. That is a big chunk of change to plunk down on one plant. Only very large companies, like General Electric or Hitachi, can afford to make that kind of investment"

Sure, but I remember when only major corporations like GE and Hitachi had the kind of cash, facilities, and people you needed to buy and maintain this new thing called a computer...</comment>


Show HN: My animated website, rendered entirely in HTML5 Canvas - <AUTHOR> http://ericlesch.com <comment><USER2> \- Three seconds animation of your name and "Javascript developer" before I get an option to actually see content? Why?

\- The animation makes refreshing work really strange. I can see the buttons, they then disappear and re-appear before I can use the website.

\- Can't select text, no copy and paste, going to have to manually type out your email address to contact you? Never mind what it does for accessibility/SEO.

\- I had a problem with the back button sometimes taking me to a blank page (forcing a refresh and another watch of the name animation), though this seems to have stopped happening.

Interesting experiment, if only to show why this is a terrible idea.

</comment><comment><USER3> The bottom line is, Eric is not catering himself to engineering firms, he's catering himself to marketing agencies and their clients.

This site doesn't follow any specific standards, but {most} agencies won't either, because they're billing their time

<comment><USER4> I don't understand your second line. If an agency is doing a site for a client and it's not accessible to their customers, then they've failed to do the job. The client wouldn't say "oh, we'll pay you the same amount again to fix it" they'd say "fix it at your own expense".

</comment></comment><comment><USER5> While this is fantastic as a demo, I hope this does not become a huge trend. Canvas is almost as bad as flash if you use it this way

<comment><AUTHOR> What specifically is bad about it?

<comment><USER4> Lots wrong with it. Exactly the things that are wrong with Flash. At the risk of repeating what others have said:

None of the text is in HTML which means:

\- it can't be used by assistive technology, e.g. for people with reduced visibility. People with partial sight use the web too.

\- it doesn't work in reader mode, which is a common feature of web browsers to use standard CSS to read just the content.

\- it has none of the benefits of WAI-ARIA

\- I can't use services like Google translate

\- that archive.org doesn't work

\- search engine X can't index it. Maybe Google could one day with the right investment in technology, but there are more search engines than Google.

None of the styling is in CSS which means

\- your animation wastes CPU cycles and isn't optimised

\- I can't increase the size of the text if I need to if I have poor eyesight (zoom just makes the whole canvas bigger)

\- on my phone screen text is unreadably small and I can't do anything about it.

\- you're re-inventing layout stuff that browsers do. I found a layout bug[1].

Reinvents stuff that web browsers, not JS should be handling which means:

\- I found a navigation bug in a few seconds[2].

\- it doesn't work with older browsers. Some people are still using old versions of IE and can't switch.

\- that standard web behaviour doesn't work. How do I open a link in a new window?

\- it forces me to use the mouse to click things rather than the keyboard (not everyone uses the web the same way you do)

\- it doesn't work at all if JS is disabled.

[1] Layout bug: load window with small window size, then resize. Some circles move, some don't.

[2] Navigation bug: back button doesn't work under certain circumstances.

This is a good technical demo, and shows the development skills of the author. Unfortunately it also shows that he has no idea about core web development issues, which on the web is probably more important, especially in a portfolio piece.

<comment><USER6> I see your point, but the text is still text on canvas.

Rather than trying to change the world to not use canvas, how about screenreaders get fixed to read fonts off canvas?

<comment><USER7> If that's text, why do some of the letter shapes have jaggies? Screenreaders use the accessibility tree, a subset of the DOM; this "text" isn't in the DOM, it's not real text. Do you think screenreaders perform OCR on pages? JAWS has added an OCR function but it's only for trying to read a single element containing a picture including text (i.e. images) without a real text alternative (e.g. alt attribute).

<comment><USER6> > If that's text, why do some of the letter shapes have jaggies?

Probably because the site author isn't taking the window.devicePixelRatio and backingStoreRatio when creating the 2D context.

> this "text" isn't in the DOM, it's not real text

The text is not in the DOM, but that doesn't mean it is not real text. It is text, literally strings, written with `context.fillText()` which could certainly be wrapped by screenreader software.

Doing so would make the world a better place for the bling by providing a more consistent experience - since 100% of people using canvas will never get extra budget to modify their logic, but 100% of canvas fillText() calls could be handled by a screen reader.

Unfortunately a great deal of engineers seem to have invested time and reputation in the unlikely change-the-world scenario, so I suspect blind people will continue to have a poor experience on the internet while a11y engineers who don't actually care for workable solutions continue to dominate the discussion.

</comment></comment></comment></comment></comment></comment><comment><USER8> As beautiful as it is, it's also completely unusable for anyone with accessibility options. There's not even a text-only version.

</comment><comment><USER9> Reminds me of those Flash websites ten years ago.

</comment><comment><AUTHOR> Thanks everyone for taking a look and giving feedback. Thank you especially to the folks who gave me bug reports that I can take a look at and try to fix.

Most of the technical issues raised are fixable but a few are not.

SEO is fixable by following the Google ajax SEO spec. Accessibility and other issues with selecting and highlighting text are not.

Many of the other criticisms could also be levied at other javascript heavy sites (e.g. Facebook).

It's clear that many people are philosophically opposed to rendering websites in Canvas because it reminds them of Flash and is incompatible with the semantic web.

I guess the proof will be in whether or not web consumers end up thinking it is cool or not. That remains to be seen. Personally I think this approach opens up a lot of interesting possibilities.

Anyway, thanks again for your interest and responses, even if they were largely negative. :-)

</comment><comment><USER10> Completely unusable on mobile. You can't swipe when touching the canvas element and tapping anything doesn't work.

<comment><AUTHOR> Touch works on my phone. Which mobile device are you using?

</comment></comment><comment><USER11> Might want to look into hidpi support, the blurry text is painful to read :P

<comment><AUTHOR> What device are you using? An iPad Retina or something else?

<comment><USER12> I'm using a Retina MacBook Pro and it's also blurry for me. You should multiply the canvas "width" and "height" attributes by devicePixelRatio, but keep its size constant using CSS.

</comment></comment></comment><comment><USER13> It's visually clean, but if I were sent this site as a lead on a potential hire, I likely would have closed the tab and gone about my day. A few reasons:

\- I don't have immediate action items - regardless of remote resource load times I'm forced to wait for a two-part intro animation to unfold before I can do anything, _even on my fourth or fifth visit_. I don't have time to wait like this, and I don't want my users to have to wait for superfluous visuals either.

\- There's almost no content - I'm not sure what the "progress" bars in the skills section measure and how they were calculated, no description of accomplishments or skills built in experience section

\- UX animations are clunky at best and misleading at worst. The rectangle of blue that becomes the "back" button and sets off "Javascript Developer" gracelessly darts back and forth, and why when I press "back" does the carousel effect continue to turn _forward_?

I recognize this is likely more an opportunity to show off makemake's abilities, but as someone evaluating a potential hire I'm left with a lackluster impression. Apologies if this is too negative - I'm hoping the honesty will offset any lack of tact.

</comment><comment><USER14> The editor on makemake.io is very impressive.

You just picked a tough crowd to show this to... everyone here cares about the semantic web and has nothing but contempt for the "all-flash" websites from 15 years ago. You should really try making a CSS3 version that just puts z-indexed img and div tags in an relative positioned container and animates the x/y. Then people could insert their semantic HTML and animate it however they want.

If you go that route you could even allow people to create small widgets/components. Say you want a crazy/animated sidebar but don't want to break the rest of your page... you could just open up your editor and work on just the widget and export code to drop that widget into your page.

Overall I think this is an awesome project. I'm also coding a huge HTML5 editor project you should check out when it launches... [http://www.superanimo.com](http://www.superanimo.com)

It's more of a competitor to GoAnimate/PowToons than your startup. I think HTML5 canvas is underutilized in the startup community so I hope both of our projects take off.

<comment><AUTHOR> Thanks for the feedback. Do you have an early access/mailing list signup on your site where I can drop my email?

I also thought about doing the same thing in DOM with Famo.us but I found after some experimentation that the performance wasn't good when you had a lot of objects on the page. Canvas animation perf scales reasonably well.

Regarding widgets, I think maybe you are talking about something like [http://themeforest.net/item/quasar-wordpress-theme-with- anim...](http://themeforest.net/item/quasar-wordpress-theme-with-animation- builder/6126939)

I think you can also do that sort of thing with Adobe Edge or Google Web Designer.

Anyway, thanks for the feedback. I'd like to see your project when it's completed. :-)

<comment><USER14> I'll add you to the small list of people I'll email when SuperAnimo is released.

I don't have a mailing list. I hate signing up to lists that are all talk about an unreleased product... I rather just show people when it's ready. I have a full-time day-job so I can't work on it as much as I want, but I should have a rough version live at the end of next month.

</comment></comment></comment><comment><USER15> Really cool experiment but there're some issues:

\- SEO sucks. \- You're killing the Web semantic :-)

<comment><AUTHOR> For sure. If it was a proper site I would follow the Google Ajax SEO Spec. [https://developers.google.com/webmasters/ajax- crawling/docs/...](https://developers.google.com/webmasters/ajax- crawling/docs/specification)

</comment></comment><comment> mck- Despite all the criticism in this thread, I do think this (or some form of it) is going to be the future of CVs for web devs. A creative way to stand out from the crowd, and be different from other simple portfolio websites.

To really make a point, CSS 3D websites are even cooler :) some of you might remember acko.net [1]

[1] [http://acko.net/blog/zero-to-sixty-in-one- second/](http://acko.net/blog/zero-to-sixty-in-one-second/)

</comment><comment><USER16> It fails to show anything on Mac Firefox. Here's the console log

TypeError: this._container is null line 177 > eval:1:330345

<comment><USER17> On a recent Firefox (31.5), the page remains white if it is opened in background, but loads fine in the tab in which I open it has the focus.

<comment><AUTHOR> Yes.

That is because I pause the rendering engine if the browser tab is not focused. I don't want to consume a bunch of CPU and memory when the user isn't looking at the site.

<comment><USER18> the issue is that it _never_ starts rendering, even once the tab is focused.

</comment></comment></comment></comment><comment><USER19> [http://evangelcathedral.net/](http://evangelcathedral.net/)

</comment><comment><USER20> Nothing you showed on that website couldn't be made without the Canvas element.

</comment><comment> jest3r- Is there a way to make the canvas scale to the screen size while keeping aspect ratio?

How would Google index this site?

</comment><comment><USER21> Is it just me, or is there really no easing on the transitions?

</comment><comment><USER22> What a fantastic example of the wrong way to use animations.

<comment><USER23> This comment does not say anything. Explain! What is YOUR correct way to use animations?

<comment><USER22> Good animations should draw the user's attention to certain things. If everything animates arbitrarily, it just becomes a distraction.

</comment></comment></comment><comment><USER24> Not _entirely_ in HTML5 Canvas: apparently it uses JavaScript as well, which means that I see a blank white page with Makemake's footer.

<comment><USER25> JavaScript is the only way to access the Canvas API, so it's fair to say the site is written "entirely in HTML5 Canvas".</comment></comment>


New Windows 10 Update Hides Files Causing Serious Problems for Millions - <AUTHOR> https://www.forbes.com/sites/antonyleather/2020/05/18/new-windows-10-update-deletes-files-causing-serious-problems-for-millions/ <comment><USER2> Friends don't let friends read forbes.com when it comes to Windows or Microsoft. They have a serious hater on staff that is willing to lie to bring people aboard the "hate Microsoft" bandwagon.

I mean seriously... there are many _valid_ reasons to dislike Microsoft. Just pick one. You don't have to make up reasons, Forbes.</comment>


Ask HN: Best CS Research Papers to read? - <AUTHOR>

I'm a sophomore CS student, and would like to start deepening my knowledge much more. What are some good papers to start reading (as in, not so complicated that the content will go over my head). <comment><USER2> "Raft: A distributed Consensus Protocol" ([https://ramcloud.stanford.edu/wiki/download/attachments/1137...](https://ramcloud.stanford.edu/wiki/download/attachments/11370504/raft.pdf)) would be a very valuable thing to look at for a sophomore CS student. I imagine it's a bit different than what you've studied so far, but the protocol was designed for understandability and ease of implementation above all else. As a result, it's gained quite a bit of interest from the industry, and you'll find implementations in Go, Erlang, Java, etc. to pick apart.

<comment><AUTHOR> Just read the first page so far and it's interesting. I'm intrigued by server architecture and algorithms, thank you.

By the way, in case anyone wants to look at the safety proof and formal specification for Raft (the paper's citation link is broken), it's at [http://raftuserstudy.s3-website-us- west-1.amazonaws.com/proo...](http://raftuserstudy.s3-website-us- west-1.amazonaws.com/proof.pdf)

</comment></comment><comment><USER3> Here is a collection of great computer science papers to get you started: [http://jeffhuang.com/best_paper_awards.html](http://jeffhuang.com/best_paper_awards.html)

It includes some intermediate and pretty advanced topics.

<comment><AUTHOR> Wow, what a great list! Thanks, I will peruse this page.

</comment></comment><comment><USER4> One favorite of mine is Danny Hillis' dissertation on the connection machine:

[http://dspace.mit.edu/bitstream/handle/1721.1/14719/18524280...](http://dspace.mit.edu/bitstream/handle/1721.1/14719/18524280.pdf)

And not really a research paper, but if you haven't read it, you'd might enjoy Guy Steele's _Growing a Language_ :

[http://www.cs.virginia.edu/~evans/cs655/readings/steele.pdf](http://www.cs.virginia.edu/~evans/cs655/readings/steele.pdf)

<comment><AUTHOR> Thank you, _Growing a Language_ looks especially relevant to me because I have to write a ten page paper on "computers and language" for a class on programming language history/design.

<comment><USER4> Then you might also want to look at the "lambda papers":

[http://library.readscheme.org/page1.html](http://library.readscheme.org/page1.html)

<comment><AUTHOR> This seems very useful, thank you so much.

</comment></comment></comment></comment><comment><USER5> Nothing changed my worldview as much as this paper did, which I only saw a couple years ago. Less you think I'm some easily impressed fad chasing newb, I've been programming professionally for 13+ years

[http://ttic.uchicago.edu/~dreyer/course/papers/wadler.pdf](http://ttic.uchicago.edu/~dreyer/course/papers/wadler.pdf)</comment>


Ask HN: Is Ad Agency experience perceived negatively? - <AUTHOR>

Compared with the obvious examples of working at a Google, Facebook, big technology company, struggling startup, or having had an exit...is working at a big name Ad Agency (ex. Cripsen Porter, Chiat Day, Wieden Kennedy, etc) not perceived well within the startup community?
Even if you are highly technical and/or have a number of high profile projects in your portfolio.  My sense is that the startup community, entrepreneurs, and VC's do not recognize - or at least are not aware of - the value.
Curious to hear HN's perspective.... <comment><USER2> I just got out of the ad agency after working full time for several years while freelancing in my spare time. Agency experience is perceived negatively in the startup community because it's common knowledge that most agencies don't treat developers well. Mediocre developers often get high rates because there's such a lack of developers willing to put up with the kind of work (stressful, low budget, extremely short deadlines, not much room for polishing). A developer coming from an ad agency with "Javascript" on their resume is likely to only know enough jQuery to get by.

That said, it's often possible to differentiate yourself from the crowd by using phrasing that only knowledgeable developers use or listing a more detailed toolset that shows the same (eg: "Javascript, jQuery" vs "OO Javascript, jQuery, Backbone.js").

<comment><AUTHOR> Right. I think that there are two kinds of developers within agencies. One group that is fundamentally mediocre and will tolerate churn. And another group that is extremely talented and senior in order to produce great work in the context of churn, unreasonable requirements, etc.

It seems that the dichotomy between Advertising vs Startups is: Short projects that live to support a campaign vs stable products that target customer acquisition and an eventual exit for the company.

</comment></comment><comment><USER3> Startups have started to see the value in branding, design, and storytelling. Those are things you learn in the agency world.

The thing about ad agencies that startups don't like is their lack of accountability. If an ad campaign doesn't increase sales, the agency says to the client "hey, no biggie, we increased brand awareness".

That kind of measurement is dangerous at a startup. And if you've worked in that environment for the past 10 years, I could see a VC being concerned that you don't know how to "hustle".

But if you have a product with traction, that trumps everything.

</comment><comment><USER4> From my own dealings with ad agencies, I can tell you that many of them are permanently behind the curve regarding technology and internet developments. So that kind of experience on your resume may be like wearing a t-shirt that says "mediocre" - even if such assumptions are patently unfair.

</comment><comment><USER5> if you came from a background where you were on an ad sales/accountability team and knew all the metrics they usually look for in a website, I'd say that's VERY valuable.

</comment><comment><USER6> You're looking at this from the wrong angle. I actually did a lot of work for fairly large ad agencies and I still only knew Chiat Day from your list (I did work for them, never heard of the others).

The bottom line is, nobody cares. They care about what you say you've done and what you have actually done, and the passion you bring to your cover letter or whatever. The names on the resume won't mean anything to them.

The bigger problem is you've been stewing in the ad agency world and think other people outside it know wtf it's about.

(Having some of that bg myself, I would be very hesitant to hire someone from an ad agency unless they told me in very clear uncertain terms why and how broken it is. On the flip side, I know way more people at ad agencies who actually ship than I do at any other large organizations.)</comment>


Mojocast #2: Placeholders, methods, and formats  - <AUTHOR> http://mojocasts.com/e2

<comment><USER2> I've written a small web app (this one: <http://en.quelology.org/> still a work in progress), and Mojolicious is really great to use.

I'm still a bit too old-fashioned and cheap for cloudy things, but the easy of deployment still helps if you run it on your own server.

<comment><USER3> Cheap (as in free) cloudy things can be found at <http://www.dotcloud.com/>

I used it for my last Mojolicious API (<http://www.fakecall.net>) and it's a pleasure to work with.

<comment><USER2> Last time I looked at dotcloud, I found two services in the free plan to be not sufficient; I need at least two (perl, postgres), and another for caching as soon as I get some noticeable traffic.

Anyway, I'll keep it in the back of my mind, maybe I'll try it eventually.

</comment></comment></comment><comment><USER4> Great webcast. Placeholders are important right from the get go.

I just ported Robohash to Perl using Mojolicious and Moose. You can see placeholders in action here:

<https://github.com/grokify/Robohash/blob/master/webfront.pl>

GitHub URL: <https://github.com/grokify/Robohash>

HN Robohash Article: <http://news.ycombinator.com/item?id=2742367>

</comment><comment><USER5> Great job, as usual.

The web framework itself can be found at <http://mojolicio.us> btw.

</comment><comment><USER6> I Am developping a Content Management Framework/Application on top of Mojolicious and I am happy I started doing so. If you want to help: <https://github.com/kberov/MYDLjE>. Thanks Sebastian!!! And let there be more Mojocasts!!!

</comment><comment><USER7> Awesome screencast! Made me sign up to hackernews just to comment on it...

</comment><comment><USER8> Very pretty, is this really Perl?

</comment><comment><USER9> Even better than the first one.

</comment><comment><USER10> really cool

</comment><comment><USER11> tempire++

</comment><comment><USER12> Wunderbar!!!

</comment><comment><USER13> Another in Glen's excellent Mojocasts!</comment>


Ask HN: What is the right reading/coding ratio for learning purposes? - <AUTHOR>

I'm pretty much in the start of my career. I still have a lot to learn. But every time I have some free time I ask myself: should I do some progress on my reading (I have 3-4 books on my reading list that I really want to master as soon as possible), or should I do some progress on my side projects, which are really meant for learning purposes?
I'm really having a hard time deciding how to divide my time. How much time should I spend on passive reading (some of these reading are pretty theoretical) and how much time should I spend on actually coding?
I'd love to hear your takes on this... <comment><USER2> I'd say it would really depend on your level of education. When learning any tooling, you spend more time in the documentation at the beginning and need to refer to it less and less as you gain experience. The next steps are specific to the field you are working in, whether it be LOB, embedded, distributed, data processing etc. For LOB apps I found it invaluable to review design patterns (because all tooling/frameworks use them) and object-oriented design principles. Development is more than just programming. Programming is the method of writing software and should become an asset in your arsenal, just like project management or problem solving skills. Unfortunately a lot of educational material doesn't go into the realm of proper architected software and instead just focuses on programming. Take a look at domain driven design (ddd), distributed domain driven design design (dddd), command-query responsibility segregation and different types of logical layering such as n-tier, client/server,semi-connected apps or onion layering too.

On a final note, write a lot of programs - even if they are only a couple of hundred lines of code. Productivity really kicks in after you've become comfortable not reinventing the wheel all the time - everyone should invest time into working this out of their systems.

</comment><comment><USER3> Make sure they're both substantial and you won't be far wrong. Don't spend all your reading time just reading (without working through problems or otherwise engaging with it).</comment>


Amazon S3: Multipart Upload - <AUTHOR> http://aws.typepad.com/aws/2010/11/amazon-s3-multipart-upload.html

<comment><USER2> Not to be confused with the "multipart/form-data" encoding type for form-based file uploads. This is not an implementation of that protocol for S3.

<comment><USER3> Because we _love_ it when corporations come up with their own proprietary implementations of existing open protocols with similar if not superior functionality.

<comment><USER4> Apples and oranges. multipart/form-data is used for sending a set of form information, possibly including files, all together. This announcement is that S3 will now allow you to upload a file in pieces so that you don't lose everything when an upload is interrupted.

</comment></comment></comment><comment><USER5> Based on the docs, it appears that this also allows you to upload segments of files without knowing the final number of segments or the final file size.

This will be pretty damn useful for piping the output of some process generating a large file (i.e. video transcoding) and beginning the upload before the file has been fully created.

<comment><USER6> _This will be pretty damn useful for piping the output of some process generating a large file (i.e. video transcoding) and beginning the upload before the file has been fully created._

Even better: You can split a video into pieces, transcode each part on a different EC2 node, and upload the parts directly from those respective nodes.

<comment><USER5> won't work with all codecs, but that same concept can be applied to a lot of areas!

</comment></comment></comment><comment><USER7> _Limitations of the TCP/IP protocol make it very difficult for a single application to saturate a network connection._

I'm just curious, but exactly which "limitations" are those? I can believe that parallel connections help in practice (especially when fetching small objects), but for large objects, I find it surprising you can't get reasonably close to saturating a single network connection with a modern TCP stack (e.g., using TCP window scaling).

<comment><USER8> It's pretty much impossible to saturate even a LAN connection with a single TCP connection. The are a number of issues at play here — RTT (Round Trip Time, i.e. ping/latency), window sizes, packet loss and initcwnd (TCP's initial window).

The combination of the limitations imposed by the speed of light and TCP's windowing system means that you are buggered transferring large files over high-latency TCP connections. I haven't checked their figures, but here's a TCP rate calculator I just found which lets you tune the different parameters: <http://osn.fx.net.nz/LFN/>

_The greater the delay, the bigger the impact. For example if we take a standard Windows XP machine and plug in the values for a standard Gigabit LAN (typically .2ms latency between hosts) we get a maximum speed of 700Mbit/sec, but if we try if between two hosts, one of them in the USA (typically around 120ms) the maximum transfer rate falls to 1.17 Mbit/sec._

There are a number of attempts trying to fix TCP's failings in this regard. For starters, see this presentation by the Google/SPDY guys making a case for changing TCP Slow Start: [http://www.chromium.org/spdy/An_Argument_For_Changing_TCP_Sl...](http://www.chromium.org/spdy/An_Argument_For_Changing_TCP_Slow_Start.pdf) — here's the IETF Draft for increasing TCP's Initial Window <http://tools.ietf.org/html/draft-hkchu-tcpm-initcwnd>

And, more radically, see the uTP work by the Bittorrent folk who are trying to create a better alternative to TCP instead of simply fixing it — <http://en.wikipedia.org/wiki/Micro_Transport_Protocol> \+ <https://github.com/bittorrent/libutp> (source code).

Anyways, sorry for not going into too much detail (it's 4am), but hope I was able to clear things up a little.

<comment><USER7> _The are a number of issues at play here — RTT (Round Trip Time, i.e. ping/latency), window sizes, packet loss and initcwnd (TCP's initial window)._

Initial window size: not relevant AFAICS, I'm not talking about connection startup behavior.

RTT, Window size: if the bandwidth-delay product is large, obviously you need a large window size (>>65K). Thankfully, recent TCP stacks support TCP window scaling.

Packet loss: you need relatively large buffers (by the standards of traditional TCP) and a sane scheme for recovering from packet loss (e.g., SACK), but I don't see why this is a show stopper on modern TCP stacks.

I'm not super familiar with the SPDY work, but from what I recall, it primarily addresses connection startup behavior, rather than steady-state behavior.

<comment><USER9> In theory you should be right, and yet in practice it seems to be a problem. Here's a recent exchange that offers some real life numbers: [http://serverfault.com/questions/111813/what-is-the-best- way...](http://serverfault.com/questions/111813/what-is-the-best-way-to- transfer-a-single-large-file-over-a-high-speed-high-late)

</comment></comment></comment></comment><comment><USER10> This is very good - uploading large files is a PITA. Now all we need is a Flash client we can add to a website, and we'll have a reliable way for website users to upload huge files.

<comment><USER6> Did you really just use the words "Flash client" and "reliable" in the same sentence?

<comment><USER10> As fashionable as it is to deride Flash, the vast majority find it quite stable. I believe a good Flash developer could produce a solid upload client for this service. I also believe that every developer on HN would use such a client without batting an eye.

<comment><USER6> _I also believe that every developer on HN would use such a client without batting an eye._

Well, except maybe people on ipads....

<comment><USER10> Granted. Mobile devices are handicapped in terms of embeddable functionality, but that isn't limited to Flash. Java applets, the only obvious alternative for this use case, are in the same boat. I think that if mobile users want to upload >100Mb files over the air it's fair to make them use an app.

</comment></comment></comment></comment></comment><comment><USER11> Am I the only one who thinks it's strange that the AWS blog is hosted on typepad?

<comment><USER12> Perhaps, but I started the blog in November of 2004, long before EC2, S3, or any of the other services had been released. It was a clean and simple way to get a blog up and running and I've never had a compelling reason to go through the trouble to move it to another host.

Here's the first post that I wrote for the AWS blog: <http://aws.typepad.com/aws/2004/11/welcome.html>

</comment></comment><comment><USER13> I did not find this in the description for the service, but I'm wondering what happens if you have a crash or power failure while doing a multi-part upload and dont have the 'upload-id' stored anywhere.

First of all the storage for the data already uploaded is reserved and there is no way to release since you cannot abort the upload without the 'id'.

Second of all there doesnt seem to be a way to list active multi-part uploads, you can only list the status of an upload for which you have the 'id'.

Any ideas?

<comment><USER14> this doc: [http://docs.amazonwebservices.com/AmazonS3/latest/dev/iearch...](http://docs.amazonwebservices.com/AmazonS3/latest/dev/iearchitecture.html) says that there is an operation to list all in-progress multi-part uploads as well as list the parts uploaded for a given multi-part upload.

</comment></comment><comment><USER15> What is an acceptable use case for this few feature?

<comment><USER16> Here's how I'm going to use it:

I run a service that process S3 and Cloudfront logs for people. Each S3 Bucket generates between 200 and 1000 logfiles every day that need to be combined together to for a full day's weblog.

Part of what my service does is re-upload that combined logfile back to the bucket in question, and since for large sites it can be upwards of 200mb _zipped_ , it'd be nice to be able to upload it in little 5mb chunks that can be resent if anything goes wrong.

<comment><USER17> exactly the same use case here... :) Maybe Amazon should go a step further and enable people to get logs aggregated together by the chosen time unit (hour, day, week), so we won't need to do round trip just to join files.</comment></comment></comment>


Scaling nodes in a Dgraph cluster - <AUTHOR> http://blog.dgraph.io/post/performance-throughput-latency/ <comment><USER2> The thing is this benchmark uses a small data set and no concurrent writes. This means that the data set can be trivially cached in memory on every single instance.

In this benchmark there is theoretically no need for different database nodes to even communicate with each other after the initial data sync. It is embarrassingly parallel.

In fact it is somewhat alarming that going from 2 to 5 nodes doesn't at least double the performance, given that there should be absolutely zero need for coordination between servers.

<comment><AUTHOR> The writes for Dgraph actually happen in O(log N) time where N = number of subjects for a given predicate; and a background job then syncs the posting lists to disk later. So, that performance wouldn't be any worse than what we observe here.

However, to do writes like you would do them in production would require you to sync a mutation log to disk, before applying it in memory and returning an OK. This particular operation bounded by disk I/O would then become the bottleneck, and not help with doing benchmarking for the database. Which is why we didn't make writes part of this particular benchmark.

Dgraph does concurrent writes very well. To determine that, you can run Dgraph batch loader. It can load up the entire 21M triples from the blog post, in 20mins on an n1-standard GCE instance. [https://github.com/dgraph- io/dgraph#loader-performance](https://github.com/dgraph-io/dgraph#loader- performance)

When jumping from 2 to 5 nodes, we did want to ensure that the nodes have to communicate to run the queries, as they would in a real-world scenario; which is why the performance wouldn't just double.

I think you're putting a lot of emphasis on the size of the data. While that is surely important, the size itself isn't the only thing which proves scalability. It's about the concurrency, throughput and latency -- and determining that they do improve when you add more hardware power to the cluster.

<comment><USER2> Thanks for the info. I guess my follow up question is why doesn't Dgraph end up caching all the data on every node when it has the memory to do so? Is this a planned feature that you just haven't implemented yet?

<comment><AUTHOR> It depends upon the memory available. We have a background goroutine which checks how much memory we're using and evicts posting lists if we exceed a predefined usage. If we have a lot of memory then we just won't evict the posting lists, which means they'll be in RAM.

All this "caching" happens close to the disk level, just above RocksDB. We don't cache any results -- to me caching is cheating -- and we want to build something truly low latency. A user can easily add caching if they want to decrease the load on Dgraph, but it's not something I think we should be doing at the db level.

</comment></comment></comment></comment><comment><USER3> It seems that a lot of people don't realize that a scalability test is not a performance test!

They are close to orthogonal concerns. For example I'll take lower absolute performance if I can scale out.

Performance itself can be optimized separately, and usually that optimisation also applies to the scaled out version.

<comment><USER4> They are orthogonal to a point :) Thats why people want to see a real world dataset and queries. If it's performance is 100 times less than an alternative I don't care if it can scale out. Also if it can scale out to 10 nodes it tell's me little about how it will perform with 100 nodes. If It takes 30 sec for complex query on a production dataset I really don't care if I can run 1000 30 sec. queries in parallel if I need that query to run in 50ms on avg and to never run more than 200ms

</comment></comment><comment><AUTHOR> Thanks for your comments! I think people feel that the data set wasn't big enough to prove scalability. While I disagree, I think this is a great opportunity as well -- to hear from people. We can actually bring up the entire 1.9B triples from Freebase and run some queries on them -- get some more real world numbers. So, tell us what to run here:

[https://discuss.dgraph.io/t/give-us-freebase-graphql- queries...](https://discuss.dgraph.io/t/give-us-freebase-graphql-queries-to- run-on-dgraph/463)

<comment><USER5> You should run the whole of Freebase, or really the biggest thing you can get your hands on. Hope you do. I'd love something that can comfortably handle billion order graphs!

</comment></comment><comment><USER6> > Freebase is an online collection of structured data which includes > contributions from many sources including individual and user-generated > contributions. Currently, it has 1.9 Billion RDF N-Triples worth 250GB of > uncompressed data. On top of that, this dataset is over 95% accurate with a > complex and rich real world schema. It is an ideal data set to test the > performance of Dgraph. _We decided not to use the entire data set as it > wasn't necessary for our goal here_.

I don't follow. Wasn't using as much data as possible _exactly_ what scaling is about?

<comment><AUTHOR> Not exactly. Given enough time and a lot of hard disk, you can put the entire 1.9B triples into any database -- that doesn't prove that it scales. Also, if the database uses a single global mutex lock for all reads and writes, again it's not a scalable architecture.

Scaling is about throughput and latency. This post is trying to determine whether adding more machine power actually lets the db perform better.

<comment><USER7> > Scaling is about throughput and latency.

under reasonable constraint. throughput and latency from a cacheable dataset is moot for big data.

</comment></comment></comment><comment><USER8> If you are in graph benchmarking you should really have a good look at [http://ldbcouncil.org/](http://ldbcouncil.org/). Especially the fact that this is a read only benchmark. Plus your dataset is tiny. So all you showed is that if there is no contention and all data fits on the local machine there is no communication overhead and near perfect scaling. That is not a benchmark that is hard to beat, at all.

<comment><AUTHOR> This is not a benchmark. But, there is network communication going on in the multi node cluster tests.

</comment></comment><comment><USER4> OK if you load this dataset into Postgres it will be about 10-20X this speed for the queries performed in this test. What is the point of benchmarking a graph database on the tiny dataset and using queries that can be run easily on RDBMS? Isn't whole point of Graph Databases that they can perform well on queries that would not run well on RDBMS and handle datasets that RDBMS would choke on?

<comment><USER9> Not the _entire_ point. Relational databases have schemas that are not well suited to graph structures, and SQL is also a barrier. A better question is whether you need to implement your own storage backend or whether something like Postgres would suffice.

<comment><USER4> OK then what type of graph would be hard to store in RDBMS? There are obviously queries that one would want to run on graph data that RDBMS will not run efficiently (but the queries in this test are actually trivial for RDBMS). In what way is SQL a barrier compared to learning query language used by some graph database that is not applicable to anything else you do? "A better question is whether you need to implement your own storage backend or whether something like Postgres would suffice". You could just use a more established Graph Database that actually performs well on complex graphs?

<comment><USER3> Here's a thing that most RDBMS don't do well but graph DBs do: find me nodes connected to at least X nodes of type T where those nodes have attribute A and are also connected to node N. Now duplicate that filter a potentially arbitrary number of times.

The issue here is that the number of joins explodes, and depending on your schema you may be doing lots of self joins.

An additional complication is if your dataset is too big for a single host. In Postures you shard, but that is manual and has significant cost.

In DGraph you lose some performance but (hopefully) if you know something about your queries you can optimize the distribution function to minimize cross node queries. This is a pretty hard problem to generalize, but even a partial solution is good.

<comment><USER10> Yours is a great example of what graph DBs should be good at, but many self- styled graph DBs out there at the moment are not. Graph DB means to me only two things: index-free edge traversal and scalable built-in graph operations. While these would seem to be necessary and sufficient criteria to distinguish a graph DB, some instead use only the criteria of the GGP and equivocate graph DBs with schema-free DBs, which should be orthogonal axes of database features.

<comment><USER3> What is GGP?

I'm not aware of any schema free databases marketing themselves as Graph DBs. I'm sure there are though.

There is a distinction between graph and graph processing frameworks (GraphX etc) though, but I don't think that's what you mean.

<comment><USER11> OrientDB: [http://orientdb.com/docs/last/Schema.html](http://orientdb.com/docs/last/Schema.html)

<comment><USER12> OrientDB would indeed be an example of something that's only a "graph database" because marketing said it should be.

Last time I asked how to import an actual graph into OrientDB, a marketing person of theirs pointed me at a Java API for writing extensions to their code.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> For everyone complaining about this not being a performance benchmark, I invite you to check out this test: [https://github.com/amark/gun/wiki/100000-ops-sec-in- IE6-on-2...](https://github.com/amark/gun/wiki/100000-ops-sec-in-IE6-on-2GB- Atom-CPU) .

Doing about 30M ops/sec on a Macbook Air.

As for the authors of Dgraph, keep it up! Your tech looks promising and I'm excited to see more and more Open Source graph databases in the market. Would love to compare notes, shoot me a message.</comment>


Beer and Programming Language Pairing Suggestions - <AUTHOR> http://blog.shawnhermans.com/2013/01/beer-and-programming-language-pairing.html

<comment><USER2> Seriously? This article was written yesterday and javascript is still seen as "the only way to deliver code on demand to a browser". Sorry, but I love javascript and it's all been running in my console for the last 6 months.

So yeah, blabla "no offense intended", yadda "it's all good fun" yadda,... But most of those beers are pretty american-centric and thus...most of this article is not even remotely funny.

But still, programming language fanboyism CAN be funny, as evidenced with this Quora answer regarding "Programming languages in Layman's terms": <http://qr.ae/1tlQs>

</comment><comment><USER3> Ugh. Programming language fanboyism is still pretty cringe-inducing, even if you pair it with beer fanboyism...</comment>


Vine for Android - <AUTHOR> http://www.vine.co/blog/vine-for-android <comment><USER2> Vine seems awesome, but it has a fundamental issue that I just can't get past: I can't easily add my friends from Facebook. Now that isn't Vine's (or Twitter's) fault, it's due to Facebook's new policies[1], a policy that was nearly too late and required them to buy out Instagram.

I don't know how a company can help someone find their current Facebook friends, and match that with users of their social network, but it is one of the essential cogs[2] to usurp Facebook as the dominant social network

-

[1] "You may not use Facebook Platform to promote, or to export user data to, a product or service that replicates a core Facebook product or service without our permission" <https://developers.facebook.com/policy/> (section I.10)

[2] Finding existing friends is only one of the essential parts to growing a vibrant social network. You also need a stable and clear platform for people to communicate/share, and a novel feature/s to give people an excuse to try it out (e.g. Facebooks was more pics and tagging, G+ was circles/hangouts, Instagram was filters, etc).

<comment><AUTHOR> what's also really annoying, is that there's no way to search just by username; in case you dont want connect via fb or twitter at all.

<comment><USER3> there is. it's search by username. unless you're talking about android, where the answer is "real soon now!"

</comment></comment></comment><comment><USER4> As an android user I'm glad I can finally contribute meaningful content such as this <https://vine.co/v/b36jXQnxpQF>

<comment><USER5> I had thought that Vine was something akin to Google Hangouts until now.

So now I know instead that it is a simple to use, high quality animated gif generator... Which I guess isn't such a bad thing. It certainly has entertainment value (I'm not really of the camp that believes that every company has to make world-changing products)

<comment><USER6> I wouldn't think of it that way, more like Twitter for video sharing. By adding an arbitrary limit to what you can share - 140 characters for Twitter, 6.5s for Vine - and removing all friction between making the thing and sharing it, it removes the pressure of feeling like you need to make something good or polished, and you're more likely to share.

<comment><USER7> Mobile has gone way too far in this direction IMO. Making it easier to share mostly means not only that people post a ton of crap but they're too ADD to take the time to understand and appreciate content with more substance. Stuff like this dumbs us down.

</comment></comment></comment></comment><comment><USER8> Maybe I'm just an entitled jerk, but I get slightly annoyed when a popular app decides to limit itself to a single platform, and then release later. I subconsciously didn't bother with Instagram because it took so long to get onto Android, and to be honest even though I like Vine it's been out for a while now and to be honest I doubt I'll bother downloading it unless I feel a real urge to use it.

<comment><USER9> I find programming for iOS easier. I also think the target market on iOS is better quality than the Android one, despite of raw market share they are a lot of small and underpowered Android devices out of there.

If I were creating an startup with a mobile app I would definitely launch on iOS first, test the waters and see how that goes. If it works then I would start thinking about launching in other platforms.

<comment><USER8> While true, there is little stopping a team from supporting a set of high- powered Android devices.

The difference between Vine and a startup are obvious. Vine has teams for iOS, Android, and specific design, whereas a startup typically starts off with one or two devs at most. Twitter are known for being iOS fans, so they were always going to tailor their product towards iOS.

<comment><USER10> Vine started out as a small (3 person) startup that Twitter acquired just before their launch. Could they, post acquisition, have gotten the android version out quicker, maybe, but it's unlikely that they could have built the backend, an ios, and an android app with the amount of polish the ios app had at launch and launched at the same time with just the 3 people they had prior to the acquisition.

</comment></comment></comment></comment><comment><USER11> Finally. I recently switched to a Galaxy S4 and lack of Vine was disheartening to me. I'm glad to finally see a popular app make its way into the worlds most popular app store. I wish more high-profile apps would launch with iOS and Android in mind instead of just iOS, us Android users love cool apps too.

<comment><USER12> I'm actually quite happy with the app parody we're reaching. Most, if not all, of the apps on my Galaxy Nexus home-screen are available on both platforms.

<comment><USER13> Hilarious slip. Think you meant parity.

<comment><USER12> Well shit, just noticed this. :p

</comment></comment></comment></comment><comment><USER14> Does anyone else find this app sort of overwhelming? Not necessarily in a bad way either.

I remember when my boss showed me a flurry of vines from her trip to Washington DC, I found myself feeling a bit disoriented as I tried to catch up with the rapidly switching contexts of each video.

The same things happens to me when I'm scrolling through a feed. It's strange to me that it doesn't happen with pictures, but I can only describe it as being teleported through the globe in rapid-fire mode.

Am I just an old fogey at the ripe old age of 31?

<comment><USER15> No I feel the same way at age 21. It's quite hard to follow the quick-cutting nature of most videos. The ones I tend to like the most are comedy videos that have really quick setups and punchlines.

</comment></comment><comment><USER16> Yet another app that can access all your contacts and potentially steal/spam your adressbook. I know this is standard practice on iOS, but it really isn't acceptable.

<comment><USER17> I don't think many apps are really in the business of being evil.

I don't really understand this unfounded paranoia that apps are designed by evil people to do evil things.

<comment><USER18> That's not entirely the point. Most of the news we've seen here during the past years are about people breaking into these apps' (sometimes improperly secured) servers and then suddenly having access to all this private data about millions of users.

</comment></comment></comment><comment><USER19> Really surprised they are getting away with 4.0 and later. That would be like a dream come true for me to make an app that only supports those versions.

<comment><USER6> Pre-4.0 is down to about a 1/3 these days (<http://developer.android.com/about/dashboards/index.html>) but it's also probably the 1/3 least likely to use Vine.

<comment><USER20> I'm in the 1st 1/3, but not the 2nd.

</comment></comment></comment><comment><USER12> Finally. I love seeing high quality apps make it to Android.

<comment><USER12> Annoyed. I uploaded my first Vine and am connected to Twitter but the share option isn't appearing under the "More" (three dots) menu.

<comment><USER21> Looks like someone has a case of the Monday's

<comment><USER12> You said it.

</comment></comment></comment></comment><comment><USER22> Amazing how fast Vine has grown since it launched (in January), from Mary Meeker's report on the internet:

[http://www.slideshare.net/kleinerperkins/kpcb-internet- trend...](http://www.slideshare.net/kleinerperkins/kpcb-internet- trends-2013/18)

</comment><comment><USER23> I wonder how this will affect Instagram usage.

<comment><USER24> For maximum effectiveness users will purchase Projecteo slides of their Instagram photos, then Vine themselves doing shadow puppets over the projections.

<comment><USER25> This is exactly what my startup, Vinecteogram, does. Check us out on the App Store!

<comment><USER26> Great! I was looking for a mobile-first version of YouTwitFace.com.

<comment><USER27> I have no idea if this conversation is satirical or not.

</comment></comment></comment></comment></comment><comment><USER28> Someone already managed to upload the full music video of "Never Gonna Give You Up", but apparently Twitter asked the user to take it down:

<https://twitter.com/ws/status/341684952276029442>

</comment><comment><USER29> Can someone explain what the use case of vine is? Why would I want to use it?

<comment><USER30> Looks to me like they're replacing GIFs. Short clips, muted by default. If they succeed this will be a welcome change for the internet because video compression has advanced significantly since the days of GIFs.

<comment><USER31> It's more of a tweet-like approach to posting videos. The way I see most of my friends using the service is as a companion to Instagram, when they want to express a moment in a series of small video clips instead of in a single photo. I suppose you could call that "replacing GIFs" but it's more like YouTube than it is like Geocities.

<comment><USER32> There were a few companies that attempted to do this ( [http://techcrunch.com/2010/10/04/after-its-12-seconds-of- fam...](http://techcrunch.com/2010/10/04/after-its-12-seconds-of- fame-12seconds-tv-fizzles-out/) ) but Vine got it right:

* Timing: More people have camera phones / 3G/4G/LTE * Aping the existing Instagram structure for the news feed * Probably initially used AWS backend for cheap storage * Native App focus first and foremost * Immediate acquisition by Twitter

</comment></comment></comment></comment><comment><USER23> Thank God.

<comment><USER33> Finally.

<comment><USER21> This is a monumental milestone in innovation. Honored to be part of a society where Vine on Android makes the HN front page.

<comment><USER34> This is our generation's moon shot.

<comment><USER21> Elon Musk only wishes he were a part of this

<comment><USER35> But would he pay his workers in Bitcoins?

<comment><USER21> I think he would pay them with Zynga shares.

</comment></comment></comment></comment></comment></comment></comment><comment><USER36> I've been waiting for this. Now, only if a single one of the android phones had a decent camera, I'd be in business.

<comment><USER37> I'd consider the camera on the HTC One as one of the best mobile cameras available.

<comment><USER38> It will be interesting to see if HTC tries to set up some sort of Zoe to Vine integration.

</comment></comment></comment><comment><USER39> Is there a possibilty to make vines private for a personal travel diary? It would be really handy.

<comment><USER40> agreed. would love a tool like this. would use it to make something like this: [http://www.ted.com/talks/cesar_kuriyama_one_second_every_day...](http://www.ted.com/talks/cesar_kuriyama_one_second_every_day.html)

<comment><USER39> I've got three random followers the first day I setup a vine account, even though I had no vines uploaded yet. I really don't want every vine I make to be shared publicly. This definitely limits my usage of this app.

</comment></comment></comment><comment><USER41> it's way to difficult to find your friends on the Android version, especially when you can't search by username

</comment><comment><USER42> Holy Capacity issues batman. the vines are not loading for me...

</comment><comment><USER43> This app is incompatible with your Virgin Mobile LGE VM670.

</comment><comment><USER44> Ewww!!!

</comment><comment><USER45> Painfully slow and clunky non-native app. Crashed thrice on my Galaxy Nexus 4.2.2. Closed it. Not using as of now.

Guess, I'll wait for a few updates or patches before uninstalling. Or maybe I'll reinstall after it's stable enough.

By the way, I don't think there's a way to browse Vine on the web, is it?

App had it seems pre-subscribed to some of the users/streams/or-vines-maybe, because my _feed_ is not empty and I don't see a way to empty it and then maybe subscribe to users/handles I would find fitting to my taste(I doubt that seeing all the animations).

<comment><USER22> You might try <http://www.vpeeker.com> for an overwhelming web experience.</comment></comment>


How rich you'd be if you bought Apple stock instead of its products - <AUTHOR> https://thenextweb.com/plugged/2019/06/18/this-is-how-rich-youd-be-if-you-bought-apple-stock-instead-of-its-products/ <comment><AUTHOR> I bought an Apple Mac in 1994

Paid $1000

If instead I had bought Apple stock, that would now be 25,200 shares or $4.7 million dollars.

Sad but true.

</comment><comment><USER2> How rich you'd be if you bought random amounts of a tech stock a long time ago</comment>


Firefox OS Participation Hub - <AUTHOR> https://firefoxos.mozilla.community <comment><USER2> As a person who runs (as my main phone) a FirefoxOS (2.5) on a LG Nexus 5, I'd like to note that those who would like to try out FFOS on a device (maybe an old left over one, if you're not sure), are welcome to! The water's nice and warm, just dive right in :). The build and flash documentation is nice and relatively easy to follow, given the technical level of the goal that you're trying to accomplish (building a mobile OS and flashing a phone).

I'd love it if the page that was linked noted more ways to contribute to the community -- at present, it seems like there are two (but should be more):

\- Port FFOS (I'm actually doing this on one phone I had laying around, and it's actually pretty difficult because I am new to porting mobile android- based OSes)

\- Try FFOS on android

What about app reviews? last I checked, that was also a great way to contribute to the platform (assuming they're still done by volunteers). Also, contributing code, mashing bugs (a link to the bugtracker), i18n help all seem like things people could do to help (when I last built from master, some translations were still lacking)

</comment><comment><USER3> Tried the homescreen replacement for Android. It was not good, at all. The jank was impressively terrible and the interface was fairly broken. Dunno why anyone put the time into making an Android adaptation of something so totally incomplete.

I guess this might work someday, but I honestly don't understand the point of making an interface out of just HTML and CSS. The performance is truly awful, and will never get better until the models that govern those technologies are refined. It's impossible to optimize CSS, for example. (Although Javascript is definitely getting better, it's still not "native" speed either.)

I hope some rethinking comes to this project.

<comment><USER4> > It's impossible to optimize CSS, for example.

That's a bold claim, and it does not square with my experience optimizing CSS implementations. In fact, CSS at its core is well suited for parallel implementations, saturating all CPUs on typical workloads, and its declarative rendering structure maps more naturally to hardware-accelerated graphics APIs than traditional vector graphics APIs do.

Why, specifically, do you think CSS is unoptimizable?

<comment><USER5> As somebody who has optimized both CSS implementations and native rendering engines / UI frameworks, the main reason why I am fundamentally skeptical about the performance of CSS as an application platform is incremental layout. No one has ever implemented CSS with incremental layout in a way that is even close to being competitive with native UI code.

If you want to make a responsive UI, doing work incrementally and amortizing the cost of actions across frame intervals is more important than raw performance. This is especially true on mobile, where frequency / voltage controllers for CPUs and GPUs are tuned to work best on consistent workloads rather than bursty workloads.

<comment><USER4> > No one has ever implemented CSS with incremental layout in a way that is > even close to being competitive with native UI code.

So this is a really broad statement and without further clarification it's hard to pin down precisely what you mean. By incremental layout do you mean partial layout, or relayout after dynamic changes? For the latter, I don't see how flexbox (for example) is worse in this area than springs and struts, as it essentially _is_ springs and struts. And for absolutely positioned UIs (the old way mobile apps were laid out), layout time of CSS is essentially zero. For the former, it's commonplace to use frameworks that will do the standard "UITableView" sort of optimizations in script. Moreover, though, there's CSS Containment [1] coming soon to allow for these sorts of optimizations without having to use JS. I agree that CSS Containment is critical to allow CSS to achieve the performance of native frameworks, but this is an area of active work, and I don't see any roadblocks in the way of partial layout once CSS Containment arrives.

[1]: [https://drafts.csswg.org/css-containment/](https://drafts.csswg.org/css- containment/)

</comment></comment></comment></comment><comment><USER6> I tried the Firefox OS Android app on my Nexus 7 (2012). I don't know if tablet form-factors are a target but if it is, the icon sizes need some rework.

My Nexus 7 has a 7" screen and on it, the home screen icons are incredibly huge: at least 2-3 times the diameter of the standard Android App icons and look really out of place on my screen.</comment>


Tell HN: Amazon Cloud Drive is banning encrypted content and backup data - <AUTHOR> Got this from Amazon today.  I wonder if they're going to refund my money.  Also, anyone know of a good alternative?
> Dear Customer,
We're writing to let you know about an upcoming change that may affect how you access your content on Amazon Drive, and to help you take steps to keep your content safe.
We understand that you have used Synology Cloud Sync or Hyper Backup on Synology NAS to store information on Amazon Drive.
Amazon will discontinue access to Amazon Drive by Synology Cloud Sync and Hyper Backup starting on November 1st, 2020. Neither application will have access to Amazon Drive after November 1st, 2020, and the only way you will be able to access your stored content will be via Amazon Drive or Amazon Photos web, desktop, and mobile apps.
To ensure a smooth transition, we urge all Synology Cloud Sync and Hyper Backup users to follow these steps:
For Photo and Video content:
1. If you haven't already, download the Amazon Photos mobile or desktop app. (The mobile app is for photos and videos stored on your phone. The desktop app saves content stored on a hard drive or computer.) Or, you can use the web version by visiting: https://www.amazon.com/photos.
Check to see if your content includes encrypted files or special file formats. If your files are encrypted, you'll need to save the content in a different format. More information on how to access backup and encrypted data has been provided by Synology and can be found by visiting: https://sy.to/rogvp
2. Upload your unencrypted content to Amazon Photos, using the apps or website.
... [truncated due to HN limits] <comment><USER3> [https://www.synology.com/en- us/dsm/feature/cloud_sync](https://www.synology.com/en- us/dsm/feature/cloud_sync) lists a bunch of other backend service providers in addition to Amazon Drive. From my experience, Backblaze is dirt cheap; I moved all my personal backups via Arq from S3 to B2 a number of years ago.

<comment><USER4> Yev from Backblaze here -> We're definitely a good repository for all of that data. Happy to have you :)

<comment><USER5> I always liked you guys, glad you're still doing well.

<comment><USER4> Thanks for the kudos! We've been seeing a lot of talk about this today - I'm glad we can be there for folks now that they need us :D

</comment></comment></comment></comment><comment><AUTHOR> ... [rest of email]

For other files:

1\. If you haven't already, download the Amazon Cloud Drive app. Or, you can use the web version by visiting: [https://www.amazon.com/clouddrive](https://www.amazon.com/clouddrive).

Check to see if your content includes encrypted files or special file formats. If your files are encrypted, you'll need to save the content in a different format. More information on how to access backup and encrypted data has been provided by Synology and can be found by visiting: [https://sy.to/rogvp](https://sy.to/rogvp)

2\. Upload your unencrypted content to Amazon Drive, using the app or website.

After completing these steps, you'll be able to access your content even after access to Drive by Synology Cloud Sync and Hyper Backup are discontinued.

We understand this may be a difficult adjustment, and apologize for any inconvenience.

Thank you, Amazon Photos and Drive team

</comment><comment><USER6> It doesn't seem like amazon cloud drive is banning encrypted data based on this.

It sounds like Synology will no longer be able to back up to Amazon Cloud Drive and so they are suggesting Amazon Photos as an alternative for photo/video data, but Amazon Photos won't work for encrypted data.

Edit: Based on your followup comment it looks like this isn't the case, but maybe they're actually talking about encryption performed using the existing synology software?

<comment><AUTHOR> [edit - put quote back in context; they repeated the part I copied verbatim for Amazon Photos and for Amazon Cloud Drive]

> For other files:

> 1\. If you haven't already, download the Amazon Cloud Drive app. Or, you can > use the web version by visiting: > [https://www.amazon.com/clouddrive](https://www.amazon.com/clouddrive). > _Check to see if your content includes encrypted files or special file > formats. If your files are encrypted, you'll need to save the content in a > different format._ ...

> 2\. Upload your unencrypted content to Amazon Drive...

<comment><USER7> You've just removed the relevant context of that quote that they were referring to.

<comment><AUTHOR> Thanks. Fixed.

</comment></comment></comment></comment><comment><USER3> @dang/mods, can this be re-titled? The original title is somewhat inflammatory ("Tell HN: Amazon Cloud Drive is banning encrypted content and backup data") and not strictly accurate. I suspect that's why it was flagged off.

This is an understandable mistake--the OP cites an email that discusses removing encrypted content--but that appears to have been poor communication on Amazon's part that Drive is intended as a photo storage service, not a generic filestore.

</comment><comment><USER8> Seems like they are banning third party apps rather than encryption. It does talk about encryption but I think it's more because the encrypted data will be useless if your Synology NAS can no longer connect and decrypt it.

</comment><comment><USER9> This is becuase amazon is moving to storing photos/videos only, not arbitrary files.

</comment><comment><USER10> Seems like the real story is that Amazon feels like it can tell you what software you can use to manage the storage you've bought.

</comment><comment><USER11> Hmm -- I wonder the legality around banning of encrypted data storage on the cloud (not clear if amazon is actually banning it here, but sort of smells like it could happen).. if they ban it, the basic implication would be that your data is somehow expected to be parsed / inspected / analyzed by some algorithm or the government etc. Are there providers out there that have tried to ban having encrypted data on their servers and thats considered ok in US / EU for example?

<comment><USER12> I think the main reason here is cost since you can't dedup encrypted data.

</comment></comment><comment><USER13> I can understand them wanting to limit people abusing drive to dump backups to, but if I have an encrypted winzip file what are they going to do - <USER2> it? Seems a bit heavy handed, also a bit creepy that they are rummaging through looking for content of specific types. Talk about dropping a mask.

I'll also second Backblaze B2 - works a treat and the pricing is very reasonable. And they actually encourage you to encrypt your content before sending it to them :)

</comment><comment><USER14> I guess the "banning encrypted content" is coming from the instructions to decrypt and upload unencrypted content? It sounds to me more like they are providing these instructions because without Synology users would not have their encryption managed anymore, and so uploading encrypted data would result in losing the ability to access the data.

I don't see anything saying they are banning uploading, say, an encrypted ZIP file.

</comment><comment><USER15> I tried a trial of Amazon Drive ("unlimited" storage! Awesome) and realized everything that (ab)used it was unofficial and the web UI was so hokey it was obviously not a trustworthy solution for non media assets.

</comment><comment> Fire-Dragon-DoL I ran a lot of calculations and given I had to store terabytes of data, it ended up being cheaper to buy a server with a lot of HDD slots (I have gigabit at home)

</comment><comment><USER16> I'm using the synology sync to back up my Amazon photos to my NAS (and then back that up to Backblaze)... sounds like it won't be possible any more?

</comment><comment><USER17> I use Glacier Backup on my Synology to back up to Amazon Glacier - will this be affected or is it only Amazon Cloud Drive?

<comment><USER3> Looks like only Drive. Presumably they priced Drive based on being able to de- duplicate incoming data. Glacier is a fancy tape drive robot as a service; they're much more concerned with access frequency than data volume.

</comment></comment><comment><USER18> Do other Cloud providers allow encrypted content and data?

<comment><USER19> other cloud storage providers don't care. this appears to be a misunderstanding though, and amazon cloud drive also doesn't care.

rather, the suggested alternative of amazon photos does not allow encrypted data, only photo and video content. which is a totally normal restriction for a _photo hosting service_.

<comment><AUTHOR> HN made me cut the email in two. They've added the same restrictions to Amazon Cloud Drive (see my other comment...)</comment></comment></comment>