• Trends
  • Topics
  • Nodes
Search for keywords, #hashtags, $sites, add a dash to exclude, e.g. -$theonion.com

From frankel.ch

A Java Geek weekly 39

0 1

on Wed, 7PM

From frankel.ch

Dynamic watermarking on the JVM

0 2

Displaying images on your website makes for an interesting problem: on one side, you want to make them publicly available; on the other, you want to protect them against undue use. The age-long method to achieve it is watermarking: A digital watermark is a kind of marker covertly embedded in...

on Sun, 4PM

From frankel.ch

Renovate for everything

0 0

You can configure Renovate for every package manager you can think of. Even better, Renovate allows the contribution of new package managers, contrary to Dependabot.

on Jun 28

From frankel.ch

A Java Geek weekly 38

0 0

on Jun 27

From frankel.ch

A Java Geek weekly 37

0 0

on Jun 26

From frankel.ch

A refresher on GitHub Pages

0 0

I moved my blog from WordPress to GitLab Pages in…​ 2016. I’m happy with the solution. However, I used GitHub Pages when I was teaching for both the courses and the exercises, e.g., Java EE. At the time, there was no GitHub Actions: I used Travis CI to build and deploy. Recently, I had to use...

on Jun 25

From frankel.ch

Random and fixed routes with Apache APISIX

0 0

My ideas for blog posts inevitably start to dry up after over two years at Apache APISIX. Hence, I did some triage on the APISIX repo. I stumbled upon this one question: We have a requirement to use a plugin, where we need to route the traffic on percentage basis. I’ll give an example for...

on Jun 23

From frankel.ch

A Java Geek weekly 36

0 0

on Jun 12

From frankel.ch

A Java Geek weekly 35

0 0

on Jun 6

From frankel.ch

Even more Opentelemetry!

0 0

I continue to work on my Opentelemetry demo. Its main idea is to showcase traces across various technology stacks, including asynchronous communication via an MQTT queue. This week, I added a couple of components and changed the architecture. Here are some noteworthy learnings; note that some of...

on Jun 2

From frankel.ch

A Java Geek weekly 34

0 0

on May 29

From frankel.ch

Parsing structured environment variables in Rust

0 0

I’m in the process of adding more components to my OpenTelemetry demo (again!). The new design deploys several warehouse services behind the inventory service so the latter can query the former for data via their respective HTTP interface. I implemented each warehouse on top of a different...

on May 26

From frankel.ch

A Java Geek weekly 33

0 0

on May 22

From frankel.ch

Workflow, from stateless to stateful

0 0

A (long) time ago, my first job consisted of implementing workflows using the Staffware engine. In short, a workflow comprises tasks; an automated task delegates to code, while a manual task requires somebody to do something and mark it as done. Then, it proceeds to the next task - or tasks....

on May 19

From frankel.ch

A Java Geek weekly 32

0 0

on May 16

From frankel.ch

My opinion on the Tauri framework

0 0

I’ve always liked GUI, both desktop-based and browser-based before you needed five years of training on the latter. That’s the reason I loved, and still love Vaadin: you can develop web UIs without writing a single line of HTML, JavaScript, and CSS. I’m still interested in the subject; a couple...

on May 12

From frankel.ch

A Java Geek weekly 31

0 0

on May 8

From frankel.ch

The Vary HTTP header

0 0

I try to constantly deepen my knowledge of HTTP and REST. Recently, I stumbled upon the list of all registered HTTP Headers. This post is dedicated to the Vary HTTP Header. The problem Two years ago, I wrote about web resource caching server-side. The idea is to set up a component between...

on May 5

From frankel.ch

A Java Geek weekly 30

0 0

on May 1

From frankel.ch

Five ways to pass parameters to Apache APISIX

0 0

In this post, we list five alternatives to pass parameters server-side and explained how to access them on Apache APISIX.

on Apr 30

From frankel.ch

A Java Geek weekly 29

0 0

on Apr 24

From frankel.ch

The try block in Rust

0 0

I wrote previously about libs for error management in Rust. This week, I want to write about the try block, an experimental feature. The limit of the ? operator Please check the above article for a complete refresher on error management in general and the ? operator in particular. In short,...

on Apr 21

From frankel.ch

A Java Geek weekly 28

0 0

on Apr 17

From frankel.ch

Dissolving Design Patterns In Design Elements

0 0

The book Design Patterns: Elements of Reusable Object-Oriented Software was one of the texts that changed how we think about software design. This book came out in 1994 through the efforts of Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, later remembered as Gang Of Four (GoF) ...

on Apr 14

From frankel.ch

A Java Geek weekly 27

0 0

on Apr 10

From frankel.ch

Implementing the Idempotency-Key specification on Apache APISIX

0 0

Last week, I wrote an analysis of the ITEF Idempotency-Key specification. The specification aims to avoid duplicated requests. In short, the idea is for the client to send a unique key along with the request: If the server doesn’t know the key, it proceeds as usual and then stores the responsif...

on Apr 7

From frankel.ch

A Java Geek weekly 26

0 0

on Apr 3

From frankel.ch

Fixing duplicate API requests

0 0

The first rule of distributed systems is 'Don’t distribute your system'. Designing distributed systems right is infamously hard for multiple reasons. The idempotency concept For example, a call to a function can succeed or fail in non-distributed systems. Once you move the called function to...

on Mar 31

From frankel.ch

A Java Geek weekly 25

0 0

on Mar 27

From frankel.ch

Apache APISIX North America Tour

0 0

Once in a while, I write non-technical blog posts when I’ve something worth sharing. Today, I’d like to write about my North America 'Tour' across several conferences and user groups. The first leg of my journey started in Oakland, California, with Developer Week. Developer Week is an...

on Mar 24

From frankel.ch

A Java Geek weekly 24

0 0

on Mar 20

From frankel.ch

The pitfall of implicit returns

0 0

Implicit returns are a feature in some languages. They have recently bitten me, so here’s my opinion. Statements, expressions, and returns Before diving into implicit returns, we must explain two programming concepts influencing them. A lot of literature is available on the subject, so I’ll...

on Mar 17

From frankel.ch

A Java Geek weekly 23

0 0

on Mar 13

From frankel.ch

Secure your API with these 16 Practices with Apache APISIX - part 1

0 0

See how to configure Apache APISIX to secure your APIs against 7 of the 16 rules in the "16 practices to secure your API" list.

on Mar 11

From frankel.ch

Secure your API with these 16 Practices with Apache APISIX – part 2

0 0

In this two-post series, I've addressed most of 16 different practices to secure APIs with Apache APISIX.

on Mar 11

From frankel.ch

Using my new Raspberry Pi to run an existing GitHub Action

0 0

Recently, I mentioned how I refactored the script that kept my GitHub profile up-to-date. Since Geecon Prague, I’m also a happy owner of a Raspberry Pi: Guess what I won @GeeCON Prague? 😎 pic.twitter.com/b9dARUhfMd— Nicolas Frankel 🇺🇦 (@nicolas_frankel) October 20, 2023 Though the current...

on Mar 10

From frankel.ch

A Java Geek weekly 22

0 0

on Mar 6

From frankel.ch

From Kotlin Scripting to Python

0 0

GitHub offers a way to customize one’s profile by allowing one to create a README in a specific repository, named as your profile, e.g., nfrankel/nfrankel. A couple of years ago, I automated the update of my GitHub profile with up-to-date info: my latest blog posts, my upcoming talks, and the...

on Mar 3

From frankel.ch

A Java Geek weekly 20

0 0

on Feb 29

From frankel.ch

Hardening Apache APISIX with the OWASP's Coraza and Core Ruleset

0 1

Most organizations don't incentivize for security. Hence, we need to be smart about it and use existing components as much as possible.

on Feb 29

From frankel.ch

A Java Geek weekly 19

0 0

on Feb 15

From frankel.ch

Error management in Rust, and libs that support it

0 0

As part of learning the Rust ecosystem, I dedicated the last few days to error management. Here are my findings. Error management 101 The Rust book describes the basics of error management. The language separates between recoverable errors and unrecoverable ones. Unrecoverable errors...

on Feb 11

From frankel.ch

Kicking the Tires of Docker Scout

0 0

Let's try Docker Scout, the Docker image vulnerability detection tool.

on Feb 8

From frankel.ch

A Java Geek weekly 18

0 0

on Feb 7

From frankel.ch

A Java Geek weekly 17

0 0

on Feb 1

From frankel.ch

Improving upon my OpenTelemetry Tracing demo

0 0

Last year, I wrote a post on Open Telemetry Tracing to understand more about the subject. I also created a demo around it, which featured the following components: The Apache APISIX API GatewayA Kotlin/Spring Boot serviceA Python/Flask serviceAnd a Rust/Axum service I’ve recently improved the...

on Jan 28

From frankel.ch

A Java Geek weekly 16

0 0

on Jan 25

From frankel.ch

API Versioning

0 0

In this short article, we detail the three options for versioning HTTP APIs: path-based, query-based, and header-based.

on Jan 24

From frankel.ch

Keeping your fonts in embedded SVG

0 0

Last year, I started to use Excalidraw as a diagram tool. However, the SVG images didn’t display the font correctly. In this post, I’d like to explain the problem and offer a solution. Let’s create a sample drawing with Excalidraw. If you open the link, it should look something like this: ...

on Jan 23

From frankel.ch

A Java Geek weekly 15

0 0

on Jan 23