2017의 게시물 표시

라세티 프리미어(크루즈) 크루즈 컨트롤 스위치 커버 교체

이미지
처음엔 크루즈 컨트롤 스위치 커버 포면이 작은 공기방울 처럼 뽈록뽈록 일어나더니, 운전할 때 손가락으로 건드리니까 울퉁불퉁하게 되어 버렸다. 플라스틱에 얇은 우레탄 코팅이 되어 있었나 본데, 왜 이런게 생긴건지.. 찾아보니까 비슷한 증상이 꽤 있는 걸로 봐서는 나만 그런 건 아닌가 봄. 코팅을 다시 한 경우도 있는 것 같은데 굳이 공임+방문시간 투자하긴 좀 그렇고. 크루즈 컨트롤 옵션이 없는 차량인지라 멍텅구리 플라스틱만 교체하면 되니까, 그냥 순정부품 판매몰( www.c-mall.co.kr )에서 새 부품을 사는 걸로 결정. 품번은 i13290961, 가격은 5천 원이 좀 안 된다. 문제는 교체 방법인데... 이게 간단하지 만은 않다. 준비물도 꽤 있고. 절차를 짚어 보면.. 혼캡 탈거 중앙의 혼캡을 먼저 제거해야 주변 플라스틱들을 뽑을 수 있다. 가장 유용한 링크는  http://m.cafe.daum.net/ledvalley/C5nU/17?q=D_dQ7d3qGakSE0& 반드시, 꼭, 퓨즈 뽑고 작업하자! 시동을 꺼도 경적은 울리게 되어 있거든. 에어백은 케이블 뽑을 때 조심해야 되고. [팁 하나] 텔레스코픽 스티어링 휠이 아니더라도, 스티어링 휠은 밑으로, 운전자 쪽으로 쭉 뽑은 채로 고정해서 작업하는 게 당연히 편하다. [팁 둘] 젓가락은 굳이 두개일 필요 없고, 하나씩 해도 됨. 젓가락을 11자 모양으로 벌리라고는 하지만 단순히 벌리는 게 아니고 힘이 좀 들어가야 되고, 찔러 넣을 때 위치를 잘 느껴보며 자릴 잡아야 함. 제대로 되었다면 바깥쪽으로 당길 때 '텅~'하는 소리가 나며 혼캡이 떨어져 나옴. 절대 잡아 뺄 일 없으니 애쓰지 말 것. [팁 셋] 젓가락이든 드라이버든 유연한(?) 건 안 좋음. 걸쇠 벗기기 전에 휘어져 버려서. 이 단계가 영 자신 없으면 부품 들고 쉐보레 정비센터에 가서 작업해 달라고 하는 게 맘 편하다. (공임 추가 지출) Y자 핸들커버 탈거 및 스위치 커버 교...

[DevTip] 안드로이드 웨어 앱의 블루투스를 통한 디버깅

LG G Watch R의 경우 cradle의 연결 접점을 통해 PC에 직접 연결할 수 있었는데, LG Watch Style은 무선 충전만 된다. 결국 무선(WiFi나 BT)로 디버깅 할 수 밖에. 그런데 이게 참 귀찮다. 자동화 시키기도 좀 애매~하고... [웨어러블] 설정: 개발자 모드 활성화, ADB 디버깅 활성화, 블루투스를 통해 디버깅 활성화 [전화기] 설정: 개발자 모드 활성화, USB 디버깅 활성화 설정: 알 수 없는 소스 설치 활성화 안드로이드 웨어: 블루투스 통해 디버깅 활성화 호스트: 연결 끊김 타겟: 연결됨 개발 PC와 전화기 연결 (USB 케이블) [PC] 명령창에서 adb 명령으로 웨어러블 장치 연결 adb forward tcp:4444 localabstract:/adb-hub adb connect 127.0.0.1:4444 adb devices 로 연결된 장치 목록 확인 [전화기] 안드로이드 웨어 앱의 설정에서 블루투스를 통해 디버깅 활성화 상태 확인 호스트: 연결됨 타겟: 연결됨

Jolt360으로 찍은 360도 사진을 구글 카드보드 앱으로 보기...

Jolt 360 앱으로 찍은 dual fisheye 사진을 자체 앱을 이용해 stitch. Stitch된 사진들은 Jolt 360 앱에서 정상적으로 볼 수 있지만, 구글 카드보드 앱과는 호환 안 됨. 구글 카드보드 앱을 이용하기 위해서는 두 가지 조치 필요. 1. Photospere 사진으로 인식되도록 파일명 변경 파일 이름이 'PANO_'로 시작해야 함. 파일명 일괄 변경 프로그램을 이용해서 쉽게 수정 가능하므로 자세한 설명은 생략한다! 2. 180도 회전 Jolt 360으로 봤을 때 정면이, 구글 카드보드로 보면 뒷면으로 보인다. 180도 회전 필요하다는 말. 공개 소프트웨어인 Gimp와 Python-fu 스크립트(플러그인)를 이용해 일괄처리할 수 있다. Gimp 사용법, 플러그인 설치 및 동작의 자세한 설명은 생략한다! 아래는 사용한 Python 스크립트. #!/usr/bin/env python # # File = rotate-jolt-image.py from gimpfu import * import os import re def rotateJoltImage(srcPath, tgtPath): open_images, image_ids = pdb.gimp_image_list() if open_images > 0: pdb.gimp_message("Close all images and try again.") else: allFileList = os.listdir(srcPath) existingList = os.listdir(tgtPath) if existingList != []: pdb.gimp_message("Empty the target directory and try again.") else: srcFileList = [] xform = re.compile('\.jpg', re....

Ubuntu Redmine에 CKEditor 플러그인 추가 설치

기본 문서 편집 방식인 Textile을 CKEditor로 변경하기 위한 절차 정리. 1. 일단 웹 서버 중지 (Redmine의 mysql 서버는 동작하고 있어야 함) sudo /opt/redmine-~~~/ctlscript.sh stop apache 2. 사용자 전환 sudo su - root 3. 각종 경로 지정 /opt/redmine-~~~/script/setenv.sh에서, PATH 설정 부분을 복사해 실행 예: PATH="/opt/redmine-3.3.2-0/perl/bin:/opt/redmine-3.3.2-0/git/bin:/opt/redmine-3.3.2-0/sqlite/bin:/opt/redmine-3.3.2-0/ruby/bin:/opt/redmine-3.3.2-0/subversion/bin:/opt/redmine-3.3.2-0/postgresql/bin:/opt/redmine-3.3.2-0/php/bin:/opt/redmine-3.3.2-0/mysql/bin:/opt/redmine-3.3.2-0/apache2/bin:/opt/redmine-3.3.2-0/common/bin:$PATH" export PATH 4. 플러그인 다운로드 받기 cd /opt/redmine-~~~/apps/redmine/htdocs/plugins git clone https://github.com/a-ono/redmine_ckeditor.git 5. 플러그인의 CKEditor 부분 업데이트 cd redmine_ckeditor git submodule update --init cd app/assets/javascripts/ckeditor-release git checkout FULL_VERSION (e.g. full/4.4.6) (실제: git checkout full/4.6.2) rails generate redmine_ckeditor:rich_assets 6. 플러그인 설치 cd /opt/redmine-~~~/app...

Bitnami Redmine과 SVN + Git을 자동으로 연결하기

일차 작업 을 했는데, 사용자 관리가 영 찜찜해 Remine 사용자 정보를 이용해 SVN과 Git 접근을 제한하는 방식을 적용해 본다. 우선  https://docs.bitnami.com/installer/apps/redmine/ 에서 SVN과 Git의 고급 연동 부분을 참고했는데, 이게 실제 우리쪽 환경과는 맞지 않는다. 특히 DNS에 등록치 않고 IP로 접근해야 하는 시스템인지라 뭔가 헷갈린다. 게다라 Git의 경우에는 git-http-backend가 아닌 추가 툴을 추가해 사용하기 때문에 뭔가 꼬일 것 같다. 그래서, 우선은 일차 작업 한 환경에서 조금씩 변경에 들어간다. 여기 를 참고해 다음 사항들을 적용한다. /opt/redmine-~~~/apache2/conf/httpd.conf에 사용할 모듈 등록 (DAV, SVN, Perl) /opt/redmine-~~~/apache2/bin/envvars에 Perl 작업환경 등록 (LD_LIBRARY_PATH) Redmine.pm 파일을 Perl 모듈 폴더(/opt/redmine-~~~/perl/lib/site_perl/5.16.3/*/Apache2/)에 복사. (Bitnami 패키지 버전에 따라 수정 필요) 여기까지 마쳤으면, httpd의 각 디렉토리 접근 권한 할당 방법을 변경해야 한다. 기존에는 bitnami.conf에서 git 관련된 부분을, httpd-app.conf에서 svn 관련된 부분을 설정했는데, 원래 패키지 의도에 맞도록 bitnami.conf는 원상 복귀시키고, httpd-app.conf(/opt/redmine-~~~/apps/redmine/conf/에 위치)파일에 모든 설정을 몰아 넣는다. 결과적으로 /opt/redmine-~~~/apache2/conf/bitnami/bitnami.conf의 내용은 다음과 같다. # Default Virtual Host configuration. <IfVersion < 2.3 >   NameVi...

Bitnami Redmine 업그레이드 + 이전 (Ubuntu 16.04 LTS)

윈도우에 설치된 Bitnami Redmine + VisualSVN을 우분투 서버로 이전하는 방법 정리. 오류, 오타가 있겠지만, 큰 흐름이라도 기록해 둬야... 0. 기존 자료 백업 모든 Redmine 서버 중지 (Manager GUI에서 모든 서비스 중지) SVN 저장소의 각 프로젝트 별로 백업 파일 생성 svnadmin dump Project/Dir/To/Dump > __project_name__ .dump MySQL 데이터베이스 백업 파일 생성 mysqldump -u bitnami -p bitnami_redmine > backup.sql Redmine 데이터 백업 cd redmine_install_dir/apps/redmine/htdocs files 디렉토리 통째로 압축 (backup_files.zip) 1. Ubuntu + Bitnami Redmine 설치 Ubuntu 16.04.1 Desktop 버전 설치 + 소프트웨어 업데이트 sudo apt-get update sudo apt-get upgrade Bitnami Redmine installer 다운로드 + 설치 bitnami-~~~.run 다운로드 chmod 755 bitnami-~~~.run sudo ./bitnami-~~~.run 설치 디렉토리 /opt/redmine-~~~, 설치 패키지: Subversion, Git 포함. 관리자 계정 ID와 암호 설정. 추후 DB 관리자 계정(admin이 아니라 root)의 암호도 동일하게 설정됨. (myphpadmin 실행해 접속 시 사용) 2. 백업 자료 복원 MySQL 데이터베이스 복원 /opt/redmine-~~~/apps/redmine/htdocs/config/database.yml에서 production 섹션 아래 DB(bitnami_redmine), user(bitnami) 확인하고, password 기록 sudo /opt/redmine-~~~/mys...

[DevTip] Ubuntu에서 Telnet, FTP 데몬 설치하기

매번 잊어버려... [기준] Ubunu 16.04.01 LTS 1. Telnet 일단 필요한 것 설치 sudo apt-get install xinetd sudo apt-get install telnetd 설정 파일(/etc/xinetd.conf) 수정 (아래 내용 추가) service telnet { disable = no flags = reuse socket_type = stream wait = no user = root server = /usr/sbin/in.telnetd log_on_failure += USERID } 서비스 재시작 sudo /opt/init.d/xinetd restart [참고] Telnet으로 root 접속시에는 /etc/securetty의 #Virtual Consoles 목록에 pts/0 부터 pts/9 까지 추가. 일반 계정 접속 후 sudo 활용시에는 불필요. 2. FPT vsftp 설치 sudo apt-get install vsftpd 설정 파일(/etc/vsftpd.conf) 수정 (allow_~는 추가) anonymous_enable=NO local_enable=YES write_enable=YES chroot_local_user=YES allow_writeable_chroot=YES 서비스 재시작 sudo service vsftpd restart [참고] 만약 allow_writeable_chroot=YES를 추가하지 않으면, 클라이언트에서 접속 시 500 OOPS: vsftpd: refusing to run with writable root inside chroot() 라는 에러 발생함.