Haskell Platform 설치후 cabal 패키지가 설치 되지 않는 문제점 해결!!!

맥(Mac OS X) 2012. 4. 14. 11:56
Xcode 가 4.3으로 업데이트 되면서 설치 경로가 변경되었습니다. 따라서 더이상 /Developer 로 시작되는 경로는 사용하지 않습니다. 그런데 Cabal 패키지의 인스톨의 경우 위 경로를 같다 쓸려고 하기 때문에 컴파일 에러가 나타나게 되지요. 해결 방법은 간단히 sudo pico /Library/Frameworks/GHC.framework/Versions/7.0.4-x86_64/usr/bin/ghc-7.0.4 로 script 파일을 열고 pgmgcc="/Developer/usr/bin/gcc" 로 된 부분을 pgmgcc="gcc" 로 바꾸고 Save 입니다. 다음번 Haskell Platform에서는 아마 이문제가 해결 되 어 있을 거에요. ^^

설정

트랙백

댓글

Mac OS X 10.7 과 Xcode 4.2 그리고 OpenCV 2.0 (1)

맥(Mac OS X) 2012. 2. 1. 01:55
오늘은 Mac OS X 10.7(라이온)에서 OpenCV2.0을 이용한 간단한 코딩과 Xcode 설정을 함꼐 공유합니다.

우선 Lion에서 OpenCV를 간단하게, 즉 편하게 설치하는 방법에는 2가지가 있습니다.

첫번쨰는 MacPort를 사용하는 방법이고 2번쨰는 homebrew를 쓰는 방법입니다.
저는 homebrew를 예전에 설치해 놓았기 때문에 homebrew로 진행합니다.
터미널을 실행한 후

sudo brew update
sudo brew install opencv

이러면 간단하게 컴파일까지 자동으로 하면서 설치가 끝납니다.
기억해 둘 것은 opencv library의 위치입니다.

저같은 경우 brew를 통해 설치되는 모든 라이브러리의 경로를 /usr/local/lib 로 잡았습니다. 만약 다른경로로 설치된다면 경로를 잘 기억해 두었다가 Xcode Setup에서 사용하시면 됩니다.

이제 Xcode의 build setting 창에서 (4.2 버젼을 기준으로 합니다.)
header search paths 를 방금 전에 기억해 둔 라이브러리가 설치 된 경로로 설정 




이것으로서 코딩 준비 완료. 

설정

트랙백

댓글

Clozure CL에서 ASDF 설정하기 (MAC OS X 10.6.2)

맥(Mac OS X) 2010. 3. 8. 09:36
1. Clozure CL을 원하는 경로에 설치한다.(X86) 
 본인의 경우 "~/lisp/ccl"에 설치 ftp://ftp.clozure.com/pub/release/1.4/ccl-1.4-darwinx86.tar.gz 

2. 홈 폴더, 즉 ~/ 밑에 "ccl-init.lisp"파일 과, ".asdf-install"폴더를 만들고 하위 경로에 "site"폴더와 "systems"폴더를 만든다.  

"site"폴더에는 ASDF 패키지가 저장되고, "systems"폴더에는 "해당 패키지명.asd"파일을 link한다. 
예)bordeaux-threads같은 경우 bordeaux-thread.asd  

ccl이 설치된 path를 찾아 본인의 경우 " ~/lisp/ccl/tools/asdf-install/asdf-install.asd" 파일을 "systems"폴더 안에 link한다. - 
ccl-init.lisp 파일을 다음과 같이 수정한다.
	
  (require 'asdf)

        ;; set up the load path for ASDF-INSTALL and then load it
        (pushnew "home:Lisp:ccl:tools;asdf-install;" asdf:*central-registry*)

        ;; Now make sure we can load these ASDF-INSTALLed programs.
        (pushnew "home:.asdf-install;systems;" asdf:*central-registry*)

        ;; load ASDF-INSTALL
        (asdf:oos 'asdf:load-op 'asdf-install)

3. 이제 Aquamacs를 실행해서 ASDF실행!!! ,예: (asdf-install:install usocket) 인증 화면  

4. 의문점 

   로드된 ASDF패키지는 ".asdf-install"이 아니라 ".asdf-install-dir"에 저장된다. 
   
   slime 실행시 log화면에 ".asdf-install"파일을 찾을 수 없다는 Error 메세지가 나온다. 다음 LISP모임에 가서 의문점을 해결해 봐야 겠음.

설정

트랙백

댓글

Mac OS X SERVER(10.6)에서 MAC Port 설치하기

맥(Mac OS X) 2010. 3. 5. 11:24
Rmagick 같은 gem을 설치하려면 그 gem을 설치하기 위한 여러 라이브러리 파일을 설치해야 합니다. 그래서 그것을 간편하게 하기 위한 것이 macport란 프로그램인데 Mac OS X 10.6 server에서는 MacPort프로그램이 사용하는 rsync란 프로토콜을 사용할 수 가 없어 install할 Library 정보를 가져올 수 가 없습니다. 그래서 그 정보를 SVN으로 Local로 받아서 macport와 Sync하는 해결책이 있습니다. 

 자세히 설명드리면 MacPort가 설치된 Directory를 /opt/local 이하라고 가정하고, 

 step1)
cd /opt/local/var/macports/sources
mkdir -p svn.macports.org/trunk/dports
cd svn.macports.org/trunk/dports 
svn co http://svn.macports.org/repository/macports/trunk/dports/ .
svn 명령어가 실행되면 port list를 받아서 저장합니다. 

 step 2) /opt/local/etc/macports/sources.conf 파일 수정
#rsync://rsync.macports.org/release/ports/ [default]
file:///opt/local/var/macports/sources/svn.macports.org/trunk/dports/ [default]
첫번쨰 문장을 주석처리 하고 방금 전에 받은 port list의 정보가 있는 경로명을 추가합니다. 

step3) Port list 정보를 동기화 하
port -d sync
이제 Macport를 예전 방법으로 사용할 수 있습니다. 

설정

트랙백

댓글

Cocoa Design Pattern 1장 요약

맥(Mac OS X) 2010. 1. 12. 21:38
Cocoa Design Pattern 1장 스터디 요약 
  
1. Core Data Support for Model Subsystems 원문 참조

 - Cocoa의 Core data 기술은 model의 서브시스템 개발을 목적으로한다. 그리고 2개의 공통적인 도전적 이슈를 구현한다. (Persistent information Storage, object relationship) 

- 거의 모든 모델들이 정보를 저장할 능력을 필요로 하고, 그것을 다시 불러 들어야 한다. 많은 가능한 구현이 있다. 어떤 프로그램에서는 바이너리 파일 포멧을 사용하고, 다른 것들은 사람이 읽을 수 있는 텍스트 파일이다. 어떤 구현은 관계형 데이타 베이스에 의존하기도 한다. 

 - Core Data는 "object persistance"라고 부르는 기술을 사용한다. 기본적인 접근은 모델 오브젝트를 저장하고, 갇고 있는 정보를 은닉화한다(encapsulation) 그리고 오브젝트의 관계도 마찬가지로 저장한다. 

 - Core Data는 이런 persistant object(바로 위에서 언급된 내용)를 불러 들이거나, 저장할 수 있고 세개의 파일 폿멧을 사용한다.(XML, Binary flat file, SQLite) 

- 거의 대부분 모든 모델에서 객체간의 관계에 대한 관리가 필요하다. Core Data는 1:1 또는 1:다 관계를 지원한다. 각 관계는 필요조건일 수도 있고 아닐 수도 있다. - Core Data는 관계를 정의하거나, 제약조건을 정의할 수 있고 기본 값을 제공하거나, 관계를 검사할 수 있다. 

- NSManagedObject Class는 객체 관계 관리를 내부적으로 지원한다. 

- NSManageObjectContext는 persistant Object Store와 연결을 지원한다. 

2. Application Kit Support for View Subsystems 

- Cocoa의 Application kit은 view와 Controller의 서브 시스템을 포함한다. 

- NSMenu, NSWindow, NSApplication and NSView, NSWindow등은 Cocoa Graphical user interface의 코어이다. 

- 각각의 cocoa application은 NSApplication의 객체이다. 이것은 사용자로 부터 발생되는 이벤트를 받고, 독(dock)에 아이콘을 표시하고, 윈도우를 그린다. 

 - NSView의 서브 클래스들은 기본적인 유저 인터페이스 구현에 사용된다.(Button, Text, Tab View, Progress Indicator etc..) - NSApplication, NSView, NSWindow 는 모든 NSResponder의 서브 클래스이다.

- NSResponder Class는 Application Kit의 핵심!, 사용자 이벤트를 은닉화 하고 Responder chain design pattern을 사용하여 메세지나 이벤트를 가야 되는 객체에 전달한다. 

- NSView는 Hierarchies pattern을 사용한다. 이것은 개발자로 하여금 view안 view를 구성할수 있도록 한다. 예를 들어 어떤 하나의 뷰는 여러개의 sub view로 만들어져 있다. 

- 많은 Cocoa의 기본 사용자 인터페이스는 NSControl의 SubClass로 만들어져 있다. NSControl의 핵심은 Target and action 그리고 Responder Chain이다. 예를 들어 NSDatePicker 객체의 경우 사용자가 DatePicker를 클릭했을때 액션 메세지는 Target에 전달되고, 해당 타겟이 그 메세지를 받을수 없으면, responder chain이 적합한 Target으로 보낸다.

 - NSCell은 Flyweight pattern을 사용한다. 이것은 실행시간과 메모리 소모를 조절한다. NSControl객체는 NSCell의 서브 클래스를 사용한다. 예제로 NSTableView는 NSCell객체를 사용하는데 각각의 컬럼에서 데이터를 표현하는 방법을 결정한다. 

3. Application Kit Support for Controller Subsystems 

- Cocoa의 NSArrayController class는 view객체와 model객체 사이의 조정자 (mediator)역활을 한다. 이것은 기본적으로 저장된 데이터에 제공 즉, 정보에 대한 흐름을 제어한다. 어려운 말이지만, 예를 들어 사용자가 어떤 하나의 view object안에 어떤 값을 입력하지 않은 경우 이것이 기본값을 제공한다. 

- Application Kit은 NSController,NSObjectController,NSArrayController, NSUserDefaultsController, NSTreeController Class등이 있다. 이것들은 Data의 흐름을 관리하며 Cocoa binding 기술을 사용한다. - 여러개의 view와 모델에 대한 조정자인 NSDocument class도 있다. Cocoa's Text Architecture

- NSTextStorage는 모델을 저장하고 Text를 Processing을 한다. - NSTextContainer는 text의 geometric한 모양을 저장한다.

 - NSLayoutManager는 view와 모델사이의 조정자 역활을 하는 Controller처럼 행동한다. - 각각의 NSTextView 객체는 관련된 NSLayoutManager 객체를 요청하고, 그것은 그려진 Text를 제공한다. 하나의 MVC 패턴임을 기억한다. 

Cocoa's Document Architecture 
- Model : NSMangedObjectContext, NSFileWrapper 
- View : NSResponder -->(상속) NSWindow, NSApplication 
- View Controller : NSWindowController, NSDocumentController 
- Model Controller : NSDocument -->(상속) NSPersistentDocument 

- NSDocument는 Template Method Pattern을 사용하는 최적의 예제이다. - NSDocument자체는 Abstract 하다. (C# 이나, Java의 abstract와는 다르다)

- 개발자는 NSDocument를 상속받아 SubClass를 구현한다. 여기에는 모델을 로드하고 저장하는 기능을 지원하는 중요한 베소드를 포함한다. 

- Document-based 프로그램에서는 오직 하나의 NSDocumentController 객체만 있다. 

- 각각의 NSDocument 객체는 연관된 열려진 Document를 관리하고 열려진 Document는 0 또는 하나 그이상의 NSWindowController객체가 연결되어 있다. Cocoa Scriptability 

- Cocoa는 scripting interface를 제공한다. NSApplication 객체는 모든 Graphical Cocoa Application에 관해서, Apple Event라 불리는 메세지를 받아 들일 수 있다. 

- Apple Event는 다양한 Script Language를 통해 보내 질 수 있다. (Ruby, Python)

설정

트랙백

댓글

Object C에 Block(Closure)가 추가된다!!!

맥(Mac OS X) 2009. 6. 12. 10:24
음.. Snow Leopard(Mac OS X 10.6)에서 부터 루비, 파이썬 또는 C#(3.0 이상)에서 구현되는 Function Block, 또는 Closer.. 언어에 따라 개념이 약간 식은 다를 수 있지만, 어째튼 이게 된다고 하네요. 사용방법은,

I = [I  map:^(id obj) { return [obj uppercaseString]; }];
I = [I  filter:^(id obj) { return [obj hasprefix:@"a"]; }];

또는 바로 C언어에서도,

void EvalFuncOnGrid( float(^block)(float) ) {
    int i;
    for ( i = 0; i < 5 ; ++i ) {
        float x = i * 0.1;
        printf("%f %f", x, block(x));
    }
}

void Caller(void) {
    float forceConst = 3.445;
    EvalFuncOnGrid(^(float x){ return 0.5 * forceConst * x * x; });
}

void main(void) {
   Caller();
}

참고 블러그 => http://www.macresearch.org/cocoa-scientists-part-xxvii-getting-closure-objective-c 아이폰에서도 곧 이런 프로그래밍이 가능해지겠네요. ㅋ

설정

트랙백

댓글

Mars Edit 를 사용해서 Tistory에 글을 올려보자 !!!

맥(Mac OS X) 2009. 5. 21. 09:20
팀블로깅에 참여하면서, 걱정거리 중 하나!, 편리한 Writer사용해서 쉽게 글 올리는 방법이지요.
여러 툴을 두고 고민하다가, 회사 불로깅에서 많이 사용하는 Mars Edit 를 사용하게 되었습니다.
사용하는 방법은 간단해요.

Let's Try it!

Network Authentication 에서는 선택한 웹로그(예를 들어 티스토리)의 아이디 패스워드를 입력하면 됩니다.
OK 버튼 누르면 그다음부터 무지 겁나게 쉽습니다. ㅋㅋㅋㅋ


설정

트랙백

댓글