https://miiingo.tistory.com/221
1. sudo apt-get build-dep linux linux-image-$(uname -r) 2. sudo apt-get install libncurses-dev flex bison openssl libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf config 파일 만들기 kernel code가 있는 폴더에서 make menuconfig 하고 local version-append to kernel release에서 이름을 설정해주었다. 그리고 make 만 실행해주면 된다. 이 부분이 꽤 오래걸린다! [참고] https://seonshine-bibi.tistory.com/8
무려 14.04가 깔려있었다 20.04 세대에...! (왜인지는 모르겠음;; 미국에서 깔 때 낮은 버전을 받았나?) 이런 단계를 통해서 OS update를 했다. 1. 내 버전 확인 cat /etc/issue 2. 패키지 업그레이드 sudo apt update // 사용 가능한 패키지 리스트와 버전 정보를 업데이트 sudo apt upgrade // 현제 설치된 모든 패키지를 최신 버전으로 업그레이드 sudo apt dist-upgrade // 의존성을 고려하여 중요도가 낮은 패키지에 대한 업그레이드 및 삭제 > 그런데 아무 변화도 없긴 했음 3. 릴리즈 업그레이드 sudo apt install update-manager-core sudo do-release-upgrade 중간에 space한번 눌러주고 ..
import argparse 기본 설정 parser = argparse.ArgumentParser(description='✨') parser.add_argument('--lr', default=0.1, type=float, help='learning_rate') ... args = parser.parse_args() 이렇게 써주면 끝인데 choice를 추가해주는 방법 >>> parser = argparse.ArgumentParser(prog='game.py') >>> parser.add_argument('move', choices=['rock', 'paper', 'scissors']) >>> parser.parse_args(['rock']) Namespace(move='rock') >>> parser.p..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/Y7xmu/btrg7HiCeRB/15bAVTPJ6FjUF1h1w05rpk/img.png)
pip3 install nbconvert 제일 왼쪽의 run by line! 근데 빨간색 점으로 찍는 디버거는 어떻게 실행하는지 모르겠다... F5로 실행하면 이런 경고가 계쏙 떴다,,, ipynb 안에는 없는 메타데이터 같은데 이건 뭐지??? >> 아마 ipynb의 실행을 인정 안해서 그런것 같다고 한다..! py로 바꿔서 실행하던가 해야되는데 막상 바꾸려니까 또 에러남..ㅠ 그냥 해야겠따
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cmtvaC/btri66BSR78/17bZ1ftzWd48YKxcgCwKW0/img.png)
다이소 블루투스 동글은 블루투스 버전이 4.0이라서 체감할정도로 느립니다. 돈을 더 주고 만원 대인 블루투스 5.0 이상 동글을 사길 추천합니다. 데스크탑에 블루투스 기능이 없어서 다이소에 가서 5000원 주고 블루투스 동글을 사 왔다. 문제는 이 드라이버가 윈도우, 맥만 지원해서 리눅스는 바로 되지 않았다...따라서 드라이브를 추가적으로 설치해 줘야 했다. 일단 dmsg 를 통해서 무슨 드라이버가 필요한지 알아본다 rtl8761b_fw.bin 가 없다고 해서 해당 파일을 다운로드 해서 복사해준다. 아래 링크에서 다운 받거나 내가 올려둔 파일을 쓰면 된다. https://raw.githubusercontent.com/Realtek-OpenSource/android_hardware_realtek/rtk1..
https://ndb796.tistory.com/18
shell이란?(조개 아님) Bash란? 별도의 컴파일 필요 X 첫 줄 #!/bin/bash ? 필수이다!! 타입 Unix 및 Linux OS에서 제공하는 Shell은 기본적으로 변수에 대한 Type을 정의하지 않는다. 이런 변수할당 유형을 약타입(Weakly Typed) 이라고 표현한다. 반면에 C언어나 Go Lang 등은 변수의 선언시 Type을 미리 정의해 줘야하는 강타입(Strong Typed) 언어이다. 무튼간에, Shell 과 같은 약타입 언어들은 변수의 타입을 미리정의 할 필요없이 사용자가 필요에 따라 유연하게 정의해서 사용할 수 있는 장점이 있는 반면, 변수에 대입 될 실 데이터에 대한 타입 문제로 인해 의도치 않은 Script 오류를 겪게되는 단점도 있다. 때문에 Shell Script ..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bGCmen/btrgMsHQEvs/V8d9rWx88GwfRR1CcDI0kk/img.jpg)
이번 포스팅에서는 Chapter3를 다뤄보려고 한다! Syntax(구문): Semantic(의미론): 의미는 구문과 매우 밀접하다. 보고 유추할 수 있을 정도여야 한다! 용어 정리하기 sentence: character로 구성된 문장 language: sentence의 집합 lexeme(어휘 항목): language의 가장 낮은 level의 syntatic unit (ex: *, sum, begin) token: lexeme의 한 분류 (ex: identifier) 예시) Language란? 정의해보자! 크게 두가지 방식 - Recognizer(인식에 의한 정의) - parser같은거, Generator(생성에 의한 정의) BNF(Backus-Naur Form)와 Context-Free Grammar(문..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/MqMKc/btrgOuKAOQg/1c4q4Vm19bb4c45KwISQCk/img.png)
https://data-newbie.tistory.com/688 https://medium.com/sjk5766/vs-code-local-remote-container-개발환경-ad0b2c2eb472 VS Code local/remote container 개발환경 Atom 에디터의 remote-ftp extension이 너무 편해서 그 전에 원격으로 작업할 일이 있으면 vscode 보다 atom을 사용했었는데 2019년 5월에 vscode에도 괜찮은 원격 패키지가 나왔습니다. medium.com https://curioso365.tistory.com/100 VSCode로 Docker Container에 Remote로 연결하기 도커를 실행 시키고 외부의 IDE 개발툴에서 개발하고 소스와 실행은 도커에서 실..
a보다 b가 먼저 실행되어야해! 어떤 일을 하는 순서를 찾는 알고리즘이다. 즉, 방향 그래프에 존재하는 각 정점들의 선행 순서를 위배하지 않으면서 모든 정점을 나열하는 것 [알고리즘 구현하기] 각 노드들의 진입 차수 계산 진입 차수가 0(들어오는 간선의 수가 0)인 노드들을 큐에 삽입 큐에서 노드를 꺼내 연결된 간선을 제거 제거로 인해 진입 차수가 0이 된 노드를 큐에 삽입 (3)~(4) 번을 반복하며 큐가 비었으면 종료 https://www.acmicpc.net/problem/1766 백준 문제집 문제를 푸는데 자꾸 시간초과가 났다 ㅠㅠ 3이랑 4 과정을 for문 하나에서 해결해야 했는데 그게 문제였던 것 같다.... 최단거리 구하기 각 노드에 저장소를 만들어서 min거리를 저장해두는 방식으로 해결한다..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cFkTxU/btrgJXGi2km/2igNjgsRgbMKdUtJ01WNzk/img.png)
https://lamanus.kr/59 이 글에서 기억할건 4가지이다. 외부IP, 내부IP, 외부 포트, 내부 포트 이걸 헷깔리면 죽음이다.... 내 경우에는 우분투 서버에서, 맥북 클라이언트로 접근하고자 했다. 외부포트는 3333을, 내부 포트는 22를 썼다. 포트 포워딩이란? 과거에는 집에 보통 컴퓨터 한 대만 사용하고 스마트폰이 없었기 때문에 인터넷을 설치한다고 하더라도 모뎀만 있으면 컴퓨터에 인터넷을 연결할 수 있었습니다. 최근 들어서는 가족 구성원 한 lamanus.kr 공인 아이피와 사설 아이피 "사설 네트워크는 전세계적인 인터넷이 아닌 국지적인 네트워크로써 굳이 인터넷이 필요하지 않은 경우에 사용됩니다. 본래 이러한 사설 네트워크를 구축하기 위해서는 DHCP 서버와 라우터 등등이 필요하지만,..
백준에서 numpy를 지원하지 않아서 깡으로 해본다..! list1 = [[1, 10], [2, 22], [3, 19], [4, 7]] list2 = sum(list1, []) print(list2) 근데 이 방법은 [1, 2, 3, 4, [1, 2, 3]] 이런 경우에는 잘 안됐다. 애초부터 붙일 때 .append()로 배열을 붙히지 말구, += 으로 같은 일차원으로!하는 방법이 제일 좋아 보인다. https://programmers.co.kr/learn/courses/4008/lessons/12738
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cvpuj3/btrgsKoIwzv/PVDpnAsvjgoJ0pA1t3KIXK/img.png)
로컬에서 해당 파일을 삭제한다. 삭제한 결과를 커밋한다. git reset --soft HEAD~N 으로 N개의 커밋이 있다면 해당 커밋을 취소한다. git commit -sm 'message" 로 다시 커밋한다. (이 작업을 Squash 라고 한다.) Squash 된 커밋을 다시 push 한다. [참조] https://baeharam.github.io/posts/git/gitfailed-to-push-large-file-after-deleted/
Automata 이론이란? abstract한 computing device에 대한 공부이다. automaton : abstract computing device 다룰 내용 Introduction to the Theory of Computation Mathematical Preliminaries and Notation Finite Automata Deterministic/Non-Deterministic Finite Accepters Regular Languages and Regular Grammars Properties of Regular Language Context-Free Languages Simplification of Context-Free Grammars and Normal Forms Pushd..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/thlYh/btrgqyaep8B/Lkoqdxx871pL0lxnToiYcK/img.jpg)
이번 포스팅에서는 Chapter 2의 내용을 다뤄보려고 한다. Deterministic Automata: 현재 상태에 의해서 move가 결정된다. Nondeterministic Automata: 여러개의 move가 있을 수 있다. DFA(Deterministic Finite Accepters): 결정적 유한 인식기 특징 내부 상태 개수가 유한하다. input string은 심볼의 sequnce로 구성됨 한 state에서 다른 state로 transition 가능 output이 있다 DFA의 정의 (1) DFA는 다음과 같은 5개 원소의 tuple로 정의된다. M = (Q, Σ, 𝛿, q0, F) Q: 유한개의 internal state의 집합 Σ: input alphabet 𝛿: Q ✖️Σ -> Q 는 ..
이번 포스팅에서는 Chapter 1의 내용을 다뤄보려고 한다! Chapter 1 답게 기본 상식들이 많이 나와서 이미 아는 부분들은 생략 했다. Introduction to the Theory of Computation에서는 증명 방법 - induction(귀납법), contradiction(귀류법) 내용이 간단하게 나오지만 Language, Grammar, Automaton이 이 단원의 포인트라서 이 부분만 집중적으로 다뤄보려고 한다. Languages string의 집합! string = {a, b, c, ...} 라면 string으로 만든 aa, bb, ccc, 등의 문자열이 language이다. Reverse: 거꾸로 string= {a, b}라면 {a, b, aa, bb, ab, ...} 등 0..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/XXx9x/btrgqGMZKtE/hBFUMuAzayYhXj7owcW1i1/img.png)
namespace 개념 여러명이 작업하다 보면 똑같은 함수 명, 변수 명 때문에 충돌날 수도 있는데 그런 실수를 방지하기 위한 개념이다. 개발자가 자신만의 namespace를 생성할 수 있고, namespace 안에 선언된 이름은 다른 namespace와 구분된다. namespace 선언하기 namespace 사용하기 std::란? 내가 정의한 SweetDev라는 namespace처럼, iostream헤더 안에 정의된 namespace중 하나이다. cout, cin, endl같은 함수들이 포함되어 있다. std::를 생략하고 싶다면? 파이썬처럼ㅎㅎ; cin과 >>를 이용해서 입력 받기 문자열 표현하기 1) c-string 방식 위의 선언은 그냥 단순 문자 배열이고, 두번째 Real선언만 C-string ..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/mnhxL/btrW2tYeETR/KOA6KWDAHArgFkvkmlY8PK/img.png)
[문제] https://www.acmicpc.net/problem/14719 반례가!!!!!중요하다!!!!! 4 7 3 0 3 4 1 2 1 이러면 끝쪽에서 문제가 생긴다. # 자신보다 크거나 같은 레벨인거 찾고, 없다면 그나마 가장 큰 값인거 찾기 이게 해답에 가까워지는 방법..😇 코드 짜다가 자꾸 헤매서 정리 하기 위해서..! 블로그에서 되게 좋은 코드를 봤는데 영역에서 돌면서, 새로운 영역을 결정할 때 만약 더 높아서 해결이 딱 되면 리턴 해주고, 아니면 제일 큰 height을 계속 갱신을 해주는 방식을 쓰는데 되게 좋아 보였다. 함수로 짜지 않으면 return을 쓰지 못해서 못 짜는 구조였는데 엄청 잘 짰다..! https://gaza-anywhere-coding.tistory.com/113
https://jimnong.tistory.com/676 우분투 리눅스 듀얼부팅 설치방법 정리(윈도우10 기준) 우분투 리눅스 다운로드 방법(Desktop 버전) 우분투 리눅스 설치용 USB 만드는 법(윈도우에서) 우분투 리눅스 설치용 USB 만드는 법(Ubuntu 16.04 에서) 에 이어... 우분투 듀얼부팅 설치방법을 설명하고 jimnong.tistory.com 우분투 USB 만들어야해... rufus로 만드는거 성공했따! ( 삽질은 이전포스팅 참조.. ) 1. 우분투 설치 공간 마련 ( 기존 파티션 줄이기 ). https://jimnong.tistory.com/676 여기 1번처럼 해줬다 2. 재부팅 부팅할 때 del키를 꾹 누르고 있었더니 됐다 순서를 드래그해서 변경하고 바이오스를 저장하고 빠져..
일단 usb는 iso크기 이상이어야 한다. 난 16기가짜리 준비함. 참고로 usb는 포맷을 하기 때문에 usb에 있는 내용은 미리 백업을 해둬야 한다. ubuntu iso > https://ubuntu.com/download/desktop/thank-you?version=20.04.3&architecture=amd64 rufus(설치 해주는 툴) > https://rufus.ie/ko/#google_vignette 그리고 iso이미지를 usb에 넣는게 아니라 다운로드에 있는 iso이미지를 선택하는거다!!!!!!! 계속 이상한 오류(usb메모리의 드라이브 문자 인식 불가, iso이미지 추출 오류 등등..) 났는데 그냥 내가 바보짓 한거였다ㅠㅋ 혹시 몰라서 usb메모리 드라이브 문자 바꾸는 법 > https..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bBx0pe/btrgqGyh87w/AKuS2MZGREoajxsDzdTI1k/img.png)
데스크탑 세팅이 안될 경우를 생각해서 eGPU도 찾아보고 있다 (외장 그래픽) 조건 1) macOS High Sierra 10.13.4 이후 버전 2) Intel 프로세서 3) Thunderbolt 3 포트 있어야 함 https://support.apple.com/ko-kr/HT201736 여기서 Thunderbolt3 확인 가능하다. 4) 지원되는 eGPU 종류 확인하기 Thunderbolt 3 올인원 eGPU 제품 이들 제품에는 강력한 GPU가 내장되어 있어 MacBook Pro를 충전하는 데 충분한 전력을 공급합니다. 권장되는 Thunderbolt 3 올인원 eGPU는 다음과 같습니다. Blackmagic eGPU 및 Blackmagic eGPU Pro4 Gigabyte RX 580 Gaming B..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cuWn7d/btrghQvmiq1/vMo1kr8NG7OLU8XwBKccoK/img.png)
공유기 포트 포워딩 SSH Reverse Tunneling 크롬 원격 데스크탑: ubuntu에서 불안하다는 말이 있어서 선택하지 않음. https://gigglehd.com/gg/soft/7534270 1) jupyter 사용하기 그냥 jupyter에 암호와 tls 걸고 openssh-server fail2ban 설정한 후 포트 바꿔놓고 필요할 때만 ssh로 jupyter 실행하신 후 브라우저로 돌리시는 식으로 사용하시면 됩니다. 다른 분 말씀대로 클라우드쪽을 한번 찔러보시는 것도 좋고요. colab은 사용시간 제한이 있는 게 단점인데 비용이 공짜라서 좋죠. 뚫리는 건 크게 다음과 같은 원인 중 하나지요. 업데이트를 충실히 하지 않았거나, 비밀번호가 너무 쉬웠거나, 비밀번호 무한 대입을 막지 않았거나, ..