How to Build Java Applications Today: May 17, 2021
Tags: java, bpf
Published: 2021-05-17 21:40:04

---
canonical_url: https://bpfnl.substack.com/p/how-to-build-java-applications-today-4ee
---

## TL;DR
Microsoft shuts down Azure Blockchain Service, Stack Overflow switches to system fonts, GitHub allows video uploads, Angular 12, and Keycloak 13.0.0.

***

## README
This is **issue 36** of my weekly newsletter, “How To Build Java Applications Today”. I read all the Java newsletters, so **you** don’t have to! And I try to put a smile on your face, occasionally, while presenting Java news.

If you like my newsletter, then [subscribe to it on Substack](https://bpfnl.substack.com)!

***

## Quote of the Week
*‌Sometimes I lie awake at night, and I ask, "Where have I gone wrong?” Then a voice says to me, "This is going to take more than one night.”*
[Charlie Brown from the comic strip “Peanuts”](http://www.quotationspage.com/quote/29637.html), by cartoonist [Charles M. Schulz (1922-2000)](https://en.wikipedia.org/wiki/Charles_M._Schulz), must have programmed .NET on Windows.

***

## Stand-Up
It’s been a slow news time in the Java world for a couple of weeks now. I guess people are working on the big releases, like Java 17 and Spring 6/Spring Boot 3. But it’s developer conference season, so we’ll get plenty of news over the next four weeks: Google IO May 18-20, Microsoft Build May 25-27, and Apple WWDC June 7-11.

For me, it’s been “same old, same old”: Working on [my Angular web app and Flutter mobile app](https://yourhomeingoodhands.co.uk).

***

## Bookmarks
### Frameworks & Libraries
#### Microsoft Shuts Down Azure Blockchain Service
Remember the blockchain hype from a few years ago? Blockchain as in the “[decentralized, unchangeable, trusted list of transactions](https://en.wikipedia.org/wiki/Blockchain)” that powers [Bitcoin](https://en.wikipedia.org/wiki/Bitcoin) and other digital currencies? Even companies like Mercedes-Benz [were in on it](https://www.daimler.com/sustainability/resources/blockchain-pilot-project-supply-chain.html).

Well, blockchain technology just suffered a setback in the enterprise: Microsoft shuts down its Azure Blockchain Service this September and recommends migration to offerings from [ConsenSys](https://consensys.net).

That leaves the other two big enterprise clouds to supply blockchain technology: [Amazon](https://aws.amazon.com/blockchain/) and Google (I think - didn’t find a good starting page, only [this blog entry](https://cloud.google.com/blog/topics/inside-google-cloud/why-google-cloud-is-the-ideal-platform-for-blockone-and-other-dlt-companies)). But we Java developers mostly work in typical Azure customers - big ol’ boring companies. And there it’s just gotten harder to use Blockchain: “Microsoft doesn’t see Blockchain as a priority in the enterprise, so why should we?” 

Of course, Microsoft being Microsoft, frequently gets its priorities wrong. Just last week, [they axed Windows X](https://petri.com/microsoft-shelves-windows-10x-it-is-not-shipping-in-2021), “Yet Another Windows Reboot”. You know, like [Windows RT](https://en.wikipedia.org/wiki/Windows_RT) or [Windows S](https://en.wikipedia.org/wiki/Windows_10_editions#Discontinued_editions) before. And now they’re running out of letters - only “Windows Y” and “Windows Z” are left!
 
[Microsoft announcement](https://docs.microsoft.com/en-us/azure/blockchain/service/migration-guide)

***

### Tools
#### Stack Overflow Switches to System Fonts
Do [Stack Overflow](https://stackoverflow.com) and any of the other “[Stack sites](https://stackexchange.com/sites)” look different to you? No? Well, look at the text, maybe? 

Yes - **that’s** new: Instead of [good ol’ Arial](https://en.wikipedia.org/wiki/Arial), the “Stack Sites” now use built-in operating system fonts. That’s [San Francisco](https://en.wikipedia.org/wiki/San_Francisco_(sans-serif_typeface)) on macOS and iOS, [Roboto](https://en.wikipedia.org/wiki/Roboto) on Android and Chrome OS, and [Segoe UI](https://en.wikipedia.org/wiki/Segoe) on Windows. Linux being Linux, the fonts didn’t work as planned: They tried the [Ubuntu font](https://en.wikipedia.org/wiki/Ubuntu_(typeface)) first, then [Arial](https://en.wikipedia.org/wiki/Arial), and now (May 17) landed on [Liberation](https://en.wikipedia.org/wiki/Liberation_fonts). As a cherry on top, they also picked the best emoji fonts. 🤗

Why did they do this?

Because the system fonts look & work better: “Apple’s San Francisco and Microsoft’s Segoe both look great on retina displays, have more expressive weights, and improve readability across all contexts.” These are the same reasons that lead [GitHub to switch](https://markdotto.com/2018/02/07/github-system-fonts/).

Naturally, [this switch](https://meta.stackexchange.com/questions/364048/we-are-switching-to-system-fonts-on-may-10-2021?cb=1) was announced on [Meta](https://meta.stackexchange.com). As expected, it led to a long discussion. And it definitely wouldn’t be Stack Overflow without some outdated code: The font stack in the “What?” section of the post neither matches the updates at the top  of the announcement nor the `font-family` values that Microsoft Edge shows on my Mac. 👌🏻

[Announcement post on Meta](https://meta.stackexchange.com/questions/364048/we-are-switching-to-system-fonts-on-may-10-2021?cb=1)

***

#### GitHub Allows Video Uploads
Talking about tools that we Java developers use all the time: We can now attach videos on GitHub! `.mp4` and `.mov` files are allowed. So goodbye [animated GIFs](https://github.com/dart-lang/sdk/issues/44653#issuecomment-767444962), hello proper videos! 

And don’t hold back: After all, Microsoft [foots the bill](https://www.zdnet.com/article/microsoft-finalizes-its-7-5-billion-github-acquisition/) for GitHub’s storage costs…

[Announcement blog post](https://github.blog/2021-05-13-video-uploads-available-github)

***

### Over the Fence
#### Angular 12
There are three big web frameworks these days - React Native in the lead, Angular in second place, and Vue.js coming in third. How do I know? Because I investigated this for my talk “[How Should Java Developers Build Front-Ends for Web, Mobile, and Desktop Today?](http://bpf.li/via)” - how many jobs are there, how many people learn on Udemy, what do people ask on Stack Overflow, and so on. You can find my results from March in this [time-coded YouTube video (6.5 minutes)](https://youtu.be/6l7QvUp1Ys0?t=1283).

Enough self-promotion: What’s new in Angular 12? For mere mortals like us, not a lot: With “bullish coalescing”, `age !== null && age !== undefined ? age : calculateAge()` turns into `age ?? calculateAge()`. [Typescript 4.2](https://devblogs.microsoft.com/typescript/announcing-typescript-4-2) is in, building with Webpack 5 is now production-ready, and Internet Explorer 11 is deprecated (and hopefully gone next year with Angular 13). 

[Announcement blog post](https://blog.angular.io/angular-v12-is-now-available-32ed51fbfd49)

***


### Releases
#### Keycloak 13.0.0
Let’s say we need authentication in our Java project. But we don’t want to use cloud solutions like [Okta](https://www.okta.com) or [Google Firebase](https://firebase.google.com/products/auth). So then the best option is [Keycloak](https://www.keycloak.org): We get [OAuth 2.0](https://en.wikipedia.org/wiki/OAuth#OAuth_2.0) and [OpenID Connect](https://en.wikipedia.org/wiki/OpenID#OpenID_Connect) for authentication, [LDAP](https://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol) and [Active Directory](https://en.wikipedia.org/wiki/Active_Directory) for that “enterprise feeling”, and “[social logins](https://www.keycloak.org/docs/latest/server_admin/#_general-idp-config)” for Google, Facebook, GitHub, Twitter & more.

Keycloak also helps if our Java application uses LDAP or Active Directory in our organization: However, we probably can’t test well against those live servers. Then Keycloak is an excellent LDAP/Active Directory stand-in that runs on our development machines.

What’s new in this release? Things like “OAuth 2.0 Device Authorization Grant (RFC 8628)” or “OpenID Connect Client Initiated Backchannel Authentication (CIBA)”. If that floats your boat, then dive into the release notes. But only if you know how to get back into your boat! “Float your boat”, “dive into” - see what I did there? Not being funny, I guess…

[Announcement blog post](https://www.keycloak.org//2021/05/keycloak-1300-released.html)

***

## About
Karsten Silz is the author of this newsletter. He is a full-stack web & mobile developer with 22 years of Java experience, author, speaker, and entrepreneur. Karsten got a Master's degree in Computer Science at the Dresden University of Technology (Germany) in 1996.

Karsten co-founded a software product start-up in the US in 2004. He led product development for 13 years and left after the company was sold successfully. He co-founded the UK SaaS start-up "[Your Home in Good Hands](https://yourhomeingoodhands.co.uk/)" as CTO in 2020.

Karsten has [this newsletter](https://bpfnl.substack.com/), a [developer website](https://betterprojectsfaster.com/), and a [contractor site](https://ksilz.com/). He's on [LinkedIn](https://www.linkedin.com/in/ksilz/), [Twitter](https://twitter.com/karsilz), and [GitHub](https://github.com/ksilz).