It's time for a memory safety intervention - <AUTHOR> https://tonyarcieri.com/it-s-time-for-a-memory-safety-intervention <comment><USER2> There's a lot right in this, but I feel he's chosen the wrong enemy by harshly criticizing Daniel Stenberg (the curl dev). He's not a C zealot, he's just accepting realities.

Curl should be replaced by something memory safe. But it cannot happen today, because the infrastructure isn't there. We don't have memory safe languages suitable for system programming that's widely available on all kinds of architectures. Rust may become that language, but today it is not. It's not as portable, not as easy to integrate etc. pp.

<comment><USER3> > We don't have memory safe languages suitable for system programming that's > widely available on all kinds of architectures.

Yes, yes we do. Go is available on a ton of architectures; Lisp is available on a ton of architectures; ML is available on a ton of architectures.

Yes, C is available on more. Yes, for some architecture C is the only reasonable choice. But on x86 & ARM, there's no good reason to write new code in C.

<comment><USER4> What about applications with soft or hard real time requirements? (So, for example, a video game or an audio player.) I am not aware of any GC language which is suitable for use in this space. Go certainly is not.

What about any application that cares in the slightest about performance? In this case, memory layout is incredibly important, and many (most?) of those higher level languages are immediately disqualified.

<comment><USER5> Correct me if I'm wrong as I'm not an expert in this field at all, but aren't hard real time systems written so that no memory allocation or release happens during normal operation?

I'm sure there are other reasons why Go would rarely be considered for a hard real time system, but purely from a memory management perspective you could simply disable the GC.

And then of course there is also Rust.

</comment></comment></comment></comment><comment><USER6> > "We need to collectively admit memory safety is a problem."

Yes, we need it badly. Because I am still seeing a lot of folks either deny that memory safety is a big problem of programming in C or some even accept the fact.[1]

Without admitting that and start taking action to improve infrastructure software, I don't see how we can build a securer future. That's an intervention, it should start now.

[1]: [https://news.ycombinator.com/item?id=13979206](https://news.ycombinator.com/item?id=13979206)

<comment><USER7> Memory safety is certainly a problem. But so is the ability to execute data. I'm scared by the use of any language that has that capability for security- critical applications.

<comment><USER8> In the last 15 or so years that awareness has increased of that issue, the defaults for stack and heap allocations are to mark pages as non-executable. It is therefore harder than it used to be to execute data - you need to jump through some hoops.

Not to mention if you could not execute data, your programs would not load.

<comment><USER9> The moment you have any kind of interpreter or JIT compiler, you're effectively bypassing non-executable protection on memory by providing a way of executing code that looks just like accessing data from the CPU's perspective.

</comment></comment></comment></comment><comment><USER10> The C++ Core Guidelines Checker, in combination with the Guidelines Support Library, is supposed to bring Rust-like memory safety guarantees to C++. Has anyone here had a chance to try it out?

[https://github.com/isocpp/CppCoreGuidelines/blob/master/CppC...](https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md)

[https://github.com/Microsoft/GSL](https://github.com/Microsoft/GSL)

[https://msdn.microsoft.com/en- us/library/mt762841.aspx](https://msdn.microsoft.com/en- us/library/mt762841.aspx)

[https://blogs.msdn.microsoft.com/vcblog/2016/10/12/cppcorech...](https://blogs.msdn.microsoft.com/vcblog/2016/10/12/cppcorecheck/)

Microsoft has been embracing the idea. But, the GSL and Checker are both compiler-independent.

<comment><USER11> I very much doubt that Core Guidelines Checker can do the job of the Rust borrow checker without the lifetime info the borrow checker needs.

Is there some doc that explains how the Core Guidelines Checker could achieve Rust-like safety given what it has to work with?

<comment><USER12> IIRC it's simultaneously not 100% safe because it can't stop R-W bugs (iterator invalidation, etc), and also more restrictive because it allows a smaller set of lifetime relations. This may have changed since I last saw it, which was admittedly quite a while ago.

Still, major improvement. Could very well be "enough", practically speaking.

</comment></comment></comment><comment><USER13> Amen.

I just spent ~1.5 days tracking down a dangling pointer bug in interop code from Rust to C. It's so easy to do when you don't have lifetimes on pointers. I'd gotten so comfortable with lifetimes that I'd started taking it for granted.

Yes Rust can be hard to write, but the time and pain we spend of the other side of that equation can be just as important if not more so.

<comment><USER12> For stylo I've taught bindgen to be able to insert borrows in the binding functions in the presence of certain types, so on the C++ side you define it as FooBorrowed bindingFunc(BarBorrowed b), and on the rust side you get fn bindingFunct(&Bar) -> &Foo, which elides correctly. As a result a lot of the rust-side FFI code is actually 100% safe and the burden of safety has been pushed over completely to the C++ side. It's pretty neat.

<comment><USER13> My problem was that I was taking a:

      Some([u8; 32]).map(|v| v.as_ptr()).unwrap_or(::std::ptr::null());

Which the map(..) copies by value and immediately goes out of scope so now you have a dangling pointer to the stack(fun!). If it was a reference I'd be totally covered but since pointers drop lifetime semantics that's where I got bit.

Love bindgen though, just whitelisting the function I needs generates awesome interop APIs. At the end of the day though unsafe is unsafe.

<comment><USER12> ah, yeah, bad idea :)

Yep, unsafe is unsafe and needs more scrutiny.

</comment></comment></comment></comment><comment><USER14> Yeah, but the fact is that there are billions of lines of C out there, and tens of millions more being added every year, and that's not going to change for a while. Under no scenario will more than, say, 50% of new systems code be written in a memory safe language within the next 15 years. It doesn't matter what we want or what we think the industry should do; given the rate of change in those sections of the industry that use C/C++, realistically that's just not going to happen any time soon, while the errors already affect us.

That doesn't mean people shouldn't switch to safe languages for new projects if they can, but it does mean that they should use the tooling available for C much more. Unlike what the article claims, they don't -- at least not those who write programs with lots of memory safety issues. There are static analyzers that can _guarantee_ \-- 100% -- no memory safety issues. Airtight guarantees may take some work, but it's still far, far cheaper to achieve using state-of-the-art tools than switching to a new language for many projects (even new ones in organizations where C is established, let alone old ones). Unlike what the article claims, programmers utilizing state-of-the-art C tooling and best practices _do not_ "constantly produce programs riddled with severe memory safety vulnerabilities".

Unfortunately, those state-of-the-art tools and practices are used almost exclusively by authors of safety-critical software, and are not commonly used in more mundane kinds, let alone in open-source projects. An intervention more likely to work in the short term should push for that, regardless of longer- term solutions in the form of safe languages.

<comment><USER15> _" There are static analyzers that can guarantee -- 100% -- no memory safety issues."_

This is untrue, at least for any practical interpretation of such a guarantee. Which product do you think does this?

Note that for it to count, it has to return the results before the programmer is dead.

<comment><USER14> [https://trust-in-soft.com/products/](https://trust-in-soft.com/products/) (a commercial product from the people who've built Frama-C)

Sound static analyzers are not 100% automatic. They require user help in the form of annotations in cases where they can't prove everything automatically. But the work required is similar -- probably less -- than writing tests.

Also, note that it's very easy to find all memory safety errors in a sound way -- you just report every pointer and array access that's unsafe. The problem isn't identifying all errors, but proving the memory safety of the cases that _aren 't_ (and that's where they may ask for help in the form of annotation -- to convince them of the _absence_ of an error).

<comment><USER15> _" They require user help in the form of annotations in cases where they can't prove everything automatically."_

So, like I said then. Doesn't exist in any practical form :) Annotations are clearly a non-starter.

<comment><USER14> Right, because clearly adding some annotations (which is similar in effort to writing test cases) is a non-starter while rewriting hundreds of millions of lines of code in new, immature languages is going to solve the problem faster. And that nonexistent-in-practice approach is commonly used in safety critical software.

<comment><USER15> Mark my words. In 10 years, there will be no more adoption of annotations than there is today.

If you can't get anybody to use something, it's a non-starter. It doesn't matter why. It just hasn't happened and it wont happen.

<comment><USER14> You could have said the same about unit tests 20 years ago. The annotations themselves are immaterial; the point is the use of formal methods. Formal methods requires some assistance. Whether you write those as annotations in the code or in a separate file is an implementation detail.

</comment></comment></comment></comment></comment></comment></comment><comment><USER16> So has any person or organization done a statistical survey of a body of bug reports (like CERT) and characterized how many bugs are memory safety related?

I see this SEI blog entry [1] that cites a report, with a bitrotted link (I think it's [2]). The blog summarizes the report associating buffer overflow as a source of "14 percent of software security vulnerabilities and 35 percent of critical vulnerabilities making it the leading cause of software security vulnerabilities overall." Though it seems to be the easiest to track and a leading error, buffer overflow is only one category of memory safety problem.

[1] [https://insights.sei.cmu.edu/sei_blog/2014/08/performance- of...](https://insights.sei.cmu.edu/sei_blog/2014/08/performance-of-compiler- assisted-memory-safety-checking.html)

[2] [https://courses.cs.washington.edu/courses/cse484/14au/readin...](https://courses.cs.washington.edu/courses/cse484/14au/reading/25-years- vulnerabilities.pdf)

<comment><USER17> At one point I made an attempt to do this from the CVE database, but it's difficult to do since CVEs aren't really machine readable from a "memory safety vs. other security flaws" perspective. I recall finding a lot of reported vulns with buffer, overflow, null pointer dereference, double free, etc., but that's far from scientific.

<comment><USER16> I would be nice to also track the maturity of the errant code base that those types of bugs are being reported in. One theory might be very mature/well tended code bases should have decreasing numbers of memory safety issues, and data in this regard would form some sort of basis to say - this code should be left alone, this other code would likely benefit from a rewrite into a new lang..

</comment></comment></comment><comment><USER18> As others have pointed out, a huge amount of C code is going to stay with us for quite some time. While fighting for the adoption of other languages is right and noble, what I would consider practical is eliminating (the worst of) memory management related exploitation for any C/C++ code at compile time. There has been done quite some work that shows this can be done efficiently, e.g. SoftBound+CETS [1]. Heck, even WebAssembly shows that you can get complete control flow protection for a comparatively low price. I would gladly use a Linux distribution that compiled all packages with such protections, even if it ran about 20% slower.

[1] [https://www.cs.rutgers.edu/~santosh.nagarakatte/softbound/](https://www.cs.rutgers.edu/~santosh.nagarakatte/softbound/) ; presentation: [https://media.ccc.de/v/30C3_-_5412_-_en_- _saal_1_-_201312271...](https://media.ccc.de/v/30C3_-_5412_-_en_- _saal_1_-_201312271830_-_bug_class_genocide_-_andreas_bogk)

</comment><comment><USER19> Don't think anybody cares enough to go through so much change to deal with vulnerabilities. I think nowadays people treat buffer overruns the same way they treat bus delays: it's a fact of life, just live with it. Not saying that's right, but turning that ship around is no easy feat.

</comment><comment><USER20> Is the problem portability though? Or is it stable ABI / easy interoperability? What good is a fancy language when at the end you would still expose low level API and headers specifying functions that take unsafe pointers to raw memory?

</comment><comment><USER21> The part about swift, "it's neat too" I read that as kind of mocking the swift language compared to rust or golang. Or do we think the author meant that sincerely as, swift is in same league as the others?

<comment><USER22> I don't think he's mocking it, but he might not know much about it.

Swift's probably on par with go. You have to diverge a bit from normal practice or involve concurrency to be unsafe. This is in contrast to C, where "normal practice" often produce buffer overflows.

</comment></comment><comment><USER23> I'm reminded of an old article from Steve Yegge[0]. Relevant section:

> If I were going to write the Ten Golden Rules of Software, the top of the > list would be:

> Error Prone == Evil

> Although this concept is obvious to 99.999% of the general population, it's > only accepted by 2% of computer programmers. The remaining 98% subscribe to > a competing philosophy, namely: "Error Prone = Manly". Never mind that they > just assigned "Manly" to the variable "Error Prone", and the expression > always returns true; that happens to be the correct value in this case, so > it's an acceptable hack.

[0] [https://sites.google.com/site/steveyegge2/ten- predictions](https://sites.google.com/site/steveyegge2/ten-predictions)

</comment><comment><USER24> As somebody who would like to move to capability-safe languages, I think that moving to memory-safe languages is a necessary first step.

You don't have to move to Rust, but you do have to move away from C.

<comment><USER25> I want to see that move too, but I don't agree it's a prerequisite: you can sandbox code in unsafe languages using something like Sandstorm.

<comment><USER12> Still means you can leak application memory ; this is what happened with (cloud|heart)bleed. Sandstorm mitigates RCEs escaping the sandbox, but not the leaking of secrets.

<comment><USER26> You are not wrong in general, but people have pointed out that heatbleed technically was not caused by a memory safety issue.

<comment><USER12> Well, it's debatable. It was memory safety in the sense that they were using a buffer to manually manage memory and then messing up there. Languages like Rust won't save you from that, yes, but it is still at a basic level the same kind of bug. The question is if someone writing the program in Rust or Go or w/e would have used such a custom-allocator approach. It's unlikely, but such an approach is unlikely in C too, so it's not very clear-cut :)

(but my general point was about sandstorm not fixing all the problems, just a subset -- not about whether other languages fix all those problems)

</comment></comment></comment></comment></comment><comment><USER27> Hear hear.

The curl devs were totally irresponsible, and worse, outright intellectually dishonest to pretend memory safety wasn't a serious problem for them or anyone else.

</comment><comment><USER28> > Rust is the new kid on the block.

> It supports a wide variety of platforms,

> and might even run on that microcontroller

> you think can't run anything but C.

Hahaha.

Oh, you're serious...let me laugh harder...

When the rust compiler can produce code that runs on my micro with harvard architecture, 14-bit instruction words, and 64 bytes (not megabytes or kilobytes) of RAM, we can talk.

.

EDIT: loving the downvotes. Keep them coming! Because nothing says "civilized debate" like quiet underhanded unexplained disagreement :)

<comment><USER29> Port LLVM to it, you're halfway there.

Such a restricted machine unfortunately is not amenable to any abstraction and I have no idea what such bad hardware would be used for. Nor why.

<comment><USER30> Tiny microcontrollers are used all over the place. They're useful in things like appliances and simple peripherals.

I'm guessing that the other comment is referring to PIC microcontrollers. Over a billion such microcontrollers are sold every year. Not all of them are _that_ limited, but many are.

And they are amenable to the abstraction of C. That's kind of the whole point of that comment.

The world of computing is far larger than PCs and smartphones. One could make a convincing argument that those are a small minority, in fact.

<comment><USER31> > And they are amenable to the abstraction of C. That's kind of the whole > point of that comment.

Well, that's sort of the problem, right? C was made _so_ portable (because, admittedly at the time of development hardware was less uniform) that a lot of assumptions we take for granted are actually undefined, because you _can 't_ make those assumptions about the underlying hardware. What makes C _usable_ and _useful_ on these architectures is the same thing that causes problems for the other 99.9% of _people_ programming in it.

Should a language with obvious shortcomings in the name of portability be one of the de-facto standard languages for _all types_ of library development? Do i even trust a crypto or XML parser library written in C on a platform with a non "standard" word or byte sizes that wasn't developed specifically for that architecture, or those constraints?

> The world of computing is far larger than PCs and smartphones. One could > make a convincing argument that those are a small minority, in fact.

As a question of where to optimize, I would say it pays to get a much safer language on these devices, both because it would prevent crashes, bugs and security problems, and because (I think?) far less people are responsible for writing the code, so a little extra work on their part pays of more overall).

I think C is as prominent as it is today because of how history played out, not necessarily because of its inherent merits.

</comment></comment></comment></comment><comment><USER32> Does anybody _not_ roll their eyes at headlines of the form "It's time for an X intervention"?

I expect I'd agree with this article's substance, but I gave up in the first paragraph. I find myself unable to maintain giving a shit what this person has to say.

<comment><USER33> Why? This is a perfectly-justified usage of the word "intervention".</comment></comment>


Too old to start an IT career (C# programming or whatever) at age 50? - <AUTHOR>

I'd really like to know if it's too late to start in the IT field and make good of it.  I want to eventually become a consultant for the rest of my life of past age 75.  Am I going to be in a tough field to get into if I get a graduate degree in computer science or learn for certifications in a graduate school called SetFocus? <comment><USER2> Depending on your background... _maybe_.

In my experience, people with strong mathematics, EE, CE or physics backgrounds can become _ok_ programmers in support of their work in that field if they end up learning that skillset later in life. But that's because they've already trained their minds at a younger age to think along those kinds of lines so those neural pathways are already set.

Outside of maybe those few areas (and perhaps very few related ones), I'd say it'll be a struggle. A 20 year old will most likely code faster and more prolific. And if his code stinks, he'll tear it down and rewrite it again, better and from an orthogonal direction, while you are still plugging away getting your first project just setup.

Even experienced developers find that they really have to step aside at some point and teach, or manage. It's just a profession that favors the malleability of the young mind and it _seems_ to have a very high burnout rate past somewhere around 40 -- meaning I see maybe 1% of developers still actively in a development role after that age, they've either entirely left the profession, or moved into a supervisory/mgmt role.

Like anything, it's a language, and the young always learn that kind of thing faster, and internalize it better (grok) than their elders.

That being said, I _have_ seen a fair number of old-timers doing network security, and other kinds of IT "behind the scenes" infrastructure kind of jobs. Their age give them some automatic authority as they blend in with the other greybeards of those professions. One guy I knew went from running a restaurant to doing network mgmt at about 55. He's become reasonable successful in those jobs. But one thing he always laments is the impatience of the faster, younger colleagues that have to deal with him -- he invariably tries to find solo positions in small companies.

<comment><USER3> Whereas in Open Source world I find people active even in their 50s :)

<comment><USER2> This is probably true. Most likely comes from the Unix Greybeards presiding over the whole thing, like the Greek Titans before the dominion of the Gods.

<comment><AUTHOR> I'm not a greybeard. I can probably run faster than you too. I can learn as fast as anyone and can probably freestyle martial arts better than most younger. I can code.

</comment></comment></comment></comment><comment><USER4> Depends. If you actually enjoy computer programming, maybe. If it's just a way to make a living, then you're going to get exhausted having to constantly learn new technologies.

Go to university if you think that's the best route for you. I'd avoid certification factories. But your best route is actually to just start writing programs. Try getting involved with a open source project.

</comment><comment><USER5> Setfocus looks pretty dubious: [http://seeker.dice.com/olc/thread.jspa?threadID=12196&ts...](http://seeker.dice.com/olc/thread.jspa?threadID=12196&tstart=-1)

If you start searching for "setfocus" in Google, the top suggestion for the next word is "scam."

</comment><comment><AUTHOR> I actually code and learn faster now than most people do in the 20s.

</comment><comment> Ye-Ha IT yes, programmer no. Look at .net, PHP, etc.</comment>


How to Be a Leader in Your Field - <AUTHOR> http://polaris.gseis.ucla.edu/pagre/leader.html

<comment><USER2> This is a well written document. Sometimes motivational pieces for business people seem to state the obvious, but this article chooses to focus in the connection between leadership skills and general productivity outside of pure leadership roles, making it inspirational for anyone.

</comment><comment><USER3> Great essay. Thanks for posting.

One thing I feel is important which is not explicitly stated in this essay is to form your opinion / views on existing arguments in your field. This process gives you an immersive experience and helps you get into the details and interconnect different facts.</comment>


Ask HN: Help beta-test cansend.com and I will help promote your website/startup - <AUTHOR>

The web service: http://cansend.com
What does it do? Automatically posts the most popular pages on your website to your subscribers on Facebook, Twitter and even email newsletters.
Requirements? You will need to run a website with more than 100 visits a day and generates more than 1 new page a day. For example, a forum site, photo site, video site, group blog, news site, etc. You will need to sign up on http://cansend.com and connect your Google Analytics account, and activate sharing to any of: Facebook page, Twitter account, Mailchimp list. Once done, drop my a line by clicking 'contact us' on the website.
What will you get? I will link to your site, your Facebook and Twitter pages, and your email newsletter archive from my customers page: http://cansend.com/customers I may also mention and link to your site in my marketing and promotional efforts.
I know it's not much, but I would be really grateful for anybody's help to test-drive cansend.com <comment><USER2> Signed up and tried it out. Some feedback:

1\. a better way of presenting the linked accounts (the small yellow icons are not easily readable). a flat list without the tabs,maybe?

2\. the notifications need to be such that they don't push down content. not really a bad thing but somewhat irritating

3\. shouldn't sharing be on by default when I link my account (twitter) ? couldn't figure out what the yellow power button meant till I clicked and found out.

4\. the follow button above my twitter widget in the link account area shows @SGforums... no idea who that is and why it's there.</comment>


Firefox in 2011 – Firefox plans for 2012 - <AUTHOR> https://hacks.mozilla.org/2012/03/firefox-in-2011-firefox-plans-for-2012/

<comment><USER2> Woohoo. Addons are now synced as part of Firefox sync. I'm so glad they put this in. Yet to see if addon settings will also sync, somehow I doubt it.

<comment><USER3> It depends on how the add-on author sets things up:

[https://wiki.mozilla.org/Services/Sync/Addon_Sync#Are_Add- on...](https://wiki.mozilla.org/Services/Sync/Addon_Sync#Are_Add- on_Settings_Synchronized.3F)

<comment><USER2> Ah good to know. I imagine the most popular addons will implement this. That's good enough for me.

</comment></comment></comment><comment><USER4> At the risk of sounding ungrateful, can we please get a new download manager? I remember getting excited almost a year ago when an update for it was announced, yet I'm still stuck with this infuriating default which makes me want to smash my screen.

Yes, I'm aware add-ons fix that, I don't want an add-on for something that should exist as a part of Firefox.

<comment><USER5> According to the Mozilla wiki[1] the release is on-target for Firefox 14, which means it should hopefully land in Nightly within the next six weeks.

I feel your pain, though. Download Statusbar[2] has been indispensable for my purposes. Will be curious to see if the new download manager will be worth switching back to the default.

[1] [https://wiki.mozilla.org/User:P.A./Panel- based_Download_Mana...](https://wiki.mozilla.org/User:P.A./Panel- based_Download_Manager)

[2] [https://addons.mozilla.org/en-US/firefox/addon/download- stat...](https://addons.mozilla.org/en-US/firefox/addon/download-statusbar/)

</comment></comment><comment><USER6> Since there is no mention of Firefox 'Metro Style' for Windows 8, should one gather that it won't happen during 2012? I realize they just announced that they're starting it, but I assumed it would come sometime around the launch of Windows 8.

<comment><USER7> According to the roadmap[1], a proof of concept will be done in Q2, and an alpha and a beta sometime in the second half of the year.

[1] <https://wiki.mozilla.org/Firefox/Roadmap>

</comment></comment><comment><USER8> Seems there's still no proper Lion support. I wonder what's taking so long. Chrome has had this for months.

</comment><comment><USER9> Well I ran Firefox 3.6 for years and it was stable as a rock. Couple of months ago, Ubuntu pushed the latest Firefox in updates. I am now running 10.0.2 on lucid and it barely lasts for couple of hours before crashing when running Gmail. I have dutifully submitted all crash reports and hope that somewhere on the 2012 roadmap, they also take care of this.

<comment><USER10> My FF was the crashiest lump of pudding ever - seriously it was crashing a few times an hour ... until I started with a new profile and moved across my various .sqlite files (eg places.sqlite, cookies.sqlite, etc.).

Now? Completely crash free AFAIR.

I used [http://kb.mozillazine.org/Transferring_data_to_a_new_profile...](http://kb.mozillazine.org/Transferring_data_to_a_new_profile_- _Firefox) as the basis of what to copy, though there are other such pages like [http://support.mozilla.org/en- US/kb/recovering%20important%2...](http://support.mozilla.org/en- US/kb/recovering%20important%20data%20from%20an%20old%20profile) which might help.

</comment></comment><comment><USER11> Firefox is dead to me, replaced it with Chrome. On a relatively new iMac I get the spinning rainbow all the time, scrolling is jittery, everything takes ages. This is even with just 2-3 tabs open. Scandalous Firefox, you were great a couple years ago.

<comment><USER12> That's odd. I experienced the same issues with Chrome when I tried to migrate to it away from Firefox to see what all the fuss was about. Also Chrome's tab bar display when you have more than 50 tabs open is atrocious. I've since stuck with Firefox and been very pleased with how the browser has been progressing after getting out of their development slump.

In any case, I have no desire to return to my fanboy days of yore and so called browser wars. I am perfectly content that anyone may use whatever browser strikes their fancy, so long as these browsers and web developers alike continue to forge and adhere to standards. Gone are the days when you would use a browser because it literally rendered pages better or different from another browser. Choice now is determined by the User Experience and features offered by the browser, the way it should be.

<comment> why-el Same here. On my Ubuntu, I am consistently switching back to Firefox as Chrome is having some serious issues, particularly dealing with Flash. I kill one or two tabs per session everyday. The only software that drives me more crazy on Linux is Spotify.</comment></comment></comment>


Ask HN: How are you preparing for the upcoming financial crisis? - <AUTHOR> The news expect a 40% correction in the US stock market soon that can make the US dollar close to worthless. Are you prepared? What do you plan on doing with cash, 401k, and other assets? <comment><USER2> Retirement investments? The best option is do nothing.

Second best option the younger you are? Hope there's a big crash sooner than later. All you contributions from that point on, grow faster (from a discounted position) than any contributions made before that point. So the main strategy here, since hope really is not a strategy, is to make sure you're ready to invest as soon as the market does correct, and to invest as much as you can in the short term following that correction.

Anything else is a game that starts approximating gambling. e.g. go to a stronger cash position now with the plan to buy (in tranches) at perceived market lows. Basically sell when you're feeling confident, and buy when you're feeling nervous (following a crash). If you're selling when you're nervous, you're doing it wrong. Buy when others are selling.

</comment><comment><USER3> 3 things bother me with this statement;

1) 40% and soon - no-one knows this.

2) Why put 40% correction and worthless dollar hand in hand? Its possible. But a 40% drop is significantly more likely and separate to US currency collapse. And a US currency collapse could, in the right circumstances, spike US equity prices.

3) US dollar close to worthless in general - I am one of the rare ones that believe default has reasonable odds in the medium term if debt continues unabated, outpacing GDP growth like it has for some time.

I also recognise I'm in the minority, most experts laugh at this and I have a tendency to err on the 'plan for the worst' type thinking.

And if US dollar did become worthless, the world could likely go into depression. Likely worse than 1920's as (to oversimplify) 1) back then something like 60% lived in agricultural setting, or had access to family on farms, often owning farms outright, where you could tighten belt and live very cheaply for a few years. Now we have ~90% in urban environments and less home ownership. 2) Peoples expectations are higher. That may lead to greater political/social extremism in response to extreme financial events.

But in response to your question, I'd do what is standard investment advice, keep savings into diversified ETF's so even if you get the loss you get the bounce. And if possible maintain a cash float of X months that makes you feel comfortable should you lose your employment, which is significantly more likely than a full collapse.

If you really think its 40% and soon, feel free to put your money where your mouth is and short the market.

And if you believe there will be something worse go see reddit.com/r/preppers/

</comment><comment><USER4> > The news expect a 40% correction in the US stock market soon

"The news" is not an entity with expectations. I'm sure there is some commentator in the news who expects that, but I see less evidence that there is broad consensus on or, more important, any strong support for such an expectation.

> that can make the US dollar close to worthless.

A stock market crash doesn't make dollars worthless. It just means corporate equity rapidly became less valuable in terms of dollars.

Now, in the wake of such an event the Fed might pump trillions of dollars into financial markets as a stimulus measure if Congress didn't do adequate fiscal stimulus and conventional monetary stimulus was inadequate at achieving stimulus goals. While that sounds scary, we have recent evidence that that, too, can be done without making the dollars worthless.

</comment><comment><USER5> Stock market crashed more than that in 2000 and 2008. The US dollar didn't become worthless. If your solution is "invest in cryptocurrencies" you're going to lose a lot more than 40%.</comment>


$249 Android tablet from Barnes & Noble - <AUTHOR> http://www.engadget.com/2010/10/26/live-from-barnes-and-nobles-very-special-event/ <comment><USER2> Am I the only one who remembers that the entire point of an e-reader is e-ink? Seems like the reader market is merging into the tablet market.

<comment><USER3> Actually the point of an e-reader is the e-book, not the e-ink. E-ink is just a way to show text in a way that drains little battery and gives little eye strain. It has, however, a couple very significant drawbacks. And it seems more expensive to manufacture than a very good LCD.

<comment><USER4> I disagree, if I wanted to read e-books on an LCD why wouldn't I just use my laptop or computer monitor?

The answer for me is because they aren't enjoyable to read on, too much eye strain. E-ink solves this.

<comment><USER3> A laptop has a clamshell design that does not support the same "operating modes" a book does. A tablet, maybe.

You won't cover all use cases - static text and video/animation - with a single design (PixelQi has a good compromise for the screen)

If my experience serves as a guide, the source of eye strain is the brightness. If you lower the LCD brightness to be more or less the same as what would be reflected from ambient conditions, you will see a marked improvement.

</comment></comment></comment></comment><comment><USER5> Only showing non-working mockups and a "look but don't touch" demo unit at the press event for a device that's supposed to ship on Nov 19th makes me highly suspicious.

For this thing to succeed it needs a killer web browser, and I suspect it doesn't have one.

<comment><USER6> Even the B&W Nooks have a WebKit-based browser that works fairly well (renders Facebook usably), although the UI is a bit clunky. JavaScript is a bit slow, though, so I hope that the hardware is beefier.

<comment><USER3> And it can't log in to HN (not, at least, through the built-in non-OpenID authentication)

</comment></comment></comment><comment><USER7> I presume that it is merely a matter of time before this device is rooted and turned into a basic Android tablet, complete with Flash, Marketplace access, etc.

I suspect, however, that it is too underpowered to support Flash very well.

</comment><comment><USER8> The Archos 101 has comparable price, a 10" display, Android Market and looks very very good indeed.

</comment><comment><USER9> E Ink Holdings (and competitors) have been demoing colour E Ink screens for a while. This doesn't use that but I can't wait to see one that does.

</comment><comment><USER4> It frustrates me when people release devices like this. It's not a good e-reader because it hurts your eyes if you read on it for too long, and it's a half-baked tablet. Whats the point? You can't compete with the iPad with equipment like this, so why not stick to making good quality e-readers?

</comment><comment><USER10> I want to ask: do you guys in U.S. really do have that much WiFi coverage so you don't need a 3G? Here in Europe I can't imagine to buy such a thing without 3G... or do you do WiFi tethering through your phone or carry a WiFi hotspot device with you?

<comment><USER11> Download the 1 or 2 books you need for the day and viola, no connection needed.

<comment><USER10> But I would also like to use it for web/email. If I want tablet only for reading, then I can buy Kindle instead.

</comment></comment></comment><comment><USER12> I'm personally disappointed that it's more of a "Nook with color" than it is an Android tablet.

Wish there was more information about "Nook Developer" as it's hard to tell how much work an Android app needs to run on this.

<comment><USER3> As far as I know, not much.

Rooting the Nook is straightforward (at least the previous version of the original one) and all goes well from there.

AFAIK, B&N doesn't support developers and, last time I checked, appeared to have no plans to do so.

</comment></comment><comment><AUTHOR> Now to see if they leave allow a full Android environment or lock it down.

<comment><USER13> No Android Market (will have it's own store in the future). No Adobe Flash either.

<comment><AUTHOR> Given that Ted Patrick (<http://ted.onflash.org/>) just left Adobe for Barnes & Noble, there is a reasonable chance that it may get Flash at some point.

<comment><USER14> Or else he's going to work on a Nook version of Adobe's software for publishing glossy magazines on the iPad.</comment></comment></comment></comment>


A Year of Developer Journals with jrnl.sh - <AUTHOR> http://rickcarlino.com/2017/11/27/keeping-a-developer-journal-with-jrnl-sh-html.html <comment><USER2> I work in devops support for an under-development software project. At request of the developers, I started keeping up a page in our wiki where, whenever something broke that affected the developers, I just logged what happened, why, and what I'm doing to prevent it happening again. The developers really like this so they feel more in the loop about system issues, but it turns out that I really like it because it's just really useful to have that log.

I don't want to keep the wiki page super busy, so I now keep a text file with basically a much more verbose version of the same thing. What happened, what I tried, what I eventually found was the root cause, how I fixed it, and what I'm changing to prevent a repeat.

This has two big advantages. First, the obvious one is that when things act up I can sometimes find details on a previous incident that I don't remember very well. The second and I think even greater advantage, though, is that it forces me to actually think seriously about the root cause and preventative measures every single time, instead of just fixing the immediate problem and then going on to the next thing in a rush.

<comment><USER3> That's basically what postmortems are! For those unfamiliar with the term, postmortems are a written account of an incident, its impact, the actions taken to resolve resolve it, root causes, and identifying any follow-up actions to prevent the incident from recurring.

I think postmortems should be a valuable learning opportunity for the entire company, and are by no means a punishment. In an organization that fosters "blameless culture," this allows the organization to grow and to identify and fix a weakness.

Google's SRE book [0] also talks a bit about this in the chapter about Postmortems.

[0] [https://landing.google.com/sre/book](https://landing.google.com/sre/book)

</comment></comment><comment><USER4> Utterly tangential, pedantic, and pointless pet peeve: people giving projects a "file extension-ish" name (e.g. jrnl.sh) that _does not correspond to the language in which the program was written_. It's a Python script, not a shell script.

And yes, I know that the ".sh" probably refers to the fact that you use it from the shell, not the implementing language. I said it was pedantic, didn't I?

<comment><USER5> It's not the name, it's a domain name: [http://jrnl.sh](http://jrnl.sh)

<comment><USER6> Isn't the domain name the name though?

<comment> papa-whisky The name is clearly just `jrnl`: [https://github.com/maebert/jrnl](https://github.com/maebert/jrnl)

</comment></comment></comment></comment><comment><USER7> Similar to what is described, I keep a note of all errors I get while developing. I started this practice after realizing how often I search for the same error. Keeping a log of the errors and how I solved it saves me so much of time. I blogged about it here: [https://jjude.com/flask- errors/](https://jjude.com/flask-errors/)

Taking notes also makes me to conduct a thoughtful retro of what I have done.

</comment><comment><USER8> I keep an "engineering logbook". I surely helps me put things into perspective, I can't say that it made me more "productive", but it sure raises awareness on issues and this is enough.

I prefer pen and paper by far, so I ordered a personalised notebook, it is pretty good looking, most wouldn't touch it, but I'm planning on doing a _collection_ of them.

By personalised I mean that it has my name on it and reads "Engineering Logbook #1". I ordered this book from Stamford Notebooks[1]. No affiliation, but they're I'm planning to ask some customisations when I order "#2".

[1] [https://www.stamfordnotebooks.co.uk/](https://www.stamfordnotebooks.co.uk/)

<comment><USER9> Ran out of ink, did we? Leucchterm 1917 notebooks are awesome for logging / bullet notebooks - especially the dot grid ones.

On the digital side, I was inspired to start using Org mode by following Sacha Chua's map approach: [http://sachachua.com/blog/2014/01/tips-learning-org- mode-ema...](http://sachachua.com/blog/2014/01/tips-learning-org-mode-emacs/)

<comment><USER8> I used quite a few digital Journals. I still keep a personal, private one, encrypted with GPG using vim and some basic automation via shell. I rarely write there.

I like writing and have _a lot_ to write about but I prefer physical journals by far... My handwriting is ugly too but I won't give up!

<comment><USER10> Have you tried the palmer method[0] in regards to handwriting?

[0][http://palmermethod.com/](http://palmermethod.com/)

<comment><USER8> Nope. Thanks for sharing, I'll definitely look at it, as I'm looking for ways to improve both my handwriting and note-taking.

</comment></comment></comment></comment></comment><comment><USER11> The tool is perhaps less important than the practice. I keep a journal with entries for every time I am blocked by an issue I cannot solve in my head. The process of writing it down, doing a pro/con list, working out the solution in writing, etc, helps unblock it.

It's not so much about posterity as it is about unblocking issues and moving forward in the most sensible way.

</comment><comment><USER12> Of course there's a million things to do this; I wanted something very opinionated that simply turned a flat RST file that I keep every day (for consumption by me) into some lightly styled HTML (for consumption by others) so wrote rstdiary. I also keep a rough TODO list in there (it's either todo, or it's done and goes into a daily entry).

[https://github.com/ianw/rstdiary](https://github.com/ianw/rstdiary)

[https://rawgit.com/ianw/rstdiary/master/sample/index.html](https://rawgit.com/ianw/rstdiary/master/sample/index.html)

Been working for me for about 4 years. Once you get a bit of a corpus, it feels silly _not_ filling in some points for the day to keep the thing rolling.

</comment><comment><USER13> This looks pretty cool. Installing it now.

More generally, I've been using Quiver for about a year. Highly recommended. [http://happenapps.com/](http://happenapps.com/)

</comment><comment><USER14> FYI: A while a ago I published a plain text (standard) format for journals called journal.txt. See [https://journaltxt.github.io](https://journaltxt.github.io) Happy writing in your journals.

</comment><comment><USER15> I keep a journal using text files and Vim, but it is a combination of notes and journal. Instead of chronological order, I use text files based on the subject/topic. For example, I have a text file (journal) just for "Javascript" and another for "React". In fact, I even have notes on "journaling system", so I'm updating it as of now, writing an entry about "jrnl.sh". ON each text file, I'd write down what I learned, as well as snippets and URL of websites I have encountered. I don't use "tags" that often, because sometimes I'd forget the tags, or often it is hard to maintain them. I always have a Vim of notes/journals open, and I use ctrl-p and grep to add/read/search entries quickly. I think I might have about 400 (EDIT: over 1000) text files. Everything is saved to a git repo. Certain notes are published automatically as blog posts Hugo (by adding front matter, etc).

I also keep a personal journal in a traditional chronological order, which is a single "journal2017.txt" file. I also recommend using private git repo, not public, since it may contain some of your personal information, and private thoughts.

For the non-technical person (i.e. not into Vim or Emacs), I'd recommend Notational Velocity (nvAlt specifically) on Mac. I'd be using it, only if it had vim keybinding. It syncs online to SimpleNote, and it makes journaling really easy.

<comment><USER16> Yes. I have been doing a simplified variant of this for over 20 years now. (The git integration is newer than that :)

It's easy, functional enough and works quite well.

</comment></comment><comment><USER17> I track what I worked on in a text file, and more importantly, what _decisions_ related to my business I made on this day. If something comes up that requires a bit of thought, I simply "discuss" it in free text form.

It works mostly as a brain dump. I rarely read older entries. But it's good to know that I could look things up later.

</comment><comment><USER18> I began using a Github wiki this way. I like writing in markdown, and scaffolded some basic navigation between days, weeks, projects and meeting minutes. It's been super helpful. I upgraded from billet journaling after finding that a paper journal was not a good enough reference later.

<comment><USER19> care to share more about this setup? this sounds easy and like something I may actually get myself to "commit" to doing regularly. heh

<comment><USER20> This would definitely help keep the contributions graph green!

</comment></comment></comment><comment><USER21> I love this! I use the Terminal and VIM every day and really enjoy tools that fit within that workflow. I didn't even know about this project when I started building a similar tool (with the same name!).

<comment><USER22> I have a relative path set up for my jrnl: "this": "./notes.txt"

which I've aliased: note=jrnl this

if I'm doing something that I get pulled away from it's a quick "note was working on the flux capacitor in somefile" .gitignore the notes file as desired

<comment><USER23> Can you share more about how you set up relative paths? Is that a bash alias?

<comment><USER22> Sorry I completely missed that bit! The relative path part is set up in your jrnl config usually ~/.jrnl_config

</comment></comment></comment></comment><comment><USER24> I wanted to journal more but struggled to remember to do so. A simple hack for me was to take a page from Pomodoro an install a countdown timer (I happen to use [https://itunes.apple.com/us/app/activity- timer/id808647808?m...](https://itunes.apple.com/us/app/activity- timer/id808647808?mt=12)). Every 30 minutes I'm reminded to capture what I've been doing recently. Slowly I've been getting better at updating ahead of the reminder.

</comment><comment><USER25> Very cool.

I've been keeping a plaintext worklog at the day job to help with time- tracking. Logging time in our system as I go is slow and painful, so I just write it down daily and enter it all at end of week (month :|).

I have a file for each month (e.g. `2017-12-timelog`), it stays open all day, and I just prepend entries like:

      Dec 1 Fri
      9 - 10: emails/updates
      - 11:30: BB-X10 make the list update async
      - 3:30: hacker news
      - 5: BB-X10 unit tests

I'm going to try jrnl for this use case -- feels like it'll be even simpler.

</comment><comment><USER26> I've been developing something similar, but as a Telegram bot:

[https://telegram.me/daytobasebot](https://telegram.me/daytobasebot)

[https://github.com/martinthenext/daytobase](https://github.com/martinthenext/daytobase)

I found it easier to use telegram because it is available on mobile as well as desktop, so I end up writing more things down.

Pretty great to discover jrnl.sh, validates my idea that this approach to logging things can have wider adoption.

</comment><comment><USER27> I got started keeping a dev journal by logging bugs I fixed. I would document the problem, recreate steps (if QA supplied none), what I thought was the problem, what was the actual problem and finally how I fixed it. I also kept a note of where in the source the bug was found. Sure, there are automated was to do this, but we didn't use those at the time and, well, it led to a good habit, so I'm happy.

Sadly, as much as I hoped it would, it hasn't translated into a good habit of writing a personal journal.

</comment><comment><USER28> I've been using Noguchi system fairly regularly, for general purpose notes and I imagine it could be very effective in developer journals too. I like the way Its described here, though I use plain text instead of MMD : [http://www.literatureandlatte.com/forum/viewtopic.php?p=1592...](http://www.literatureandlatte.com/forum/viewtopic.php?p=15926#p15926)

And this is the key

> What I have found liberating is the concept of only have four tags

</comment><comment><USER29> I noticed a colleague wrote down a basic work log every day, just a high level approach to what he did during the day. I'm interested to try it myself, have done so for a couple of days. I've used Day One, a (iirc paid) mac app, very simple to use for quick blurbs. It also has a CLI, bit awkward to use maybe (`dayone2 new "text here`).

<comment><USER20> Two weeks ago: Keeping a Lab Notebook | [https://news.ycombinator.com/item?id=15704354](https://news.ycombinator.com/item?id=15704354)

Yesterday: Joplin – A note-taking and to-do app with builds for desktop, mobile, terminal | [https://news.ycombinator.com/item?id=15815040](https://news.ycombinator.com/item?id=15815040)

Both have recommendations for the process and tools.

</comment></comment><comment><USER30> This is a great practice and I encourage all devs to try it. I just learned of the jrnl tool but I use a very similar command line / text / file approach. I have a few shell scripts for starting a new entry which I keep in a new file within the directory. I also commit it all to a git repo.

<comment><USER31> Are you happy with it? What are your pain points?

</comment></comment><comment><USER32> I do this too! Not everyday, because some days are meetings or the problems I am up against are not challenging. So I guess I only do it for challenges or things I want to remember.

Anyways, highly recommend this, it is my rubber duck debugging method of choice!

</comment><comment><USER33> The comments and original post are great. I keep a directory called Core that has project notes, code snippets and a journal. I recently started using VS Code and a few extensions have really pulled my "system" together.

</comment><comment><USER34> Is it capable to do basic formatting, like making lists, quotes etc? I see there's a possibility to export into Markdown, but does it parse those formatting elements or should I write them in MD already?

</comment><comment><USER35> Thanks for posting my article! I hope it is of use to the HN community.

<comment><USER36> The parts about no complicated file formats, ease of backup, keyboard only, fast, easy to use, text only, etc. strike close to home for me because this is what I also desired, to the point that I've written my own program to keep various notes. It also had to be portable (Windows and Linux) because at the time I had another weaker laptop that had to run Fedora and I wanted to use it there too. I just couldn't find such a program, everything was bad, not portable or 'rich' (aka images, styles, etc. aka needs mouse or has a complex file format).

</comment></comment><comment><USER37> How can I set the "default_hour" to present time in jrnl.sh when I don't mention tomorrow, yesterday etc.? Looks cumbersome to write the present time everytime.

</comment><comment><USER38> I find that mind maps capture context and information better than linear logs. Any one else use mind maps on a daily basis?

<comment><USER39> In my case I just want to just capture information. Not think of context/categorization/connections. Global search then makes anything from the past instantly accessible, and I don't need to remember "how or where" I saved it.

</comment></comment><comment><USER40> jrnl is cool! I had a good time half-cloning it in node for practice/fun a while back [https://github.com/Robert-Wett/journal](https://github.com/Robert- Wett/journal)

</comment><comment><USER41> This looks great. - Is there a way to prevent traces / entries in bash history?

<comment><USER42> Put a space before running the command.

<comment><USER3> For bash users, that assumes that the HISTCONTROL [0] environment variable is set to ignorespace (or ignoreboth).

[0] [https://www.gnu.org/software/bash/manual/html_node/Bash- Vari...](https://www.gnu.org/software/bash/manual/html_node/Bash- Variables.html)

</comment></comment></comment><comment><USER43> Does anyone know of a tool like jrnl.sh that integrates with GPG for encryption?

<comment><USER29> Would it be hard to wrap it in a script that does that for you? I'm not familiar with GPG but I can imagine a smart hacker made it so that you could basically pipe it through.

<comment><USER43> True, not particularly difficult. At the moment though I just keep GPG encrypted text files if I handle encryption independently of jrnl then I lose a lot of the value of it like being able to search by tag.

There was some discussion of including it here [https://github.com/maebert/jrnl/issues/262](https://github.com/maebert/jrnl/issues/262) but it looks like they might have decided against it.

</comment></comment></comment><comment><USER44> I wonder what's the difference between using this or org-mode...

<comment><USER22> One is the one you know and enjoy using, the other is not your preferred method.

The world was beyond the emacs era and into the GUI editor when I started developing so it's a hump I've not been willing to climb, jrnl works well for me

<comment><USER45> > The world was beyond the emacs era and into the GUI editor

Emacs _is_ a GUI editor (e.g. [https://upload.wikimedia.org/wikipedia/commons/5/5a/Emacs- sc...](https://upload.wikimedia.org/wikipedia/commons/5/5a/Emacs- screenshot.png)), and the world _still_ hasn't progressed beyond it. I'd love to be using something better than emacs, because it really is old & crufty, but literally no other environment is as powerful, as extensible and as pleasant to use.

<comment><USER46> > pleasant to use.

That is a matter of opinion, which is what the OP before you was trying to point out. I know emacs, and use it as well when I'm in a shell environment, but I prefer to use Atom in a desktop environment where I may be copying and pasting from other apps. Pleasant is an opinion, which negates right and wrong.

<comment><USER47> > where I may be copying and pasting from other apps

Is Atom better with copying and pasting certain kinds of content than Emacs?

<comment><USER23> It depends on your Atom config and your Emacs config, I imagine.

When I paste things into Atom or Jetbrains' Webstorm, my javascript usually gets auto-indented to The Right Place. Atom even did that when I _reordered_ lines, which was especially neat as I hadn't had Webstorm do it. This isn't something that my Emacs will do. I'd be _very_ surprised if there weren't some module, script, or Emacs configuration that I could use (or write) to get this same behavior. After all, Emacs' "Tab to The Right Indentation" was something that blew my mind years ago.

(Disclaimer: I have used Atom, but prefer Webstorm. I use Emacs, but only for Git things and the occasional quick edit.)

<comment><USER48> Not that you should have to know this, but for completeness' sake:

Out of the box in Emacs (with no config or extensions) you can simply select the pasted region and hit Tab to reindent the whole area correctly (what you called 'Tab to the Right Indentation').

So in total:

* C-SPC (Mark)

* C-y (yank/paste)

* C-x C-x (select to mark, essentially)

* Tab (indent)

([https://xkcd.com/378/](https://xkcd.com/378/))

Does what you'd like. This is all compositional, no magic here (and of course you can bind this all to one key press). Naturally lots of people make this auto-indent by default.

For me the most essential thing to know about those auto-indent modes is how to temporarily turn them off (like `:set paste` in Vim), since I so often need to bypass that behaviour for one reason or another (e.g. when resolving Git merges - trying to keep the original formatting).

</comment></comment></comment></comment></comment></comment></comment><comment><USER49> No Android support. Wish there was.

</comment><comment><USER50> Very nice!</comment>


The Information Catastrophe - <AUTHOR> https://aip.scitation.org/doi/10.1063/5.0019941 <comment><AUTHOR> >Predicted "information catastrophe" may be caused by fifth state of matter

[https://www.inverse.com/innovation/information-could-be-a- fi...](https://www.inverse.com/innovation/information-could-be-a-fifth-state- of-matter)

>The mass-energy-information equivalence principle

[https://aip.scitation.org/doi/full/10.1063/1.5123794](https://aip.scitation.org/doi/full/10.1063/1.5123794)

</comment><comment><USER2> Isn't it more realistic to assume a S-curve for information growth?</comment>


How did anyone do math in Roman numerals? (2017) - <AUTHOR> https://www.washingtoncitypaper.com/columns/straight-dope/article/20854121/how-did-anyone-do-math-in-roman-numerals <comment><USER2> In _An Introduction to Mathematics_ (1911) Alfred North Whitehead wrote:

By relieving the brain of all unnecessary work, a good notation sets it free to concentrate on more advanced problems, and, in effect, increases the mental power of the race. Before the introduction of the Arabic notation, multiplication was difficult, and the division even of integers called into play the highest mathematical faculties. Probably nothing in the modern world would have more astonished a Greek mathematician than to learn that ... a large proportion of the population of Western Europe could perform the operation of division for the largest numbers. This fact would have seemed to him a sheer impossibility ... Our modern power of easy reckoning with decimal fractions is the almost miraculous result of the gradual discovery of a perfect notation. [...] By the aid of symbolism, we can make transitions in reasoning almost mechanically, by the eye, which otherwise would call into play the higher faculties of the brain. [...] It is a profoundly erroneous truism, repeated by all copy-books and by eminent people when they are making speeches, that we should cultivate the habit of thinking of what we are doing. The precise opposite is the case. Civilisation advances by extending the number of important operations which we can perform without thinking about them. Operations of thought are like cavalry charges in a battle—they are strictly limited in number, they require fresh horses, and must only be made at decisive moments.

John Allen Paulos discusses the power of notation in his book _Beyond Numeracy_ :

A German merchant of the fifteenth century asked an eminent professor where he should send his son for a good business education. The professor responded that German universities would be sufficient to teach the boy addition and subtraction but he would have to go to Italy to learn multiplication and division. Before you smile indulgently, try multiplying or even just adding the Roman numerals CCLXIV, MDCCCIX, DCL, ANDMLXXXI without first translating them.

Numbers may be eternal and invariant, but numerals, the symbols used to represent numbers, are not, and the above anecdote illustrates how easy it is to take for granted the Hindu-Arabic numerals we use today. The history of numeration systems is a long one extending from prehistoric times to the adoption in the Renaissance of our present system. The heroes of the story are the nameless scribes, accountants, priests, and astronomers who discovered the principles of representing numbers systematically.

<comment><USER3> Adding Roman numerals, at least, isn't hard. If it was I doubt Roman numerals would have ever lasted. Arabic is still, in my opinion, easier to add—from the perspective of a lifetime spent exclusively doing arithmetic in Arabic numerals—but it's not much easier until you've memorized all 50 unique sums of one-digit numbers. Multiplication, though, that's the real difference maker.

<comment><USER4> Please explain the easy method for adding, for example MCMLXVII and LXV. I mean that seriously, I'm curious what the trick is.

<comment><USER5>
      MCMLXVII + LXV
       = MCCCCCCCCCLXVII + LXV (canonicalize)
       = MCCCCCCCCCLXVIILXV    (concatenate)
       = MCCCCCCCCCLLXXVVII    (sort)
       = MCCCCCCCCCLLXXXII     (combine, VV => X)
       = MCCCCCCCCCCXXXII      (... keep combining, LL => C)
       = MMXXXII               (... C{10} => M, nothing left to combine)
       = MMXXXII               (optionally, look for ways to re-write with the subtraction rule)

<comment><USER3> I originally thought canonicalize was an important step, but it actually isn't for humans. For humans, CCCCCCCCC requires a lot more tedious counting than CM or even DCCCC, leading to more errors than simply allowing the human to notice that CM+C=M.

</comment></comment></comment></comment></comment><comment><USER6> I feel like the article misses the most interesting question about Roman numerals and Roman (Greek really) math. How did the numerical system influence the math that they developed and used?

The Greeks were really into geometry using the compass and straight edge so they actually did a lot of math without really needing numbers at all. They viewed calculation as less worthy of mathematicians and my understanding is that we don't have a lot of evidence for how merchants and engineers did basic calculations since most of the great Greek math texts ignored it.

Algorithms and algebra probably existed in some informal way but they weren't really formalized until the Arabs did it with the help of Arabic numerals.

So, while you can do some calculations in roman numerals or using an abacus, the interesting question to me is: Did the Greeks (and the Romans) not develop algebra or use Arabic numerals because they weren't that into numbers as compared to geometry? Or was it the other way around? Did the clumsiness of doing calculations in Roman numerals keep them from developing more complex systems of numerical calculation?

I'm not an expert on the subject at all but it's always interested me. It makes me think of Bret Victor's Media for Thinking the Unthinkable ([http://worrydream.com/MediaForThinkingTheUnthinkable/](http://worrydream.com/MediaForThinkingTheUnthinkable/))

<comment><USER7> _" Did the clumsiness of doing calculations in Roman numerals keep them from developing more complex systems of numerical calculation?"_

Probably? I mean, look what the world achieved after it left roman numerals behind.

<comment><USER8> _Probably? I mean, look what the world achieved after it left roman numerals behind._

Yet the Romans were able to construct aqueducts that are still standing, and a road network spanning thousands of miles, and many other great feats of civil engineering.

<comment><USER9> Sure. But they did those things by experience and rules of thumb. They didn't do a real stress analysis on those aqueducts, for instance.

<comment><USER10> For those interested in reading further, the ideal (unloaded) shape of an arch isn't a semicircle, but a catenary.

It sounds so simple: so hangs the chain, stands the arch. Took until Hooke in the 17th century before that was written down, though there are earlier (15th century) examples in architecture.

The Romans were still working on the Greek ideology that the circle was the perfect shape. Not to belittle what they did, but the key advances were really in concrete and having an authoritarian empire giving unprecedented resources to public works.

<comment><USER11> "Ut pendet continuum flexile, sic stabit contiguum rigidum inversum -- As hangs a flexible cable, so inverted stand the touching pieces of an arch." (although they figured out at some point that this curve was close to being a parabola)

</comment></comment></comment></comment></comment></comment><comment><USER12> In general, with an abacus. Roman numerals for generally used for recording information, not for calculating with them. The article emphasizes how easy it is to add and subtract with Roman numeral notation, but everything else I've read emphasizes the Abacus even for that. After all, most people today calculate with calculators as well, and we have a snazzy Hindu-Arabic system for numbers.

<comment><USER13> It's actually somewhat surprising to me that the Romans didn't invent the concept of zero, when they used the abacus for daily calculations. With the benefit of 20:20 hindsight you'd think that the concept of zero would follow quite naturally from the concept of an empty column on the abacus.

<comment><USER14> But that's the thing about Roman numerals: you don't need a placeholder number to represent empty columns. And for "what is XVI subtracted from XVI" they could just use a word meaning "nothing", such as _nihil_ or _nihilum_. The need for the concept of zero as we understand it really only arises together with a place-value system.

<comment><USER15> Thanks for explaining that clearly. I've always been so baffled by people who claim that some society didn't have a concept for zero, as if "inventing" zero marks some major advance in intelligence.

Every culture has a concept of "nothing" which works for zero. The ancient Greeks debated over whether nothing was a _number_ or not, but that's just a semantic splitting of hairs.

At some point a _symbol_ for nothing becomes useful so you invent a number- like notation for it. But that's just a matter of convenience. It's not some great conceptual leap.

<comment><USER16> I think that for the majority of people throughout history, numbers were inseparable from numerals, i.e. notation for numbers. This would explain why people are far more comfortable with the notion of real numbers (which despite their name are very very strange in a lot of ways) than imaginary and complex numbers. Even their names betray the difference. However, one has a common notation that everyone has learned whereas the other has a more confusing and less well-known notation.

Therefore I think ancient arguments over whether 0 is a number (and acceptance thereof) are representative of a greater paradigmatic shift, similar in essence to the arguments over whether the square root of -1 is truly a "number."

Viewed that way 0 is the first step in a journey of an understanding of numbers from purely counting discrete entities, to abstract parts of computation.

So basically I would posit that it is in fact a great conceptual leap (just as the negative numbers are) that only seems like an obvious fluke of notation when every schoolchild has learned it.

<comment><USER15> I would clarify that to say numbers were inseparable from _words_ for them. Writing has only existed a short time of our history, so numerals are pretty recent.

And the "meaning" of zero as a number like others along a number line, rather than as mere notation for "nothing", I assume only ever became necessary with the invention of negative numbers.

With addition, multiplication and division, zero simply does nothing or annihilates a number, and so doesn't need to be treated like other numbers. AFAIK, zero as a number arises first in figuring out how to "get to" negative numbers, e.g. what is two minus four (one, zero, negative one, negative two), where zero is required as a _numeric_ concept.

Negative numbers were a big step forwards. Zero, I still don't see it -- either it was just convenient notation for "nothing", or part and parcel of the shift to negative numbers. Unless I'm missing something in the historical record?

<comment><USER17> From my understanding (and I well could be wrong here), Europeans inherited from Greek a mathematics system that favored geometry and tended to abhor algebra. Concepts like integers, rationals, and irrational numbers are all pretty easy to explore and explain with geometry. By contrast, zero, negative numbers, and imaginary numbers create absurdities in geometry (how can a line have length 0? -2? 3 + 4i?). Moreover, even as algebra is introduced to Europeans via the Arabs, I can see people resisting algebra in part because it introduces these absurdities and paradoxes that need explanation.

As far as I can tell from the historical record (and it doesn't help that modern histories tends to describe historical mathematical discoveries in modern terms, meaning it's difficult to work out as a lay person in what terms the historical discoverer understood their own work), it looks like the acceptance of zero, negative numbers, and complex numbers are more or less concurrent, and this also seems to coincide with the shift in mathematics from being predominantly geometric to algebraic.

</comment></comment></comment></comment></comment></comment></comment><comment><USER18> Not really related to the article per se but I always find it interesting how one may become tempted to say "this alternative to a thing I already know _makes so much sense_ , why don't we always use it?"

I felt the same way when encountering Chinese numbers via Japanese. If 二 is two, 十 is ten, 四 is four, and twenty-four is 二十四, that's so clear! Two tens and four!

I quickly decided that this number system, though something I'd obviously need to learn and become acquainted with if my Japanese learning were ever to progress, wasn't necessarily as easy as I initially imagined. Yes, there are no places, but numbers in this system are grouped at different boundaries — not every thousand but every ten-thousand.

So 六十七億八千三百一万五千四百二十一 breaks up as sixty-seven hundred-thousands eight- thousand-three-hundred-and-one ten-thousands five-thousand-four-hundred and two-tens-and-one — and obviously, that's not quite how we would represent six-(billion/thousand-million) seven-hundred-and-eighty-three-million fifteen- thousand-four-hundred-and-twenty-one, or rather 6,783,015,421.

I post this not to discuss the positives or negatives on the Chinese number system compared to the Arabic one or vice-versa. Rather, just how one's imagination can be so easily captured by the apparent simplicity of an alternative to that with which one is familiar, almost to the point of wanting to adopt it altogether. The realisation of where things get tricky for oneself, often not coming until quite a bit later, sometimes doesn't come until later.

For myself, I tried using roman numerals for my own math for a long time but stopped when I found division too brain-breaking!

<comment><USER19> Living in Japan, I became accustomed to using numbers for up to around 10,000 yen ($100USD) due to interactions at the stores and around town, but when I would hear the price of a car (1,000,000+ yen or 100 myriad yen) or a house, it would just confuse me and not register at all. It's all just based on your personal experience, I think.

<comment><USER20> I have the same experience with German reversed way of speaking numerals, yet I speak the language fluently, including a good understanding of Swiss German as well.

But reversing back the numbers into my Portuguese brain, just doesn't work after a certain size.

<comment><USER21> There is (for me at least) something very deep (in the brain) regarding numerals and basic math. I am quite proficient in English, but always do arithmetic in my native Bulgarian and then have to translate the result (unlike other speech, which flows freely). And not for the lack of trying. And that is even though Bulgarian numerals do translate 1:1 to English.

<comment><USER22> I read a fascinating article once I've never been able to find again that said the brain actually has internal biological representations of zero and one along with a rudimentary representation of two, but nothing above that.

</comment></comment></comment></comment></comment><comment><USER23> Is it blogspam when it's called syndication?

Here's the "original" source of the column, which is on a less... _determinedly fashionable_ website, so it might be friendlier to mobile users and people who dislike fixed headers:

[https://www.straightdope.com/columns/read/3330/how-did- anyon...](https://www.straightdope.com/columns/read/3330/how-did-anyone-do- math-in-roman-numerals/)

Also, previously:

[https://news.ycombinator.com/item?id=14818633](https://news.ycombinator.com/item?id=14818633)

<comment><USER24> Fixed headers are better than fixed autoplay ad videos.

</comment></comment><comment><USER25> When I got my math teaching credential, there were bunches of interesting historical things we learned along the way including Egyptian Fractions [https://en.wikipedia.org/wiki/Egyptian_fraction](https://en.wikipedia.org/wiki/Egyptian_fraction)

Never actually used any of it so most of it has evaporated from my memory along with calculating square roots by hand, but it's nice to know at least enough to be able to look up the information if I want it.

<comment><USER26> Egyptian fractions have an interesting property that may have been useful back then.

Consider the problem "How do you divide five things for eight people?"

Simple - cut everything into 1/8 and give each person five.

But Egyptian fractions give an even easier way. 5/8ths is 1/2 + 1/8\. Divide four wholes into halves - give each person a one half. Take the unit and divide it into eights and give each person one. The answer to this problem is the way you write the number itself. This makes division of the items easier and simpler.

<comment><USER27> That's how I cut up bell peppers into the right sizes. They're either 4 loved or 3, so cutting them into 3 or 4 equal sized piles is a challenge

</comment></comment></comment><comment><USER28> It is well-known that the place-value system introduced into Europe from India via the Arabs played an invaluable role in modern arithmetic.

But, if you read the "Sand Reckoner" by Archimedes, what he lays out are the rudiments of a place-value system. He essentially describes the modern notation, but not rules for addition, subtraction, multiplication and division using this notation.

Another tidbit: if you see the recent movie about Shannon "The Bit Keeper", he shows the journalist a mechanical device (he designed?) which can do calculations using Roman numerals.

<comment><USER29> I'd never heard of this documentary, so I took a look. I assume you meant "The Bit Player"? ( [https://www.imdb.com/title/tt5015534/](https://www.imdb.com/title/tt5015534/) ). It looks interesting, and it's on Amazon prime video so I'll give it a watch. Thanks!

<comment><USER28> Sorry, you are right.

</comment></comment></comment><comment><USER30> Romans essentially used the same binary arithmetic computers use today for multiplication; doubling and halving.

[http://www.phy6.org/outreach/edu/roman.htm](http://www.phy6.org/outreach/edu/roman.htm)

<comment><USER31> Yeah, this was discussed previously: [https://news.ycombinator.com/item?id=13636277](https://news.ycombinator.com/item?id=13636277)

And division basically works the same.

Discussed article is [https://thonyc.wordpress.com/2017/02/10/the-widespread- and-p...](https://thonyc.wordpress.com/2017/02/10/the-widespread-and- persistent-myth-that-it-is-easier-to-multiply-and-divide-with-hindu-arabic- numerals-than-with-roman-ones/)

Nowhere as complex as it's made out to be.

</comment></comment><comment> dan-robertson I am very wary of just about anything published on the history of science or mathematics. Much of it tends to be very low quality full of just-so stories, or at best whiggishness. Unfortunately much of the work by academics on the subject is not much better as the field is full of former mathematicians or scientists with an interest in history rather than lots of historians with an interest in mathematics or science.

</comment><comment><USER32> Or feet and inches. I've been watching videos online of people making things with the added challenge of using imperial measurements. 7 29/32 less a margin of 5 3/8 plus a 1/16 offset... Is metric too easy for Americans?

</comment><comment><USER33> Why would it be significantly harder than using some other system of numerals?

<comment><USER34> They probably had algorithms for it, but even then it sounds challenging.

Addition sounds easy and works mostly like how we do base 10 addition. I imagine they would first go for sub 5 part which is a bit exceptional and had to be manually. And then start grouping letters together like we do and create carries if they reach the next letter.

Subtraction sounds harder. It sounds close enough to our base 10 system but borrowing from next digit is much more complicated. Like subtracting D-I (500-1). The answer is CDXCIX but I am not sure how I can go there. And now imagine this with more complex numbers

But multiplication and division? in that weird base format? I won't even try

Keep in the mind that they don't convert or even think numbers in base 10 system like we do.

<comment><USER33> How numbers are written down does not necessarily correspond to how you do calculations. Given that 499 was called 499 I'm pretty sure they thought in base 10, so subtracting 1 from 500 would be trivial. Writing it down took a few more symbols but so what?

<comment><USER34> Hmm, I was assuming they didn't have a concept of base 10. If they do have it I wonder how they couldn't make the connection and write stuff in base 10 as well instead of a mixed base with weird rules

Then I guess the real challenge is converting numbers around?

</comment></comment></comment></comment><comment><USER35> Roman numerals are very economical.

The base with best radix economy (except for e) is 3. But roman numerals are better still.

For representing 0-999, you would need 19 base-3 digits, but only 15 roman numerals (plus a symbol for zero).

<comment><USER36> ...in terms of digits, which is a very odd quality to optimize for.

<comment><USER24> ...in terms of only the worst case numeral.

Common numerals like II III VII VIII have worse length, while I IV VI are same, and V X IX are better.

And factoring in per-digit cost, Roman numerals up to 999 have 5 distinct digits, 46% more cost per digit than base 3, making it worse than base 3 in almost every case, information theoretically. (You could win some back with a huffman encoding, though)

<comment><USER35> Suppose there was a basketball game between Athens and Rome (go Athens!) and you have a 3 digit scoreboard.

You would need 19 base 3 digits and only 15 roman numerals (plus N for zero) in order to represent every number.

In base three, you sometimes have all three digits equal. With roman numerals, you can reuse the same digit in different positions.

<comment><USER37> I don't understand this. 999 is less than 3^7, so you can represent any number up to 999 with just seven base-3 digits. Where does the 19 come from?

<comment><USER10> I play village cricket, and the scoreboard has cards with numbers on, then hooks to hang them up depending on the score.

The problem is: Given the full range of possible (or at least plausible) scores, how many of the cards do we need for a full set?

So let's simplify it to just a run tally. You could be 111, so you'd need at least 3 of the 1 cards etc. Allow for scoring up to 999 (unlikely) and that's 29 cards to keep somewhere (only 2 zeros needed)

In base 3, you need 7 digits, but only 3 cards per, so we are doing better with 19 cards needed (21=3*7, but don't need all zeros, and that gets you to 1093 so for 999 you could save another)

In roman numerals, You'd need an M, a D, 3 Cs, 3 Ls, 3 Xs, 1 V and 3 Is. Total is 15 cards.

Can we do better? Good question.

<comment><USER10> The answer is: It reduces to a question of permutations. 7! > 999, so we could do it with different arrangements of just 7 cards.

Can we do better? Good question...

<comment><USER10> Now if we arranged them on a 2d grid, could use 4 cards, then the different shapes (even discounting the similar looking shapes) would get you to >1000\. You'd have to allow more than just the standard tetrominoes.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER38> Contrast Roman numerals with the rod calculus[0] invented in Ancient China. Wikipedia has a list of algorithms for calculating with rods, from the usual arithmetic operations to fractions, division, square and cube roots, Gaussian elimination, and solving polynomials.

It would seem that such tasks would be extremely difficult for someone working with the Roman numerals.

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

</comment><comment><USER39> I'd previously read that Fibonacci had helped popularize the hindu-arabic notation in Europe. Wikipedia says "In 1202, he completed the Liber Abaci (Book of Abacus or The Book of Calculation)," which included lessons and examples.

Interestingly, he grew up with a merchant father based in Northern Africa and had internalized it.

</comment><comment><USER40> Add and subtract on a good abacus (like a Japanese soroban) is quite fast. Multiply and divide are miserable, but in ordinary trade, it's mostly add and subtract with the occasional multiply.

With a soroban, a slide rule, and a book of tables, you can do most classical engineering math. Slowly.

</comment><comment><USER41> A millenia later, humans will look back and wonder the same about how we did math on decimal system, while binary is far superior. I expect they will even genetically remove one finger from each hand so they can do binary math better with their fingers

</comment><comment><USER42> > The IIII-for-4 notation survives today on the faces of clocks.

What? On which clocks?

<comment><USER43> When I search for "clock with Roman numerals" on Google images I see about 50% use IIII.

</comment></comment><comment><USER44> Most merchants at Roman times used Greek nimeral, it has much easier algebra comparable to arabic.

</comment><comment><USER45> I have read that the uptake of Arabic numerals was actually fairly slow and fraught in Europe, but of course can't put my hands on any references.

There's a reddit thread [0] that might be some of what I saw, and my wife does paleography work where she runs across books of accounts that are rendered in Roman numerals, because that's how formal accounts were prepared, even if the actual accounting was done by other means.

That same reddit thread has link to an "algorists vs abacists " article [1] which purports to back this up, but I can't confirm because the article is paywalled for me.

Edit: Moved/fixed links.

[0] [https://www.reddit.com/r/AskHistorians/comments/12m0vp/how_a...](https://www.reddit.com/r/AskHistorians/comments/12m0vp/how_and_when_did_the_arabic_numbers_took_over_the/)

[1] [https://www.jstor.org/stable/pdf/2686479.pdf?seq=1](https://www.jstor.org/stable/pdf/2686479.pdf?seq=1)</comment>


DxO acquires Nik Collection assets from Google - <AUTHOR> https://nikcollection.dxo.com/ <comment><USER2> This is fantastic!

The Nik Collection can do some amazing things (and is worth spending some time with if you haven't already). Their contrast and polarizer tools are particularly good, as well as their B/W workflow.

From what I was told by a former Googler, they acquired Nik for the team, but didn't really have a use for the tools they created - they were mostly interested in the skills for Google Photos. At least Google found a way to pass the software on to another owner that will likely keep developing these tools, although it took a couple of years for that to happen.

PS - RAW editing tools seem to all have their own strengths and weaknesses. In my experience, Lightroom is the easiest to use (and gives good results overall), but Capture One (by Phase One) has much better color management. Skin tones just look 'right' with the default flow, and it's free (lite version) / discounted for Sony cameras. Canon's Digital Photo Professional is free (for supported cameras) and rather clunky, but it can produce very sharp results with some 'soft' lenses, like the 16-36mm f/2.8 II.

If you have a photo you really like and have some time to get the most out of it, you could produce a TIFF via Digital Photo Professional (assuming you have a Canon), then process with Lightroom/Capture One for basic settings, and finally adjust to your liking with Nik Collection.

</comment><comment><USER3> As a tech M&A guy, I'm actually surprised Google doesn't sell off more of it's corporate assets that it no longer wants to pursue. I suspect as revenues/profits start to normalize (i.e. don't grow at exponential rates), the street will put more pressure on them to do so.

<comment><USER4> The vast majority of what google has grown in the "moat" and the "scorched land" that surrounds "the castle" of search and paid clicks is at best useless and often toxic. And then there is YouTube.

Edit: when useless, it is useless to a buyer, but not to a user. When toxic, it is toxic to both.

<comment><USER3> > useless to a buyer

To the potential buyer of the asset or a client buying a Google service?

Good example, non-Google related - Pinboard buying Delicious.

<comment><USER4> Excellent example.

Can a one-man-show benefit from the disposal of a Google owned asset? Most likely.

Parent was talking "tech M&A", "corporate assets" and "the street". Not same.

<comment><USER3> I was the OP btw :)

I'd have to dig further but I have to imagine there are products that are created by Google that don't reach $100M+ in revenue that Google eventually folds. Something more likely - a product that is $10M in revenue that plateaus and could be sold off as an asset.

I honestly don't know, just throwing it out there.

<comment><USER4> Google doesn't operate that way.

Almost everything that comes out is a loss leader in one way or another (and more often than not, in one way and another).

You can dig, but it will most likely be extremely hard to find a stand alone product/service that plateaued at such a revenue level.

Wishing that such a product would be "created by Google" puts the bar way way too high.

The Nik Collection, for example, arrived via acquisition...

</comment></comment></comment></comment></comment></comment><comment><USER5> What is the nix collection?

<comment><USER6> Apparently a collection of plugins for Adobe Lightroom.

<comment><AUTHOR> The tools can all be used standalone as well as directly from LR, Capture One and other processing/image editing software.

Before Google made them free they weren't cheap, $500 for the collection.

</comment></comment></comment><comment><USER7> Google's photo strategy is so strange.

Photos is a great app and has universal appeal - powerful, intuitive editing, easy and smart search, free backup, etc.

Snapseed is also one of the best mobile photo editing tools around, certainly the best free one IMHO.

My guess is they used the Nik technology in these tools to make the editing and retouching functions work so well, and now they sold it with contingent that they can use it in perpetuity...

Here is the weird part -why wouldn't Google merge Snapseed editing with Photos? It would be a killer combination and dominate the consumer space, locking in users to the Goole platform. Isn't that ultimately what they want?.

I always assumed Snapseed and Photos would merge one day. Yet, it has never come, and instead Google is empowering others in the space with their tech.

Maybe they have "good enough" dominance in the area and don't care anymore? Maybe all they care about is tying users into the Drive platform and Photos is just another funnel that did good enough and can be ignored?

<comment><USER8> Why would they have to be merged? What would we, most of the users, gain by having a huge bloated gallery app dragging a whole editing software with it? Is installing that other app really such a completely exausting impossible endeavor?

What's wrong with tools that do their core feature very well and can share data between them?

<comment><USER7> They dont share data well. I cannot select "Edit with SnapSeed" and have it roll back into google photos without getting a second copy of my picture. Would love to see that kind of integration - but they dont even have that.

</comment></comment></comment><comment><USER9> Well, Google levelled up their game on Snapseed at some point, so why milk the cow you don't know how to feed, makes sense.

<comment><USER10> The surprising thing here is that Google let DxO have it. I was expecting them to let the cow starve to death because they got bored with it.

<comment><USER11> Well they did sell Sketchup to Trimble when they got bored with that.

</comment></comment></comment><comment><USER12> This is good news. As a professional photographer there at least 2-3 filters in the Nik Collection I could not find somewhere else. I was worried Nik will disappear (I still bought them expensive in former days).

</comment><comment><USER13> Is there a CEO who is able to make an announcement without claiming they revolutionized something?

<comment><USER14> Such an announcement would be really disruptive!

</comment></comment><comment><USER15> Not sure how to read the headline versus the content - my take is that the current version will remain free but the new version will not (so I don't see that there's much change there, given that probably everyone who wanted it has it already and it's widely available elsewhere?)

"The current version will remain available for free on DxO's dedicated website , while a new versionis planned for mid-2018"

[1] - [https://nikcollection.dxo.com/wp- content/uploads/2017/10/Nik...](https://nikcollection.dxo.com/wp- content/uploads/2017/10/Nik-Software-Press-Release-English.pdf)

<comment><USER16> Last released Google version does not work on macOS Sierra (tried and failed). If they fix nothing else but support for all recent versions it will be a step forward.

<comment><USER17> Hmm, works for me. How does it fail?

<comment><USER18> As far as I can see it's not supported beyond Adobe CC 2015. Tried to apply a filter in Photoshop 2017 and it unexpectedly quit.

Really glad that Nik is being maintained again. While I was happy that Google released it for free, it was essentially abandonware.

<comment><USER19> I don't have a Mac and don't know if you've tried this, but you might still be able to run the standalone programs directly from the installation directory for making atomic edits to photos, then import those as new layers into your project. It isn't as good as using them as plugins, which lets you readjust settings on-the-fly, but it has worked for me as a hobbyist.

</comment></comment></comment></comment></comment><comment><USER20> Have to wonder if this has anything to do with DxO rating the Pixel 2 as the "phone camera with the best image quality".

<comment><USER21> Do you think all of the reviewers gushing over the Pixel 2 camera are also in on it?</comment></comment>