domingo, 30 de setembro de 2018

JAVA: Java 11 feature list

https://www.infoq.com/news/2018/09/java11-released

New things (and deprecated things), quoting from above:
"The feature list for the new version has only evolved modestly since InfoQ reported on this earlier in the year, and the major new features in Java 11 are:

Nest-based access controls (aka "Nestmates"): revisits the implementation of inner classes and eliminates the need for compilers to insert bridge methods.

Dynamic class-file constants (aka "condy"): reduces the cost and disruption of creating new forms of materializable class-file constants and opens the door to new performance and platform approaches.

ZGC (Experimental): a brand-new garbage collector designed for sub-10ms pause times (even on large heaps) with an aim of no more than a 15% performance penalty.

Flight Recorder: low overhead data collection framework for troubleshooting Java applications and the HotSpot JVM, previously a commercial feature, now open-sourced.

New standard HTTP library: A new module java.net.http that standardizes the incubating API and allows flow-based HTTP/1.1 and HTTP/2 support

TLS 1.3: Implement the recently standardized new version of Transport Layer Security

Local-Variable Syntax for Lambda Parameters: Updating the lambda syntax to use the var type-inferencing introduced in Java 10.

The new release also removes some older features to try to streamline the core Java product:

Java EE and CORBA Modules: Require applications to explicitly depend upon EE and CORBA modules if they require them.

Web Start: This feature has been removed with no clear replacement.

Applets: These have been heavily deprecated for some time and are finally removed.

JavaFX: The FX libraries have moved to the OpenJFX project and are removed from the core.

In particular, the EE modules contain the support for JAXB and SOAP - both components that are still in relatively widespread use in many enterprises. Development teams that upgrade to the new version should check carefully whether they will need to modify their build scripts to take these changes into account."


JAVA: Using Java 11 In Production - Things To Know


Java 11 is out. What's new? You pay. Well, this is not all that's new, but you do get to pay if you the Oracle JDK in production: 

Quoting:

"The new six-monthly release cadence and Oracle’s changes in licensing and support model mean that any organization that deploys a Java application should take this opportunity to look at:

Where they get their JDK from (e.g. Azul, IBM, Oracle, Red Hat, or other OpenJDK build)

Which versions of Java they use in production

Whether or not they expect to get updates (e.g. patches and security fixes) for these versions of Java

Which versions they want to use in the future

How frequently they want to update their version of Java (i.e. to the next major version)

What sort of support (i.e. triage and bug reports) they expect for their version

Changes to the Oracle JDK

In the past, many of us simply downloaded Oracle’s JDK and used this in development, in testing, and in production.  From Java 11, Oracle has changed the license of their JDK, so instead of having a single JDK build which can be used either commercially (i.e. with paid support) or for free (which many of us were doing), they now have two different JDK builds:

Oracle’s JDK (commercial) – you can use this in development and testing for free, but if you use it in production you have to pay for it

Oracle’s OpenJDK (open source) – you can use this for free in any environment, like any open source library

Note that since Java 11, Oracle’s commercial JDK and Oracle’s OpenJDK builds are functionally the same, so we should be able to run our applications on either without having to make any changes or losing any features."

And the components of the JDK are:


PS: Kudos to N. Raimundo for pointing this out.



sexta-feira, 21 de setembro de 2018

SPACE: TESS architecture and SW image processing made

Due to bandwidth limitations, heavy processing of the high res images taken is made at space and only relevant results are sent back. Here is an interesting description of the new NASA's TESS mission (now that the Kepler mission is being phased out due to lack of fuel) that has the goal of finding new exoplanets:
https://arstechnica.com/science/2018/09/get-ready-for-a-flood-of-new-exoplanets-tess-has-already-spotted-two/

Quoting:
"TESS images a single area for roughly a month before moving on to the next. Over the course of a year, this will allow it to capture most of the sky in a single hemisphere; it will switch to the other hemisphere for its second year of observations. Should the hardware still be operational at the two-year mark, it will have imaged most of the sky, and a similar cycle will likely start again.

This cadence creates some trade offs. If a planet's orbit is such that it doesn't pass in front of its star during the month TESS happens to be pointing that way, we'll miss it (unless it's part of the small overlap between separate areas). This will bias us toward finding planets with short orbital periods, where a transit is guaranteed to happen whenever TESS gets around to pointing at it. Short enough orbits mean we can observe multiple transits during that month, confirming the planet's existence without the need for follow-on observations."


sexta-feira, 7 de setembro de 2018

REUSE: Cryptographic library from Google

Quoting:
"Tink is a multi-language, cross-platform cryptographic library developed by a group of cryptographers and security engineers at Google to help developers implement cryptography correctly without being cryptographic experts. Under development for the last two years, version 1.2 adds support for Cloud, Android, and iOS platforms, and C++ and Objective-C."
More at:
https://www.infoq.com/news/2018/09/google-tink-cryto-ios-android

Current implementation details:
"Tink currently provides four cryptographic operations, implemented by specific primitives:

authenticated encryption with associated data (primitive: AEAD)


message authentication codes (primitive: MAC),


digital signatures (primitives: PublicKeySign and PublicKeyVerify)


hybrid encryption (primitives: HybridEncrypt and HybridDecrypt).


Each operation has an associated set of minimal properties and a guarantee. A primitive can have multiple implementations and the user chooses the actual implementation to use by instantiating a key of a corresponding type. (...)


In addition to cryptographic operations, Tink provides support for key management, including key versioning, key rotation, and support for remote key management systems (KMS). Currently, the following KMSes are supported:


Google Cloud KMS


Amazon KMS


Android Keystore


Apple iOS KeyChain (planned)


Tink currently supports Java, C++, and Objective-C. Support for C#, Go, and JavaScript/Node is planned for version 1.3, tentatively scheduled for December 2018."


quarta-feira, 5 de setembro de 2018

Traceability: Drilling errors?

Well not software, this is hardware but last week there was a 2mm leak in the ISS (one of the greatest engineering achievements of mankind, with lots of software in it as you might imagine). This stresses the importance of traceability (to resources):
https://arstechnica.com/science/2018/09/russian-space-chief-vows-to-find-full-name-of-technician-who-caused-iss-leak/

There's a person who drilled the capsule wrongly and did not report it. Fixed with... Glue.
Quoting:
"“We are able to narrow down the cause to a technological mistake of a technician. We can see the mark where the drill bit slid along the surface of the hull,” Dmitry Rogozin, head of the Russian space agency Roscosmos, told RIA Novosti. (A translation of the Russian articles in this story was provided to Ars by Robinson Mitchell). “We want to find out the full name of who is at fault—and we will.”"

terça-feira, 4 de setembro de 2018

API: Help on spotting Child Abuse (in photos)

An API using AI to help content managers spotting (automatically) child abuse; by Google:
https://www.engadget.com/2018/09/03/google-ai-tool-detects-child-sex-abuse-images/

Quoting:
"Google offers AI toolkit to report child sex abuse images

It can catch horrific content while reducing the need for human oversight.

Unlike the conventional approach, which simply compares image hashes against known offending images, the AI method can also flag previously undiscovered material. That, in turn, could help authorities catch active offenders and prevent further abuse.

The tool is free to both corporate partners and non-governmental organizations through Google's Content Safety programming kit. While there's no certainty that it'll have a dramatically reduce the volume of horrible images online, it could help outlets detect and report child sex abuse even if they have only limited resources."