Skip to main content

Posts

[Mac] Python & tcl-tk install using homebrew

homebrew 에서 python 을 사용하면 brew linkapps 명령어를 통해 GUI 에서 IDLE 를 사용할 수 있다. 그런데 IDLE 를 실행하면 초기 화면에 경고 문구가 같이 출력된다. 큰 문제 안될수도 있지만, IDLE 에서 한글입력이 안되는 문제도 있고 보기 싫으니까 이것저것 찾아보게된다. 역시 방법이 다 있었고, 해결책은 아래와 같다. 1. tcl-tk 설치. 먼저 homebrew 에서 tcl-tk 를 설치한다. >> brew install homebrew/dupes/tcl-tk 2. 기존에 설치되어 있던 python 을 삭제한다. >> brew uninstall python 3. brewed-tk 옵션의 python 을 다시 설치 한다. >> brew install python --with-brewed-tk 4. 다시 IDLE 링크를 걸어주면 끝. >> brew linkapps 그러면 아래 화면처럼 경고문고도 없어지고 한글도 잘 써진다. 굿!

[번역] A journey on the Android Main Thread - Part 1

본 문서는 square engineering blog 에 기재된 A journey on the Android Main Thread - Part 1 기사를 번역한 것 입니다. coding horrer 에 왜 우리는 소스 읽는 법 을 배워야 하는가 에 대한 기사 가 있습니다. 안드로이드의 가장 큰 특징 중 하나는 오픈소스 생태계 라는 점 입니다. PSVM (public static void main) public class BigBang {   public static void main ( String ... args ) {     // The Java universe starts here.   } } 모든 자바 프로그램은 public static void main() 메소드를 호출하면서 시작합니다. 이는 자바 데스크탑 프로그램, JEE 서블릿 컨테이너, 안드로이드 애플리케이션 이 모두 동일 합니다. 안드로이드 시스템은 부팅 단계에서 ZygoyteInit 이라 불리는 리눅스 프로세스를 실행합니다. 이 프로세스는 달빅VM 으로, 쓰레드에 안드로이드 SDK 의 대부분의 클래스 를 로드 하고 대기합니다. 새로운 안드로이드 애플리케이션을 시작할 때, 안드로이드 시스템은 ZygoteInit 프로세스를 포크 하게 됩니다. 포크된 자식 프로세스의 쓰레드는 대기를 해제하고, ActivityThread.main() 메소드를 호출합니다. 위키피디아 에 정의된 zygote 란 수정란을 의미합니다. Loopers 계속 진행하기 앞서, 우리는 Looper (이하 루퍼) 클래스를 살펴 볼 필요가 있습니다. 루퍼를 사용하는 것은 하나의 쓰레드가 메시지들을 연속해서 실행하도록 하는 좋은 방법 입니다. 각각의 루퍼는 메시지 객체의 큐를 지니고 있습니다. (이를 메시지 큐 MessageQueue 라고 합니다.) 루퍼는...