Ask HN: How To Paint a MacBook Pro? - <AUTHOR>

I've got a 15 inch MacBook Pro and i want to put the logo of one of my websites(ExplodingWumpus.com) on the back cover. I know that getting it laser engraved is the best option but i live in Calgary, AB Canada and everywhere i've talked to that has a laser engraver is either not interested or wants way too much money. So the next option i've looked at is painting it. I was just wondering how you guys would recommend doing it and with what? Making a stencil and then using aluminum spray paint? <comment><USER2> Did you try looking at companies that'll laser-cut vinyl decals for a reasonable price? Those look pretty shnazzy. I think most companies are a google search away. If anything, I can ask a friend who had a few cut before for more info.

<comment><AUTHOR> oh vinyl decals. didn't think of that. good idea.

</comment></comment><comment><USER3> Just remembered this German startup: <http://designskins.com/> \-- never tried it but apparently, upload your design and they send you the Laptop-sized sticky foil that apparently can be gotten rid of just as easily.

<comment><AUTHOR> they don't do transparencies :( gotta have a solid colour as the background.

</comment></comment><comment><USER4> Print off some stickers and just stick it on to your mac. Resale value intact. That or try engraveyourtech.com and <http://www.etchamac.com/>

<comment><AUTHOR> another good idea. just gotta find somewhere to buy full sheet clear printable stickers...

<comment><USER5> [http://www.scalehobbyist.com/catagories/Detailing_and_Displa...](http://www.scalehobbyist.com/catagories/Detailing_and_Display/BMF00000124/product.php)

</comment></comment></comment><comment><USER6> very carefully.</comment>


AuthPass: Free and Open Source kdbx password manager for Android, iOS and macOS - <AUTHOR> https://authpass.app/ <comment><AUTHOR> I have been using this app on ios and osx for quite a while and like it a lot. The developer is super responsive to feature requests and is really interested in the usability of the product; I made some requests on the Github page for the product and was very grateful to see the changes released shortly after. The use model is a bit different than typical kdbx-compatible apps but I got used to it and prefer it.</comment>


Using TLA+ to Understand Xen Vchan - <AUTHOR> http://roscidus.com/blog/blog/2019/01/01/using-tla-plus-to-understand-xen-vchan/ <comment><USER2> > Writing formal proofs is a little tedious, largely because TLA is an untyped > language.

I've written a somewhat lengthy discussion of this point on the TLA+ subreddit: [https://www.reddit.com/r/tlaplus/comments/abi3oz/using_tla_t...](https://www.reddit.com/r/tlaplus/comments/abi3oz/using_tla_to_understand_xen_vchan/ed0imf1/)

<comment><USER3> I agree with a lot of that, but in practice some syntactic sugar around types in TLA+ (or at least canned type invariant macros) would make it easier to write concise readable specs. Think "x is a natural number", "y is a member of set x", etc. It wouldn't satisfy the type theory folks, but would be nice for TLA+ users. In practice, it seems like everybody (including me) ends up re- writing a whole lot of type invariants in each TLA+ spec, and it would be nice to avoid that both to reduce boilerplate and to communicate to the reader what the author's intent was around data types.

<comment><USER2> It may be worthwhile to allow declarations of the form

        VARIABLE x ∈ Nat

but I haven't considered all the implications of doing that. May be worth a discussion on the mailing list or at the conference in September.

As to "satisfying the type theory folks," I'm not sure what it means. Type theory studies the features of typed formalisms; it makes no claims as to _when_ working in a typed formalism is preferable to working in untyped ones (although different people have different opinions). There are implementations of TLA in typed formalisms (in particular, Isabelle and Coq). Lamport explains why he designed TLA+ as an untyped language.

<comment><USER3> I think it is worth a discussion.

I simply meant that adding simple macros wouldn't make TLA+ typed, and so wouldn't make the people who think TLA+ should be typed any happier than they are today.

<comment><USER2> There are typed TLA formalisms[1], but they're not called TLA+. I don't know what it means to want TLA+ to be typed. It's like saying someone wants the untyped lambda calculus to be typed. I can understand someone who thinks Lamport was misguided in designing TLA+ as an untyped formalism, but so far it seems that he was right (for the reasons I detailed in my Reddit comment).

[1]: [https://www.isa-afp.org/entries/TLA.html](https://www.isa- afp.org/entries/TLA.html), [https://drive.google.com/file/d/1rAn3N5hViv3xNe2E55lMzpFFym1...](https://drive.google.com/file/d/1rAn3N5hViv3xNe2E55lMzpFFym1lpx9C/view)

</comment></comment></comment></comment></comment><comment><USER4> Additional information on Xen inter-VM communication is available at [https://wiki.xenproject.org/wiki/Argo:_Hypervisor- Mediated_E...](https://wiki.xenproject.org/wiki/Argo:_Hypervisor- Mediated_Exchange_\(HMX\)_for_Xen)

 _> The technologies provided by VMMs for communication between VMs have a critical impact on VM isolation properties, on the confidence components can have in the delivery of data and in the integrity of the data that is received. The video below identifies aspects of inter-VM communication system architecture that support important properties that are valuable for building secure systems. Terminology is introduced to enable classification of the existing body of art and survey relevant communication technologies in modern hypervisor, OS and microkernel systems. An example is presented — Argo, an inter-VM communication mechanism developed for the Xen hypervisor — and how it is distinguished from other communication channels on the Xen platform and elsewhere._

</comment><comment><USER5> Always love seeing more examples of TLA+ in action!

> One really nice feature of TLC is that (unlike a fuzz tester) it does a > breadth-first search and therefore finds minimal counter-examples for > invariants.

It's worth noting that many fuzzers go to great lengths to produce examples that are as small as possible, but it's true that this just comes naturally with TLC.

<comment><USER6> It seems like an odd comparison though. Considering that TLC is exercising a very, very coarse model and a fuzzer is usually exercising a real interface/implementation. The former is dealing with an idealized simplification and the latter is dealing with a shape of real domain coverage when searching for counter-examples.

Making even moderately complex TLA+ models or minor iterations on a simple model's depth of representation often results in exploding the search space for TLC and consequently the time to perform checking.

Both classes of tools are useful, but the comparison seemed odd since you wouldn't use TLA+ like a fuzzer, nor vice versa.

<comment><USER2> > Considering that TLC is exercising a very, very coarse model and a fuzzer is > usually exercising a real interface/implementation. The former is dealing > with an idealized simplification and the latter is dealing with a shape of > real domain coverage when searching for counter-examples.

TLC checks the TLA+ specification, however detailed it is. In practice, it's true that it is usually much more useful to specify at a level well above the code, but it could be at the same abstraction level as the code (the specification could even be mechanically generated from the code), or even, in principle, much finer: you can refine the TLA+ specification to an arbitrary level, including down to the level of electronics in the CPU. However, very fine specifications are far less practical.

> Making even moderately complex TLA+ models or minor iterations on a simple > model's depth of representation often results in exploding the search space > for TLC and consequently the time to perform checking.

You can avoid the explosion by asking TLC to sample the behaviors in the same way a fuzzer does, but then you'll lose the exhaustiveness and the proof of absence of errors.

<comment><USER6> I'm aware of both of these things.

In either case the purpose and thus optimization of each kind of tool is fairly different, even if abstractly they're both "state space exploration", which made the comparison seem odd to me.

</comment></comment></comment></comment><comment><USER7> What a well written article!</comment>


The 313 Apple patents that list Steve Jobs - robert-boehnke http://www.nytimes.com/interactive/2011/08/24/technology/steve-jobs-patents.html#patent

<comment><AUTHOR> Note that it is a statutory requirement in the US that a patent list as inventors exactly those who actually are inventors. You can neither leave off people who should be there, nor include people who should not.

If you add non-inventors or leave off inventors, that is grounds for invalidation of the patent. If you ever sue someone over the patent, they will vigorously and deeply probe that point.

There's a very good chance Jobs actually was an inventor on these patents, and not just listed for ego or show.</comment>


International Children's Digital Library - <AUTHOR> http://en.childrenslibrary.org/index.shtml

<comment><USER2> I was expecting this to require some sort of proprietary software and/or DRM or be a heavy JS web app, but was pleasantly surprised to see it's a simple layout using images for the page contents and works great with JS off.

The only things that would make it better are more descriptive URLs, cropping out the edges of some of the scans, and maybe an OCR'd PDF to download, but this is already _much nicer_ than many other official "digital libraries" I've seen.</comment>


Show HN: Node-email-verification – verify user signup with Node and MongoDB - <AUTHOR> https://github.com/StDako/node-email-verification

<comment><USER2> That's very cool, thanks for sharing! Starred the repo.

We're building some similar stuff in node / mongo / js: [https://github.com/jgoodrich77/hookupJS](https://github.com/jgoodrich77/hookupJS)

User / group management in particular.</comment>


Pascal GPU backed VMs with tools for data scientists - <AUTHOR> https://techcrunch.com/2017/05/03/paperspace-launches-gpu-powered-virtual-machines-loaded-with-tools-for-data-scientists/ <comment><USER2> Interesting, and I see it's backed by Y Combinator, too. Would need to see a price comparison with AWS and GCP, though. Do share if anyone does a proper write-up.

<comment><AUTHOR> Hi there, Paperspace Co-founder here. There's an in depth write-up here: [https://medium.com/initialized-capital/benchmarking- tensorfl...](https://medium.com/initialized-capital/benchmarking-tensorflow- performance-and-cost-across-different-gpu-options-69bd85fe5d58) We're about about a quarter of the cost of AWS. Moreover, the K80 GPU on AWS/GCP is very old and NVIDIA has made a ton of optimizations with the new Pascal architecture which we offer. Feel free to reach out if you have any questions.</comment></comment>


Google Bails Out on JavaOne - <AUTHOR> http://google-opensource.blogspot.com/2010/08/update-on-javaone.html <comment><USER2> To be expected really. It's a farce if Oracle can still call Java "Open".

</comment><comment><USER3> I dislike the pejorative title. Google isn't "bailing", which has a negative connotation. They are being sued and the number of potential conflict of interests that could occur by having their employees at JavaOne in an official capacity are high. It is in their best interest at this point to avoid the conference, although I imagine many of their java developers will still attend in a non-official capacity.

<comment><USER4> I can't see how someone could honestly use anything without a negative connotation for the situation as you detail it.

</comment></comment><comment><USER5> Honestly I'm not sure why they bothered even announcing that ;) Isn't JavaOne an official Oracle sponsored dealio?</comment>


Why I got fired as President and co-founder of Udemy, a now-$2B unicorn - <AUTHOR> https://twitter.com/gaganbiyani/status/1273647736026542080 <comment><USER2> A terrible employee at the first startup I joined (see racist, anger issues, etc) caused a lot of us to leave. If you're going to run a team, nay, if you're going to work with people it pays to invest in some people skills.

<comment><USER3> A startup I worked at for a short while was run by a guy who wouldn't stop trying to convince me he was the real Satoshi. Also he was in several different wars, and was shot through the chest back-to-front with a scud missile. Oh, and his girlfriend was part djinn (a real-world genie!). He was fighting with the military because they apparently lost all record of him having ever even served as Special Ops. Amazing. He was, by far, the scrawniest "ex-military" guy I've ever met.

I quit, still unable to tell if he actually had a product, or if he was stringing on his investors. What I did find was a whole lot of plagiarism in what looked to be the code for his product. Take the code from a book on Proto Lisp programming and sprinkle in a bit of Rigetti's work liberally, and voila, originality! I'm betting the money guys aren't going to be happy with him for long, if they are still funding him. He just frustrated me so much I gave up on a whole lot of money just to avoid having to listen to his nonsense anymore. It was frankly quite embarrassing having to pretend I was interested in his stories, considering how fictional and bizarre everything he had to say was.

Apparently months after I left, he was ejected by police from his office space. I never heard what actually caused it, but police aren't usually involved in landlord/tenant issues, and he definitely had enough money for the rent anyway.

I don't know how people like these manage to get funded in the first place. But now he's still pretending to be an expert in quantum mechanics from his kitchen table. I feel sorry for anyone that gets sucked into his "startup."

<comment><USER4> Military guy with a genie girlfriend. Now where did he come up with _that_ idea?

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

<comment><USER3> Wow... I hadn't made that connection. You've both helped make sense of his altered reality, and made it weirder at the same time. I think you are probably right.</comment></comment></comment></comment>


What Happened to Appear.in? - <AUTHOR> I few years back, I was on a remote development team. We used appear.in to almost every meeting. No registration needed - we just created a channel AD-HOC.
Now I'm on a new team working remote, and the domain appear.in can't be found in the form it was. It's seems to be something completely different now, and no easy conference tool for me :/ Anyone knows the back-story about this? <comment><USER2> It's been renamed to whereby.com and they've iterated their offering quite a bit.

No more ad-hoc channels - I now use talky.io for this.

<comment><AUTHOR> Thanks [https://medium.com/the-making-of-whereby/appear-in-is-now- wh...](https://medium.com/the-making-of-whereby/appear-in-is-now- whereby-b258d77d3ad9)</comment></comment>


Jonathan Franzen Is Fine with All of It - <AUTHOR> https://www.nytimes.com/2018/06/26/magazine/jonathan-franzen-is-fine-with-all-of-it.html <comment><AUTHOR> > "the arguments and social criticism he wanted to assert...could live and > breathe on their own...didn't have to Trojan-horse them into his novels' > characters or plot points..."

The best stories do not stealth-educate—they focus on using empathy in interesting ways.

-

> "He was directed to some online reading about avoiding road rage, and he > found a simple solution: Leave earlier." ... "That's how you handle anger. > You avoid the triggers. You know your terrain.

-

> On the one hand, to function well, you have to believe in yourself and your > abilities and summon enormous confidence from somewhere.

> On the other hand, to write well, or just to be a good person, you need to > be able to doubt yourself — to entertain the possibility that you're wrong > about everything, that you don't know everything, and to have sympathy with > people whose lives and beliefs and perspectives are very different from > yours."

> The internet was supposed to do this for people, but it didn't.

> "This balancing act" — the confidence that you know everything plus the > ability to believe that you don't — "only works, or works best, if you > reserve a private space for it."

<comment><USER2> > "He was directed to some online reading about avoiding road rage, and he > found a simple solution: Leave earlier." ... "That's how you handle anger. > You avoid the triggers. You know your terrain.

This seems like a misconception people have about road rage rather than good advice. My frustration comes from the sheer insanity that is out there and the low bar that either society or government has set for us as to what counts as competent driving. For example, other drivers often place me in dangerous situations outside of my control by failing to signal, driving too slowly, driving to quickly, failing to yield right-of-way, etc.

Now, I'm not particularly rage-y. I just cuss to myself and get away from the problem as soon as I can. So maybe the advice isn't meant for me, but "leave earlier" just seems unempathetic and trite. No matter how much earlier I leave, it's not going to make the guy In front of me trying to merge into 70 mph traffic at 20 mph go any faster.

<comment><USER3> Your gripe seems to be with the Gaussian distribution. When you see shitty driving, what you are looking at is average driving. You also don't look at your own driving from the outside. I'd probably find just as many reprehensible things about your driving as you do of others simply because, statistically, you are an average driver.

<comment><AUTHOR> He is the definition of a modern-major-general-driver

BTW this hn post appears to have been shadowbaned

</comment></comment></comment></comment><comment><USER4> I first heard of Franzen through a book review by the Welsh professor Robert Adams. Adams is a tour de force, who brings an incredible depth and character to every book he reviews. He retired years ago, but TVO has thankfully archived some of his best.

[https://tvo.org/video/archive/big-ideas/robert-adams-on- jona...](https://tvo.org/video/archive/big-ideas/robert-adams-on-jonathan- franzens-novel-the-corrections)

<comment><USER5> thank you for the link, I enjoyed Corrections and am still puzzled by sections of it that warrant a second reading. Mr.Adams review of the book encourages me to do this soon.

</comment></comment><comment><USER6> Great read.

It's interesting that he starts out by arguing that he's engaging with popular culture through television and he is not an elitist, but then ends the piece disengaged from the internet and arguing for the intellectual elites as cultural gatekeepers, and against the internet as it bypasses that process.

</comment><comment><USER7> no one cares

his book of essays is interesting, at least</comment>


Ask HN: Hiring at crummy wage – how to make it better? - <AUTHOR> In short: I've recently started a small game studio and I was considering bringing in an artist as an employee.
Now, we're still a little way off getting any real money in (consulting is the majority right now), so I have worked out I can afford to pay not really more than around £20-25k/pa. At least initially.
I was hoping to offset this somewhat with the following:
* 35 hour weeks max
* 40 days holiday/pa
* Work remotely
* Some budget for training etc
* Some equity TBC
* Decent wage jump in the future
The last one depends on the applicant not thinking we're full of crap of course.
Other relevant info: this is in the northern UK, so whilst still lower, this is not comparing against SV wages.
Does this sound at least somewhat reasonable to you? Alternatively, what would you want to see that would make you consider such an offer? If indeed anything! <comment><USER2> > this is in the northern UK --

The profile you are looking for is the young kid, who needs the space to exercise his talents. This person is most likely not 'looking' for work. They merely love creating, tinkering, & gaming. Actually getting paid is a bonus. Think Steve Jobs @ Atari> [http://www.gamasutra.com/view/news/127537/Steve_Jobs_Atari_E...](http://www.gamasutra.com/view/news/127537/Steve_Jobs_Atari_Employee_Number_40.php)

You will find them by networking with teachers/professors even a sports coach. Anyone who works with young people. Incidentally, managing this talent also requires special skills.

</comment><comment><USER3> Is it possible to hire a young, newly qualified(?) artist for the role but also spend some money on training and mentoring? Aside, do artists need/benefit from a qualification for a role like this?

Or hire a mother that is returning to the workforce. Choices can be very limited for people that need to pick up the kids after school and take time off during holidays. There's a massive pool of talent in that demographic.

<comment><USER4> I know of a marketing company that hired a mother recently. 3-4 days a week and come in hour later and go out hour earlier. She put to shame all 20something young guns. High quality work and fast.

</comment></comment><comment><USER5> That's why they call it work . . . (Lots of people work for a crummy rate, I think about it, it bothers me, do what you can to be a good employer and improve lives.)

I know I'd like to pay everyone six figures but market rates apply . . .

Avoid the headaches and cost, don't hire an employee . . .

Use contractors as long as you can. Take what you'd pay them as an employee and pay them above market rate for small gigs.

Distribute holiday pay as bonuses for work well done.

This will keep them happy and coming back to you plus you can try different people out and have someone in mind when you do grow to the point where you need someone full time.

I expect you could use contract employees even as you grow as I expect artists/graphics work could be completed as bundles of work.

Avoid hiring a full time employee . . . until it's absolutely necessary.

Paying a contractor more than market rate and nice bonuses would make you a great employer and build loyal contractors that will stick around.

Good luck with your game studio.

If you have an interesting game coming out post it here.

Especially Space, Sci-Fi and strategy games = )

</comment><comment><USER6> I'd look at hiring remotely. But I would see if I could split initial elements up into smaller contract tasks and hire people piecemeal to get a sense of work product for remote employees, and make the best of them an offer.

<comment><AUTHOR> We've tried this but so far they all prefer the contracting life - and we need some consistency rather than switching contractors often as they pick up new work or just vanish.

</comment></comment><comment><USER7> There should be a website for crummy wages...

I wouldn't mind exchanging some money for a remote job with more (then usual) freedom and a humane team/owner.

</comment><comment><USER8> I would keep it simple

1\. Figure out what the market is for the normal work-week.

2\. Scale the work-week until you can afford it.

3\. When you can afford more, add more hours.

</comment><comment><USER9> Could you clarify something for me? How do you have budget for training that couldn't go into salary?

<comment><AUTHOR> Well it could, but then there'd be nothing left for training.

</comment></comment><comment><USER10> Create a story around your vision, product and team. People will pursue opportunities for less income if the opportunities help them achieve their goals or align with their values. I can't tell you what your story is, but here are a couple examples to get you started.

 __We 're a small group of extremely driven, passionate game developers that like to have fun while we work.

 __We 're a small, humble studio with plans for world domination, our game EFG has XYZ growth metric and we need you to help us scale to the next level. We expect you to grow into a team lead and manage ABC aspects of our business.

 __We 're building the next generation gaming platform that is exciting because of XYZ.

 __We 're industry veterans from XYZ famous companies building games focused on X because of ABC compelling reasons.

</comment><comment><USER11> I've hired a brilliant young man at low pay (but appropriate for entry-level). 32 hour work week, flexible schedule (he starts at one p.m.), plus profit sharing on side projects and I'm mentoring him.

He spent the first two months studying, at my expense, to qualify as a novice sysadmin and gain a contract at my client.

This arrangement is working for us both. He's making more than ever before.

He's asked me to 2x his rate on the next contract.

<comment><USER12> >He's asked me to 2x his rate on the next contract.

I don't understand your implication? Is this a good or bad thing?

<comment><USER11> I wasn't implying anything, just sharing my experience. He's doing valuable work. I can definitely get him a higher rate now that he has a year of experience. Not sure I can double it. I'll try!

</comment></comment></comment><comment><USER13> Hire (out of country) remotely. For some it's a very good wage (it was once for me too).

<comment><AUTHOR> I had considered that but it's a bit of a headache for a FTE at our size. Might be worth looking again if all else fails though.

</comment></comment><comment><USER11> Other possible benefits are flexibility in schedule and profit sharing.

</comment><comment><USER14> If you want a real perk due like 20 days of mandatory vacation.

<comment><AUTHOR> Not sure what you mean? There'd be 40 days of paid vacation without any onerous conditions other than perhaps taking day 1-40 off.</comment></comment>


Show HN: I made a group chat app because I find social media overwhelming - <AUTHOR> www.heydonuts.com
Android: https://play.google.com/store/apps/details?id=com.heydonuts.dasmobile
IOS: https://apps.apple.com/us/app/hey-donuts/id1453300843 <comment><USER2> "this app is not compatible with all your devices"

Mi 9t pro, Android 9

<comment><USER3> Thanks for the feedback. I'll take a look to see why that isn't compatible. This is standard react/expo so it should work on a variety of devices.</comment></comment>


Show HN: Shippn - Airbnb of worldwide shopping - <AUTHOR> https://shippn.com <comment><USER2> Will be interesting to see how they handle duty & customs.

Do they rely on your own provided Total Value or if the stranger/host is responsible for opening your package and inspecting it...

<comment><AUTHOR> Hey, thanks for your comment. We handle the customs & duties with our global logistic partners. Shoppers are responsible for declaring the value of the item.

</comment></comment><comment><USER3> Very interesting, good job!

<comment><AUTHOR> Thank you! :)

</comment></comment><comment><USER4> This rocks

</comment><comment><USER5> Woww :)

<comment><AUTHOR> Thanks! :)</comment></comment>


Band-e Kaisar – "Caesar's dam" - <AUTHOR> https://en.wikipedia.org/wiki/Band-e_Kaisar <comment><AUTHOR> Posted this because I found it fascinating that a Roman-built bridge and dam was being used as far east as Iran and for as long as the late 19th century. But on top of the that, the possibility that it was built by Roman soldiers _under the command of the captured emperor Valerian_ is what really amazed me. Valerian has gone down in history as the only Roman emperor to be captured in battle [1] but I didn't realize that his soldiers basically became a civil engineering corps for the Persian empire.

[1] From Wikipedia: "Eutropius, writing between 364–378 AD, stated that Valerianus 'was overthrown by Shapur king of Persia, and being soon after made prisoner, grew old in ignominious slavery among the Parthians.' An early Christian source, Lactantius, thought to be virulently anti-Persian, thanks to the occasional persecution of Christians by some Sassanian monarchs, maintained that for some time prior to his death Valerian was subjected to the greatest insults by his captors, such as being used as a human footstool by Shapur when mounting his horse."

<comment><USER2> That's interesting. It seems too coincidental that Fallout: New Vegas has Caesar's Legion fighting over a dam and a character called Valerian.</comment></comment>


First Release of the Ada++ Programming Language - <AUTHOR> http://www.adapplang.com/ <comment><USER2> As of this posting the Github is empty and I cannot download the Ada++ Compiler. I learned on Janus Ada for DOS in the late 1980s, it sure has changed since then.

<comment><USER3> Janus was a good Ada-83 compiler. Late model Ada is a very updated beast. No idea what Ada++ is relative to modern Ada.</comment></comment>


Ask HN: Has a human been cloned but not been released to the world? - <AUTHOR>

I had a debate this morning with a friend who believes that a human has been cloned some where in the world but 'they' are waiting until he is at least a certain age before they introduce him to society.  I am curious if anyone else shares this belief? <comment><USER2> There are enough unethical scientists out there that it is a distinct possibility, the problems that still need to be overcome according to literature are 'doable'.

That said, I would also bank on the ego of those scientists to attract attention to the fact that they 'did it' as soon as such as human was carried to term.

So, on balance, can it be done ? Yes, probably. Has it been done ? Probably not.

The age of the individual would not really factor in to the equation at all imo.</comment>


CSS digital clock - uses no images, only CSS borders - <AUTHOR> http://dmitry.baranovskiy.com/post/iphone-clock-web-application

<comment><USER2> Taking advantage of the way a browser renders a very thick border is a tremendous hack, with all of the attendant admiration and alarm the word implies.

<comment><USER3> different hack: <http://toki-woki.net/p/scroll-clock/>

</comment></comment><comment><USER4> This hack is clever, but an HTML5 canvas would be an easier to implement and more straightforward solution.

<comment><USER5> Indeed, there are other technologies that can build a digital clock more easily, but I think the point was to further demonstrate the versatility of CSS. I've personally never before seen CSS do something like this. I also enjoyed how the author took the time to explain how div borders were used to create the numbers.

<comment><USER6> If that was new to you, then this should blow your mind (it certainly did mine 3 or 4 years ago). It uses roughly the same border trick to draw a 3d rotating polygon.

<http://www.uselesspickles.com/triangles/demo.html>

<comment><USER5> That's impressive! I had no idea borders were this versatile.</comment></comment></comment></comment>


CouchDB Google Tech Talk - <AUTHOR> http://jchrisa.net/drl/_design/sofa/_show/post/CouchDB-Google-Tech-Talk

<comment><USER2> Just finished watching this talk. Its pretty good. My only complaint is that there seemed to be a lot of generalization and non-technical flavor despite the technical audience (unless I'm misunderstanding the purpose of Google Tech Talks). I would have like to see him cut about 30 minutes off this presentation or fill it more with examples and case studies.

<comment><USER3> Thanks for the feedback. I think I have a little too much material in the talk for the format. The same slides took me 2 hours to get through at a user group meeting that night. My next goal is to cut the talk in half. Maybe 2 talks, one on the API, and another on the use cases.</comment></comment>


IMHO: Occupy Wall Street was Overdue - <AUTHOR> http://arnoldhur.tumblr.com/post/14896081241/imho-occupy-wall-street-was-overdue

<comment><USER2> Why are you posting this here? You are a bad person.</comment>


Electron 6.0 - <AUTHOR> https://electronjs.org/blog/electron-6-0 <comment><USER2> It's kind of interesting to see this release and previous ones mention 'performance fixes' (V8 and Blink does all the work) that it brings, yet the job postings for desktop software engineer requiring Electron experience also put data structure and algorithms and what I see here is a runtime that is very expensive in both space + time complexity. It makes no difference in using a different language with a faster runtime to combat this.

Imagine if I were to write a 'next-gen' CAD program or an alternative 3D modeling program in Electron. I'm not so sure if the manufacturing or the games industry would take a second look at that. But in our industry, it is seen as normal for our text editors, ide's, git clients and video editing software and our messaging clients to be expensive in memory and cpu time.

Can't we do better than this? Or do we have to accept and depend on Google to create our desktop software?

<comment><USER3> Imagine reading the sentence: "Imagine spacex building a rocket with cheap plastic. Why us working in the disposable fork industry are still using this crap material!". And then you realize that this comment gathers a lot of support from the disposable forks engineering community.

Time to deliver new features matters. Skill reusability matters. This is the economic reality that makes electron attractive to all the people that decide to use it to build software.

The alternative to electron is not always a leaner different framework. It may also be not building software because you don't have the resources and skills needed.

<comment><USER4> That might be the case economically, but this isn't the future that I or end users want, look where this has gotten modern desktop development, you now have sluggish, slow, bloated applications vying for end user's resources.

e.g. An end user using Discord and Slack has to download 2 Electron applications (~500MB of disk space) and this is for a chat app, Ripcord [0] can do both with less RAM resources and disk space.

> The alternative to electron is not always a leaner different framework.

You can have both, there are newer frameworks popping up such as Flutter, React Native and Reason Native.

[0] [https://cancel.fm/ripcord/](https://cancel.fm/ripcord/)

<comment><USER5> Who really cares about 500mb on a laptop?

<comment><USER6> There is a world beyond people who throw their notebook into the trash after 3 years. There are still plenty of users with 128 GB or even 64 GB. Now imagine Windows taking 30 GB out of these 64 before you even start installing any apps. Those people absolutely care about 500 MB.

<comment><USER7> This is such bullshit, who the hell runs 64gbs of hdd. Budget laptops 6-8years ago already shipped with at least 300gb hdds.

<comment><USER8> Plenty of laptops were released with small SSD's thou, probably still are.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> > Per our support policy, 3.x.y has reached end of life.

3.0.0 was released 10 months ago. If the current frequency of releases stays constant any version reaches end of life after about 9 months.

<comment><USER10> Electron does not have a LTS branch ?

<comment><USER9> They support the last three major releases, and that's it. So right now that's 6.x.y, 5.x.y and 4.x.y. A new major release is released about every 3 months.

To quote the official stance: "If an application has exceptional circumstances and needs to stay on an unsupported series of Electron, developers can silence the end-of-support warning by omitting the final release from the app's package.json" [0]

[0] [https://electronjs.org/docs/tutorial/support#supported- versi...](https://electronjs.org/docs/tutorial/support#supported-versions)

<comment><USER11> Considering how electron applications are deployed "exceptional circumstances" covers every single electron app in existence.

</comment></comment></comment></comment><comment><USER12> Appreciating the contrast with the 512-byte OS posted today.

<comment><USER13> Its a valid point, the average computer in the Western world is at least 4GB.

However when I was in South Africa a few years back they were still running with XP and < 2GB RAM with HDDs that I saw in a school and hotel.

Ok, hardware components are cheaper and easier to come by but we shouldn't stop caring about system resource usage.

<comment><USER14> If they're using old PCs running deprecated versions of Windows then they long ago stopped caring about resource usage and efficiency (energy usage and operator time) and are instead optimising for hardware cost. It's no reason to favour this or that platform for development.

<comment><USER15> > instead optimising for hardware cost

I imagine a big reason that they're on old hardware is cost - just because it's relatively cheap for someone in the West to get a decent modern machine at a reasonable cost doesn't mean that it's the same everywhere, especially when there's big disparities in the purchasing power of the native currency vs. the sellers/manufactures currency. It's not so much an optimization, I imagine most users on legacy hardware don't choose to be, it's more likely that they can't afford more modern hardware or it isn't available for them to purchase.

Another huge reason for users to stay with older operating systems (especially in business and government) is dependencies on legacy software - if an organization relies on software that has never been updated after Windows 95/XP and doesn't function on later versions then they're going to be stuck using legacy machine configurations until the process can be changed to something else.

> stopped caring about resource usage and efficiency (energy usage and > operator time)

How do you know that they don't care about how efficiently they can use a machine for whatever they're doing? It's a baseless assumption.

Even if your user percent that's stuck using older hardware/operating systems is in the single digits, that isn't an excuse to ignore their requirements IMO. Doing so is a sign of sloppy engineering, akin to designing a new mode of public transport, for example, that doesn't cater for disabled people.

</comment></comment></comment></comment><comment><USER16> Every time I hear about Electron, I have mixed feeling about it, is it :

* one the best thing that happened to desktop software as it enable web developers to build desktop portable app

* one of the worst thing that happened, because it makes the desktop world rely on Google and decrease even more the expectations on how much resources an app should consume

What are your opinions ?

<comment><USER17> Imagine if desktop developer wanted to go into web development. I assume he would learn HTML, CSS, JS. Why cannot web developers wanting to create desktop app learn new languages and SDKs? I've spent many years as a web developer, and a bit fewer years as iOS developer. Now I am back with web again, but I still thing way too much of the recent trends are being optimized for the developers at the cost of users.

<comment><USER18> Microsoft has a zillion native SDK developers. Recently they replaced their native Visual Studio installer with an Electron based one.

That should tell you something.

<comment><USER19> That isn't how big companies work. The decision about what to use is up to the 5 or so developers working on an app. Microsoft doesn't force specific languages or frameworks across all of their devs, and the native SDK devs are working on their own projects.

</comment></comment></comment></comment><comment><USER20> No mention of Wayland support, which means that desktop applications like Skype and Signal will continue to have a poor user experience on GNU/Linux unless you use Xorg. Using these applications with fractional scaling in Wayland is a bit rough—I guess we are waiting for Google to land patches upstream of Electron in Chromium?

<comment><USER21> Have you noticed any issues with XWayland aside from the DPI scaling? I find it pretty seamless on a standard-DPI (or a little higher) monitor.

</comment></comment><comment><USER22> I once drove a huge refrigeration truck across Australia. The full cooling system was running all the way, although storage was howlingly empty, save for twenty liters of drinking water, kept there because the fridge in the driver's cabin had broken down.

Electron always reminds me of that trip.

<comment><USER23> I love that analogy. The fridge in the driver's cabin is a web widget in a traditional toolkit, for instance [https://doc.qt.io/qt-5/qtwebengine- webenginewidgets-markdown...](https://doc.qt.io/qt-5/qtwebengine- webenginewidgets-markdowneditor-example.html) The large cooling system which requires a substantial amount of fuel is Electron.

</comment></comment><comment><USER24> It is totally me, seeing as how many electron projects there are, but I have never been able to make anything with it. Not even a POC, I have found it very complex.

<comment><USER25> I don't think it's very complex. Only look at the target users! :-)

Jokes aside, lack of basic code protection (aside of script minimization and/or obfuscation) it's that prevents me from using Electron/Atom/whatever. I know anyone could decompile a C# application easily, but I find the javascript case worst.

Do you know any commercial applications using any of these solutions? (I'm speaking of shareware / paid software, not "Whatsapp desktop" type)

<comment><USER26> PhotoStructure for Desktop runs on macOS, Windows 10, and Ubuntu Desktop, is packaged with Electron (I'm alpha testing 6.0.0 today), and will be commercially licensed when the closed beta ends.

I'm also preparing a PhotoStructure for Servers build that is electron-less, and uses either docker or snap (it's how I run it on my NAS). I'm looking for more beta testers for this headless build, if you're interested.

[https://blog.photostructure.com/introducing- photostructure/](https://blog.photostructure.com/introducing-photostructure/) has more background and signup information.

Disclaimer: I'm the author.

<comment><USER25> Thank you. How do you cope with the code being visible inside the application drectory?

About PhotoSctructure: \- Great application idea, sincerely. My photo library is a big mess and this sounds super handy. \- May I recommend another icon? I find strange that PhotoStructure "for Desktop" has a cloud in it's icon :-) \- Regarding being a tester, thank you, but my current file server is a _very_ stripped down debian box right now (Fujitsu Futro S900).

:-)

<comment><USER26> The cloud bit is because it's going to support dweb/multi-user sharing (added in a version coming Any Day Now).

I'm testing it on an rpi 4, so if you've got ~> 2gb ram, it should run.

<comment><USER25> Awesome. Please, tell me how can I help at "luis at my-username-here dot com".

Thank you!

</comment></comment></comment></comment></comment></comment><comment><USER27> I'm surprised Kivy [0] doesn't get more attention for desktop app development. Apps are developed in Python, it's cross-platform and MIT licensed. Running the hello world example uses just ~2.5% cpu and ~57mb memory on a 2015 mbp.

[0] [https://github.com/kivy/kivy](https://github.com/kivy/kivy)

</comment><comment><USER13> It seems like you have three choices at the moment for desktop development (for non .NET) that I am aware of.

* C++ and GTK or other UI framework : hard but excellent performance.

* Java and Swing UI framework : easier but less performant.

* Javascript and Electron : easy but terrible performance.

Which one will prevail?

<comment><USER28> Lazarus is easier than the first two by far and you get self-contained native executables (no runtime requirements or extra DLLs, at least on Windows), native widgets (on Linux you can choose between Gtk and Qt, though the latter does need a "bridge" .so), very low memory consumption (think a handful of MBs for a very simple application and memory requirements do not grow much outside of your own use - to give a ballpark, i just opened Lazarus itself with a simple program and the task manager reports just 36MB of RAM use for the entire IDE) and very good performance.

From the development side you get WYSIWYG UI editing, an IDE that has deep understanding of the code and updates it "live" as you make modifications to the UI (and other "managed" components), very fast compilation times, a very mature and rich framework (which is also very stable as the developers almost never break backwards compatibility meaning your code will compile for years to come) and recently the IDE got an online package manager and installer (repositories existed for years but they were manual to install).

Also the entire IDE can run and be usable even on a first generation Raspberry Pi (though for comfort, especially with the UI designer, it is a better to use something slightly faster).

The negative side is that as it relies on native widgets, it is much harder to create custom themes. Though there are themeable controls available (especially if you are not against paying for them as there are a few companies selling commercial components for Lazarus). Personally i prefer native controls anyway.

<comment><USER29> Yeah Lazarus is really a RAD environment. Unfortunately I don't like Pascal nor Modern Pascal that much. My holy grail is something of the same quality but using C# which, for me, is the superior language by far.

<comment><USER28> What do miss from C# compared to Free Pascal? Outside of something like LINQ and lambdas i can't think of any other major difference between the two languages (and lambdas are WIP, i think they already work in the trunk), what do you have in mind?

</comment></comment></comment></comment><comment><USER30> One library that is trying to be the mid-term between native performance and ease of use is Revery[1].

[1] [https://www.outrunlabs.com/revery/](https://www.outrunlabs.com/revery/)

</comment><comment><USER31> Hopefully with Apple's Catalyst, there wouldn't be a single Electron Apps ( Ok apart from VSCode ) on my MBP.

If you want iOS or iPadOS, you need to be Native. And you can now port it to Mac with ease.

The days company ship crappy Desktop software with Electron needs to come to an End.

</comment><comment><USER32> Almost two years ago I have created app (using Electron) that takes xlxs template and data files and generates bunch of xlsx files [1]. It was Electron 1.7.8 and now it is 6.0.0. I guess I need to check it out again.

[1] For curious: [https://github.com/daliusd/xlsx- generator](https://github.com/daliusd/xlsx-generator)

<comment><USER33> You should add a screenshot in the readme.

<comment><USER32> Thank you. Done.

</comment></comment></comment><comment><USER34> Its always the same complaints about Electron's size/runtime.

Try to build a desktop app using a native language/UI framework of your choice (C#/Java/C++ with whatever fancy UI libs you want) which will even come close to the power or HTML+CSS - hint, you can't. Just trying to implement the layout/cascading behaviors, never mind all the stuff on top, would take forever.

Next add the fact that you can get true cross platform apps with a single code base in reality, not the pseudo lies promised by ReactNative or the even more ridiculous RN on Web, or new pretenders like Flutter.

Electron isn't being used for tiny utilities - its used for apps like Slack/VSCode which really do need to run on multiple platforms and have the exact same UI/UX, which is simply impossible even if you dedicate 3 dedicated teams at 3-5x the cost.

Why don't people complain about how bloated browsers are? Electron is simply V8+Node bundled for desktop use.

<comment><USER35> If you statically link the ui lib - the binary can become quite large too. Another option is to make a web app and use "add to desktop".

</comment></comment><comment><USER36> Not mentioned in the release notes, but if I'm not mistaken this update adds support for Touch ID. I thought that was coming in 5 but it looks like it didn't.

[https://github.com/electron/electron/pull/16707#issuecomment...](https://github.com/electron/electron/pull/16707#issuecomment-506392471)

Welcome to 2016, electron apps!

This should help BitWarden be a more competitive alternative to 1Password for Mac users.

</comment><comment><USER37> I feel embarrassed to ask such an obvious question, but what would it take to _not_ download electron with every app? I assume the main drawback to doing this is having the correct version. This isn't a big problem for web browsers.

<comment><USER38> Arch packages the Electron runtime separately from apps. [https://wiki.archlinux.org/index.php/Electron_package_guidel...](https://wiki.archlinux.org/index.php/Electron_package_guidelines)

</comment></comment><comment><USER29> It seems to me that the short term solution for the runtime overhead is to have the core runtime running in the background and the applications running decoupled from it on top. Is there any reasonable mature project going this way ?

</comment><comment><USER39> Can anybody explain why electron includes all off

* chromium

* node.js

* v8 ?

To my understanding chromium includes V8, and node.js is built on top of it.

<comment><USER40> ElectronJS Application Architecture - [https://electronjs.org/docs/tutorial/application- architectur...](https://electronjs.org/docs/tutorial/application-architecture)

</comment></comment><comment><USER41> Can anyone suggest a software niche where Electron has not be used so far?

Here is one I think: 3D printer slicer, to my knowledge there is no slicer which uses electron I think it limits the contributers who can quickly deploy plugins in JavaScript

<comment><USER42> For slicers there is [https://pathio.xyz](https://pathio.xyz). Not fully Electron though, which is probably a good thing..

Edit: [https://pathio.xyz/hello-world](https://pathio.xyz/hello-world) "Pathio is built on a mixture of modern web-technology (Electron) and a powerful native slicing engine (written in C++17)"

</comment></comment><comment><USER43> Great, another release not supported by Spectron so you can't actually write tests for it.

</comment><comment><USER44> Electron is the true and only available cross-platform desktop build environment these days, it actually makes business sense for many. All alternatives(Qt, whatever) come out short in my opinion.

The major complain of course is its memory/disk space.

I don't see how that's going to be resolved soon even though RAM/Disk is cheap these days, maybe a smaller js engine, or maybe replacing nodejs with something lighter(e.g. golang backend).

Another approach is to run a local daemon(e.g. one go binary) that does all the backend operations(filesystem, network,etc), while use browser as your UI.

<comment><USER45> That will not help much. V8/node is not that big. The big part is chromium.

<comment><USER44> slack desktop is 60MB zipped. after unzip it's 205MB while slack binary itself takes 115MB, indeed node_modules only took 8MB,

[https://github.com/electron/electron/issues/2003](https://github.com/electron/electron/issues/2003)</comment></comment></comment>


Our 6 TB Hard Drive Face-Off - <AUTHOR> https://www.backblaze.com/blog/6-tb-hard-drive-face-off/ <comment><USER3> It's really great that BackBlaze does these real world, mass comparisons. Otherwise it's just limited to what a single test says, often at a single time, with a single batch of drives from various manufacturers.

These guys are probably one of the only qualified places to do this at scale and report real world results. Glad they do!

<comment><USER4> I often think of it as open sourcing a company. They give up a competitional advantage but probably gain as much or more in return (reactions on their article as "pull requests" for instance). I don't want to sound hyperbolic but I think it also advances humanity (The information and the spirit behind it).

Other companies do talks and papers too, but the Backblaze info seems really unfiltered and close to the real world.

<comment><USER5> > the Backblaze info seems really unfiltered and close to the real world.

Cloudflare seems to be a similar company. I recommend them both to anyone somewhat technical who needs a CDN.

My only complaint about Backblaze is no Unix client. I thought about setting up a Windows VM to manage backups, but I was terrified that Gninjas would sneak into my house at night and shave my beard.

<comment><USER6> They have a Unix client— probably just not the Unix you use (OS X).

</comment></comment></comment></comment><comment><USER7> The article mentions having to buy 10k+ new drives in the next few months? Is that number just your average increase for new drives and/or replacements for failed drives? Or does it include planned replacement of older pods with smaller drives? I'm curious if there's a point where you've found it less expensive (or less problematic with drive failure rates per pod) to replace and upgrade older pods compared to just letting them continue to run.

<comment><USER8> They used to say they don't spend any money on drive replacements (except for labor, obviously) because of the drives having 3-year warranties. Those were using 1.5TB drives. However, the original 67TB pods came out in 2009 and wouldn't be warrantied anymore.

According to their blog they took until 2011 to hit 10PB, which would be roughly 150 of the original 67TB pods. The 6TB drives are 4 times better, so they'd be able to replace all of those with just 40 of the new pods, I'm sure the savings in electricity and rack space would be too huge to pass up.

Then again, they have their own datacenter space now, so space probably isn't an issue but I'm sure electricity is. They said something around $2,100 a rack (which holds 10 pods) for electricity, space, and data. They were incredibly stoked to cut that in half by moving to 3TB drives with the 2.0 version of the pod so I'm sure cutting that in half excited them as well :)

<comment><USER9> Backblaze employee here. Some of the drives are "voided warranty" now, like the ones we "shuck" out of USB enclosures. We just include that into our cost analysis - for example if 5 percent of the drives fail, the warranty saves you 5 percent of cost - so if purchasing the warranty costs 3 percent we do it, but if purchasing the warranty costs 7 percent we do without.

</comment></comment></comment><comment> java-man Firefox: Unable to Connect Securely Firefox cannot guarantee the safety of your data on www.backblaze.com because it uses SSLv3, a broken security protocol. Advanced info: ssl_error_no_cypher_overlap

can we trust them with our data?

<comment><USER10> I thought it was just me (I've disabled some older cipher suites in about:config). Turns out this site only supports broken ciphers (RC4 and 3DES). Ewwww.

[https://www.ssllabs.com/ssltest/analyze.html?d=backblaze.com](https://www.ssllabs.com/ssltest/analyze.html?d=backblaze.com)

<comment><USER11> 3DES is not broken but it is legacy.

</comment></comment></comment><comment><USER12> Backblaze is pretty awesome for open-sourcing, effectively, their costs in a high-competition segment. It would be difficult (read: pointless) to compete in that market without massive vertical integration, greater scale, deep pockets and compelling, differentiated value (eg something different enough besides all the other entrants).

For anything critical in business (customer list, billing, finance, etc.), I would recommend also using Tarsnap in addition to whatever other (non-AWS) vendor/s are used for "offsite"/"offcloud" backup.

</comment><comment><USER13> Backblaze should expand their service to a cheaper cloud storage service similar to Amazon S3. They already have the infrastructure and the know-how.

<comment><USER14> The business model is based on only rarely having to retrieve old data. I suspect they spin down the drives (or possibly hibernate the whole box) when not in active "load" mode.

You would need to compare the pricing here to Amazon Glacier, if anything.

<comment><USER9> Backblaze employee here. Our drives never spin down, although we have considered this because electricity is a large monthly bill to us.

Because it is "backup" we are pretty relaxed about shutting down our pods to do maintenance, like replacing a drive. But that only takes 10 minutes, we try not to have machines offline more than that if possible, or it causes support issues from people trying to restore files.

<comment><USER15> Don't the writing patterns make old data tend to remain in older drives and newer data ending up in the newer devices? If that's the case, would reads to those devices become increasingly infrequent to the point it would be worth to spin them down? Are you worried about the stresses induced by spin up/down and thermal variations?

<comment><USER9> In general that's my theory also (that after the initial fill, and maybe after an initial "data churn" we might power them down). However, a full pod often has at least one file from several hundred thousand individual customers. If any one of those customers prepares a restore, those drives have to be spinning. Also, we now have an iOS and Android app that you have access to all your files on your laptop from the convenience of your Smartphone - <USER2> again means the drives have to be spinning.

> Are you worried about the stresses induced by spin up/down and thermal > variations?

Absolutely. Our datacenter techs are convinced that if they swap a drive QUICKLY the pod has a higher chance of coming back up without any problems, if they let the pod get entirely cool it statistically seems to have more problems when it comes back up - a full cool down and heat up seems to cause issues.

</comment></comment></comment></comment></comment><comment><USER16> No failures recorded at all. This is pretty impressive for the drive manufacturers:

"Let's review the Seagate and Western Digital drives so far:

Initial reliability (how many drives failed) – No failures.

Running reliability (3 months) – No failures

SMART Stats (3 months) – No error conditions recorded for the 5 stats that we utilize."

<comment><USER17> Of note is that since Backblaze is a backup company, their hard drives will probably not see a lot of churn / activity - write once, wait until something happens. Maybe refresh the data every once in a while.

I'd like to see similar tests from companies like Amazon and Dropbox (although the latter probably uses the former), in various use cases.

<comment><USER18> Wouldnt they see the same amount of churn a typical user would see?

I do not use them but they say "That's why Backblaze backs up your data automatically and constantly looks for new and changed files to backup. Install Backblaze and never worry about losing a file again."

Unless you are running a database it seems like the most common use case for files is write once, update every once in a while. Document creation (code for us or office docs non-coders) would be a bunch of writes up front then follow the same pattern of update every once in a while

I suppose their reads are much less than a typical user, but I didnt think reads contributed much to eventual drive failure

<comment><USER19> Hypothesizing about how Backblaze stores data: because they likely keep a series of backups, it's more likely they write each delta out separately. I'd imagine it's likely they no not have whole copies of your latest backup on their drives, but they could reconstruct one at will if needed. If that were the case, it would indeed be close to write-once.

<comment><USER9> Backblaze engineer here. If a file is less than 30 MBytes and it changes even 1 byte we push an entire copy to a new location in our datacenter. We preserve the old copies for 30 days so you can "roll back time" up to 30 days (like if you edit a document but want to revert).

For files larger than 30 MBytes we break them into 10 MByte chunks and only transmit the chunks that have changed. So the worst case is you insert 1 byte at the very start of the large file - this effectively changes EVERY 10 MByte chunk and we transmit it all. The best case is you append 1 byte to the end of the large file, because then we only have to transmit that one chunk.

<comment><USER20> I'm very curious; has a scheme that attempts to optimize against that worst case been considered? (Assuming you guys have, was it not used because the net tradeoff wasn't worth it?)

It seems like if you're already going through the effort to see if chunks have changed, you can readily do some heuristic where you check the end chunk of both sides, and scan inwards until you find a change; something to that respect, further minimize replicated data? I'd assume you might have CPU cycles to spare, but I'm too far into assuming already to feel comfortable so I'll just hope you answer :P (thanks in advance, it's been great to read what you've written thus far.)

<comment><USER9> > have you tried a better binary diff algorithm

We just never got around to it. In practice, it turns out most well written programs with large data try not to insert one byte at the start of the file. For example, take your large Outlook "pst" file (commonly 1 - 4 GBytes). When you get an email, it seems to append it to the END of the pst file, plus update some internal tables. So a large amount of that won't change.

Also, the worst case is it wastes space in our datacenter (and some bandwidth) for 30 days and then is cleaned up anyway, so you can measure the theoretical amount of money to save and it won't profoundly change our business so we put it off. Not to say ANYTHING is off the table, we're just always swamped with some project or other. :-)

</comment></comment></comment></comment></comment></comment></comment><comment><USER21> Unfortunately not the most direct apples-to-apples comparison. The WD Red drives are designed for use in NAS systems, whereas the Seagates used are desktop drives. Seagate does have a brand of NAS drives (called simply enough Seagate NAS), though not apparently at 6TB.

<comment><USER22> It's not saying that the WD drives are better in all cases. Backblaze has a specific use-case and the WD drives are the best fit.

</comment></comment><comment><USER23> I wonder if anyone has real world experience of Shingled Magnetic Recording (SMR) drives? I saw a talk by Red Hat's Ric Wheeler about a year ago, and they seem both interesting and pretty strange - as in, we may need new filesystems to cope with them.

<comment><USER9> Backblaze employee here: we will run our first experiment with SMR soon! We're SUPER curious about whether they will work in our application.

</comment></comment><comment><USER24> It's unfortunate that Backblaze feels the need to transfer the private key to their servers.

Their knowledge base entry at [https://help.backblaze.com/entries/20203731-Can-you-tell- me-...](https://help.backblaze.com/entries/20203731-Can-you-tell-me-more- about-the-encryption-Backblaze-uses-) doesn't clarify wether or not the secret private password is transmitted to their servers to decrypt the private keys there which would make the scheme rather weak.

Ideally, the private keys would remain on the user's PCs.

<comment><USER9> Backblaze engineer here. The private encryption key is a completely standard PEM file from OpenSSL. We have two modes: by default the PEM file is secured by a "pass phrase" known by Backblaze. In this lower security mode, the user data is essentially only secured by their email address and their chosen password on the Backblaze website, and the user can recover their password via email. That is a great mode if you are just backing up stuff you don't terribly mind somebody getting a copy - like photos of your cat.

If you are concerned about security, the second mode is you set your own "pass phrase" on the PEM file. But oh my lord, make sure you remember that pass phrase because Backblaze never writes it to disk and if you forget it, NOBODY ON EARTH is getting your files. Not you, not the USA government, not Backblaze, that data is GONE. You cannot recover that password. This is a good security mode if you would be arrested if the NSA got a copy of your data, because we don't think it can be broken.

<comment><USER25> Even in "secure mode", your passphrase must be sent to backblaze's servers whenever you do a restore. They then have posession of decrypted version of your files for a while. This is unacceptable.

As brianwski wrote in [https://news.ycombinator.com/item?id=8169040](https://news.ycombinator.com/item?id=8169040):

 _...[I]f you lose a file, you have to sign into the Backblaze website and provide your passphrase which is ONLY STORED IN RAM for a few seconds and your file is decrypted. Yes, you are now in a "vulnerable state" until you download then "delete" the restore at which point you are back to a secure state._

</comment></comment></comment><comment><USER26> For those not willing to read a full page, in the end run it is more an energy decision than a reliability decision. And they mention at the end that they are already looking into the 8TB Helium and 8TB SMR drives.

<comment><USER27> My sense was that the 20% speed advantage was as important or more than the small energy savings. Is that common for slower drives to handle data faster?

<comment><USER28> Maybe it's a side-effect of increased vibration for 7.2k drives? Hard drive performance drops in environments with high vibration. I could imagine that being a factor when you put 45 drives in a single server.

</comment></comment></comment><comment><USER29> Does anyone know if there is a set of command line tools (linux) or an api for uploading, downloading and listing files on your account or do they specifically forbid this type of use and obfuscate?

<comment><USER30> I've been hoping for Backblaze to launch a "pro"/"enterprise" tier that allowed for this kind of use. Unfortunately (for me) it would appear they prefer to stay within their chosen niche: home user backups.

The service I'm aware of that is closest to what you describe is spideroak[1]. Last I used them (years ago) they were a little too slow, and had some other minor kinks -- but might be worth checking out again now.

It looks like they've also finally made good on delivering Nimbus.io -- both as source and as a service (as I said, it's been years since I looked at Spideroak...):

[https://nimbus.io/](https://nimbus.io/)

[https://github.com/SpiderOak/nimbus.io](https://github.com/SpiderOak/nimbus.io)

[1] [https://spideroak.com/](https://spideroak.com/)

<comment><USER29> So its not really "unlimited" storage they offer, there is a ceiling that matches the size of a users primary hard drive (max 6-8 TB at present?) with most users probably using laptops with small drives. For example I would love to backup 3-4TB on my NAS, and be able to occasionally access+download and check integrity

<comment><USER9> Backblaze employ here. We don't back up NAS, but if you direct attach a Drobo we include that in "unlimited" for $5/month.

FYI - our largest customer backs up about 60 TBytes for $5/month. So is it "unlimited"? If you have less than that it will work, we have proof! :-) But we lose money on that customer, we survive on the "average" amount of data people have, and on average a laptop of your average home user has only a few hundred GBytes.

</comment></comment></comment></comment><comment><USER31> I'm so looking forward to the Seagate 8TB Archive HDD. Finally a drive that will hold all my photos and quite a bit more. It will make my backup procedure a whole lot easier.

<comment><USER32> Related ask HN to you and others: what software are you using to backup/sync to that drive? (What would you use on Windows?)

<comment><USER33> I can't speak for Windows, but the setup where I work involves four drives (currently 2 TB each), with three running as a triple-mirror ZFS pool. For backup, I split a drive off the pool, pull it, slide in the previous backup, and resilver the newly-inserted drive. Each time, I use a different drive bay.

The ZFS pool itself provides backup for several other systems, and snapshots are made periodically by a cron job to provide a further line of defense.

</comment></comment></comment><comment><USER34> the critical assumption in this post seems to be that drive speed was the only rate-limiting factor when they were collecting data... but as i understood the post, it seemed like perimeter load-balancing, sata controller/nic load, and/or customer usage patterns could be responsible for some of the differences they observed.

<comment><USER35> You have to screw up a storage system pretty good to have something other than the hard drives be the limiting factor.

<comment><USER34> this is generally true, but even small variations in other factors could propagate through a complex architecture to account for some of the differences presented here, especially over time. these data are still useful, but some of the caveats could be made more explicit.

similarly, most drive benchmarks are 'artificial' in any number of ways and come with another set of caveats. since drive testing is already part of backblaze's process for putting drives into production, it could be especially interesting to compare and contrast performance data from testing with data from production use.

i pick these nits because real-world storage performance info seems like a valuable public good (particularly for enterprise and enterprise-like usage of consumer drives), and i'm grateful to backblaze for offering it up.

</comment></comment></comment><comment><USER35> hm. I wonder if their data access patterns are largely sequential; I imagine the 7200rpm drives would beat the lower-RPM drives in an environment where random access matters.

<comment><USER34> i have similarly wondered how important drive cache size might be for these types of use cases. multivariate regressions including brand, cache size, rpm etc. as predictors of various performance metrics would be super interesting in a place like blackblaze.

<comment><USER35> Cache gets you very little if you can feed in sequential data at a constant rate and at the blocksize of the device.

Cache becomes more important as the input data becomes more messy; cache is one tool for turning bursty and random data into constant, sequential data.

</comment></comment></comment><comment><USER36> Helium filled drives are literally a dead-end as their lifespan can be shorter than SSD

<comment><USER37> Re: "Helium filled drives are a dead end" \- Citation?

Also, SSDs come with 10 year warranties [1], so, which exceeds anything you can get with a normal spinning HD. If anything, I'd have more confidence with my SSD than I would with a spinning HD - particularly as you don't have to worry about the drives failing to spin up over time.

[1] [http://www.amazon.com/SanDisk-Extreme-2-5-Inch-Warranty-- SDS...](http://www.amazon.com/SanDisk-Extreme-2-5-Inch-Warranty-- SDSSDXPS-240G-G25/dp/B00KHRYRNM/)

<comment><USER14> One legitimate argument against helium drives is they contribute to the depletion of the relatively scarce helium supply.

[http://www.boston.com/news/science/articles/2010/10/17/scien...](http://www.boston.com/news/science/articles/2010/10/17/scientists_warn_worlds_supply_of_helium_close_to_depletion/)

<comment><USER37> That article reads a lot like "Peak Oil" concerns. There is a lot of Helium available - [1] _The global reserves of helium are known to be approximately 41 billion cubic meters. Most of them lie in Qatar, Algeria, the USA and Russia. Annual global production of helium is about 175 million cubic meters, and the USA remains the largest producer._ "

Regardless, this is something the market can correct for very, very easily. As helium supply becomes more scarce, the price will go up, resulting in greater supply. Most of it comes from natural gas, and is so cheap [2] it's not worth capturing. Oil trades for around $100/barrel. Helium trades at $100 for a thousand cubic feet (albeit in gas form)

Some of the problems with Helium is that Physics experiments use a _LOT_ , and previously was so cheap that it wasn't worth trying to conserve. That's changing - [3] A recycling system can recapture about $12,000/year of lost helium for a single scientist.

From reading articles - apparently the problems isn't so much that the cost of helium is increasing - but that it's been so cheap because of the US Natural Reserves making it completely non-competitive to capture - they are basically giving the stuff away for next to nothing.

And, putting it in a $100+ Hard Drive that will last a half decade is a _FAR_ better use than putting 10x that much in a $0.50/balloon that will last 30 minutes. (Or Macy's parade which uses 400,000 cubic feet of helium) In fact, it may turn out to be the best conceivable use of Helium in terms of a value per m^3 equation.

[1] [http://www.gazprominfo.com/articles/helium/](http://www.gazprominfo.com/articles/helium/)

[2] [http://finance.yahoo.com/news/airgas-increase-prices- helium-...](http://finance.yahoo.com/news/airgas-increase-prices- helium-20-164550580.html) _And on Friday, the bureau announced that it was raising the price for a thousand cubic feet for crude helium from $84 to $95_

[3] [http://www.nature.com/news/united-states-extends-life-of- hel...](http://www.nature.com/news/united-states-extends-life-of-helium- reserve-1.13819)

<comment><USER17> Thanks for that post - helium scarcity is a load of FUD IMO, since if it becomes scarce and thus more expensive, companies will jump into the market and start producing it. Similar to the production of hydrogen for the car market. Rare earth materials are a much bigger issue, since those are much harder to chemically manufacture and aren't a by-product of anything (except recycling)

<comment><USER38> > and start producing it.

How? Through transmutation? I can't see that being economically viable.

Helium is a noble gas (generally does not combine into molecules) and tends to leave Earth's atmosphere when released. There's no viable way to produce more of it.

<comment><USER39> >" _There 's no viable way to produce more of it._"

If you throw enough money at a problem, it starts becoming viable/feasible.

Have a look at the Diamond production industry for comparison: [http://en.wikipedia.org/wiki/Synthetic_diamond](http://en.wikipedia.org/wiki/Synthetic_diamond)

Note, don't let the "synthetic" part fool you into thinking they're not real diamonds. They are real in every imaginable way except they're not "a girl's best friend".

<comment><USER40> Diamonds are made out of carbon, which is incredibly abundant on earth. There's no comparable way to manufacture helium out of anything that doesn't already contain helium; you need nuclear reactions, which are much more difficult to do at large scale.

<comment><USER39> Helium is made up of electrons, which is also incredibly abundant on earth. Either way, sarcasm aside, I guess you didn't really understand what I was trying to say if you're taking my diamond comparison as perfectly analogous, and then shooting down the idea because it doesn't extrapolate the same way you expect it to.

Up until some point, it was also difficult to manufacture synthetic diamonds at large scale. When the price of the thing desired is right / high enough, technology will be found and whatever costs necessary will become feasible.

<comment><USER41> Then where is my time machine? I will pay 1 trillion dollars for it! (payment after a few successful trials)</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment>


Show HN: Web app to create instant, beautiful roadmaps for product presentations - <AUTHOR> https://waymark.io/ <comment><AUTHOR> There's been a lot of presentation decks made over the years while working in a startup and most required a simple and easy to understand roadmap.

That ignited my side project idea for Waymark - a tool to allow anyone to create a pretty and informative roadmap visualization in minutes.

You can add events & descriptions, mark them as milestones, export as PNG without any watermarks.</comment>


This blue-sky image of Pluto is absolutely stunning - <AUTHOR> https://arstechnica.com/science/2017/03/this-blue-sky-image-of-pluto-is-absolutely-stunning/ <comment><AUTHOR> I'm sorry for posting a vacuous comment on my own submission, but... wow. Just, wow.

When I was born we had not yet landed even an unmanned spacecraft on the moon. We had a Venus flyby (Mariner 2) and a Mars flyby (Mariner 4) and that's it. The pictures looked like:

[https://nssdc.gsfc.nasa.gov/imgcat/html/mission_page/MR_Mari...](https://nssdc.gsfc.nasa.gov/imgcat/html/mission_page/MR_Mariner_4_page1.html)

And now this.

Wow.</comment>