1,751 karma · joined February 7, 2011
Lead developer, LensKit recommender toolkit.
Ph.D, University of Minnesota.
It's a great move for security, as a well-configured SELinux deploy can provide much finer-grained access control than standard Unix permissions (although, given that Android uses the Unix user & permission model a bit abnormally, I don't know if it will bring benefit over that or not).
OTOH, for locked devices, it gives vendors more tools to prevent rooting.
“There is more to OOP, Horatio, than is dreamt of in your philosophy.”
Haskell, and to a bit of a lesser extent Scala, have a lot of their complexity arise from combinatorial explosion of interactions of simple features.
Also, relentless abstraction (particularly in Haskell). Yes, you can think of lots of things as arrows. But does it necessarily make it easier to write a particular problem to do so, or does the cognitive load required to maintain the abstraction <-> problem mapping outweigh the benefit of casting it as the abstraction?
Then there's the library, where yes, you see a hairy mess like that. Very difficult to read and understand, but it is a powerful combination of relatively simple and orthogonal concepts. Which doesn't necessarily mitigate the complexity.
FWIW, you rarely need to write code with types that complex, and there is talk in the Scala community of how to simplify the presentation of methods with complex types in the documentation. But that doesn't make it more approachable today.
If your primary goal is Java sans pain, then Xtend, Kotlin, or perhaps Groovy should fit reasonably well and have a gentle-ish learning curve. Both Xtend and Kotlin seem to be designed particularly for this niche, with a dash of Scala-is-too-complex mixed in to their marketing materials.
If you're wanting an interesting new language that goes beyond traditional Java thought patterns, however, Scala (or Clojure) seems like a much better option. Both Scala's type system and its deep and insightful fusion of OO and functional thought make it a far more interesting language to think about and work with.
IMO, YMMV, etc. of course.
When dealing with situations like this, we have a couple options. We can accept walled gardens and hope that the gardeners are made of stern stuff and love freedom.
Or we can reject walled gardens and demand ecosystems in which this kind of blocking can't happen, not just won't.
I prefer worlds where it can't. Trusting that it won't is setting up for disappointment IMO.
And it isn't just a bad programmer thing. PHP's bad habits encourage novice (or uncaring) programmers to pick up bad habits, especially if they are not particularly inclined to study how to use their tools well. Given a language where the obvious thing to do is right vs. one where it's wrong (see PHP < 5 database queries - no prepared statements, mysql_escape_string) vs. an environment where the obvious thing, encouraged by the introductory tutorials, is right, I think that the more correct/safer language will encourage programmers to write better code.
But reading the comments here and on Jeff's post, it is humbling to remember that people are using it, every day, to build more and better software than I ever have. I may have a visceral dislike for the language, but good programmers are able to do good work even with a double-clawed hammer.
Schneier on the attack: http://www.wired.com/politics/security/commentary/securityma...
That which does not exist cannot be abused. I'd much prefer a world where authorities cannot disable software, not a world where they merely don't.
That's not fallacious slippery slope reasoning. It's an argument for structural and technical rather than merely moral, ethical, or legal impediments to abuse of authority.
IANAL, so perhaps this is still opening up for lots of liability, but I'd much prefer Apple say "You want it taken down? Ask the judge for a preliminary injunction. Until then, go away."
Preliminary injunctions are the due process mechanism for causing the action to cease while it's litigated rather than continue. They, not Apple's whim/decision/liability-aversion, should be how this kind of thing happens IMO.
It's a lot harder to detect, and probably harder yet to prove, when they're engaging in illicit tracking.
In the AOL case, while IP addresses were stripped, users were identified with unique keys so you could see individual users' search sequences. That is not the case here.
Any timeframe on finishing RFC coverage? RFC 3514 isn't prettyfied yet.
The Presentation Mode shell extension fixes this - adds an option to the drop-down menu on the power meter to turn on presentation mode, disabling screen blanking & locking.
> 4. About half of the GNOME configuration has moved to gconf to dconf, but there's no rhyme or reason as to which half. When I discovered the new settings applet, I tried to change stuff with gconf/dconf, except I have no idea how to figure out which applications use what settings storage backend.
I think finishing this migration is a work-in-progress.
Don't have immediate solutions for the rest of your gripes. Gnome 3 seems to be a love-it-or-hate-it thing; I find it to be great (modulo a few bugs and quirks, but it isn't everyone's cup of tea.
You are correct, the non-redistributability of many O'Reilly books is what they would they would object to, not cost. And not all O'Reilly books are non-redistributable - they have a number of books under open licenses.
If Tor had gotten their DRM-free book thing in order by now, rather than waiting until July or so, I'd probably also be buying a Tor e-book today.
Add to that the multi-desktop, multi-monitor aspects (although detachable docking panes can help a lot with that).
Not perfect, but it does make a pretty big disincentive to being caught issuing fraudulent takedown notices.
I think, early on, the Mercurial community favored cloning as the means of creating feature branches, while Git used named branches to do so. But in many cases you want to be able to switch lines of development in a single repository (especially when using a workspace-based IDE like Eclipse), so the Git model becomes a win.
But the other aspects of the policy set up working practices and operating procedures to minimize visible, organizational knowledge of patents. It seems to me that they're actively trying to avoid knowing about patents so that they don't have to invoke the no-distribute clause and, if they do get sued, can hopefully keep away willful infringement claims. I think that's in general been their goal, but the new policy provides a clear and consistent mechanism for handling the issue.
In my opinion, unnecessary surprise as a result of historical implementation artifacts is a design bug.
Yep, need to learn about it. Yep, you can, and write good JavaScript. But that doesn't mean the design is good.
However, they cannot change var's semantics and retain backwards compatibility. So they did the next best thing: introduce a new keyword for variables that work like they should. That keyword is 'let'.
As far as I am concerned, if your JS is known to execute in an environment with 'let', 'var' might as well not exist. Too many subtle errors — “what do you mean, braces don't actually delimit scope?”
I am concerned, however, that it uses “peer reviewed journals” as the standard for mandating publication. Computer science does most of its ongoing publication in conferences, not journals; also, specifically naming “journals” seems to me to invite name games, unless journal is defined sufficiently broadly in the bill's text.
I would prefer to see the requirements kick in when research is published in any peer-reviewed publication.
But still, this bill is a great step forward, and things like this are details that can hopefully be worked out.