Joel's dev blog

Written by Joel Mun. Joel likes Rust, GoLang, Typescript, Wasm and more. He also loves to enlarge the boundaries of his knowledge, mainly by reading books and watching lectures on Youtube. Guitar and piano are necessities at his home.

Projects👉 PostsJournalsTags

Making sense of Starknet architecture and L1-L2 Messaging

March 28, 2024| ⏳ 20 min read

This article was originally posted at Lazer 1 Research, which is another blog that I maintain specifically for blockchain. With the…

Decoding calldata on Starknet

January 26, 2024| ⏳ 3 min read

This is a brief summary of the anatomy of Starknet’s calldata and how to decode it. The Internet needs more information about how Starknet…

내맘대로 적는 <부의 추월차선> 요약 및 리뷰 (15 / 100)

January 01, 2024| ⏳ 37 min read

Technical intro to DeFi lending protocols with zkLend codebase as an example

October 26, 2023| ⏳ 40 min read

How a lending protocol works Functionalities Deposit Borrow Leverage Other usages Liquidate Repay Over-collateralization Utilization rate…

Full summary of <Life 3.0: Being Human in the Age of Artificial Intelligence> (14 / 100)

January 01, 2023| ⏳ 18 min read

I noticed that my previous summaries are too comprehensive and inclusive, so from now on I will try to be more succinct. Here’s the summary…

Full summary of <Think Again> by Adam Grant (13 / 100)

December 30, 2022| ⏳ 15 min read

This is my summary on Think Again by Adam Grant, who’s already a very renowned professor teaching at Wharton, and also a bestselling author…

All-in-one data structures and algorithms cheatsheet

September 15, 2022| ⏳ 67 min read

Preface This is my own curated list of tips and tricks about data structures and algorithms, in Python or TypeScript. Checklist If you are…

Announcing a performant knowledge graph visualization tool for Notion and its underlying library

September 06, 2022| ⏳ 11 min read

Why does Notion not have a built-in knowledge graph? So I made it myself The libraries: and Why I made How I made it The way forward…

Hong Kong government announces the list of quarantine designated hotels for the 8th cycle, and here's how I became the first person in the world to know it.

June 17, 2022| ⏳ 9 min read

This is a brief story of how I chose the best hotel for quarantine upon arrival in Hong Kong I could possibly choose using Github actions…

Practical Emscripten & Webassembly: Simple RISC-V Simulator on the web

May 14, 2022| ⏳ 13 min read

So I have enrolled in this computer architecture class for the current semester. The lecture is based on the RISC-V instruction set, which…

How to compile C++ code into Webassembly with Emscripten + Docker and use it in Webpack + Typescript + React project

May 09, 2022| ⏳ 7 min read

Rationale I have been trying to port some C++ project to Webassembly for the first time (I have worked on Assemblyscript and Rust projects…

<평균의 종말> 완전 요약 및 감상평 (12 / 100)

February 20, 2022| ⏳ 64 min read

TED…

12 Rules for Life: a detailed summary and reflection of a truly life-changing book (11 / 100)

February 17, 2022| ⏳ 75 min read

12 Rules for Life This post is a very detailed summary and reflection of Jordan Peterson’s book: 12 Rules for Life. Each short summary…

100BooksProject: (10): Cosmos

February 02, 2022| ⏳ 11 min read

This is a personal reflection and review of the book Cosmos. Table of contents Cosmos Cosmos is (and has been) everything Human intellect…

Find the shortest palindrome: an intensive review of the KMP(Knuth–Morris–Pratt) algorithm

January 06, 2022| ⏳ 19 min read

Find the shortest palindrome Inefficient algorithm: bruteforcing Longest Proper Prefix which is Suffix (LPS) The KMP algorithm Finding the…

elasticpwn: how to collect and analyse data from exposed Elasticsearch and Kibana instances

January 02, 2022| ⏳ 6 min read

Your Elasticsearch and Kibana instances are open, and that’s a real problem I have been doing some serious research on the public exposure…

Set up multiple monitors on Optimus laptop running Kali linux

September 17, 2021| ⏳ 7 min read

I needed to figure out how to set up multiple monitors on my new Kali linux laptop, because it wouldn’t just work automatically like MacOS…

Complete end-to-end guide for developing dockerized lambda in Typescript, Terraform and SAM CLI

March 13, 2021| ⏳ 40 min read

This is a full guide to locally develop and deploy a backend app with a recently released container image feature for lambda on AWS…

100BooksProject: (9): Atomic habits

October 04, 2020| ⏳ 30 min read

As always, I’ve summarized the book so that anyone can get the main concept in about 20-30 mins. And then I wrote some reflections and…

100BooksProject: (8): 두려움 없는 조직 (The fearless organization)

September 26, 2020| ⏳ 45 min read

회사에서 ‘사실상 PM’과 개발자 역할을 같이 수행하게 되면서, 경영에 자꾸 관심이 갔다. 내가 부족하다는 느낌이 많이 들었다. 그래서 무작정 Yes2…

How to make useSelector not a disaster

September 13, 2020| ⏳ 8 min read

Disclaimer: We will focus on itself in this article, rather than third-party libraries like , because it’s out of scope of the article. How…

100BooksProject: (7): 돈의 속성 (Properties of money)

August 18, 2020| ⏳ 47 min read

오랜만에 반디앤루니스에 가서 읽을 만한 책을 고르다가 베스트셀러를 차지하고 있는 돈의 속성을 사 봤다. 매번 그래왔듯이, 20~3…

100BooksProject: (6): How to Win Friends & Influence People (인간관계론)

August 17, 2020| ⏳ 40 min read

I wrote a summary of each section and my reflections following it. typo alert: I typed so much that I can’t just review all… if you find a…

Learn all major functionalities on Chrome's Performance tab and practice it with a simple React project

August 03, 2020| ⏳ 14 min read

Yes, Chrome’s performance tab is overwhelming First time you look into all the charts, you have no idea what means what. What does those…

100BooksProject: (5): 초격차 (The Great Gap)

July 29, 2020| ⏳ 51 min read

초격차 경영에 관련된 책이라 일단은 무작정 사 보게 됐다. 일단 나중에 다시 책 볼 필요 없이 줄거리만 20~30분 안에 읽을 수 있는 정도로 요약했다. 그리고 나서 맨 마지막에 느낀 점과 나에게 적용할 수 있는 점을 적어보았다. 초격차 프롤로그…

100BooksProject: (4): Ego is the enemy (에고라는 적)

July 05, 2020| ⏳ 19 min read

Summary Introduction Craving (열망) Success (성공) 실패 (Failure) Impressions after finishing this book The ways to survive in whichever contexts…

How to communicate better

June 06, 2020| ⏳ 5 min read

I find this problem happening very often. And I never expected it to be so. I thought everyone in the world is able to express his/her…

[개발자도 리뷰 할 수 있다] 낙성대 문기사불백 리뷰

May 14, 2020| ⏳ 14 min read

Extensive introduction to why and how you might want to use and test redux-observable

January 24, 2020| ⏳ 22 min read

Problem I was struggling at my company trying to write some tests for RxJS operations. Most of the network requests were managed by RxJS…

The shortcuts I like

January 08, 2020| ⏳ 7 min read

Before we get started These are the keys usually used in combination with normal keys on Mac: Command (or Cmd) ⌘ Shift ⇧ (I will write as…

The rise of low-level programming (feat. WebAssembly)

December 07, 2019| ⏳ 4 min read

Back in the old days There was no alternative to javascript. It was just javascript. Javascript just happened to be with the web when it got…

[...].forEach(saveFromZombies) does not always save people

October 12, 2019| ⏳ 4 min read

The first encounter with the problem I was coding as usual. And I faced an odd encounter with how works. Here goes the code to give an…

Making stupid react smart in re-rendering

October 02, 2019| ⏳ 12 min read

I believed React is smart enough to know this… but aye? We had a bunch of large component trees in our company’s web application. And I saw…

New javascript specifications in 2019 (What's new in Javascript - Google I/O '19)

September 10, 2019| ⏳ 10 min read

Must must must watch! I got so much great insight from this video in Google IO 2019 detailing latest javascript specs. Improvements from the…

Using docker and docker-compose to read data from excel to put it into mongodb

August 17, 2019| ⏳ 14 min read

What am I going to do? So I have my university’s timetable data in excel: I want to read this data using exceljs + node + typescript, and…

100BooksProject: (3): When the breath becomes air (숨결이 바람 될 때)

August 03, 2019| ⏳ 4 min read

1 2 3 4 1 면접이 끝나고 책 하나를 마음 놓고 읽었다. 죽음에 관한.. 책. 폴 칼라니티란 사람은 천재. 스탠포드, 캐임브리지, 예일대에서 문학, 생물학, 의예과 학위를 섭렵한 사람. 근데 36세에 암을 선고받고 살아가게 된다. 선고받은지…

Memoization in python using a decorator: getting a prime number

May 05, 2019| ⏳ 4 min read

Rationale I was creating an function: Time complexity For now, forget about the condition in the while loop: . You know that you are going…

Deploying a serverless crawler with python + lambda

March 18, 2019| ⏳ 5 min read

What I’m gonna build I’m gonna build a simple crawler that will send HTTP request to zigbang.com’s api server to receive data on estates…

Updating python 3 on an outdated Ubuntu

March 13, 2019| ⏳ 4 min read

The problem Sometimes you cannot easily change the version of Ubuntu and python if you are running them on cloud. I am using cloud9, as you…

100 Books Project (2): Crossroads (갈림길)

March 13, 2019| ⏳ 23 min read

Encountering the book Sudden encounter over this book just walking by a random bookshelf in the library led me to spend the whole afternoon…

100 Books Project (1): Reflection and reading notes on Remember Who You Are: Life Stories That Inspire the Heart and Mind

March 09, 2019| ⏳ 6 min read

Reflections Again, another big encouragement from a book. Things I got to know: Success is not everything. Things after success are…

random hacking notes

November 02, 2018| ⏳ 15 min read

Hacking-notes Rationale As a programmer, I thought it’d be nice to know the basics of hacking for security purposes. For now, we will focus…

Vue

October 19, 2018| ⏳ 10 min read

No time Really, I’ve got no time to learn Vue. I need to get basic concepts in the shortest length of time. Vue Cli 3.0 We are going to use…

Async, await, promise

September 05, 2018| ⏳ 4 min read

Async and await See javascript.info Mozilla Basics Ok. This is not ES6. Its ES8 (ECMAScript 2017) syntax. The async function declaration…

This & Object prototypes (3): Objects

June 30, 2018| ⏳ 9 min read

Types and objects Types in JS string number boolean null undefined object Built-in Objects String Number Boolean Object Function Array Date…

This & Object prototypes (2): this All Makes Sense Now!

June 30, 2018| ⏳ 6 min read

1. Default binding without the strict mode in effect, the global object is eligible for the default binding: however, with the strict mode…

Some hacking notes

May 29, 2018| ⏳ 9 min read

detecting security incidents event logs by SANS Regular Expressions to look for Keys to Check Domain controller Monitoring Active…

Using foresic tools (1): process explorer, process monitor, and autoruns

May 19, 2018| ⏳ 3 min read

Sources CSO microsoft gist Corrie Erk Process explorer Submit to VirusTotal to check hash Process Explorer -> Options -> VirusTotal.com…

Three-way handshake in TCP & ACK and SYN flood attack

May 12, 2018| ⏳ 2 min read

Sources mazebolt microsoft geeksforgeeks ddosguard flowguard wikipedia Three-way handshake: how does it work When is it used TCP three-way…

MD5 and SHA

May 12, 2018| ⏳ 2 min read

Sources Lifewire SSLStore Hash A hashing algorithm is a mathematical function that condenses data to a fixed size. It is easier for the…

Base64, Unicode, ASCII, URL

May 11, 2018| ⏳ 7 min read

Base64 Sources lifewire mozilla oracle base64 helper Definition “Base64 is a group of similar binary-to-text encoding schemes that represent…

Listening, Established, Close_wait and Time_wait in netstat

May 06, 2018| ⏳ 2 min read

Sources superuser askubuntu Due to the way TCP/IP works, connections can not be closed immediately. Packets may arrive out of order or be…

Basic system status checkups for windows

May 06, 2018| ⏳ 2 min read

Helpful link asecurity Windows (.bat) First, download and add to path: handle pstools autoruns listdlls uptime ntlast And run this batch…

preparing for DEF CON@COMROKFLT 2018

May 05, 2018| ⏳ 3 min read

Problem Well, obviously there will be a DEF CON@COMROKFLT about three weeks later. This one will be particular; it is a joint DEF CON…

Meta tags

April 29, 2018| ⏳ 3 min read

Sources 1&1 Stackoverflow post CSS-Tricks Google buildwebsite4u Facebook’s open graph protocol gaijin, a metatag generator List of useful…

My story (1): changes that occurred from high school to the Navy

April 20, 2018| ⏳ 27 min read

Before starting to read this People change. And so do I. This is a story of how I, as a developer and social being, changed over a course of…

This & Object prototypes (1): this or That?

April 09, 2018| ⏳ 3 min read

Using is confusing The first confusion Avoiding using Or, using The method allows you to point to the object in the first argument…

Scope and closure (6): Dynamic scope, Polyfilling Block Scope, and Lexical-this

April 08, 2018| ⏳ 2 min read

Dynamic scope “Dynamic scope seems to imply, and for good reason, that there’s a model whereby scope can be determined dynamically at…

Presentation design: Marketing project on Spotify

April 08, 2018| ⏳ 1 min read

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

GOOP logs

April 08, 2018| ⏳ 15 min read

GOOP does not have a logo yet. I have to make one. Before doing anything else, I have to know about Jeff’s business clearly. Otherwise, I…

Scope and closure (5): modules

April 07, 2018| ⏳ 3 min read

Getting the hang of it function has a closure over the scope of the function . Nothing really special is going on here. And here are some…

How does a file get compressed?

April 07, 2018| ⏳ 2 min read

You know, you sometimes compress files. And today I needed to send a relatively big folder to my friend so I just compressed it. This folder…

Error page and no search result page for Grafolio mobile app

April 07, 2018| ⏳ 1 min read

first second third fourth

Scope and closure (4): closure

March 31, 2018| ⏳ 3 min read

Definition of closure Closure is when a function is able to remember and access its lexical scope even when that function is executing…

Scope and closure (3): hoisting

March 24, 2018| ⏳ 1 min read

FYI Notes made with You don’t know JS. Important points on hoisting Hoisting is just basic. Just remember hoisting happens per scope and…

Scope and closure (2): writing good codes

March 24, 2018| ⏳ 4 min read

FYI Notes made with You don’t know JS. Writing good codes Function scope It encourages the idea that all variables belong to the function…

Scope and closure (1): lexical Scope

March 24, 2018| ⏳ 5 min read

FYI Notes made with You don’t know JS. Simplified steps in compilation Tokenizing: breaking the code into single parts, like to and and…

Using git

March 21, 2018| ⏳ 2 min read

How to revert git revert will create a new commit that’s the opposite (or inverse) of the given SHA. If the old commit is “matter”, the new…

Difference between cookies and sessions

December 31, 2017| ⏳ 3 min read

Cookies An HTTP cookie (web cookie, browser cookie) is a small piece of data that a server sends to the user’s web browser. The browser may…

VPN

October 06, 2017| ⏳ 4 min read

What is VPN and how does it work Virtual Private Network. Microsoft’s Explanation Virtual private networks (VPNs) are point-to-point…

Misc useful operations on (kali) linux

October 05, 2017| ⏳ 1 min read

How to capture screen The entire screen Partial screen How to make a symlink Create a symlink Create/update a symlink Using curl to get…

Difference among const, let, var

October 01, 2017| ⏳ 2 min read

Varaiable declaration makes no error. Hoisting Hoisting works for . Scope For , it’s a function scope. and Variable declaration makes an…

Using tor

September 29, 2017| ⏳ 3 min read

Note Below content is just a excerpt from the websites. If you need to see in detail, don’t hesitate to go onto the original website. What…

Using bluetooth on kali linux

September 28, 2017| ⏳ 1 min read

Check bluetooth status And turn it on: This way bluetooth is going to work. will stop bluetooth. Bluetooth is not turned on by default on…

Turning monitor mode on and off

September 25, 2017| ⏳ 1 min read

On This would just work: This also works: To scout the nearby APs, you do: Off For my computer, I do not have to type . It just works. For…

Configuring and using vim

September 25, 2017| ⏳ 4 min read

This looks like a pretty awesome boilerplate! Well, I just looked at this repository and it just looks amazing. I cloned the repo to my…

Editing environment path and adding custom scripts

September 23, 2017| ⏳ 2 min read

How to (copied from linuxconfig) Checking environment variables type and it will show you everything. Where are they stored (copied from…

Using macchanger

September 21, 2017| ⏳ 3 min read

What is macchanger Macchanger is a little program that helps you fake (sometimes called spoof) your mac address. Using ifconfig and…

Finding a process with a name

September 21, 2017| ⏳ 1 min read

Many times you want to look for a process to kill it. Here’s how: the default pgrep command shows the PIDs of all matching processes. the -l…

Changing mac address semi permanently

September 21, 2017| ⏳ 1 min read

How to Dead simple. Open up the file /etc/network/interfaces. It will show you something like: and add at the end of the file, this line…

Using tmux

September 21, 2017| ⏳ 1 min read

Scrolling in tmux Using tmux, you sometimes wanna scroll up and down the window just like you used to in the normal bash shell. It’s dead…

Installing torrent on debian based linux

September 20, 2017| ⏳ 2 min read

Guidance First, download utorrent server from the utorrent website. Then, follow this guide in detail: https://askubuntu.com/questions…

© Joel Mun 2024