Here’s an analogy: I put a red card in one envelope, and a blue card in a different envelope. I send one envelope to Alice (but I don’t say which one) and one to Bob. Alice and Bob could be on opposite sides of the planet. When Alice opens her envelope, she knows which colour she has, but she also instantly knows which colour Bob has -- without communication with Bob. Bob might not even have opened his envelope yet. There is no faster than light communication or magic going on.
From a practical point of view, the baby universe theory is no different than the “information is lost” theory. Although it might be satisfying to think that information is not “really lost”, there is no way in which we -- in our universe -- would be able to tell the difference. The distinction is philosophical, not physical.
There is a different theory not mentioned prominently on that page that in my opinion provides the most useful resolution: Black Hole Complementarity. In a sense it is not a satisfying resolution, because it basically states “the paradox is not a paradox”. It is very counter-intuitive, but that is a problem with intuition. The wave-particle duality of light, which is nowadays not really considered a paradox any more although it was ~110 years ago, is a good analogy. As always happens with questions like these, in the end the answer is “that is a nonsensical question to ask”.
I care. I know a lot of people (here in western Europe) who are on a 1 GiB/month data plan. 2.2 MiB per page means that you can visit 15 pages per day. Better think twice before you click a link.
Besides, 2.2 MiB for a page is pure bloat. Unless the page is heavy on images, you can usually fit all of the content that matters in a tenth of the size. In 300 KiB you can fit a 500-word article with 160 KiB picture, a few webfonts, headers/footers and stylesheets. Using a factor ten more is just ridiculous.
Off topic: I really like the minimalistic approach to your blog. In Minion (my default serif font) it looks better and more readable than the majority of webpages out there.
I’m using Gnome and it works surprisingly well. All browsers and Gnome apps look great out of the box (apart from blurry icons occasionally). Qt or WxWidgets-based apps have clipped text and small checkboxes etc; they are usable but it is not pleasant. I use only two of those apps, and I rarely use anything more than a terminal, a browser and a music player, so 90% of the time everything looks great.
I didn’t have to configure anything; Gnome automatically set the scaling factor to 2 and everything worked out of the box, browsers too.
I’ve been running Arch Linux on the non-developer edition XPS 15, and I’ve experienced very little problems. Occasionally the touchpad does not work, and sometimes headphone audio is silent. Other than that, everything works like a charm, even the Broadcom WiFi adapter.
Same here. Even the fan noise is quite acceptable in comparison with my old HP pavilion. The XPS sounds like a light breeze, whereas the HP sounded like a vacuum cleaner.
I am running Arch on the non-developer edition XPS 15 (late 2015 edition). Initially the touchpad was occasionally not recognised, then having a touchscreen is really useful :) Other than that, I got it because there was no HiDPi screen without touch. And HiDPi is definitely worth it.
It is not rare at all. The features I am talking about are small. In a large project code review can take several days if the reviewers are busy, even for a small change, so it is essential to work on multiple things concurrently.
I do prefer rebases over merges because they lead to a cleaner history, but when you have a set of features in separate branches that are all dependent, rebasing becomes a pain. I like to have one local branch per CL/pull request. If I have a branch feature1 with commits on top of master, then feature2 with commits on top of feature1, feature3 with commits on top of feature1, and feature4 that merges feature2 and feature3 and then has commits on top of that, that thing is a pain to rebase. (I know about --preserve-merges, but it does not always do the right thing.) The main problem here is that the end result should be feature4 rebased on top of master, but the other branches should also be updated to point to the new commits.
It is a rogue CA that does not revoke compromised certificates even when presented with a proof of such compromise, unless the customer pays a revocation fee. If the customer does not pay the fee, StartCom provides trust (which is what CAs do; they say “we guarantee to the best of our knowledge that this server is the server it claims to be”) for websites which are known (by StartCom) to be compromised, defeating the purpose of having CAs in the first place.
After Heartbleed many certificates had to be revoked, and one person who did not want to pay the revocation fee had the idea of publishing his private key so that the certificate was compromised without doubt. StartCom refused to revoke it, and the page that explained the story has since disappeared mysteriously. The HN thread about it is here: https://news.ycombinator.com/item?id=7577290
Microsoft has been doing a similar thing with [.NET Native](https://msdn.microsoft.com/en-us/vstudio/dotnetnative.aspx) for a while now, though MSIL is much higher level than LLVM IR. With .NET Native, you _can_ submit your app once an run on ARM and x86, 32-bit or 64-bit.
When I tried to write my first program in Rust, I failed miserably. With a strong background in C# as well, I tried to write a function that returns an interface (a trait in Rust), which was apparently not something you do in Rust. (With an unboxed trait that is, but there are some proposals to add support for this.) The compiler diagnostics have improved tremendously since then. I don’t think the syntax is that much different. You use `let` instead of `var` and types go after the argument instead of before.
After some time I got the hang of it, and I am sure you can do it too. It is surprising how much I _didn’t_ miss the Visual Studio debugger. The VS debugger is amazing and in my opinion there is no debugger that comes close, but Rust has a much higher “if it compiles it works”-factor than C#. There are still times where I wish for a debugger like that of Visual Studio, but this is relatively rare. Instead of spending time debugging, you spend your time staring at compiler errors in denial until you eventually accept that the compiler is right and your code is wrong.
I think it is a mistake to license anything under a “or later version” license. If you do that, you licence your code under a license that you have never read, so how can you know that it serves your intentions? You are blindly licensing code under a licence that has yet to be written!
In the GPL case, the Free Software Foundation states that “The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.” (Section 14 of the GPLv3.) Now of course I don’t expect the FSF to publish something radically different, but they _could_ do so. Even if you trust the FSF now, are you sure you trust the FSF twenty years from now?
A while back, somebody got Cargo running on an unsupported platform, but bootstrapping was a major problem. The compiler had to bootstrap newer versions of itself tens of times, and that was only for a few weeks of breaking changes …
This is very interesting, I did not know that the theory of differential geometry can be discretised so nicely. I admire how they build from nothing but elementary linear algebra and calculus, and end up at quite advanced topics like De Rham cohomology, of which I never imagined it had any application in computer science at all. That said, definitions are mathematically very informal, and it skips handwavily over topics like topology. But these details are arguably less important for doing computations.
I still use Qwerty on my phone, because I always type with two fingers. Does Colemak have any real advantage there? The muscle memory for two-finger touchscreen typing is different from that for ten-finger blind typing, so that is not an issue for me.
A nice thing about Colemak is that is was designed to be somewhat compatible with Qwerty. Specifically, Z, X, C and V are in the same place, so those still work in shortcuts as well. For other shortcuts, I learnt them quickly enough, but it can sometimes be a bit more difficult when you are looking at the keyboard, it is confusing if the characters do not match. For example Ctrl+S is now Ctrl+D (the D on the Qwerty keyboard), and Ctrl+F is now Ctrl+E on Qwerty.
Vulnerabilities can still be discovered in the compiled code, but they are easier to discover in the source code. Simply running a static analyser on the code will probably point out numerous possible vulnerabilities already.