요즘 블로그들을 돌아다니다보면(여기도 그렇지만) 글에 줄공책과 같이 줄을 그어놓은 스킨을 쓰시는 분들이 많이 계신 것 같더군요. 그런 블로그들을 보면 이미지나 기타 테그들을 넣으면서 줄간격이 어그러지는데 그것을 보면.. 괜히 글 전체가 지저분하게 보이고... 여튼.. 별로 보기 안좋더군요.

줄간격 어그러지는 블로그. ㅜㅜ
제 블로그에도 이번에 스킨을 새로 바꾸면서 글에 줄간격을 넣었는데... 혹시나 했는데 역시나 줄간격이 깨지는 것이 아니겠습니까?..

스프링노트를 쓰고 있는데 그곳에도 그림을 넣으면 줄간격이 깨져서 이미지를 잘 넣지 않고 있는데 이미지를 집어넣고 줄간격이 깨져있는 제 블로그를 보니 고치고 싶은 마음이 자라가 고개를 내밀듯 불쑥 나타나더군요~

그래~서! 만들었습니다..^^: 하지만.. 완벽한 것이 절대로 아니라는 거~ (제가 자바스크립트를 잘 모르다보니 여기저기 자문을 얻어서 뚝딱뚝딱 만들어 넣었기에;;;)

그냥 이런 팁이 있다는 것 정도로만 알아주시면 고맙겠습니다.... (이 방법을 개량해서 좀 더 포괄적이고 멋지게 적용시켜 주실 수 있는 분 있으시면 저한테 꼭 트랙백이나 리플로 알려주시면 감사하겠습니다~)



먼저 원리를 설명드리자면 간단합니다.

줄간격을 22px로 설정했다고 합시다. 이미지의 크기는 제각각일 것이고요. 이미지의 height를 22px의 배수로 만들면 줄간격이 흐트러지지 않고 깔끔하게 나올 수 있을 것 같더군요. 하지만 height만 22px의 배수로 만들자니 이미지의 width가 문제생길 수 있고 원본 사이즈 그대로 출력하고 싶었던 것이 줄간격 크기 대로 리사이즈 되는 것도 별로 보기 안좋고 해서. 이미지의 여백을 이용하기로 했습니다. 22의 배수에서 부족한 만큼을 여백의 위와 아래 분배해서 넣도록 하는 것이었습니다.

결국 그 방법으로 이미지에 관해서는 성공을 해서 이미지만 들어있는 글은 줄간격이 잘 맞는 것을 확인하였는데 문제는 이 줄간격을 깨뜨리는 것이 이미지만 있는 것이 아니더군요!!! 털썩...  일단 여기까지 하고 blockquote나 embed , 글자 크기가 다른 것들에 관해서는 천천히 고민해서 해결해야 할 것 같습니다.. ㅜㅜ

위에서도 얘기했지만.. 자바스크립트를 잘 몰라 소스가 굉장히 지저분하니 용서하세요..^^

localtime() 함수에 대해...

Posted by 미루 공부합시다!/Tip n Tech : 2006/10/26 20:07

시간에 관련된 함수를 사용하다보면 localtime함수를 쓰게 될 때가 있다.

time_t t = time(NULL);
tm * pTm = localtime(&t);

요렇게 하면 pTm에는 오늘의 날짜 및 시간이 저장되는데..

이 localtime에서 리턴되는 포인터는 static area의 주소를 리턴하는 것이다.

따라서.. 메모리를 해체하면 안된다는 것!..

제대로 피봤다 ㅜㅜ..

태그 : localtime, time.h

Direct3D를 사용하는 도중에 커다란 문제가 생기기 시작했습니다.;

부동소숫점을 사용하는 것들이 정상적으로 동작하지 않는 것이 아니겠습니까?..

가장 첫번째로 눈에 들어온 것은 TDateTimePicker의 오동작 문제였습니다..

이러한 문제가 벌어진 것이지요..

게다가 연산을 하는데 또다른 문제가 발생하기 시작했습니다.

double a = 4122008.1234;

이렇게 넣어주는데 까지는 전혀 문제가 없지만..

a += 0.1234;
요 문장이 들어가고 난 이후에는..

a의 값이 4122008.2468 이 되는 것이 아니라 4122008.25 가 되어버리더군요...

소숫점 하나하나가 중요한 연산이 되고 있는 상황에서 이 정도의 오차율에 기겁을 하고 말았습니다. -0-;;

이 문제를 해결하기 위해 a += 0.1234; 라는 코드를 한줄 한줄 넣어 찾아본 결과 CreateDevice 를 한 뒤부터 저렇게 동작을 하고 말더군요!

( DX8, DX81, DX9 모두 똑같은 문제점이 있었습니다. ;ㅁ; )

어디가 문제인지 인식하였으므로.. 이제 남은 방법은 해결하는 것 뿐이죠..

구글링을 해보니 비슷한 문제를 갖고있던 분들이 계셨나봅니다. +ㅅ+

D3DCREATE_FPU_PRESERVE 요것에 대해 나오더군요!

CreateDevice 함수의 인자중 하나인 BehaviorFlags 에 넣어주면 된다는 것이지요!

ex)

CreateDevice( D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,G_HANDLE,
       D3DCREATE_SOFTWARE_VERTEXPROCESSING | D3DCREATE_FPU_PRESERVE,
       &d3dpp,&g_pd3dDevice) ) )

휘유~ 이제 부동소숫점 연산을 무사히 할 수 있겠군요 -0-;;

언젠가부터 도메인 가격이 매우 저렴해지기 시작했지요..

그래서 도메인을 하나 둘 씩 사다보니.. 벌써 4개가 되어버렸네요 -0-;;

결국 사용하게 된 도메인은 miru.pe.kr 이지만 여기저기 알리질 않다보니 주로 접속 or 링크되어있는 도메인은 qnpfr.com 인 것이 아니겠습니까?..

이것참 큰일이 아닐 수 없습니다.;;

다른 블로그나 홈페이지등에서 제 글을 링크할 때 이용된 도메인은 대부분 qnpfr.com ... 버릴수도 없고.. 그닥 사용하고싶진 않은.. 그런 애물딴지가 되어버렸습니다.;;

"이를 어찌하면 좋을까?.." 하고 생각하다가..  "아!. 이 도메인으로 접속하면 도메인을 포워딩해서 miru.pe.kr로 바꾸면 되겠다!"

그래서 슥삭 슥삭 만들어 보았습니다.;

:: index.php :: 파일.
<?
  if($HTTP_HOST != "miru.pe.kr")
// 접속한 도메인이 miru.pe.kr인지 확인해서.. 아니면..
   header("location:http://miru.pe.kr");
// miru.pe.kr로 이동한다.
?>
요렇게 만들어 놓고 보니.. 대충 2가지 정도 큰 문제점이 눈에 띄더군요..

첫째.
http://qnpfr.com/130 , http://qnpfr.com/entry/재밌는-퍼즐놀이 이런식의 URL로 접근하게 되면.. 그냥 이전의 URL 로 접속이 되어버리지요.. qnpfr.com 으로 접속해야만 miru.pe.kr로 접속이 되는 것입니다.;;

둘째. 테터툴즈를 이용하고 있는데.. 저 index.php를 놓을만한 곳이 없습니다. -_-;;

대~충 봤을때 저정도 문제가 있더군요..

이 문제를 어떻게 타개해야 하는가?..

방법을 이리저리 알아보다가 테터툴즈가 Rewrite 모듈을 이용한다는 사실을 알아냈습니다.

Rewrite 모듈이 뭔가요?..

자세한 설명은 구글링해보시고요, 간단히 말하자면 사용자가 홈페이지에 접속하게 되면 서버에 설정한 방법대로 맘대로 URL을 변경해 버리는 역할을 한답니다.

예를들어
http://miru.pe.kr/130 으로 접속을 하면.
http://miru.pe.kr/blog/item.php?id=130 이런식으로 변경하여 접속하게 만드는 겁니다. ( 이 예는 그냥 예 일뿐 실제는 다른 URL로 변경됩니다. )
이걸 이용하면.. 문제를 해결할 수 있겠군요!..

이 Rewrite모듈을 이용하려면 아파치에 rewrite모듈이 설치되어 있어야 합니다.. (서버관리자에게 물어보세요~)

이제 적용을 하려면 먼저 홈 디렉토리로 이동합니다.

파일을 하나 만들어야 하는데요.. (이미 만들어져 있을 수 있습니다.) 한번 만들어 봅시다.

$ vi .htaccess  ( htaccess 앞에 "." 빼먹으시면 안됩니다. (리눅스에서 파일명 앞에 . 이 붙은건 숨은 파일이죠..), 테터툴즈가 설치된 폴더일 경우 이미 생성돼 있답니다.)

이제 그 안에 들어갈 내용을 넣어봅시다.

# <-- 이표시는 주석이라는 뜻입니다. 넣어도.. 안넣어도 상관없지요~

RewriteEngine On
# RewriteEngine을 켭니다. 테터툴즈의 경우 자동 생성된 것이 있으니 거기에 아래것들만 넣으시면 되겠습니다.

RewriteCond %{HTTP_HOST} !^miru\.pe\.kr$
# 먼저 Rewrite될 조건을 찾습니다.; %{HTTP_HOST}라는 변수에 도메인 주소가 들어오게 되는데요.. miru.pe.kr 이 아닐 경우 Rewrite 되도록 정합니다.

RewriteRule !^(miru\.pe\.kr)$ /home/miru/public_html/redirecturl.php
# 위 RewriteCond의 조건에 맞을 경우 바로 아래에 있는 RewriteRule 이 실행되는데요.. 마찬가지로 miru.pe.kr이 아닐 경우 홈디렉토리에 있는 redirecturl.php로 이동합니다.

자세한 설명은 인터넷을 뒤져보시면.. 가득합니다. -0-;;

그런데 왜 저기에 URL을 바로 변경하지 않았나요?...

.. Rewrite모듈은 접속된 URL을 변경하는게 아니라 URI만 변경이 가능하다고 합니다. 따라서 URL자체를 변경시키기 위해 한가지를 통과하는 것이지요..

:: redirecturl.php ::

<?
  $que = getenv("REQUEST_URI");
  // http://qnpfr.com/blahblah  이 URL 중 /blahblah 부분을 가져옵니다.
  header("location:http://miru.pe.kr$que");
   // http://miru.pe.kr/blahblah 로 주소를 바꿉니다.
?>
자.. 이걸로 모두 끝났습니다.

이제 어떤 도메인으로 접속을 하든

miru.pe.kr  로 접속이 되는 것이지요~

테스트 )
http://mirustyle.com/120
http://mirustyle.com/entry/재밌는-퍼즐놀이
http://qnpfr.com/130
http://qnpfr.com/tag/
http://miru.be/guestbook
등.. 이제 어느 주소로 접속해도..

원하는 url인 miru.pe.kr 로 연결되는걸 알 수가 있답니다.;;

저 redirecturl.php 를 조금 바꿔서 접속하신 도메인이 올바른 도메인이 아니니 올바른 주소로 접속해 주시면 감사하겠습니다.~ 등의 안내문구를 넣어도 좋을 것 같네요..

많이 부실한 설명이지만.. 그리 어렵지 않게 적용하실 수 있으리라 생각합니다.;;

이제.. 다른곳에 링크된 도메인때문에 걱정 안해도 되겠군요 +ㅅ+;


ps.
아무래도.. 잠깐동안 인터넷 검색하고 적용해서 바로 글을 쓴 것이므로.. 내용중 틀린부분이 있을 수 있답니다.;;
혹 그런부분이 있다면 다른분들이 잘못된 정보를 가져가시기 전에 잽싸게 알려주시면 감사하겠습니다.^^

winnt.h 에서의 오류.

Posted by 미루 공부합시다!/Tip n Tech : 2006/08/01 10:25
어느날 갑자기 winnt.h의 아래부분에서 에러가 나는 것이 아닌가?
//
// Void
//

typedef void *PVOID;
typedef void * POINTER_64 PVOID64;

위의 것을 요렇게 바꾸면 해결이 된다고 하는데..
typedef void* PVOID;
typedef void* POINTER_64;
typedef POINTER_64 PVOID64;


이런.. 왜 나는 해결이 안되지? (BDS 2006 사용 중)

그래서 여러가지 방법을 강구하던 바.. 다른 컴파일러의 winnt.h 와 비교하니 아래부분이 내가 갖고있는 것에는 없는것이 아닌가?.. 그래서 그부분을 복사해서 에러나는 부분 위에 넣으니 컴파일 오케이~!

이 아래 부분을 에러가 나는 부분 위에 붙여 넣어주면 되겠다.


more..

태그 : error, winnt.h
아마.. 거의 사용하지 않으리라 생각하지만..

심심해서 그냥 끄적끄적 만들어 보았습니다. ;ㅁ;

가끔.. 어떤 링크를 타고 가다보면,

http://qnpfr.com/blahblah/blahblah/~~@$!3r1!#%!#%315!#%!%

이런 링크를 만나게 될 때가 있습니다.;

이때 원래의 주소인 http://qnpfr.com 에 가려면.. 주소중 일부를 드레그 해서 삭제해 주거나..

직접 쳐서 들어가야 하죠;

이때~!. 이 코드를 즐겨찾기에 등록해 놓고.. 연결로 올려놓고

클릭을 해주는 겁니다.

그럼 바로 http://qnpfr.com 으로 들어가게 되죠;

뭐.. 해놓으면 언젠가 쓰지 않겠습니까?;;

javascript:var url=window.location.href;var turl = '';var nstart = url.indexOf('://')+3;turl = url.substring(nstart,url.length);window.location.href = (url.substring(0,nstart+turl.indexOf('/')));

요녀석을 복사 한 뒤. 즐겨찾기에 넣어주시면 됩니다.;ㅁ;

간단하죠!

더 간단하게 가능할 것 같긴 하지만...

javascript는 영~ 몰라서리~;;
태그 : JavaScript, URL

ClearType Font 적용하기.

Posted by 미루 공부합시다!/Tip n Tech : 2006/05/25 13:23

지금까지 여러가지 OS들을 이용해 봤는데 그때마다 나에게 가장 크게 다가왔던 것은 바로 '글꼴'이다.

처음 OS를 설치하고 나서 가장 많이 보게 되는 것은 바로 '글자'들이다. 이 글자들이 얼마나 나에게 잘 읽혀지는지에 대해서는 '글꼴'이 가장 큰 역할을 하기 마련이다.

그럼 ClearType Font란 뭔가?..
문자 가독성을 높이기 위한 하나의 방법으로 Microsoft 에서 개발하였으며 기존의 안티 앨리어싱 등의 방법보다 좀 더 가독성이 높은 편. 일단은 LCD 상의 문자 가독성을 높이는 기법이며 CRT에서도 약간의 가독성 향상이 있다고 한다.
라고 하는데, 자세한 설명은
[ http://www.microsoft.com/typography/WhatIsClearType.mspx ]
요기를 참조하면 되겠다.

ClearType은 어떻게 적용할까?

현재 클리어타입 폰트를 적용하는 방법은 여러가지가 있다. 레지스트리를 수정하는 방법부터 시작해서 프로그램을 설치하거나 단순히 클릭 몇번으로 적용하는 방법까지.

위 방법 중 가장 간단한 방법은 바로 이곳 'ClearType Tuner' 에 접속하여 변경하는 방법이다.

접속하면 차례대로 잘 보이는 상태를 선택하여 그것으로 설정할 수 있다.



주관적으로 ClearType Font는 슬쩍 뭉개진 느낌에, 부드러운것이 나름 마음에 든다.!

오죽하면 블로그 전체를 바꿨을까~ ;ㅁ; 클리어 타입 글꼴중 한글 글꼴로는 Windows Vista 에 기본글꼴로 들어간 '맑은 고딕'이 괜찮은것 같다.

첫째로. DLL 프로젝트 생성하여 폼을 만들어 줍니다.

  1. File -> New -> DLL 프로젝트
  2. 폼을 생성하고 디자인하고 하고싶은걸 합니다.
  3. 다른 프로그램에서 사용할 Interface 함수를 만듭니다.
  4. 컴파일해 줍니다

위에서 사용한 Interface 함수 예제.

둘째로. 원하는 프로그램에서 이용해 봅니다.

  1. LoadLibrary 를 이용하여 dll을 불러옵니다.
  2. GetProcAddress 를 이용하여 함수포인터를 가져와 사용합니다.

두번째 내용의 예제 소스


참조 ) http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/using_run_time_dynamic_linking.asp
태그 : dll, 동적로딩,

가끔 어떤 프로그램들을 보면 윈도우의 한 부분을 차지하고 그 영역을 침범하지 못하게 하는 프로그램들이 있다.

예를들면 윈도우를 켜면 기본적으로 보이는 작업표시줄이 그 예이다.

익스플로어 같은 윈도우를 전체화면으로 변경해도 작업표시줄 위로 올라가지 않는다. (물론 창모드로 해서 올리면 올릴수도 있지만.. 지금은 전체화면 얘기다.)

이 작업표시줄과 같이 일정 영역을 차지하는 방법이 있다. 그것이 바로 AppBar라는 것.

간단한 예제 소스가 밑에 있다.

C++ Builder 로 제작된 소스지만.. 기본 Win32 API 이므로 C/C++ 어느곳에도 적용할 수 있다.

자! 그럼 계속 코딩에 빠져보자! ;ㅁ;

소스보기



평소 자주 쓰는 방법인 StringList를 이용하여 문자열을 토큰하는 방법이지요;



가끔 이용하는데 더 간단한 방법이 있으면 좋겠는데요 ;ㅁ;~!


빌더! 만쉐~
 «이전 1 2  다음»