3,371 karma · joined June 7, 2013
It's just that no one has a right to whine about it any more than they have a right to whine about what their retarded neighbour does in their apartment. If your retarded neighbour has a "no cursing" policies in their home, you can either not be his guest, or not swear while in his house. Either way, it's his right.
* Either this is not OK for Open Source, and it will prompt people to move away from GitHub -- because, sure, we needed the INT_MAXth reminder that relying on a private third-party for a free service is a bad idea, or
* This is something most open source projects have no problem with, and they'll just keep going, while leaving open source "radicals" like you and me to whine about it.
Github didn't just magically become this super important center for open source work. It's an important center for the open source world because a lot of people are using it.
It can stop being an important center, that's not a problem.
GitHub, because that stuff is hosted on their servers.
This is not about Open Source. This is about GitHub.
Yes, it has no place in Open Source. Whether or not it has a place on GitHub is, however, up to GitHub itself.
I won't even go into the debate of whether or not we want "the web" to be the support for the p2p network of the future.
> Peer-to-peer networking is the web's big chance to weaken these huge personal data-scarfing companies.
On the other hand, this particular problem is another ace in the hands of those huge personal data-scarfing companies.
The bug wasn't easy to reproduce: all we saw was that, every once in a while, when queried over $wirelessprotocol, the system would begin answering with crap values (it was supposed to measure some physical quantities, and crap values = meaningless, as in negative active power and hundreds of kV on a mains line), and if you kept on pounding it, it would eventually start "acting funny" -- randomly toggling LEDs and handling commands that were never given in the first place -- before eventually crashing. The problem was very far removed from its core; at first, all I was debugging was "system begins answering with thrashed values after a while".
I was two days into it when a more experienced colleague (I was a junior developer at the time) stepped in to help me. We began suspecting a process was smashing another process' stack when, after removing module after module, the bug was still not clearly reproducible by a particular sequence of steps, but the behaviour it triggered became fairly uniform.
We decided a good way to test this assumption was to modify the context switching routine to dump the current top of the stack over a serial line; unfortunately, that introduced additional delays that prevented the bug from occurring, so it didn't help us. We figured, however, that the handler for $wirelessprotocol's query was in the process that smashed the other process' stack, so we modified that handler to send the top of the stack over wireless (this is where not having a MMU helped, ironically :-) ). The base of the other process' stack could be obtained by just tracing context switches.
Sure enough, if enough commands piled up, that process (which was running some pretty intensive stuff, including floating point operations, on a very resource-constrained system) would smash into the next one's stack, messing up its context's registers.
In retrospect, this wasn't necessarily a difficult bug per se: the concept is well-understood and the theory behind it is trivial. The biggest problem is that it challenges the fundamental way we debug programs: when the CPU starts doing crap, we assume we've instructed it to do crap, and it's (correctly!) following consistently bad instructions. In this case, the CPU ended up following random instructions.
It's extremely unpleasant to program something with just a few KB of RAM and not know exactly what memory goes where. However, a lot of IoT-related gadgets just gather a buffer of data from an ADC or something, average it and send it over some wireless protocol every 1 minute. The allocation pattern is predictable enough that you don't run into strange cornercases.
I see no reason why anyone would want to use this commercially, but for the enthusiast market (and maybe even for some rapid prototyping) this looks interesting enough.
There are plenty of open source projects that don't have those problems, and it's not like the core team is interested in making theming anything else but a clunky hack so that everyone uses Adwaita...
Meantime, clunky, terrible C modules written back when GTK 2.10 was a thing work just fine on 2.99.
That is not simplification. Simplification is when things get easier, not when they get harder.
It's not a problem of asshole theme creators, it's a software quality problem, and everyone in the Gnome Project's bubble is dancing around it and pretending it's good for the users.
Yeah, things are pretty terrible for theme developers. It's like GTK 3 development was steered by Steve Ballmer.
Here's a phrase I never thought I'd heard :-).
I don't really like Greybird, but Bluebird is nice. Now if only there were a (non-hacky) way to consistently disable the frickin' client-side decorations, I could almost use Gnome 3.
Meanwhile I can use a gtk2 theme from 2006 without any problems (and it doesn't make my desktop look like a kid's HD drawing). As long as I can do that, I have very little motivation to put up with gtk3's crap.
Unfortunately, GTK3 (and, for that matter, much of the modern Linux user-side development ecosystem) is increasingly hostile. Frequent, often unwarranted changes (implemented through code of dubious quality), crap documentation (when it exists). It feels increasingly like developing for (and using) OS X or Windows, just without the good parts that we all secretly covet, like Visual Studio and Interface Builder and the MSDN.
There is literally no gtk3 theme that, simultaneously:
- Is not flat and generally grey or dark blue. It's as if everyone Apple fanboy who was rejected by Apple's UX department is now making GTK themes.
- Is not frickin' ginormous. I know multitasking is frowned upon now that we have tablets, but I have a bloody 27" screen, I want more than one window on it at the same time!
- Doesn't break in the next release.
At first (as in, 2011 or so) I just blamed it on gtk3 being new and all that. But we're four years from that. This disaster seems to be intentional.
I guess the parameters were chosen by some curve fitting procedure to make sure it gives 1.0 for Earth, 0.7-ish for Mars, 0.2 for Uranus and Neptune which are basically the most "not like the others" in our solar system and so on. It's not really a measure of habitability or anything like that. "Equalizing the parameters' meanings" presumably has to do with mapping their relative variation (and the effects of that variation over various observable parameters) over a smaller range.
It's also a parameter that is quick to compute starting from radius and mass, which are often the first things you know about an exoplanet due to the way they're found.
It does not prevent flaws from being discovered. It slows down the discovery of some flaws, but this also means that the people who discover them can exploit them for years if they're malicious, because flaws are equally hard to discover as part of a well-intentioned an audit as they are as part of an evil plan.
It also allows flaws that have been intentionally introduced to be hidden from sight for a long time -- and allows companies who do so to escape untarnished; since the commit logs are not available (and the source code is often only available in disassembled form), they can always claim it's a bug, not a feature.
It does not provide additional safety, it provides only an illusion of safety -- while making actual safety a lot harder to implement, for everyone.
Shit, this is the most accurate description of modern software that I've seen so far.
Looks like he'll have a ton of fun after this proof of concept...
Being able to track users pays for most of the crap content on the Internet -- much of which is there to support tracking users, not the other way 'round.
It can go the way of the dodo as far as I'm concerned.
It's very useful because uou don't need a C FFI to access OS functionality, graphics libraries and the like. Any language whose implementation allows you to read and write files can already do a lot of things (including GUIs, IPC and so on). There are very few wheels to reinvent. Furthermore, any program that wants to integrate with yours also needs to do nothing other than open, read, write and close files. You can expose any function or configuration variable of your programs through files -- and all you need to do for that is to read and write byte or UTF-8 streams.
Things go a bit further than just "IPC is done by reading and writing files". It's only one of the principles behind Plan 9's approach to files and filesystems.
The reasons you listed are all nice, but most of the people who do it are doing it for reasons like #3 above. You risk ending up in the same pot as they do.
But no, the liberality of changes like this one is what separates fluff science from actual science. There is a vast chasm of difference between stuff like this one and, say, aether theories.
People who came up with aether theories were the brightest of their ages. That is really the best they could come up with -- and the reason why it took us so long to disprove aether-based theories was that they had some bloody solid science behind them -- at least back in those ages. People were unable to come up with anything better because, for a very long time, they lacked both theoretical and experimental tools with which to conclusively prove (or disprove) their hypotheses.
We needed significant developments in mathematics, fluid mechanics and optics in order to test these theories, and we needed special relativity to come up with something better.
Whereas claims like the one this article refutes need only a correct application of double-blind testing and not falling into well-known (at least to statisticians) traps in order to be tested.
The fact that we have 180 degree spins in understanding such matters every six months is not a testament to how modern science cares only about truth. It's a testament of how important it is to publish papers.