Java

Simple Dependency/SBOM/License/Vulnerability Tracking

I’ve recently been returning to writing some software. I was looking for an automated solution to allow me to do the following things :

  • Track Vulnerabilities
  • Track Licenses Used
  • Track Package Versions

I also wanted something that would alert me to new vulnerabilities appearing even when I’ve not performed a build on the project for a while. Ideally, this would be free until I find a revenue stream for the software.

RestTemplate and Java 17 Records

As part of my ongoing solar project I wanted some basic weather forecast information to help make judgements around cloud coverage. The good people at OpenWeather provide an api with a free tier that includes forecasted cloud coverage data hourly for a couple of days.

The api returns a JSON structure that looks like this :

{
	"lat": 50.8,
	"lon": 0.027,
	"timezone": "Europe/London",
	"timezone_offset": 0,
	"current": {
		"dt": 1644836705,
		"sunrise": 1644822797,
		"sunset": 1644858426,
		"temp": 281.32,
		"feels_like": 277.84,
		"pressure": 997,
		"humidity": 80,
		"dew_point": 278.08,
		"uvi": 0.98,
		"clouds": 75,
		"visibility": 10000,
		"wind_speed": 6.69,
		"wind_deg": 250,
		"weather": [
 			{
				"id": 803,
				"main": "Clouds",
				"description": "broken clouds",
				"icon": "04d"
			}
		]
	},
	"hourly": [
	{
		"dt": 1644836400,
		"temp": 281.32,
		"feels_like": 277.47,
		"pressure": 997,
		"humidity": 80,
		"dew_point": 278.08,
		"uvi": 0.98,
		"clouds": 75,
		"visibility": 10000,
		"wind_speed": 7.9,
		"wind_deg": 242,
		"wind_gust": 12.16,
		"weather": [
		{
			"id": 803,
			"main": "Clouds",
			"description": "broken clouds",
			"icon": "04d"
		}
		],
		"pop": 0.05
	},
	.
	.
	.

With 48 of those hourly snippets covering the next two days.

Leetcode

I’ve recently been working with a few folks looking to start out in coding/development careers. Quite a few entry-level positions seem to be filtered by programming tests. I won’t go into my feeling on these, as personally, I’m not a huge fan of this approach. As an employer, I was always more interested in the individual’s character and approach to problem-solving as opposed to a pressured machine judged pass/fail.

However, with that said, these styles of testing have become more common. They perform many of these tests in web-based environments. So it’s worth becoming familiar with the tools available. https://leetcode.com/ is a good example of a tool used. It is worth getting familiar with these environments. It has a significant number of exercises, they are a bit recursion biased (from my samples) but can give you a good idea of what to expect.