Joel's dev blog

Written by Joel Mun. Joel likes GoLang, Typescript, React, Node.js, Python, Wasm and more. Equipped with a set of diverse skills, He's been working as a lead SWE for some length of time. 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 house.

👉 PostsJournalsTags

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

May 14, 2022

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

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

TED…

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

February 17, 2022

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

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

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

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

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

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

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

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

How to make useSelector not a disaster

September 13, 2020

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

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

August 18, 2020

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

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

August 17, 2020

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

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

초격차 경영에 관련된 책이라 일단은 무작정 사 보게 됐다. 일단 나중에 다시 책 볼 필요 없이 줄거리만 20~3…

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

July 05, 2020

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

How to communicate better

June 06, 2020

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

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

January 24, 2020

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

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

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

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

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

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

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

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

Memoization in python using a decorator: getting a prime number

May 05, 2019

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

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

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

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

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

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

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

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 (2): this All Makes Sense Now!

June 30, 2018

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

This & Object prototypes (3): Objects

June 30, 2018

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

Some hacking notes

May 29, 2018

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

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

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

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

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

Basic system status checkups for windows

May 06, 2018

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

Listening, Established, Close_wait and Time_wait in netstat

May 06, 2018

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

preparing for DEF CON@COMROKFLT 2018

May 05, 2018

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

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

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

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

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 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

GOOP logs

April 08, 2018

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

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…

Error page and no search result page for Grafolio mobile app

April 07, 2018

first second third fourth

How does a file get compressed?

April 07, 2018

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…

Scope and closure (4): closure

March 31, 2018

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 (2): writing good codes

March 24, 2018

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 (3): hoisting

March 24, 2018

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 (1): lexical Scope

March 24, 2018

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

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

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

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

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

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

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

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

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

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

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

Finding a process with a name

September 21, 2017

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…

Using tmux

September 21, 2017

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…

Using macchanger

September 21, 2017

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

Changing mac address semi permanently

September 21, 2017

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…

Installing torrent on debian based linux

September 20, 2017

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

© Joel Mun 2022