'Software'에 해당되는 글 45건

  1. 2018.05.13 Linux | Ubuntu-Mate 를 원격 데스크탑으로 사용해 보자
  2. 2017.09.14 Software | FFmpeg 를 사용하여 동영상을 회전시켜 보자
  3. 2017.09.05 Software | u-blox 의 GPS 어플을 사용해 보자
  4. 2017.09.01 Software | Visual Studio Code 를 사용해 보자
  5. 2017.08.30 Software | IntelliJ IDEA 를 사용해 보자
  6. 2017.04.30 Software | Google AdSense 가입 및 설정하기
  7. 2017.04.16 Software | apt-get broken 해결 방법
  8. 2017.04.16 Software | CH341SER driver 최신 업데이트 하기
  9. 2017.04.11 Software | Arduino IDE 실행시키기
  10. 2017.03.06 Software | Arduino IDE 에서 library 추가하기

Linux | Ubuntu-Mate 를 원격 데스크탑으로 사용해 보자

|

1. headless server


특정한 일을 시키는 server 나 PC 는,

Desktop 화면이 필요 없어서 모니터를 연결해 놓고 사용하지 않고, 이를 headless 라고 표현합니다.


저번에 만들어 놓은 Raspberry Pi 3 도 MediaWiki 를 서비스 하지만,

궂이 Desktop 을 통하여 작업할 일이 없기 때문에 headless 로 구동되는 것이지요.


* Hardware | Cross cable 로 MediaWiki 서버 연결해 보기

http://chocoball.tistory.com/entry/Hardware-connect-MediaWiki-with-Cross-cable


다만, 아주 가끔 원격 desktop 으로 사용하면 편리할 때가 있습니다.

뭔가 확인하거나, 간단한 조작을 위해서 그렇지요.


이런 원격 데스크탑을 가능하게 하는 것으로는 Xdmcp, RDP, VNC 등이 있습니다.


이번에는 Linux 에서 가장 간편하게 쓰이는 VNC를 다뤄 보겠습니다.




2. VNC 설치


먼저 Ubuntu-Mate 인지라, "apt-get update" 를 통하여 repository 를 최신으로 업데이트 해줍니다.



다음으로, desktop 이 구동되기 위해 필요한 프로그램을 설치합니다.

명령어는 "apt-get install mate-desktop-environment-core" 입니다.



그 다음에, VNC 를 설치합니다.

코멘드는 "apt-get install vnc4server" 입니다.



이제 준비는 다 되었습니다.




3. VNC 구동


먼저 "vncpasswd" 를 실행하여 접속 비번을 입력합니다.


그리고 VNC 서버는 다음과 같이 해서 올라옵니다.

"vncserver :1".



VNC 서버를 죽일 때에는, "vncserver -kill :1" 하면 됩니다.



한번 vncsever 를 올렸다가 내리면 .홈디렉토리 vnc 하위에 xstartup 파일이 생성됩니다.

이를 다음과 같이, 노란색 라인을 추가해 줍니다.



아래는 command 정리 입니다.


apt-get install mate-desktop-environment-core

apt-get install vnc4server

vncpasswd

vncserver :1

vncserver -kill :1

vim $HOME/.../.vnc/xstartup
-------
exec /usr/bin/mate-session &
-------



4. VNC 로 접속


VNC 접속을 지원해주는 프로그램을 통해 VNC 가 돌아가고 있는 headless server 에 접속합니다.

저는 MobaXterm 을 사용했습니다.



짜잔~ 연결 되었습니다.



참 쉽죠?


And

Software | FFmpeg 를 사용하여 동영상을 회전시켜 보자

|

1. Tistory


iPhone 에서 찍은 동영상을 Tistory 에 올리다 보면,

스마트폰을 분명 가로로 눕혀서 찍었는데도 불구하고 세로로 올라가는 경우가 있습니다.


포탈에서 검색해 보면,

여러 상용이나, 무료 소프트웨어에서 "회전" 시켜주는 방법이 소개됩니다.


다만,

상용은 돈을 내야 하고, 무료 소프트웨어더라도 이 "회전" 이 들어가면 유료버전을 사용하라고 뜹니다. (아놔)

"내가 이거 돈들지 않고 고쳐본다" 라는 오기가 생기더군요.




2. FFmpeg


예전 미디어 스트리밍 업무에 관여하고 있을 시,

FFmpeg 라는 command line 어플을 알게 되었습니다.


여러 상용 transcoding / encoding 소프트웨어가 시장에 나와 있지만,

입맛에 맞게 in-house 개발을 하려면 FFmpeg 밖에 답이 없어 보였습니다.


그래, FFmpeg 라면 분명 뭐가 있을꺼야 라는 생각으로 작업을 시작해 봅니다.


일단 아래 link 에서 최신판 FFmpeg 를 다운로드 받습니다.


https://www.ffmpeg.org/download.html



참고로 FFmpeg 는 update 가 잘 되는 편이라,

예전 버전을 가지고 있으면 기능을 원활하게 구현하지 못하거나 더 좋은 방식을 못쓰는 경우가 있습니다.

꼭 최신판을 받으세요.


Windows 라면, directory 를 하나 만들어서 압축을 풀어 놓습니다.


실행 파일은 bin 폴더 밑에 ffmpeg.exe 파일 입니다.

자 시작해 볼까요?


참고로, 원본 파일은 다음과 같이 80MB 의 mov 파일 입니다.
확장자가 MOV 인것은 iPhone 에서 찍은 동영상이라서 그래요.
동일한 H.254 CODEC 인 MP4 도 당연히 가능합니다.





3. 단순한 metadata 수정으로 회전시키기

회전이라는 것은, 동영상의 property 중에서 회전 부분에 들어간 인자로 인하여
Tistory 어플이 그렇게 인식하고 회전시켜버렸을 수도 있습니다.

그러니 회전 관련 metadata 를 날려주면 될 것 같네요.

관련 command 는 다음과 같습니다.
"v:0" 로 지정된 input_filename.mov 에 "rotate=0" 를 넣으라는 이야기 입니다.

동영상 자체가 16:9 비율로 찍혀 있는 (가로) 정보가 있으므로,
회전만 없애주면 되겠지요?


ffmpeg -i input_filename.mov -c copy -metadata:s:v:0 rotate=0 output_filename.mov

실제로 실행시킨 화면 입니다.



"ffmpeg.exe" 가 실행되면서 동영상 파일의 여러 property 를 보여주는데,

"rotate : 90" 로 되어 있는 것을 확인할 수 있습니다.


metadata 만 바꾸어 주는 것이므로, 실행은 바로 끝나고 화일 용량도 거의 같습니다.






4. data 자체를 실제로 회전시키고 re-encoding 하기


부제목 그대로, data 자체를 회전시키면서 재 encoding 하는 방법입니다.

실행 command line 은 다음과 같습니다.

ffmpeg -i input_filename.mov -vf "transpose=2" output_filename.mov


여기서 중요한 key 는 "transpose=X" 입니다.


0 = 90CounterCLockwise and Vertical Flip (default)
1 = 90Clockwise
2 = 90CounterClockwise
3 = 90Clockwise and Vertical Flip


원본 소스가 시계방향 90 도로 틀어져 있으므로,

옵션 2를 선택하여 시계 반대방향 90 도로 지정하였습니다.


아래는 실제 실행시킨 화면 입니다.



metadata 단순 수정과는 다르게, 여러 정보가 쏟아져 나옵니다.

이는 실제로 re-encoding 을 통하여 모든 동영상 data 를 다시 구성했기 때문이지요.


80MB 짜리 mov 파일을 랩탑에서 돌리는데, 약 3분정도 소요된것 같습니다.


encoder 도 원본은 H.264 인데,

FFmpeg 를 거치면서 Lavc57 로 변경되었습니다. 아무래도 CODEC license 문제를 피해가기 위함인 듯 하네요.


완료 파일도 20MB 로 줄어들었습니다.




줄어들어서 좋긴 하지만,

인코딩 횟수를 더하면서 동영상 화질의 열화를 가져다 줄 듯 합니다.




5. 결과


* ORIGINAL

Tistory 에 바로 올리면 이렇게, 오른쪽 90도 틀어진 상태로 올라가게 됩니다.




* METADATA 삭제

metadata 만 삭제한 버전입니다.

문제 없이 원래대로 돌아 왔죠?




* RE-ENCODING

"transpose=2" 를 사용하여 re-encoding 시킨 파일 입니다.

잘 되돌려 놓기는 했습니다만, 살~짝 위의 metadata 와 비교시 화질 열화가 있습니다.


다만, 80MB --> 20MB 로 줄이면서 거의 차이가 없는 정도이므로,

시간이 허락한다면 이렇게 해도 문제는 없겠죠? 선택은 사용자가 판단하면 될 듯 해요.





6. 그럼 180 도 회전은?


180도 회전이 필요한 동영상은 "vflip + hflip" 으로 하면 될것 같습니다.


https://ffmpeg.org/ffmpeg-filters.html


다만, 이렇게 하면 화면이 뭉개져 버립니다. 이게 FFmpeg 를 사용하는게 어려운 점인것 같아요.

(Linux 버전에서는 테스트해보지 못했습니다.)


180도 회전을 하고싶은 경우는 아래와 같은 순서로 해야 합니다.


1. rotate=0 를 먹여서 metadata 를 reset 한다. (rotate=180 이 먹지 않는다.)

2. vflip + hflip 을 이용하여 180 도 회전 효과를 낸다.


명령어는 다음과 같이 하면 됩니다.


ffmpeg.exe -i R:\White_LED.MOV -c copy -metadata:s:v:0 rotate=0 R:\out.MOV

ffmpeg.exe -i R:\Out.MOV -vf "vflip,hflip" R:\vhflip.MOV


아래는 처음 원본 source 이고, 그 다음은 "rotate=0 --> vflip + hflip" 한 결과 입니다.

우선 "rotate=0" 입니다. 상하가 그대로죠?



아래는 최종적으로 "vflip + hflip" 한 결과 입니다.



잘 되죠? :-)


화질 저하는 거의 느끼지 못할만큼 있지만, 용량은 re-encoding 을 통하여 1/4 이상 줄었습니다.






7. Reference


아래 link 는 FFmpeg 을 이용한 회전 사용법에 대해 알아본 stack overflow 입니다.


https://stackoverflow.com/questions/20664460/remove-rotate-metadata-from-mp4

https://stackoverflow.com/questions/3937387/rotating-videos-with-ffmpeg/9570992#9570992

https://stackoverflow.com/questions/15335073/can-i-set-rotation-field-for-a-video-stream-with-ffmpeg/15336581#15336581




FIN

후훗, 이제 걱정 없구만.

다 덤벼~!

And

Software | u-blox 의 GPS 어플을 사용해 보자

|

1. u-blox


생소한 이름인 u-blox 라는 회사는 GPS 칩을 만드는 스위스 회사 이름입니다.




https://en.wikipedia.org/wiki/U-blox

- https://www.u-blox.com/en


일전에 NEO-6M 이라는 GPS breakout board 를 이용해 놀아 봤는데, 그 메인 칩을 제조하는 회사지요.


GPS 가지고 노는 내용은 아래 link 를 참고하세요.


http://chocoball.tistory.com/entry/Hardware-NEO6M-GPS




2. u-center


GPS 칩을 만드는 회사가 그것을 활용하는 소프트웨어도 제공하고 있습니다.

이름하야 "u-center". 다운로드는 다음 link 에서 받을 수 있습니다.


https://www.u-blox.com/en/product/u-center-windows



Android 버전도 있네요. 저는 Windows 에서만 사용해 봤습니다.

사용자 manual 은 다운로드 받아 놨습니다.


u-center_UserGuide_(UBX-13005250).pdf





3. 설치


파일을 받고 설치를 시작합니다.

먼저 언어를 선택하고.



본격적으로 설치를 시작합니다.



라이센스에 Agree 해줍니다.



Standard Driver 와 Sensor Driver 를 설치하는 부분입니다.

Sensor Driver 는 breakout board 가 없을 경우를 말하는건가? 잘 모르겠습니다.

의심스러우면 걍 Standard Driver 를 쓰라고 합니다. 예...



인스톨할 디렉토리를 선택하고. (어차피 디폴트)



완료~!!!



인스톨된 버전을 확인해 보면 아래와 같습니다. 8.26 이네요.

회사 주소가 Switzerland 라고 나와 있습니다. 가보고 싶네요.



회사 주소는 여기라는 군요.


- u-blox AG Zürcherstrasse 68 8800 Thalwil Switzerland


궁금해서 Google Maps 의 street view 로 확인해 봤습니다.

좋은 동네같아요. 깔끔하고. 이런곳에서 일하면 인생이 윤택해질것 같습니다.






4. 기능


실행을 시키면 이런 식으로 확인 할 수 있습니다.

와~~~!!! 여러 정보가 보입니다.



처음에는 미국 위성만 잔뜩 보이더니만, 가끔 일본 위성도 뜹니다.

아쉽게도 한국 위성은 보이지 않습니다.



Sky View 에서는 방위 및 각도별로 표시해 줍니다.

이동 괘적도 보여주네요.



신호 강도에 대한 Histogram 을 보여주는 듯 합니다.



한국 하늘에서 측정한 것인데, 지구가 둥글다 보니, 다른곳의 위성도 같이 잡히는게 신기했습니다.



Satellite Signal History 에서는 각 위성에서 받는 신호 세기를 보여줍니다.



Statistic View 에서는 수신한 신호에서 유용한 data 를 뽑아서 보여줍니다.

실제적으로 이 data 를 가공하여 유용하게 사용될 것 같습니다.



현상태의 data 를 dump 뜨는 기능도 가지고 있습니다.

아마 문제가 생겼을 시에 사용되는 기능일 듯 합니다.



Chart 에서는 data 를 여러 형식으로 보여줍니다.

아래는 해발 높이를 보여주는 듯 합니다.



Messages 에서는 여러 data 의 현재 상태를 나타내 줍니다.





5. 정지한 상태에서 확인


정지한 상태에서 프로그램을 돌려 봤습니다.

베란다 난간에 외부 안테나를 설치하고 u-center 를 돌려 봅니다.



오오오! 신호를 잡아서 현재의 위치 및 시간을 알려줍니다.



대박입니다. 이렇게 비주얼하게 볼 수 있다니.

그리고 GPS 를 통하여 이루어지는 data 는 엄청 여러가지가 있네요.




6. 움직이면서 확인


차 위에 설치해도 되고 dashboard 에 설치해도 됩니다.

외부 antenna 는 밑부분이 자석으로 되어 있어서, 차의 어느곳에나 착 달라 붙어 고정됩니다.



빵판은 데쉬보드 위에 올려 놨습니다.

PC와의 연결은 FTDI 호환보드인 CP2102 입니다.


http://chocoball.tistory.com/entry/Hardware-FTDI-FT232RL-using



이동하면서 측정했더니 확연히 다른 모습을 보여줍니다.

방위가 실시간으로 바뀌고, 속도계가 반응하기 시작했습니다!!!



외부 안테나를 사용해도 되나, 길게 늘릴 필요가 없어 NEO-6M 에 동봉된 길이가 짧은 안테나를 차 내부에서도 사용해 봤습니다.



달리면서 측정하니, GPS 의 진정한 가치를 알게 되는것 같습니다.




7. firmware update


원래 NEO-6M 제품을 사용하고 있으나, u-center 에서는 "u-blox 7" 으로 인식하고 있습니다.

NEO-6MV2 라고 표시되어 있는 만큼 그 사이에 chip 이 upgrade 되어서 그러는지 모르겠습니다.



메뉴의 "firmware update ..." 가 있어서 실행해 봤습니다.



Firmware image 는 u-blox 사이트에서 다운로드 받았고,

Flash Information Structure 파일인 "flash.xml" 은 u-center 프로그램 파일이 설치된 폴더에 있습니다.


결과는 에러...



사이트에서 제품 특징들에 대해 확인해 봤습니다.


이런... firmware update 를 할 수 있는 flash 가 장착된 칩은 "M" 이 붙으면 안되고,

"N" 이 붙어야 합니다.


https://www.u-blox.com/en/product/neo-7-series




더욱이, NEO-6 시리즈에서는 firmware update 를 할 수 있는 버전이 없다는 사실... 


https://www.u-blox.com/en/product/neo-6-series




만일 firmware update 가 가능하다면, 아래처럼 Extenstion(s) 부분에서 FWVER 항목이 나와야 할 것 같습니다.

(구글링 해서 찾아 봄)


Messages 의 MON-VER 를 확인해 보면,

7 시리즈는 맞는것 같은데, FWVER 옵션이 보이지 않습니다.



바로 포기합니다. (이미 해볼껀 다 해봤슴)

NEO-6M 을 샀는데 7 serise 가 들어있는 것만 해도 희한한 상황입니다.




FIN


GPS 를 통하여 지상에서 위성을 통한 무료 data 를 받아 이렇게까지 활용할 수 있다는 것이 신기했습니다.

GPS 는 문명의 이기임에는 확실해 보입니다.

NEO-M8N 보드를 구입해서 확인해 보고 싶어집니다.

And

Software | Visual Studio Code 를 사용해 보자

|

1. Microsoft 에서 나온 IDE


Microsoft 에서도 프로그램 IDE 용으로 "Visual Studio Code" 라는 공개 소프트웨어가 있습니다.



저번에 JetBrains 사의 IntelliJ IDEA 를 써 봤으니, 이번에는 Microsoft 꺼를 써보려 합니다.


http://- http://chocoball.tistory.com/entry/Software-using-IntelliJ-IDEA





2. Visual Studio Code


사용자들이 충실하게 만들어 놓은 Wikipedia 에서 좋은 정보들을 찾습니다.


https://en.wikipedia.org/wiki/Visual_Studio_Code


파일은 다음 link 에서 다운로드 가능합니다.


- https://code.visualstudio.com/


IntelliJ 처럼 기능상 차이로 유료/무료로 나뉘지는 않고, 그냥 무료 입니다.



자, 사용을 시작해 볼까요?




3. 시작


Windows OS 기본 언어를 일본어로 설정해 놓다 보니, 초기 화면이 일본어가 떴습니다.



지금까지 여러 일본어로 된 어플을 봐 왔지만,

폰트 사용이 가독성 면에서 최고로 괜찮은것 같습니다.




4. IntelliSense


IntelliSense 란, 요즘 IDE 에서 기본적으로 탑재되고 있는 보조기능입니다.

이 기능은, programmer 가 타이핑 하고 있으면, 미리 타이핑 할 것을 예측하여 보여주고,

programmer 는 모든 code 를 타이핑하는 것이 아니라, 보여준 예시에서 선택하여, coding 속도를 높이고 typo 로 인한 debugging 을 

줄여주는 역할을 합니다.


https://en.wikipedia.org/wiki/Intelligent_code_completion



시험삼아 C 파일을 불러들이자, C++ programming 에 관련된 IntelliSense 파일을 다운로드 받으라고 알려줍니다.



관련된 파일을 받고 reload 한 후, 코딩을 해보면, 몇글자 치면 적당한 예시를 보여주게 됩니다.

IntelliJ 에서 너무 충격받아, 이제 IDE 로서는 당연한 기능인것 같습니다.




5. 형상 관리


Project 를 생성시, 형상 관리로부터 가져올 수 있습니다.

Repository URL 을 입력하면 자동으로 다운로드 받고 확인할 수 있습니다.


최종적으로 GitKraken 과 같은 형상 관리 어플과 연동이 되는지는 모르겠습니다.

 


Repository 에서 clone 하여 가져올 것이냐고 물어보네요.



문제 없이 import 된 것을 확인할 수 있습니다.




6. Java


Java 소스를 열면, Java 프로그래밍에 필요한 보조적인 플러그인 이나 파일을 받으라고 이야기 해 줍니다.



Java 에 대한 Language Support 파일 인스톨을 선택합니다.



외부 링크에서 찾아서 사이트로 가보면 아래 정보가 뜹니다.

Red hat 에서 만들었군요.




Website 에서 인스톨을 실행시키면, 어플 안에서도 동일한 내용이 뜹니다.

Web --> Application 연동이 잘 되어 있습니다.


보조기능 파일 인스톨이 끝난 후, 리로드 하면, 다음과 같이 runtime 이 없다고 뜹니다.



JDK 를 등록해야 겠죠?

File > Preferences > Settings > Search 에서 JDK 를 치면 메뉴가 아나 나옵니다.


오른쪽 pane 에 설정하면 기본 설정을 override 한다고 합니다.

JDK 가 있는 폴더를 등록해 줍니다.


{
  "java.home":
  "C:\Program Files\Java\jdk1.8.0_112"
}




정상적으로 등록이 되면 Restart 하라고 나옵니다.






7. Java 에 대한 IntelliSense 의 간단 확인


이제 환경 설정과 필요한 파일이 모두 깔렸으니,

실제로 Java coding 을 해 봅니다.


IntelliJ 에서는 "sout" 이라고 치면 "System.out.println" 이 자동 입력되었습니다.

Visual Studio Code 에서는 "Syst" 까지 쳐야 그 후에 선택할 수 있게 되어 있네요.



의도한 대로 "System.out.println();" 이 자동 타이핑 되었습니다.



다른 기능들도 이정도는 합니다.




8. 간단 총평


인터페이스는 직관적며, 혼란스럽지 않은 메뉴 구성이지만, 아쉬운 부분이 있습니다.


- class 들간의 종속관계나 람다 표현이라는 것 까지는 보여주지 못한다

- 코드를 간략화 할 수 있는 tip 을 보여주지 않는다

- 예시가 IntelliJ 만큼의 퀄리티와 내용을 보여주지 못한다


급하게 사용해야 할 상황이 되거나, 그냥 저냥의 기능 정도로 충분한 개발에는 부족함이 없습니다.

다만, 조금 깊이가 있고, 코딩을 최적화 하는 용도의 IDE 로는 부족함을 느끼게 됩니다.




FIN

프로그래밍을 업으로 삼는다면, 그냥 돈주고 "IntelliJ" 사다 쓰세요.

그냥 IntelliJ 가 갑입니다.


IntelliJ is the RULE !!!

And

Software | IntelliJ IDEA 를 사용해 보자

|

1. Java 개발


저는 개발자가 아닙니다.

다만, IT 에서 일하다 보니, 간단한 스크립트나 Python / Perl 가지고 운영에 보탬이 되거나, 자료 작성시 어쩔수 없이 사용하게 됩니다.

프로그래밍은 절대 하지 않을꺼라는 대학교때 다짐을 했건만...


Java 프로그래밍을 배우면서 몇가지 IDE (Integrated Developed Envrionment) 를 사용할 기회가 있었습니다.

워낙 유명한건 Eclipse 겠죠?


http://www.eclipse.org/



Eclipse 사용시에도, 환경설정이 맞지 않으면 한발자욱도 앞으로 나아갈 수 없고

빨리 코딩하고 싶은데 진행할 수 없는 경우가 허다합니다.


특히 Java 는 JDK 도 있어야 하고, 버전도 맞아야 하고, Spring 까지 가면 돌릴 서버도 가리고...





2. IntelliJ


이번엔 IntelliJ 를 사용할 기회를 가지게 되었습니다.

자동으로 코드를 생성해 주는 "Intelligent Code Completion" 기능이 후덜덜 합니다.


https://en.wikipedia.org/wiki/Intelligent_code_completion


Java 는 여타 언어와 비교해서 코드 타이핑이 많습니다.

IDE 에서 Intelligent Code completion 을 지원하면, debug 뿐만 아니라 물 흐르듯이 코딩을 즐길 수 있습니다.


물론 Eclipse 에서도 지원 합니다만, 그 질과 성능이 완전 다릅니다. 신선한 경험이네요.




4. Download 및 설치


다운로드는 다음 link 에서 받습니다.

사용 용도에 따라서 Ultimate / Community 구분해서 다운로드 받으면 됩니다.


다만, Web 용은 일정 기간 후 사용 license 를 지불해야 하는 Ultimate 를 사용해야 합니다.

사용해 보면 비용이 아깝지 않음을 느낄 수 있습니다.


https://www.jetbrains.com/idea/



다운로드 받고 설치파일 실행한 화면 입니다.



설치할 장소를 물어보고...



어떤 런처를 사용할 것인지, 파일 확장자 연결을 할 것인지 물어봅니다.

저는 64bit OS 이니 64bit 를 선택하고, 파일 확장자 연결은 안하는 걸로 했습니다.

파일 확장자 연결은 편하기는 하지만, 리소스를 잡아먹는거라 선호하지 않습니다.



생성할 폴더를 보여주고 ...



완료!






5. 시작하기 전에


이미 이전에 IntelliJ 가 설치되어 있다면 설정을 가지고 올 것인지 물어봅니다.



UI theme 를 물어봅니다.

기본으로 할 것인지 "Darcula" 로 할 것인지 물어보는데, 저는 이 부분을 그냥 지나쳐 버려 나중에 따로 설정하였습니다.


당연, 눈의 피로가 덜한 검은색 바탕의 "Dracula" 태마가 추천입니다.




IntelliJ 를 돌리는 기본 플러그인들의 설정입니다.

Swing / Android / Dev Kit 은 사용하지 않으므로 제외했습니다.



Scala 도 사용하지 않고, Vim 도 사용하지 않을 것이므로 설치하지 않는 것으로 놔둡니다.

Linux 에서 vim 은 없어서는 안되지만, 궂이 GUI 환경에서 Vim 을 사용할 이유는 없으니까요.


이제 시작입니다. "Start using IntelliJ IDEA" 를 누르면 되요.




6. 시작 및 기본 설정


이제 시작 되었습니다.


새로 만들건지, 기존 프로젝트에서 가져올 것인지, 아니면 GitHub 등에서 다운로드 할 것인지를 물어봅니다.

GitHub 에서 가져올 것이라면 "Check out from Version Control" 하시면 됩니다.



새로 프로젝트를 만들면 다음과 같은 화면이 나옵니다.

JDK 가 깔려있지 않으면 선택할 수 없으니, JDK 를 다운로드 받습니다.



일단 인스톨 화면을 놔둔 상태에서 Java JDK 를 다운로드 받습니다.


http://www.oracle.com/technetwork/java/javase/downloads/index.html



다운로드 받은 파일을 인스톨 합니다.



성공리에 JDK 인스톨이 완료 되었네요.



다시 IntelliJ 프로젝트 생성 화면으로 돌아가 JDK 가 설치된 장소를 선택합니다.

주의할 것은 JRE 가 아니라 JDK 폴더를 선택해야 합니다.



제대로 선택하면 No JDK 에서, 다운로드 받은 파일의 버전으로 바뀌게 됩니다.

그리고 Java 프로젝트는 전무 Maven 프레임워크를 사용할 것이므로, "maven-archetype-quickstart" 를 선택해 줍니다.



이제 기본 설정이 끝났으며, 필요한 파일을 다운로드 받습니다.

Maven project 에 필요한 파일들은 자동으로 받을 수 있도록 "Enable Auto-Import" 를 클릭해 놓습니다.






7. 추가 설정


Java Compiler 가 제대로 설정이 안되어 있을껍니다.

최신판이다 보니 Java 9 으로 컴파일러가 지정되어 있을 가능성이 높습니다.


아래 메뉴로 가서, "Target bytecode version" 부분을 JDK 에 맞게 바꾸어 줍니다.


File > Settings > Build, Execution, Deployment > Java Compiler



또한, project 를 생성 후, project 에서 오른쪽 클릭하면 나오는 아래 메뉴에서

Language Level 을 변경해야 합니다.


Project > Open Module Settings > Language level



Java 8의 혁신적인 기능인 Lambda 가 표시되네요. JDK 가 1.8 이므로 8을 선택하였습니다.



마지막으로 theme 를 제대로 "Daracula" 로 선택하였습니다.


File > Settings > Editor > Color Scheme > Scheme > Dracula





8. 이런 저런 기능


클레스를 만들면, 풀다운 메뉴로 Class 인지 Inteface 인지 선택하개 해줍니다.

물 흐르듯 자연스런 생성 방법이네요.



문법으로서 틀린것은 아니지만, 간략하게 할 수 있거나, 최신 버전에서는 생략해도 되는 것들은

따로 알려줍니다.



Override 했을 시에는 상위 클레스와 연관된 부분을 왼쪽에서 윗 화살표로 보여 줍니다.



상위 클레스는 종속된 클레스가 있는 경우, 그 부분을 표시해 줍니다.

(너무 친절해... ㅠㅠ)



GitHub 등과 같이 Version Control repository 에서 소스를 가져올 경우는,

URL 을 카피하고...



"File > New > Project from Version Control > GitHub" 를 선택하면 됩니다.





9. Intelligent Code Completion


그렇습니다. IntelliJ 를 사용해야 하는 최강의 이유가 바로 "Intelligent Code Completion" 이죠.


뭐 기본적인 완성이나 debugging 도 해주지만,

단축 글씨로 코드를 완성해 주기도 합니다.


아래 스샷은 "public static void main" 의 약자인 "psvm" 을 치고 tab 키를 누르면

코드를 완성해 줍니다.



짜잔~~



System.out.println() 도 sout 이라고 치고 tab 키를 누르면 바로 만들어 줘요.


더욱 놀라운 것은 Java 8 부터 사용된 Lambda 표현식으로 변경할 수 있으면,

그걸 알려줍니다.



또한 lambda 로 구성된 문장은 왼쪽에 람다 아이콘으로 표현하여, "이것이 람다여~" 라고 알려줍니다.





10. JetBrains


이런 멋진 프로그램을 만든 회사는 JetBrains 라는 회사.


https://www.jetbrains.com/



이틀밖에 사용해 보지 않았지만, 이걸 어떤 사람들이 만들었을까 싶었습니다.

뭐야, 이사람들은 다 영화배우야?



수준이 느껴집니다.

채용 공고를 보니, 인턴쉽도 한국 대리급 이상 연봉이예요. 인턴쉽이라고!


사무실 분위기도 creative 란 이런거야를 보여주는 인테리어 입니다.



몸을 뒹굴뒹굴 하면서 뇌의 시넵스가 막 연결될것 같습니다.



개발에 집중할 수 있고 최적화된 회사네요.

위치가 어딘가 했더니만 체코의 프라하 였습니다. OMG!


Starbucks 를 좋아하는 저로서는 궁금했습니다. 체코의 Starbucks 는 어떨까?



여긴 가야해 !!!






FIN

세상을 살기 좋게 만드는 건 이런게 아닌가 라는 생각에 잠겨 봅니다.

나도 JetBrains 에서 일하고 싶다...

And

Software | Google AdSense 가입 및 설정하기

|

1. 시작하기

모두들 Google AdSense 를 사용하여 부업하는데 일조하고 있는 듯 하여,
저도 얼른 쫒아가고 싶었습니다.

이로써, Gomez Peer 와 MQL5 다음으로, 컴퓨터로 하는 3번째 부업이 됩니다.



2. 신청하기

Google AdSense 신처 사이트에 가서 신청합니다.

https://www.google.com/adsense/start/

예전에는 Tistory 처럼, 각 개인이 host 명으로 가지고 있으면 허가가 나지 않는 때가 있었습니다만,
지금은 풀린것 같습니다.

바로 위의 사이트 가셔서 신청하세요!!!



3. 승인

승인을 얻기까지는 시간이 꽤 걸렸습니다.
비승인 이유는, 사이트에 게시물이 너무 없다... 글의 카테고리 분류가 없다로 2번 reject 당했습니다.

글을 20개 이상 채우고, 일주일에 한건 이상은 올리려고 노력하니 승인이 되네요.


4. 애드센스 관리 사이트

블로그에 애드센스를 배치하기 전, 관리사이트에서 광고 하나를 생성해야 합니다.

뭘 모르니 일단 "Responsive - Automatic size" 를 선택합니다.
HTML 적으로 본다면, 게제된 위치에 따라 사이즈를 맞춰준다 하네요.

여러 옵션 중, 테마도 선택할 수 있게 되어 있습니다.
저는 눈이 편안한걸 좋아하니, dark 계열로 선택합니다.

나머지는 default 로 하고 완료하면, 위와같이 Ad code 가 발행됩니다.
이제 이걸 사이트 원하는 위치에 걸어 놓으면 되겠죠?


5. Tistory 블로그

저는 개인 domain 을 가지고 있지 않고,
유지비용이 아까워서, Tistory 를 사용하고 있습니다.

이런 부업이 자동적으로 demain 취득 및 유지비용을 감당하게 되면, 그 때 domain 취득을 하려 합니다.

우선 위에서 받은 Ad code 를 블로그에 삽입하기 위해서 Tistory 관리 페이지로 갑니다.

메뉴 중에서 HTML source code 를 조작할 수 있는, "HTML/CSS 편집" 으로 들어갑니다.

Google Chrome 브라우저에서는 사이트 방문시, 오른쪽 클릭을 하면, "Inspect" 라는 옵션이 있습니다.
이는 브라우저의 동작 방식이나, 사이트의 구조를 조사할 수 있게 하는 개발자를 위한 옵션입니다.

넣고싶은 위치가 본문 시작 바로 윗부분이니, 소스코드를 보면서 그 부분을 찾아 냅니다.

위치를 찾았으면 Ad code 를 삽입하면 되겠죠?

짜잔~~~!!!

원하는 대로 위치를 잡은 듯 합니다.
본문 글 제목과 너부 붙어 있어서 <br> 코드 하나 넣어주는 것은 덤.



6. AdSense 통계

이제 AdSense 에 로그인 하면, 접근 통계를 볼 수 있습니다.

이제야 시작할 수 있네요.

처음 시작부터 여기까지 오는데 만 1년정도 걸린 듯 합니다.
부지런하거나 신경을 많이 쓸 수 있으면 더 빨리 할 수 있겠지만, 본업이 바쁜지라 겨우 1년만에 성공했네요.

이제 남은건 blog 에 글 많이 올리고, 사람들을 들어오게 하는 것 뿐입니다.
화이팅~!



FIN

이제 뭘하지?

And

Software | apt-get broken 해결 방법

|

1. 시작하기

apt-get 을 SSH 원격으로 실행시키고 다른 일이 바빠 놔뒀더니만 session 이 끊어졌습니다.

다시 재접속 하고 "apt-get update" 를 실행시키니 아래와 같은 내용이 뜹니다.


두둥!



apt-get 실행 중에 멈춘 문제로 lock 파일이 걸려있습니다.


그냥 lock 파일을 삭제하고 실행 process 죽이고 다시 실행을 시켜버려? 하다가,

가만... 그렇게 되면 안좋은 일이 발생할것 같은데? 라고 하고 구글신에 물어봅니다.



2. 안돼~

그렇습니다. lock 파일 삭제와 process kill 은 최후의 방법이고,

그 과정에서 바보되는 OS 가 수두룩 했습니다.


그 예의 하나인 내용을 아래에 기록해 봅니다.


https://askubuntu.com/questions/15433/unable-to-lock-the-administration-directory-var-lib-dpkg-is-another-process


You can force the lock off by removing the file,

but it's not recommended without first closing the program that's holding the lock safely,

since you could cause corruption or interrupt an installation (bad).

The command provided by João should close the program that holds the lock

and then remove the lock but won't protect you from install interruption:


sudo fuser -cuk /var/lib/dpkg/lock; sudo rm -f /var/lib/dpkg/lock


And the same command can be used for the apt cache lock:


sudo fuser -cuk /var/cache/apt/archives/lock; sudo rm -f /var/cache/apt/archives/lock


IMPORTANT:

only do this as a last resort since it can crash your system.

First try killing any running instance of apt or aptitude as described in Faheem's answer.


그럼 어떤게 좋은 방법이야? 라고 고민하던 중,

OS 에서 자연스럽게 rebooting을 기켜보면 어떨까 하고 실행해 봅니다.


강제적으로 "rm -f lock && kill procss" 하는것 보단,

OS 가 어느정도 알아서 해줄것 같은 느낌이 들었습니다.



3. 빙고

역시 reboot 을 하니, lock 이 풀렸습니다.


바로 "apt-get update" 를 실행시키니, 정상적으로 실행된 후, 복구 command 가 표시됩니다.



dpkg --configure -a


실행시키면 복구가 진행되면서 기존 설정을 keep 하고 원복시킬 것인지, update 할 것인지 물어봅니다.

혹시 모르니 일단 keep 을 선택합니다.




4. 결론

위의 과정이 끝나면 평상시와 같이 "apt-get update && apt-get upgrade" 해주면 정상적으로 완료됩니다.

결국 apt-get 에서 lock 이 걸리면 다음과 같이 진행하면 문제가 없습니다.


1. reboot
2. apt-get update
3. dpkg --configure -a
4. keep defaults
5. apt-get update
6. apt-get upgrade
7. done

휴... 살았네.



FIN

And

Software | CH341SER driver 최신 업데이트 하기

|

1. 시작하기

Chinese clone 인 arduino nano 를 이용하여 data 를 전송하는 프로그램을 돌려보면, 유난히 buffer 부족에 대한 에러가 많이 나옵니다.


아마 정품과 구성품이 다른 부품이 그 원인인 듯 하고,

또한 이를 제조한 WCH 사의 driver를 통해서만 arduino nano 에 접근이 가능하므로 driver 를 의심해 보기로 합니다.



2. 찾기

외국 친구들이 설명해 놓은 chinese clone driver 는 예전 버전이 많습니다.

WCH 가 만들었으니, "http://www.wch.cn/" 사이트에서 찾아보기로 합니다.


글은 까만색이요 흰색은 종이.... 레벨입니다. (중국어 모름)



다행이 검색란이 있으니, 찾고자 하는 driver 의 정확한 명칭인 "ch340ser" 을 칩니다.



오호이~ 나왔습니다.

여러 OS 별로도 연관 파일에 표시되어 있습니다.




3. Windows용

파일을 받고 실행해 봅니다.


역시 드라이버 버전이 바뀌어 있습니다!




혹시 몰라 장치관리자 > COM6 > 오른쪽 클릭하여 "드라이버 갱신" 에서 인터넷에서 갱신하면, 한번 더 하더군요.






FIN

뭐가 달라졌는지 여러가지로 해봐야겠습니다.

And

Software | Arduino IDE 실행시키기

|

1. 시작하기

Arduino 에 프로그램을 밀어 넣고 실행시키려면, arduino IDE 가 필요합니다.

Arduino IDE 를 실행시키려면, USB로 연결되는 arduino 본체를 인식해야 합니다.


여기에 더하여, 저는 Chinese clone 이므로, 일일히 driver 를 찾아서 설치해 줘야 합니다.


Arduino IDE 를 실행시키면 Happy Coding 의 세계가 열리는 것이죠.


자, 시작해 볼까요?



2. 파일 받기

다운로드 받는 곳은 아래와 같습니다.

http://www.arduined.eu/ch340g-converter-windows-7-driver-download/






3. 드라이버 인스톨

파일을 받고 압축을 풀면 SETUP 실행파일이 있습니다.

저는 Windows 7 64bit 이므로 "DRVSETUP64.exe" 파일을 실행시킵니다.



실행시키면 다음과 같은 화면이 뜹니다.



INSTALL 을 하면 완료 됩니다.



위의 과정을 거치기 전에는 USB를 꼽으면 아래 스샷처럼 인식할 수 없는 기기로 보입니다.



Driver 를 인스톨 하고 USB를 꼽으면 아래 스샷처럼 기기를 정식으로 등록하게 됩니다.



드라이버를 인식했습니닷 !!!

Port 정보를 잘 알아둬야 합니다. 여기서는 COM6 네요.





4. IDE 실행

이제 arduino 기기를 OS에서 인식했으니, 설치한 IDE 를 실행합니다.

IDE 다운로드는 다음 URL 에서 가능합니다.


https://www.arduino.cc/en/main/software


설치 후, 실행시킵니다.


작년 처음 시작할 때는 1.6 이었는데, 지금은 1.8 이네요.




5. 인식 시키기

IDE 를 실행시키면 바로 되는게 아니라, USB로 연결된 arduino nano 를 정식으로 등록해 줘야 합니다.

기기 등록은, Tools > Board, Processor 와 Port 정보 입니다.


Board 는 "Arduino Nano" 를 선택합니다.



Processor 는 "ATmega328" 을 선택합니다.



저의 경우의 Port 는, 아까 확인했던 "COM6" 를 선택합니다.



연결이 완료되면 beacon 신호를 보내는 것처럼 ready 상태를 나타내 줍니다.



이제 준비 완료 입니다!

이젠 Happy Coding 이지요.



FIN

이제 뭘하지?

And

Software | Arduino IDE 에서 library 추가하기

|

1. 시작하기

새로운 sensor 나 module 을 구매하여 구동시키려면,

제조 vendor 에서 제공한 library 가 필요합니다. (밑도 끝도 없이 혼자 파볼 수는 없는 일!)


- https://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use/installing-a-library


그래서, module 이 구해지면 자동으로 library 추가가 필요합니다.



2. ZIP 으로 추가하기

메뉴에서 Sketch > Include Library > Add .ZIP Library...

이렇게 하면 편하게 library 를 추가할 수 있습니다.



위에서처럼 추가하면, 아래처럼 추가한 library 가 보입니다.




다만, 정식 제품이 아닌,

clone 제품 등을 사용하거나, 비슷한 제품을 사용하게 되면, 이 library 소스를 조금 수정해야 하는 일이 발생합니다.

(완전히 같을 수는 없겠죵)



3. 직접 추가하기

메뉴로 추가하면 편하지만, 한가지 단점이 있습니다.

바로 위에서 이야기한, clone 제품일 경우 library 수정이 필요한 경우가 있습니다.


이럴때는 다음과 같은 순서로 작업을 합니다.


A) Library ZIP 파일을 다운로드

B) 개인이 관리하는 장소 (예: Windows OS 의 "내문서" 하위에 "Arduino" 폴더) 를 작성

C) 다운로드 받은 파일을, 새로 만든 폴더에 압축을 품

D) 압축 풀때 사용하는 folder 명을 수정

예) Adafruit_BMP280_Library_master --> Adafruit_BMP280


E) 수정한 파일 열어서 수정 후, 저장


위의 방식으로 하면, "File > Examples" 에서 등록된 것을 찾을 수 있습니다.





FIN

모두 Arduino 가지고 enjoy your life 하세요~!



And
prev | 1 | 2 | 3 | 4 | 5 | next