Dasai Mochi 3 stand for Genesis

Dasai Mochi 3 stand for Genesis 27-inch screen https://drive.google.com/file/d/1taqXmt7M6EUcyKNQXRAzNymfY6KiUyvk/view?usp=drive_link

제네시스 전동화 G80 (RG3)을 타며 느낀 것들

이미지
해결해야 할 문제 프런트 도어프레임 가니시 잡소리 ( 링크 ) 운전석, 동승자석 앞 문 외부 B필러 커버(공식 이름은 프런트 도어 프레임 가니쉬)에서 찌그덕 소리남. 문 열고 닫을 때마다 거슬림. 한 번 센터 가서 확일했을 때 재현이 안 되어 그냥 돌아왔는데, 나중에 소리 날 때 녹화해 둠. 다시 방문해서 접수, 현상 확인, 부품 주문, 재방문, 교체해서 문제 해결. 새 차에 손대는 게 찜찜했지만 해결되니 속 시원함. 2026. 4. -> 문제 재발했다. 겨울 내내 괜찮았는데, 또 찌걱거린다. 엊그제 출고 1년 경과하면서 에어필터, 와이퍼 블레이드 교체할 때 조치 가능한지 물어봤어야 했는데. DIY로 이렇게 저렇게 조치할 수 있으면 좋은데 탈거/재장착이 너무 어렵게 되어 있어서 엄두가 안 난다. 후석 무선 충전부 잡소리 ( 링크 ) 리어 콘솔 암레스트, 무선 충전부 덜그럭거림. 이거 뜯어서 고정을 시키고 싶은데, 정비지침서를 보니 뒷자석 포함해서 들어낼 것들이 많네... 뭐.. 일단 크게 문제를 일으키진 않으니 나중에 셀프로 한 번 시도해 봐야 할 듯. 근데 공사가 크다. 리어 커튼 잡소리 ( 링크1 , 링크2 ,  링크3 ,  링크4 ) 좌측 뒷바퀴가 요철 넘어갈 때 어딘가에서 플라스틱 떨리는 소리 남. 운전자 머리 바로 뒤쪽(헤드레스트는 아니고)에서 나는 느낌인데.. 천장쪽 루프 트림 어셈블리쪽? 전동 시트쪽? C필러 쿼터 글래스 안쪽? 서비스 센터 방문 1차: 천장 쪽 의심했으나 증상이 재현되지 않아 조치 안 함 2차: 뒷좌석 시트 고정부(?)의 유격이 없는지 확인하고 조금 더 빡빡하게 조치. 하지만 증세 여전. 나중에 원인을 찾음. 바로 리어 커튼!! (링크4 참고) 리어 커튼을 올린 상태에서 차에 충격이 가해지면 떨리는 소리 남. 서비스 센터 다시 방문 3차: 리어 커튼 교체, 볼트의 조임 토크 재점검함. 하지만, 리어 커튼이 개선품이 아니어서 여전히 소리 남. 결론? 아직 해결 안 됨. 가급적 리어 커튼 안 올리게 됨. 이거 해...

LG TV 리모컨 수리

이미지
TV 리모컨을 들고 소파와 물아일체가 되어 있던 어느 주말. 유투브와 OTT에 찜해 둔 영상을 보고 있는데 갑자기 리모컨의 오른쪽 방향 버튼이 계속 눌리는 현상이 발생했다. 가만히 있다가 진행표시가 갑자기 앞으로 쭈~욱 움직인다. 얼마 전부터 배터리 부족이라고 메시지가 뜨던 게 기억나 새 배터리를 끼워도 봤는데도 해결이 안 되어 결국 분해해보기로 결정. 원래 생긴건 요렇다. LG 인공지능 리모컨이라고 하네. 배터리 빼고, 옆구리를 돌아가면서 잘 벌리면 쉽게 분리된다. 처음엔 택타일 버튼이나 멤브레인 키가 들어가 있는 줄 알았는데, 까 보니 금속 택타일 버튼이네... 커버 비닐(?)을 잘짝 잘라 들어내고 들여다보니 접촉면에 부식이 많이 진행된 걸 확인. 잘 닦고, 부식 제거하고, 다시 잘 고정시킨 뒤 조립. 물론 분해의 역순으로. 했더니 속 시원하게 아주 잘 동작한다. 5~6만 원 나갈 뻔..

jupyter pdf 출력

(현상) jupyter notebook을 PDF로 출력할 때 한글이 안 나옴 (원인) jupyter notebook 메뉴를 따라 자동으로 생성하면 kotex package를 사용하도록 지정이 안 됨 (해결) 기본 latex template에 항상 kotex package를 사용하도록 지정. 수정해야 할 파일 이름은 base.tex.j2 리눅스 쪽이면 /home/<username>/.local/share/jupyter/nbconvert/templates/latex에, 윈도우 쪽이면 C:\Python\Python310\share\jupyter\nbconvert\templates\latex에 있음 base.tex.j2에 \usepackage{kotex} 행 추가 (들여쓰기 등 맞춰서)

케이세다 2021 시타 스트링 (블레이드 H)

[Blade H-1] - 51/50 - 평범한 파워, 컨트롤. 팔에도 크게 부담 없었음. - 인위적인 스핀이 거의 없다고 느껴짐. - 텐션이 조금 낮아지면 홀드감이 좋아지나 스핀은 여전히 부족한 느낌이었음. - 내구성 좋음. 텐션의 급격한 변화도 안 느껴졌음. - 제품 소개에 나온 특징에 전반적으로 동의. - 케이세다의 각종 하이브리드 구성의 특징을 비교하기 위한 기본 줄 조합으로 아주 괜찮음. 본인만의 감각을 찾아가는 단계의 초보자나, 오버하지 않는 정직한 특징의 스트링을 선호한다면 추전. [Blade H-4] - 51/50 - 줄 매기 어려운 사각 줄. 신경써서 잘 풀어서 매지 않으면 불규칙하게 꼬일 수 있음. - H-1 대비 확실히 스핀 많아짐. 스핀 땜에 당연히 공이 짧아지는데 파워도 함께 조금 줄어들었는지 생각보다 더 짧아짐. - 너무 빠른 스윙 시 정확성이 다소 떨어짐. 발사각도 편차가 조금 크게 느껴졌음. 제품 소개에 나온 특징에는 우수한 컨트롤이 장점이라 되어 있는데.. 사용자의 실력이 문제인 듯. - 스윙 속도가 적절히 낮으면 홀드감도 나쁘지 않고 발사 각도, 방향도 나름 제어할 수 있었음. 적응이 좀 필요함. - 4각 줄이다 보니 한쪽 면 전체가 크로스 스트링에 닿는데, 그래서인지 텐션이 급격히 떨어짐. - 느린 스윙 스피드에서 강한 스핀을 원하면 시도해 볼만 함. [Blade H-6] - 51/50 - H-1 대비 회전량만 적당히 많아진 듯한 느낌. 회전량 만큼 공은 짧아지지만 파워 면에서 이질감도 적고 발사각도 제어가 의외로 잘 되어 충분히 보완할 수 있었음. - 처음엔 M-6가 조금 단단하다 느껴졌는데, 느낌과는 달리 팔에 부담이 가지는 않았고 텐션 감소도 급격하지 않았음. 신기하게 M-6의 각이 끝까지 잘 살아있었음. - 개인적으로 가장 맘에 들었던 조합임. [Blade H-7] - 51/50 - H-6와 비슷할 거라 예상했으나 의외로 H-4 처럼 적응하는 데 고생했음. - M-6가 살짝 무르다는 느낌이 있었는데, 그 때문인지 거리 조...

Running KataGo/KaTrain on Jetson AGX Xavier

Set-up Jetson AGX Xavier From Ubuntu 20.04, use sdkmanager and follow instructions Temporarily modify VERSION_ID in /etc/os-release from 20.04 to 18.04 Preparation-CMake (on Jetson) KataGo requires version 3.18.2 or higher, but the default wa 3.10.2, hence build from source. Download CMake source file then install at /usr/local/CMake git clone https://github.com/Kitware/CMake ./bootstrap --prefix=/usr/local/CMake make sudo make install Preparation-KataGo v1.10.0 (on Jetson) Refer github.com/lightvector/KataGo/blob/master/Compiling.md#linux For CMake, refer Preparation-CMake (on Jetson) above. Check all packages are installed or updated, including zlib1g-dev, libzip-dev, libgoogle-perftools-dev, libssl-dev, and ocl-icd-opencl-dev. Build KataGo git clone https://github.com/lightvector/KataGo.git git checkout v1.10.0 cd KataGo/cpp /usr/local/CMake/cmake . -DUSE_BACKEND=CUDA -DUSE_TCMALLOC=1 [Note] Selecting TensorRT backend(TENSORRT) will give check error. "TensorRT 8.2 or greater is...

Install Ubuntu 20.04 LTS on HP Pavilion Desktop

- Download Ubuntu 20.04 LTS iso for Desktop - Prepare bootable media (USB Stick or CD/DVD) - Shrink Windows Partition for extra space - Change BIOS Settings - Disable Secure Boot - (No option for fast boot) - Change boot order - Boot with prepared media (USB Stick or CD/DVD) - [Problem] May not pass the logo screen. (hangs forever) - At the grub screen, press 'e' then add 'pci=noacpi' option before '---' (after 'splash') - Continue installation - [Problem] May face grub installation failure, with 'Operation not permitted' message. - In this case, just follow the instruction to boot into the Live session (the same as 'Try Ubuntu') - Install and use boot-repair to try fixing the problem. But again, may face error saying file /boot/grub/x86_64-efi/normal.mod not found error. - Boot into the Live session again, then open terminal and use following lines of code to install grub again. (/dev/nvme0n1p1 is the EFI partition, /dev/nvme0n1p...

Matplotlib의 pyplot에서 사용할 수 있는 글꼴 이름 찾기

 Ref:  https://zawook.postype.com/post/6727252 import os  import sys  import matplotlib as mpl from matplotlib import font_manager  # 폰트매니저 리빌드 font_manager._rebuild()  # 설치되어 있는 폰트 리스트 가져오기  if sys.platform=='win32':     #시스템 글꼴 목록을 리스트로 가져오기      font_list=font_manager.findSystemFonts()      # 이름순정렬     font_list.sort()      # 리스트탐색반복     for file_path in font_list:         #폰트 파일의 경로를 사용하여 폰트 속성 객체 가져오기         fp=font_manager.FontProperties(fname=file_path)          # 폰트 속성을 통해 파이썬에 설정해야 하는 폰트 이름 조회          font_name=fp.get_name()          # 폰트 파일 경로와 폰트 이름 출력하기         print("%s >> %s" %(file_path,font_name)) else:     # else 부분은 mac에서 작동한다     # 설정 파일의 위치 조회     conf_file_path = mpl.matplotlib_fname()...

snap으로 설치한 eclipse의 실행 옵션 변경하기 (eclipse.ini 수정)

Ubuntu 18.04L에 snap으로 eclipse 설치 후, Heap 메모리 등 변경을 위한 eclipse.ini 변경이 생각보다 쉽지 않다. 보통, eclipse 설치 위치에 있는 eclipse.ini를 변경해 주면 되는데, snap으로 설치하는 경우 해당 파일 위치도 잘 모르겠고, eclipse.ini 파일에 쓰기 권한이 아예 없고 변경도 안 된다. snap 파일 시스템이 read-only로 마운트 되어 있기 때문 마운트 옵션을 일시적으로 변경하면 내부 내용을 수정할 수는 있지만... 귀찮으니 패스. ini 파일을 변경할 수 없으니, eclipse.ini 파일을 복사해 다른 곳에서 편집해 두고, eclipse 호출 시 변경한 파일을 이용하도록 바꿔준다. /snap/eclipse/current/eclipse.ini 를 다른 곳으로 복사 (예: /etc/eclipse.ini ) eclipse.ini를 원하는 대로 수정 실행 명령 호출 방법 수정 시스템 메뉴에서 아이콘을 클릭해 실행하는 경우에 반영하려면, menulibre 실행 Eclipse 검색하고, 아이콘 클릭 Command 입력 수정 /snap/bin/eclipse %f 부분을, /snap/bin/eclipse --launcher.ini /etc/eclipse.ini %f 로 변경 터미널에서 실행 시 반영하려면, alias eclipse='eclipse --launcher.ini eclipse.ini' 추가

올림푸스 E-500 백업 배터리 교체

이미지
꽤 오래전 부터 E-500 배터리 교체할 때마다 날짜가 초기화 되는 문제 때문에 불편했다. AS 받는 것도 영 불편하고 금전적으로 아깝다는 생각에 미루다가, 아예 직접 작업하기로 결정. 올림푸스 카메라 사업을 철수한다는 기사 때문에 발동이 걸린 것 같기도 하다. 분명 백업 배터리 수명이 다한 것 같은데, 배터리 모델만 확인 가능하고, 위치만 수리 가능한 곳에 있으면 큰 문제 없겠지 라는 생각에 바로 분해 시작. 커버 벗기면 아래처럼 보임. 뒷면 케이스와 메인보드 간 케이블 연결을 제거하면 아래 처럼 보인다. 여기서, 케이스와 메인보드 사이의 케이블 땜도 제거했는데, 나중에 보니 굳이 제거할 필요는 없었다. 일단 제거한 모습. LCD와 케이블을 제거하면 메인보드가 드러나는데, 오른쪽 아래 백업 배터리가 보인다. 땜을 제거하고 자세히 보니 모델명 MS621F이 보인다. 부품보다 배송비가 훨~씬 많이 나오지만, 일단 구매하고, 조립은 분해의 역순으로 진행. 물론 중간에 반 조립 상태로 테스터를 이용해 제대로 작업되었는지 확인은 필수. 이제 새 모델처럼 잘 동작한다. 문제는 작업 장소를 이동하다가 나사 하나를 잃어 버린 거 정도?

인켈 미니랩소801 CD 픽업 교체

이미지
근 20년 되어 가는 인켈 RefSo-801 (RX/AX/CD-801) 오디오가 종종 CD를 인식하지 못해 픽업을 교체하기로 결정했다. 사실 문제 발견하고 수리를 생각한 건 5~6년 됐는데 게으름 때문에 이제야 작업했다. 일단 CD를 분해해서 CD 픽업 모델 확인 먼저. KSS-213C이네. 알리에서 구매할까 하다가 그냥 국내 유통업체를 통해 어셈블리 통째로 구매했는데 배송비 포함 3만원 미만. 2만 5천 정도? 픽업의 땜 제거하고 하나씩 차근차근 분해하고 재조립. 이제 CD 넣으면 바로 인식하고 튀지도 않는다. 아주 속이 시원하다. 진작할 걸.

Javadoc with UML Diagram on Android Studio

1. 준비 Android Studio & commented source project GraphViz 설치 https://www.graphviz.org/ 예: C:\Program Files (x86)\Graphviz2.38 UmlGraph 설치 https://www.spinellis.gr/umlgraph/index.html Jar 다운로드 & 이동/복사 예: C:\Workspace.android\Project\lib\UmlGraph-5.7_2.32-SNAPSHOT.jar 2. Using Android Studio Generate Javadoc UI Tools -> Gnerate JavaDoc ... 문서 생성 조건들 선택 (Scope & Output directory ...) Other command line arguments에 다음 추가 (한 줄) -encoding UTF-8 -doclet org.umlgraph.doclet.UmlGraphDoc -docletpath D:\Workspace.android\Project\lib\UmlGraph-5.7_2.32-SNAPSHOT.jar -dotexecutable "C:\Program Files (x86)\Graphviz2.38\bin\dot.exe" -attributes -operations -qualify -types -visibility OK로 Javadoc 생성 3. Using Gradle 생략

JavaDoc with UML Diagram on Eclipse

1. 준비 Eclipse & commented source project GraphViz 설치 https://www.graphviz.org/ 예: C:\Program Files (x86)\Graphviz2.38 UmlGraph 설치 https://www.spinellis.gr/umlgraph/index.html Jar 다운로드 & 이동/복사 예: C:\Workspace.eclipse\Project\lib\UmlGraph-5.7_2.32-SNAPSHOT.jar 2. Using Eclipse Generate Javadoc UI Use standard doclet 선택 <- 가장 중요 Extra Javadoc options로 다음 내용 추가 -doclet org.umlgraph.doclet.UmlGraphDoc -docletpath D:\Workspace.eclipse\Test\lib\UmlGraph-5.7_2.32-SNAPSHOT.jar -dotexecutable "C:\Program Files (x86)\Graphviz2.38\bin\dot.exe" -attributes -operations -qualify -types -visibility Finish로 Javadoc 생성 (참고) Ant용 스크립트(.xml)를 저장하면 다음과 같이 나옴 <?xml version="1.0" encoding="UTF-8" standalone="no"?> <project default="javadoc">     <target name="javadoc">         <javadoc access="private" additionalparam=" -doclet org.umlgraph.doclet.UmlGraphDoc&#13;...

OwlAPI and HermiT on Android (> Android P, SDK 28)

[Implementation Issues on OwlAPI and HermiT on > Android P] [문제 현상] Android 9 (P, SDK 28) 이상에서 Owl API 이용하기 위해서, Gradle 설정 변경 compiledSdkVersion, targetSdkVerison 들을 28로 변경 기존 코드 실행 시 에러 OWL 초기화 시 다음과 같은 오류 발생함 W/System.err: SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".     SLF4J: Defaulting to no-operation (NOP) logger implementation     SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. W/edependencytes: Accessing hidden field Lsun/misc/Unsafe;->theUnsafe:Lsun/misc/Unsafe; (light greylist, reflection) W/edependencytes: Accessing hidden field Ljava/lang/Thread;->threadLocalRandomProbe:I (dark greylist, reflection) D/AndroidRuntime: Shutting down VM E/AndroidRuntime: FATAL EXCEPTION: main     Process: {패키지}.gradledependencytest, PID: 23725     java.lang.NullPointerException         at java.util.Objects.requireNonNull(Objects.java:203) SLF5J...

OwlAPI and HermiT on Android

[Implementation Issues on Using Ontology] OWL API로 온톨로지를 모델링하고 HermiT로 추론하는 작업을 구현할 때 발생하는 문제들과 해결 방안을 정리해 본다. 1. Java (for test) 필요한 환경은 Maven의 dependency를 이용하면 간단하게 구성할 수 있고, API를 이용한 프로그래밍에 주력하면 됨. Java 호환성 1.8 명시 <properties>     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>     <maven.compiler.source>1.8</maven.compiler.source>     <maven.compiler.target>1.8</maven.compiler.target> </properties> Maven 프로젝트용 pom.xml에 dependency 추가 <dependency>     <groupId>net.sourceforge.owlapi</groupId>     <artifactId>owlapi-distribution</artifactId>     <version>5.0.5</version> /dependency> <dependency>     <groupId>net.sourceforge.owlapi</groupId>     <artifactId>org.semanticweb.hermit</artifactId>    ...

안드로이드 미러링 & 제어하기

전화기 터치가 안 돼서 PC에서 미러링하고 제어할 때.. scrcpy https://github.com/Genymobile/scrcpy 소스가 공개되어 있지만 굳이 빌드할 필요는 없고, 중간에 Get the app에서 zip 파일 형태를 받아도 된다. 안드로이드 개발자 모드 들어가기 권한 주기 특히, simulating input 관련한 권한 https://github.com/Genymobile/scrcpy/blob/master/FAQ.md  참고

Count number of lines in the files using regex in Eclipse

CTRL+H File Search Containing text: \n[\s]* All lines: ^*\n Check regular expression (Optional) File name patterns

Count number of lines in the files using PowerShell

Files with java extension Get-ChildItem "*" -Filter *.java | ForEach-Object { Get-Content $_.FullName | Measure-Object -line } Get-ChildItem "*" -Filter *.java | ForEach-Object { Get-Content $_.Name | Measure-Object -line } dir * -recurse | select Fullname,@{name="LineCount";expression={ @(get-content $_.fullname).count }} dir * -recurse | select Name,@{name="LineCount";expression={ @(get-content $_.fullname).count }} ፠ Looks like it ignores empty lines. lastwritetime Eng lastwritetime {"mean":[],"word":"lastwritetime","phoneticSymbol":""} ls -R *.java | % { $_ | select name, lastwritetime, @{n="lines";e={ get-content $_ | measure-object -line | select -expa lines } } } | ft -AutoSize ls -R | Where {$_.extension -in ".java", ".xml", ".jsp", ".js"} ls -R *.java,*.xml 

Shifter mount 3D model for TH8A on Playseat Challenge

이미지
Playseat Challenge에 Thrustmaster TH8A 거치하려 만든 모델. 거치할 때도 문제가 없어야 하고, 변속할 때도 고정이 잘 되어야 하고, 무엇보다 3D 프린터로 한 번에 찍어낼 수 있는 크기여야 한다는 게 문제. Playseat Challenge 프레임에 구멍 안 뚫고 고정시키는 게 제일 고민이었는데, 어찌어찌 support 만들어서 나사로 박아주니 어느 정도 고정은 되는 것 같다. 만들어서 써 보니 아쉬운대로 쓸 만 한 듯. 물론 개선점도 확실히 보인다. 모델 인쇄 속도를 감안해 형태를 다듬을 필요도 있고, playseat challenge의 프레임 각도를 조절했을 때에도 무리 없이 쓸 수 있게 하단부를 변경할 필요도 있고. 뭐 돈 받고 팔 건 아니니까, 그냥 지금 버전 쓰는 걸로 결정. 생기기는 대충 아래처럼 생겼다. 다운로드 링크: Top , Middle , Bottom , Support for Top , Support for Bottom

샤오미 Mi 8 SE 써 보자 (2)

이전 글( 링크 ) 게으름에 언락 신청한 뒤 시간이 너무 지났다. 이래저래 휴가랑 겹치고, 다른 문제들이 연이어 터지는 바람에.. ㅜㅜ 전편( http://greyattic.blogspot.com/2018/07/mi-8-se-1.html )에 이어서.. 언락은 전편의 프로그램으로 해결 완료한다. 하고 나면 휴대폰 부팅할 때 언락된 상태라고 나온다. 2018년 8월 27일 현재, Mi 8 SE용 글로벌 롬은 아직이다. Mi 8용은 공개가 됐는데.. 현재로서는 EU 개발자 롬을 쓰는 것이 최상이고, 시작점은 여기( https://xiaomi.eu/community/ )다. MIRI ROM Releases를 쫒아 들어가면 MIUI 10 버전들이 죽 나온다. 가장 최신이 좋겠지만, 가끔 문제가 있는 것들(예: 8.8.23의 경우 한글을 언어로 쓸 경우 시스템 UI 충돌이 생긴다고 함.)이 있으니 바뀐 내용을 잘 읽어 보고 선택하는 게 좋다. 어쨌든, 롬 버전을 하나 선택하면, 지원하는 장치 목록과 다운로드 링크, 그리고 간단한 설명이 나온다. 순서대로 보자면, 롬 다운로드 STABLES에는 아직 Mi 8 SE 지원 롬이 없다. Weelky에서 찾아야 한다. 1.x GB 정도 되는데, 받아서 장치에 복사해 두자. (위치는 크게 관계 없음) TWRP 설치 해당 페이지 링크에는 Mi 8 SE 지원하는 버전이 없다. 검색을 좀 해서 여기 서 다운로드 해 PC에 저장. Mi 8 SE를 fastboot mode로 들어가게 해 두고, fastboot flash recovery [다운로드한 이미지 파일 이름. 내 경우는 recovery-TWRP-3.2.1-0629-XIAOMI8SE-CN-wzsx150.img] fastboot boot [다운로드한 이미지 파일 이름. 내 경우는 recovery-TWRP-3.2.1-0629-XIAOMI8SE-CN-wzsx150.img] 하면 TWRP 화면이 뜬다. (참고1) 필요할 경우 중국어 -...