Skip to content

Instantly share code, notes, and snippets.

View joonhoekim's full-sized avatar
😇

Joonhoe Kim joonhoekim

😇
View GitHub Profile
@joonhoekim
joonhoekim / Migrate-Cursor-IDE-extensions.md
Last active March 4, 2025 01:03
Migrate Cursor IDE extensions

TLDR

From extension installed:

   cursor --list-extensions > cursor_extensions.txt

To install with extracted txt file:

M1 Max Ramdisk Benchmark

궁금해서 해봤습니다.

속도 측정을 위해 처음엔 윈도우에서는 Crystal Disk Mark를 사용했습니다. 맥에서 BlackMagic Disk Speed Test 혹은 AmorphousDiskMark 에서 테스트 해보면 결과가 예상과 매우 달랐습니다.

특히 맥에서 랜덤 읽기/쓰기 성능이 너무 떨어졌습니다. 그래서 동일한 도구로 테스트해보기로 했고, fio를 사용했습니다.

sudo dpkg --add-architecture i386
sudo apt-get install wget -y
sudo mkdir -pm755 /etc/apt/keyrings
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/winehq-jammy.sources
sudo apt update
sudo apt install --install-recommends winehq-stable
sudo wget https://app-pc.kakaocdn.net/talk/win32/under_win10/KakaoTalk_Setup.exe
wget -P ~/Downloads https://app-pc.kakaocdn.net/talk/win32/under_win10/KakaoTalk_Setup.exe
LANG="ko_KR.UTF-8" wine KakaoTalk_Setup.exe
@joonhoekim
joonhoekim / wireguard client setup for ubuntu.md
Last active May 17, 2026 08:49
How to import configuration for wireguard client (for ubuntu 24.04)

How to import configuration for wireguard client (for ubuntu 24.04)

Ubuntu network-manager supports wireguard-vpn. but setting it is complicated.

Don't worry. You can import configuration that generated from vpn server like OpenWRT.

First, You have to make xxx.conf file. (The filename will be the name of vpn interface.)

I will use the file name wg0.conf.

@joonhoekim
joonhoekim / gist:eb1887d6cf2f76d61c2f7f87066cbc89
Last active October 19, 2024 20:57
Script for Removing ALL extensions in VS Code
#!/bin/bash
# How to Use ?
# - Don't recommend to execute this in terminal on VS Code
# 1. Manual execution
# - Just copy below extensions=() ... and paste it to the terminal.
# 2. As a script
# - save this as script.sh
# - add permission to excute (chmod +x script.sh)
# - execute script. (./script.sh)
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int N = Integer.parseInt(scanner.nextLine());
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
static final int NUM_OF_ALPHABET = 26;
public static void main(String... args) throws IOException {
//스트링 받아서 알파벳별로 존재하는 개수를 세기. 없으면 -1.
@joonhoekim
joonhoekim / MemberAddHandler.java
Created December 14, 2023 12:44
Information Expert
package bitcamp.myapp.handler.member;
import bitcamp.myapp.menu.Menu;
import bitcamp.myapp.menu.MenuHandler;
import bitcamp.myapp.vo.Member;
import bitcamp.util.Prompt;
public class MemberAddHandler implements MenuHandler {
MemberRepository memberRepository;
@joonhoekim
joonhoekim / MemberRepository.java
Created December 14, 2023 12:23
InformationExpert
package bitcamp.myapp.handler.member;
import bitcamp.myapp.vo.Member;
import bitcamp.util.Prompt;
public class MemberRepository {
Member[] members = new Member[3];
int length = 0;
@joonhoekim
joonhoekim / main.dart
Created August 8, 2023 13:00
poetic-zephyr-5791
import 'dart:async';
void main() {
final controller = StreamController();
final stream = controller.stream.asBroadcastStream();
//리스너 여러개 만드려면 asBroadcastStream() 필요
final streamListener1 = stream.listen((val){
print('Listener 1 : $val'); //리슨 시 수행할 함수
});