'Programming'에 해당되는 글 26건

  1. Securing MySQL: step-by-step 2008/03/27
  2. 5Fs for retrospectives 2008/03/24
  3. C++ Optimization 2008/03/08
  4. vi Cheat Sheet - captured (9) 2008/02/29
  5. Vi Cheat Sheet 2008/02/27
  6. Loop Fission & Loop Fusion 2008/02/21

PHP나 Ruby를 이용해서 Web application을 작성할 때 가장 많이 사용되는 데이타베이스 시스템이 바로 MySQL일 것이다. MySQL을 설치할 경우, 가장 먼저 해 줘야 할 것들이 있다. MySQL을 좀 더 안전하게 만드는 것이 바로 그것이다. 예를 들면 네트웤을 통해서는 root로 로그인 할 수 없게 한다든지, localhost에서 root로 로그인 할 때 패스워드를 입력하게 한다든지 하는 것들이 그것이다. 그 외에도 설정해야 할 사항들이 더 많이 있는 것 같다. (난 앞의 두 가지 밖에 몰랐다. ㅡ.ㅡ;;)

http://www.securityfocus.com/infocus/1726 1

위 링크를 따라가서 내용을 살펴보고 내 MySQL을 반드시 안전하게 설정해 두자.


  1. 위 주소는 "Agile Web Development with Rails, 2nd Edition" 에서 가져왔다.
2008/03/27 01:30 2008/03/27 01:30
Tag //

5Fs for retrospectives

from Programming 2008/03/24 12:13

많은 분야에 적용시켜 볼 수 있는 개념인 것같다. 사실 프로젝트를 진행하든, 혼자 스터디를 하든, 직장에서 일을 하든 항상 중요한 것이 바로 어떻게 진행됐는지, 잘 수행됐는지, 잘 못됐는지 검토하고 반성하는 시간을 가지는 것이다. 그런데, 막상 끝나고나면 그게 잘 되지 않는다. 그냥 끝났다는 해방감에 들떠서 더 이상은 쳐다보기도 싫어지는 것이다.

http://agile.egloos.com/4122099

위 글을 보면 김창준씨는 그런 과정을 나름의 항목을 정하여 실천에 옮겨 왔었다고 한다. 그 항목들이란 바로 다음의 5Fs를 말한다.

  • Fact
  • Feeling
  • Finding
  • Future Action
  • Feedback

아무래도 항목들이 정해져 있으면 정리하기가 훨씬 수월하지 않을까 생각해본다. 그리고, 굳이 끝날 때까지 기다릴 필요도 없이 주말 마다 정리하는 시간 혹은 매일 정리하는 시간을 가지면서 위의 5가지를 생각해보고 작성하다보면 훌륭한 retrospective가 되지 않을까 생각된다.

김창준씨가 소개하고 있는 Retrospectives관련 책들

  • Project Retrospectives
  • Agile Retrospectives

2008/03/24 12:13 2008/03/24 12:13

C++ Optimization

from Programming/C&CPP 2008/03/08 01:49

C++ Optimization관련 글을 좀 읽어보고 공부해야 할 듯하다. 앞으로 일년간은 C/C++로 짜여진 코드의 성능을 향상시켜야 하는데, 로직이나 알고리즘을 바꿔서 성능 향상을 꾀할 수 있는 부분이 있는가 하면 언어적 특성을 고려하여 성능 향상을 꾀할 수 있는 부분도 있다. 예를 들면, 다음과 같은 코드가 있을 경우,

if ( error_case1 || error_case2 || error_case3 || error_case4 )
{
// error handling
}
else
{
// main routine
}

if 문 안에 여러 조건들이 있기 때문에 assembly code에서는 여러 jump 명령어를 사용하게 된다. 위 코드를 다음과 같이 바꾸면,

bool bIsNotError = !error_case1 && !error_case2 && !error_case3 && !error_case4;
if (bIsNotError)
{
// main routine
}
else
{
// error handling
}

if 문의 조건에 의한 여러 개의 jump 명령이 하나가 된다. 뿐만 아니라 에러 상황이 아닌 경우가 더 많으므로 main routine을 앞으로 오게 하여 좀 더 성능 향상을 꾀할 수 있다.

2008/03/08 01:49 2008/03/08 01:49

vi Cheat Sheet - captured

from Programming 2008/02/29 10:33

사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지

pdf 파일을 올릴까 하다가 그냥 캡쳐해서 올린다. 급할 때 이게 더 찾아보기 쉽지 않을까? ㅋㅋㅋ

2008/02/29 10:33 2008/02/29 10:33
Tag // ,

Vi Cheat Sheet

from Programming 2008/02/27 17:24

인터넷에서 우연히 vi cheat sheet이란 걸 봤다. vi의 수많은 명령어들과 기능들 중에서 특히 많이 쓰이는 기능들을 간단히 표로 정리해 놓은 문서인데, 얼마나 많은 기능들을 내가 쓰고 있는지 궁금해져서 읽어봤다.

다행히 대부분의 기능은 내가 사용하고 있는 것들이다. 이로써 vi를 잘 쓰진 못해도 그냥 쓰고 있다고는 얘기할 수준은 되는 것같다. 뒤쪽의 몇 가지 기능들(명령어들)은 잘 모르는 것이었는데, 이번 기회에 익혀놔야겠다.

[Shell commands]

:sh             invoke subshell; use the exit command to return to vi
:r !command insert output of command below current line

[Reading in files]

:r filename     insert filename below current line

[Line numbers]

Ctrl-g          display current line number and number of lines in file

2008/02/27 17:24 2008/02/27 17:24
Tag // ,

Loop Fission & Loop Fusion

from Programming 2008/02/21 15:28

모나씨님의 블로그에서 우연히 괴짜의 Loop Fission 이라는 글을 읽고, 응? Loop Fission이 뭐지? 하는 생각에 링크들을 따라 다니다가 object님의 블로그 에서 Loop Fusion & Loop Fission 글을 읽고 구글링을 해 봤다.

Loop Fusion과 Loop Fission의 글을 읽고 관련 자료를 찾아봤더니 재미있는 내용들이 많이 있다. 위키에서 Loop Fission과 Loop Fusion은 compiler optimization의 일종이라고 하는데, compiler optimization에서 찾아보니 아주 많은 종류의 최적화 기법들이 있다. 그 중 Loop optimization에 여러 최적화 기법들 중 하나로 소개된 것이 Loop Fission과 Loop Fusion이다.

천천히 읽어보고 하나씩 정리해 봐야겠다.

http://en.wikipedia.org/wiki/Compiler_optimization
참고로 컴파일러 최적화 문제는 NP-Complete이다.
2008/02/21 15:28 2008/02/21 15:28