Monday Note

"The social network is built on values that are so shady that it can’t be trusted to address fake news issues. Some countries already suffer from it."
—Frederic Filloux

Normally I read Monday Note for the inimitable Jean-Louis Gassée's posts, like 50 Years in Tech, Part 1 and Part 2 largely about HP; as a former HP-er during Carly's disastrous reign of terror, it's fascinating to read about an HP that wasn't on fire and screaming.

But this time Frederic, the news guy, is actually posting something of interest, and you should read those Fake News posts.

Microsoft Acquires Github

On the one hand, Microsoft under Satya Nadella are… still evil, but less annoying about it than they were under Steve "Eats Kittens For Breakfast" Ballmer and Bill "Never Met Someone He Didn't Fuck Over" Gates. Satya just wants to rule the cloud and Office licensing, and seems somewhat aware that Windows alone is not suitable for that task, and that Microsoft's own programmers are mediocre at best.

On the other hand, watching FOSS nerds freak out at this has been amusing. Some will manage to move to self-hosting their own git servers again as people used to before Github centralized "decentralized version control". Remember how we all had our own Subversion and Mercurial servers (and Bitbucket if you wanted C-DVCS)? Good times are back. A lot of people are going to learn very hard lessons about backups, redundancy, and system administration.

On the gripping hand, Github owns Atom, and Microsoft also has VS Code based on Electron; are they going to fuck up my IDE of choice or even "integrate" it into VS Code? Ugh. VS Code is too much like coding in Eclipse for my taste, no fun.

Update 2018-06-04 from Atom slack:

lee-dohm: I just want to let everyone know that we're here, we're ok, and that as soon as I have any news to share that I'll bring it here to all of you :grinning:
Just to let everyone know, I've been given assurances that Atom remains key to GitHub. Our product roadmap is
set and the team will continue all of their work.

All Your Photos Are Belong to Us

If your photos are hosted on someone else's servers, it's not any better that it's a novelty fart/emoji app maker than the rotten corpse of Yahoo!, or Verizon which is only less-evil than the Evil Empire of AT&T by virtue of not having an actual Death Star as their logo.

You should have your photos on your computers, backed up as far away from your computer as possible, with the ones you want public shared on a site you control.

Java EE Abandonware

From the latest Nov/Dec 2017 Java Magazine (viewing of their terrible reader, or downloading a PDF with no bookmarks, only works in Chrome):

In an unexpected and widely applauded move, Oracle announced just before the JavaOne conference this year that it would be moving development of Java EE to the open source community.
This action, efectively unthinkable a few years ago, is being done by giving control of development technologies and of project governance to the Eclipse Foundation. Included in this transition are the full source code of the diferent reference implementations and of the many test suites that ensure conformance and compliance with Java EE speciication requirements.
This migration shows emphatically that Oracle is giving the technology to the community. That is, this move should not be confused with the occasional dumping of technologies to open source foundations by companies no longer interested in supporting them—a phenomenon known as “abandon-ware.”

Spin, spin, spin the Oracle death spiral! But given the state of J2EE, I can't really mourn its impending demise.

I only rarely have to touch Java anymore, and the JavaFX front-end stuff is pretty weird from my old AWT/early Swing perspective, but my old Java games still work, and all the server side and image processing, which are all I use it for now, had been nice and stable.

But look at this nonsense for CDI (Context and Dependency Injection) 2.0 replacing JSF/Spring/Hibernate (which weren't lovely to start with), they want you to use:

public class CdiExtension implements Extension {
    public void afterBean(@Observes AfterBeanDiscovery afterBeanDiscovery) {
            .id("Created by " + CdiExtension.class)
            .createWith(e -> new MyBeanImpl("Hi!"));

The actual work is new MyBeanImpl("Hi!"), which you could do in one line in a startup script/class, without this giant framework. At least with all the XML nonsense in Spring or JSF, you could change it at runtime instead of recompiling the project.