Emacs > 맥을 위한 이맥스 Daemon 설정하기

(참조)[https://gist.github.com/ambethia/304964]

여러가지 스크립트가 포함되어 있는 이맥스를 실핼할 때 반복적인 시간이 소요 되는데 이를 해소 할 수 있는 방법을 소개합니다.

맥에 이맥스가 이미 설치 되어 있다는 가정하에 문서를 작성하였습니다.

이맥스 데몬 어플리케이션 생성하기

맥에서 ‘Script Editor’를 열어 아래의 내용을 입력해주세요.

tell application "Terminal"
do shell script "/Applications/Emacs.app/Contents/MacOS/Emacs --daemon"
endtell

저장 할 때는 File > Export, 그리고 File Format : Application을 선택하여 Applications/ 폴더에 저장해주세요.

이상 이맥스 데몬 어플리케이션을 생성하였습니다.

이제 맥이 실행될 때 이 앱을 실행 시켜주기 위해서 어플리케이션을 등록해 봅시다.

  • System Preferences > Accounts 열기
  • 계정 선택 후 Login Items탭 선택
  • ‘+’버튼을 눌러 Emacs Daemon을 선택
  • hide 체크방식에 대해서는 생각할 필요 없음. (나중에 앱 아이콘을 없앨 예정)

이맥스 클라이언트 어플리케이션 생성하기

다시 한번 Script Editor를 열어 아래의 내용을 넣어주세요.

tell application "Terminal"
do shell script "/Applications/Emacs.app/Contents/MacOS/bin/emacsclient -c"
endtell

저장 할 때는 위와 동일하게 Application타입을 선택해주시고, Emacs Client 이름으로 Applications/폴더에 저장해주세요.

새로 생성한 Emacs Client에 아이콘 적용하기

  • Finder를 열어 Application Folder 선택해주세요.
  • Emacs application선택 후 우측 버튼 > Show Package Contents를 선택해주세요.
  • Contents/Resources 폴더 안에 Emacs.icns를 Emacs Client 폴더안에 있는 Content/resources 폴더에 넣어주세요. 그리고 기존에 있던 applet.icns를 삭제하시고 Emacs.icns파일을 applet.icns파일 이름으로 변경해주세요.

Emacs Client가 동작 되는 동안 Dock에서 Emacs 아이콘을 숨겨보자.

  • Application folder에 있는 Emacs Application (Emacs Client가 아님), Show Package Contents로 열어주세요.
  • Info.plist파일을 열어 Add child를 통해 키 NSUIElement, 값 1을 설정해주세요.

모든 설정이 완료 되었네요.

그럼 즐거운 이맥스 라이프!!

Tool – wireshark 설치

brew를 이용한 whireshark 설치 방법에 대해서 기술한다.


1) 기존 wireshark 삭제하기

$ sudo bash -c "$(curl -sL https://raw.github.com/x0b4dc0d3/wireshark-uninstall-osx/master/uninstall.sh)"

2) brew를 이용하여 설치하기

$ brew install wireshark

만약 GUI버전이 필요하다면 QT와 함께 설치 해주어야 한다.

$ brew reinstall wireshark --with-qt

Tool – Generating SSH Keys

It’s from help.github.com.

Step 1: Check for SSH keys

$ cd ~/.ssh
$ ls -al
#Lists the files in your .ssh directory

Check the directory listing to see if you have files named wither id_rsa.pub or id_dsa.pub. If you don’t have either of those files go to step 2. Otherwise. you can skip to step 3.

Step 2: generate a new SSH Key

To generate a new SSH key, copy and paste the text below, making sure to substitute in your email.
The default settings are preferred, so when you’re asked to “enter a file in which to save the key, “” just press enter to continue.

$ ssh-keygen -t rsa -C "your_email@example.com"
# Creates a new ssh key, using the provided email as a label
Generating public/private rya key pair.
Enter file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]

Next, you’ll be asked to enter a passphrase.

Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]

Which should give you something like this:

Your identification has been saved in /Users/you/.ssh/id_rsa.
Your public key has been saved in /Users/you/.ssh/id_rsa.pub.
The key fingerprint is :
01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@example.com

Then add your new key to the ssh-agent:

$ ssh-add ~/.ssh/id_rsa

XCode > GDB를 이용하여 레이아웃 트리 형식으로 확인하기

화면에 대한 구조를 트리 형식으로 출력하기 위한 방법을 설명합니다.

앱을 정지시키기 위해서 XCode안에 아래와 같이 표시되어 있는 Pause 버튼을 누르세요. Screenshot 2014 02 09 18 21 28 4

그러면 아래와 (lldb) 프롬포트가 활성화되고 아래와 같이 입력해줍니다.

po [[UIWindow keyWindow] _autolayoutTrace]

*po (print object)의 축약입니다.

아래와 같이 트리구조로 확인 하실 수 있습니다.

*<UIWindow:0x8a2b5a0> - AMBIGUOUS LAYOUT
|   *<UIView:0x8a2fd20>
|   |   *<UITableView:0xa193a00>
|   |   |   <UITableViewWrapperView:0x8a30070>
|   |   |   <UIImageView:0x8a22af0>
|   |   |   <_UITableViewCellSeparatorView:0x8a58730>

감사합니다. (꾸벅 __)

Install ‘ispeel’ on Mac OS X.

이맥스에서 M-x ispell-check-version을 입력할 경우 아래와 같은 메시지가 나올때가 있다.

‘Searching for program:No such file or directory.

brew install ispell –with-lang-en 을 설치함으로써 해결 할 수 있다.

Tool > 다수의 프로젝트 다수의 라이브러리에서 Proguard 적용하기

3개의 안드로이드 프로젝트와 다수의 외부 라이브러리 상태에서 Proguard를 적용 시킬 경우 어플리케이션이 죽는 경우가 있을 수 있다.

대충 문제를 살펴본 결과 외부 라이브러리를 찾지 못하여 발생하는 문제로 아래와 같이 해결 할 수 있다.

-libraryjars 라이브러리 경로/파일명.jar

또는 

-keep class org.** { *; }

 두가지의 방법으로 해결 할 수 있다.

Tool > GDB Basic (Shortcut)

GDB Documentation – The GNU Operation System

Starting GDB for basic user.

You’ve to compile the file with -g flag for GDB.

ex) gcc -g -o test test.c

You can see ‘test’ file that you compile it from test.c.

GDB Commands 

run ( r ) GDB Mode 에서 프로그램을 동작시킨다.

break ( b ) 브레이크 포인터를 생성한다. 

ex 1) break 2 // 2번째 라인에 브레이크를 건다.

ex 2) break hello // hello 함수에 브레이크를 건다.

ex 3) break 0x000xx // 주소에 브레이크를 건다.

delete ( d ) 브레이크 포인트를 제거한다.

info break ( i b ) 현재 설정되어 있는 브레이크를 보여준다.)

step ( s ) 현재 라인을 수행한다. 만일 함수 호출이 있다면 해당 함수로 포인터를 넘긴다.

next  ( n ) step과 비슷하다. 하지만 현재 라인이 함수 호출을 하고 있다면 이 명령어는 함수를 수행하고 다음 라인에서 멈추게 된다.

finish ( f ) next 커맨드를 계속 유지 시켜 포인터를 함수의 끝까지 보낸다.

continue ( c ) 브레이크 포인터를 만날때 까지나 프로그램의 스톱이 될때 까지 프로그램을 수행 한다.

where  ( w ) 함수 호출 스택에 따른 현재 위치를 보여준다. print ( p ) 변수값을 출력한다.

display ( d ) 매 스탭마다 변수에 설정된 값을 출력한다. 

list ( l ) 소스 코드를 출력한다. 

quit ( q ) GDB를 종료시킨다.

ZIP > How to encrypted ZIP files on Termial.

If you want to read as english, you can see the following link site.

ref

zip -er pathToZIPFile pathToFolder

-e 옵션은 암호화를 하겠다라는 의미이다.
-r 옵션은 서브디렉토리 안에 파일들까지 모두 포함시키겠다 라는 의미이다.

zip -er Documents.zip Documents

만약 Documents디렉토리를 모두다 포함시켜 압축하고 싶다면 위와 같이 사용할 수 있다.

Command > 프로세스 백그라운드 또는 포그라운드로 전환하기

refhttp://superuser.com/questions/262942/whats-different-between-ctrlz-and-ctrlc-in-unix-command-line

Control + Z 는 SIGSTOP 시그널을 보냄으로 프로세스를 백그라운드로 보낼 때 사용되며, 이는 프로그램으로 부터 중지되지 않습니다. (잠시 중지)

Control + C 는 프로그램으로부터 중지 명령을 받아 죽게 됩니다. (즉 더 이상 동작하지 않음) 전에 존재했던 것들은 깔끔하게 정리하고 죽거나 또는 종료되지 않습니다.

SIGSTOP 시그널을 보내면 아래와 같이 출력 문구를 볼수 있습니다.

[1]+ Stopped              yes

다시 포그라운드로 돌리고 싶다면

fg

그리고 백그라운드로 돌리고 싶다면

bg

선택적으로 프로세스 죽이기

kill %1

프로세스 넘버 보기

jobs

 

:/ 쓰다보니 졸려서 짧게 기록하였습니다.