How to speed up the Rust compiler - <AUTHOR> https://blog.mozilla.org/nnethercote/2016/10/14/how-to-speed-up-the-rust-compiler/ <comment><USER2> I've never used rust but seeing it's so oriented towards correctness and type checking, I'm not surprised it's a little slow to compile!

From someone stuck with dynamic languages, mark my words, it's best for your compiler to be a bit slow, than your brain being the compiler! :-)

<comment><USER3> Why? You can have both fast compilers and safe languages.

Take Delphi for example: statically typed, strong type correctness, you have to work to avoid type safety. Compiles a million lines of code in _4 seconds_ (including linking.)

* [https://www.youtube.com/watch?v=Yq2mNUzcpE0](https://www.youtube.com/watch?v=Yq2mNUzcpE0) (1 million lines, 4 seconds)

* [https://www.youtube.com/watch?v=kvuxeaMDmMc](https://www.youtube.com/watch?v=kvuxeaMDmMc) (277,000 lines of much more complex code (the most complex, compiler-stressing library Delphi has) in 16 seconds counting linking.

<comment><USER4> I'm not familiar enough to comment on what different feature set and different type of work each compiler does to compare the speed, but WOW, that's an INSANE quick build speed.

Was it always an explicit goal of theirs compilation speed? Is there any documentation of specific things they did to achieve that build speed?

<comment><USER5> I used to use Delphi a lot, in the 1990's. It's a few things.

Compiler designed for compilation speed above all else. Delphi did not attempt to ever compete with other languages/toolchains on raw runtime performance of the generated code .... I don't recall ever seeing Borland/Inprise boast that a new version generated more optimal code. This is because the code the compiler produced was fast enough for Delphi's target market (desktop business apps) and it was still a lot faster than Visual Basic, and a lot more compact than Java, which were its primary competitors. Delphi sold new versions to developers by giving them new productivity tools: for desktop apps that spend all their time idling, raw code performance was rarely an issue.

Single pass compiler. Structuring Delphi apps could be a nightmare. You could not have circular unit dependencies and breaking such dependencies could often be irritating as hell. Functions had to be declared in the right order.

No preprocessor or include based model. "Units" defined their header and implementation in the same file, so the compiler could rapidly load a binary representation of what a unit exported whilst it was compiling.

No generics. Thus, no explosion of code to generate at runtime, like with C++.

Grammar that was very easy to parse.

Compiler codebase that at its core was designed for very old computers, so is/was very tightly written.

Probably more. That's just what I recall.

<comment><USER4> Sweet. Thanks for the info. That provides a lot more context.

I never wrote Delphi myself, but I always appreciated it, because it was used to develop the first IDE I used fory first programming class. Bloodshed's Dev C++. Quite an impressive IDE, so I imagine Delphi was (still is? No idea) a great platform for desktop app development.

<comment><USER6> It is, but since Borland lost their vision how to sell software and the tools division changed hands a few times, they lost most of the customers.

Nowadays most of them are enterprise customers with big maintenance contracts.

Also for shops focusing on Windows only customers, Delphi cannot compete with .NET.

</comment></comment></comment></comment></comment></comment><comment><USER7> I still think they should investigate doing the LISP solution to the problem where you combine several options:

1\. Interpreter (eg REPL) that executes it instantly with dynamic checks for rapid prototyping of logic.

2\. Fast, non-optimizing compile that at least does the safety checks.

3\. Fully-optimizing compile that can be done in background or overnight while programmer works on other things like tests or documentation.

4\. Incremental, per-function version of 2 or 3 for added boost. Rust is already adding something like that.

This combo maximizes mental flow of programmer, lets them tinker around with algorithms, quickly produces executables for test deployments, and will often do full compiles without interrupting flow with wait times. It's the workflow available in a good LISP. It doesn't have to be exclusive to LISP. Other languages should copy it. I'll go further to say they should even design the language and compiler to make it easy to pull that off.

<comment><USER8> In CLs, anyways. In Schemes, we usually only have 1 and 3. Maybe 2 and four, but only sometimes.

<comment><USER7> The Scheme I was thinking of using to re-learn LISP and Scheme was Racket. Its environment + How to Design Programs looked like a strong combo. Do you know how it fares on this list?

<comment><USER8> Not really. I'm pretty sure Racket is bytecode compiled, but it's not nativecode compiled. It has a realtime interpreter, of course.

I'm more of a Chicken fan, myself, and Chicken has a REPL/interpreter and an optimizing compiler. It's compiler isn't especially fast, even at lower settings.

Racket really is the C++ to Scheme's C in that it's similar to its parent (although unlike C++, it's actually not compatible), and is more complex (I would say too complex, but unlike C++, it's fairly well designed, so it's a matter of opinion: if you like it, good on you).

Guile is also bytecode compiled. I don't know how fast compilation is.

<comment><USER9> Racket can compile a racket source file to platform independent bytecode (stored as zo-files). When the bytecode is run, it isn't interpreted, but a just-in-time compiler kicks in, generates machine code, and the code is run.

As far as I know - a new compiler is in the works.

</comment></comment></comment></comment></comment><comment><USER10> As far as I know, the Rust compiler is written in Rust? That should mean that if the features of the language are used, a lot of "small" allocations shouldn't happen at all, instead, the language is supposed to allow that the short lived variables (and objects) exist only on the stack, costing effectively nothing to allocate them?

Moreover, the compilers in general have an advantage to know that most of the objects are needed only during specific times, allowing optimized allocation and bundled deallocation. I see "a lot" of "arena" allocators are mentioned, so it seems there is something like that, just maybe too fine grained?

In short, there's no need for the Rust compiler to have any measurable overhead due to the allocations.

Then only the changes in the compiling algorithms and the underlying data structures (how often is what traversed and why, is something kept or recalculated, sometimes it's even more expensive to produce too much data to be kept in memory, and sometimes the data structures aren't optimal for the most of the uses) should have the potential of changing the compilation speed.

<comment><USER11> Don't know why you are being down voted. Even if you are incorrect, it would be interesting to hear why. Anyone care to comment?

<comment><USER12> Compilers spend a lot of time with hashtables, which exist on the heap. Rust isn't some magical language that makes the heap some unnecessary entity. One still has objects whose lifetime do not fit the stack model or whose size is dynamic

Their comment went on to claim that given their hypothesis, allocation optimization shouldn't be impactful. Yet this post demonstrates otherwise, perhaps showing that therefore their hypothesis is false (if a then b, b is false, therefore a is false)

One of the post's optimizations was to use Cow<str> over String tho, which is an example of reducing allocations with borrows

Additionally it's oft mentioned that a weak point in Rust's compile time is LLVM. This has to do with various things, some of which are Rust's fault (it could generate less IR), but it points out that there's a lot of time being spent in C++ code. LLVM's great, but it's guidelines essentially suggest 'if you want to make llvm play nice, generate IR like clang'

<comment><USER10> > Their comment went on to claim that given their hypothesis, allocation > optimization shouldn't be impactful.

And what was the hypothesis? That the code for the compiler itself should use the features imagined to be used by the language, just like your example:

> One of the post's optimizations was to use Cow<str> over String

Then:

> allocation optimization shouldn't be impactful. Yet this post demonstrates > otherwise

"not impactful": It looks to me like that: 36.526s vs 32.373s for the longest compile tested. It is measurable, but not something that I as the programmer will be able to notice. My definition of impactful for the compilation times is "at least a factor of 2" not 1.1.

And the claim is, once the language possibilities are actually used. If the code is written differently, of course not much is expected. The result of a moderate speedup exactly shows that the language possibilities weren't always used in a way to minimize allocations, but the difference is still not, for my perception, significant (10% is hard to recognize unless measured or the actual compilations last hours and not seconds). But I still claim that much bigger potential gains are the actual changes in the algorithms and the data structures. The data structures especially can hugely change the result if they are made to be really cache friendly, and together with the changes in algorithms such modifications have the potential to make an order of magnitude speedups, if they are actually possible.

</comment></comment></comment></comment><comment><USER6> In conclusion, allocating memory is expensive, regardless how it is done. :)

<comment><USER13> The allocation fixes are scratching on the surface of the compiler. It must be something more fundamental underlying the long compilation time.

<comment><USER14> Not sure how much is due to this, but LLVM has gotten much slower in recent releases, probably due to improved optimizations.

I would not be surprised if down the line, the Rust devs decided to write their own Rust backend rather than relying on LLVM.

<comment><USER6> That would be a good way for removing the C++ dependency on their toolchain, but it would take decades to achieve parity with the quality of LLVM optimisers and supported ISAs (which are a subset of gcc ones).

C and C++ optimisers weren't that good in the 80 and 90's even against junior Assembly developers, the 40 years of compiler research in optimizing C and C++ code that made them what they are nowadays.

<comment><USER14> While I certainly agree that it would take time, I'm not so sure of 'decades' needed, I believe the scope of a Rust specific backend would be quite different from that of a everything-but-the-kitchen-sink backend like LLVM.

Also not sure that reaching optimization parity with LLVM is an absolute necessity, Clang/LLVM is not as good at optimizing as GCC but that hasn't rendered it unpopular.

Looking at Go as a benchmark, the compiler seems to be improving the optimization at a good pace and supports X86, ARM, PPC, MIPS, S390 despite being relatively young language and also having recently rewritten the compiler.

<comment><USER15> > Also not sure that reaching optimization parity with LLVM is an absolute > necessity, Clang/LLVM is not as good at optimizing as GCC but that hasn't > rendered it unpopular.

Clang/LLVM is essentially as good as GCC. It depends on the benchmark you're looking at. Getting up to LLVM parity would take years and years.

> Looking at Go as a benchmark, the compiler seems to be improving the > optimization at a good pace and supports X86, ARM, PPC, MIPS, S390 despite > being relatively young language and also having recently rewritten the > compiler.

It will take years and years for Go to achieve LLVM's level of optimization (assuming that they want to; I suspect that they won't when it starts regressing compile times).

<comment><USER14> >It will take years and years for Go to achieve LLVM's level of optimization

Looking at Rust vs Go over at 'benchmarksgame' (granted these are micro- benchmarks), Go seems to compare very well for tests that are mainly computational and thus avoid involving the GC very much (even beating Rust on a couple).

[http://benchmarksgame.alioth.debian.org/u64q/compare.php?lan...](http://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=go&lang2=rust)

And let's not forget that Go hasn't really had any focus on optimizations up until the last release where SSA was introduced.

Anyway, maybe I'm projecting as I would like to see a full Rust toolchain in Rust, and my (very possibly entirely wrong) impression is that Rust devs have been struggling with getting the full performance potential of Rust through LLVM.

<comment><USER15> The benchmarks game is one thing. Doing well on real code that isn't ridiculously microoptimized is quite another.

It makes zero sense to write a new backend for Rust from scratch because Go does well on a few microbenchmarks. Go's compiler infrastructure is across the board worse than that of LLVM (in compile-time performance too; some of Go's algorithms have worse asymptotics than the more sophisticated ones in LLVM). LLVM doesn't do things like SROA and alias analysis just for fun.

> my (very possibly entirely wrong) impression is that Rust devs have been > struggling with getting the full performance potential of Rust through LLVM.

I'm a Rust compiler dev and I have no idea what you're talking about. LLVM is working wonderfully for us. If we had done what Go did, we'd quite possibly have failed.

I have a different proposal. Instead of reinventing the world for no reason, let's treat bugs in LLVM/rustc as bugs, and _fix them_.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER16> > _malloc and free are still the two hottest functions in most benchmarks. > Avoiding heap allocations can be a win._

This is a non-sequitur. If you see a hot function in a profile, that is an indication that you should optimize that function if you can. But it does not mean that you should try to reduce calls to that function elsewhere (unless you can cut out a lot in one go). As a trivial example, if you have a super- fast function that cannot be optimized any further, but it's called millions of times, that function may appear hot, but any individual invocation of the function might be taking just a few microseconds. Getting rid of a handful of calls to this function (or even a few hundred) isn't going to make an appreciable difference. Of course, if you can cut the number of calls in half, then that would be good.

I guess another way of saying this is, if you're trying to optimize a hot function by reducing the number of times it's called, you need to reduce it by a significant percentage of the total calls rather than reducing it by a specific number of times. No matter how many times it's called, if you reduce the number of calls by 50%, the overall time taken by the function drops by 50%. But if you reduce the number of calls by 50, then whether that's meaningful or not depends entirely on how long each individual call to the function takes.

Edit: Why am I being downvoted for this? I'm speaking a factually correct statement. It's not like this is some sort of controversial opinion. If I'm wrong, please tell me why.

<comment><USER17> The original statement isn't a non-sequitur. If the compiler is spending a lot of time in malloc, it makes sense to replace those heap allocations with stack allocations where possible.

You are also correct that removing mallocs might not be much of a low-hanging fruit, since it might entail changing a lot of malloc calls rather than just a few, but that doesn't mean the original statement was wrong.

<comment><USER16> Fair enough, but it's a good bet that most of those mallocs cannot be replaced with stack allocations.

<comment><USER18> So grab an fixed-size pool allocator. Malloc is very generic, and faster alternatives aren't limited to stack allocators.

EDIT: Or do what the article does, eliminate allocations that were straight up unnecessary (because they were unused, or over-eager deep copies)</comment></comment></comment></comment>


Microsoft Project Reunion: an evolution of the Windows developer platform - <AUTHOR> https://github.com/microsoft/ProjectReunion <comment><USER2> > Project Reunion is our vision for unifying and evolving the Windows > developer platform to make it easier to build great apps that work across > all the Windows 10 versions and devices people use.

I just want it to be like it was in 1998. Want to learn how to program for Windows 95, 98, or NT back then? Buy _Programming Windows_ 5th edition by Charles Petzold, read it, and you are most of the way there. Add _Advanced Windows_ by Jeffrey Richter if you need more lower level knowledge.

If you needed to support Win 3.1, you had Petzold's _Programming Windows 3.1_ for that. (...and Petzold's _Programming the OS /2 Presentation Manager_ if you wanted to branch out a bit).

Just get Petzold to write one of these for Windows 10 and I'll be happy.

<comment><USER3> >>> Just get Petzold to write one of these for Windows 10 and I'll be happy

If you are tuned into MS Build Live right now, you can get a feel for where not just Windows, but the entire ecosystem is headed. Low code developer studios. Heavy cloud integration. HTTP / API REPLs. Build actions instantly targeting a mind boggling array of devices and platforms.

I've seen it across environments. Goal is to eliminate the possibility of introducing human error into complex systems. As well as onboard recent hires quickly. Era of developing software as visual metaphor is upon us. Possessing actual bare metal skill will become more rare (and counter-intuitively more valued) than ever ;)

<comment><USER4> > Era of developing software as visual metaphor is upon us.

I've been hearing this for about 25 years. Yet none of the software I actually use is developed that way.

<comment> shawn-butler Yes, but now we have DeepLearning or something... I'm sure it will be different this time.

<comment><USER4> I make my living with it. It's pretty much the opposite of "code free", and its problem domain is entirely orthogonal to that of "traiditional" programming in that you can't do what deep learning systems do using the traditional means, at all. Try recognizing a hotdog reliably with just some for loops and if statements. Code-wise, frameworks themselves are millions of lines of code, and then there are tens of thousands of lines of your own, often extremely gnarly stuff on top of that. And I don't expect anything that can "write itself" in my, or my children's lifetime.

<comment><USER5> I think the poster you are replying forgot to add the '/s'

<comment><USER4> Adding /s is almost always pointless. People who understand sarcasm don't need it, and everyone else doesn't know what /s means.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> _What's different this time?

Microsoft has been on a years-long journey to unify the APIs in Win32 and UWP, adding more common APIs and interoperable code between the two. Still, every time Microsoft tries to improve the situation, developers have to wait for the latest version of Windows.

This time, Microsoft is borrowing an idea from the web — polyfill — with the introduction of packages. A polyfill is a piece of code that provides modern functionality on older browsers that do not natively support it. As Microsoft introduces new APIs, developers link against a package, and if you're on an older version, Microsoft will polyfill the functionality as best it can to use in the new version. The best part is that these packages will work from a Win32 or UWP app. The collection of packages thus becomes a common API service between Win32 and UWP. Best of all, Microsoft can do this across its 1 billion devices, immediately. Microsoft EVP Rajesh Jha explained the result in a briefing ahead of Build 2020._

From this article: [https://venturebeat.com/2020/05/19/microsofts-project- reunio...](https://venturebeat.com/2020/05/19/microsofts-project-reunion- bridges-win32-and-uwp-divide-again/)

<comment><USER7> Polyfills are a problem since you have to bundle them even if your version supports the new features... unlike the web where you can use the user's browser info to send them the correct polyfill these new applications will get larger and larger.

<comment><USER8> Hmm... it works pretty well for android (Android Support Library). I think it only compiles in the bits you use which helps keep the app size down.

<comment><USER9> I believe that's the case for modern JS polyfills (if you use a bundler)

</comment></comment></comment></comment><comment> Phil-bitplex I have re-read the readme about 5 times now, and I'm still not really sure what it is.

I _think_ its an API wrapper to make functionality available in older versions of windows, is is only in newer versions of windows? Or maybe other platforms that support UWP? It feels like the readme is written in startup-speak, where I was expecting it to be a little more... developer-y?

<comment><USER10> I agree it's confusing. But here's the intention as far as I can tell:

UWP was originally "monolithic" and "closed" in several respects: your app had to either adopt all UWP facets (be a "UWP app") or none (be a "Win32 app"), new APIs only shipped with new Windows releases, the implementations were entirely closed source, etc.

In the past few years they've started to take pieces of what used to be UWP and pull them out into separate components. Unlike the monolithic UWP platform, these components can be adopted independently by Win32 apps without having to adopt all the other components at once, their runtimes can be distributed with your app outside of Windows and run at least a few versions back, their implementations are partly or wholly open source, they do planning and design reviews in the open on github, etc.

So far, the components they've done this with have been

* WinUI (a decoupling of the UWP UI framework)

* MSIX (a decoupling of the UWP packaging system)

* C++/WinRT, C#/WinRT and Rust/WinRT (a decoupling of the UWP object system and language bindings)

The "new" Project Reunion is basically an umbrella name for these decoupled UWP components, a declaration of their intent to decouple the rest of UWP in similar fashion, and a new github repository for planning this and designing the future evolution of the Windows developer platform in general. So the repository has issues posted by Microsoft developers about how the UWP app lifecycle and resource formats can be decoupled, for example.

<comment><USER11> As an example, how the "Win32" apps are to use these "new" UI features:

[https://docs.microsoft.com/en- us/windows/apps/desktop/modern...](https://docs.microsoft.com/en- us/windows/apps/desktop/modernize/xaml-islands)

Desktop C++ users should use: "UWP XAML hosting API provided by the Windows 10 SDK (version 1903 and later)."

<comment><USER12> Having actually tried to use XAML Islands to get some UWP UI controls into a WPF application, I can say that the experience was absolutely horrible and I ended up giving up and not using the UWP control after all. Truly, truly horrible.

This was about a month ago.

I hope they do better this time.

<comment><USER11> > Truly, truly horrible. This was about a month ago.

Fascinatingly, it seems that Microsoft for their own purposes prefers to use Electron-based applications.

I'm curious if they will manage to reduce that strange state to something more reasonable.

</comment></comment></comment></comment></comment><comment><USER13> _> Project Reunion is our vision for unifying and evolving the Windows developer platform to make it easier to build great apps that work across all the Windows 10 versions _and devices* people use.*

I'm always a bit skeptical of projects that seek to harmonize or standardize APIs across different kinds of hardware devices, not for the benefit of users, but for the benefit of software developers.

The visions behind such projects often seem to produce elegantly designed software platforms, like Windows 10 Mobile[a] and Ubuntu Touch[b], for which there is actually no user demand.

Did end-users, i.e., regular people, ask for Project Reunion?

\--

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

[b] [https://en.wikipedia.org/wiki/Ubuntu_Touch#Ubuntu_Mobile](https://en.wikipedia.org/wiki/Ubuntu_Touch#Ubuntu_Mobile)

<comment><USER14> The Windows platform is extremely fragmented since Win10: not only there is different API and execution models (Win32, UPW) but also each new Win10 build brought new API that were not available on previous versions. Even as someone who program mainly in C# (on Mac/Linux) and some knowledge about the UWP disaster^W situation this is a mess cery hard to understand and not appealing to develop for.

<comment><USER15> why is it a problem that they release new api's? they couldn't bring them all out before they're written, so the alternative is to batch them up and release them all at once.

but then don't you still have a common install base, because the change will be too much for some users who will hold off, a la windows 7/8.

as someone doing a little windows dev on the side, the issue for me has been that i don't know whether uwp or win32 is the better (future proof) choice. i guess when one of the main distinctive features of your os is that it is backwards compatible, it is hard to change. (i noticed BN_UNPUSHED is documented as being included for compatibility with 16-bit versions of Windows before 3.0.)

</comment></comment></comment><comment><USER16> This is all about fixing a mistake that never should have been made. They did the UWP split around the time of Windows 8 and since then have tried to prop up the Windows Store with Windows Mobile ports, XBox games, and other ventures. It's good to see them finally recognize that the Microsoft Store wasn't going to go anywhere.

<comment><USER17> The UWP project was all about Windows Phone -- it was a platform for running more constrained and less battery-heavy applications on a phone while also allowing those apps to run on the desktop.

When their phone platform imploded, UWP suddenly didn't have a real market.

</comment></comment><comment><USER18> Parsed that as "Microsoft Project" Reunion. Like a dinner where the devs and pms from the Project planning application reminisce about old times, before daily standups and stories and sprints and...scrum masters.

<comment><USER19> Precisely. And then I wondered who hated themselves enough to spend more time with that application than they were paid fat piles of cash to do.

</comment></comment><comment><AUTHOR> 'At Build 2020 [1] today, Microsoft unveiled Project Reunion [2], its latest attempt to unify the Windows developer platform by reducing fragmentation between Win32 APIs and Universal Windows Platform (UWP) APIs. Microsoft also promises Project Reunion can modernize existing apps with the latest functionality, whether they're built using C++, .NET (including WPF, Windows Forms, and UWP), or React Native. Additionally, it can decouple the APIs from Windows via tools like NuGet, and it brings new WinUI 3 and WebView2 releases.'[3]

Possibly related:

Windows Package Manager Preview

[https://devblogs.microsoft.com/commandline/windows- package-m...](https://devblogs.microsoft.com/commandline/windows-package- manager-preview/)

[https://github.com/microsoft/winget-cli](https://github.com/microsoft/winget- cli)

[1] [https://mybuild.microsoft.com](https://mybuild.microsoft.com)

[2] [https://github.com/microsoft/ProjectReunion](https://github.com/microsoft/ProjectReunion)

[3] [https://venturebeat.com/2020/05/19/microsofts-project- reunio...](https://venturebeat.com/2020/05/19/microsofts-project-reunion- bridges-win32-and-uwp-divide-again/)

<comment><USER20> Don't get me wrong, but are you associated with the project or Microsoft?

<comment><USER21> Why would it matter? Can't an MS dev be proud of their work and want to share it, without being accused of being a "shill"?

<comment><USER20> When I commented, the comment in question had a very generic market-speech, and as a moderator of other internet communities, my "spider-sense tingled" so to speak. As it stands now the comment is much more productive.

<comment><AUTHOR> It was a quote that I hadn't yet cited. I had no intention to be ambiguous so I do apologize for the confusion.

</comment></comment></comment></comment></comment><comment><USER22> This seems more like codifying some principles/guidelines between a couple of new APIs (and hopefully everything going forward), rather than anything actually new:

* can be used in UWP and Win32 apps (with no package required for Win32)

* supported on Windows 10 versions going back several years

</comment><comment><USER23> The first thing you as a developer can start exploring today that is part of "Project Reunion" is WinUI 3.0 Preview 1: [https://blogs.windows.com/windowsdeveloper/2020/05/19/introd...](https://blogs.windows.com/windowsdeveloper/2020/05/19/introducing- winui-3-preview-1/)

</comment><comment><USER8> The list of supported languages is pretty interesting. Looks like Microsoft is pretty serious about making Rust a first class citizens for it's Windows APIs:

> C++, Rust, C#, and JavaScript

<comment><USER24> Would definitely be nice to see Microsoft put more resources into supporting Rust. Go has Google's backing and Swift has Apple's. Would be interesting if Microsoft fully embraces Rust, but hopefully without the "extend and extinguish" part.

<comment><USER25> They already do support Rust in a few ways, but I would always welcome even more support for sure :)

</comment></comment></comment><comment><USER26> Microsoft seems to have tried to unify their developer story in many incarnations now. So my biggest question is, why will this one succeed where others have failed? I see absolutely no evidence to suggest this is better than previous attempts.

<comment><USER27> The consumer Windows ecosystem (excluding games) feels moribund. When is the last time that anybody was excited about some new or improved Windows program? Everything interesting seems to be happening either on mobile or on MacOS.

There's still lots going on in the commercial / enterprise space, but that stuff is either old and Win32 or new and in the browser.

Who is using UWP?

<comment><USER28> Anyone that wants to access any new Windows API introduced since Vista, where they re-focused on COM to deliver the ideas that failed with .NET on Longhorn.

So if you are using pure old style Win32, you will be using a view of the computing world stuck in Windows XP.

<comment><USER27> > you will be using a view of the computing world stuck in Windows XP

That's kind of what I was getting at when I said the Windows ecosystem (excluding games) is moribund.

<comment><USER28> If having 90% of the desktop market, with a good base of Fortune 500 and SMEs is moribund, I really like Zombies.

<comment><USER27> Inertia is a helluva thing.

For the record, I'm a Windows desktop developer. It's a great place to make a living, I just wish there was a little more vitality here on the consumer side.

On MacOS an independent developer (or small shop) making great software can still sell it at $50-$100 to enough people to make a living. For some reason it's harder to do on Windows even though the market is far bigger. I'm thinking of software like Things or Fantastical. High quality, polished, reasonably priced with an enthusiastic user base.

<comment><USER28> Only if you live in US or similar populated OS X countries.

I have been in plenty of countries where there isn't any Mac to be found.

</comment></comment></comment></comment></comment></comment></comment><comment><USER29> Why is Microsoft so bad at naming things.

</comment><comment><USER30> sounds like they are serious about making an interoperability layer between older programming constructs so you can run .net core code on older frameworks

am i missing something other than the politics?

admittedly this is pure speculation (TLDR... i mean... it's a corporate github repo with an unfathomable number of enormous minds contributing to it), but i would think something like .net core 1.1 would be the initial target

also... to head of the parenthisized joke above... i was also too lazy to research it more. i told my boss about it, though. he's smart... and in charge of how things like this impact my life

</comment><comment><USER31> I assumed this was party planning for the original team who wrote Microsoft Project and clicked just to see if there was a Gantt chart to show who was going to buy beer and the estimated lead time.

</comment><comment><USER32> I was hoping this was about a new open-source version of MS Project =(

<comment><USER33> Yeah I had hopes, but was skeptical that would be the case.

</comment></comment><comment><USER34> WebView2 seems like an interesting replacement for electron.

<comment><USER35> WebView2 isn't a replacement for Electron; it's a replacement for the Internet Explorer powered WebView component that's been a part of Windows 10 since the beginning. WebView2 doesn't have the same level of platform APIs that Electron provides. While you totally could build a similar app using WebView2 as you could with Electron, you're going to have to build all the non-web bits yourself.

</comment></comment><comment><USER36> Microsoft - support every API we ever had. Apple - deprecate old and focus attention on new.

I beleive in latter. Are you?

</comment><comment><USER37> JVM, part 20.

</comment><comment><USER38> WinRT?

</comment><comment><AUTHOR> Is this Google Wave coming back in the form of Office.com? Open-source! Definitely a different Microsoft than the one I grew up with.

Announcement support page

[https://support.microsoft.com/en-us/office/get-started- with-...](https://support.microsoft.com/en-us/office/get-started-with-fluid- framework-preview-d05278db-b82b-4d1f-8523-cf0c9c2fb2df)

In the news

[https://www.theverge.com/2020/5/19/21260005/microsoft- office...](https://www.theverge.com/2020/5/19/21260005/microsoft-office-fluid- web-document-features-build)

'Microsoft is creating a new kind of Office document. Instead of Word, Excel, or PowerPoint, the company has created Lego blocks of Office content that live on the web. The tables, graphs, and lists that you typically find in Office documents are transforming into living, collaborative modules that exist outside of traditional documents.

'Microsoft calls its Lego blocks Fluid components, and they can be edited in real time by anyone in any app. The idea is that you could create things like a table without having to switch to multiple apps to get it done, and the table will persist on the web like a Lego block, free for anyone to use and edit.

'"Imagine you could take those Lego pieces and put them in any place you wanted: in emails, in chats, in other apps," explains Jared Spataro, head of Microsoft 365, in an interview with The Verge. "As people work on them, they will always be updated and contain the latest information."

'Microsoft's Fluid Framework sounds a lot like Google Docs, but it's actually Google Docs on steroids. Microsoft is so confident it has built the future of productivity, it's now open-sourcing its Fluid Framework so the rest of the world can help shape what it has created. Some Office.com users will even be able to start getting a taste of this Fluid future in the coming months.'

<comment><USER39> Wrong thread.

<comment><AUTHOR> I'm the OP. I meant to post this where I did.

Edit: you were right I was wrong apologies

<comment><USER26> You mean your other post? [https://news.ycombinator.com/item?id=23236287](https://news.ycombinator.com/item?id=23236287)

<comment><AUTHOR> Yeah, I was replying to wrong tab. I'll be eating crow over here in the corner lol</comment></comment></comment></comment></comment>


Ask HN: How does your company manage quarterly OKRs? - <AUTHOR> What software or processes does your company use to manage quarterly OKRs?<p>Does this work well? If not, why not? <comment><USER2> Our company manages quarterly OKRs poorly.</comment>


A Deeper Dive Into The First Quarter VC Investment Numbers - <AUTHOR> http://www.avc.com/a_vc/2009/04/a-deeper-dive-into-the-first-quarter-vc-investment-numbers.html

<comment><USER2> _So while the data doesn't lie, it also doesn't tell the full story. There is money out there for good ideas, particularly ones that are capital efficient and located somewhere other than Silicon Valley._

Capital efficient is what well-run Internet companies can be. Most other sectors don't have this luxury.

And it seems to me that Silicon Valley may be a leading indicator. Its higher order terms just seem to have bigger coefficients than the rest of the investment community.</comment>


A brief visual intro the biggest currency bubble, Bitcoin. - <AUTHOR> http://www.graphnote.com/ddb965cb

<comment><USER2> I wonder what would have happened to the Internet if it had been called a bubble as persistently as bitcoin is...

It's almost as if "real" economists have an emotional need to say "I'm not stupid! I can recognize an obvious bubble!"

<comment><AUTHOR> Seems like everyone is looking to call something a "bubble" after 2008. In this case, this type of increase and crash seems to correlate with other bubbles like the 1987 crash or the Japanese crash in 1989.</comment></comment>


Ranking the Most (and Least) Productive Countries - <AUTHOR> https://priceonomics.com/ranking-the-most-and-least-productive-countries/ <comment><USER2> How can there be all of this analysis regarding task completion times with no discussion about planned duration? Shouldn't there be some sort of data and discussion regarding duration, and maybe ratios of planned vs actual and planned vs incomplete statuses? Maybe all that is here is that some nations plan average 14 day tasks and others 4 hour tasks?</comment>


Alzheimer's risk 10 times lower with herpes medication - <AUTHOR> https://www.medicalnewstoday.com/articles/322463.php <comment><AUTHOR> Right on the heals of the recent publication that shows that beta-amyloid in the brain specifically wraps around HerpesViral particles in order to prevent them from spreading!

[https://www.cell.com/neuron/fulltext/S0896-6273(18)30526-9](https://www.cell.com/neuron/fulltext/S0896-6273\(18\)30526-9)

Turns out, a great many viruses use low-density-lipoproteins (LDLs, of heart disease fame) to travel around the body, and some even enter our cells by binding to LDL receptors. The APOE gene, associated with alzheimers, binds and transports herpes in the brain and hepatitis viruses in the liver!

[https://medium.com/@InfinoMe/cholesterol-have-we-shot-the- me...](https://medium.com/@InfinoMe/cholesterol-have-we-shot-the- messenger-a3f5dfeba09)

<comment><USER2> Umm... sooo... Alzheimers might be _viral_? Or is it just common mechanisms that might be at work?

<comment><USER3> No. The beta amyloid protein is the primary 'cause' of Alzheimer's. It builds up in the brain and kills neurons and synapses. Tens of billions of dollars have been spent developing drugs to reduce the amount of amyloid in the brain to try and combat Alzheimer's, none of which has led to an effective treatment.

This newer theory is that the cause of the amyloid build-up is an immune response to the herpes virus increasingly infiltrating the brain (as you get older the blood/brain barrier that protects your brain from infections weakens) so a possible treatment is to try and reduce the levels of herpes infection rather than attacking the amyloid protein which is your body's immune response to the herpes infection.

The APOE4 gene is infamous for increasing amyloid production and being a major risk factor for early-onset Alzheimers and so carriers of the gene are often used in studies to see the effect of treatments. (@subcosmos below has a good explanation of what this gene actually does)

<comment><AUTHOR> The thing about viral infections of the nervous system is that you don't even need to consider the blood brain barrier. Viruses travel backwards through neurons by hijacking microtubule transport networks, and many groups have hypothesized in the literature that it could be getting into the brain by simply infecting a peripheral nerve and traveling up the spinal chord.

<comment><USER4> > Viruses travel backwards through neurons by hijacking microtubule transport > networks,

How does this help crossing the BBB? Can you give a citation?

<comment><AUTHOR> Check out Figure 1 in this paper. The model effectively is that HSV infects a great many people in early life, and becomes latent in neurons until old age. Then it suddenly wakes up again and travels to the brain. All it takes is an infected muscle or other tissue, allowing the virus to get into the nerve. [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3546524/](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3546524/)

Some VERY notable statistics mentioned in the paper : "Such studies have revealed endemic infection rates of 31% in children aged 6–14, rising to 49% in adults aged 14–49, and to a high of 80–90% in the population over 65. In one study of 40 autopsied TGs, HSV-1 sequences were amplified from DNA or RNA extracted from 81% of TGs from demented subjects, and 74% of controls"

I blogged about these connections here, for I think that this retrograde transport phenomenon might explain Tau phosphorylation, which is a secondary hallmark of Alzheimer's and other dementias : [https://medium.com/@InfinoMe/cholesterol-have-we-shot-the- me...](https://medium.com/@InfinoMe/cholesterol-have-we-shot-the- messenger-a3f5dfeba09)

<comment><USER4> Nothing about the BBB in that paper.

<comment><USER5> As its name implies, the blood brain barrier protects the brain from whatever happens to flow in the blood stream. The herpes virus enters the brain by another channel : the peripheral, somatosensory nerve cells whose axon has a T shape. One prong of the top bar goes to the peripheral tissue, and the other prong goes up to the brainstem.

<comment><USER4> thanks for the explanation! That wasn't clear to someone who has enough biochemistry and biology to be dangerous but with no experience in physiology.

<comment><USER5> You're welcome!

Expanding further: the blood brain barrier is made of cytoplasmic expansions of astrocytes in the central nervous system. The T-shape sensory cells are part of the peripheral nervous system, their axon ends up in the encephalon.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> Clickbait. The actual finding appears to be this: if you are diagnosed with HSV (herpes simplex virus), your risk of dementia is 2.5 times higher. If however, you get an aggressive antiviral treatment, then the risk is reduced by a factor of 10. I take this to mean that overall, the risk do develop dementia is 2.5/10 = 0.25 times the base risk, so overall, the Alzheimer's risk is only 4 times lower with herpes medication, when compared with the general population.

The relevant quotes from the article:

"The two groups were followed for almost a decade, between 2001 and 2010. In the herpes group, the risk of dementia was over 2.5 times higher than in the control group.

Significantly, the study also revealed that aggressive antiviral treatment reduced the relative risk of dementia by 10 times."

<comment><USER7> >I take this to mean that overall, the risk do develop dementia is 2.5/10 = 0.25 times the base risk, so overall, the Alzheimer's risk is only 4 times lower with herpes medication, when compared with the general population.

Looking at Wikipedia "According to the World Health Organization 67% of the world population under the age of 50 have HSV-1." and according to the source there 11% have HSV-2. There's probably some good amount of overlap between the two, but we have somewhere between 67 and 78% of the population with some form of herpes. In any case the "general population" is closer to having herpes than not having herpes, so we'd probably arrive at a factor somewhere closer to the 10x.

<comment><USER6> In most cases that HSV-1 or HSV-2 is dormant, and the person is considered healthy. In this study, the people diagnosed with HSV were considered sick, and in some cases there was a need for the so-called "aggressive antiviral therapy". Now, the study seems quite well conducted, there was a large enough group of people diagnosed with HSV (about 8k people) and a control group of about 25k people who were aged-matched with the first group, but healthy. The two group were followed for 9 years. The main conclusion of the group, that the people with HSV were 2.5 times more likely to develop dementia appears sound, and the power of the experiment probably many times higher than the one necessary to determine statistical significance. The secondary conclusion, that the people "aggressively treated with antivirals" is not as strong, in my opinion. First of all, it's not clear how many in the primary group were subject to that treatment. In an extreme scenario, maybe we are talking only about 50-100, in which case, we may end up with an intended or unintended case of p-hacking. Second, the researchers may have looked for hundreds of things, like how more prone to Alzheimer people who drank more alcohol were, or people who watched too much TV, or other hypotheses. And we may end up again with p-hacking (like in the acne-causing-green-jelly-beans xkcd [1]).

[1] [https://www.xkcd.com/882/](https://www.xkcd.com/882/)

</comment></comment></comment><comment><USER8> Interesting. Afaik Indians have a very low Alzheimer risk supposely because of curcurma. My friend claimed curcuma also mildens Alzheimer syndromes. This made me Google if curcuma helps against herpes. It does!

[https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2668156/](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2668156/)

<comment><USER9> Curcumin is one of those compounds that does everything, that's not necessarily a good thing, it is a hit in every assay. When you google compounds and they are antifungal, antidiabetic, antibacterial, anticancer, etc., it isn't a reason to get excited, they have no specificity.

Source: I work in natural products chemistry.

[https://en.wikipedia.org/wiki/Pan- assay_interference_compoun...](https://en.wikipedia.org/wiki/Pan- assay_interference_compounds)

[http://blogs.sciencemag.org/pipeline/archives/2017/01/12/cur...](http://blogs.sciencemag.org/pipeline/archives/2017/01/12/curcumin- will-waste-your-time)

<comment><USER10> I also hate the term anticancer which gets tossed around a lot. Everything that is toxic to human cells is anticancer which is what chemotherapy does. If we found a substance that wasn't toxic to normal cells and killed cancer cells, we'd have a safe cure for cancer.

<comment><USER11> Amazing health breakthrough! Our product Nature Farms Pure Organic Battery Acid kills one hundred percent of cancer cells in lab tests!

<comment><AUTHOR> Pure organic is great, but I won't use batteries unless they are vegan.

</comment></comment></comment></comment></comment><comment><USER12> I'm a mathematical illiterate (no really, and I'm not proud). The headline hurts my head - does "risk 10 times lower" mean that there is one 10th of the risk? so a 1 in 10 chance becomes 1 in 100?

<comment><USER13> > does "risk 10 times lower" mean that there is one 10th of the risk? so a 1 > in 10 chance becomes 1 in 100?

There's no way to tell from reading the article, you'd need to read the paper. From the article it's not clear whether it's the 2.5x increased risk that's decreased to 1.25x, or whether people on antiviral meds had a lower risk than the control group (0.25x).

</comment></comment><comment><USER14> I think it's worth noting that the herpes simplex patients were seeking treatment for severe symptoms and were diagnosed using an antibody test. That seems very unusual.

It wouldn't occur to me to see a doctor over a cold sore and if I did my GP would probably laugh me out of the office.

So maybe (here's me grasping at straws) these people had herpes of a severity completely unlike the millions that buy cold sore cream at the supermarket. Or they had symptoms for the very first time, which would be extremely unsual as well considering they were all over 50.

None of that takes away from the surprising effect of the anti-viral treatment on Alzheimer's, but I think the size of the effect may be related to the unusual severity of these particular herpes outbreaks.

<comment><USER15> You're being silly. I doubt your doctor would laugh you of the office for requesting an HSV test. Now a days HSV testing combines type 1 & 2 into a single test, so if you ever go in for STD testing you would get tested for both. You don't have to have symptoms to go in for STD testing. You keep everyone safer by being tested regularly despite the lack of symptoms. It's not usual not to have HSV at that age, I'm 30 years old without HSV, and my father who was in his 70s when he died had never contracted the virus either.

<comment> 8f2ab37a-ed6c Most STD panels do not include HSV tests though, you have to specifically ask for those. Which is IMO a big part why 90% of people contracting HSV have no idea they have it, in addition to simply being asymptomatic.

The typical set doctors look for are HIV, Syphilis, Gonorrhea and something else that escapes me right now.

<comment><USER16> Probably Chlamydia. Can cause sterility and often doesn't have any obvious symptoms.

</comment></comment></comment></comment><comment><USER17> A few loosely related thoughts:

Background: HSV1 is commonly known as cold sores. Some people get them in their mouth, or on their lips. Most of the population don't develop any symptoms.

This link between HSV1 and Alzheimer's could be big business. The numbers are wildly divergent, but it sounds like a sizable chunk of the US population has HSV1. I've seen estimates from 20% to 80%. Even if it's the very conservative 20% number, that's still a big market.

The skeptic in me (his name is David) is suspicious of this article precisely because it has the potential to be such a big market. Case in point, there's a link to some HSV1 medicine at the bottom of the article. I wonder if they have an affiliate marketing arrangement with the makers of acyclovir. Tangentially related, I think that this article is on the front page of HN precisely because HSV1 is so widespread. For example, if another article discussed a cure for Alzheimer's, but that article involved some rare condition that does not affect the general population, would that article hit page #1?

With that said, I think our society's lax approach to HSV1 is bizarre. In Sex Ed, I didn't get any education around the fact that kissing people and sharing drinks can spread a virus. After reading quite a few articles on the virus, I got the impression that STD researchers don't really know much about it. I could be wildly incorrect about that last point, I'm not a medical expert. It's just the general impression I got when trying to understand HSV1 from an STD perspective. For example, it's been common wisdom for a long time that, if you have HSV1 (cold sores), then you can't get HSV2 (genital herpes). But the reality seems to be more ambiguous than that. Apparently there was a fairly recent study mentioning that college students who have HSV1 performed oral sex on their partners and transferred HSV1 to the partner's genitals. Or something like that.

Long story short, although I'm skeptical of the business incentives around associating HSV1 with something as scary as Alzheimer's, I welcome more research around understanding HSV1.

<comment> 8f2ab37a-ed6c Both types of HSVs supposedly have been with humanity for thousands of years and are mostly asymptomatic or "occasionally unpleasant" as a condition, hence the liberal attitude. When doing an STD screening, in the US at least, your doctor will almost never bother with checking for HSV because 1. it's super prevalent 2. it's not harmful with the exception of people with deeply compromised immune systems

If you read about the history of the virus, supposedly in the past most people figured they'd get it (both variations) sooner or later and didn't particularly care. The stigma, especially of HSV2, allegedly started mid 20th century when acyclovir / zovirax came on the market and the company who created it needed a reason to push people to start using the medication. Nobody wanted to at the time, as HSV wasn't a big deal. However once you call people who have it "dirty" and make it shameful, the sales go up. Now you want to suppress outbreaks and potential spreading at all costs. Similar to AIDS in the 80s, in the US people won't even hug you if news leaks that you have HSV2.

Also amusing that, in the state of CA, receiving HSV (1 or 2) to the genitals from someone of wealth is a great source of compensation. Most of the money you'll receive from the civil case will not be for the medical treatment, it will be because of the "psychological damages and impact to lifestyle" from suddenly becoming a social pariah. Like you said, why this would be suable is not obvious. If 80% of the population has HSV1 and you transmit it to the genitals through oral sex, you're now a 2 year-long (statute of limitations) juicy target for a lawsuit. People of means have lost millions of dollars to this. Everybody having sex becomes a ticking timebomb of legal extortion. Better have your partners sign a consent form.

<comment><USER15> Or tell people you have HSV1 before sleeping with them.

<comment> 8f2ab37a-ed6c Perhaps. Or perhaps something you can get a lip balm for at the Walgreens checkout shouldn't cost you millions of dollars.

Also, if you do disclose, you better have in it writing. If there's no evidence of STD disclosure, you can still be sued, and then it's he said vs she said (or pick your permutation of genders) and it's your two reputations competing for who's more trustworthy in court and can have the upper hand. That disclosure can still cost you.

Lawyers will always advise you to have disclosure confirmation in writing (email or paper is best, text might be still ok).

<comment><USER18> Lip balms do nothing to stop the spread of herpes, nor do they treat the infection. At best they soothe the symptoms. The only OTC medication currently available for cold sores, docosanol, seems to reduce the time it takes an outbreak to heal, but there are questions about both its effectiveness and the biological mechanism by which it works. The anti-viral acyclovir is also used to treat cold sores as well as other forms of HSV, chickenpox, and shingles, but it isn't available OTC.

</comment></comment></comment></comment></comment><comment><USER19> I remember asking whether the HSV1/Alz link was a fringe theory based on the lack of popular discussion around it ([https://news.ycombinator.com/item?id=17446016](https://news.ycombinator.com/item?id=17446016)).

As someone at hopefully an early enough age who hasn't had any (known? -- since there's never any certainty with it) outbreaks, I'm wondering whether getting such a prescription based on family history at this point would be well advised. It'd also be neat exploring the side effects and seeing if that's a worthy trade, but it sounds like it probably is.

Biohacking is fun.

<comment><USER20> 23andMe says my risk of being diagnosed with Alzheimer's Disease during my lifetime is 5.59x the average. There are few side effects that would make me hesitate to try something like this to essentially reduce my risk back to average.

<comment><USER21> > 23andMe says my risk of being diagnosed with Alzheimer's Disease during my > lifetime is 5.59x the average.

Be careful with those numbers. I would neither fully trust it nor dismiss it. But these genetic heritage companies have been known to get it wrong, a lot (and very wrong in some cases).

<comment><USER22> From what I heard those genetic tests are about as accurate as saying "You kinda look European and Europeans have a higher risk of Alzheimer's". Not wrong, but also not a guarantee.

<comment><USER23> That's not true, 23andme tests the APOE gene (and possibly some others too) which does indeed have a large affect on the risk of developing Alzheimer's.

Although having the good version of APOE doesn't mean you'll never get it, and having the bad version doesn't mean you're guaranteed to get it. The odds do shift quite a bit, though.

<comment><USER24> >Although having the good version of APOE doesn't mean you'll never get it, and having the bad version doesn't mean you're guaranteed to get it.

Well, having the bad version of the genes certainly doesn't guarantee anything if you don't live long enough too. Only 5% of all people who have the disease have developed symptoms before the age of 65 after all, while average life expectancy of men in the US is at 76. It's very well likely to be predisposed to diseases like these and not develop symptoms because something else killed you before it could show up.

</comment></comment></comment></comment></comment></comment><comment><USER25> Is there any link between high heat and herpes? There was some sauna study showing that people often doing sauna had significantly lower risk of Alzheimer. Maybe herpes is flushed out by excessive heat and sweating or rendered inefficient, even beyond blood-brain barrier?

<comment><USER26> Just a random guess, but I would hazard that it's not the heat. Going in a properly hot sauna and 'soaking' for 15min or more gets you really sweating, and increases your heart rate. Basically it 'gets your blood pumping', and _probably_ produces an activity profile not too different from mild exercise; and regular exercise has also been shown to consistently lower risk.

<comment><USER27> Could be, but I'd guess this works at the molecular level, with a set of genes that is turned on/off in hot environments and producing some kind of desired mechanism.

</comment></comment></comment><comment><USER28> These developments are seriously exciting, and I can't wait for there to be more studies done! If viral links turn out to be causal, then perhaps we have a path towards a cure.

I wonder if there could be a link between HSV and the development of ADHD in early childhood. Or perhaps other mental dysfunction?

<comment><USER28> (Too late to edit my own post.)

Furthermore, I wanted to add that there are a lot of studies that indicate lack of sleep as a risk factor for Alzheimer's. Lack of sleep is also one of the biggest causes of HSV reactivation and outbreak.

I'd be interested in knowing if Lysine supplements have similar effect to acyclovir. The amino acid has a well studied suppressive effect [1, 2].

I'm going to email some of these authors to inquire.

[1] [https://www.ncbi.nlm.nih.gov/m/pubmed/6262023/](https://www.ncbi.nlm.nih.gov/m/pubmed/6262023/)

[2] [https://www.ncbi.nlm.nih.gov/m/pubmed/640102/](https://www.ncbi.nlm.nih.gov/m/pubmed/640102/)

</comment></comment><comment><USER29> I tried to visit the website and a pop-up appeared trying to get my consent re. tracking. Since I didn't agree, the website denied access displaying this page: [https://anon.healthline.com/](https://anon.healthline.com/) I believe NPR also uses the same tactics. How is this legal under GDPR? In any case, I just disabled JS and read the article as usual. Moreover, I realized the web (the document part, not the apps part) is actually so much better without JS. Honestly, whenever JS is being used, it's almost exclusively against the user, not to help them. This is from someone who is coding in JS for a living.

<comment><USER30> The argument is that they need to do this particular tracking in order to make their website work.

I believe this is against the GDPR, but need to make a complaint against them.

Arguments why it is against the GDPR, if you can display the text to a googlebot and you will do no change to the structure of the document that is the main purpose of coming to the site then it is not GDPR compliant to deny someone access to the resource based on the argument that they need to do tracking to make the particular resource work.

In other words they are quite clearly lying and should be fined.

There should be some general make GDPR complaint tool where people can go, say where they are from, write what site complaining about, and it shows you similar complaints for you to add yourself to, or to send a new complaint. Then it packs them off to the relevant organizations to handle the complaint. Probably someone has already made this tool but I don't know about it.

<comment><USER31> Maybe we should just change the browser referrer to googlebot's one

</comment></comment></comment><comment><USER32> Did the people with the anti-virals take them immediately and upon getting infected? Or did they just have to take them at some point post-infection? Couldn't really tell from the article/not sure how the biology works.

<comment><USER17> It's not clear to me, either. Here's my interpretation, based off the abstract:

> These authors report that infection with a different herpes virus, herpes > simplex virus type 1 (HSV1), leads to a similarly increased risk of later > developing SD. Further, when the authors looked at patients treated > aggressively with antiherpetic medications at the time, the relative risk of > SD was reduced by a factor of 10. It should be stressed that no > investigations were made on subjects already suffering from SD, and that > those treated were the few rare cases severely affected by HSV. Nonetheless, > antiherpetic medication prevented later SD development in 90% of their study > group.

[https://content.iospress.com/articles/journal-of- alzheimers-...](https://content.iospress.com/articles/journal-of-alzheimers- disease/jad180266)

And the article:

> The latter study — deemed "most important" by Profs. Itzhaki and Lathe — > examined 8,362 people aged 50 and above who received a diagnosis of herpes > simplex virus (HSV) infection, as well as a control group of 25,086 age- > matched healthy people.

Within the HSV1 population, a small amount happened to get aggressive treatment at some point. It's not clear whether they got treatment at any point in their life, or if they got treatment after the study began (meaning they got treatment at age 50 or later). This minority happened to have much less chance of Alzheimer's later on in life.

In regards to the timing of the treatment, my guess is that they got treated upon outbreak, since it said that they were severely affected. They would get treatment when they were in the most pain or discomfort.

It sounds like only a small minority of the 8K people in the HSV group got treatment.

</comment></comment><comment><USER33> Apparently the virus in question is very common, most kids have it. So it could be that Alzheimers indicates some immunodeficiency and that herpes medication compensates for it.

Edit: I must have gotten confused. I was thinking they talked about HHV6/7 as I saw another discussion about that recently [https://news.ycombinator.com/item?id=17366591](https://news.ycombinator.com/item?id=17366591) From another source: "Nearly 100% of humans are exposed to HHV-6 by the age of three"

Edit 2: Although HSV 1 is also apparently very common in adults. 2 out of 3 have it.

<comment><USER19> There are other threads of research specifically pointing to HSV + ApoE4: [https://scholar.google.com/scholar?q=hsv1+apoe4](https://scholar.google.com/scholar?q=hsv1+apoe4)

Results aren't consistent, but I would be surprised if the latest round of texts didn't spur further examination.

</comment></comment><comment><USER34> I'll add another link to the mix. Looks like all the drugs based solely on the amyloid beta hypothesis have all failed:

[https://www.insidescience.org/news/Alzheimer%27s-Drug- Trials...](https://www.insidescience.org/news/Alzheimer%27s-Drug-Trials-Keep- Failing)

</comment><comment><USER35> There is this other theory, from what I understand, that Altzheimers is due to the tau protein. I am wondering if that is true in some cases, and is due to some sort of similar mechanism to the one the article is talking about. Or maybe tau is getting dragged along when amyloid wraps around HSV particles.

</comment><comment><USER36> Alzheimer's occurs due to a build-up of sticky proteins in the brain called amyloid plaques;

And Scientists claim herpes, chlamydia and other infections could be responsible for Alzheimer;

[https://www.netdoctor.co.uk/healthy- living/wellbeing/news/a2...](https://www.netdoctor.co.uk/healthy- living/wellbeing/news/a26239/could-the-cold-sore-virus-cause-dementia/)

<comment><USER34> The amyloid beta theory is likely completely wrong. All drug trails so far have failed:

[https://www.insidescience.org/news/Alzheimer%27s-Drug- Trials...](https://www.insidescience.org/news/Alzheimer%27s-Drug-Trials-Keep- Failing)

<comment><USER35> But what this article seems to be indicating is that the drugs need to target the HSV that the amyloid beta is wrapped around, not the amyloid beta itself.

<comment><AUTHOR> Yup! And that targeting the beta-amyloid is a bad idea since it just allows the virus to propagate again.

</comment></comment></comment></comment><comment><USER37> Ok, which medication?</comment>


How Driverless Cars May Interact with People - <AUTHOR> http://www.nytimes.com/2016/08/31/technology/how-driverless-cars-may-interact-with-people.html?ref=business&_r=0 <comment><USER2> As a pedestrian, eye contact is very important to my interaction with drivers. If cars become truly driverless, will we then see psople behind the driver's seat reading books? Will pedestrians fall out of the habit of establishing eye contact with drivers? Might there be a way for cars to signal that they're "looking at" a pedestrian?

(Half joke: What if all driverless cars had to have a red "cyclon eye" in the middle of the front of the car?)

<comment><USER3> your half-joke is not a bad idea actually. I think an ominous red Cylon eye would not be desirable though. however, it seems like a pretty good idea to have a forward facing device in the car that scans for and attempts to visually signal pedestrians. it makes a huge difference for traffic safety if the pedestrian knows that the car has noticed them.

<comment><USER4> Herbie the Love Bug eyes, then.

<comment><USER5> If it became mandatory for all cars to have Herbie the Love Bug eyes, I might be forced to reconsider my stance that we do not live in the best of all possible worlds.

</comment></comment></comment></comment><comment><USER6> I have always described self driving cars as the ultimate test of the the Trolley problem [1]. Does a self driving car have an obligation to protect the occupant at the risk of pedestrians? vice versa? What if the pedestrian or occupant is a Google executive?

EDIT: Apparently MIT has turned this whole line of thinking into an app where they collect a consensus on what a machine should decide: [http://moralmachine.mit.edu/](http://moralmachine.mit.edu/)

1\. [https://en.wikipedia.org/wiki/Trolley_problem](https://en.wikipedia.org/wiki/Trolley_problem)

<comment><USER7> There's another article prominently linked from the OP titled '5 Things that Give Self-Driving Cars Headaches". The trolley problem is #5, and it's described as having 'no solution', yet it has the simplest solution: slow down.

If you're ever in a situation where it's possible for a child to jump in front of your car and you are not able to stop in less than a car length or at most two, you were driving too fast. And if you're driving slow enough to stop that quickly, it doesn't matter what the car does, it's not going to kill anybody.

<comment><USER8> This is an extreme case, but if the policy is to slow down and/or stop, then that can be manipulated. Imagine your car takes you through a bad part of town and a group of people want to rob you -- they just have to stand in the car's path and it will stop.

It feels weird saying this, but there is a sort of physical threat that being behind the wheel gives you.

<comment> semi-extrinsic In certain places (big cities in Brazil come to mind, maybe even some places in the US?) it is customary to ignore certain red traffic lights at night because stopping there is very likely to get you carjacked. I'd like to see the autonomous car that can do that correctly and safely.

Same goes for when the lights at a junction are out of service. How will an AI handle that?

In general, proper autonomous cars are going to need a shit-ton of data collection at a very fine level everywhere. Together with the required sensor suite, the cost increase over a normal car in the same class is going to be huge. I'm not talking 20%, I'm talking at least twice as expensive.

This is why I think Ford are making exactly the right bet: taxi companies will adopt driverless cars many years, even decades, before private drivers. Because a taxi company saves a lot of money on not having any drivers (I'm guessing not far from 100-150k per year per car) on an autonomous car, they could easily afford to pay $150k for a Ford Fusion (normally $30k).

</comment></comment></comment></comment><comment><USER9> Cars have body language. Small moves are useful, such as edging towards the side of a lane to indicate a turn. Edging towards a crosswalk where pedestrians are crossing against a signal will probably be necessary in some cities. Google already does some of this. This is probably more useful than adding indicators and signs.

<comment><USER10> Yes, except regulating car "body language" is harder than regulating indicators and signs. Since it is easy to regulate indicators, I think they are inevitable.</comment></comment>


Reddit DOWN - <AUTHOR> https://imgur.com/a/YguWL <comment><USER2> This happens quite a lot when their site is under load. Most of the time you can just reload the page and it'll work fine.

</comment><comment><USER3> Seems ok to me at this time</comment>


Dday.ical is now ical.net and available under the MIT license - <AUTHOR> http://rianjs.net/2016/07/dday-ical-is-now-ical-net <comment><USER2> Congrats -- was actually visiting an old app that still used dday.ical, glad it is getting some love now.

</comment><comment><AUTHOR> With significantly better performance:

Old dday.ical test suite: ~17 seconds

Latest ical.net nuget package: 3.5 seconds</comment>


Awesome Books for Learning C/C++ - <AUTHOR> https://zeroequalsfalse.press/posts/learn-c-c/ <comment><USER2> All book links are Amazon affiliate links (zeroequalsfals-20)</comment>


Ask HN: How to prepare my first annual review? - <AUTHOR> I am a mid-level developer, in my previous companies we didn't have annual reviews so this is the first for me.
I was told that this were bonuses, and raises are "negotiated".
How can I prepare to optimize the outcome to my benefit? <comment><USER2> Keep a running list of accomplishments throughout the year. Often but not always you'll be given a chance to self-review, so include your wins in that.

If your employer publishes criteria for different levels, try to aim your evaluation to hit the responsibilities of your current and next level.

It's best to start this process as an ongoing discussion with your manager and ask them what you'll need to do to get a high mark or a promotion and track your progress against the goals you develop together.

</comment><comment><USER3> It'd be good to have a list of two or three major things that you did that _mattered_ to the company, in case you're asked.

Beyond that, the review should just be happy talk and "Keep up the good work!".

Anything negative, move on. Want a raise, move on.

</comment><comment><USER4> Raises aren't usually negotiated. They'll give you a number and you say "thanks!".</comment>


Youtube-dlc – Download videos from YouTube or other video platforms - <AUTHOR> https://github.com/blackjack4494/youtube-dlc <comment><USER2> Isn't youtube-dl already updated all the time to keep up with scraping changes? I don't understand why this would claim to be more maintained?

<comment><USER3> Seems to have been originally spawned from this discussion: "Youtube-dl is dying?" [https://github.com/ytdl-org/youtube- dl/issues/26462](https://github.com/ytdl-org/youtube-dl/issues/26462) citing many PRs are not getting merged.

Anecdote: youtube-dl still works for all the sites I'm using it for.

<comment><USER4> I use youtube-dl to download from Nico Nico Douga, which means having to restart the download every few minutes because the program doesn't send heartbeat requests. There's been a PR to fix this for a couple of years now [1], and a more recent updated PR to add encrypted video support [2], both of which are still open. Meanwhile, the corresponding PR on youtube-dlc [3] is actively being looked at.

[1] [https://github.com/ytdl-org/youtube- dl/pull/18230](https://github.com/ytdl-org/youtube-dl/pull/18230)

[2] [https://github.com/ytdl-org/youtube- dl/pull/23824](https://github.com/ytdl-org/youtube-dl/pull/23824)

[3] [https://github.com/blackjack4494/youtube- dlc/pull/55](https://github.com/blackjack4494/youtube-dlc/pull/55)

<comment><USER5> It makes sense that it's easier to give <100 PRs attention than 25k+. If the DLC project grows, you can't know if the same won't happen again.

Not saying forks should never happen - streamlink and KeepassXC are examples of great forks off the top of my mind - but you can't judge just on anecdotal stale PRs.

<comment><USER6> > It makes sense that it's easier to give <100 PRs attention than 25k+.

ydl has 700 open PRs, not 25k+. ydl hasn't had 25k+ PRs in its lifetime either, it's had 4k: GH issues and PRs are the same object, so the sequence is shared.

<comment><USER7> Doesn't change the point. All of the fork's 55 PRs except 2 and most of the issues were made by the forker himself as well.

It's not like the forker inherited all the open issues/PRs, they just dropped them all.

Getting popular and having the masses leave a bunch of issues/PRs is hard. Reviewing code is hard and takes more expertise than writing it. A lot harder than reviewing your own PRs on a motivated (for now) fork.

<comment><USER8> > It's not like the forker inherited all the open issues/PRs, they just > dropped them all.

That's wrong, most of the recent commits in the fork are merging branches from a lot of other repos. GitHub doesn't have a mechanism for inheriting a project's pull requests when you fork, but that doesn't mean they're automatically "dropped", since you can still merge the corresponding branch.

[https://github.com/blackjack4494/youtube- dlc/commits/master](https://github.com/blackjack4494/youtube- dlc/commits/master)

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> Fantastic. This is the beauty of open source. `youtube-dl` has had quite a number of breaking issues, where fully working PRs were raised and tested but not merged for weeks and with no communication.

I am glad to see `youtube-dlc`. Please, support the self updater as well (if it is not supported already). For my archival servers, I have a cron job that updates every day, I hope I can do that with youtube-dlc too.

<comment><AUTHOR> Yes that is exact one of the reasons why I created this fork. The self updater should hopefully work in a future release. To be honest I haven't dealt with that yet. But feel free to open an issue so it's on my TODO-list.

</comment></comment><comment><USER10> YouTube-dl as a name is already confusing enough because it works for so many sites and YouTube is just one of them. Why complicate it even further in your fork by renaming it to YouTube-dlc (The "c" stands for community I guess) when dlc already stands for so many other things.

<comment><USER11> I assume it's going to be hard enough for the community to know about this fork in the first place, signaling direct continuity is definitely a reason to name the fork so similarly.

Besides, Mozilla has nothing to do with Mosaic, XBMC had nothing to do with Xbox for years...

<comment><USER12> Incidentally, XBMC has since rebranded as "Kodi" a fee years back.

</comment></comment></comment><comment><USER13> As a casual end user of youtube-dl, I find that as long as I keep it up-to- date it is highly reliable and meets all my needs on every O.S.

<comment><USER14> I built a web app that is basically a wrapper around youtube-dl. By default it downloads and audio version that I can then just open with VLC on my Android phone and listen to in the background.

It's incredible how many links I can just throw at it, and things just work. Every once in a while I need to update the binary, but I can't blame that on youtube-dl.

</comment></comment><comment><USER15> Seems like this is derived from a dissatisfaction with maintenance, but all I'm seeing is that they're maintaining things just fine. Yes, there are a lot of open PRs, but there are also quite a few merged, reviewed, and closed PRs. While I do support forks in the spirit of FOSS, I disagree that YT-dl is being poorly maintained and find that it continues to work well for my needs.

To the person who started the fork, what happened when you inquired about the apparent problem via email?

<comment><AUTHOR> I wrote an email to all three core maintainers (one of them even twice) and to some of the inactive maintainers. There was no reply at all. However one reacted on github where I addressed the maintaining issues but basically just ignored it and all those who had similar concerns.

Well I am not the only one being frustrated about how things go. Especially the lack of communication. It's basically non-existent. At least the PRs that are merged are mostly either adult related or youtube. If your site is not even known to the maintainer - good luck. That will never be merged tho it may be one of the biggest sites in asia or so.

</comment></comment><comment><USER16> The repository provides no reasons that brought the need for a fork. Can someone provide additional information?

<comment><AUTHOR> This is something I was going to address but wasn't my main focus in the beginning. But I made another write-up on reddit [https://www.reddit.com/r/DataHoarder/comments/ir8ic6/youtube...](https://www.reddit.com/r/DataHoarder/comments/ir8ic6/youtubedlc_an_active_fork_of_youtubedl/)

A tiny conversation about this here as well [https://github.com/blackjack4494/youtube- dlc/issues/56#issue...](https://github.com/blackjack4494/youtube- dlc/issues/56#issuecomment-691440131)

<comment><USER17> This feels like when I review incomprehensible code on GitHub:

Mention. it. in. the. code.

Adding a comment here and on Reddit is useless if nobody else sees it.

Explaining why a fork exists should be the first thing people read, especially how "everything is a fork" on GitHub.

<comment><AUTHOR> I second that. But yes you are right it's my fault that I haven't done that already. Be assured that I will include some information regarding what you said in the readme.

</comment></comment></comment></comment><comment><USER18> I fully support this. I know it's hard for maintainers to do stuff for free and people request too much at times. But it appears that the attitude of the original maintainers of this project are actively "hostile" and they're not willing to accept the help from additional maintainers that have contributed fixes and testing. So a fork was in order, for sure. And from the look of the comments on the issues on the fork, it seems that people are happy with the continuity and effort that is being put into the fork.

Open source can be downright hostile and unpleasant at times, so I can definitely understand the frustration. All sorts of shenanigans happen constantly.

<comment><AUTHOR> Yes it's stressing and time demanding. But you are absolutely right about how the maintainers treat other people. At least it is open source. There are quite some closed-source projects that ran into troubles and basically disappeared. I am not sure how they will react since the fork gained some attention now. However it's not my intention to let them look bad in any kind or act like I am better. All I want is a working solution where contributions by the community are acknowledged. But my attempt to openly point that out (issue youtube-dl dying?) basically got ignored and closed.

</comment></comment><comment><USER19> Youtube-dl seems to be widely used behind the scenes, for example in Mpv, right? This wasn't obvious from using mpv.

<comment><USER20> Yes mpv uses youtube-dl via the builtin ytdl_hook.lua script.

[https://github.com/mpv- player/mpv/blob/master/player/lua/ytd...](https://github.com/mpv- player/mpv/blob/master/player/lua/ytdl_hook.lua)

</comment></comment><comment><USER21> I'm having issues with youtube-dl and udemy (althought the Internet says it's possible. If anyone has some tip, I'll be very grateful). Does this one work with udemy?

<comment><USER22> Try Udeler [1]. For me it has worked flawlessly since I started using it.

[1] [https://github.com/FaisalUmair/udemy-downloader- gui](https://github.com/FaisalUmair/udemy-downloader-gui)

</comment></comment><comment><USER23> The first rule of YouTube DL is you don't talk about YouTube DL

</comment><comment><USER24> The main issue I've found with youtube-dl is that "best" quality doesn't actually download the best video + audio in all cases, and might take a manual override. Not sure if youtube-dlc fixes this.

<comment><AUTHOR> Nope. Maybe there is someone with a fix which can be merged. So far most people filter formats to their needs but that's not an option for basic users I guess..

</comment></comment><comment><USER25> One of my favorite pieces of software :) . It definitely comes in handy when you really need to get that video

</comment><comment><USER26> Windows Defender flags the exe as a Trojan.

</comment><comment> 0-_-0 A GUI-based alternative is JDownloader

<comment><USER27> I was also using JDownloader mostly, but looks that this comment isn't popular. Is there something about JDownloader that I'm missing?

<comment><USER28> It's dodgy software. It got acquired and got some spyware/adware/toolbars embedded. Don't trust.

Personally, I removed the older version I had, fearing it would auto upgrade and auto install malware.

It's a download manager for shared hosting sites, mostly used for downloading movies/shows/games. It can get videos from youtube, dailymotion and a hundred sites but it's not the main purpose. Users are willing to try anything to get their latest tv show, there is too much money in bundling adware to ignore. The software was great once upon a time, then it got popular, eventually the author sold out.

<comment> 0-_-0 There are adware free installers you can find:

[https://jdownloader.org/jdownloader2](https://jdownloader.org/jdownloader2)

<comment><USER29> nice. They kind of hide this from the main download link.

</comment></comment></comment></comment></comment><comment><USER30> Does curb geoblocking?

</comment><comment><USER31> Anyone know of an existing online version of this (or another website)?

<comment><AUTHOR> there are actually quite a few that uses youtube-dl. So far I don't know if anyone uses youtube-dlc. But I already got two messages that they want to build a webapp/service using youtube-dlc.

</comment></comment><comment><USER32> One tool that does everything. Its literally backwards. It eventually always results in one tool that's constantly broken. There should be a tool for each site if there is a maintainer who actually cares about that site.

<comment><USER33> This is misapplying the unix philosophy. There would be too much duplicated functionality between different tools for different sites. It would be like having different versions of /bin/ls for different file systems.

<comment><USER33> To follow on, it's a valid point though. /bin/ls can handle different file systems because many other separate people/projects are responsible for the file system specific support (in the kernel).

Youtube-dl should be architected to allow many other people to own the site- specific support (i.e. via a plugin system, with the main "distro" of yt-dl including some popular plugins, which other people or themselves are responsible for), if it was like that then probably this fork wouldn't be necessary.

<comment><AUTHOR> Yes that is a good point. The architecture is not fully suited to the current situation. There is actually already a base structure so it would only need the plugin system which pulls the missing extractors/downloader on the fly. Tho I may see problems here when it comes to windows binaries.

Another advantage would be to easier maintain those extractors as well as all issues that arise around specific ones. So no more thousands of issues addressing different extractors in one project.</comment></comment></comment></comment>


Amazon "reviewed and approved" a blank book - <AUTHOR> https://www.youtube.com/watch?v=WxZvEK9k4s0 <comment><USER2> I mean, art is art right? That one dude can sell 4 minutes something seconds of silence as a great exploration of the meaning of silence, this seems perfectly reasonable. And it did actually have some merit as a demonstration of how silly best selling amazon book is as an accomplishment, so, checks out?

</comment><comment><USER3> I wish ACX (Audible, an Amazon property) didn't need 30 business days (6 or more weeks) for checks that must surely be mostly automated. Ridiculous.</comment>


Show HN: HNminus (HN with larger sites omitted) - <AUTHOR> https://www.hnminus.com/ <comment><AUTHOR> It's an on-going concern and/or meme over on HackerNews that the larger/corporate sites are getting more and more front-page posts. This site lists the latest news items, but filters out the larger sites.

Right now, the list contains the domains of the following organizations:

Amazon, Apple, Blogspot, Bloomberg, CNBC, CNN, Foxnews, Github, Google, Googleblog, HBR, Lever, Medium, Microsoft, Nytimes, Politico, Reuters, SEC, SKY, Substack, Theverge, Twitter, VOX, Wired, Wordpress, WSJ, Youtube.

<comment><USER2> Medium, substack, WordPress are just blogs I thought, largely by individuals. At least I use medium to blog.

What's the reason for removing those? Or maybe the posts on hn from say medium only(mostly)come from big companies?

<comment><AUTHOR> Yeah, the list isn't perfect. Just seemed to me that the e.g. medium-hosted blogs that get good traction here were always the same ones.

</comment></comment></comment><comment><USER3> Not working for me. I get this error:

This page isn't working www.hnminus.com redirected you too many times. Try clearing your cookies. ERR_TOO_MANY_REDIRECTS

</comment><comment><AUTHOR> Update: Should work again...

</comment><comment><USER4> maybe at FT? The article seemed out of place with the others</comment>


Gandhi Is Deeply Revered, but His Attitudes on Race and Sex Are Under Scrutiny - happy-go-lucky https://www.npr.org/2019/10/02/766083651/gandhi-is-deeply-revered-but-his-attitudes-on-race-and-sex-are-under-scrutiny <comment><AUTHOR> This recent trend of taking down past figures because they do not meet current criteria for acceptable behavior in society is disturbing. It's like people are trying to erase lessons from the past.

<comment><USER2> We laude past figures with our current criteria for acceptable behavior. Why not criticize?

<comment><AUTHOR> Because we laud them for their undeniable achievements.

Criticizing with current criteria of acceptable behavior is just an ad hominem.

<comment><USER3> I think it's quite healthy to be able to discuss say, a person's legacy, from different angles rather than restrict discussion to only the good parts.

<comment><USER2> Christopher Hitchen's reporting on Mother Teresa comes to mind.

</comment></comment></comment></comment></comment><comment><USER4> Fairly rubbish article. It didn't go in depth about any such allegations. Yes, Gandhi in his earlier years would have been a racist by today's standards. And he did evolve as his views on humanity evolved.

This is a far better article on his "racism" [https://m.telegraphindia.com/opinion/how-gandhi-shed-his- rac...](https://m.telegraphindia.com/opinion/how-gandhi-shed-his-racist- robe/cid/1679529)

</comment><comment><USER5> If anyone is looking to understand more about the Gandhi phenomenon, I recently read (and highly recommend) Arundhati Roy's meticulously referenced introduction to "Annihilation of Caste". She does a terrific job of identifying the motivations of Gandhi and his supporters

[https://www.amazon.com/Annihilation-Caste-Annotated-B-R- Ambe...](https://www.amazon.com/Annihilation-Caste-Annotated-B-R- Ambedkar/dp/1784783528)

</comment><comment><USER6> Kind of amusing that Gandhi was attacked from the establishment, imperialist side by Churchill, and is now under attack from the opposite side. Poor Gandhi can't win.

<comment><USER7> somehow i feel it's the same side. The "establishment" uses whatever is the trendy means. He is a human, not a saint. It's good that people point out stupid things he believed in/did/said - it only humanizes Gandhi.

<comment><USER8> Can we not be allowed to have heroes without someone mentioning that they go to the toilet the same as us?

<comment><USER7> Of course. Does all heroes need to be saints? I think not.

</comment></comment></comment></comment><comment><USER9> I don't know enough about Gandhi's views on race to comment here, but his views on sex have to be seen in the context of the Indian society at that time.

This historical revisionism is so absurd. It expects people to be isolated from their social context.

</comment><comment><USER10> Worth reading:

The Gandhi Nobody Knows

[https://www.commentarymagazine.com/articles/the-gandhi- nobod...](https://www.commentarymagazine.com/articles/the-gandhi-nobody- knows/)

</comment><comment><USER11> I highly recommend Joseph Lelyveld's book[0] to anyone interested in reading a generally unbiased biography of Gandhi.

[0] [https://en.wikipedia.org/wiki/Great_Soul:_Mahatma_Gandhi_and...](https://en.wikipedia.org/wiki/Great_Soul:_Mahatma_Gandhi_and_His_Struggle_with_India)

</comment><comment><USER12> I would actually hold him up as an example of how to move from being racist to becoming a fighter against racism.

either way his development of non-violent resistance is still invaluable

</comment><comment><USER13> Revolutionaries are ordinary human beings with real character flaws and struggles. A lot of them have been people looking for redemtion or with nothing left to lose.

</comment><comment><USER14> As with many historical figures, I feel we need to separate the person from their legacy & achievements more. Yes Gandhi was a dick, but the fight for a free India and the end of the caste system seems a good cause to me.

That doesn't mean it was 'all worth it' or 'ok, beacuse...'; it means the person and the effects they had on the world are not the same thing. A terrible person can do good & a good person can commit heinous acts.

The other way around the ridiculousness is more obvious: The nazis fixed the German economy and saved the country from collapse; so the whole genocide and war thing are no longer relevant?

</comment><comment><USER15> #CancelGandhi

<comment><USER16> Nathuram Godse likes this.</comment></comment>


Thoughts on Paul Rand - <AUTHOR> http://acg.media.mit.edu/acg/events/rand/ideamag.html <comment><USER2> One great story about Paul Rand:

        "He is one of the most professional people I've ever worked with, in
        the sense that he thought through all of the formal relationship
        between a client and a professional such as himself -- obviously very
        deep thoughts about this -- and therefore he had very clear conclusions
        about what the relationship meant to both parties and how it should be
        conducted. For example: I asked him if he would come up with 'a few
        options'. And he said 'No, I will solve your problem for you. And you
        will pay me. And you don't have to use the solution -- if you want
        options go talk to other people! -- but I'll solve your problem for you
        the best way I know how, and you use it or not, that's up to you, you're
        the client -- but you pay me.' And there was a clarity about the
        relationship that was refreshing."
          -- Steve Jobs, https://www.youtube.com/watch?v=xb8idEf-Iak

I really enjoyed his uncompromising attitude, "I'm not going to attempt to solve the problem 4 times for you; you can consult 4 people who wholeheartedly attempt to solve the problem once." The idea that art is not something to be half-assed but something to be pursued, as the Tibetans might say, "one- pointedly", is a deep lesson which I myself resonate very strongly with.

<comment><USER3> There can be problems with this approach, specifically, "The best way I know how" may not be the best way for the client. There are pros and cons with nearly every potential solution and it can be beneficial to discuss the pros and cons of more than one solution with the client before proceeding. It's arrogant to assume the best way you know how is the best way for the client.

For example, if you only know Ruby and the client is a PHP shop and you implement a solution for them in Ruby anyway, that could cause more problems than it is worth in the long run.

<comment><USER4> "It's arrogant to assume the best way you know how is the best way for the client."

That's not what he's saying. He's saying that he's going to try as hard as he can to come up with what he thinks is the best solution to the problem. It may not be the best, but it's the best he can come up with. It's better than someone who comes up with five options, then leaves it up to the client to make the wrong decision.

I just don't understand the aversion to expertise that's so common these days. Have some fucking pride in what you do well. And trust that other people know their shit, too.

<comment><USER5> It's not about pride in your work, it's about the reality of your client. Options normally intend to cover aspects and requirements of the work that the client didn't even think of. Options can allow you to create a solution better than the local maxima that you would find within the confines of your client's understanding of his needs.

<comment><USER4> I'm not arguing that providing options (done the right way) is a bad way to do it. I'm just disagreeing with someone who says the Paul Rand way of doing things is arrogant. Some people are extremely good at what they do. They have have tons of experience. They do extensive research. And in the end they're able to produce a single solution that endures for decades.

This should be celebrated.

</comment></comment></comment></comment></comment><comment><USER6> Discovering someone who is clearly a giant, in a field about which I am ignorant, is my favorite thing about Hacker News.

I anticipate good reading ahead: <http://www.paul- rand.com/foundation/thoughts/#articles>

<comment><USER7> You're in for a treat. Paul Rand's books like "Design, Form, and Chaos" are great.

Also, the book "Paul Rand" by Stephen Heller is well worth reading.

www.amazon.com/Paul-Rand-Steven-Heller/dp/0714839949

</comment></comment><comment><USER7> A wonderful man. I followed everything he wrote for many years. To this day, I do a double take when I see Congressman Rand Paul in the press, and then feel disappointed.

<comment><USER8> I actually just did the reverse, clicking on the link wondering what political context this was going to be in. Relieved to realize my mistake.

</comment></comment><comment><USER9> "At the time I was building a reputation for myself as being a gifted graphical user interface designer."

What products has John Maeda designed that we can use or have used in the past?

Writing books is great, but its the practical application that really builds reputations.

<comment><USER10> Exactly what is the point of this comment?

<comment><USER9> The point is to find out which products John Maeda has worked on?

<comment><USER4> Some of it is here: <http://www.maedastudio.com/>

People sometimes look at his work and think it's very simplistic and/or retro. Part of the art is the process it took to get there.

</comment></comment></comment></comment><comment><USER11> Steve Jobs on Paul Rand <http://youtu.be/xb8idEf-Iak>

</comment><comment><USER12> Is it just me or is everything he says _very_ abstract? Sure he's good at his craft, but all the things about everything being subjective, and design having many meanings, and that anything can be artistic... it just seems like he has very generic sort of explanations for everything.

I guess to be a good designer you have to have this attitude, but in today's business, the sort of attitude where you're like "I'll show you a single logo, and you won't have other options" won't cut it.

Design is subjective and it will always be, so not giving your client many options is just plain stupid and will make you poor before you know it.

</comment><comment><USER13> Both Maeda and Rand are legends. Ironic that poor design of the ACG site clashed so much with the content of the article.

Notes to self:

        In QA format, place the answers close to the questions they correspond to.

        Be consistent in placing initials before dialog.

</comment><comment><USER14> Thanks, it's nice to have something positive to start the day.

</comment><comment><USER15> The only effect I've seen from the word "talent" is to convince some people they'll never be good at anything. I really hate that word and the pretensious jerks who use it.

<comment><USER16> On the other hand, people who never say anything that pisses someone off probably don't accomplish much of interest.</comment></comment>


How I Learned to Stop Worrying and Love the Indie Developer Lifestyle - <AUTHOR> http://www.vitruvianinteractive.com/2012/08/how-i-learned-to-stop-worrying-and-love-the-indie-developer-lifestyle/

<comment><USER2> How are you liking the Pomodoro technique? Do you find it breaks your train of thought when in programming/design work?</comment>


Hacker news or Y Combinator news - <AUTHOR> http://www.irintech.com/x1/blogarchive.php?id=1432

<comment><USER2> I assume the author thinks it's been hacked?</comment>