분류 전체보기 95

U.2 SSD와 NIC 간의 간섭 문제

최근에 서버에 U.2 SSD를 설치하는데 예상치도 못한 현상이 있어서 공유하고자 한다.상황OS : 우분투 22.04 (최근 우분투라면 대부분 적용가능할 것이라고 생각이 든다)고정 IP를 쓰는 상황에서 U.2 SSD를 연결시 인터넷 연결이 안되는 상황 발생. 서버의 NIC는 이더넷카드 이름 정책 (Predictable Network Interface Named)을 활용한다. 관련해서 정리해둔 다른 블로그 링크 - https://flavono123.github.io/posts/get-net-dev-from-ip/우분투 IP 설정은 netplan을 활용원인U.2 SSD 와 NIC 모두 PCI 인터페이스를 활용 U.2 SSD가 추가되면서,  NIC의 enp 번호가 한칸씩 밀리는 문제 발생(예시. enp 100가..

프로그래밍 2025.03.02

Display rotation shortcut for mac (맥북 화면 회전 단축키 설정)

맥북프로 M1 max에 24인치 외장모니터를 연결해서 클램쉘로 사용중인데, 두가지 불편한점이 있었다.1. 맥북에 전원을 연결하지 않았을 때 노트북을 닫아버리면, 외장모니터 화면도 같이 꺼짐 (전원 연결되어있을때는 괜찮음)2. 윈도우에서는 존재했던 화면 회전 (0/90/180/270도 회전) 단축키가 맥북에는 없다! (외장모니터에 모니터암을 달아서 사용하는 중인데, 이 것의 활용을 극대화하고 싶었다. 논문을 읽든,, 긴글을 읽든 90도 회전시켜서 보고 싶었다) 내가 짜려고하는 bash 스크립트는 0 / 90 회전을 토글해주는 것을 목적으로 한다.- 참고 : 윈도우에서는 Ctrl키 + Alt키 + ↑(방향키) 를 활용하여 전환이 가능하다. (기억이 안나서 찾아봄,,)첫번째 문제도 해결했는데, 다음에 기록하도..

카테고리 없음 2025.03.02

knockknock asyncio 안쓰고 쓰기

딥러닝 학습시에 실험 (코드실행)이 오래걸리기에, huggingface의 knockknock (링크) 패키지를 telegram bot에 연결해서 코드가 다 올라갈때마다 텔레그램을 통해 알람을 올 수 있게 해두었는데, python-telegram-bot의 특정 버젼(version 20)부터, asyncio 관련 모듈을 활용해야 사용할 수 있게 된 것같다. 이를 해당 버젼에 맞게 수정하거나 업데이트해주는 방법도 있겠지만, 그건 귀찮으므로 pip install python-telegram-bot==13.13 해당 방법을 통해, 버젼만 다운그레이드 해주면 된다.

[python] 파이썬으로 gif / 영상 만들기

1. Celluloid 패키지 활용 (in ipynb) 설치 pip install celluloid 사용 예시 - ipynb 내부에서 보기 from celluloid import Camera # getting the camera from IPython.display import HTML import matplotlib.pyplot as plt import numpy as np import os fig, ax = plt.subplots() # make it bigger camera = Camera(fig)# the camera gets our figure for img in os.listdir("NST/epochs"): img_obj = plt.imread(os.path.join("NST/epochs"),..

[백준][C++] 1738 골목길 - SPFA (Shortest Path Faster Algorithm) 알고리즘

벨만포드 알고리즘은 모든 노드에 대해서 업데이트를 하는 것에 반해, SPFA는 업데이트된 노드와 그 노드에 연결된 간선만 확인하고 업데이트하는 것이다. O(VE)로 벨만 포드 알고리즘과 동일하지만, 특정 경우에 O(V+E)에 빠르게 연산가능하다는 점이다. 밸만포드 알고리즘과 동일하게 visited 변수를 활용해 1->n 루트에서 음수의 사이클이 있는지 확인한다. 큐와 큐에 있는지 확인하는 배열(inQ)를 활용해 업데이트한 노드를 큐에 넣을 수 있도록하고, cycle[MAXN] 변수를 두어 노드를 n번이상 방문하면 벨만포드에서 n번째 순회를 했을 때랑 동일하게 음수의 사이클이 있다고 판단한다. #include #include #include #include #include #define MAXN 100+1..

[백준][C++] 1738 골목길 - 벨만포드(bellmanford) 알고리즘

최대한 유리한 경로를 찾는 문제이다. 길을 지날때마다 금품을 잃거나, 금품을 획득하게 된다고 한다. 음의 가중치를 가진 간선이 존재하므로 다익스트라는 불가능이다. 그럼 벨만포드 알고리즘이다. 우리가 아는 알고리즘(다익스트라, 벨만포트, 플로이드 워셜)은 간선을 지날 때마다 비용을 지불한다. 그래서 최소의 비용을 찾는 문제이다. 그런데 1738번은 최대의 금품을 가지는 것을 찾는 문제다. 그래서 벨만포드 알고리즘에 활용하기 위해서 기존의 금품을 획득할 때 +A로 표시하는 것을 반대로 표시한다.(+A -> -A, -A -> +A) 그 것을 통해서 최소의 비용을 찾는 알고리즘인 밸만포드 알고리즘을 사용할 것이다. 최적의 경로가 존재하지 않는 상황은 1->N로 가는 경로를 찾았는데, 그 경로상에서 음수의 싸이클..

[Virtualbox & MacOS] Failed to query SMC value from the host (VERR_INVALID_HANDLE).

에러Failed to query SMC value from the host (VERR_INVALID_HANDLE).상황macOS catalina를 VirtualBox에 설치하고, 실행하려고 했을 때 발생한 에러 코드가상환경 창도 열리지 않는다.해결법cd 'C:\Program Files\Oracle\VirtualBox\' 실행해서 해당위치로 이동해서 (댓글에 적어주신분 감사합니다)(윈도우기준).\VBoxManage.exe setextradata "macOS" "VBoxInternal/Devices/smc/0/Config/GetKeyFromRealSMC" 0원인"Value 1 will cause the SMC error message, so change it to 0."from Phùng Duy Nghĩa ..

프로그래밍 2022.04.12

[rust] Struct & #[derive(Debug)]

Rust Language Book 에서 chapter 5.2 에서 struct을 배우는 간단한 프로그래밍인데, Debug를 위한 rust 기능들이 있어서 이를 기록하기 위해서 작성하였다. 간단하게 struct는 c/c++에서 사용하는 방법과 비슷한다. struct Rectangle { width : u32, height : u32, } fn main() { let rect1 = Rectangle { width : 30, height : 50, }; println!("rect1 is {}", rect1); // Compile error } /* 에러 내용 = help: the trait `std::fmt::Display` is not implemented for `Rectangle` = note: in f..

[rust] Ownership 3 - Reference

C++에서 reference를 알고계시면 이해하기 조금 더 수월하다. 기존의 Ownership Rule은 string을 함수의 매개변수로 넘겨주게 되면 Ownership을 넘겨주는 것이라서, 함수가 끝나고 변수가 invalid되는 것이다. 이를 해결하기 위해 나온 개념이 reference이다. Ownership을 넘겨주는 것이 아닌, pointer를 넘겨주면서 함수이후 변수가 invalid가 되는 것을 방지한다. fn main(){ let s1 = String::from("hello"); let len = calculate_length(&s1); println!("The length of '{}' is {}.",s1,len); } fn calculate_length(s : &String) -> usize..

[rust] Ownership 2

Ownship 을 리턴 값이 있는 함수에서 보자. fn main() { let s1 = gives_ownership(); let s2 = String::from("hello"); let s3 = takes_and_gives_back(s2); } fn gives_ownership() -> String { let something = String::from("yours"); something } fn takes_and_gives_back(a_string: String) -> String { a_string } 함수에서 문법은 코틀린과 비슷하다. 메인 함수에서 s1,s2,s3을 선언한다. s1 변수부터 보면 gives_ownership 함수에서 리턴 값을 받아온다. 해당 함수에서 something 변수는 함수..

반응형