grep

grep 사용방법

grep은 주어진 파일(들)이나 표준입력에서 주어진 패턴과 매칭되는 라인들을 필터링하여 출력해준다. 기본적으로 grep은 매치되는 라인들을 출력한다.

fgrep, egrep도 사용가능한데 이들은 각각 -F, -E 옵션으로 통합되었으며 현재는 오래된 스크립트와의 호환을 위해서만 남겨져 있다고 생각하면 된다.
grep 더보기

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

쉘에서 파일 디스크립터 사용하기

입출력을 반복하는 형태의 커뮤니케이션을 구현하기 위해서는 한 쌍의 FIFO 파이프를 만들어서 사용한다. 파이프는 mkfifo 명령을 통해서 이름이 붙은 파이프를 만들 수 있다. (이름이 붙은 파이프라는 것은 결국 임시파일이다.)

mkfifo /tmp/infifo
mafifo /tmp/outfifo

입력을 sed를 이용해 필터링하여 출력하는 예제는 다음과 같다.
쉘에서 파일 디스크립터를 사용한 필터 구현 더보기

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

프레임워크에 당연히 있는 기능일 줄 알았는데 없더라… 그래서 자작.

짤막한 설명

문자열 뒤집기는 C문자열로 바꾼다음 포인터를 쓰는게 제일 깔끔할 것 같아서 그렇게 했다. -UTF8String 메소드는 const char 타입 포인터를 리턴하는데, 이걸 char 형으로 강제캐스팅하는 게 찜찜해서 strcpy로 복사했는데, 어디서 이 함수도 상당히 나쁘다고 쓰지 말라더라. (다른 뭐를 쓰라던데 그게 기억이 안나서 그냥 씀)

malloc으로 할당한 메모리는 ARC의 관심밖이므로 철저히 free 해주는 나란 남자, 그런 남자…

문자열내 문자들을 사전순으로 정렬해주는 건 소인수 분해 따위나 할 때 쓸모가 있긴 있을텐데,  NSArraysortedUsingComparator: 메소드를 사용했다.  OSX에서는 코드 블럭( ^( ){ … } )을 쓰면 되는데 GNUStep에서는 이게 함수포인터를 쓰는 것 같더라. 아마 이 코드 그대로 쓰면 안될 듯. GNUStep의 정렬 메소드는 함수 포인터로 되어 있고 아예 메소드명이 달라서, NSSortDescriptor를 사용하는 방법으로 변경했다. 지난 번 버전의 코드는 여기에서 볼 수 있다.

함수 내에서 상당히 많은 autorelease 되는 NSString을 만들어낼 수도 있어서, 메소드 안쪽에 autoreleasepool 블럭을 설치해줬다.

 

iTunes 11 출시

한국시간으로 11월 30일 새벽에 아이튠즈 11이 출시되었다. 원래는 10월에 출시될 예정이었는데 문제가 있어서 출시를 한 달 미루면서 일부 설계를 바꾸고 새로 작성한 부분이 꽤 된다는 이야기가 있다.  (11월 출시조차 못맞추는 건 아닐까 내심 조마조마했었다.)

거의 2년 가까이 아이튠즈의 외관에는 큰 변화가 없었는데, 그나마 마이너 업데이트가 계속 되었던 것은 iOS의 버전이 올라가면서 그에 맞는 드라이버 업데이트가 필요했기 때문이다. (윈도와 맥 공통으로 아이폰을 컴퓨터와 연결하는 데 필요한 장치 드라이버는 아이튠즈에 포함되어 있다. 그래서 상위 버전의 iOS와 동기화하려면 아이튠즈 업그레이드는 필수)

이번에 새로 출시된 iTunes 11은 사용자 인터페이스에 대해 대대적인 변경이 가해졌다. 그래서 기존 버전에 익숙한 사용자들 중 일부는 어어어? 하며 당혹스러워할 수 있다. (물론 기존 버전과 유사한 스타일의 UI로 세팅을 바꿀 수 있다. 이 부분은 국내에서 제일 가는 맥 관련 블로그를 운영중이신 ONE님의 블로그 포스팅을 참고)

새롭게 바뀐 UI는 익숙해진 기존 버전과는 판이하게 달라져서 조금 당황스러울 수는 있으나, 그 디자인 만큼은 세련의 극치라고 평가하고 싶다.  그리고 놀라운 점은 이토록 세련되고 미려한 디자인을 매끄럽게 돌아가도록 만들어냈다는 점에서도 높은 점수를 주고 싶다. 메뉴나 버튼 들이 많이 사라져서 좀 허전한(?)감이 들었는데 되려 불필요한 UI들을 싹 정리하면서도 매끄러운 효과들, 구석구석 사용성에 신경 쓴 흔적들을 보노라면 역시 애플이라며 엄지손가락을 치켜 세워주고 싶다.

게다가, 이전 버전까지의 아이튠즈는 iOS 기기만 아니면 절대 설치하고 싶지 않은 물건이었으나 이번 버전에서는 윈도에서도 엄청 빠릿해졌음을 체감할 수 있다. (아 애플님하, 제발 윈도용 사파리도 좀….) 게다가 얼마전 출시된 아이패드 미니의 경우에는 아이튠즈11에서만 동기화가 가능하니, 이번 업데이트는 무조건 다운로드 받아서 설치할 것을 권장한다.

맥의 부팅음을 없애는 방법

맥 특유의 부팅음은 PC계열의 삑- 하는 소리보다는 아름답지만, 도서관 등의 공공장소에서 재부팅이라도 한 번 할라치면 참 난감하다. (생각보다 이 부팅음의 소리는 큰 편이더라.) 맥 부팅음을 없애주는 앱 같은 것도 나와 있는 것 같던데. 암튼, 누군가는 이런 게 분명 필요한 모양이다. 이 부팅음을 영영 안나오게 하는 건 서드파티 앱 없이도 할 수 있다.

터미널을 열고 다음과 같이 입력한다. sudo 명령을 쓴다는 것은 이 명령을 입력하고 엔터를 친 후, 비밀 번호를 물어보게 된다.

 sudo nvram SystemAudioVolume=%80

입력 후 자신의 로그인 계정의 비밀번호를 넣어주면 된다.( 80%가 아니라 %80이다.)

추후에 이 설정을 복구하고 싶다면 다음의 명령을 사용한다.

sudo nvram -d SystemAudioVoluem