'개발의 기수'에 해당되는 글 9건

  1. 2008.11.27 알티스토리의 외관에 대한 작은 생각 4 by Orchistro
  2. 2008.10.11 linux core file name 변경하기 3 by Orchistro

개발자들은 디자인에는 별로 소질이 없다는 것이 일반적으로 받아들여지는 상식입니다. 나 역시 그렇습니다. 뭔가 새로운 것을 그려내거나 하는 데에는 큰 소질이 없지요. 그렇지만, 야구 경기를 즐기기 위해서 반드시 야구 선수가 되어도 좋을 정도로 야구를 잘 할 필요는 없는 것 아니겠습니까? 개발자들이 디자인을 "하는" 것은 잘 하지 못할지도 모르지만, 좋은 디자인을 "보는" 눈까지 없는 것은 아니라고 생각합니다.

한시간 전에 퇴근해서 졸리지만, 알티 스토리가 갑자기 생각나더군요, 그래서 이 기회에 알티 스토리가 사용하는 스킨에 대해 몇가지 불평을 하는 포스팅을 좀 하겠습니다.

첫째. 내가 사용하는 브라우저인 파이어폭스에서는 잘 안보인다는 점이 가장 불편한 점이에요. 이것은 시각적 취향과 품격의 문제를 떠난, 실제적인 문제인 것이죠. 아래의 스크린샷처럼 첫 글짜가 잘려서 짐작으로 읽을 수 밖에 없습니다. ㅠ_ㅠ 저도 잘리지 않는 제대로 된 텍스트를 읽고 싶어요 ㅠ_ㅠ.


둘째. 이것은 그다지 큰 문제가 아닐지도 모르지만, 저처럼 외형적인 아름다움에 상당히 민감한 사람의 경우 상당히 신경쓰이는 문제일 수도 있습니다. 물론, 파이어폭스에서 나타나는 현상입니다. 아래의 그림에서 볼 수 있듯이 필요없는 "공지" 부분이 두개나 나오는 문제입니다. IE 에서는 나오지 않더군요 ㅠ_ㅠ


셋째. 블로그 스킨이 커스텀 배경과 잘 조화되지 않습니다. 역시, 앞에서도 언급했듯이, 사용상 문제는 없지만, 신경이 많이 쓰입니다. 지금 알티스토리에서 사용하고 있는 스킨은 원래 아래의 그림에서 보이듯이 해당 스킨에서 제공하는 배경과 조화를 이루게끔 디자인되어 있습니다 :


언뜻 보아서도 뜨는 부분 없이 자연스럽게 매치가 되지요? ^^;

그러나, 지금 알티스토리는 커스텀 배경으로 인해 아래 사진들에서 보이듯이 조화롭지 않은 모습을 보여주고 있으며, 이 역시, 기능을 사용하지 못한다든지, 컨텐츠가 보이지 않는다든지 하는 문제는 없지만, 신경이 쓰입니다.

400

가운데 왼쪽에 파란색 잡티가 보입니다.


그림들이 자연스럽게 배치되지 않고 깍뚜기 모양으로 어긋나 있습니다. 또한 파란색과 갈색톤의 미스매치로 인한 불안감이 조성됩니다.


커스텀 배경이미지가 타일처럼 배열되어 여기쯤에서 반복되는군요.


화면 맨 하단입니다. 역시 어울리지 않는 이미지들로 인해 테두리의 경계가 너무 확연히 드러나고 있습니다. 붕 떠 보이지요.






그런데, 외관이 정말 중요할까요?

중요합니다. 그것도 매우 중요하다는 게 제 생각입니다. 물론, "Beauty is merely a skin deep" 이라는 격언도 있습니다만 (제대로 기억하는 건 아닐 겁니다만, 비슷하게 기억하긴 했을 겁니다 ^^) 최근의 iPhone, iPod 등의 성공과 믿기지 않을 정도로 apple 을 좋아하는 소위 "애플빠", "애플 광신도" 가 왜 생겼겠습니까?

애플 제품을 사용해 보면 겉보기에는 좋아 보이지만, 사실, '이건 좀 아니다'라는 생각이 드는 경우가 많습니다. 배터리도 교체할 수 없지요, 운영체제는 이상한 짓을 몰래몰래 하지요, USB 케이블도 이상한 것을 써서 자기네 케이블이 아니면 사용할 수 없지요, iTunes 가 아니면 노래 관리도 못하지요.. 등등 이루 말 할 수 없을 정도로 결점이 많은 제품이 바로 애플의 제품들입니다. 게다가 비싸기까지 하지요!

그런데도, 그와 같은 결점들을 알면서도 애플의 제품을 살 수 밖에 없게 하는 여러 가지 이유들 중 하나가 저는 "예쁘기 때문"이라고 생각합니다.

알티 스토리도 방문했을 때 stackoverflow.com 이나, 다른 기업들의 블로그 (농심, KT 등등) 처럼 커스텀 스킨에, 그림도 예쁘게 그리고 하는 것을 바라지는 않지만, 최소한 위화감은 들지 않는 깔끔한 기분의 화면을 가졌으면 합니다.

에혀.. 이 시간에 뭐하고 있는지 ㅠ_ㅠ 이제 자야겠습니다 ^^;;


Posted by Orchistro
예전에 제 블로그에 올렸었던 건데, 그냥 복사해서 붙입니다.
혹시 개발하시면서 core file 이름이 전부 그냥 "core" 라서 답답해 하셨던 분이 계시다면 희소식(?) 일 겁니다. 리눅스에만 관련된 건데... 다른 플랫폼은 제가 작업하다가 불편하다고 느끼면 조사해 보겠습니다 ;-)




sun 이나 hp, aix 등에서는 생성된 core file 에다가 file 명령어를 치면 어떤 실행파일에서 생성된 core 인지가 나온다. 그러나 linux 에서는 그렇지 않다. (아쉽게도 OSX 에서도 그렇지 않다)

다음의 프로그램을 만들어서 테스트 해 본 결과

 
#include <stdlib.h>
#include <stdio.h>

int main(void)
{   
    int *a = NULL;

    printf("hello\n");
    fflush(stdout);

    *a = 32;

    return 0;
}


각각의 플랫폼에서는 다음과 같은 결과가 나왔다 :

$ uname -a;file core                                    
SunOS v880 5.8 Generic_117350-51 sun4u sparc SUNW,Sun-Fire-880
core:           ELF 32-bit MSB core file SPARC Version 1, from 'a.out'

$ uname -a; file core
AIX aix5 3 5 0001D01F4C00
core: AIX core file 32-bit, a.out

% uname -a; file core
HP-UX hp1123 B.11.23 U 9000/800 190494686 ??????-????? ???̼???
core:           core ???? - 'a.out' - SIGBUS ????

$ uname -a; file core.528
Darwin castepo.local 9.3.0 Darwin Kernel Version 9.3.0: Fri May 23 00:49:16 PDT 2008; root:xnu-1228.5.18~1/RELEASE_I386 i386
core.528: Mach-O core i386

때때로 여러개의 프로세스를 마구 띄우는 daemon 을 작업하다 보면 뜬 프로세스들 중 하나가 죽을 경우에 생기는 core 파일이 도대체 어느 프로그램이 죽어서 생긴 것인지 알 수 없을 경우가 있다. 물론, 하나씩 디버거로 읽어서 뭔가 좀 말이 되는 콜스택을 보여준다든지 하는 녀석을 대충 지레짐작해서 얘이거니 하고 분석할 수도 있지만, 기분 나쁘다.

리눅스 맨페이지에 따르면 커널 버젼 2.6 이후, 그리고 2.4.21 이후의 커널에 다음의 기능이 추가되어 있다고 한다 :
$ man core | col -b
.
.
.
   Naming of core dump files
       By default, a core dump file is    named  core,  but  the    /proc/sys/ker-
       nel/core_pattern file (since Linux 2.6 and 2.4.21) can be set to define
       a template that is used to name core dump files.  The template can con-
       tain  % specifiers which are substituted by the following values when a
       core file is created:

     %%  A single % character
     %p  PID of dumped process
     %u  real UID of dumped process
     %g  real GID of dumped process
     %s  number of signal causing dump
     %t  time of dump (seconds since 0:00h, 1 Jan 1970)
     %h  hostname (same as 'nodename' returned by uname(2))
     %e  executable filename
말인 즉슨, 다음과 같이 하면 core file 이 생성될 때 그 파일의 이름을 어떻게 지을 것인가 하는 문제를 사용자가 설정할 수 있다는 이야기인데, cut to the chase, 결론부터 말하면, 다음과 같이 하면 실행파일의 이름을 가지고 core 파일의 이름을 만들 수 있다 :

# cat > /proc/sys/kernel/core_pattern
core.%e
^D
#
저와 같이 해 두고 아까 컴파일한 파일을 실행시켜 보면,
$ ./a.out
hello
Segmentation fault (core dumped)
$ ls
a.c  a.out*  core.a.out
$
아아~~ 행복하다. =ㅂ=);;;

Posted by Orchistro