Photo by @borisview on Unsplash

I’ve just woke up and somehow I remember that when I created taboo to trace the error log. And then I think, would it be better if I pass the logger instead of the error log itself?

As the context passed, it will contain a sub-logger that has x-request-id inside it. It'll trace all the requested event from HTTP Handler to the most corner of the function.

I don’t know if this gonna be good because I wrote this immediately right after I woke up. This might be not optimized or perhaps an anti-pattern. …


Photo by @hocza on Unsplash
Photo by @hocza on Unsplash
Photo by @hocza on Unsplash

When we talk about crypto-something, we need to talk about Alice and Bob acting as actors in the example section. I hope you don’t get bored with them as I will use them as examples too. Here, Alice and Bob will use RSA for the asymmetric key, SHA256 for hash function, OAEP for encrypt/decrypt, PSS for sign/verify, and Base64 for the encoding.

Encrypting

Alice wants to send Bob an important message securely and Alice doesn’t want anybody to read that message except Bob. It might be a love confession, a nuclear code, or perhaps just private spam. Due to their close…


On one of the episodes of positif.dev, Devin and I discussed what is work-life balance. I described work-life balance as happiness that hard to achieve since we need to separate both our work and life, time and environment where we don’t need to think about work after work-hour.

So far I have had a work-life balance in terms of work, but personally, I sometimes have problems with my habit of working outside working hours when I’m in the zone. Devin said it is quite difficult not to think about work outside of working hours when the work itself is almost…


Photo by @jessbaileydesigns on Unsplash

This blog is the result of my learning journey about a static-site generator made on top of Jekyll. The design is kinda bad due to my lacked sense of design. To avoid creating a whole trash blog, I tried to ask my friends to give me feedback about the design a bit.

I have tried using the provided theme like Minima but, I just don’t like it after all. That’s why I think it’s better to create my own. I tried to create the simplest design as long as it is easy to be read. I used Coolors, Google Font


Photo by @hhh13 on Unsplash

I created this module for Golang to help me with error handling. This idea showed when a colleague of mine was thinking to pass context from handler to service, to repository to trace the error log more verbose. I disagreed with him because I thought that's not what context is for. Perhaps I was wrong or he was wrong, or maybe both of us wrong because this is our first Golang project that deployed on production.

Despite our opinion about context, we both agreed that Golang's error handling is too verbose and bulky. It makes us read more error handling…


Photo by @aronvisuals on Unsplash

Redis is a good in-memory key-value data store that supports many types of value. Sorted Sets is one of them. According to the docs sorted sets is:

Sorted sets, similar to Sets but where every string element is associated to a floating number value, called score. The elements are always taken sorted by their score, so unlike Sets it is possible to retrieve a range of elements (for example you may ask: give me the top 10, or the bottom 10).

What they didn’t say about sorted sets is the expiration of sets members can't be defined, at least until…


Photo by @veato on Unsplash

In my first post, I said that:

Perhaps I’m gonna try to integrate this blog using Webmention and Web Monetization after getting a bunch of visitors, but I’m gonna save it for later.

Though my blog visitors still not that much, I integrated Webmention and Web Monetization yesterday. I'm still exploring Webmention due to a lack of resources, so I'm going to make another post featuring Webmention. So for now, let's talk about Web Monetization.

The first time I heard about ‘Web Monetization’ was from this Hackathon held by DEV. But yeah, I only implemented yesterday. …


This post is not tech-related as I always write, but I thought I better write this one.

Photo by Cris Saur on Unsplash

I think we all agree that this pandemic scrapes away our mental health gradually, or at least what it does to me. Though I am working from home, it’s quite worse than working at the office except for the health concern.

I wake up every morning, get shits done, code, eat, research, read documentation, meetings, and back to sleep in the same room. Yep, just like an inmate with a good job in jail.

I even subscribe to Netflix and Disney+ expecting they…


Today I learn about publish/subscribe system for services integration and I want to share it with you.

Photo by Serhat Beyazkaya on Unsplash

What

Publish/Subscribe is a software pattern for integration among services where the message publisher (producer or sender) is not directly connected to the subscriber (consumer or receiver). Unlike REST that integrating sender to the receiver directly, this pattern will need a message broker application like Kafka, Rabbit MQ, GCP Pub/Sub, etc to storing a message.

Why

This pattern has many advantages especially for Event-Driven Architecture. This pattern will give you loose coupling between services but high dependency on a message broker. Publish/Subscribe will help you…


Today I learn how to set up a centralized logging environment using Elasticsearch, Fluent Bit, and Kibana with docker-compose, and I want to share with you.

Photo by Oziel Gómez on Unsplash

In this blog post I use elasticsearch:7.6.2, kibana:7.6.2, and fluent-bit:1.4.3 image. I use fluent-bit instead of fluentd due to this comparison, and I think fluent bit is enough for development You can change the fluent-bit to fluentd, their configs are similar but you need to adjust it a bit. This blog post will cover a minimum requirement to run this EFK Stack, and of course I will share the references how to build the…

Clavin June

a bunch of perceptrons

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store