Author Archives: 정 재환

엔서블에서 apt 이용할 때 나오는 오류 처리법

apt을 이용해 업그레이드할 때 통상적으로 다음과 같이 하는 경우가 많습니다.

tasks:
- name: Update and upgrade apt packages
become: true
apt:
upgrade: yes
update_cache: yes
cache_valid_time: 86400 #One day

이런 경우 다음과 같은 경고가 뜰 수 있죠.

TASK [Update and upgrade apt packages] ************************************************************************************************************************
[WARNING]: The value "True" (type bool) was converted to "'True'" (type string). If this does not look like what you expect, quote the entire value to ensure
it does not change.

이건 upgrade: yesupgrade: "yes"과 같이 바꾸면 해결됩니다. 즉 아래와 같이 하면 됩니다.

tasks:
- name: Update and upgrade apt packages
become: true
apt:
upgrade: "yes" # not: yes
update_cache: yes
cache_valid_time: 86400 #One day

참고: ubuntu – Ansible warning about boolean type conversion – Stack Overflow

LaTeX에서 수평선 그리기

LaTex에서 논증을 구성하고 결론을 보여주고자 할 때 그냥 무작정 그었더니 예쁘지 않더군요. 그래서 오래간만에 좀 찾아봤더니 역시 그리는 방법이 있었습니다.TIMMURPHY.ORG의 글을 참고했습니다.

선은 LaTeX의 \line function을 이용하여 그립니다. 이 function은 다음과 같이 x-slope, y-slope and length 등을 정의합니다:

[code language=”latex”]
\line(x-slope,y-slope){length}
[/code]

이때 수평선은 그리기 위해서는, X-slope은 1로, Y-slope는 0으로 설정합니다. 다음과 같이 하면 멋진 수평선을 그을 수 있습니다. 여기서 \begin{center}은 문서 중앙에 그리라고 설정한 것입니다.

[code language=”latex”]
\begin{center}
\line(1,0){250}
\end{center}
[/code]

맥 검색인 Spotlight 에서 Evernote 가 검색되지 않는 경우 해결책

에버노트를 잘 앱스토어에서 잘 다운 받아 쓰다가 문득 해봤는데 안 검색이 되지 않아서 고생했습니다. 찾아보니 해결책은 쉽습니다. 애버노트 홈피에서 개발자의 다음과 같은 답변을 찾았습니다.

There is an issue with 10.9 and Spotlight functionality. It is a restriction only on Mac App Store builds. To get around this, please download Evernote directly from us at

즉 애플 앱스토어에서 애버노트 앱을 다운 받지 말고,  애버노트 홈에서 다음 링크로 가신 다음,

https://evernote.com/intl/ko/evernote/

그냥 맥용 내려받기 버튼을 누르시면 앱스토어로 가는 경우가 있으니 다음과 같이 해주시면 됩니다. 참고로 이렇게 해도 Spotlight가 완벽하게 작동은 하지 않지만, 쓸만하게 검색이 됩니다.

evernote down 1

evernote_down_2

습관을 고쳐 초딩때 꼴찌가 전교 순위권이 된 이야기

조선일보 2006년 11월 6일 월요일, D1, ‘맛있는 공부’ 편에 나왔던 이야기를 소개해보겠습니다. 우선 제목이 “초등 꼴지, 4년 만에 15등이 된 비결은? “6가지 습관 고쳐 상위권으로””이라고 상당히 길었습니다. 저를 포함한 많은 사람들이 ‘비법’이니 ‘특효약’이니 같은 것에 관심이 많습니다. 저도 여기에 특별한 비법이 있다하고 자세히 읽어봤습니다. 내용은 초등학고 선생님이 아마도 꼴지라는 말에 충격을 받은 여학생이 공부를 해야겠다는 중학교에 들어가면서 성적이 올라가서 결국은 고등학교에서 성적이 순위권에 들어가게 되었다는 단순한 이야기입니다.

이런 이야기는 여러곳에서 접해볼 수 있는 평범한 이야기지만, 제가 글을 쓸만큼 관심가는 내용이 있었습니다. 다음과 같은 그 학생이 바꾼 6가지 습관이었습니다.

1) 공부 얘기만 하기
2) 선생님 말씀 무조건 받아적기
3) 아침형 인간 되기
4) 나만의 공부 계획짜기
5) 외모 신경쓰지 않기
6) 컴퓨터 게임 끊기

이런 습관들은 평범하게 보일지도 모르지만, 이런 평범함 속에 결정타가 들어 있습니다. 저도 효과를 봤던 것이 들어 있었는데, 2번, 선생님 말씀 무조건 받아적기 입니다. 기사를 보시면 아시겠지만, 공부를 못하는 사람들은 어떤 것이 중요한 이야기인지 모릅니다. 그러니 수업이 재미없죠! 그리고 어떤 것은 적어야 할지도 당연히 모릅니다. 그래서 무조건 적는 것이 효과적입니다. 저같은 경우도 대학교에서 어떤 한 수업을 좋아서 몇 번이나 청강한 적이 있었는데, 같은 수업을 몇 번 들어면서 무조건 수업 내용 모두를 적어보니, 수업시간도 재미있고, 내용도 잘 알게 되고, 수업시간에 집중도도 높아집니다. 이 습관은 참 좋은 습관입니다. 한번 해보세요!

3번째 아침형 인간도 할만합니다. 아침에 조금 읽찍 일어나려면 우선 일찍 자야 되고 일찍 자면 수면량이 늘어나 학교에 가도 졸립지 않게 됩니다. 그리고 5번, 6번도 다들 아시는 것처럼 효과적입니다. 외모꾸미는 시간이 생각보다 많이 드는 것은 다들 잘 알고 있을 것 같고, 컴퓨터 게임도 중독성이 있어서 시간을 많이 뺏기게 됩니다. 저도 제가 겪어봐서 압니다. “2시간만 게임하지”라고 말하고 정말로 2시간만 하는 사람은 정말로 자제력이 좋은 사람이고 이런 사람은 공부도 잘합니다. 그러니 자신이 공부를 잘 못한다고 생각하면 , 아에 안하시는 편이 공부를 하는데 좋습니다.

이처럼 공부를 잘하는 것은 어떤 특별한 방도가 있지 않습니다. 사람들이 평범하고 모두 알만한 것들을 지키는 것이 공부 잘하는 방법이라고 할 수 있겠죠. 그런데 그런 것들이 왜 그렇게 하기 힘들까요? 참 어렵네요 ^^;

C 프로그래머처럼 생각하기

이 글의 출처가 어딘지는 모르겠네요! 아마도 컴퓨터에 자료를 저장하기 시작한지 15년은 충분히 넘었을 것 같습니다. 그러니 좋은 글들은 모아두었던 것 같습니다. 이 자료도 프로그래머가 되어 보겠다고 이곳 저곳 기웃거릴 때 모아두었을 겁니다. 지우기에는 아까워 여기에 보관하려고 합니다.

C 프로그래머처럼 생각하기

여러분은 이 책의 내용을 공부하고 나서 능숙한 C 프로그래머가 되기를 바랄 것이다. 그러나 이것이 쉬운 일만은 아니다. 프로그래밍 언어도 영어나 일본어 같은 일반적인 언어와 마찬가지로 아무리 문법을 많이 알고 있다고 해도 적절한 경우에 적절한 문법을 사용하지 못한다면 아무 소용이 없다.  해결해야 하는 문제에 대해서 적절한 C의 문법을 사용하면서 프로그램을 작성하기 위해서는 문법을 아는 것도 중요하지만, C 프로그래머처럼 생각하는 방법을 기르는 것 또한 매우 중요하다.

C 프로그램을 작성하여 어떤 문제를 해결할 때에는 일련의 단계를 거쳐야하는데, 여기에서는 프로그램을 작성하여 문제를 해결하는 방법에 대해서 잠시 이야기를 해볼까 한다. 항상 어떤 일이든지 치밀한 구성과 주도 면밀한 계획이 있어야만 성공할 수 있는 법! C 언어의 문제 해결을 위한 프로그래머로서의 지침을 지금부터 알아보기로 하자.

  1. 해결해야 할 문제 분석하기: C 언어로 프로그램을 작성하기 전에 가장 먼저 해야 할 일은 어떤 문제를 해결해야할 지를 알아내는 것이다. 왜 그런고 하니, 해결해야 하는 문제가 무엇인지 확실히 알아야 어떻게 해결할 것인지를 결정할 수가 있기 때문이다. 작성하려고 하는 프로그램이 어떤 기능을 갖고 있는 프로그램인지, 누가 사용할 프로그램인지를 먼저 분석하고 깨닫는 것이 무엇보다 중요하다.
  2. 프로그램의 목적 결정하기: 해결해야 할 문제가 무엇인지를 알았다면 어떠한 프로그램을 작성해야 할지 결정해야만 한다. 그러니까, 자신이 작성할 프로그램이 어떤 작업을 수행하는 프로그램이지 설계해 보는 것이다. 사용자에게 어떤 입력을 받고 파일 또는 데이터베이스에서 어떤 데이터를 읽어 작업하고 어떠한 결과를 출력할 것인지를 결정한 후, 자신이 만들 프로그램의 목적과 상세한 기능에 대해서 설계하는 것이 필요하다.
  3. 프로그램의 구조 설계하기: 작성할 프로그램의 목적과 외형적인 설계가 끝났다면 실제 프로그램의 구조를 설계해야 한다. 데이터가 어떻게 흘러가는지 어떠한 작업들을 어떤 순서로 실행할 것인지를 설계하여야 한다. 이런 경우, 프로그램의 어떤 문제를 해결하기 위한 작업들을 시간 순서대로 설계할 수도 있을 것이고 작업의 계층적인 형태로 설계할 수도 있을 것이다. 또, 프로그램에서 사용하는 데이터는 어떤 구조를 갖는지를 반드시 설계하자. 만일 여러 사람이 공동으로 작업하는 커다란 프로젝트일 경우에 프로그램의 구조를 설계하지 않고 작업에 들어간다면 그 프로젝트는 실패하기 십상이다. 프로젝트의 크기가 클수록 프로그램의 구조를 설계하는 것이 더욱 중요해진다. 이것은 객체 지향 이론으로 넘어가는 이야기이긴 하지만, 프로그래머라면 반드시 숙지해야할 내용이므로 명심하자! 혼자 살아가는 사람은 없듯이, 항상 다른 사람들과의 교류, 다른 운영 체제와의 호환을 생각하면서 프로그램을 작성해야한다.
  4. 함수 설계하기: C는 독립된 작업들을 함수로 사용하여 작성하는데 앞에서 설계한 프로그램의 구조를 바탕으로 하여 독립된 작업들을 함수로 분리하는 작업을 거쳐야한다. 어떤 함수가 어떤 작업을 수행할 지를 설계하는 것이다. 이렇게 함수가 설계되면 프로그램에서 공통적으로 사용되는 부분을 찾을 수 있게 되는데 이러한 부분을 함수로 작성한다면 좀 더 효율적으로 코드를 작성할 수 있게 된다. 또한 함수 설계를 잘하면 한 프로그램에서 작성한 함수를 다른 프로그램에서 다시 사용할 수도 있게 된다. 이렇게 함수를 설계하고 나면 프로그램의 작업들은 계층적인 형태를 갖게 되고, 실제로 프로그램을 작성할 때에는 각각의 함수에서 해겨해야 하는 작업에만 신경쓰게 되므로, 빠르고 쉽게 작업할 수 있다.
  5. 프로그램 작성하기: 설계한 함수를 바탕으로 실제로 프로그램을 작성하는 부분이다. 함수를 사용하여 전체 프로그램의 작업을 구분하고 나면, 하나의 함수를 작성할 때에는 그 함수의 기능만을 신경쓰게 되므로 실제 프로그램 작성은 어려운 문제가 아니게 된다. 이제 C의 문법을 사용해서 그동안 설계한 추상적인 내용들을 실제 코드로 표현하기만 하면 되는 것이다.
  6. 테스트 및 디버그하기: 프로그램을 작성하고 나면 이 프로그램을 실행해 보고 잘못된 부분이 있으면 그 부분을 수정하는 작업을 가해야 한다. 항상 마무리가 좋아야 하는 법! 작성한 프로그램이 한번에 원하는 결과를 내는 일은 극히  드문 경우이므로, 잘못된 연산이나 원치 않은 오류가 발생할 수 있는데 이러한 부분을 프로그램의 버그(BUG)라고 하고 이러한 버그를 수정하는 작업을 디버그(DEBUG)라고 한다. 얼마나 버그를 최소화하는지, 얼마나 디버그를 잘 하는지 하는 것도 프로그래머로서의 자질 여부를 판가름 하는 중요한 요소이다.

The Blackwell Guide to Metaphysics

  • 책제목: The Blackwell Guide to Metaphysics
  • 펴낸곳: Blackwell Publishers
  • 출판연도: 2002
  • Contents
  • Preface.
  1. Physics, Metaphysics, and Method in Newton’s Dynamics: Lawrence Sklar.
  2. Causation: Wesley Salmon.
  3. What Events Are: Jonathan Bennett.
  4. Time, Temporality and Paradox, Richard M. Gale.
  5. A Thomist Metaphysics: John Haldane.
  6. The Concept of Ontological Catergory: a New Approach: Lorenz Puntel.
  7. Universals and Predication: Bruce Aune.
  8. Composition as a Fiction: Gideon Rosen and Cian Dorr.
  9. What Do We Refer To When We Say ‘I’? Peter van Inwagen.
  10. Personal Identity: The Non-Branching Form of ‘What Matters’: Jennifer E. Whiting.
  11. Idealism: T.L.S. Sprigge.
  12. An Idealistic Realism: Presuppositional Realism and Justifcatory Idealism: Nichlas Rescher.
  13. Overcoming a Dualism of Concepts and Causes: The Basic Argument of ‘Empiricism and the Philosophy of Mind’: Robert Brandom.
  14. Metaphysical Realism and Logical Nonrealism: Panayot Butchvarov.
  15. The Metaphysics of Possibilia: William Lycan.
  16. The Actual and the Possible: Alexander Pruss.

ps: 본 책은 논문집 형식으로 되어있습니다. 자료로 올립니다.

Web 디자인에 유용한 곳 링크 모음

제 실력은 미천함에도 불구하고, 문과에서 컴퓨터를 잘 다루는 사람이 없는 관계로 관리하고 있는 홈페이지가 좀 있습니다. 뭐 그래도 Html과 같은 것은 어느 정도 알지만, 미적 표현력이 떨어진 나머지, 디자인적인 측면에서는 거의 50점도 못 되는 수준입니다. 그래서 웹디자인 실력을 늘리고자 자료를 조사했습니다. 이 아래 링크들은 아마도 책같은 곳에서 찾은 것 같은데, 정리한 파일에는 책이름이 적혀 있지 않네요. 출처불명이 되는군요. 그래서 좋은 곳들을 모아둔 것이니 참고하세요!

  1. http://www.w3.org/:여기는 웹은 물론이고 웹 표준을 매일 개발하는 기관
  2. http://www.webstandards.org/: 1998년에 설립된 조직으로 웹 표준을 대중에게 널리 알리고 웹 디자이너와 개발자들이 표준에 따라 개발할 수 있는 교육자료를 제공한다.
  3. http://www.alistapart.com/: 웹 표준으로 디자인하기 위한 테크닉과 장점에 초점을 맞춰 웹 컨텐트를 만들기 위한 디자인, 개발에 관련된 내용을 소개하는 웹진
  4. http://www.csszengarden.com/: 동일한 마크업 구조를 사용하는 자기만의 CSS 디자인을 만들어 제출하여, 보여주는 사이트, 지속적인 업그래이드 되고 있습니다.
  5. http://www.diveintoaccessibility.org/: 웹 접근성에 대해 논의하는 홈피
  6. http://web-graphics.com/: 하이퍼텍스트 디자인 자료, 링크, 설명 들을 모아놓은 곳입니다. 표준에 관련된 디자인과 개발 분야의 새로운 소식을 알려줍니다.
  7. http://www.digital-web.com/: 웹 디자이너를 위한 컬럼, 뉴스, 튜토리얼을 제공하는 온라인 잡지입니다.
  8. http://www.zeldman.com/: 1995년부터 웹 디자인과 관련된 소식과 정보를 올리고 있는 ‘웹 표준의 대부’라고 불리우는 제프리 젤드만의 홈피. (참고: 개인적으로 강추하는 홈피입니다. 정말로 인쇄매체처럼 잘 만들어져 있는 곳입니다. 고수의 숨결을 느낄 수 있습니다.)
  9. http://www.mezzoblue.com/: css 젠 가든(http://www.csszengarden.com)인 Dave Shea의 홈피입니다.
  10. http://www.meyerweb.com/: CSS의 전문가라고 알려진 에릭 마이어의 홈피입니다. 그는 넷스케이프 사와 웹표준에 관련된 컨설팅과 작업을 했습니다.
  11. http://www.whatdoiknow.org/: 훌륭한 표준 웹 사이트 작업에 많이 참여한 토드 도미니의 개인 웹 사이트입니다.
  12. http://www.saila.com/: 온라인 저널리즘부터 웹 구축까지 캐나다 뉴미디어에 관한 소식을 전하는 싸이트. 웹 표준과 관련된 고품격 정보들을 전해줍니다.
  13. http://www.cssdrive.com/

기호 논리 참고 자료

제 7부 일상언어의 기호화, 필로지아, 오란디프, 도서관 번호:160 J581n2.

제 4부 연역 논증1:명제 논리, (비판적 사고를 위한) 논리, 도서관 번호:160 B149n.

제 10장 기호논리, 제 11장 연역의 방법, 논리학입문, 도서관 번호: 160 C783iKb10.

Happy Hacking Keyboard Lite 2를 샀습니다.

제 수업을 들으셨던 분들은 아시겠지만, 저는 맥용 노트북인 iBook를 사용합니다. 이 아이북은 2002년에 샀으니 꽤 오래 썼네요! 속도는 600MHz 이고 살 시절에는 파격적인 DVD도 달려 있습니다. 지금도 잘 쓰고 있고, 만족하고 있지만, 제가 수업에서 사용하는 프로그램인 키노트2가 페이지가 전환이 상당히 느리게 되면서 저는 이제는 바꿀 시기되었다고 생각하고 교환을 고려하기 시작했습니다. 2006년 말 쯤에 구입하려고 했지만, 내년에 맥 오에스도 새 버젼인 10.5가 나온다고 하고, 인텔에서 내년 1/4분기에 노트북용 신형 칩셋이 나온다는 말을 듣고 내년 상반기 이후에 노트북을 사기로 결정했습니다.

그런데 한가지 문제가 있었습니다. 그 노트북이 나올 까지 어떻게 버틸까하는 것이었습니다. 그래서 들고 다니기에 편리한 자그마한 맥미니를 중고로 구하려고 노력했지만, 실패하고 새 걸로 사기로 결정했습니다. 맥미니는 씨디케이스를 포게놓은 크기 정도 되며 어댑터도 있지만, 이것도 작습니다. 그런데 잘 생각해보니 맥미니에게는 키보드가 없는 것이었습니다. 물론 시중에서 파는 키보드는 싸지만, 들고 다녀야 하기 때문에 작은 크기의 키보드, 일명 미니 키보드가 필요하게 되었습니다. 참 맥에는 일반 키보드를 꼽는 일반 키보드 단자가 없어서, USB를 사용하는 키보드를 사야 했습다. 인터넷에서 여러가지 키보드는 살펴보았지만, 마음에 드는 키보드가 없었습니다.

이때 갑자기 생각난 것이 해피 해킹 키보드 였습니다. 여러사람들의 평도 무척 좋았습니다. 그러나 프로 버젼은 비싸서 라이트로 구매했습니다. 제 책상에서 사온 찍어봤습니다. 책상이 무척 더럽네요 ^^;
해피 해킹 라이트 키보드
작고, 쓸만했습니다. 가방에 키보드와 미니를 넣고 다니니, 노트북이 부럽지 않습니다. 그러나 생각보다 키감이 그리 좋지 않습니다(주관적인 생각입니다). 특히 Del키와 ~키가 조금 다른 쪽에 있어서 적응이 쉽지 않습니다. 프로는 정말로 키감이 좋더군요. 용산에 가서 직접 사면서 프로 봤는데 정말로 키감이 다르더군요. 그러나 저는 표준 키보드가 좋습니다. 키 배열이 다른 것을 쓰다가, 다시 표준으로 오니 적응이 안되더군요. 이상 키보드 구입기 였습니다.