i3 윈도우 매니저는 불친절하기 그지없는데요, 배경 이미지를 설정하는 것조차 커맨드로 처리해야 합니다. ㅠㅠ feh라는 도구를 활용해서 말이죠. 아래는 ~/.config/i3/config 파일을 수정해서 매번 로그인할 때마다 배경을 로딩하도록 해주는 코드입니다.

# 절대 경로와 함께 아래 라인을 추가해줘야 함
exec --no-startup-id feh --bg-scale /home/user/사진/background.jpg

아아... 정말 불친절하기 그지없네요. 뭔가 한 방에 다 깔끔하게 처리해주는 패키지가 있으면 좋을텐데 말이죠. ^^;;;
그럼 좋은 하루 되세요 >ㅁ<)/

최근 뜨고 있는 쉘로 ZSH, Z Shell가 있는데요, 무엇보다 Git에 친화적인 인터페이스때문에 요즘 저도 쓰고 있습니다. 처음 ZSH를 설치하면 일반 bash와 크게 다를 바가 없어서 조금 실망할 수 있는데, 밋밋함을 없애고 기본적인 셋팅을 해주는 것이 Oh My Zsh 입니다.

Oh My Zsh를 설치하고 홈 디렉터리에 있는 .zshrc만 수정해주면 Git 친화적인 쉘이 탄생하는데... 써보고 싶은 분들은 아래와 같이 입력하시면 됩니다.

# Zsh 설치
$> sudo apt-get update
$> sudo apt-get install zsh

# Oh My Zsh 설치
$> curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh

# Git 친화적인 테마인 agnoster로 설정 변경
$> vi ~/.zshrc
...
ZSH_THEME="agnoster"

# Zsh 실행
$> zsh

그럼 좋은 하루 되세요 ^^

요 근래에 너무 바빠서 업데이트를 진행할 시간도 없었는데, 간만에 오늘 아이맥에 업데이트를 실행했습니다. 기분 좋게 다운로드가 완료되고 리부팅 뒤에 설치가 잘 진행되었는데요, 이때부터 사파리가 비정상 종료되고 앱스토어가 먹통이되는 문제가 발생했습니다. 아... 세상에... 눈 앞이 깜깜한 게 스티브 잡스가 급 그리워지더라구요. ㅠㅠ

터미널로 소프트웨어 업데이트를 찾는 명령어가 있길래 직접 실행해봤더니 아래와 같이 AMSupportURLConnectionDelegate가 중복으로 구현되었다는 오류가 보였습니다.

nonames-iMac:~ noname$ softwareupdate -l
objc[1457]: Class AMSupportURLConnectionDelegate is implemented in
both /System/Library/PrivateFrameworks/OSPersonalization.framework/Versions/A/OSPersonalization(0x1116ba498) and /System/Library/PrivateFrameworks/EmbeddedOSInstall.framework/Versions/A/EmbeddedOSInstall(0x111848748). One of the two will be used. Which one is undefined.
Software Update Tool

Finding available software
No new software available.
nonames-iMac:~ noname$

인터넷을 한참을 뒤지니 맥 OS의 업데이트가 일부만 진행되었을 때 이런 문제가 발생한다고 하길래, 모든 업데이트가 한 번에 들어있는 콤보 업데이트를 찾아서 설치하여 문제를 해결했습니다. >ㅁ<)-b 맥 OS High Sierra의 최신 콤보 업데이트는 High Sierra 10.13.2 Combo에서 찾을 수 있습니다.

이제야 다시 개발을 시작할 수 있겠군요. ^^;;; 다들 즐거운 밤 되세요. ^^

요즘 리눅스 커널에 특별한 기능을 넣고 있는데요, 이것 때문에 성능 저하가 얼마나 나오는지를 측정해야되서 밴치마크 툴을 찾아보니 SPEC CPU 2006을 많이 사용하더라구요. ^^;;; 그래서 저도 한 번 해보기로 했는데... 2006년도에 나온 버전이라서 그런지... 페도라 21버전에서는 빌드 오류가 발생했습니다. ㅠㅠ

이게 오류가 한 두개면 어찌 고쳐보겠는데... 뭔가 산 넘어 산처럼 계속 나오더라구요. 그래서 구글신께 여쭈었더니 역시나~!! 해결법을 알려주셨습니다.

아래는 CPU 2006 빌드에서 발생하는 오류를 해결하는 링크입니다. ^^

https://wiki.linaro.org/MichaelHope/Sandbox/BuildingSPECTools

http://www-hiraki.is.s.u-tokyo.ac.jp/members/tomari/runspec.html

그리고 이건 SPEC CPU 2006에 대한 간단한 사용법을 잘 정리해놓은 사이트입니다.

http://jmanbal.tistory.com/entry/spec2006-install-%EB%B0%A9%EB%B2%95

아아... 이제 성능이 잘 나오길 비는 것만 남았네요. ^^ 그럼 좋은 하루 되세요 ^^

판다보드용 우분투를 아래 명령으로 업그레이드를 진행한 후, Omap4-extras 패키지를 설치하면 리부팅 중 멈추는 오류가 발생합니다. ㅠㅠ 아아 정말 삽질은 끝이 없군요 ㅠㅠ

sudo update
sudo upgrade
sudo clean
sudo reboot

확인 결과 PHP5와 Omap4-extras 패키지가 같이 설치되면 커널 부팅 오류가 발생했는데요, 해결법은... 둘중에 하나를 안까는 겁니다. ㅠㅠ 사실 서버를 만들어 놓고 LAPM을 설치하지 않는 건 말도 안되는 일이라... Omap4-extras를 포기했습니다. ㅠㅠ

아아.. 드디어 긴 삽질이 끝났군요. ㅠㅠ

그럼 좋은 하루 되세요 ^^

집에 애기가 있는지라 소음이 심한 PC 대신에 소음이 거의 없는 맥미니를 주로 사용하고 있습니다. 사실 아주 옛날에 중고로 산 모델이라 성능이 엄청 떨어져서 하드(?!)한 작업은 좀 힘든데요, 그래도 꾸역꾸역 쓰고 있는 중입니다. ㅠㅠ

제가 vi를 좀 좋아하는지라(^^;;;) Sublime Text2를 vi 모드로 설정해서 쓰고 있는데요, 커서 이동을 위해 J나 K 같은 문자를 길게 누르면 키가 반복 입력되서 이동하는 게 아니라 특수 문자를 입력할 수 있는 메뉴가 뜨더라구요. ㅠㅠ

얼마 간은 참고 썼는데 오늘 드디어 인내심이 폭발해서 이게 뭔가 찾아봤더니만... 액센트가 있는 문자를 쉽게 입력하기 위해 맥에서 지원하는 기능이더군요. @0@ 아니, 이렇게까지 신경써주지 않아도 되는데... 쿨럭..;;; 이걸 키 반복으로 바꾸려면 다음과 같이 입력하면 됩니다.

# 키 반복으로 설정하는 경우
defaults write -g ApplePressAndHoldEnabled -bool false

# 특수 문자 입력으로 설정하는 경우
defaults delete -g ApplePressAndHoldEnabled

이제야 잘 되는군요. ^^;;; 맥의 액센트가 있는 문자 입력 기능에 대한 내용은 Back to the MAC님의 블로그를 참조하세요.

요즘 나오는 리눅스들은 기본적으로 ASLR(Address Space Randomization) 옵션이 켜져있는데요, 이 옵션이 켜지면 프로세스가 실행될 때마다 로딩되는 주소가 바뀌게 됩니다. 크래커들의 공격을 막기위해 들어간 기능인데요, 만든 프로그램을 디버깅할 때는 오히려 불편하더라구요. 그래서 ASLR을 끄는 방법을 찾아봤더니 의외로 간단했습니다.

echo 0 > /proc/sys/kernel/randomize_va_space

콘솔에서 위의 명령을 입력하면 즉시 ASLR 옵션이 비활성화됩니다. 활성화하려면 0을 1로 바꿔주면 되겠지요. ^^)/~

그럼 좋은 하루 되세요 ^^

마크다운(Markdown)으로 플리커 사이트(flickr.com)의 이미지 삽입하기

마크다운(Markdown)은 텍스트만 이용해서 구조적인 글을 쓰도록 도와주는 일종의 문법인데요, 저는 주로 개발 로그를 정리하거나 틈틈이 메모를 할 때 사용하고 있습니다. 물론 요즘은 블로그(kkamagui.tistory.com)에 글을 남길 때도 마크다운을 사용하고 있습니다. ^^;;;

마크다운을 처음 접하게 된 건 위키(Wiki) 때문이었는데요, 위키가 글을 엮기 편하고 문법 자체가 아주 간단해서 개발 로그를 남기는 데 그만이더라구요. 그래서 처음에는 설치형 위키인 도쿠 위키(Doku Wiki)를 썼는데요, 혼자 돌리기에는 왠지 무거운 느낌도 있고해서 위키패드로 갈아탔습니다. 위키패드를 써보니 기능도 만족스럽고 마음에 쏙 들더라구요. 그래서 위키패드로 글을 쓰기 시작하다가 위키 문법에 집착하게 되고, 이게 블로깅까지 이어지면서 결국 텍스트로 글쓰는 행위 자체에 집착하게 됐습니다. ㅠㅠ

마크다운을 즐겨 쓰시는 분들 중에는 저처럼 웹에 있는 위지윅(WYSWYG) 에디터가 불편한 분도 있으실 겁니다. 위지윅 에디터의 오류로 쓴 글이 날라가거나 굵게 한 글씨가 제대로 해제가 안되고 계속 굵게 나온다거나 하는 문제를 몇 번 겪고나니 의욕이 사그라들더라구요. ㅠㅠ 뭐, 마크다운으로 갈아탄 뒤에는 그런 일이 없어졌지만요. ^^)/~ 그래서 직접 글 쓰기 사이트(Writer's Note)도 만들어 쓰고 있습니다(개 밥 먹는 중이에요 ㅎㅎ).

제가 사실 이미지는 왠만하면 잘 안넣는데요, 그래도 가끔 필요한 경우가 있어서 제 티스토리 블로그(kkamagui.tistory.com)에 이미지를 올리고 그 링크를 가져와서 넣고 있습니다. 이미지를 많이 안 쓰다보니 별로 불편한 점을 모르고 있다가 오늘 문득 불편하다는 생각이 들더라구요. 그래서 어떻게 하면 좋을까 생각을 해봤는데, 플리커 같은 사이트에 블로깅용 이미지를 모아두고 링크를 거는 방법이 좋을 것 같더군요.

그런데 왠 걸~!! @0@)/~ 실제로 이미지를 올린 뒤에 링크를 아래처럼 걸어보니 정상적으로 표시되지 않는 겁니다. ㅠㅠ 분명히 플리커 사이트에서는 잘 표시되는데 말이죠. 한참을 고민하다가 저만 이런 문제를 겪는게 아닐 것 같아서 검색을 해봤더니~!! Wannabeman 님도 같은 문제로 문제를 겪으시다가 고생 끝에 찾은 방법을 공유해주셨더군요. 해결책은 markdown과-삽질한-하루에서 보실 수 있는데요, 결론만 말씀드리자면....

사진에서 공유 버튼을 누르면 .jpg로 끝나는 그림 링크가 나오는데요, 이 링크를 마크다운 문법으로 넣어주면 됩니다~!! >ㅁ<)~!!

마크다운으로 이미지를 삽입하는 방법은 사실 링크를 삽입하는 방법과 같은데, 차이점이라면 !를 앞에 붙여주는 정도입니다. 아래처럼 말이죠 ^^;;;

![이미지 대체 텍스트에요](http://farm6.staticflickr.com/5532/12181791906_1fd29764e7_o.jpg)

이미지 대체 텍스트에요

<이미지 출처-yes24.com>

아아... 진작 검색해볼 껄 그랬구요. ㅠㅠ 그래도 해결책을 찾았으니 다행이라는....

그럼 즐거운 하루 되세요 ^^

리눅스에서 gcc를 사용해서 코드를 컴파일하고 있는데, 뜬금없는 에러가 나왔습니다. 경고(Warning)를 에러(Error)로 취급해서 빌드를 멈춘다는 메시지였는데요, 아래와 같습니다.

cc1plus: all warnings being treated as errors

make[1]: *** 끝나지 않은 작업을 기다리고 있습니다....

사실 정확한 해결책은 경고(Warning)가 발생하는 코드를 수정하는 것이지만... 경고가 발행하는 곳이 한 두 군데가 아니라서 경고를 에러로 처리하는 옵션을 끄기로 했습니다. 사실 끄는 방법은 아주 간단한데요, gcc의 컴파일 옵션에 -Wno-error를 추가해주면 됩니다. 아래처럼 말이죠 ^^)/~

root> gcc -o a.elf -Wno-error a.c

Makefile을 이용해서 빌드한다면 CFLAG 옵션에다 추가하면 더 간단히 해결할 수 있습니다.

그럼 좋은 하루 되세요 ^^

DISQUS 소셜 댓글 달기

블로그를 방문하다보면 종빈이형 블로그처럼 댓글창이 표시되는 걸 종종 봤습니다. 페이스북이나 트위터, 구글+ 등등 다양한 서비스로 로그인이 가능하고 댓글도 모아 보여주는 신기한 기능(?) 때문에 눈여겨 보고 있었는데요, 내친김에 저도 한 번 달아보기로 했습니다.

멋진 소셜 댓글 창의 정체는 DISQUS에서 지원하는 위젯인데요, 간단히 회원가입만 하면 웹사이트용부터 시작해서 워드프레스용 코드까지 클릭만으로 생성해줍니다. 저는 아무대나 붙여넣을 수 있는 Universal Code를 선택해서 코드를 만들었는데요, 최종 코드는 아래와 같이 두 가지로 나왔습니다.

첫 번째 코드는 DISQUS 댓글 위젯을 표시해주는 코드입니다. HTML의 Body 내부 중에 표시되길 원하는 곳에 붙여 넣으면 됩니다. 코드는 제가 생성한 코드니 실제로 위젯을 다실 분은 직접 생성한 코드를 붙여넣으세요. ^^;;;

<div id="disqus_thread"></div>
    <script type="text/javascript">
        /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
        var disqus_shortname = 'writersnote'; // required: replace example with your forum shortname

        /* * * DON'T EDIT BELOW THIS LINE * * */
        (function() {
            var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
            dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
            (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
        })();
    </script>
    <noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
    <a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>

그리고 두 번째 코드는 관련된 댓글을 실제로 로딩해주는 부분인데요, 역시 적당한 곳에 붙여넣으시면 됩니다. 저는 HTML의 Body 가장 밑에 붙여넣었어요. ^^;;;;

    <script type="text/javascript">
    /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
    var disqus_shortname = 'writersnote'; // required: replace example with your forum shortname

    /* * * DON'T EDIT BELOW THIS LINE * * */
    (function () {
        var s = document.createElement('script'); s.async = true;
        s.type = 'text/javascript';
        s.src = '//' + disqus_shortname + '.disqus.com/count.js';
        (document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s);
    }());
    </script>

실제로 로딩되는 예제는 종빈이형 블로그Writer's Note의 아래쪽을 보시면 됩니다. ^^

그럼 즐거운 명절 되세요 ^^)/~

프로그래밍을 하다보면 가끔 구문 강조(Syntax Highlight) 기능이 굉장히 고마울때가 있습니다(혹시 저만 그런가요? ^^;;;) 그래서 구문 강조(Syntax Highlight) 스타일들을 보면서 나름 신경을 쓰는 편인데요, 오늘 우연히 깔끔한 스타일을 발견했습니다.

Solarized라고 하는 스타일인데요, 일단 아래 스크린샷을 한번 보시죠. ^^

스타일이 워낙 사람들마다 호불호가 갈리는 부분이라... 보기에 불편하신 분들도 있겠지만, 제가 살짝 테스트해본 결과 나름대로 괜찮았습니다. 지금 vi 설정도 이 스타일로 바꿔놨어요. ^^;;;

vi 뿐만 아니라, 비주얼 스튜디오같은 다른 에디터들도 지원하니 흥미가 있으면 한번 들어가보는 것도 괜찮을 듯 합니다.

그럼 좋은 하루 되세요 ;)

무엇을 개발하느냐에 따라서 차이가 있겠지만, 윈도우 환경의 최강 개발툴을 꼽으라면 저는 당연히 비주얼 스튜디오(Visual Studio)라고 생각합니다. 강력한 자동완성(Auto-complete) 기능과 디버깅(Debuging) 기능이 정말 환상적이거든요. ^^;;;

그런데, 최강 비주얼 스튜디오에도 단점이 한 가지있으니... 바로 실행되는데 시간이 좀 걸린다는 겁니다. @0@)-b 뭐, 간단한 소스 파일 살짝 훑어 보려는데, 비주얼 스튜디오를 실행하기에는 부담스러운 경우가 종종 있더라구요.

그래서 제가 선택한 방법은... vi와 ctags, taglist 조합을 사용하는 겁니다. vi의 강력한 검색기능과 ctags의 함수 & 구조체 분석 능력, 그리고 taglist의 바로가기 기능은 간단한 파일을 분석하기에는 충분하거든요. ^^

설치 방법

먼저 ctags를 다운로드 해야 합니다. ctags는 [http://ctags.sourceforge.net/][]에서 다운로드할 수 있고, 압축을 푼다음 ctags.exe만 vi가 설치된 폴더에 복사해줍니다. 일반적으로 vi 폴더는 Program Files\Vim\vim73과 같은 형태입니다.

ctags를 설치했다면 이제, taglist를 설치할 차례입니다. taglist는 [http://www.vim.org/scripts/script.php?script_id=273][]에서 다운로드할 수 있고, 압축을 푼 다음 doc 폴더와 plugin 폴더를 vi가 설치된 폴더에 그대로 복사하면 됩니다. vi가 설치된 폴더를 보면 같은 이름의 폴더가 있으니 그리 어렵지 않을 겁니다. ^^;;;

실행~!!

설치가 끝났으니 남은 일은 소스 코드를 vi로 열어서 결과를 확인하는 것 뿐이네요. vi를 실행하신 다음 아무 코드나 연 다음 :Tlist를 입력하시면 아래처럼 왼쪽에 함수 목록이 표시됩니다. >ㅁ<)-b



그럼 즐거운 코딩하세요 ;)


ps) 이것 참... 이게 얼마만에 여유인가 모르겠네요. ㅠㅠ)-b 아빠들 화이팅~!!

      

RSS를 돌다가 firejun(http://firejune.com/1458)님의 사이트에서 재미난 것을 발견했습니다. 바로 그림 파일을 압축해 주는 사이트입니다. ;) 요즘 안 그래도 GUI 시스템 때문에 이미지를 넣어야 하는데... 용량이 크면 시리얼로 전송하는데 문제가 있어서 많이 고민 중이었습니다. 그런데 이 사이트가 그 고민을 좀 덜어 주는군요 ㅎㅎ

사이트 주소는 http://www.gracepointafterfive.com/punypng/ 이고 아래와 같이 멋진 압축률을 보여 줍니다.

<punypng의 이미지 압축률>

실제로 MINT64의 GUI 프로토타입 이미지를 압축해 봤더니 약 30% 정도가 줄어들더군요. 원리는 알 수 없지만 꽤 고마운(?) 웹사이트입니다. ㅠㅠ 어흑... 이제 그래도 여전히 손실 압축 방식인 JPG에 비해서는 무지 크군요. ㅠㅠ

+ Recent posts