2009-06-25

IE 의 TEXTAREA 에서 개행처리

IE 6/7/8 과 다른 브라우저(파이어폭스,사파리,크롬,오페라) 사이의 다른 점을 한가지 발견하였습니다. 물론 많은 부분이 다르겠지만, 이 부분은 겉으로 드러나는 것이 아니라서 찾기가 쉽지 않거든요. 그렇지만, 이미 알고 계신분들도 많겠죠. ^^

TEXTAREA 에서 여러줄로 글을 작성해서 Submit 을 하면 서버측으로 폼데이터가 전달되겠지요. 이때, TEXTAREA 의 개행이 어떻게 전달되는지 궁금하지 않습니까? 지금까지 신경써본적이 없었는데, Django + jQuery 로 AJAX 처리를 하다가 JSON 개체로 변경하려고 할 때 파싱에러를 유발시키는 것을 보고 원인을 찾아보았던 것입니다.

결론만 얘기하면, IE에서는 개행으로 '\r\n'을, 다른 브라우저에서는 '\n'을 전달합니다.

여러모로 브라우저의 다른 특성들로 인해서 웹프로그래밍하기가 많이 번거롭습니다. 이때문에 다른 RIA 솔루션을 찾게되는군요.

2009-06-17

아웃룩 2007 로딩시 먹통 되는 현상



최근에 아웃룩을 실행시키니 먹통이 되고 사용할 수 없는 상태가 되는 현상이 있었습니다. 원인이 무엇이가 찾아보니, Microsoft Office 2007 Service Pack 2 (SP2) 이 설치된 경우, 메일 프로필이 한글로 되어 있을때 발생하는 것이었습니다. Service Pack 2 를 삭제하면 해결되겠지만, Office 자체를 삭제하지 않는 이상 서비스팩만 삭제가 되지 않습니다.

해결책의 첫번째 방법은 Office 2007을 재설치하면 서비스팩도 삭제되므로 한글 프로필을 사용할 수 있고, 먹통도 되지 않습니다. 단점은 재설치하는데 시간을 투입해야 한다는 것이지요. 두번째 방법은 제어판의 메일 아이콘을 클릭하여, 프로필 보기에서 한글프로필을 복사하여 영문프로필을 만들고 기존의 한글프로필을 삭제하는 것입니다. 이 방법은 한글프로필을 사용할 수 없지만, 기존의 프로필 설정을 유지하면서 빠르게 해결할 수 있다는 것입니다.

2009-06-15

테이블위로 마우스 커서 이동시 색깔 변경하기

테이블위로 마우스커서가 이동될때 각 행을 지나갈 때마다 하이라이트되게 하려면 CSS 에서 간단하게 해결할 수 있습니다. 방법은 아래와 같이 TR 태그에 hover 에 컬러를 지정해주기만 하면 됩니다.

tr.attention:hover {background: #BBBBFF;}


그런데, 이 방법에는 한가지 문제점이 있는데 행수가 많아지면 마우스 이동시 색변경이 늦어집니다. 그래서, 자바스크립트(jQuery)로 구현해보았습니다. jQuery 의 hover 함수를 이용한 것입니다.

$(document).ready(function() {
  $("tr.attention").hover(
    function(){$(this).css("background","#BBBBFF")}, 
    function(){$(this).css("background","#FFFFFF")}
  );
});


한 줄로 간단하게 구현이되지만, 역시 느렸습니다. 그래서, 직접 mouseover 와 mouseout 이벤트를 이용하여 구현해보았습니다.

var color_old;
$(document).ready(function() {
  $("tr.attention").bind('mouseover', function(event){
    color_old = $(this).css('background-color');
    $(this).css('background-color', '#BBBBFF');
  });
  $("tr.attention").bind('mouseout',  function(event){
    $(this).css('background-color', color_old);
  });
});


이와 같이 해보니, 사용에 문제가 없을 정도로 빨라졌네요. 더 좋은 방법도 있을까요? 아시는 분은 댓글 남겨주셔요. ^^

2009-06-13

CITIZEN 시계 구입

여름이 되니, 몸에서 땀이 나게 되어 가죽끈 시계가 불편하게 되었습니다. 그래서 이참에 괜찮은 메탈시계를 구하자고 하여 열심히 이것 저것 찾아보다가 CITIZEN 의 BK2410-51E 이라는 모델을 발견하고 구입했습니다. 티타늄으로 제조되었고, 100미터 방수가 특징입니다.

시계에 대해서는 잘 모르지만, CITIZEN 은 일본에서 세이코와 1,2등을 다투는 이름이 있는 회사이고, 제품의 디자인도 정장이나 캐주얼에 어울릴 수 있어 보였습니다. 구입하여 일주일정도 착용해보니 일체감이 있고 만족스럽습니다. 여름동안은 이 시계를 쭉~ 차고 다닐듯 하네요.


기존에 가지고 있던 가죽시계는 로만손 크로노그래프 시계인데, 이 제품도 저렴한 가격(5만원)에 비해서 품질도 좋고 디자인도 상당히 괜찮은 편입니다. 오랫동안 차고 다녀서 가죽끈도 한번 교체를 했었지요. 배터리는 아직 멀쩡합니다. 명품이라는게 따로 있는 것이 아니네요. ^^

2009-06-09

Python 에서 엑셀파일 만들기

파이썬에서 엑셀파일을 작성할 수 있는 모듈이 찾아보니 아래와 같이 3가지 정도 있더군요.

  • xlwt
  • pyExcelerator
  • pyXLWriter

이중에서 아직 가장 활발하게 업데이트되고 있는 것이 xlwt 였습니다. 그래서 이번에 회사에서 개인적으로 만들고 있는 시스템관리 프로그램에서 엑셀로 export 하는 부분을 간단하게 만들었는데요. 이쁘지는 않지만 그런데로 쓸만했습니다. 이 모듈에 대한 간단한 예제를 보도록 하겠습니다.

# -*- encoding: utf-8 -*-
from xlwt import *


fnt = Font()
fnt.name = 'Gulim'
fnt.bold = True


borders = Borders()
borders.top = 0x5
borders.bottom = 0x5
borders.left = 0x5
borders.right = 0x5


header_style = XFStyle()
header_style.font = fnt
header_style.borders = borders


book = Workbook(encoding="utf-8")
sheet = book.add_sheet('새로운 Sheet')


sheet.write(0, 0, "IP", header_style)
sheet.write(0, 1, "서버이름 (용도)", header_style)
sheet.write(0, 2, "요청한 사람", header_style)
sheet.write(0, 3, "할당한 사람", header_style)
sheet.write(0, 4, "할당한 날짜", header_style)
sheet.write(0, 5, "만료예정 날짜", header_style)
sheet.write(0, 6, "장소", header_style)
sheet.write(0, 7, "사용여부", header_style)


book.save("/tmp/ip_list.xls")

이보다 더 자세한 예제는 https://secure.simplistix.co.uk/svn/xlwt/trunk/xlwt/examples/ 에서 볼 수 있습니다.

2009-06-03

jQeury 정말 좋네요. *^^*

요즘, DjangojQuery 를 이용해서 회사에서 사용할 시스템관리 프로그램을 하나 만들고 있습니다.
처음이라서 적응하는데 시간이 좀 걸리고 있긴 하지만, 웹프로그래밍에 상당한 생산성을 향상시켜주는 것 같더군요.
특히, jQuery 에 더 큰 점수를 주고 싶습니다.
다른 Javascript 라이브러리를 제대로 사용해보지는 못했지만, DOM을 다루거나, AJAX 를 적용하는데 무척이나 쉽고 간결하게 처리할 수 있었습니다. 이제 Javascript 를 다루는 것이 재미있어지네요.
그 전까지는 정말 Javascript 얘기만 하면 너무 힘들었거든요.
RIA를 위해서 Silverlight 나 FLEX 까지 고려했었는데, 일단 간단한 프로그램은 jQuery를 이용하여 AJAX로 구현해야겠습니다.
한가지 더, 파이어폭스의 애드인 프로그램인 파이어버그 또한 웹프로그래밍시 디버그할 때에 반드시 필요하더군요.