Emacs + Python


Cask


➜ .emacs.d cat Cask
...
(depends-on "yasnippet")
(depends-on "cl-lib")
(depends-on "init-loader")
(depends-on "python")
(depends-on "flycheck-pyflakes")
(depends-on "ecb")
(depends-on "flymake")
(depends-on "flymake-cursor")
(depends-on "elpy")

pip of Python


➜ ~ pip list
autopep8 (1.2.1)
Django (1.8.6)
flake8 (2.5.0)
Flask (0.10.1)
Flask-Psycopg2 (1.3)
importmagic (0.1.3)
itsdangerous (0.24)
jedi (0.9.0)
Jinja2 (2.8)
MarkupSafe (0.23)
mccabe (0.3.1)
pep8 (1.5.7)
pip (7.1.2)
pyflakes (1.0.0)
Pymacs (0.25)
rope (0.10.3)
ropemacs (0.8)
ropemode (0.3)
setuptools (18.3.1)
Werkzeug (0.11.2)
wheel (0.26.0)
yapf (0.6.2)
➜ ~

iOS 개발, CocoaPods, “.h” 파일들을 못 찾을 때 해결 방법


프로젝트에 Pods-{앱명}.[debug/release].xcconfig 이런 파일(텍스트)이 있을 것이다.

HEADER_SEARCH_PATHS = ${SRCROOT}/Pods/Headers/**

를 추가해 준다.

Xcode 의 “Build Settings” 쪽에 보면 “Header Search Paths” 항목에 “…./Pods/Headers/**” 가 추가 되있는 것을 볼 수 있다.

참고 : http://guides.cocoapods.org/using/troubleshooting.html

ObjC, NSString, multi-line quated string


>>> a="""a
... b
... c
... d
... """
>>> a
'a\nb\nc\nd\n'
>>>

Python 에서 여러 줄을 편하게 따옴표 3개로 묶는 것 처럼 혹시 NSString 도 있을까? 하고 찾아 봤는데 못 찾고 대신 아래 링크를 발견했다.

http://multilineobjc.herokuapp.com/

입력 :
<code>
<html>
<body>
<h1>It works!</h1>
<p>This is the default web page for this server.</p>
<p>Test Test The web server software is running but no content has been added, yet.</p>
</body>
</html>

출력 :

@" \
<html> \
<body> \
<h1>It works!</h1> \
<p>This is the default web page for this server.</p> \
<p>Test Test The web server software is running but no content has been added, yet.</p> \
</body> \
</html> \
";

wpid-featuredImage.png

Mac, Android Studio, Find Word at Caret & ⌘ + G


Xcode 개발에서 잘 사용했던 단축키가 있다.

⌘+E, ⌘+G

⌘+E는 현재 커서 위치의 단어를 찾을 단어로 등록하고,

⌘+G를 누르면 현재 문서에서 단어 찾기가 진행된다.

계속 누르면 다음, 다음으로 찾기가 진행되고

맨 아래까지 가면 다시 위에서부터 찾기가 진행된다.

 

Find Word at Caret 메뉴에는 있지만,

단축키는 기본으로 지정 돼 있지 않고

⌘+E는 최근 문서 열기 단축키로 맵핑 돼 있어서 단축키 수정을 했다.

 

이제 Android Studio에서 ⌘+E, ⌘+G 를 사용할 수 있게 되었다. ^.^

이미지

 

OS X, Dash의 Integration 기능


Dash는 DocSets 등 개발 문서를 단축키 등으로 편하게 볼 수 있는 프로그램이다.
무료로 사용할 수 있지만, 유료를 구매하면 가끔씩 보이는 Timer를 없앨 수 있는 것 같다.

Dash URL : http://kapeli.com/dash

searches offline documentation sets for 80+ APIs

개발 문서를 쉽게 다운받을 수 있고 업데이트도 쉽게 관리가 된다.
시스템에 있는 문서도 검색을 해주고 인터넷에 있는 레퍼런스 문서도 80개 이상 설치 할 수 있다.

나는 Xcode, Eclipse 도 Integration 기능을 켜서 사용하고 있다.
Integration 기능을 설정 혹은 설치하기 위해서 Preferences의 Integration 탭을 보면 된다.
Integration 탭에 대표적인 앱들의 아이콘이 크게 자리잡고 있다.


Preferences 의 Integration

앱 아이콘을 클릭하면 설명 혹은 해당 Integration 웹 페이지로 이동하게 된다.

오늘은 터미널에서 Dash를 호출하는 것에 대해서 소개하려고 한다.

Dash_Preferences_Integration002Integration에서 Terminal을 클릭 화면

설명을 보면 알 수 있듯이 “open dash://php:{query}” 형식으로 호출 하면 된다는 것을 볼 수 있다.
그래서, dm.sh 스크립트를 아래와 같이 하나 만들고 manpages 를 호출 하도록 했다.

Doohyuns-MacBook-Pro@x% ls -al ~/bin/dm
lrwxr-xr-x 1 x staff 5 5 14 16:35 /Users/x/bin/dm@ -> dm.sh
Doohyuns-MacBook-Pro@x% cat ~/bin/dm.sh
#!/usr/bin/env bash
open dash://manpages:$1
Doohyuns-MacBook-Pro@x% dm tcpdump

Dash_dm_tcpdump
Terminal에서 dm 스크립트 실행 화면

Dash_Search_tcpdump
Dash에서 tcpdump manpage가 실행된 화면

– 끝 –

iOSDev, ImageOptim, 이미지 최적화, 앱 속도 크기 향상.


“iOSdev, PNG 최적화 스크립트.( pngcrush + advpngidat )” https://lum7671.wordpress.com/2011/11/16/iosdev-png-%EC%B5%9C%EC%A0%81%ED%99%94-%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-pngcrush-advpngidat/
글에 이여서 2탄으로 ImageOptim 앱에 대한 사용법이다.

1. 설치

http://imageoptim.com 에서 ImageOptim.app 을 다운 받고 /Applications 에 Drag & Drop 으로 설치를 한다.

2. 사용법

맥에서 앱을 실행하면 아래와 같은 윈도우 창이 뜬다.
이미지 파일을 Drag & Drop 으로 올려 놓으면 동작을 하며
자동으로 처리 이미지는 최적화된 새 이미지로 바꿔지게 된다.

또는

open -a ImageOptim.app *.png

와 같이 터미널에서 편리하게 실행 할 수도 있다.

3. 스크립트


#!/usr/bin/env bash
# -*- coding: utf-8 -*-
#
# 작성자 : 장두현
# 버 전 : 1.1
# 작성일 : 2012-03-08
# 수정일 : 2012-08-21
#
# * 맥 GUI용 : ImageOptim ( http://imageoptim.com/ )
#
# 사용법 :
# ./run_imageoptim.sh
# - 현재 디렉토리 이하 디렉토리 안의 모든 png 를 변환한다.
#
# 참고 : https://github.com/scribd/Xcode-OptimizePNG
#

cust_echo() {
echo -e "$1 $2"
}

APP_IMAGEOPTIM="/Applications/ImageOptim.app"

if [ ! -d "$APP_IMAGEOPTIM" ];then
cust_echo "요구사항체크:" "\nImageOptim.app 이 /Applications 디렉토리에 없습니다.\nImageOptim ( http://imageoptim.com/ ) 에서 어플리케이션을 받아서 설치하세요."
exit 0
fi

process_png()
{
cd $1
open -a ImageOptim.app *.png
}

DIR_PWD=$(pwd)

for directory in $(find $DIR_PWD -type d -print)
do
process_png $directory
done

4. 스크립트 사용법

이하 디렉토리에 있는 모든 png 파일을 ImageOptim.app 으로 최적화 한다.

예) Resource/Images/ 디렉토리 안의 png 파일을 최적화 하려면,
cd Resource
./run_imageoptim.sh

하면 된다.

※ 스크립트는 참고 용 임. 좀 더 다듬으면 거나 자신의 환경에 맞게 고치시길… 🙂

추가 Apple Developer 관련 링크 :
https://developer.apple.com/library/ios/qa/qa1681/_index.html#//apple_ref/doc/uid/DTS40009883

$ xcrun -sdk iphoneos pngcrush \
-revert-iphone-optimizations -q Local.png Local-standard.png

iOSDev, CoreData, Warning, Receiver ‘NSManagedObjectContext’ is a forward class and corresponding @interface may not exist


Receiver ‘NSManagedObjectContext’ is a forward class and corresponding @interface may not exist

해결 :

Supporting Files / ProjectName-Prefix.pch 에 #import <CoreData/CoreData.h> 추가

예)
#ifdef __OBJC__
    #import <Foundation/Foundation.h>
    #import <CoreData/CoreData.h>
#endif