1. 10

    Huh. I didn’t realize Java is going the Firefox/Chrome model of releases.

    Overall if you have good unit tests in your software, this shouldn’t be a big deal. Update to Java x, run sbt test or gradel test or whatever, update your test-running CI container to java x, let it run there, update your production Dockerfiles to java x, deploy and check your integration tests.

    Oh you don’t have a lot of unit tests? .. wait, you don’t have any unit tests?! … Well it will probably just work .. have fun!

    1. 5

      I don’t think it’s that straightforward for everyone. It’s hard to measure the performance impact of changes to the JVM, as well as potential obscure bugs, from just unit testing. I think most big deployments and libraries will stick to LTS releases as a result, which isn’t that bad given it’s about the old pace of updates anyway.

      1. 6

        To support this point, for a specific example of a more obscure change in a JDK that caused programs to fail, see http://www.oracle.com/technetwork/java/javase/8u20-relnotes-2257729.html - it’s a long list but note this

        Collection.sort defers now defers to List.sort

        Previously Collection.sort copied the elements of the list to sort into an array, sorted that array, then updated list, in place, with those elements in the array, and the default method List.sort deferred to Collection.sort. This was a non-optimal arrangement.

        The consequence of changing to sorting in place (the optimal arrangement), is that programs which sorted in one thread and concurrently iterated in another are more likely to crash with this JVM than previously. Might be hard to test for that even in an integration test!

        Unit testing is dangerous because it gives inexperienced coders false confidence that changes are good.

      2. 2

        Huh. I didn’t realize Java is going the Firefox/Chrome model of releases.

        Well, at least Firefox has train releases + a long term release. Java doesn’t seem to have that.

        1. 11

          Didn’t the article mention Java 8 being a long term release?

          1. 13

            Yes, Java has LTS releases, currently 8 and then 11. http://www.oracle.com/technetwork/java/eol-135779.html

            1. 4

              Ah, sorry, I had missed the precise scheme. I thought 8 was LTS, as it was the last “old-fashioned” release.

              1. 1

                Note that Red Hat will support OpenJDK 8 after Oracle discontinues their support as they have with previous releases in the past; they commit to it up to October 2020: https://access.redhat.com/articles/1299013

          1. 10

            Interesting perspective, although the author seems to be dismissive of other people’s experiences. Having had a supportive environment from day 1, she then makes an appeal for people to stop being supportive to others who may not have had the same environment? And this based on the claim that some attempts at support are harmful, but how that’s harmful is not explained.

            Also, “it’s not a problem in South India so it shouldn’t be a problem elsewhere” is not a very compelling argument. It seems he author has had a largely positive experience free of discrimination, and doesn’t understand people who have experienced bias. At the very end is an appeal to some kind of gender-blindness. Unfortunately that only works in environments that are already free of bias. In a biased environment, being blind to differences will lead to ignoring the existing bias.

            Perhaps I would understand the author better if the points were more fleshed out, but as it is there are glaring gaps in this analysis.

            1. 8

              Maybe walking up to someone and saying “Oh I really wanted to listen in, because you are the only woman here” is sexist no matter what culture you’re from.

              1. 2

                I can definitely appreciate the argument that anti-intellectualism in America breeds the kind of high-school cheerleader/quarterback gender stereotypes that come back to bite all adults in their professional lives. (edit: grammar)

                1. 1

                  I read this as another “here is my personal experience” post. It’s a nice reminder that as more effort is made to bring under-represented groups into the field we also need to be careful not to set lower expectations on those individuals as engineers or treat them differently than we would any other engineer. Things can be done with events and organizations in terms of pipeline and making sure groups are represented, but those individuals probably don’t want to be picked to speak or have an audience simply because of the color of their skin or their gender.

                  It’s a difficult balance to achieve, but that doesn’t make it any less worthwhile. This is a problem about people, so the only way to move forward is by understanding the people affected (and everyone else in the equation for that matter) to the furthest extent possible.

                  Edit: typo

                1. 13

                  Finally! This article is about desktop, but OpenSSH is coming to all of Windows, including IoT Core where I work. I’ve been championing the upgrade for years now. Compared to our old SSH implementation, OpenSSH is more stable, supports newer encryption standards, and can send files over sftp.

                  Very excited to see this land. Kudos to the Powershell team for putting in most of the porting work, and of course to OpenBSD for developing OpenSSH in the first place.

                  1. 5

                    Last time I tried anything microsofty in that sort of realm I started throwing things at the screen. (Can’t remember what it was telnet maybe? Their built in “term” thing?)

                    It obstinately refused to resize, and got the wrapping horribly wrong and clearly had been written by somebody who had an ideological hatred of the command line.

                    Downloaded putty and…. Oh My! It all just worked and worked correctly!

                    So merely having a ssh client will not cause me to shift from putty, having a ssh client that works properly and slickly might convince me.

                    1. 7

                      Well, for IoT Core I’m more excited about the OpenSSH server than the client. I’ve been connecting to it with PuTTY.

                      That said, the Windows command-line has vastly improved from 8.1 to 10. The biggest improvement is that text reflows as you resize the window. Copy/paste was also improved.

                      Telnet and SSH are just transports. I bet your frustration was due to the old Windows conhost.exe being a terrible terminal.

                      1. 2

                        When you connect to IoT Core via SSH what shell are you dropped in to?

                        1. 1

                          Just plain old CMD. Usually Powershell is present too, but OEMs can choose to build an image without Powershell.

                          If you want to connect directly to a Powershell session, it has its own remote shell feature, enter-pssession.

                          1. 1

                            There’s a more detailed answer by Joey Aiello in the HN thread.

                        2. 3

                          Their built in “term” thing?

                          AFAIK some projects such as the Git command line utilities for Windows have for years now shipped with a TTY which is based on PuTTY’s TTY (just not using any of the SSH code or anything) and it’s much nicer.

                          1. 2

                            ConEmu is another tool that will improve your commandline life on Windows. As for Microsoft products, there are many people who swear by Powershell!

                            1. 2

                              Powershell is a nice shell, but it lives inside the same terminal (conhost.exe) that CMD does.

                              1. 1

                                Cmder is a great shell built on top of ConEmu that even has support for the quake-style appear/disappear animation.

                            2. 2

                              Try cmder for a decent terminal. The git version comes with a bunch of tools (including ssh, ls, etc) and provides a terminal experience on Windows that won’t make you throw things at the screen (hopefully!).

                            3. 1

                              That’s pretty impressive. OpenSSH makes a lot of POSIX assumptions about things like PTYs and fork.

                            1. 52

                              Just as important as Firefox being a distinct product is that it uses its own rendering engine. There are only three major browser rendering engines: Trident/WhateverTheyCallTheEdgeEngine (Microsoft), WebKit/Blink (Chrome, Chromium, Safari, Opera, most one-off browsers like Web in GNOME, WebPositive on Haiku, etc), and Gecko/Servo (Firefox).

                              It’s not enough to have a million different browsers if they’re all using the same rendering engine. We need variety in implementations on that front too…

                              1. 11

                                Very good point; I spoke of this issue with a colleague a couple of weeks ago, and I asked: “what happens if Microsoft decides to get out of the web browser market and Mozilla collapses?” Then, for all intents and purposes, Google would literally control the web. Now, I don’t know how likely it is that Microsoft would stop its Edge effort or that Mozilla would go under—probably not very likely in the short term. Still, it seems to me that the complexity of the modern web (HTML 5, CSS, JavaScript with a state-of-the-art JIT compiler, DRM, etc.) makes it unlikely that we’ll see another web engine—much less a free web engine—that can compete with the current trio, and practically impossible to see enough new web engines to actually create competition.

                                1. 7

                                  Agreed, the only way you web standards can realistically be called standards is if there’s a variety of implementations, and a variety of vendors with enough influence to shape those standards.

                                  1. 5

                                    EdgeHTML. No really, that’s the name of the rendering engine. Microsoft continues to amaze with their horrendous naming :)

                                    1. 9

                                      Could be worse. Could be EdgeTML.

                                      1. 1

                                        Older versions of IE could be called “FML”, which is exactly how you feel when tracking those IE only bugs.

                                  1. 2

                                    silly question. what does this give you? all the actions in the gifs are already fully realized by the time that something happens. By the time it shows you something visual the action is fully completed.

                                    1. 3

                                      I haven’t used this in particular, but the feature in general is super handy for yanking for instance. You’ll immediately know if you did 3yy or if you accidentally did 34398yy. Even for deleting, it gives you a quick visual hint that gives you an intuitive feel for how much you deleted.

                                      1. 1

                                        I will have to try it out. that could actually be very useful just for yanking.