연결된 이미지 변환

MS Word에서 웹 페이지 주소를 직접입력해서 가져오는 경우 거기에 포함된 이미지는 HTML의 링크처럼 워드에 포함되지 않습니다.

이 말은 무슨말이냐 하면 이미지가 보여줄 필요가 있을 때 실시간으로 웹을 접근해서 이미지를 가져옵니다. 그래서 워드파일을 저장할 때 보면 이미지가 빠져서 용량이 상당히 줄어듭니다.

이렇게 되면 몇가지 문제점이 발생합니다.

  • 이 문서를 여는 곳은 항상 인터넷이 연결되어 있어야합니다. 안그러면 그림이 안보입니다.
  • 인쇄를 할 경우 이미지가 안보일 수 있습니다. 외부 연결 데이터를 다 가져온 다음에 인쇄를 해야할 텐데, 워드는 가져오지 않습니다. 방법은 전체선택(Ctrl+A)하고 F9를 클릭하여 수동으로 이미지를 업데이트하고 인쇄하면 됩니다.

그래서 이런 연결된 이미지를 포함된 이미지로 바꾸려고 했는데, 쉽게 그 메뉴를 찾을 수 없습니다. 오피스는 이런게 문제지요. 고생끝네 구글링으로 아래 주소를 찾았네요.

http://www.onemanwrites.co.uk/2009/03/16/how-to-embed-linked-images-in-word-2007/

결국 메뉴에 있는데, 전혀 생각지도 못한 "준비" 메뉴에 있었다는 것, 그것도 기본으로 보이는게 아니라 스크롤해서 내려야만 보이는 곳에, 그리고 연결된 이미지가 없다면 보이지가 않아서 평소엔 있다는 사실조차 모른다는 것..

뉴스에서 IT강국이란 이야기가 나올때 마다..

어제 뉴스를 보니 스마트폰 때문에 한국의 IT강국 지위기 흔들린다란 뉴스가 나오고있다.

컴퓨터로 먹고 사는 나는 이런 뉴스가 나올때 마다 불편하다. 언제부터 한국이 IT강국이었나? 그냥 하드웨어 강국 아니었던가? 열심이 깔아논 초고속 인터넷망, 비정상적인 인터넷.. IT강국은 아닐진데.. 그냥 외형만 강국일진데...

IT의 대표주자라는 삼성전자, 하이닉스 뭐 메모리, 핸드폰등.. 부품, 기계 잘만드는 것아닌가...

패션업에 종사하는 아내에게 이렇게 설명해줬다.

옷 만드는 공장은 많아요.. 그런데 그 디자이너랑 디자인들은 다들 외국에서 들어와요. 우리가 잘 하는건 그 디자인을 가지고 싸게 옷을 잘 만드는 거에요.. 라고..

아내는 한방에 이해하더랍니다.

pager_query 없이 theme_pager 사용하기

drupal에서 쿼리 결과를 pager로 보려면 page_query로 하면되는데, 쿼리결과가 아닌 다른건.. 저의 경우는 별도의 검색 서버를 두고 거기서 가져오는 형태는 지원하지 않습니다. 그래서 theme_pager 함수를 살펴봤더니.. 아래처럼 하면 되는군요.

1. 먼저 theme_page에서 pager에 사용하는 전역변수를 선언합니다. 여기다가 적당히 데이터를 넣어주면 되는 것이지요.

global $pager_total, $pager_page_array;

2. 전체 페이지수 설정, $total_results는 전체 검색 결과 수이고 get_page_size()는 한 페이지당 표시할 데이터 수입니다.

$pager_total[0] = ceil($total_results / get_page_size());

3. 표시될 페이지 설정, $page는 현재 표시될 페이지 입니다.

$pager_page_array = array();
$page_count = ceil($total_results / get_page_size());
for($i=0; $i<$page_count; $i++) array_push($pager_page_array, $i + $page);

4. 이제 pager 사용..

theme('pager', get_page_size(), $total_results);

5. 당연히 검색하는 부분에서 파라미터로 넘어간 페이지수에 맞게 검색하면 됩니다.

시간 동기화하기

월요일 아침엔 회의가 있습니다. 컴퓨터 시간으로 확인하고 가보니.. 헉. . 지각입니다. 이놈의 컴퓨터 시간이 늦어진거죠. 뭔 이런 일이.. 저기 있는 아날로그 시계는 정확한데, 항상 앞에두고 보는 시계가 부정확합니다.

그래서 시간 동기화하는 툴 만들었습니다. Indy를 이용하니 소스도 23줄 밖에 안됩니다. 뭐 Indy가 다하니깐요.

program TimeSync;

uses
  Windows,
  SysUtils,
  IdSNTP;

{$R *.res}

begin
  try
    with TIdSNTP.Create(nil) do
    try
      Host := '2.kr.pool.ntp.org';
      SyncTime;
    finally
      Free;
    end;
  except
    on E: Exception do
      MessageBox(0, PChar(E.Message), 'Error', MB_ICONEXCLAMATION);
  end;
end.

시작 프로그램에 등록해야겠습니다.

추가: 10.11.02

Window Vista, Windows 7에서는 동작하지 않습니다. MSDN에 보면 SetLocalTime이 SE_SYSTEMTIME_NAME 권한이 필요하다고 되어있지요. 그래서 그렇게 해주고 했는데 안됩니다. ㅡㅡ, 그래서 Indy 소스도 뒤져봤는데 Indy도 SE_SYSTEMTIME_NAME 권한을 획득하고 처리하고 있습니다. 그래도 안됩니다.

결국 관리자 권한에서 실행하는 수 밖에 없군요.

찾아보면서 본 글중에 하나는 "도데체 일반 사용자가 시간을 조종할 필요가 뭐가있냐?"라는 건데, 해주고픈 말은 야 이눔아 내 컴퓨터 시간이 잘못되어있다니깐!!!! 그래서 정확한 시간으로 맞추고 싶다고!!!!

Generics에서는 Class helper가 작동하지 않는구나…

Delphi 2010에 처음소개된 Generics가 참 멋집니다. 근데.. Generics를 사용한 클래스는 class helper가 적용되지 않는군요. class helper를 참 유용하게 사용하고 있는데, 이거 참 generics로 이동하는게 망설여 집니다.

궁여지책으로 상속해서 사용하면 어찌어찌 사용은 가능한데, generics에도 class helper가 적용되면 좋겠습니다.

pkg_info: corrupted record (pkgdep line without argument), ignoring

pkg_info: corrupted record (pkgdep line without argument), ignoring

메시지가 언제부터인지 나온다.. http://www.mail-archive.com/freebsd-ports@freebsd.org/msg22403.html 에서 하란데로 portmaster --check-depends를 하고 있다.

대부분 perl-5.8이 필요하다는데, 이미 perl을 5.10으로 업그래이드 해서 그런가 보다.. 어쨌든 모두 Yes로 하고 보고있다.

어쨌든 이렇게 하니 위의 메시지는 안난다.