쉘에서 파일 디스크립터를 사용한 필터 구현

쉘에서 파일 디스크립터 사용하기 입출력을 반복하는 형태의 커뮤니케이션을 구현하기 위해서는 한 쌍의 FIFO 파이프를 만들어서 사용한다. 파이프는 mkfifo 명령을 통해서 이름이 붙은 파이프를 만들 수 있다. (이름이 붙은 파이프라는 것은 결국 임시파일이다.) mkfifo /tmp/infifo mafifo /tmp/outfifo 입력을 sed를 이용해 필터링하여 출력하는 예제는 다음과 같다.

[Cocoa / Objective-C] NSString의 문자열 뒤집기, 글자를 정렬한 문자열 구하기.

프레임워크에 당연히 있는 기능일 줄 알았는데 없더라… 그래서 자작. 짤막한 설명 문자열 뒤집기는 C문자열로 바꾼다음 포인터를 쓰는게 제일 깔끔할 것 같아서 그렇게 했다. -UTF8String 메소드는 const char 타입 포인터를 리턴하는데, 이걸 char 형으로 강제캐스팅하는 게 찜찜해서 strcpy로 복사했는데, 어디서 이 함수도 상당히 나쁘다고 쓰지 말라더라. (다른 뭐를 쓰라던데 그게 기억이 안나서 그냥 씀) malloc으로 할당한 메모리는 ARC의 관심밖이므로 철저히 free 해주는 나란 남자, 그런 남자… 문자열내 문자들을 사전순으로 정렬해주는 건 소인수 분해 따위나 할 때 쓸모가 있긴 있을텐데,  NSArray의 sortedUsingComparator:

iTunes 11 출시

한국시간으로 11월 30일 새벽에 아이튠즈 11이 출시되었다. 원래는 10월에 출시될 예정이었는데 문제가 있어서 출시를 한 달 미루면서 일부 설계를 바꾸고 새로 작성한 부분이 꽤 된다는 이야기가 있다.  (11월 출시조차 못맞추는 건 아닐까 내심 조마조마했었다.) 거의 2년 가까이 아이튠즈의 외관에는 큰 변화가 없었는데, 그나마 마이너 업데이트가 계속 되었던 것은 iOS의 버전이 올라가면서 그에 맞는 드라이버 업데이트가 필요했기 때문이다. (윈도와 맥 공통으로 아이폰을 컴퓨터와 연결하는 데 필요한 장치 드라이버는 아이튠즈에 포함되어 있다. 그래서 상위 버전의 iOS와 동기화하려면 아이튠즈 업그레이드는 필수) 이번에 새로

맥의 부팅음을 없애는 방법

맥 특유의 부팅음은 PC계열의 삑- 하는 소리보다는 아름답지만, 도서관 등의 공공장소에서 재부팅이라도 한 번 할라치면 참 난감하다. (생각보다 이 부팅음의 소리는 큰 편이더라.) 맥 부팅음을 없애주는 앱 같은 것도 나와 있는 것 같던데. 암튼, 누군가는 이런 게 분명 필요한 모양이다. 이 부팅음을 영영 안나오게 하는 건 서드파티 앱 없이도 할 수 있다. 터미널을 열고 다음과 같이 입력한다. sudo 명령을 쓴다는 것은 이 명령을 입력하고 엔터를 친 후, 비밀 번호를 물어보게 된다. sudo nvram SystemAudioVolume=%80 입력 후 자신의 로그인 계정의 비밀번호를

[OSX] 맥에서 손쉽게 아이폰용 동영상 인코딩하기

디지털 카메라나 아이폰이 아닌 스마트폰으로 찍은 동영상을 아이폰에서 재생하려면 인코딩을 해야하는 경우가 있다. 윈도에서는 곰인코더 같은 게 많이 있던데 맥에서는 뭘쓰면 좋을라나… 싶었지만 구관이 명관(?)이라고 리눅스 쓸 때부터 쓰던 Handbrake가 좋겠다 싶었다. (당연히 맥용도 있고, 윈도용도 있음) HandBrake는 Preset을 정해서 쉽게 인코딩을 할 수는 있지만, 매번 영상 파일을 찾아서 일일이 지정하기는 좀 번거로우니까, 아예 Automator를 써서 한 방에 처리할 수 있는 도구를 만들어 보도록 하자. 이 때 약간의 준비물이 필요하다. 동영상을 인코딩할 Handbrake는 CLI 버전이 있어야 하고 (터미널에서 실행되는 명령줄

최근 Xcode의 개선사항

애플은 단지 SDK만 업그레이드하는게 아니라 개발도구도 지속적으로 개선해나가고 있다. Xcode 3 -> 4로 넘어올 때도 상당히 좋아졌는데, 4.5까지 오면서 계속해서 개선되고 있다. What’s new in Xcode 4.3 개별 도구 앱이 하나의 앱 패키지에 통합됨 명령줄 도구를 선택적으로 설치하도록 분리됨 /Developer 디렉터리를 사용하지 않음. 한대의 맥에 다른 버전의 Xcode를 동시에 설치하는 것이가능하며, Xcode는 기존 버전의 Xcode를 삭제하는 기능을 제공함 신규 코코아 프로젝트에서 Auto Layout이 디폴트로 설정됨. What’s new in Xcode 4.4 LLVM 4.0 컴파일러가 적용됨. 이 때부터 NSString외의 객체도 @Literal을 사용할