2010년 10월 27일 수요일

iMovie11에서 Updating Aperture Videos Event가 종료되지 않을때

http://appletoolbox.com/2010/10/imovie-11-stuck-on-updating-aperture-videos-event-fix/
Aperture library에서 우클릭 -> show package contents -> iMovie-Thumbnails와 iLifeShared 폴더 삭제
이제 정상적으로 실행 됨
Aperture에서 thumbnail 재생성이나 원본과 머지 같은 것들을 알려준 넘들 잊지 않겠다.

Blogger에 소스 코드 입력

코드를 변환해 주는 블로그가 있군여.
http://formatmysourcecode.blogspot.com/

2010년 10월 21일 목요일

Java Naming Convention

아주 오래전에 읽었봤었지만 그때는 중요성도 모르고 그저 그런가보다 하고 지나갔던 코딩컨벤션
특히 네이밍이 코딩에서 가장 어려운 일이라는 걸 느껴본 사람이라면 다시 한번 보시길...
http://geosoft.no/development/javastyle.html
가장 중요한 말은 이 모든 규칙들은 가독성을 위해서라면 위반되어도 된다는 말.
  1. 필드는 ‘_’ 접미사를 사용한다.
  2. 변수의 길이는 영역과 비례한다.
  3. 객체명의 의미를 메소드명에 넣지마라.
line.getLength(); // NOT: line.getLineLength
  4. compute, find, initialize 사용
  5. 컬렉션은 복수형으로
  6. 개수를 나타내는 변수는 ’n’ 접두사를 사용한다.
  7. 엔터티 번호에는 ‘i’ 접두사나 ‘No’ 접미사를 사용한다.
  8. 대응하는 단어를 사용한다.
get/set , add/remove , create/destroy , start/stop , insert/delete , increment/decrement , old/new , begin/end , first/last , up/down , min/max , next/previous , old/new , open/close , show/hide , suspend/resume        
  9. 함수명은 ‘처리 후 무엇을 리턴하는지’, 프로시저명은 ‘무엇을 처리하는지’를 나타낸다.
  10. 인터페이스 디폴트 구현은 ‘Default’ 접두사를 사용한다.
  11. 팩토리 메소드의 이름은 ‘new’ 접두사에 반환하는 인스턴스의 클래스명으로 한다.
public Point newPoint(...)
  12. 메소드 선언 규칙은 <access> static abstract synchronized <unusual> final native 순서이다.
  13. do-while 사용 자제
  14. 조건이 복잡한 경우 임시 boolean으로 단순화 한다.
  15. 정상적인 경우를 if에 놓고 예외를 else에 둔다.
  16. 조건문과 한줄에 놓지 마라.
디버깅을 위해서
  17. 조건문 안에 실행문이 있어서는 안된다.
  18. 특정 의미를 갖는 숫자는 항상 의미를 나타내는 상수로 바꿔서 사용한다.
  19. 빈 for문은 ‘;’(세미콜론)을 새 줄에 놓는다.
for(<initialization>; <condition>; <update>)
 ;
  20. 복잡한 메소드는 주석을 달지 말고 새로 만든다.(self-documenting)
  21. javadoc주석을 제외한 주석은 multi-line 주석이라고 해도 ‘//‘를 사용한다.
/* */주석은 디버깅용으로 언제든 제거해서 사용 할 수 있게 한다.
  22. 컬렉션은 포함하는 유형을 주석으로 뒤에 넣는다.
private Vector points_; // of Point
  23. 모든 public 클래스, 또 publics 클래스내의 public, protected 메소드는 javadoc을 만든다.
Java naming은 아니지만 참고할만한 http://msdn.microsoft.com/en-us/library/xzf533w0(v=VS.71).aspx

2010년 10월 20일 수요일

Opera 10.63

TV에서 오페라 브라우저를 만드는 오페라라는 기업에 대해 보고 난 뒤 선입견이 사라져
한번 사용해 보았다.
일단 결론은 맥에서 사파리를 대신하기에는 무겁다.
메모리, CPU 전부 괴물처럼 쳐 먹는다.
조금만 더 안정되고 64bit버전도 나오면 그 부분은 좋아지리라 믿고
TV에서 느꼈던 회사에 대한 좋은 인상을 반영해서
결론부터 말하자면 굉장히 마음에 든다.
파폭의 기능으로 모두 가능한 일이지만 내가 주로 쓰는 플러그인만 깔려있는 듯한 느낌
가장 마음에 드는 것은 mouseless browsing.
파폭 플러그인으로 있는 숫자 입력방식과는 다르게 shift+커서로 자유롭게 이동할 수도 있고
알파벳으로 cyclic하게 이동할 수도 있다.
또 opera unite라는 기능으로 내 PC를 파일서버나 웹서버, 스트리밍 서버 등으로 사용할 수도 있다.
파폭과 사파리의 중간점 같은...
하지만 아직은 맥에서 사용하기에는 스크롤링도 좀 어지럽고
키 입력에서도 자잘한 버그가 보이고
플래시도 사파리보다도 무겁게 돌고...등등등
하지만 조금만 보강되면 주력 브라우저로 전혀 손색이 없을듯하다.

2010년 10월 19일 화요일

shell script

  • while true; do echo "press enter to continue..." ; read var; ls -al; done
  • while true; do ls -al; sleep 10; done
  • find . -type f \! -name *.jpg \! -name *.zip -print | xargs grep -n 찾는문자열
  • find . -name "*.jar" -exec rm -f {} \;
- 작성중 -

2010년 10월 18일 월요일

Dashboard 위젯이 어느날 갑자기 바탕화면에 생겼을때

어느날 갑자기 대쉬보드 위젯이 바탕하면에 생겼다.
날씨와 계산기가 떡하니 최상위 윈도우로 동작중이다.
검색하면 위젯을 바탕화면으로 빼는 방법에 대해서만 신나게 나오고...
일단 바탕화면의 위젯을 꾹 클릭한 상태에서 F12를 눌러 대쉬보드를 부르고 그 상태에서 위젯을 조금 이동시킨후
대쉬보드 편집 버튼을 클릭하면 x표가 생긴다. ㅡㅡ 휴~

2010년 10월 14일 목요일

macport 명령

macport자체를 업데이트 한다.
sudo port selfupdate
outdate된 라이브러리를 업그레이드 한다.
sudo port upgrade outdated
새로운 버전이 설치되는 경우 과거버전이 삭제되지 않고 남아있으니 제거한다.
sudo port -f uninstall inactive

참고 : port -u upgrade outdated

- 작성중 -

2010년 10월 13일 수요일

emacs process

Emacs 기능 중 자주 사용하지 않아 잘 까먹으면서도 의외로 자주 사용하는 것들
;; psvn mode 상에서
g : 상태 갱신
_ : 변화가 있는 파일만 표시
U : update

C-h m : 단축키 도움말
= : svn-diff
E : svn-ediff
i : info
b : blame
l : log

;; svn 관련 commit process
작업한 파일에서 C-x 4 a : change log 작성
svn-status 상에서 c : commit
svn-log-edit 모드 상에서 C-c C-a : change log를 복사해서 svn-log-edit모드로 붙여넣어줌
svn-log-edit 모드 상에서 C-c C-c : commit

;;cscope
;; 나만 그런것인지 모르지만 이클립스처럼 정확한 reference로 찾아주는게 아니라 텍스트만 같으면 찾는 것 같음. 사실 문자열 검색으로만 해도 될 듯...
위치에 가서 find . -name “*.java” > cscope.files 생성
;M-x cscope-index-files 로 cscope.files, cscope.out, ... 생성 (cscope_file을 생성했다면 cscope-set-initial-directory만 설정한 후 cscope명령을 내리면 자동으로 cscope.out은 생성됨)
M-x cscope-set-initial-directory
C-c s g: 선언부 찾기
C-c s c : 이 함수 호출하는 caller찾기
C-c s C : 이 함수가 호출하는 callee찾기
C-c s s : 심볼 참조 검색
C-c s t : 문자열 검색
C-c s f : 파일 검색

- 작성중 -

학교 체벌 금지...

학교 체벌 금지에 대해서 말들이 많다.
현실을 무시한 행정이라는 현직 교사의 말.
처음 뉴스를 접했을때에도 나도 같은 생각이 들었었다.
하지만 나의 학창 시절을 돌아보고 현재의 나와 미래의 나의 아이를 생각하면
빠르면 빠를 수록 좋았을거라는 생각이 든다.
어찌되었든 그저 손쉬운 해결책이라는 점이 그 이유다.
이미 선진국에서는 체벌이 금지 되었거나 미미하다.
그들은 분명 그럴 수 있는 여건이 되었고 우리는 그렇지 않다면
이제부터라도 그 여건을 만들어야 하지 않을까?
학교와 군대에서 배운 너무 쉬운 해결책으로 상대에 대한 존중과
인간 관계에 대한 고민보다 효과 빠른 체벌로
다시 또 그 체벌을 정당화 하는 제2 , 제3의 야만인을 만들 필요는 없을것 같다.

현재 나의 맥 사양

검소한 마음으로 최저 사양의 맥북 프로를 구매혔었었으나
지름질로 인한 현재 사양은
  • Ram 업글 4기가
  • Intel SSD 80기가
  • ODD제거 후 기존 하드 삽입
  • 듀얼 디스플레이용 DVI꼬다리
  • 켄싱턴 락
  • mStand
  • 무선 힘쎈쥐
  • 무선 키보드
  • 무선 트랙패드
  • colkey 키패드 * 2
  • 크럼플러 크리피 덕
  • BSE 필름
레알 배보다 배꼽으로 향하는 구먼...

    dotEmacs

    (setq load-path (cons (expand-file-name “~/.emacs.d/“) load-path))


    (setenv “JAVA_HOME” “/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home”)
    (setenv “CLASSPATH” “.”)

    ;; no backup file
    ;(setq make-backup-files nil)
    (setq backup-directory-alist
             ‘((“.” . “/Users/OnlyUno/.emacs.d/backup-files”)))

    ;; column number
    (column-number-mode t)
    (global-hl-line-mode 1)

    ;; tab
    (setq default-tab-width 4)
    (setq-default c-basic-offset 4
    tab-width 4
    indent-tabs-mode nil)
    ;; key binding
    (setq mac-command-modifier ‘meta)
    (setq mac-option-modifier ‘hyper)

    (global-set-key “\C-x\C-b” ‘buffer-menu)

    (global-set-key [(hyper a)] ‘mark-whole-buffer)
    (global-set-key [(hyper v)] ‘yank)
    (global-set-key [(hyper c)] ‘kill-ring-save)
    (global-set-key [(hyper x)] ‘kill-region)
    (global-set-key [(hyper s)] ‘save-buffer)
    (global-set-key [(hyper l)] ‘goto-line)
    (global-set-key [(hyper o)] ‘find-file)
    (global-set-key [(hyper f)] ‘isearch-forward)
    (global-set-key [(hyper g)] ‘isearch-repeat-forward)
    (global-set-key [(hyper w)]
    (lambda () (interactive) (kill-buffer (current-buffer))))
    (global-set-key [(hyper .)] ‘keyboard-quit)

    ;;yes or no -> y or n
    (fset ‘yes-or-no-p ‘y-or-n-p)

    ;;yasnippet
    (add-to-list ‘load-path
    “~/.emacs.d/plugins”)
    (require ‘yasnippet-bundle)

    ;; JDE
    (add-to-list ‘load-path (expand-file-name “~/.emacs.d/site/cedet/latest/common”))
    (add-to-list ‘load-path (expand-file-name “~/.emacs.d/site/cedet/latest/contrib”))
    (require ‘cedet)
    (add-to-list ‘load-path (expand-file-name “~/.emacs.d/site/ecb/latest/“))
    (require ‘ecb)
    (add-to-list ‘load-path (expand-file-name “~/.emacs.d/site/jdee/latest/lisp”))
    (add-to-list ‘load-path (expand-file-name “~/.emacs.d/site/elib/latest”))
    (require ‘jde)

    (add-hook ‘jde-mode-hook
    (function cscope:hook))


    (setq defer-loding-jde t)

    ;; custom variable
    (custom-set-variables
    ;; custom-set-variables was added by Custom.
    ;; If you edit it by hand, you could mess it up, so be careful.
    ;; Your init file should contain only one such instance.
    ;; If there is more than one, they won’t work right.
    ‘(blink-cursor-mode t)
    ‘(column-number-mode t)
    ‘(current-language-environment “Korean”)
    ‘(delete-selection-mode t)
    ‘(ecb-options-version “2.40”)
    ‘(global-font-lock-mode t)
    ‘(global-linum-mode t)
    ‘(gnus-secondary-select-method nil)
    ‘(gnus-select-method (quote (nnml “”)))
    ‘(mail-sources (quote ((imap :server “imap.gmail.com” :port 993 :user “아이디” :password “비밀번호” :stream ssl :fetchflag “\\Seen”))))
    ‘(save-place t nil (saveplace))
    ‘(send-mail-function (quote smtpmail-send-it))
    ‘(show-paren-mode t)
    ‘(size-indication-mode t)
    ‘(smtpmail-auth-credentials (quote ((“smtp.gmail.com” 587 “아이디@gmail.com” “비밀번호”))))
    ‘(smtpmail-debug-info t)
    ‘(smtpmail-smtp-server “smtp.gmail.com”)
    ‘(smtpmail-smtp-service 587)
    ‘(smtpmail-starttls-credentials (quote ((“smtp.gmail.com” 587 “nil” “nil”))))
    ‘(transient-mark-mode t)
    ‘(user-full-name “이름”)
    ‘(user-mail-address “아이디@gmail.com”))

    ;; custom faces
    (custom-set-faces
    ;; custom-set-faces was added by Custom.
    ;; If you edit it by hand, you could mess it up, so be careful.
    ;; Your init file should contain only one such instance.
    ;; If there is more than one, they won’t work right.
    ‘(default ((t (:inherit nil :stipple nil :background “white” :foreground “black” :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 110 :width normal :foundry “unknown” :family “Liberation Mono”)))))


    ;; slime
    (setq inferior-lisp-program “/opt/local/bin/ccl64 -K utf-8”
    lisp-indent-function ‘common-lisp-indent-function
    slime-complete-symbol-function ‘slime-fuzzy-complete-symbol
    slime-startup-animation nil
    slime-enable-evaluate-in-emacs t
    slime-log-events t
    slime-outline-mode-in-events-buffer nil
    slime-repl-return-behaviour :send-only-if-after-complete
    slime-autodoc-use-multiline-p t
    slime-highlight-compiler-notes t)

    (add-to-list ‘load-path “/opt/local/share/emacs/site-lisp/slime”)
    (require ‘slime)
    (slime-setup ‘(slime-fancy))

    ;(set-language-environment “UTF-8”)
    (set-language-environment “Korean”)

    (set-terminal-coding-system ‘utf-8)
    (set-keyboard-coding-system ‘utf-8)
    (prefer-coding-system ‘utf-8)
    (set-default-coding-systems ‘utf-8)
    ;(setq default-input-method “korean-hangul”)
    ;(set-input-method “korean-hangul”)
    (setq slime-net-coding-system ‘utf-8-unix)

    ;; 한영전환 shift-space로 하기
    ;(global-set-key [?\S- ] ‘toggle-input-method)

    (add-to-list ‘load-path “/opt/local/share/emacs/site-lisp”)
    (require ‘xcscope)

    ;SECTION: ediff preferences
    (setq ediff-ignore-similar-regions t)
    (setq ediff-use-last-dir t)
    (setq ediff-diff-options “ -b “)

    ;;ido-mode
    ;(define-key minibuffer-local-map [tab] ‘minibuffer-complete)
    ;(ido-mode t)
    ;(setq ido-enable-flex-matching t)

    ;(add-hook ‘ido-setup-hook
    ; (lambda ()
    ; (define-key ido-completion-map [tab] ‘ido-complete)))

    ;; org-mode
    (add-to-list ‘load-path “/usr/share/emacs/23.1.50/lisp/org”)
    (require ‘org)
    (add-to-list ‘auto-mode-alist ‘(“\\.org\\'” . org-mode))
    (global-set-key “\C-cl” ‘org-store-link)
    (global-set-key “\C-ca” ‘org-agenda)
    (global-set-key “\C-cb” ‘org-iswitchb)

    (setq org-log-done t)
    (setq org-agenda-files (file-expand-wildcards “~/Document/MyWork/todo/org/*.org”))

    ;; w3m
    (add-to-list ‘load-path “/opt/local/share/emacs/site-lisp/w3m”)
    (require ‘w3m-load)
    (require ‘w3m-e21)
    (provide ‘w3m-e23)
    ;(require ‘mime-w3m)
    (setq browse-url-browser-function ‘w3m-browse-url)
    (autoload ‘w3m-browse-url “w3m” “Ask a WWW browser to show a URL.” t)
    ;; optional keyboard short-cut
    (global-set-key “\C-xm” ‘browse-url-at-point)
    (setq w3m-home-page “http://www.google.com”)
    (setq w3m-use-cookies t)
    (setq w3m-coding-system ‘utf-8
    w3m-file-coding-system ‘utf-8
    w3m-file-name-coding-system ‘utf-8
    w3m-input-coding-system ‘utf-8
    w3m-output-coding-system ‘utf-8
    w3m-terminal-coding-system ‘utf-8)
            
    ;; subversion
    (require ‘psvn)
    (require ‘vc-svn)
    (setq svn-status-changelog-style ‘changelog)
    (setq svn-status-hide-unknown t)

    ;; ignore case
    (setq read-buffer-completion-ignore-case t)
    (setq read-file-name-completion-ignore-case t)

    ;;tramp
    (setq tramp-debug-buffer t)
    (setq tramp-verbose 10)
    (setq tramp-default-method “telnet”)

    2010년 10월 12일 화요일

    Safari 단축키

    Emacs를 사용하면서부터 키보드만 사용하는것에 재미를 붙이고 있다.
    퀵실버등의 런처를 사용하고 또 대부분의 경우 개발 위주라 키보드 만으로 가능하지만 인터넷 사용시만큼은 마우스를 사용할 수 밖에 없다.
    파이어폭스는 mouseless플러그인이 있어 navigate까지도 가능하지만
    사파리 확장에는 아직 없다.
    navigate 말고 그외의 작업은 단축키가 있지만 사실 메뉴에도 없고 공통기능이라 굳이 설명을 안해주는건지
    그냥 이것 저것 누르다 알아낸 키도 있다.
    내가 자주 사용하는 것만 정리해 보면
    ⌘ + L : 주소표시줄로 커서 이동
    ⌘⌥ + F : 검색창으로 커서 이동
    ⌘ + T : 새 탭
    ⌘ + W : 탭 닫기
    ⌘ + [ , ] (← , →) : 이전/이후 이력
    ⇧⌘ + [ , ](← , →) : 이전/이후 탭(메뉴의 단축키는 누르기 힘들어서...)
    ⌘ + ↓ , ↑ : 맨아래로/맨위로
    ⌥ + ↓ , ↑ : PageDown/PageUp
    SPC, ⇧ + SPC : PageDown/PageUp
    ↓ , ↑ : Scroll Down / Up
    맥에서는 Emacs 단축키도 기본 지원하기 때문에 텍스트 박스등 편집시에는 Emacs 키를 사용하면 편하다.

    2010년 10월 5일 화요일