전체 글 98

수제 핸즈프리 케이블

수제 핸즈프리 케이블. 구조 자체는 쉽기 그지없지만 처음으로 실용적인 것을 바닥부터 만들다 보니 희한하게도 만드는 데 공이 상당히 들었다. 고등학교 때 쓰던 알량한 핸즈프리 케이블이 박살났는데 비싼 가격에 같은 것을 사기 싫다는 단순한 이유로 만들게 되었다. 고등학교 졸업할 때쯤부터 안 쓰게 되어 집구석에 박아 두고 잊었던 것을 엊그제 재발견했는데, 때가 무지막지하게 껴 있더라. 마침 주변에 있던 물티슈로 박박 닦아서 거진 새 케이블을 만들었다. 사실 처음 재료를 구입할 때부터 케이블과 플러그 팁에 때가 상당했는데, 헝겊과 휴지로 닦으려 해 봐도 영 안 되길래 그냥 불량한 물건이려니 했던 것이 오래도록 때가 축적된 것이다. (...) 덕분에 물티슈의 위력을 절감했다. 이 케이블은 큐리텔 U-5000 휴대..

strings.xml 로컬화 점검 방법 (How to check strings.xml localization)

안드로이드 SDK에서 l10n은 strings.xml을 이용해 이루어진다. 해외 법인이 따로 있는 회사에서 앱을 개발하는 경우에는 아예 소스 코드를 넘겨서 별도의 앱을 만들어 버리는 경우가 많지만, 규모가 그렇게 크지도 않고 문자열 외의 대대적인 로컬화가 필요가 없다면 res/values locale postfix modifier 사용은 필수적이다. 이럴 경우 트리 메인테이너에게는 언어별 strings.xml을 관리해야 한다는 부담이 작용한다. 개발이 항상 선형으로 이루어질 수는 없기에, 로컬화 담당자가 strings.xml을 들고 왔을 때 무엇이 누락되었을지 찾기 어렵기 때문이다. 주로 이런 문제는 담당 로케일의 QA가 운좋게 찾아내는 게 고작이다. 오픈소스의 경우 얼마나 많은 타깃 언어가 만들어질 것..

2004년 전북교육청 수월성교육 교재

수월성교육이라는 게 있었다. 요즘은 수준별 맞춤교육이라는 이름으로 각급 학교의 자율로 완전히 넘어온 개념인데, 한때 지역 교육청마다 방학 중 영재교육 프로그램처럼 초등학생이나 중학생을 대상으로 수월성교육 프로그램을 운영했다. 영재교육같은 큰 문턱은 없지만 자유롭게 신청해서 수업을 듣고 수료증도 받는 방과후 교실같은 느낌이었다. 여기서 배운 개념들은 학교 진도의 연장선상에 놓여 있다고 할 만한 것들이었지만, 실제로 고등학교 교육과정에 등장하는 내용인지는 별개의 이야기이다. 지금 생각하자면 아무래도 그 수월성교육 커리큘럼 정도로 고등학교 교육 과정을 튜닝해야 하지 않나 싶다. 물론 실제 교육 과정은 점점 재미는 없고 어려움만 더해지는 식으로 거꾸로 가고 있지만. 전북교육청 수월성교육은, 흔히 영재교육이 그렇..

이상한 입체퍼즐

요즘은 입체퍼즐이다 하먼 거의 루빅스 큐브와 그 변종의 동치 격으로 해석되는 것 같은데, 큐브는 사실 좀 나이가 있는 사람들에게 어울리는 퍼즐이다. 나는 아동용 완구가 막 한국에서 잘 팔리기 시작하던 시절을 타고나서 (그리고 부모님의 안목도...) 이런저런 옛날 장난감이 집에 꽤 남아 있다. 이를테면 한국에서 레고의 인기몰이도 시기적으로 궤를 같이 하는데, 그렇다고 1990년대에 지금처럼 동네마다 레고가 보급되어 있는 것은 아니었다. 당시에는 관세같은 문제도 있었고, 부모들이 너도나도 좋은 장난감을 사서 영재성을 발굴하던 시기와는 거리가 좀 있었기 때문이다. 좀 큰 도시에 가야 있는 완구 총판 격의 창고형 마트에서 요즘 대형 마트의 완구 코너에서 팔 만한 것을 볼 수 있었다. 물론 요즘 그런 곳은 동네 ..

화학 사전들

화학 약품 대사전, 화학 실험 대사전. 문성명 저. 일단 크기에 압도당하고 시작하는 대단한 사전. 내 나이를 넘는 굉장히 오래된 다소 비싼 책인데 (1991), 내가 산 건 아니고, 중학교때 선생님께 선물받았다. 받을 때는 굉장히 감사히 받았고 열심히 읽으려고 해 봤는데 뜻대로 되지 않아 유감스러웠던 책이다. 덕분에 겉모습은 조금 허름하지만 내 책답지 않게 6년째 속은 깔끔하게 지내고 있다. 하긴 사전류가 읽어내려가는 책은 아니니까...; 선생님의 정신을 이어받아 기부를 할까 싶은데 누가 받을지 모르겠고 아마 보내 봤자 학교 도서관이겠지. 이후 혼자서 유기화학이나 물리화학, 생화학을 혼자 파고 공부할 때 꽤 도움이 되었다. 각종 물질의 용법이나 성상 등이 종종 위키백과보다도 (물론 영어판) 자세히 기록되..

첫 디카의 흔적

오랜만에 (?) 가족들이 있는 집에 와서 내 방을 정리하다 문득 내가 초등학교 때부터 집에 모셔두고 있는 기억의 단편들을 모아 봐야겠다는 느낌이 들었다. 사실 방 정리를 어김없이 방해하는 바로 그 현상이다. 오늘부터는 아예 그걸 잘 정리해서 다시 정리를 방해하게 놔 두지 않을 생각이다. ㅋㅋ 그 첫 타자가 바로 이 디카 리모콘. 내 초등학교 졸업 선물은 디지털 카메라였다. 모델명은 아마 삼성 케녹스 C410 정도였던 것 같다. SLR이 보급되기는 멀었던 시기였으니 (사실 지금도 SLR이 보급이 되고 있는 건지는 의문이다) 당연히 똑딱이였고, 위 사진에서 보다시피 리모콘에도 촬영 버튼 하나뿐이며 줌이나 초점 갱신같은 건 없다. 그래도 나름 괜찮은 CCD와 LCD를 사용했던 동글동글한 귀여운 보급형 모델이었..

하드 디스크 고장에 대처하는 자세

1. 고장의 기미가 보이면 그 하드웨어를 고치려 들지 말고, 무슨 수를 써서라도 사용 시간을 줄이고 중요한 것부터 백업부터 해야 한다. 노력해서 하드 디스크를 고쳐서 원만하게 쓴다고 돈이 아껴지는 게 아니다. 어떤 자동화된 도구를 쓰든 자칫하면 엄청난 시간 낭비로 이어져 전혀 절약이 되지 않을 뿐더러, 대개의 경우 더 심각한 고장 상황을 초래하고 더 많은 데이터를 잃게 되는 원인이 된다. 논리적 오류가 물리적 오류로 발전하고, 물리적 오류가 번져 나가고... 이런 상황은 막아야 하니까 말이다. RAM이든 HDD이든 저장소는 예나 지금이나 원시적인 방식으로 돌아가는 것을 알 수 있다. 데이터 밀도가 높아지면 결함에 대한 내성은 낮아지기 마련이고, 안정적인 데이터 관리에는 돈이 필수적이다. 슬픈 사실이다. ..

삼항 연산자의 우선 순위와 싱글턴 패턴의 작성

LinkManager 클래스에 private LinkManager()와 private static LinkManager sInstance;가 있다고 가정하자. 예를 들면 public static LinkManager getInstance(...) 말미에서, return sInstance == null ? sInstance = new LinkManager() : sInstance; 이런 코드는 가능하지만, return sInstance != null ? sInstance : sInstance = new LinkManager(); 이건 불가능하다. 이건 C/C++에서 업어온 삼항연산자의 정의 때문이다. C11의 정의는 다음과 같다. (6.5.14) logical-OR-expression: logical-AN..

흔한 교회 선전물 단상

오늘 기숙사 앞 교회에서 이런 걸 받음. "하나님 믿으세요? 교회 한 번 놀러 오세요." 최근 몇 년 들어 교회들이 매우 현대화된 감각으로 탈피하는 것 같다. 천국이나 지옥 얘기도 없고. 문득 종교란 이성적으로 큰 하자 없는 대안이 아닌가 하는 생각이 들었다. 답을 내지도 못할 거면서 철학적 고민들에 시달릴 바에야 어느 정도 신의 뜻으로 공유되는 이념을 믿고 사는 게 편하지 않을까. 실존주의자들이 신에 대해 얘기할 때 이런 느낌이었을지도 모르겠다. 마지막 말은 사족.

내 소스인 줄 알았네

괜찮은 아이디어는 어딜 가든 통하더라. 내 머리가 잘 굴러간다고 자부하는 건 아니지만... 내가 이 분야를 잘못 고른 건 아니구나 하고, 훗날의 자기 설득을 위해 잠이 안 오는 김에 정리. 1. 구글 구글에 대해서 작년과 올해에 하나씩 포스트를 두 번 했는데, 의도치 않게 각각 작년과 올해 구글 I/O에 대한 예언성 포스트가 되어 버렸다. 2012/06/12 안드로이드 젤리빈 이후가 기대되는 다섯 가지 이유 2013/04/07 왜 구글이 잘나가나요 내년도 노려 봐야겠다는 생각. 농담 반 진담 반이다. 2. Notepad2 요즘은 관뒀지만 Notepad2 소스에 개인 패치를 적용하던 때가 있었다. 2011/05/25 Notepad2 패치에 발을 담그다 - (1) Mark Occurrences, Case i..

Views/Underview 2013.05.26