Google's Fuchsia OS on the Pixelbook - <AUTHOR> https://arstechnica.com/gadgets/2018/01/googles-fuchsia-os-on-the-pixelbook-it-works-it-actually-works/ <comment><USER2> The code is available here:

[https://fuchsia.googlesource.com/](https://fuchsia.googlesource.com/)

Key components:

## Zircon

Zircon is the operating system's foundation: it mediates hardware access, implements essential software abstractions over shared resources, and provides a platform for low-level software development.

For example, Zircon contains the kernel, device manager, most core and first- party device drivers, and low-level system libraries, such as libc and launchpad. Zircon also defines the Fuchsia IDL (FIDL), which is the protocol spoken between processes in the system, as well as backends for C and C++. The backends for other languages will be added by other layers.

## Garnet

Garnet provides device-level system services for software installation, administration, communication with remote systems, and product deployment.

For example, Garnet contains the network, media, and graphics services. Garnet also contains the package management and update system.

## Peridot

Peridot presents a cohesive, customizable, multi-device user experience assembled from modules, stories, agents, entities, and other components.

For example, Peridot contains the device, user, and story runners. Peridot also contains the ledger and resolver, as well as the context and suggestion engines.

## Topaz

Topaz augments system functionality by implementing interfaces defined by underlying layers. Topaz contains four major categories of software: modules, agents, shells, and runtimes.

For example, modules include the calendar, email, and terminal modules, shells include the base shell and the user shell, agents include the email and chat content providers, and runtimes include the Dart andFlutter runtimes.

<comment><USER3> I like the naming even more than the architecture! :-)

<comment><USER4> Which component are they going to name Steven?

<comment><USER5> probably their package "universe" ;)

</comment></comment></comment></comment><comment><USER6> There's no point to these early Fuschia review attempts. I don't see how it demonstrates anything. It's like looking at the famous first email from Linus Torvald and figuring out what the os would be in the end. So it boots, it has windows, but not apps, and prints some things to the screen. It tells us nothing about real intentions, future capabilities, etc.

<comment><USER7> As somebody who read that famous first email and shared it around her lab: We were all _tremendously_ excited, and spent days discussing it.

This is the same thing - it's _exciting_. It's trying to do things many of us have thought of, but never worked on. It's new technology. It's something that, in our hearts, we want to succeed just because the alternatives are all grungy and dusty and carry the compatibility fixes of generations.

Of course, if you don't really care about OS technology, or look at it from a consumer perspective, yeah, it's not giving you anything.

But for engineers who care about OSs? This is amazing and invigorating.

<comment><USER8> It's all written in C++, so from a security and reliability perspective, I'm sketical it's going to offer much improvement over Linux. I don't see any evidence yet of "new technology". I'm happy to be proven wrong.

<comment><USER9> Of course the programming language defines the architecture ...

<comment><USER8> Programming languages do influence how a problem is solved and this often affects architecture. This is especially true with respect to concurrency. However my main problem with C++ is security, not want architectures it inspires.

</comment></comment></comment></comment></comment><comment><USER10> What is this supposed to become, exactly? Google hasn't said much about it and speculators are making big claims like how this will replace ChromeOS and Android. I don't see that happening any time soon considering how deeply entrenched both OSes are, but Google's dedication mixed with the lack of comments makes me think again.

<comment><USER11> Depending on the future direction they take this, it might end up replacing OpenBSD for me.

Mac OS X and OpenBSD are my daily drivers, but at their core, they are BSDs, and less and less I find myself using the NeXTSTEP portion of Mac OS X and more and more time in BSD-land, which is leading me to move more and more of my overall computer time to OpenBSD which is a great operating system but is still largely a continuation of the UNIX/POSIX/BSD model which I appreciate like fine wine but do not love.

If Fuschia ends up being the answer to the question of what would happen if we built a new operating system from scratch today, taking the best lessons we were able to learn in the past 50 years, then I might be using it as my daily driver in 10 years.

Or maybe not. Nobody can really say what it will be right now.

<comment><USER12> Don't hold your breath. The zircon API isn't innovative in any modern sense. Additionally it's bloated and not clean like L4. It's just in house IP for Google.

(HN won't let me directly reply to the comment below so here it is:

Nothing in zircon doesn't already exist on Linux or any other modern kernel. Additionally it has bloat, like 3 distinct IPC mechanisms.

Even further, if it ends up being any technical person's main driving OS it will surely sport a POSIX API and at that point it's just another implementation of POSIX with similar a security model.)

<comment><USER13> You think the lack of technical innovation is what makes products fail? Seems to me that it's actually the opposite that's true.

<comment><USER12> Never said it was going to fail. I just don't expect it to be more appropriate as a hacker's OS than OpenBSD or Linux.

</comment></comment></comment></comment></comment><comment><USER14> I'm conflicted on this.

I really do like the idea of a challenger to the linux monoculture (among devs)/the windows monoculture (among consumers), but I really hate the idea of google getting yet more power.

If it was pretty much anyone else doing this.

<comment><USER12> How exactly is Google getting power here? The code is totally open. They just seem to be giving themselves more flexibility and potential to build better products.

If anything, this will result in less power over the Linux kernel for Google. It seems like that's something you'd appreciate.

(My response to s2g's reply below because HN is terrible for commenting:

I see your point that they now unilaterally control how the kernel is engineered, but my counter argument is that I don't think this meaningfully changes their control over the platform. They were already free to modify the Linux kernel at their whim. Having upstream control doesn't make you emperor of derived applications.

As a separate point, don't you think it just results in less efficiency and worst products if google isn't free to steer the project in the direction that makes the most sense for the application? It seems they can more easily make zircon for their use case, and I think that will result in cheaper and better phones.)

<comment><USER15> Fuschia uses a BSD style license whereas the Linux kernel is GPL. Google or hardware vendors can modify the Fuschia code without sharing the changes with the public, for better or worse.

<comment><USER16> Google, as the copyright owner, could do that, or let hardware vendors do so, even if it was GPL.

BSD-style means that _anyone_ can do that, even Google's competitors, without any additional permission from Google.

</comment></comment></comment></comment><comment><USER17> I find it fascinating how polished the UI is even as it's missing core features.

<comment><USER18> The UI is made with Flutter, which can be used for Android & iOS apps today: [https://flutter.io/](https://flutter.io/)

<comment><USER17> Thanks, that's a cool tool I've begun playing with it and it seems to simplify a lot of the difficult parts of creating good looking UI on mobile.

</comment></comment></comment><comment><USER19> Can someone summarize the technical tradeoffs they made in developing this OS vs. say Windows and Linux for example? Also, anything that is just plain better and represents recent innovations in OS design?

</comment><comment><USER20> Hi could someone compare fuchsia with redox, mozilla's operating system.

<comment><USER21> Redox is not "Mozilla's operating system" in any way or form. It is an immature OS whose primary contributor works at System 76. The only thing Mozilla-related about it is that it's written in Rust.

</comment></comment><comment><USER22> This "review" is the video portion of this Ars Technica article: [https://arstechnica.com/gadgets/2018/01/googles-fuchsia- os-o...](https://arstechnica.com/gadgets/2018/01/googles-fuchsia-os-on-the- pixelbook-it-works-it-actually-works/) which of course does not purport to be a _review_ of Fuchsia.

<comment><USER23> Thanks! We've updated the link from [https://www.youtube.com/watch?v=FhX6cANaJ6o](https://www.youtube.com/watch?v=FhX6cANaJ6o).

</comment></comment><comment><USER24> Short review: Another OS written in C/C++ that will have a million and one bugs over the next 3 decades.

<comment><USER25> Just want to point out that not that long ago redox-os (the microkernel OS in Rust) asked people to test it.

People were able to kernel panic it, get privilege escalations, and DDoS it. In short, it had the same same issues a C based kernel would get.

It's true that it's still heavily in development and doesn't offer any guarantees whatsoever, but I think that it should be pointed out that just because your language is good, doesn't mean that your end result will be good (and vice-versa, C based kernels like l4 and C based projects like SQLite have been formally verified (at least SQLite was verified _after_ _compilation_ , so they check for undefined language constructs.))

<comment><USER26> Can you link to that? I'd be curious to see how they did those things. I guess Redox has a lot of unsafe Rust code?

<comment><USER27> Here is the "Redox Crash Challenge":

[https://github.com/redox-os/redox/issues/1136](https://github.com/redox- os/redox/issues/1136)

According to the Redox book, at last count they had 70 cases of unsafe across 4500 total lines of kernel code.

[https://doc.redox-os.org/book/introduction/unsafes.html](https://doc.redox- os.org/book/introduction/unsafes.html)</comment></comment></comment></comment>


Brendan Eich has the right to fight gay rights, but not to be Mozilla's CEO - <AUTHOR> http://www.theguardian.com/commentisfree/2014/apr/07/brendan-eich-has-the-right-to-fight-gay-rights-but-not-to-be-mozillas-ceo <comment><USER2> Should "not to be" perhaps be "not as"? He must've once had the right to be Mozilla's CEO, since he was.

<comment><USER3> No, no one has the right to be CEO of Mozilla. Its not a right to start with.</comment></comment>


User Interaction 101 - <AUTHOR> http://andymatuschak.org/articles/2008/05/07/user-interaction-101/

<comment><USER2> This post was excellent, although I take issue with the silent waiter part. His waiter example was trivial; there's no reason you wouldn't want the marshmallow bowl refilled, but usually programs aren't like that. I hate when programs do stuff without asking me, especially by default. Everytime I start using OpenOffice on somebody else's machine it takes it all of a minute to incorrectly autocorrect something I've typed (I disable autocorrect on my machines). That's the kind of "silent waiter" I hate, I don't want it automatically doing something unless there's absolutely no way I wouldn't want it done, and that's fairly rare

<comment><USER3> If you're going to be a silent waiter, you have to be a _damn_ good one.

"any sufficiently advanced magic is indistinguishable from technology" (Larry Niven)

I like turning this on its head: if you're going to do something with technology it has better be _so_ good that it looks like magic. Every time it fails, the illusion is broken and flow/trust/fluidity is gone. It has failed you.

If autocorrection was _always_ right, you wouldn't mind it (see <http://twitter.com/gruber/statuses/880736890>).

If the caching algorithm of your drive controller was sometimes wrong and you had to manually find data in the right sector, you'd be annoyed by it too.

If your code is promising to do something for the user, it has to do it _exactly right every time_. Otherwise you need to package, promote and conceptualize it differently so that you don't constantly fail to live up to expectations.

<comment><USER4> You turn that Niven quote on its head all right, all the way back to Arthur C. Clark.

</comment></comment></comment><comment><USER5> This guy should write a book. We could use a modern "Psychology of Everyday Things", focused on software design.

And no, Steve Kurg's book doesn't cut it.

</comment><comment><USER6> This link (<http://worrydream.com/MagicInk/>) from the comments is fascinating also. A long article but well worth a read.

Some of the techniques could be just what a start-up needs to give it the edge over, "just good enough" web apps.

</comment><comment><USER7> It takes a very good post to make me subscribe to someone's blog, especially an Apple person's blog, but this is high-quality Tognazzini-level musing on interface design. Better, even: Modern, web-focused.

<comment><USER8> Not to make this an Apple Person argument, but I think this is the sort of Apple Person mentality that I like the most: the one that isn't about constantly harping on other computer types, but that just quietly appreciates how beautifully simple most Apple stuff is.

I subscribed as well.

</comment></comment><comment><USER3> "slowed by the speed of their ideas rather than by the speed of their tool"

Brilliant insight. It explains the reason that I find IDEs so damn annoying.</comment>


Ask HN: Why do you use gRPC? - <AUTHOR> Hi there, the organisation I work for is betting heavily on gRPC. We did a few things on it, learned some, won a few battles and lost some.
The general take is that people are somewhat unsure if it's the right way to go.
We like the "developing by contract" aspect when using protocol buffers but we don't like the workflow as much.
I'm interested in hearing stories from people who have used successfully (maintaining a production product) and unsuccessfully (back to rest or whatever you were doing before.
Thanks <comment><USER2> Use ZeroMQ.

The reason why gRPC exists is performance, REST calls all over are not performant enough to send messages.</comment>


Perl Weekly reaches 3000 subscribers - <AUTHOR> http://szabgab.com/perl-weekly-newsletter-at-3000.html

<comment><USER2> Having a weekly summary of what's going on in the perl community has been invaluable to me. I've been using perl for 15 years, and I still learn new thing with every newsletter. Thanks Gabor!

</comment><comment><USER3> Congrats to Gabor. It's taken the Perl community far too long to realize that as much fun, and as powerful as the language is when you're competent with it, getting to that level can be a minefield: there's so, so much bad example Perl online, and the community can be pretty unfriendly to beginners who are doing things the old way. Gabor's been laying down lots of great content aimed at beginners, done the right way.

</comment><comment><USER4> Once I figured out that Perl was not just Regular Expressions I had a lot more fun. Irssi scripts are all Perl.

+1 for the mailing list

</comment><comment><USER5> I just subscribed. Didn't know this existed. I'd be curious to know how many subscribers there are after this HN post is two days old.

</comment><comment><USER6> congrats to guys. I subscribed some months back. Have been out of perl development since a year. This newsletter really helped to keep me updated. Infact i started re-looking again into cpan modules and filed a bug report recently for one of the modules. thanks again

</comment><comment><USER7> Bookmarked. I love seeing perl on the front page of hn. Many think perl is dead but it does the job for me.

<comment><USER8> It's funny. I like Python better for various reasons, but I have to admit that Perl 5 always seems to have more mature and far better-documented modules available. You use the Cheeseshop for a while (Python's central package repository) and get used to it, then go back to the CPAN and it's really noticeable how much better the Perl 5 module ecosystem is.

<comment><USER9> what are the various reasons? I like perl because it keeps out of my way until I need it. Which is a lot.

</comment></comment></comment><comment><USER10> Gabor's tutorials are the best online introduction to Perl.

</comment><comment><USER11> This is a great resource and has reminded me that the Perl community is active, and continues to be innovative!</comment>


Ask HN: Best places to advertise online - <AUTHOR>

Anyone got suggestions on the best places to advertise and why, facebook, stumbleupon...etc <comment><USER2> I think the best places to start are places frequented by your target audience. That may be a place as big as Facebook or as small as a antique automotive forum.

If you don't know what audience you're targeting, that is probably a bad business strategy...but if you want to do a little research, put some ads on a 'broad-spectrum' website like Google, Facebook, Twitter, etc. and then run some stats on your web server logs after a while. They'll be able to tell you where your traffic is coming from, what people are searching for to find your site, and so forth, which you can then use to better target your ads, etc.

</comment><comment><USER3> I will recommend <http://en.wikipedia.org/wiki/Cost_per_action></comment>


The Ultimate 6-Week Startup Crash Course (MBA alternative) - <AUTHOR> http://blog.profitably.com/post/7134922299/the-ultimate-6-week-startup-crash-course

<comment><USER2> question: how are you learning to code and building a prototype when you have 25 meetings + 10 meetups to go to + 100 (wildly) repetitive blog posts to read every week? The blatant exaggeration hurts your argument. By trying to make it sound so easy and straightforward you actually make it sound much harder and intimidating than it is. Get one meeting with an influencer in your market. Go from there.

</comment><comment><USER3> No better way to learn than to do so great advice and post about strategies to do just this. Although I do wonder if this all can be realistically achieved in 6 weeks.

The only thing I'd disagree with esp given the finite time available is that you should focus on meeting (or getting meetings) with potential customers and partners exclusively.

Sure Meetups are great but the signal:noise ratio for content is generally low. Lots of startup platitudes like "build something people want" with little useful, credible, actionable insight. And then the ratio of quality people to wantrapreneurs and service providers often leaves much to be desired and makes the networking goal difficult.

With regards to reading blogs, there is lots of great insight out there (many that you highlighted) but you can chew up your day reading through lots of entreporn as well which talks about the vagueries of the VC industry and other non-useful content which while interesting (and sometimes dramatic) doesn't really help you build or validate an idea/real biz.

</comment><comment><USER4> I disagree with the author. When [https://secure.wikimedia.org/wikipedia/en/wiki/The_World_Is_...](https://secure.wikimedia.org/wikipedia/en/wiki/The_World_Is_Flat) it is better to have a MBA before doing a startup.

"You must learn from the mistakes of others. You can't possibly live long enough to make them all yourself." --Sam Levenson

<comment><USER5> An MBA is a degree in business administration. Entrepreneurship is something radically different.

To learn why, I'd recommend this talk from Steve Blank: <http://www.justin.tv/startuplessonslearned/b/262670582> [http://www.slideshare.net/sblank/why-accountants-dont-run- st...](http://www.slideshare.net/sblank/why-accountants-dont-run-startups- sllc)

He's a serial entrepreneur turned business school professor, and he knows his stuff.

<comment><USER6> Really. Really? Running a business has nothing to do with...um...running a business? No, no it's not radically different. Only in the minds of those who have no idea what's involved with business, MBA programs, or what the definition of entrepreneur is outside of these articles begging you to buy books, and web services, and promising that if you sit in your mommy's basement long enough putting up $10 web sites you will be a billionaire. Only with people who can't take ideas and education and use them as the springboard for something great, but instead can only get by regurgitating the thoughts of those who have actually been there and taken the time to know WHY things are the way they are and WHY those things have to change and WHAT has to change because of it.

First, there are many many things wrong with Mr. Blank's deck at slideshare. Not the least of which is that only start ups are scalable and agile. That b-plans are static. Maybe in the "old days" when he was cutting his teeth. When education was unobtainable. When companies ran by the rules of companies like GM and Chrysler. I assure you, whatever you know of a company externally, or from some grunt, is not what is going on internally in the C-Suite.

Second, there is such a diluted idea of what entrepreneurship is. As I said, it's not sitting in mommy's basement knocking out crappy, templated websites hoping one hits. To be an entrepreneur you have to have skin in the game. Entrepreneurship's definition includes the word "risk". Registering an $8 domain and putting up an app using the free service level Google App Engine doesn't carry any inherent risk. Putting your house up to grab a loan, hiring staff and remembering that if you fail, these people have no jobs. People with families to feed. Having nothing much to fall back on. This involves RISK. It might be stupid to do, but it can force you to make more calculated decisions.

And finally remember that people like Mr. Blank and the older VC/Startup/Entrepreneur set usually cut their teeth at larger companies, or in the presence of those with degrees in business, accounting, finance. This is mostly where they learned the trade second hand. As many old timers did. This is where they learned how to balance books, the basics of marketing, the rules of finance, that they used to forge paths in their futures.

And as some background to me, I started a company with a friend 17 years ago, grew that company into a multi-million dollar firm with several divisions. I ran one division of the company with around 25 ftes. I ran that place for 12 years before finally going for my MBA, and then moving on to work at a large healthcare organization.

<comment><USER5> His point, with which I still agree, is that _running_ a business is different than _starting_ a business.

More specifically, running a business with a known, stable business model is a very different activity than starting from scratch and discovering a new business. MBAs prepare you for the former, but generally not the latter.

A point that your history seems to match: you started and ran a business just fine without an MBA. And now that you have one, you've turned from entrepreneurship to working at large company.

<comment><USER7> There are MBA programs that are specifically tailored for entrepreneurship, such as the Babson College program (disclaimer: I am an alum).

For instance, there are specific tools and frameworks that, when used properly, help you identify the opportunities worth pursuing.

Further, you can be an entrepreneur in both cases: when starting your own business, or working for a large company. It's true the other way too: you can start/have your own business and that wouldn't make you an entrepreneur.

</comment></comment></comment></comment></comment><comment><USER8> +1 for the Karate Kid metaphor.

</comment><comment><USER9> that was really interesting. lots of good advice here

</comment><comment><USER10> I really enjoyed seeing this today. It's very good timing for me. I just wish I knew how to translate the software specific parts of it into more general advice or where to go for similar information on other products/business models. I did go ahead and start a posterous group and invited a friend who was enthusing about starting a business with me earlier today. And also started a wordpress site. I have no idea where I am going to go with this but my health has been the big thing holding me back and I worked 17 hours of overtime this past week (a lot more overtime than I have ever worked before) without having to go home sick some time during the week due to pushing myself. This has been a watershed week for me and I want to go ahead and start getting on with life. I'm not ready to run flat out, so to speak, but I think I can stop sitting on the sidelines of life and wishing I had one (a life, that is).

Peace.</comment>


How an 89-year-old cold warrior became America's nuclear conscience - <AUTHOR> http://www.politico.com/magazine/story/2017/01/william-perry-nuclear-weapons-proliferation-214604 <comment><USER3> I feel it is worth point out some of the terrifying close calls [1] that we've had in the last decades with nuclear weapons. Some people are so sure that because personal experience indicates that it hasn't happened that that is any indications of its likelihood of happening. By all accounts we have this man [2] to thank for at least one of those incidents not resulting in total nuclear apocalypse.

[1] [http://www.ucsusa.org/nuclear-weapons/hair-trigger- alert/clo...](http://www.ucsusa.org/nuclear-weapons/hair-trigger-alert/close- calls#.WG-0mfkrJhE)

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

<comment><USER4> > Some people are so sure that because personal experience indicates that it > hasn't happened that that is any indications of its likelihood of happening.

Nope, that's not it. People aren't worrying about it because it's emotionally costly to worry and the optimal strategy for emotional well-being is ignorance.

While it's true that the consequences of a nuclear apocalypse are much more dire on a global scale, the personal consequences are indistinguishable from a car crash, plane crash or...if we wanted to include a natural disaster, death from a dam failure or a volcanic eruption.

If a typical person worried about every possible way to die today, no matter how minute, that would truly be a miserable experience. Besides, in the case of nuclear apocalypse it is literally impossible to adopt a strategy that minimizes your chances of death in the case it actually occurs, barring moving to the middle of nowhere and digging yourself a deep personal bunker.

So the only reasonable strategy is to ignore it entirely, in which case the likelihood of it happening is irrelevant.

<comment><USER3> >Nope, that's not it.

I think you are right mostly, its probably more that than anything but I do think people allow a very limited observational ability to give them a feeling for how likely something is, despite the fact that they cannot really internally measure it at all just based on the facts they observe in daily life. I think people use a similar reasoning to assume Trump (or anyone else) could ever be a serious threat to our democracy simply because things "never seem to change" no matter who is in power, which I think is equally irrational.

>So the only reasonable strategy is to ignore it entirely

I think that is pretty overkill, to me the only reasonable strategy is to take what actions you reasonably can (be aware of what is going on in the world, communicate your concerns to your representatives, not elect a madman who talks about nuclear weapons as if they were a nerf gun) and then you can only sit back and relax. Electing someone who expresses a desire to use nuclear weapons is a pretty direct way to have control over whether they are used (and subsequently destroy the world), so nobody can pretend that they have no control over it.

</comment></comment></comment><comment><USER5> I'd say because of desensitization to a world (apparently) in constant crisis.

<comment><USER6> This. The news has tried to make us panic about literally everything for decades now, and it's getting a little tiring to be afraid or outraged of something 24/7\. It's the Two Minutes Hate, stretched out to all day long, provided by the media, not the government.

</comment></comment><comment><USER7> I encourage everyone concerned about nuclear weapon safety to watch the Jan 10 premiere of the documentary version of Eric Schlosser's book "Command and Control"

[http://www.commandandcontrolfilm.com/](http://www.commandandcontrolfilm.com/)

<comment><USER8> Interesting coincidence that the one place it has been shown in the UK was Sheffield:

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

</comment></comment><comment><USER9> I'm not terrified because I don't think Bill Perry is really terrified either, in his own words from the article:

> _"I do not think it is a probability this year or next year or anytime in > the foreseeable future. But the consequence is so great, we have to take it > seriously. And there are things to greatly lower those possibilities that > we're simply not doing."_

A nuclear catastrophe, statistically, poses a much lower risk to my well being than tornado season. Also occasional flash flooding, especially while driving. Oh, and extremely dry summers with little rain that make for wildfire conditions. Also, there's heat stroke if I'm being active...I guess what I mean is I do believe, deep down, that there are people who genuinely care and will work on such serious matters.

Serious people who take things seriously. I applaud them and hope my tax dollars support them appropriately, public and/or private sector. Sort of like geologists working to study the devastating potential of fault lines or volcanic activity. After seeing what extreme weather can do, and how resilient the US population seems to be, I'm honestly grateful to not have to have "Duck and Cover" as part of my everyday psyche.

<comment><USER10> I'm not sure that I entirely agree with this assessment.

One of the very interesting things I got out of reading Command And Control by Eric Schlosser, was the number of very severe accidents that have happened in the US in the handling of nuclear weapons. While probably somewhat overstated, to me it basically makes a case that the US is lucky it hasn't nuked itself by accident (and some of the stories told in that book are incredible, I enjoyed that book).

Also, some of the stories make the case about how abysmal the care and prudence was around handling these weapons, such as the reluctance for years to even put codes on the weapons, or when they were forced to, setting every code to 0000. While I do believe the attitude may have changed, I don't know that it's prudent to put unwavering faith into the people handling these arms, based on what's told in this book.

While I don't want to say you suffer from this, I've seen what I believe to be a miss-allocation of risk in some of the engineering roles I've worked at. What I mean by this, is that because an event hasn't happened, or hasn't happened recently, that we believe the risk has changed. I've literally been part of a discussion on why do we need backups, because we've never restored from one.

If I understand correctly, this was the sort of philosophy that led to the challenger explosion, we launched the rocket before and it didn't explode, so why would it happen this time. To me, this is a fallacy of risk, previous events or recent history don't change the risk.

So while you're right, the risk that a nuclear accident happens, compared to a tornado or flooding happening is much different, doesn't mean that a nuclear accident won't happen. I also highly suspect, that if a nuclear armed country accidentally nukes itself, it would grip the world in a much different way than any tornado or flood. And may change your well-being in very dramatic way's, especially if one doesn't realize it was even an accident to begin with.

edit: minor grammatical mistakes

<comment><USER11> The details about the zeroes:

[http://arstechnica.com/tech-policy/2013/12/launch-code- for-u...](http://arstechnica.com/tech-policy/2013/12/launch-code-for-us-nukes- was-00000000-for-20-years/)

"Launch code for US nukes was 00000000 for 20 years"

[http://foreignpolicy.com/2014/01/21/air-force-swears-our- nuk...](http://foreignpolicy.com/2014/01/21/air-force-swears-our-nuke-launch- code-was-never-00000000/)

So it was not actually eight zeros (or four) but apparently 6 zeroes (000000) and effectively the "key under the doormat" (in the safe with the key in the same base as the rocket, the opposite of what was claimed then). The procedure was more complex than just keying in zeroes, but everything was surely trained on the rehearsals.

Now, imagine somebody just and only once forgets to apply the "it's just a rehearsal" command.

What's the "acceptable" probability some city being successfully targeted, even only and just once, especially knowing that it can trigger the retaliation?

The logic of the nuclear war is: "if the rockets come to you, you have to send yours to them, because otherwise they won!" \-- they think it's better that the civilization gets wiped out than to appear to be a "chicken." Even a kind of semi-automated response surely exists.

<comment><USER12> >The logic of the nuclear war is: "if the rockets come to you, you have to send yours to them, because otherwise they won!" \-- they think it's better that the civilization gets wiped out than to appear to be a "chicken." Even a kind of semi-automated response surely exists.

Isn't the idea behind Mutually Assured Destruction not some ego battle, but a deterrent? If nuking another country definitely results in one's own country being nuked, that provides a clear incentive towards self-preservation and not nuking that country in the first place.

</comment></comment></comment></comment><comment><USER13> We (the US and allies) have been smacking the middle East hornet's nest for 25 years through invasions, occupations, dictator toppling, drone striking, antagonizing allies (Israel), antagonizing adversaries (Russia vis a vis Ukraine and now a half-assed proxy war efforts in Syria following the laughable "Russian reset"). Foreign policy hubris and fecklessness combined.

And NOW suddenly we're supposed to be afraid of a total nuclear war? Don't insult my intelligence.

<comment><USER14> Agree about the hubris, fecklessness.

I've been terrified of nuclear war, terrorism, accidents, pollution since I can remember.

Don't pretend this is a new concern.

<comment><USER13> Exactly my point, excuse me if I wasn't clear: these things you list are not new concerns.

I simply bristle at the notion that I should suddenly live in fear because a carnival barker I don't like just won an election. The US federal government has been a hot mess since the early 1900's. NOW I'm suddenly supposed to be alarmed?

I consider anyone who suggests we should grow the federal government in its current configuration to be a busybody or a fool, sorry to be blunt. In my opinion, return power to the states or GTFO.

For me to live in fear of things I can't control is not living. I refuse to snivel. When I can make a positive impact in my sphere, I try to do that; sorry I can't do any better.

</comment></comment></comment><comment><USER15> The article I think specifies an important aspect to the world security situation that we must keep in mind constantly.

It's worth adding context to the article, which breezes past some controversial bits maybe a bit too easily: for instance it writes "how to maximize the fearsome deterrent power of the U.S. arsenal, how to minimize the possibility that the old Soviet arsenal would obliterate the United States and much of the planet along the way". This places the blame of mutually assured destruction and global thermonuclear war, almost entirely on the Soviet Union.

The US's nuclear deterrent is "fearsome". The Soviet Union has an "arsenal" (not a deterrent?), which would obliterate the whole planet.

I'm sure the author didn't intend to do this, but he's contributing to the problem. The United States and Russia - as well as other nuclear powers - <USER2> partners in a dialogue. They share responsibility for the outcomes of the security situation, and for avoiding falling into security dilemmas. One can deeply criticize America for the nuclear security situation we are today, as it has done by far the most to weaken the now-stalled nuclear arms agreements (START, etc) that had once been in place. (This of course doesn't meet the bar for the article).

When both sides start by accusing one another, they have to work back to a position where they can find common ground.

When both sides are realistic, and accept their own blame there's a place to work from.

For instance - it should not be controversial for an American to accept that the Soviet Union had a nuclear deterrent during the Cold War and to call it by such. Similarly we should accept that the US has a nuclear arsenal today (the US is a nuclear first-strike nation by policy) that, if used, would destroy most of the world.

Much of the rest of the piece is similarly written with an undercurrent of us versus them, with "them" getting the lionshare of the blame even though it does not cohere with history.

If you start the conversation with us versus them, you start the conversation with zero-sum mentality: the type of pitfall that led to the Cold War and its escalation to begin with.

There is no good versus evil. Other nations have National Security interests too. Do the god damn hard work to deconflict as much of this as possible. Do the god damn hard work to build and maintain transparent dialog. Do the god damn hard work to eliminate strategic surprise, and the possibility for strategic surprise.

And in the meantime, stop pointing fingers.

</comment><comment><USER16> TBH, I don't fear nuclear war with a nation like Russia or China anytime soon. Neither country has a deathwish or a desire to end the world. What does really scare me is the possibility of a terrorist attack involving nukes. A dirty bomb that goes off anywhere in the downtown of a major city. I'm glad that this hasn't happened in the past 10 years, but that isn't a very long time. Given the pace of technology, and the inevitable slipups that will happen, the cynic in me thinks it's only a matter of time.

[http://www.nytimes.com/2004/03/10/opinion/a-nuclear-9-11.htm...](http://www.nytimes.com/2004/03/10/opinion/a-nuclear-9-11.html)

<comment><USER17> Well, nuclear terrorism isn't something easy to do.

Yes, the amount of complexity of preparation terrorists are able to get away with today is amusing. But grabbing a nuclear bomb is in a completely different mark, and successfully launching one is still a completely different level of complexity.

<comment><USER18> This isn't meant to exhibit a personal paranoia, but is it reasonable to keep the prospect of terrorism more in scope if we allow for hacking efforts that would exploit security vulnerabilities in existing systems? Gut feel (no basis, though) is that it may be more likely to take that approach than the steal-materials-and-build-and-launch one.

</comment></comment></comment><comment><USER19> I think people are worried. But we have a split personality these days, of what is visible online and in the media vs. us older silent generations. The younger generation is more vocal online, and they are not as worried. I could speculate about how they did not grow up in the cold war, blah, blah, blah, whatever the reason is... but their lack of worry is more visible online and in the media. All the while, myself and my friends in our 40s and 50s are all worried. But we also all grew up in constant fear of it, so it is the same comfortable worry from our childhood, and we shrug it off instead of freaking out.

</comment><comment><USER20> I have tried many times to get in touch with this effort without success. How can I help?

There is an interesting movie called "Threads", a BBC drama by Barry Hines. Be sure to watch it.

</comment><comment><USER21> The sinking feeling you get when you think you dodged a bullet and realize it's actually a very determined smart bomb who really, really wants to be with you...

</comment><comment><USER22> I am: [https://jakeseliger.com/2016/11/28/trump-fears-and-the- nucle...](https://jakeseliger.com/2016/11/28/trump-fears-and-the-nuclear- apocalypse/) and when I tell others why they just look at me strangely. I hope they're right and I'm wrong.

<comment><USER23> You know, I haven't drank the "kek" koolaid and given Mr. Trump's historic cozy relations with the mob (Roy Cohn, Casinos), his strange manner of draining swamps by filling it with the worst sort of toxic sludge from Wall Street, and his irrational and excessive love for Israel ("they will [never] pay for it"), am not willing to suspend disbelief regarding his being yet another distraction for the citizenry of this nation by the moneyed class, but you start off with:

"In a best-case Trump scenario, he bumbles around for four years doing not much except embarrassing himself and the country."

This guy does not have a history of bumbling around. He seems to be quite an effective man of action. I think you "embarrass" yourself by starting an analysis with that paragraph.

Then a bit down below you say:

"It can be fun to have secret, unchecked powers when your guy is in office, but is incredibly dangerous when the other guy does."

It can be "fun" to have leadership with "unchecked power"?

Man, get over your totalitarian urges before you decide to play cassandra for the rest of us who do not think it "fun" at all, under any circumstances, to have leaders with "secret unchecked powers" in our Republic.

[fix minor typos]

<comment><USER3> Well hey, the right was terrified of Obama and he turned out to not be that bad so its basically the same thing right? The world is grey and fears about Trump are only as legitimate as fears about Obama and are all equally founded. /s

<comment><USER24> That's a false equivalency to be sure. Right wingers were afraid of what they claimed President Obama would pursue in policy. Critics of President-Elect Trump are fearful of _his own stated policies._

<comment><USER3> I was being sarcastic, not sure if /s was sufficient to flag it, I can't quite tell from your response.

I agree and I've tried to explain that to my conservative friends and co- workers but it never quite makes it through. Because Sharia law and death- panels never came to be a lot of them feel fine in brushing off my concerns about Trump, despite the complete false equivalency between the two.

</comment></comment></comment></comment></comment><comment> guard-of-terra And that's because you did not listen to George Kennan.

</comment><comment><USER25> >Who wins in a nuclear war?

The one who attacks first

<comment><USER26> That's certainly not true. The fundamental "strategy" of the cold war, specifically the production of ~70,000 nuclear weapons, was about ensuring that no aggressor would survive. Submarine-launched missles are the primary tactic.

</comment></comment><comment><USER27> Well, you see, it's possible, even likely, that there will be at least some survivors, so therefore nuclear war is a trivial concern compared to AI.

<comment><USER18> Am I understanding your comment correctly that you are more afraid of AI than nuclear war?

<comment><USER27> The basilisk is coming! We need to build it before it gets here.

But more seriously, low grade poorly trained sub intelligent AI seems a lot more likely to fuck up a lot more people's lives than nuclear Armageddon.</comment></comment></comment>


Iran fires monkey into space - <AUTHOR> http://www.theverge.com/2013/1/28/3923964/iran-launches-monkey-into-space-on-a-rocket

<comment><USER2> I saw the photos of the monkey and they are not very pleasant. They should fire their PR manager. If you are going to send a monkey to space, give him/her a fake silver space suit. (With gloves so he/she can't touch anything important.) A Flash Gordon monkey video would be an instant internet success.</comment>


Ask HN: What is your online privacy toolkit? - <AUTHOR> Here's mine. For mobile on iOS I am trying the following setup:
Browser: Abine Blur (blocks trackers on the web like Facebook's tracking widget while still allowing you to stay logged into sites including facebook)
Masking emails: Also Abine Blur
VPN: ProtonVPN (using paid plan that works with Netflix, but not Hulu unfortunately)
Email: ProtonMail <comment><USER2> Pi-hole DNS with openvpn on a VPS, private email server on separate VPS, I should disable JavaScript but I develop in React. I want to roll my own private built server to host those servers in case the VPS provider has some ability to look at the data on my VPS</comment>


NoSQL Is for the Birds - <AUTHOR> http://gigaom.com/cloud/nosql-is-for-the-birds/

<comment><USER4> I think that the data model of some new database is more suitable for different use cases compared to relational DBs.

Also it's not just a matter of scalability: latency is a very important constraint.

Finally I see a lot of small sites, forums, blogs, that can't scale easily to small numbers using relational DBs, since with the relational model and current implementation you have the illusion that can design a few table and then invent your queries, and instead this does not work and is dramatically slow.

No need to have very large numbers to see how hard traditional DBs sucked. And the proof is the huge adoption of NoSQL in small companies: it's not just hype, people want to go home and sleep well and will not trow away working SQL solutions because there is the new hype. The reality is that they are experiencing serious problems even at the scale a small and mid-size company operates.

<comment><USER5> I'm using Redis as a backend to store course availability information at my university. If the set contains the course ID it has an open seat. Data is scraped and processed continuously and there are ~7200 courses so Redis is a good fit.

<comment><USER6> Is there a matrix of features or use case scenarios for the various NoSQL options out there?

e.g. i have a lot of person data with various attributes like applications, schedules, choices, demographics, courses, etc. (university). At certain times of the year, a lot of transactions would occur and at other times, it'll be getting very low traffic/transaction requests. MySQL tends to be a PITA if we try to modify certain things to add or remove tracking and so on while live hours and as things are run, unfortunately a lot of changes come in unplanned.

How should I go about finding the best fit for this scenario?

</comment></comment></comment><comment><USER7> Hmm, Twitter is really big in using Scala.

The important message is this: "focus on the process to build a great company and great products... They didn't become successful because they built these systems. They built these systems because they became successful."

The next unproven startup that uses NoSQL solution is just wasting their time. I know this because that happened to one of my previous workplaces (we use HBase).

<comment><USER8> That does assume that the company's non-SQL choices don't actually _save_ time during development.

In building a system the design of which is under constant flux, there can be a lot of time lost dealing with schema rigidity.

<comment><USER9> That's one of the tough myths to overcome when building on top of a relational database. Changing the Database has traditionally been Hard, so everybody has been trained to think that way, therefore nobody is allowed to change the database because Changing the Database is hard. Try it at your bigco and the old guys will do everything in their power to stop you (thus making changing the database hard to do).

Ignore that rule and build yourself an environment where changing the database is easy. I make schema changes to my stuff all the time, and seldom push a release live that doesn't do so. The tools are in place to ensure that it's No Big Deal, so it just works.

If you live in a world where changing your SQL database is easy, it sort of takes the wind out of the "start with NoSQL, because changing the database is easy" argument. You get all the speed advantages of being schema-flexible, and you can write ad-hoc queries when you want to, so you're flexible in that direction too.

<comment><USER10> Would you mind telling some of the tools and techniques that make this easy for you?

<comment><USER9> All you really need to pull it off are:

\- Change scripts for every schema change, stored in source control.

\- An automated build/deploy that pulls down new change scripts and executes them in order.

\- (optional) a good way to generate your backend CRUD by looking at the existing database schema, or as a lesser option an ORM that does the same thing.

So your workflow is: script out your schema change, check it in, apply it to your dev environment, regenerate the CRUD from your local schema, fix any compile errors that you've introduced. (and optionally make sure all your unit tests still pass).

You'll notice that all that stuff above is just the basic workflow you should have in place anyway.

<comment><USER11> This is exactly the pattern used by Rails apps with database migrations and Capistrano deployment.

</comment></comment></comment></comment></comment></comment><comment><USER12> Again this topic brings out the "Always use relational databases" folks.

Few say "Always use NoSQL stores".

Most of us who use NoSQL, use it in conjunction with other stores, some of which are relational databases and some aren't.

Lunch isn't free, blah blah, etc. However with NoSQL solutions, we can optimize the things we care about (reads and writes) over the things that happen rarely (changes to the schema, indexing, etc) if we want to. Sometimes our apps demand it, sometimes before the cash exists to even try to use oracle or the people you have to hire to properly support it.

I don't get why people steadfastly assume everything fits the paradigm they're most comfy with. It doesn't. People who are just as comfy with your paradigm found stuff that works better, easier for them.

<comment><USER13> _Again this topic brings out the "Always use relational databases" folks._

You show that strawman who's boss!

 _I don't get why people steadfastly assume everything fits the paradigm they're most comfy with._

Indeed.

<comment><USER12> Gaius at least is going all rdbms all the time all over the thread. I'm not dreaming that up am I? (I didn't realize it was one guy at first).

</comment></comment></comment><comment><USER14> Great article. But it only sheds light on the performance and scale aspect. Having used nosql in my last project, I found some other aspects:

      - <USER2>
      - <USER3>
      - License agreements

Nosql allows easy and painless schema changes, because there is no hard-coded schema. Using a morphing library every object can be stored without any additional coding.

Some nosql DBs support two-way replication for nodes that can be offline for a long time (for instance mobile clients). This can be very handy if you need such a feature.

Some nosql DBs come in a very liberal apache license.

If find it great to have so much choices today.

<comment><USER15> Relational databases have as much or as little schema as you like and the article did point that out. NoSQL varies widely in terms of approaches to schema so I don't think a blanket statement about NoSQL schema evolution is even possible.

The issue I see is that moving the kinds of guarantees that schemas provide into application code doesn't necessarily make the system as a whole more flexible or easier to modify. The exact opposite could be the case.

Postgres has a very liberal license as well by the way.

<comment><USER16> Indeed. You could build a relational database like

      create table nosql (id number primary key, stuff blob);

Hey presto, generic key-value store. The point of a RDBMS is that you can do this _and lots more too_.

</comment></comment></comment><comment><USER17> NoSQL and RDBMS are not competing tools occupying the same solution space. It's not an either-or, and anyone who thinks that it is has _no idea what they're talking about_.

NoSQL doesn't give you a tool that scales better, it gives you a different tool that might fit what you're trying to better.

</comment><comment><USER18> Some NoSQL products geared towards rapid prototyping, and not for scalability, like for example CouchDB. With CouchApps you can create entire Web App in Javascript, sitting in CouchDB.</comment>


Redis for win32 and the Microsoft patch - <AUTHOR> http://antirez.com/post/redis-win32-msft-patch.html <comment><USER2> Antirez makes the point that linux has won the SW deployment war. And, really, it hasn't, with the possible exception of web startups. A lot of software isn't standard SaaS web stuff, and a lot of software won't for a long time, for all kinds of practical reasons.

Antirez, if you could try and imagine how Redis could be used in different environments (inside devices, as a component in 'end-user' business software, and so on), you might see why 'deployment' and 'servers' and 'the cloud' is not at all the only area where Redis might shine. It's your project so your choice, but don't neglect industries and areas simply because those involved in it aren't so represented among your twitter followers!

<comment><USER3> Could you help me imagine how Redis can be used inside devices, or as a component in 'end-user' business business software? (unless it employs a "server").

Redis does one small thing and does it amazingly well -- an in-memory database with persistence and some very useful operations (such as FIFO lists) that do not need roundtrips.

That does not make sense inside a device unless you have ridiculous amounts of RAM to spare (which has never been the case in my experience).

Similarly, it makes very little sense in an "end-user" business software, unless there are _multiple_ processes needing access to the same in-memory data. And that (to me) means a "server" is going to appear sooner or later.

Really, unless you run it on a "server", then sqlite with properly set cache parameters is almost surely a better choice, and works on Win32 since 2002 or so.

Where it makes sense to deploy Redis, looks to me like antirez is right and Unix has won. And even though Redis likely works on iOS and Android out of the box, it makes no sense to do so, at least not at this point.

<comment><USER2> > _Could you help me imagine how Redis can be used inside devices, or as a > component in 'end-user' business business software? (unless it employs a > "server")._

Not all devices are phone-like end-user devices.

I can imagine a machine that produces something. It is full of sensors and actuators, plus logic that uses sensor input to compute what the actuators most be doing. Typically one would store some recent sensor + actuator decision data in RAM to calculate averages, do all kinds of computations, etc.

Storing the same data in Redis instead gives you all that, but persistence for free. That's great, because it means developers / maintenance people / support people can always get a decent dump of what recently happened, without much overhead or extra work. The memory is the log. Elegant!

Computer systems that control factory processes, such as SCADA and MES systems, often have to deal with large amounts of data coming in from many different machines. Most vendors therefore wrote what they call a "real-time database", even though it is not really real-time, just fast. Redis would be a great substitute for such a database.

A high-performance multifunctional office printer has a large memory of jobs sent to it by many different people; print jobs, scan jobs, and so on. These often incorporate fair amounts of data, but the data processing speed requirements are very high because the printer is so ridiculously fast. I imagine that right now the entire job data structure is effectively held in memory and hand-persisted just in case the printer fails; people wouldn't want to lose their print jobs, would they? Persisting data that must be held in RAM for performance reasons. Hmm, where have I heard that before?

I'm not saying Redis is the ideal choice for these particular cases. I'm just quickly braindumping some examples.

I must admit I can't come up with a great end-user business SW example right now though. Maybe I was off the mark there.

That said, as more business applications are moving to the web too, Redis would be very much applicable there. Many organisations (think offices, services sector) have their entire custom-built internal IT systems based on Windows. Much of this is probably a relic of the vendor lock-in practices that MS was very effective with a decade ago, but they're still there and as MS keeps supplying excellent dev tooling, it's unlikely to go away any time soon. Imagine a team of 10 sysadmins for a 3000 person company all highly skilled in administering Windows systems. Moving such people to Linux "just" to administer a Redis installation is impractical, and the company will rather disregard Redis for other options.

<comment><USER3> All these cases you describe are stand alone systems and could equally well be running Linux, or running it in a virtual machine.

I should have asked "inside devices _running windows_ , or as a component in 'end-user' business software _running windows_ " I thought that was implied given the context.

Specifically about printers - they're not _that_ fast that sqlite or postgres can't deal with them. Really. redis is for the 50MB/sec pushing-things-around speed. Fastest printers are at the 10MB/sec, which MSSQL, PosgreSQL and SQLite handle perfectly well. Also, redis is about lots (hundreds of millions) of small items. printers are about few (thousands) of large items.

> Computer systems that control factory processes, such as SCADA and MES > systems, often have to deal with large amounts of data coming in from many > different machines. Most vendors therefore wrote what they call a "real-time > database", even though it is not really real-time, just fast. Redis would be > a great substitute for such a database.

They should pay for a "real" in memory databsae if they can pay for windows. TimesTen, Sybase IQ, Kx. Yes virginia, there are consequences to using the proprietary eco-system.

> Imagine a team of 10 sysadmins for a 3000 person company all highly skilled > in administering Windows systems. Moving such people to Linux "just" to > administer a Redis installation is impractical, and the company will rather > disregard Redis for other options.

You're spending $1M/year in sysadmin salary alone here - probably $1M/year more on hardware and other licenses. Shell out $50K for TimesTen and be done with it. Or pay someone (possibly even antirez) who'll produce a windows port. If it's not worth $50K to this company, it's not worth even a single minute of antirez' time.

<comment><USER2> all these devices could run Linux, yes. All webapps could run on Windows, too. But as POSIX won the webapp server war, Windows won the expensive machine war.

also, you seem to very much want me to demand that antirez codes a windows port, for free, pronto. i never asked for anything like that. i was, and still am, only referring to antirez's conclusion that POSIX is the 99.99% platform for all places where Redis could the best fitting option. I was hoping for him to slightly adjust that conclusion. What he does with it afterwards is _entirely_ up to him.

<comment><USER3> > Also, you seem to very much want me to demand that antirez codes a windows > port, for free, pronto.

I apologize for implying that if I did. That was not my intention.

<comment><USER2> Oh! I appreciate the apology. Very much, in fact. Also, if you felt I was rude back to you at some point, please know that I did not intend for that either.

(offtopic) Really, it's this stuff that keeps me on HN. The ability to shake hands and move on is quite seldom on internet forums.

</comment></comment></comment></comment></comment></comment></comment><comment><USER4> Plenty of developers learn a specific platform and are comfortable using that platform, setting it up and know the ins and outs of securing it. Yes, yes of course they should _learn_ the other platform but really if you're trying to get a job done, you want to be sure you know what you're doing. Learning a different platform to a competent level is not really what you want to be doing when you're trying to implement production-ready systems under time and cost constraints.

So when he says "even if you want to run your code under win32 systems what's wrong about installing Linux boxes to run Redis", I can't help but feel he's being a bit narrow-minded. If it were a valid argument, then why port any software to work under win32 at all? Why bother with node.exe? Why bother with Windows implementations of MySQL, MongoDB or PostgreSQL?

In fact, lots of software starts out as Windows software and is ported to Linux. Why not just tell Linux users to get a Windows box if they want to run that software? I would suggest that the author revisit this viewpoint and consider why the majority of products with which he competes have chosen the platform-agnosticism route.

<comment><AUTHOR> I think that multi platform code makes sense for many kind of software, mainly for client software (an email client, a browser, and torrent client), but Redis is useful in deployments, where the developer has control about what to run when deploying software, and Linux has the interesting feature of being free and open source.

But you said, there are other instances of win32 ports of system software like MySQL, MongoDB and so forth. I guess that they are interested in providing more value to their product allowing a larger diffusion, I'm not enough into marketing to value such a thing, in my opinion people running Apache or MongoDB under win32 for deployment are doing it wrong, and I don't want to help.

But again, I just don't want to _personally_ help an effort that is useless in my opinion, but I'm not either against such an effort. Redis is open source, enough people interested in making it working under win32? Perfect, as I said I'm open to help and recognize their efforts in the main project site, I just don't want to be involved. Life is too short to spend it developing something you don't trust.

<comment><USER5> We use Redis quite a bit in one of our products, Kiln. Because Kiln is mainly a Mercurial hosting platform, we offer it as a hosted product on our servers or, for companies who would prefer to have tighter control of where their source code goes, as an installed product on our customer's servers. As Kiln is written in .Net, we require that users installing it use Windows. Asking our customers to also set up a separate %nix box (or VM), just to run Redis, is too much.

In the first versions of Kiln, we had to ship a Python clone of Redis we called MiniRedis (it only implemented the subset of commands we used) because of the lack of Windows support. We're now shipping the Cygwin build of Redis to run on Windows, which is less than ideal.

I sincerely hope you'll reconsider your position. I believe it is, at best, myopic to think that %nix is the only place people will want to host Redis, or that it has in any way "won" as the only hosting platform.

<comment><USER6> I'm not bashing Fog Creek, you guys make cool products.

When you decided to write an application in .NET, meant to be run on Windows, why did you also decide to use an in-memory datastore that _doesn't run on Windows?_ That seems like a really bad design decision for that product.

</comment></comment></comment></comment><comment><USER7> _I don't think Redis running under win32 is a very important feature. It is cool to have a win32 port that can be used for testing, as we had before, and as we have in a different implementation thanks to the Microsoft patch, so developers using Windows can easily test Redis and develop their projects. But what is the point in providing a production quality win32 port?_

Roughly 60% of our customers run Windows servers in production (2003 or 2008) which is why we support Windows as a first citizen platform. These customers have no desire to run Linux boxes for various reasons and we would simply lose deals if we didn't support their environment.

We've managed to deliver the same level of performance for all platforms we support, and although our NoSQL product is very different from Redis I think you could fully support Windows if you wanted to.

Additionally, I know from experience that supporting multi-platform greatly increases the code quality and robustness. Obscure race conditions or memory problems may be revealed by such support.

Nevertheless, adding support for a platform _a posteriori_ is a huge task and you have the right to consider it's not worth it.

<comment><USER8> If code quality is your concern then supporting multiple Unix variants already does a good job at revealing bugs. Supporting Windows _and_ Unix is a whole different beast. They're so radically different that you're essentially writing two different versions of the code. And since all abstractions are leaky, fixing a bug that occurs on Windows may not fix a bug on Unix; it may even introduce a bug in Unix.

<comment><USER7> There is already a huge amount of libraries that abstract the hard part for you. 95% of our C++ code isn't platform specific and we support FreeBSD, Linux and Windows.

<comment><USER9> I've never used a non-trivial piece of cross-platform software that didn't have significant platform-specific bugs. If you're claiming yours doesn't, I'm going to have to ask for access to your customer support email...

<comment><USER7> We did have platform-specific bugs, but the fixes (if any) were not platform- specific.

In other words, we change the code so that it fixes the platform specific bug while adding no platform-specific code.

(Don't know if I made myself clear).

</comment></comment></comment></comment></comment><comment><AUTHOR> I just linked the two win32 ports to the project download page: <http://redis.io/download> this will hopefully expose the two efforts more and may result if there is a real community around it into a redis-win32 project to mature.

</comment><comment><USER10> As a Linux user who keeps a Windows desktop around just for Netflix and Steam, I find this deeply (and devilishly) satisfying. Telling people they're platform isn't supported because it's just not an important enough market is something I've been hearing for over a decade now.

MS coming out the message "but...but...but...you should support everybody!" is a bit of a pot/kettle situation and I hope they are treated with the same passive-aggressive apathy as they treated Linux and Mac users for all those years.

I know I'm being petty but I can't seem to make myself stop smiling.

<comment><USER11> I would have hoped we all know how we felt and try not to do the same things Microsoft did. What comes around goes around and I really don't want to be on the receiving end again.

<comment><USER3> > he same things Microsoft did.

Are still doing.

> What comes around goes around and I really don't want to be on the receiving > end again.

You're still on the receiving end. And "what comes around goes around" is simply what's happening to Microsoft in this case.

<comment><USER6> Let's be fair though -- Microsoft went ahead and grabbed the open-source code and provided a patch that makes it mostly work under WinAPI. In my book, that's pretty decent behavior.

<comment><USER3> > In my book, that's pretty decent behavior.

I'd reserve judgment about this specific case until we see how things actually turn out.

I've been dealing with Microsoft for more than twenty years, and I'm not holding my breath for their decent behavior, although it happen occasionally.

</comment></comment></comment></comment></comment><comment><USER12> Here's possible outcome:

\- Half-assed port for windows appears, with a big "NOT SUITABLE FOR PRODUCTION";

\- Clueless programmers will simple google "redis windows", hit the first compiled version "redis.exe" and use it, eventually shipping it to production;

\- They'll then hit the official support forums and SO with "Redis doesn't work!!"

</comment><comment><USER13> I find little sympathy for the MS world.

How about a port of IE to Linux so I can test websites with it? How about the ability to install multiple versions of IE on Windows? I could go on....

<comment><USER14> IE relies on mshtml which relies on COM which is basically, well, core Win32. IE is also the largest OLE container.

<comment><USER15> But that was a decision they deliberately took. At one point, IE had versions for UNIX and Mac.

</comment></comment></comment><comment><USER16> I'd really appreciate a supported Windows version. We are a MS shop and nobody want's to administrate a linux box here.

It would be cool to have a VMWare Virtual Appliance Ready to go. Shouldn't be too hard since Redis is sponsored by VMware ;)

</comment><comment><USER17> I am not very familiar with webscale databases like this, but the reason for rejecting the patch is weak. I mean "even if you want to run your code under win32 systems what's wrong about installing Linux boxes to run Redis?".

This is simply missing the point of cross-platform software...

<comment><USER18> You're missing the point of developing highly-tuned, quality, production-based server software. Redis is not you're average Java/.NET user-level application, it's one of the fastest NoSQL solutions in existence.

@antirez wants to take advantage of the underlying POSIX platform and as such Redis takes advantage of unique features only available on *nix. His point is merging the patch increases the size and complexity of the project (whilst reducing stability) - detracts from his mission of making Redis run exceptionally well on POSIX platforms.

He also highlights that Windows/.NET shops like StackOverflow have no problem setting aside linux servers to run host Redis servers in production.

<comment><USER19> Quake is one of the most highly-tuned, quality, production high-performance software, and it runs on tons of platforms from Linux, to Windows, to even an iPad. High performance software is not incompatible with portability.

Redis's performance (compared to traditional databases) comes from the fact that the data structures are maintained in memory, which turns out to be a really good tradeoff when your data set is small. That has nothing to do with POSIX, or unix. The point of contention is the fact that Windows does not have an efficient implementation of _fork_ , which enables copy-on-write semantics. Redis uses that to periodically dump data to disk without blocking the original process. This is a really clever use of a feature unique to unix, but one man's cleverness is another man's limitation.

Building cross platform software really forces you to examine your architectural decisions, learn about other platforms (and by extension, the limitations of your own), and your software always ends up having a better architecture when you're done with the porting process (in addition to being usable by more people).

@antirez's arguments regarding complexity, additional testing, etc. make total sense, but your performance/stability argument doesn't hold water.

<comment> buff-a Quake? This quake? <http://en.wikipedia.org/wiki/Quake_(video_game)>

What a wonderful argument in _support_ of @antirez's suggestion that other people port and maintain it. In _every_ case each port was done after the fact, into its own project. They may since have been reintegrated back as part of the source release (5 years later). But the core team certainly didn't do it. Carmack ported Quake to GL in '96 and IIRC that was used for a linux port. Again, not on main branch, not being committed while the team was working Quake 2.

I've made cross platform video games and I don't find your opinion remotely credible. I've also ported video games from one platform to another. A game that was highly optimized for one platform required a complete rewrite of the graphics engine for the other. Companies like Naughty Dog and Insomniac, that can focus on a single platform, have a much easier time of it.

</comment></comment></comment></comment><comment><USER20> Unless you're using Microsoft servers/tools like .NET, this is another nail in the coffin as Windows machines as a viable platform for most web-development.

I spent the first year of my Rails development on Windows and it was so painful - slower, strange bugs, many unsupported tools/libraries.

This seems like a reasonable decision, but one in a long list of reasons you can't easily develop on Windows unless you're targeting a Microsoft stack for your product.

<comment><USER21> Yes and no. I sometimes develop in Windows (I find the UI easier to work with than OS X or Linux, just a personal preference) and I just run all the server- side tools I need in a tiny Linux VirtualBox VM.

It's an ideal setup, really- when I'm done with development and watch to kick back and watch a movie, I just put the VM into sleep mode and kill off those background tasks.

</comment></comment><comment><USER22> Totally right blog post from antirez, I agree with him as for his plans to his attitude.

</comment><comment><USER23> How's the performance of Redis when it's running in a Linux VM?

</comment><comment><USER9> The fundamental problem people are having seems to be "antirez won't support Windows".

Let's say BigCorp really wants to use Redis, but only supports Windows.

Why is it OK for them to ask antirez to support Windows, but not OK for antirez to ask them to support Linux/POSIX?

Don't go with a kneejerk response, think about it.

Neither party in this relationship has any special obligation to the other, there's no contract, no money is changing hands.

BigCorp wants antirez to support their preferred software (Windows), antirez wants BigCorp to support his (Linux and/or POSIX).

It will cost BigCorp more to support POSIX, you might say. But cost them more relative to what? Of their tens of thousands of employees, billions in revenue, BigCorp would be dedicating an infinitesimal fraction of its resources to supporting a POSIX-compatible OS.

Meanwhile, a huge fraction of antirez's time will be spent dealing with the effects of trying to maintain a high-performance, low-level datastore on two utterly incompatible platforms, and the time he spends on that is time taken away from work on other bugs and features, which also amounts to time taken away from all the people who already use Redis on POSIX.

There is no incentive at all for antirez, his employer VMware, or the Redis community at large to go through the pain of integrating Windows support into Redis mainline. There is some incentive for BigCorp to support Linux, since they want to use Redis effectively.

The incentivization is exactly backwards, so it should surprise absolutely no one that antirez isn't prepared to deal with supporting Windows.

<comment><USER24> So, let's talk about the incentivization issue first.

 _Why is it OK for them to ask antirez to support Windows, but not OK for antirez to ask them to support Linux/POSIX?_

Because antirez has a tool whereas BigCorp presumably has a problem. Because all of us could benefit from this, while only some of us might benefit from BigCorp switching to Linux.

Asking somebody to make their tool more available is, I posit, much more reasonable than asking somebody to change their problems.

BigCorp has potentially hundreds of thousands tied up in existing equipment, IT infrastructure, and training for employees. You and I might not flinch at spinning up a VM to run a database, but we (and the rest of the HN community!) should not fool ourselves into thinking that this is in any way always appropriate for a company.

 _Meanwhile, a huge fraction of antirez's time will be spent dealing with the effects of trying to maintain a high-performance, low-level datastore on two utterly incompatible platforms, and the time he spends on that is time taken away from work on other bugs and features, which also amounts to time taken away from all the people who already use Redis on POSIX._

Or, you know, he might talk with the Microsoft development team and try to get them to take over maintenance of the Microsoft codebase, and clean up the platform-specific architecture that gets in the way--and in so doing, write better code.

If you can't/won't write platform-independent code, you are either lazy or your problem domain is heavily dependent on your platform. As far as I know, in-memory key/value stores aren't a Linux-specific problem, so...

<rant> _There is no incentive at all for antirez, his employer VMware, or the Redis community at large to go through the pain of integrating Windows support into Redis mainline._

Let's look past incentives here. Let's talk about Doing the Right Thing.

A huge number of people here make daily use of software packages and stacks that are open source. We owe our livelihoods to the folks that have been kind enough to release the source to their programs and, more importantly, work with the community to improve their code.

We owe it to ourselves and our community to call out people being lazy and selfish, and letting politics overrule sound engineering and decency.

This is an unreasonable decision by antirez. He's got a cool framework. He's got a bunch of code and (presumably) people that are happy to work with him on making it even more useful.

He's also not going for it, because "use linux lol". Not because it's hard, not because he doesn't have folks that can add it, not because the problem extends beyond some refactoring and #ifdefs and makefiles.

Because he's lazy. Because Linux is the One True Way. Because helping out anyone who can't just change their infrastructure on a whim is too much to ask.

Really folks? You don't see a problem with this? </rant>

<comment><USER25> Guy writes code for Linux. Code could theoretically be made to work on Windows. Windows users are therefore entitled to a Windows port.

That's roughly your argument here; I've just done you the favor of adding concision to it. The motivations of all the parties involved, enterprise IT costs, all that jazz, none of that matters. Fundamentally you're saying "if something can be made cross-platform, it's wrong not to make it cross- platform".

That is, to say the least, a comical argument coming from people who want _Linux_ code deployed on _Windows_.

<comment><USER24> _Guy writes code for Linux. Code could theoretically be made to work on Windows. Windows users are therefore entitled to a Windows port._

Not quite.

Guy writes code for Linux. Code could theoretically be made to work on Windows. Microsoft team submits patch to achieve this functionality. Users can reasonably expect a Windows port. Guy decides using submitted code is too much effort (from article says will get harder and harder) and that besides, there is no demand for it (from article: "I don't think Redis running under win32 is a very important feature."). Users have been denied functioning code because of arbitrary decision by guy.

<comment><USER25> You wrote (and I numbered):

 _(1) Guy writes code for Linux. (2) Code could theoretically be made to work on Windows. (3) Microsoft team submits patch to achieve this functionality. (4) Users can reasonably expect a Windows port. (5) Guy decides using submitted code is too much effort (from article says will get harder and harder) and that besides, there is no demand for it (from article: "I don't think Redis running under win32 is a very important feature."). (6) Users have been denied functioning code because of arbitrary decision by guy._

(4) simply does not follow from (1), (2), and (3), derailing the whole rest of your argument.

Salvatore doesn't owe anyone a damn thing. He has _the opposite_ of set the expectation that there will ever be a Windows port, so any user who thinks they can "reasonably expect one" is delusional.

Anyone who says otherwise is arguing for the sake of arguing. Writing a program _specifically for Unix_ is obviously a totally reasonable thing to do, just as it makes zero sense to demand Panic provide a Windows port for Transmit, or that Microsoft provide IIS7 for FreeBSD.

<comment><USER24> If I'm not mistaken, 4 actually very much does follow from the preceding points.

The code is brought into existence. Code is observed to be capable of being modified into working on Windows (i.e., nothing radically platform-centric about it). Microsoft provides the grunt work to accomplish a patch that proves this observation true.

Very much, by definition, users can reasonably expect a Windows port. The capability exists. The code exists. The patch functions. If Windows User Clippy says "I expect that redis will be ported to Windows, given these facts", Clippy is not being unreasonable.

I'm sorry, but to claim otherwise is merely being obtuse.

Your points about IIS7 and Transmit are correct, as those rely on specific OS functionality that is unique--the constructs Redis uses are not, and again code has been written to show this fact.

Now, there very much is something to be said for Salvatore (antirez?) not having to do this work for free. Indeed, VMWare may be spending a good chunk of change paying for his services ( <http://antirez.com/post/vmware-the-new- redis-home.html> ). I do not wish to suggest that he go uncompensated.

What I do wish to suggest is this:

VMWare: this dude you are paying to develop a widely-used and respected project has (seemingly arbitrarily) turned down code submitted from other practitioners in the field. He has suggested they fork the project (diluting the quality of the Redis brand and potentially removing resources that could improve mainline Redis). He has suggested that the project is too difficult to make cross-platform; I'm sure that you folks might have a different opinion on how important cross-platform support is.

Pay him more to make a better project (with help from people in the community!). Or acknowledge that he is correct in his assessment that this is somehow a Linux-only problem. Or do something else to help him figure out how his goals align with the VMWare mission.

<comment><USER3> > If I'm not mistaken, 4 actually very much does follow from the preceding > points.

Then you should go back to logic school. Let me make it clearer for others reading this, as yourself appears to be a lost cause:

(1) Microsoft develops web browser (2) rendering could theoretically be made standard compliant with minor changes (3) people submit style sheets and javascript files that, if included in a web page (or embedded into IE) would achieve that functionality. (4) Users can reasonably expect Microsoft to do that.

Wait, what?

Furthermore, your logic breaks in other places:

(5) ... there is no demand for it (from article: "I don't think Redis running under win32 is a very important feature.").

How does "not important" imply "no demand"? Let me give you an example that will make it clear:

"Apple just said that getting Win7 apps running on the iPad is not important". You bet there's demand for that, and yet that does not make Salvatore's or this (fictional, but realistic) Apple quote wrong in any way. "important", unless otherwise qualified, is to the speaker.

(6) Users have been denied functioning code because of arbitrary decision by guy.

Wrong. They could just build it from source. Less convenient? Well, it takes just one person to package it and make it into an .msi.

Furthermore, the decision is not arbitrary -- you may disagree with the reasoning, but he gave detailed reasoning.

You sir, are either an idiot or a masterful troll -- I would pick the first, if only because it makes me feel better to think I haven't been trolled :)

<comment><USER25> We shouldn't call people idiots, or, really, trolls. Berate the argument, not the commenter.

<comment><USER3> That's true. And I mostly follow this.

When the other person consistently ignores logic and invents their own facts and reality, I occasionally adopt the Linus strategy; but I still take care to address the argument itself.

Point well taken. HN is a better place thanks to people like yourself.

<comment><USER25> Blah, I'm 100x worse than you are about calling people names, but for what it's worth: if you write a similarly worded comment to me, I'll try my best to thank you for it instead of getting bent out of shape. :)</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment>


Ask HN: How best to help offshore colleagues survive Covid-19? Mine is in Mumbai - <AUTHOR> I want to help my friend and colleague in Kandivali-West, Mumbai. It looks like he has Covid-19. I am concerned for him, his wife, and aged father and I want to help them, but I don't know what to do. He and his family have holed up in his apartment for 3 months. They are middle-class and have some access to health care but they aren't wealthy. I need locally-relevant ideas if you have them.
There must be people on HN who are in Mumbai or know Mumbai. Can you suggest to me what I might do?
And there also must be many other HN users in my position, who want to help someone far away and don't know how. Or who have helpful ideas for people in a specific location. Please post those as well.
Thank you. <comment><USER2> Gift ideas that may help:

[https://www.fnp.com/](https://www.fnp.com/) non-essential deliveries are available in Mumbai now I think. Ferns N' Petals takes American cards.

Swiggy is the local food delivery app. They'll take the random American card (try a few). You can just look at the "premium" options nearby. Ratings and photo quality in the app speak volumes.

Some other nice companies who would make good gifts that are less local but more national... blue tokai coffee roasters, third wave coffee, tea trunk, nicobar, nappa dori.

<comment><AUTHOR> I have had trouble with other services taking US cards. I'll give these a try, thank you.

</comment></comment><comment><USER3> This might not sound like much but have them take good doses of vitamin D, vitamin B, and magnesium. There has been quite a bit written in recent weeks about those deficiencies leading to much more severe illness.

<comment><AUTHOR> I will mention vitamin D supplements, thank you.

References to Vitamin D that seem very credible: \- [https://www.acsh.org/news/2020/05/04/vitamin-d- covid-19-evid...](https://www.acsh.org/news/2020/05/04/vitamin-d- covid-19-evidence-so-far-14763) \- [https://pubmed.ncbi.nlm.nih.gov/32252338/](https://pubmed.ncbi.nlm.nih.gov/32252338/)

Not seeing much about Vitamin B, _maybe_ this grab bag from a Wiley journal:[https://onlinelibrary.wiley.com/doi/10.1002/jmv.25707](https://onlinelibrary.wiley.com/doi/10.1002/jmv.25707)

And this less strong support for magnesium: \- [https://www.livescience.com/61866-magnesium- vitamin-d.html](https://www.livescience.com/61866-magnesium-vitamin-d.html)

Mayo Clinic cautions about supplementary magnesium: \- [https://www.mayoclinic.org/drugs-supplements/magnesium- suppl...](https://www.mayoclinic.org/drugs-supplements/magnesium-supplement- oral-route-parenteral-route/side-effects/drg-20070730)

<comment><USER3> See also

[https://www.eatthis.com/vitamin-b12-deficiency- coronavirus/](https://www.eatthis.com/vitamin-b12-deficiency-coronavirus/)

[https://www.healthline.com/nutrition/immune-boosting- supplem...](https://www.healthline.com/nutrition/immune-boosting-supplements)

</comment></comment></comment><comment><USER4> Lemme know what he wants, if its food, groceries etc, I'll take care of it. Im from new Delhi but I have friends in mumbai.

<comment><AUTHOR> Thank you, please email me at mumbai-support A.T freytag D.O.T org so we can discuss options.

P.S. He was feeling better this morning but, as we all know, coronavirus can get better before turning suddenly worse. The 14-day clock has started.

</comment></comment><comment><USER5> Do they need money for groceries or they are already covering that? Unless you can help in private medical expenses or they need groceries/rent money, I'm not sure any help is possible, realistically speaking.

Also some government around the world took over private medical facilities especially in developing countries. So it can be a moment where both poor and wealthy have equal access unless they are politically connected. Add to that if India is experiencing a surge, maybe all medical facilities will be busy whether free or paid.

This is a matter of randomness (or fate if you believe in God) and unless you are there (in Mumbai) or can be there (which might not be feasible as flights are restricted world-wide) I don't think you can do much.

If money is what he needs and you suspect he's avoiding to ask, I'll just insist instead of buying him stuff online. I think he (and his family) will make better decisions with the money.

<comment><AUTHOR> As long as my friend is mobile they have food and medical options. My concern is and has been what happens if he becomes ill and must either isolate himself or is hospitalized. In that latter case I needed ways to reach out remotely and support him and his family. This thread has provided some helpful options previously unknown to me.

Thank you!

</comment></comment><comment><USER6> I have a similar question, but it's for coworkers who are in Iquitos, Peru.

(In actual Iquitos, not Pebas or Nauta).

100% of my coworkers there (I am on the board of the NGO) are COVID-19 positive. While I can whatsapp them, I feel powerless right now to help them.

Any suggestions are welcomed !

<comment><AUTHOR> Yial, perhaps you should submit a similar Ask HN question to HN during the early morning in Iquitos, Peru. That is a time when you will catch a lot more locals reading and maybe able to offer relevant suggestions.

Good wishes to your colleagues and thank you for being there for them.

</comment></comment><comment><USER7> Appreciate your offer mate :-).

A couple of things to consider:

I'm a fellow Indian and while I can't generalise for everyone, some people are a bit shy and get offended when someone else offers food/groceries because in many parts of India it's a sign of poverty.

If you can speak to your colleagues and ask if it's ok, somethings to consider :

1\. Long life milk which means lesser trips to supermarkets. Available on www.amazon.in ( search good life milk)

2\. Frozen veggies/ ready to eat stuff to save some trouble

3\. Not food but can you use some of your skills and make them more productive at work or less stressed? I'm sure they'll appreciate this the most.

Godspeed!

<comment><AUTHOR> He and I have gotten to know each other pretty well over the years of working together. I will suggest the milk and frozen veggies - I think he has that covered but who knows?

As far as stress relief, definitely, I'm covering his bills and have taken his tasks until he feels better.

Thank you.

P.S. He was feeling better this morning but, as we all know, coronavirus can get better before turning suddenly worse. The 14-day clock has started.

</comment></comment><comment><USER8> Beware that I know nothing in particular about Mumbai or being actually sick with Covid.

I, like many of us, have been holed up in an apartment for months. I'm lucky to have family members with me, but talking to others occasionally has been good. Make it clear to them that you're available if they want to chat. Videocalls are better than voice only. If you have a common interest that may reasonably be done remotely, like video games, there's that.

<comment><AUTHOR> In addition to usual check-ins, I call in his morning and evening to assess how he is feeling and be another person to help think through the options.

Thank you.

P.S. He was feeling better this morning but, as we all know, coronavirus can get better before turning suddenly worse. The 14-day clock has started.

</comment></comment><comment><USER9> Like you said they aren't wealthy. So wouldn't changing that make a difference?

Additionally one can order food delivery online to supply groceries as there are many apps that let you do that.

<comment><AUTHOR> True of course, but what can be bought or done that will help and is accessible in Mumbai that is not obvious to a local?

<comment><USER9> I think as its common in UX design, first thing is to ask the user "what" they want. Then you could think of the "how" part: how that goal can be achieved in a way that might not be obvious to a local.

The locals would know more about "what" can be done. Good luck.

Edit: Grocery delivery app [0]

[0] [https://grofers.com/](https://grofers.com/)

<comment><USER10> This suggestion is the ideal one. The locals would know better.

</comment></comment></comment></comment><comment><USER11> Why exactly are you concerned? The mortality rate is around 1/1000 or less for people of working age.

<comment><USER9> The goal is to reduce the suffering of a friend and his family in times when the whole family is quarantined and possibly has troubles accessing basic utilities. There is little need of derogatory remarks towards someone trying to be kind in an ever increasing unkind world.

<comment><AUTHOR> Thank you.

P.S. He was feeling better this morning but, as we all know, coronavirus can get better before turning suddenly worse. The 14-day clock has started.</comment></comment></comment>


Show HN: Jellibug, it collects pictures celebrities post on Twitter - <AUTHOR> http://jellibug.com Built this using Rails and Backbone.js. Hope this finds an audience out there. Any feedback or criticism will be greatly appreciated! <comment><USER2> Looking at the page source, all I see is Javascript. Google Analytics and Facebook junk.

Try visiting this site with Javascript disabled and you get nothing.

Hopefully all websites will follow this brilliant design.

Great job!

<comment><AUTHOR> Yep, this is one of those one page JavaScript apps. Thanks for checking it out at least.

</comment></comment><comment><USER3> i have to say that i liked the idea. i'm not a fan of any of those people but i'm working for a media company which means our editors get access to all those pictures of famous people instead of diving into google hell. they are making them happily available for everyone.

congrats! :)

i believe i can suggest one thing. when we see the bigger version of the picture, let us like or dislike to photo and maybe share the action in twitter.

<comment><AUTHOR> Yep, there's a lot of noise out there, especially on a celebrity's Twitter feed itself. That's great to hear that this will benefit your company!

The social media sharing is in the works, as well as view counters. Also, I plan on introducing a search feature in a few days. Thanks for your feedback :)

</comment></comment><comment><AUTHOR> Built this using Rails and Backbone.js. Hope this finds an audience out there. Any feedback or criticism will be greatly appreciated!</comment>


How does Rescuetime work? - <AUTHOR>

I am learning programming and I am trying to figure out how Rescuetime has a client that can detect what programs are open and report them to a website.<p>If anyone has some explanations that would be great! <comment><AUTHOR> Here is a link to the website for those who haven't heard of it:

[https://www.rescuetime.com&#x2F](https://www.rescuetime.com&#x2F);</comment>