분류 전체보기90 [C] Priority Queue ※ 오름차순 정렬// file: priority_queue.c#include #include #define MAX_SIZE 100struct data { int val;};/* 실제 데이터를 담는 배열 */struct data input[MAX_SIZE];/* 힙은 데이터의 포인터만을 담는 배열 */struct data* heap[MAX_SIZE];int heapSize = 0;void heapInit(void){ heapSize = 0;}int heapPush(struct data* node){ if (heapSize >= MAX_SIZE) { printf("queue is full!"); return 0; } heap[heapSize] = no.. 2025. 11. 16. [C] Quick Sort #include #include #define MAX_NUM 100struct data { int val;};struct data input[MAX_NUM];struct data* ptrs[MAX_NUM];int num = 10;void quickSort_ascending(struct data* arr[], int first, int last){ int pivot, i, j; struct data* temp; if (first val val && i val > arr[pivot]->val) j--; if (i val >= arr[pivot]->val && i val val) j--; if (i val); } printf("\n");}int main(void){ for (int i.. 2025. 11. 15. "화면 끄기" 바로가기 생성 .윈도우를 잠그는게 아니라 화면을 단순히 끄고 싶을때가 있다.(바꿔 말하면, 검은 화면의 화면 보호기를 실행하고 싶다.) 이럴때는 바탕화면에 바로가기를 하나 생성해서, 단순하게 실행하는 것만으로 가능하다. System 폴더에서 scrnsave.scr 찾아서 바로가기를 생성한다. 만들어진 바로가기의 속성을 아래처럼 편집한다. 이제 이 바로가기를 실행하기만 하면, 화면이 꺼진다.. 2025. 10. 11. [NextCloud] Media Server 구축 .Next Cloud 라는 Open Source를 이용해서 개인 서버를 구축한다.목적은 "외부망 및 내부망에서 브라우저를 이용하여 파일 탐색 가능한" 서비스를 라즈베리 파이에 설치하는 것이다. 먼저 apache 설치한다.sudo apt install apache2sudo apt install mariadb-server 설치가 완료되면, 라즈베리 파이의 IP 주소를 브라우저 창에 입력해서 정상 동작 확인 가능하다. 다음으로는 php를 설치한다.sudo apt install php php-gd php-mysql php-curl php-zip php-xml php-mbstring php-bz2 php-intl php-imagick php-gmp libapache2-mod-php -ysudo apt inst.. 2025. 10. 9. [Ubuntu] HEIC → JPG 아이폰으로 사진을 촬영하면 HEIC 파일로 저장된다.리눅스에서 작업하기에는 JPG 파일이 편하여, 아래와 같이 변환한다. 아래 명령어로 heif 패키지 설치sudo add-apt-repository ppa:strukturag/libheifsudo apt install libheif-examplessudo apt install libheif1 heif-gdk-pixbuf heif-thumbnailer HEIC 파일 이름(Source)와 JPG 파일 이름 지정 하여 명령어 실행(-q: 품질값. 0~100)heif-convert -q 95 xxx.HEIC xxx.JPG 만약 현재 폴더의 모든 HEIC 파일을 JPG로 변환하고자 하는 경우 아래의 BashScript를 작성하여 실행# 현재 폴더의 모든 HEIC.. 2025. 10. 9. [RaspberryPi] Booting 時 해상도 자동 설정 ※ 환경: Raspberry Pi 4B + Debian GNU/Linux 12 Pi OS는 WayLand를 Display Protocol(Server)로 사용한다.그러므로, 부팅시 모니터에서 지원하는 특정한 해상도 및 주사율을 설정하기 위해서는 wayland 명령어를 이용한다. 즉, GUI를 통한 해상도 설정은 내부적으로 WayLand 명령어를 통해서 이루어진다. 현재 연결된 모니터의 가능한 해상도및 주사율을 확인하기 위해서는 아래 명령어를 사용한다.$ wlr-randrHDMI-A-1 "Samsung Electric Company SAMSUNG 0x01000E00 (HDMI-A-1)" Physical size: 1420x800 mm Enabled: yes Modes: 720x400 px, 70.. 2025. 9. 7. [vim] vim-ollama (private AI assistant) .vim에서 사용 가능한 AI Code Assistant 설치 방법을 소개한다.위 그림에서 회색으로 작성된 부분이 AI가 자동완성한 Code 이다. 해당 PlugIn의 가장큰 장점은 Local 환경에서 구동되므로 폐쇄망에서도 사용 가능하다. Ollama server를 Ubuntu PC에 설치한다.curl -fsSL https://ollama.com/install.sh | sh 만약 인터넷 연결이 전혀 되지 않아, ollama server를 OFFLINE으로 설치해야 한다면 다음 방법을 사용한다.( https://github.com/ollama/ollama/blob/main/docs/linux.md )먼저 아래 링크에서 Release File을 다운받고https://github.com/ollama/olla.. 2025. 5. 27. 윈도우10 로그인 화면 제거 ."WIN + R" 눌러서 명령창 실행 후 "netplwiz" 입력."사용자 이름과 암호를 입력해야 이 컴퓨터를 사용할 수 있음" 체크박스 해제.만약, 제대로 동작하지 않는다면 PIN 제거 後, netplwiz 다시 설정.. 2025. 5. 25. 크롬 브라우저 - 마이크 볼륨 자동 조절 해제 .ChatGPT 음성 입력 기능을 사용하면서, 윈도우11 마이크 볼륨이 자동으로 낮아지는 문제가 발생했다. 아래처럼, 몇번 사용하다 보면, 볼륨이 자동으로 조절되어 낮아져 있었다. 이 문제를 해결하기 위해 Chrome Browser의 자동 조정 기능을 아래처럼 비활성화 한다. 먼저 Chrome Browser에서 해당 주소로 접속한다." Allow WebRTC to adjust the input volume." 기능을 비활성화 한다. . 2025. 5. 7. [vim] YouCompleteMe .vim에서도 여러 plug-in을 사용하면 Source Insight 및 Visual Studio 수준의 자동완성 기능을 사용할 수 있다. 다만, 내 작업환경상 폐쇄망에서 작업하는 경우가 많다.적합한 Tool을 찾아보다가 YouCompleteMe를 알게되어서, 본 글에 설치 및 사용방법을 작성한다.(YCM은 완벽히 설치 후, Directory를 그대로 복사해서 옮기면 다른 환경에서도 수행이 쉽다.)※ 환경vim9.1python3.12.3cmake3.22.1Ubuntu24.04 ※ Vundle 설치만약 완전 처음부터 Set Up 해야하는 경우라면, vim bundle 부터 설치해야 할 수 있다.mkdir -p ~/.vim/bundle/cd ~/.vim/bundle/git clone https://gith.. 2025. 2. 19. misc device 例 기본적인 read(), write(), ioctl(), poll() 종류의 system call 작업이 가능한 misc device 예제를 작성한다. Driver Source/* file: xxx_device.c */#include #include #include #include #include #define DEVICE_NAME "xxx"#define XXX_IOCTL_CMD_READ _IOR('j', 1, int)#define XXX_IOCTL_CMD_WRITE _IOW('j', 2, int)#define XXX_IOCTL_CMD_WAKE_UP _IO('j', 3)int xxx_var = 1123;atomic_t xxx_poll_ready = ATOMIC_INIT(0);struct wait_queue.. 2024. 9. 21. [vim] 임의 위치의 tags & cscope 추가 다른 경로에 위치하고 있는 tags 및 cscope 파일을 참조 할 수 있도록 명령어를 추가한다, vimrc 파일에 아래 내용을 추가한다,function! Add_tags_cscope(path) echo "Add cscsope and ctags from " a:path let l:tmpstr = a:path . "tags" exe 'set tags+=' . tmpstr let l:tmpstr = a:path . "cscope.out" exe 'cscope add '. tmpstr . ' ' . a:path returnendfunction" How to Use => :TagsAdd /x/y/z/command -nargs=1 -complete=file TagsAdd :call Add_tags_cscope(".. 2024. 9. 21. module signing Device driver 설치 과정에서 아래의 Error Message가 출력되는 경우my_driver: module verification failed: signature and/or required key missing - tainting kernel 아래 2개의 Configuration 활성화 되어 있으면, signing 되지 않은 module의 install을 허용하지 않는다.CONFIG_MODULE_SIG=yCONFIG_MODULE_SIG_SHA512=y 다음 명령어를 이용해서 Kernel build 時 생성된 key를 이용해서 signing 가능하다.kernel_path/scripts/sign-file kernel_path/sha512 certs/signing_key.pem kernel_pat.. 2024. 9. 21. Window Focus Track 게임을 하다가 갑자기 키보드 입력이 끊기는 경우가 종종 발생하였다.(예를 들어, 앞으로 움직이는 키를 계속 누르고 있는데 잠깐 멈췄다가 다시 앞으로 움직이는 현상) Back Ground에서 실행되는 프로세스가 창을 생성하여 키보드 포커스를 뺐어가는 것으로 의심되어, window focus event를 수신하는 python script를 실행해서 추적해보았다. """FileName : trackwindow.pyLog window focus and appearance.Written to try to debug some window popping up and stealing focus from mySpelunky game for a split second.Developed with 32-bit python o.. 2024. 4. 27. Stable Diffusion Web-UI 설치 Dependency 설치 Python 3.10.6 설치 https://www.python.org/downloads/release/python-3106/ 설치과정에서 "Add python.exe to PATH" 체크 Git 설치 https://git-scm.com/download/win Stable Diffusion Web UI 설치 원하는 설치 경로에서 Git Bash 실행 (전체 경로에서 한글이 없어야 함) 명령어 창에서 아래의 Command 입력 git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git 다운받은 폴더에 들어가서 webui-user.bat 수정 @echo off set PYTHON= set GIT= set VENV_DI.. 2024. 4. 13. Scatter Gather List scatterlist CPU 및 Device 관점에서의 address와 length 정보 (page 內 offset 정보 포함) page_link 기능 SG_CHAIN 설정 時, 현재 sgl은 데이터를 포함하지 않은 link 用 sgl SG_END 설정 時, 현재 sgl은 마지막 sgl이며 data를 가르키고 있음 CHAIN이 아닌 경우, page_link는 첫번째 page 정보를 가르킴 SGL Type non-chained SGL 여러개의 SGL이 연속적으로 위치 SG_MAX_SINGLE_ALLOC : non-chained SGL의 최대 크기 해당값 초과 時, 자동으로 chained-SGL 적용 chained SGL 하나의 chain 內 SGL은 연속적으로 위치 마지막 SGL은 chain을 연결하는 기.. 2024. 4. 10. Block IO 분석 Kernel의 Block Layer 내용 정리 Storage IO Framework File System Layer Disk와 Memory 사이의 Mapping 작업 수행 Search 및 Access를 위한 Data 저장 未 구성 Block Layer File System 요청에 따라 Data를 전달 IO Scheduling 기능을 이용하여 요청을 병합/분할 SCSI Layer Data 전송 기능을 수행하며 SCSI Disk 식별 일반적인 임베디드 환경에서는 SCSI Layer 도움 없이 Device로 바로 연결 LLDD (Low Level Device Dirver) Data 전송 기능을 수행하며 특정 Device 구동 기능 제공 IO submit/complete 각 Layer는 하위에 요청을 전달할때 .. 2024. 3. 24. [PalWorld] Dedicated Server 구축 (Ubuntu Linux) . 목적 PalWorld(팰월드) Dedicated Server 구축 Linux 이용하여 24시간 가동되는 Server 확보 환경 CPU: x86_64 Ubuntu 22.04 공식 가이드에서 서버 최소 사양 확인 필요 Host Server 업데이트 $ apt update && apt dist-upgrade SteamCMD 및 Dependency 설치 $ apt install software-properties-common && apt-add-repository main universe restricted multiverse && dpkg --add-architecture i386 && apt update && apt install steamcmd "steam" 계정 생성 $ apt install sudo.. 2024. 2. 13. 인터넷 브라우저를 메모장으로 사용 data:text/html, . 2024. 2. 7. 헤드램프 방향지시등 교체 (소나타 뉴라이즈 하이브리드) 최근 방향지시등이 수명을 다해서 교체 작업을 하였다. 순정 제품 : 1864221007L (헤드램프 및 테일램프 모두 같은 제품 사용) 본네트를 열면, 길게 튀어나온 손잡이가 보인다. 반시계 방향으로 돌리고, 뽑는다. 새로운 전구로 교체하고, 다시 끼우면 끝. . 2024. 2. 7. 이전 1 2 3 4 5 다음