2017년 1월 26일 목요일

마우스 두개를 한번에 사용하기(Using Multi Mice, mouses)

하나의 컴퓨터에서 두 개의 마우스를 사용하고 싶었습니다.

듀얼 모니터를 사용할 때 한 화면을 공유하면서(Ex>프레젠테이션) 두 화면에서 각각 다른 작업을 하고싶을 때가 있거든요.

여러 프로그램들이 있었지만 저는 

PluralInput 이라는 프로그램이 가장 좋았습니다.

간단히 링크(https://pluralinput.com/) 들어가서 Download 받고 설치한 후 두 개의 Mouse를 연결하면 각 각 따로 사용할 수 있습니다.

현재 Beta 버전이라서 무료 이며 Commercial 버전을 따로 구매할 수 있습니다.

Mice on Windows 그림

Mice on  Windows 동영상






2017년 1월 22일 일요일

정규식(regular expression) 사용 예시들 - 실무에 사용 후 기억하기 위해

1. 역참조(backreference)
Notepad++ 에서는 문자열 검색 시 정규식을 지원해 줍니다.



다양한 사용법 중 강력한 기능은 "역참조" (backreference) 입니다.

특정 문자열을 찾은 다음 그 문자열을 재 참조하여 사용할 수 있다는 의미 입니다.

예를 들어

92983/예시1 ;;Example200001
65453//예시2 ;Example400002

라는 문자가 있을 경우 여러가지 방법으로 정보를 추출하고 싶어 집니다.

숫자들(92983, 65453) 만 뽑거나
예시의 번호(1, 2)만 뽑는 것
혹은 Example 의 번호(200001, 400002) 를 뽑을 수도 있고
그 외에도 다른 여러가지 방법으로 뽑고 싶은 상황이 생깁니다.

치환은 이 때 사용할 수 있는데

아래 형태로 검색하면 위 내용이 한줄 씩 검색이 됩니다.

([0-9]+)[\/]*(예시[0-9 ]+)[\;]*(Example[0-9]+)


만약 마지막의 내용(Example 관련)만 뽑고 싶다면
바꾸기 에서 \3 을 입력하면 됩니다.

\3은 ( 과 ) 으로 감싸져 있는 3번째 항목 나타내는 말 입니다.

matching 시 개수를 지정하려면
[정규식]{번호}

2. 함수들 만을 남기기 위한
^((?!\([ a-zA-Z0-9\,\_]*\)).)*$
설명: 함수 선언의 필수인 ( 와 ) 를 가지고 있지 않은 줄을 찾기 위한 정규식

3. 특정 캐릭터가 없는 것
(?!\()
\( 가 없는 조건을 만들기 위하여 이 것을 "(?!" 과 ")" 를 감싼다.
?! 의 의미 ? 의 의미 ! 의 의미를 따로 알아야 한다.

4. 특정 캐릭터로 끝나는 것 (Link)
^.*(?<!to)$

5. 최소 몇개의 캐릭터가 있어야 하는 것
([0-9\:]{1,9})( )([0-9\:]{1,9}) ([A-Za-z\_0-9\,\?]*)
보통 * 만 쓰면 없을때도 있기 때문에{1, 9} 처럼 최소 1개 에서 9개 까지 를 명시해 주면 직관적으로 이해할 수 있다.

6. Visual Studio 에서 특정 함수를 print 하려고 할때

찾을 문자열: ([0-9a-zA-Z \=\_\-\*\,\(\)\;\:\" ]*cv[a-zA-Z0-9]*\([0-9a-zA-Z \=\_\-\*\,\(\)\;\:\" ]*;)
변경할 문자열: \1\n\#ifdef _DEBUG\n_cprintf\(\"\1\"\);\n\#endif
추가: \" 에 대한 고려

2017년 1월 15일 일요일

Datasheet 읽는 법

datasheet는 왜 중요할까요?

전자분야를 시작하는 사람에게 경험자들이 "Datasheet 먼저 읽어봐" 라고 하는 것을 듣게 됩니다.

왜 그렇게 datasheet가 중요한 것이며 그 datasheet에서 어떤 정보를 얻을 수 있는 것일까요?

하지만 결국 많은 경험이 있어야지만 Datasheet에서 많은 내용을 얻을 수 있는것 같습니다. Datasheet를 처음부터 끝까지 읽는 것은 정말 도움이 되는 것일까요?

---

간단히 얘기하자면 Datasheet는 그 부품에 대한 완벽한 백과사전 입니다.

좋은 Datasheet는 당신이 알아야 할 모든 것을 이야기 해 줄 것입니다. 그 정보를 이용 하세요.

많은 Design Error는(그 부품을 사용한 시스텡의) 그 부품의 Datasheet에 적혀있는 Spec을 대충(고의이건 아니건 간에)보았기 때문 입니다.

가장 분명한 사실은 datasheet는 Pin 들을 보여준다는 것입니다, 그래서 당신은 어떻게 Pin 을 연결해야 할 지 알 수 있습니다.

144개 Pin이 있는 Controller 라면 datasheet 없이는 어떻게 연결해야 할 지 알 수 없는것은 당연 합니다.

그리고 Datasheet가 있어도 간단한 diode 회로도 정도가 있어야 합니다.

Pin Configuration
Absolute Maximum Rating
Voltage and Current rating: power supply range,

추가 정리 필요.

Link

2017년 1월 4일 수요일

CSS Tutorial Code Automation

제작 순서
1. CSS 를 공부하고 싶다고 생각
2. http://www.w3schools.com/css/ 의 example 이 유용하다는 것을 발견
3. 하나의 페이지 내용 확인
4. python 으로 automation 해서 한눈에 보고싶다고 생각
5. page source 에서 필요한 link 들을 추출(notepad++ 에서 regular expression 사용)
6. 화면상의 button 을 누를 수 있도록 id 확인
7. python code 작성
8. 동영상 프로그램 실행
9. 7번 code 실행하며 동영상 녹화

제작 순서 with 자료
1. CSS 를 공부하고 싶다고 생각
2. http://www.w3schools.com/css/ 의 example 이 유용하다는 것을 발견
3. 하나의 페이지 내용 확인(HTML 에 CSS를 추가할 때의 차이점을 보여준다)


4. python 으로 automation 해서 한눈에 보고싶다고 생각
5. page source 에서 필요한 link 들을 추출(notepad++ 에서 regular expression 사용)


6. 화면상의 button 을 누를 수 있도록 id 확인

7. python code 작성


 
8. 동영상 녹화 프로그램 실행
9. 7번 code 실행하며 동영상 녹화(전체화면)
  -> 직접 클릭하면서 보고, 직접 작성하는 것이 좋지만. 동영상을 돌려가면서 짧은시간에 전체를 보는 것도 좋겠다고 생각 했습니다.

2016년 12월 29일 목요일

CANdb(.dbc file) python으로 parsing 하기

1. 개요
차량관련 업무를 하면 차량네트워크 통신(CAN, LIN, MOST, Ethernet 등)을 사용하게 되었습니다.
실제 H/W 를 물리지 않은 상태에서 Simulation 을 해야 할 때는 필수로 Vector 사에서 제공하는 S/W 인 CANoe 로 각 Node를 구성하고, 사용하는 통신에 맞는 H/W 를 연결하게 됩니다.
그리고 그 H/W 를 통해 Message(Signal로 구성) 를 Send(Tx), Receive(Rx) 를 하기 위하여 CANdb, IG block, CAPL Block 을 사용하게 됩니다.

이중 CANdb 는 일회적인 Message만이 아닌 Network 의 전반적인 주기적 통신을 포함합니다.

.dbc 파일 CANdb++ 로 본 것
2. 본론
Vector에서 무료로 제공하는 CANdb++ 를 사용하여 내용을 이해할 수 있는데 Message가 많아질 경우 한눈에 보이지 않는 것을 느껴 평소 하는대로 엑셀(xlsx 혹은 csv)에 모든 데이터를 넣어서 참조하고 싶었습니다.

.dbc 파일 notepad 로 본 것

해당 .dbc 파일은 text 로 구성되어 있고 내용을 보면 역시 구조화가 되어 있다는 것을 볼 수 있습니다.

그래서 Parsing을 하면 되겠다 라고 생각했지만 아무래도 시간이 많이 걸릴 것 같은데다 제대로 할 수 있을지 의문이 들긴 했습니다;

그래서 Google 검색을 하니 역시 누군가가 만들어 놨더라구요.






















package Github 링크
python package download

압출을 풀면 아래 내용이 나오며
python.exe setup.py install 명령을 통해













설치하면 여러가지 파일이 생성 되지만 지금 필요한 것만 소개하면
canconvert-script.py 파일 입니다.











3. 결론
.dbc 파일을 excel 혹은 csv 로 변경하고 싶으면 command line에서
"python.exe canconvert-script.py XXX.dbc XXX.csv"
이라고 명령을 주면

XXX.csv 파일이 생성 됩니다.

그 결과 원했던 대로 .dbc 파일 내용을 .csv 형태로 볼 수 있습니다.(.xlsx 은 csv->xlsx 변경만 하면 됩니다.)


전 검색하기 편해서 좋습니다.

2016년 12월 8일 목요일

Confluence 의 table을 csv(excel)로 export 하기

회사에서 Confluence(atlassian 의 S/W) 를 사용하고 있습니다. 

Wiki 로 프로젝트 관리, 정보공유 등을 (저렴한 가격으로)진행할 수 있어 최근 가장 유명한 S/W 로 알고 있고 정말 편리 합니다.

 Excel을 import 시켜도 Excel 화면을 화면에서 바로 볼 수 있어 유용하지만, Table 형태로 사용하는 경우도 있습니다.


그런 Table은 현재 Word 나 PDF 로만 export 가 가능하도록 되어 있습니다.

저의 경우 Table 형태로 된 데이터를 다루기에는 Excel 이 가장 편리한데 Excel 로 바로 export 할 수 없어서 불편함을 느끼고 있었습니다.


개선을 위해서 검색해 보니 html(confluence page 포함) 에서 table을 빼 내는 javascript Code를 공유해 준 블로그가 있어 적용을 해 보았는데 100% 만족 하였습니다.

사용 방법
1. 관련 자바 스크립트(Export To CSV)를 bookmark로 지정하고(Explorer 10이상)
    - 위 링크를 드래그 하여 bookmark로 등록 하면 됩니다.

2. 원하는 페이지에서 해당 bookmark 를 실행 시킵니다.

3. 해당 페이지의 Table 위에 export to csv 라는 링크가 생기고

4. 그 링크를 click 하면 Table이 csv 형태로 저장 됩니다.

(추가)
5. 해당 csv 를 click 하면 default 로 excel로 열리는데 한글은 깨져 있습니다.
6. notepad++ 등 다른 editor로 열면 한글이 살아 있습니다.
    -> 이 부분은 인코딩 문제인 것 같은데... 잘 몰라서 공부해야 할듯 합니다...
(코드)
7. 해당 코드는 원본 블로그에서 보실 수 있으며 위 bookmark로 지정한 링크에서도 보실 수 있습니다.

(161210)
8. csv 파일과 자동 연결되는 Excel 로 열면 한글이 깨져 있지만 Notepad++ 와 같은 에디터로 여니 깨지지 않았습니다. UTF-8로 되어있기 때문?
9. Notepad++ 로 연 상태에서 전체 텍스트를 복사한 다음 notepad를 새로 만들어서 붙여넣고 저장하면 새로 열었을 때 깨지지 않았습니다. 이는 window에서 파일을 만들면 자동으로 ms949 로 인코딩을 하기 때문? 입니다.