반응형

저는 HP 파빌리온 ZE4427WM(미국 내수용)을 사용하고 있습니다. 애슬론 모바일 2200+에 512램을 장착하고 사용하였습니다. 무선랜은 PCMCIA 방식의 802.11b 모델을 사용하고 있었습니다. 아시다 시피 외장형은 수신율이 그리 좋지 못하고 요것도 산지 좀 되다 보니 11메가가 최대라서 802.11g를 지원하는 학교에서 쓰기가 좀 그래서.. 교체를 해봤습니다.

우선 위의 내장형 안테나가 필요합니다. 구입하기가 꽤 까다로운 제품입니다. 노트북 내장형 안테나 취급하는 곳이 별로 없기 때문입니다. 그래서 저는 LG 서비스 센터를 이용하였습니다. LG서비스 센터에 LM70에 들어가는 내장형 안테나를 구입해야 합니다. 구하기 쉽게 파츠넘버를 적어드리겠습니다.
PCZ 3301B00541B , PCZ 3301B00540B 좌,우 안테나입니다. 서비스센터 방문하시거나 인터넷으로 부품 요청을 하시고 문자로 입고확인 받으신 후 방문하셔서 찾아가시면 됩니다.
가격은 4300원입니다. (두개 합쳐서)


위에서 언급한 제 노트북 녀석입니다. 2003년 말에사서 지금까지 잘 써오고 있습니다. 중간에 파리의 연인이란 드라마에서 박신양이 사용한 그 노트북입니다. ㅡ.ㅡ; 이제 안테나를 설치해야 하니 분해 하도록 하겠습니다.

뒷면의 흰지 고정용 나사를 제거합니다.
키보드 위 멀티키 커버를 제거합니다. 제거후 보이는 흰지와 본체를 고정하는 나사를 전부 제거합니다. 제거 후 LCD와 본체 연결 커넥터를 분리하고 살짞 들어줍니다.
패널이 있는 상판이 나오게 됩니다. 패널 위쪽에 4군데와 아래쪽 양끝에 2개 6개의 나사를 풀어줍니다.
6개의 나사를 풀고 플라스틱 베젤을 제거한 사진입니다.
패널 고정용 4개 나사를 제거한 모습입니다. 휑 하네요 ㅡ.ㅡ;
구입한 안테나를 좌 우측에 심어서 고정합니다. 저는 글루건을 사용하여 고정하였습니다.
조립은 분해의 역순인거 아시죠? 안테나선을 Mini PCI 단자쪽으로 가도록 선정리 합니다.
바로 선이 나온 사진이지만.. 이부분을 좀 애먹었습니다. 이렇게 main 안테나선과 aux 안테나선을 mini pci 슬롯쪽으로 뽑아내면 노트북뜯어서 하는 작업은 끝이난겁니다.
제가 구입한 54Mbps 802.11.b/g를 지워하는 mini pci 무선랜카드입니다. 부스트 모드를 쓰면 108Mbps까지 가능하다고는 하는데.. 안정성이 떨어진다고 하니 시도는 안할것 같습니다. 사용 칩셋은 ACX111 계열이라고 들었습니다.
이제 장착을 합니다.
안테나선을 무선랜 카드에 고정을 합니다. 손톱 끝으로 딸각 소리가 나도록 힘주어 연결하시면 됩니다. 한번 연결하면 웬만해선 안빠집니다.
완전히 장착된 사진입니다.

꽤 긴 작업이 드디어 끝났습니다. 요즘 신형 노트북들은 당연히 내장이 되어 있지만 구형 노트북에서 외장형 사용하는 귀차니즘과 54Mbps의 빠른 속도를 얻고자 하여 작업을 해봤습니다. 
장점과 단점을 간단히 말해보자면...
장점 : 외장형 슬롯이나 usb 꼽는 귀차니즘 해결 ㅡ.ㅡ
        외장형에 비해 좋은 수신률
        54Mbps 지원으로 빠른 인터넷 속도
단점 : 돈이 좀 듣다 (안테나 4300원 무선랜카드 24000원)
        시간이 꽤 걸린다.
        노트북 분해라는 다소 위험한 작업을 해야 한다.
이정도가 될듯 합니다. 저는 대체적으로 만족합니다. 속도와 수신률이 좋아졌고 무엇보다 가뜩이나 올인원 노트북이라 무거운데 외장형으로 무선랜카드 들고다니는게 귀찮았었는데 그 귀차니즘이 해결되었습니다. 행여 저와 같은 시도를 하시는 분이 있다면 도움이 되었으면 좋겠습니다. ^^;
반응형

'기본설정' -> '사용자 도구' 에서 다음과 같은 항목을 추가해 보십시오.

예제 1. 자바 컴파일러

메뉴제목: Java Compiler
명령: c:\java\bin\javac.exe
인수: $(FilePath)
디렉토리: $(FileDir)
출력내용 캡처: ON

예제 2. Turbo C 2.01

메뉴제목: Turbo C
명령: c:\tc\tcc.exe
인수: -Ic:\tc\include -Lc:\tc\lib -n$(FileDir) $(FilePath)
디렉토리: c:\tc
출력내용 캡처: ON

예제 3. Borland C++ 5.5

메뉴제목: Borland C
명령: c:\bc\bin\bcc32.exe
인수: -Ic:\bc\include -Lc:\bc\lib -n$(FileDir) $(FilePath)
디렉토리: c:\bc\bin
출력내용 캡처: ON

예제 4. Visual C++

메뉴제목: Visual C++
명령: c:\msdev\vc98\bin\cl.exe
인수: "$(FilePath)"
디렉토리: $(FileDir)
출력내용 캡처: ON

위에서 '명령' 란에는 실제 자바 컴파일러의 경로를 입력해야 합니다.

이렇게 설정하면 '도구' 메뉴에서 'Java Compiler' 항목을 선택하거나 '사용자 도구모음'에 있는 아이콘을 눌러서 자바 컴파일러를 실행시킬 수 있습니다.

컴파일된 *.class 파일을 실행하려면 다음과 같이 설정해 보십시오.

메뉴제목: Java
명령: c:\java\bin\java.exe
인수: $(FileNameNoExt)
디렉토리: $(FileDir)

역시 '명령' 항목에는 실제 자바 인터프리터의 경로를 입력해야 합니다.

컴파일된 *.exe 파일을 실행하려면 다음과 같이 설정해 보십시오.

메뉴제목: Run
명령: $(FileNameNoExt)
인수:
디렉토리: $(FileDir)

반응형

요즘은 너나 할 것 없이 A4 한장짜리 문서면 될 것도 프리젠테이션을 만드는 세상입니다. 대학수업에서, 또 취업전선에서 파워포인트로 대표되는 발표 비중이 커진것은 두말할 나위가 없죠. 이제 프리젠테이션 슬라이드를 제작하지 못하시는 분은 별로 없으십니다만, 파워포인트를 다루다 보면 주객이 전도되어 툴 사용에 집착하고 화려한 애니메이션을 강조하는 일이 발생합니다. 발표는 산만하고 청중의 눈은 금방 피로해 집니다.


멋진 발표를 하기위해 가장 중요한 점은 무엇일까요? 저는 개인적으로 언제나 청중의 입장에서 생각하고 준비하는 것이아닐까 합니다. 그리고 이를 실현하는 대표적인 인물이 바로 스티브 잡스라고 생각합니다.




아래의 글은 제 글이 아닙니다만, 제 마음을 그대로 반영하고 있어 소개시켜 드리고 싶습니다.


스크랩 링크는 http://blog.naver.com/zinzinny/100014469377

잡스의 프리젠테이션 링크는 http://www.apple.com/quicktime/qtv/specialevent05/

프리젠테이션이 고수가 되려면... 잡스의 키노트를 보고 따라하면 됩니다.
자, 그럼 왜 잡스의 키노트가 그리 매력적인지 한번 볼까요



고수들은 화면에 무언가를 띄워놓고 딴소리를 너저분하게 늘어놓지 않습니다.
화면에 나타내면서 그냥 읽어버리던가, 딱딱 시간을 맞추죠.

흔히 하는 오류중 하나가, 슬라이드를 띄워놓고는 전후과정을 설명하느라고 혼자서 떠드는 겁니다. 그새 청중들은 슬라이드를 다 읽고, 막상 슬라이드를 설명할 때면 다 읽은 내용인지라 재미없어 하죠.





잡스는 결코 그렇게 하지 않습니다.



장식용으로 사용하는 클립아트의 경우도 쓰려면 제대로 큼직하게 써야 하는게 두번째 요령입니다. 물론 주제와 관련된 것이어야 하지만, 옆에 텍스트를 놓으면, 잘된 디자인의 경우에는 훨씬 호소력이 있습니다.

내년 6월이면... 여기까지는 그림으로, 나머지는 텍스트로.
절제미를 느끼게 하는 게 키포인트지요.





테두리를 두르고, 상단에 슬라이드 제목을 써 놓고, 어느 페이지인지 만드는 식은 벗어버리십시오. 그림만으로 충분히 설명이 가능합니다.

만약 인쇄물을 나누어 주는게 문제라면... 차라리 유인물 모드로 밑에 대사로 정리해서 주세요. 그게 훨씬 효과적이고 직관적입니다.






잡스는 소프트웨어 개발자를 소개할 준비를 하고 있습니다. 맨먼저 그는 설명이 필요 없는 패키지를 보여주며 관객들을 준비시킵니다. 써본 사람은 많지 않지만, 이름은 누구나 들어봤을 매스매티카... 충분한 효과를 지닌 프로덕트이지요.





회사명을 강조하되 회사명과 이름, 직책을 놓은 폰트의 크기 변화와 종류를 주목해서 보십시오. 회사를 강조하려는 의도와 동시에 이름도 분명히 보입니다.





키노트를 보신 분들은 아시겠지만, 무표정해 보이는 가운데의 친구는 말 한마디 없이 관객들의 웃음을 끌어냈습니다. 이런 방식도 나쁘지는 않습니다. 극중극 구성처럼 액자식 프리젠테이션도 잘만 구성한다면 높은 점수를 딸 수 있지요.





물론 이런 장면처럼 손을 주머니에 넣는 건... 한국에서는 상상도 할 수 없는 일이지만, 만약 강의를 하는 거라면 ^^ 가능할 수도 있습니다.





자, 이렇게 대화상자만을 크롭해서 사용하는 방식. 화면이 필요하다면, 인터넷의 무언가를 보여주려면, 이렇게 과감하게 필요한 부분만 잘라서 사용하셔도 좋습니다.

풀 스크린에 잘 보이지도 않는 화면 보다는 훨씬 호소력 있지요.





화려한 그래픽보다는 이렇게...
잘 구성한 화면이 감동을 줄 수 있다는 것.
물론 발표자는 진행방향에 맞춰 서 있는 위치를 바꾸는 정도의 센스가 있어야 합니다.





역시 마찬가지로 화면의 가로를 잘 사용하는 것이 보이지요.
그냥 평범하게 했다면 제목으로 위로 끌어 올리고는 길게 설명했을텐데.. 잡스는 그렇지 않습니다.



마지막으로 알려드리고 싶은것은 준비없는 발표가 성공할 수는 없는것이라는 것입니다. 당연한 명제지만 이를 잊고계신분이 너무 많죠^^ 아래 사진이 그것을 상징하고 있습니다.


What's really behind a Steve Jobs keynote?


여유스럽고 자연스러워만 보이는 잡스의 키노트연설뒷편에는 실로 엄청난 일들이 벌어지고 있군요^^



아는 분들은 다 알고, 모르는 분들은 이런 짧은 설명만으로는 부족한 프리젠테이션 잘하기!!!
이상입니다.


반응형

윈도우를 사용하면서 특정한 설정을 고정시키기를 원할때가 있습니다.
예를 들어 마우스속도를 고정하거나, 비디오 해상도를 고정하거나, 키보드 속도를고정하거나, IE 홈페이지를 고정하는 것처럼.. 뜻하지 않게 변경될 여지가 있는 값들은 자신이 사용하는 값으로 항상 고정하는게 편합니다. 자동시작 프로그램도 마찬가지입니다.

이글에서는 레지스트리와 서비스를 사용해서 특정한 설정을 고정하는 간단한 방법에 대해서 알아보겠습니다. 어려울거 하나도 없고, 하품이 나올정도로 -_- 간단하니 맘편하게 그대로 따라하시면 됩니다.

이 파일 을 내려받아서 C:\Windows\System32폴더에 파일 두개를 압축풉니다.
② 압축푼후에 시작 -> 실행 -> CMD를 실행해서
  C:\>instsrv.exe 등록할 서비스 이름 srvany.exe를 실행합니다.


여기에서는 등록할 서비스 이름에 (AutoRun)을 사용했습니다.
※ 예,   C:\>instsrv.exe AutoRun srvany.exe
정상적으로 서비스가 등록되면, "CreateService SUCCESS at creating:"이라는 메시지가 출력됩니다.

③ 레지스트리 편집기를 띄워서HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AutoRun 키를 찾아갑니다. AutoRun이 아닌 다른 이름으로 만든분은 그 이름의 키로 찾아갑니다.

④ AutoRun위에서 새로만들기 -> 키를 선택해서 Parameters 하위키를 만듭니다.

⑤ 하위키 안에 아래 스샷처럼 3개의 문자열값(REG_SZ)을 만듭니다.

설명을 입력할 분은 Description이라는 키를 만들어서 간단하게 설명을 한글로 작성합니다.

⑥ 이제 서비스 콘솔을 열어서 (시작 -> 실행 -> services.msc) 방금전에 만든 서비스로 이동합니다. AutoRun으로 이동해서 "로그온"탭에 아래 스샷처럼 체크합니다.

이제 서비스 등록은 끝났습니다.
◆ 이제 로그인 할때마다 레지스트리 편집기가 c:\windows폴더에 있는 myrun.reg라는 등록파일을 강제로 병합하는데, 이 등록파일에 자신이 고정할 설정내용을 기록하면 됩니다.

⑴ 시작 프로그램 고정
시작 프로그램은 윈도우 부팅(로그인)과 함께 실행되어서 메모리에 적재되는데.. 많을수록 부팅 속도에 악영향을 끼칩니다. 스파이웨어나 에드워어나 일부 S/W를 통해서 원하지 않는 시작프로그램이 자신도 모르는 사이에 등록되거나 자신이 등록한 것이 사라지는 경우가 생길수 있습니다.
레지스트리를 통해서 시작프로그램을 고정하겠습니다.

윈도우 시작후에 자동으로 실행되는 자동 시작프로그램의 경우...

3개의 폴더
C:\Documents and Settings\All Users\시작 메뉴\프로그램\시작프로그램
C:\Documents and Settings\사용자계정이름\시작 메뉴\프로그램\시작프로그램C:\WINDOWS\Tasks (시작시에 실행하도록 예약한 작업)

그리고 4개의 레지스트리 값[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run][HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce][HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run][HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce]

그리고 1개의 파일
C:\Windows\System.ini에서 [Run]섹션 까지............
마지막으로 서비스를 통해서 시작될수 있습니다. 폴더와 System.ini에 등록되는 경우는 거의없으니, 신경쓰지 않아도 되지만 혹시 모르니 남아있는 파일이 있다면 다 삭제합니다.

아무 에디터나 열어서 (메모장이든 뭐든..) 새로운 문서를 작성합니다.
맨위에 Windows Registry Editor Version 5.00를 입력하고 그 밑에
Windows Registry Editor Version 5.00
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run][HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"S/W이름1"="S/W1의 경로"
"S/W이름2"="S/W2의 경로"
"S/W이름3"="S/W3의 경로"

※ 예,  "PowerPro"="C:\\Program Files\\Tool\\PowerPro\\PowerPro.exe"

를 차례대로 입력합니다. 앞에 -가 붙은 위 두줄은 Run키 자체를 삭제하라는 뜻입니다.
세번째 키가 바로 Run키에 등록되는 값인데, 저같은 경우 "PowerPro"하나만 사용합니다.
이곳에 자신이 부팅과 함께 자동실행시킬 S/W를 추가합니다. 형식은...
"S/W이름"="확장자까지 포함한 경로"입니다. 경로를 입력시에 폴더구분단위인 \를 하나만
입력하면 \문자 자체로 인식하니 반드시 \\ 두개를 입력해야 합니다.

※ 예를 들어 Winamp를 자동시작 프로그램으로 등록한다면..
"Winamp"="C:\\Program Files\\Winamp\\Winamp.exe"

위와 같이 입력합니다. 여러개를 실행한다면 똑같이 계속추가합니다.
이제 매번 부팅할때마다 Run키에 등록된 모든 값들이 다 지워진후에 자신이 입력한 프로그램만이 자동시작 프로그램으로 기록됩니다.  

⑵ IE 시작페이지 고정하기

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]
"Start Page"="
www.pipi.co.kr"

myrun.reg파일에 위와 같이 추가해 줍니다. Start Page값에 자신이 사용하는 URL을 입력합니다.저같은 경우 www.pipi.co.kr를 시작페이지로 사용합니다.

"FullScreen"="yes"값을 추가해주면, 이름그대로 IE가 항상 "꽉찬화면"으로 실행됩니다.

⑶ IE 다운로드 경로 고정하기

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer]
@=""
"Download Directory"="D:\\My Documents\\"
키를 추가합니다. Download Directoryr값에 자신이 원하는 값을 입력합니다. 저같은 경우 D:\\My Documents\\을 다운로드 경로로 사용합니다. 주의할것은, 위에서도 언급했지만 폴더구분기호의 경우 \\를 두번사용해야 합니다.

⑷ 키보드 속도 고정하기
[HKEY_CURRENT_USER\Control Panel\Keyboard]
"InitialKeyboardIndicators"="0"
"KeyboardDelay"="0"
"KeyboardSpeed"="31"

위와 같이 추가합니다. InitialKeyboardIndicators 값은 NumLock ON/OFF입니다. 0이면 OFF, 1이면 ON입니다. KeyboardDelay값은 연속입력시 딜레이입니다. 0이면 지연없이 바로 입력합니다. KeyboardSpeed는 키보드 스피드 입니다. 클수록 빠릅니다. 31이 최대값입니다.

⑸ 마우스 이동 속도 고정하기

[HKEY_CURRENT_USER\Control Panel\Mouse]
"MouseSensitivity"="10"

값을 추가합니다. MouseSensitivity값이 이동속도입니다. 0이 최소,20이 최대입니다. 마지막으로, 고정할 설정을 다 추가했으면.. 작성한 파일을 myrun.reg 파일로 저장합니다.  아래 스샷처럼 작성하시면 됩니다. 잘 모르시는 분은 아래 스샷을 참고로 작성하세요.

저장후에 c:\windows 폴더로 옮깁니다. 끝입니다. 더이상 해줄게 없습니다. 혹시 자동실행이 안되거나 변경사항이 적용되지 않을경우 서비스 제어판에서 새로 만든 서비스를 "중지"한 후에 다시 "시작"하면 적용됩니다. 시작유형은 반드시 "자동"으로 되어있어야 합니다. 그래야 부팅시마다 읽어들이기 때문입니다.

반응형

앞서 설명했던 XML스키마나 DTD를 활용하는 것 까지는 아니라도

가장 기초적인 단순 Tag타입의 XML 파일을 만들수 있게 되었다.


<?

// xml 버전라인
$doc = domxml_new_doc("1.0");

// <HTML> element 선언
$root = $doc->create_element("HTML");

// 자식 element로 <HTML> 추가
$root = $doc->append_child($root);
$head = $doc->create_element("HEAD");

// <HEAD>를 <HTML>의 자식으로 추가 $doc->$root
$head = $root->append_child($head);
$title = $doc->create_element("TITLE");

// <TITLE>을 <HEAD>의 자식으로 추가 $doc->$root->$title
$title = $head->append_child($title);

// <TITLE>에 텍스트노드 추가
$text = $doc->create_text_node("This is the title");
$text = $title->append_child($text);

echo "<PRE>";

// 메모리를 덤프해서 htmlentitie로 표시
echo htmlentities($doc->dump_mem());
echo "</PRE>";
?>


다음의 소스코드를 그대로 .php 로 저장해서 실행시켜보면 다음과 같은 결과를 볼 수 있다.

<?xml version="1.0"?> <HTML><HEAD><TITLE>This is the title</TITLE></HEAD></HTML> echo를 할때 htmlentities() 함수 대신....$doc->dump_file("/tmp/test.xml", false, true);dump_file()함수를 쓰면 xml파일을 얻을 수 있게 된다.

모든 xml은 다음과 같은 정의를 최상단에 단 한번만 주어야 한다.


<?xml version="1.0"?>


이것은 "이 문서는 xml표준 버전 1.0 의 규칙에 따른다..." 라는 것을 정의함을 의미한다.

그리고, 내가쓰는 PHP4 에서 사용되는 domxml_new_doc() 함수를 살펴보면...


(PHP 4 >= 4.2.1)

domxml_new_doc --  Creates new empty XML document
[사용법]
object domxml_new_doc ( string version)
다음과 같이 정의 되어 있으며 입력값으로 version이 들어간다.
문서의 처음에 사용해서 비어있는 xml 문서를 생성해야만 추가작업이 가능하다.
근데 난 한국사람이고 영어문화권을 제외한 나머지 언어를 가진 나라에서는 모든 xml문서를 선언할 때 encoding 값을 줘야한다.
한국어 xml 문서라면...
<?xml version="1.0" encoding="euc-kr"?>
과 같이 써야 한단 소리다.
근데 주어진 xml문서 생성함수로는 구현이 되지 않았다.
그래서, 고민끝에 domxml_open_file(), domxml_open_mem() 함수를 써서 만들어 보기로 했다.
비어있는 xml문서를 만들기 위해서 미리 선언된 양식의 문서가 있어야 한다.
################################### example.inc
<?php
$xmlstr = "<?xml version='1.0' encoding='euc-kr' standalone='yes'?>
<!DOCTYPE HTML SYSTEM 'HTML.dtd'>
<HTML>
</HTML>
";
?>
##########################################################
위에 dtd 문서 선언은 없어도 된다. 하지만 xml문서 선언부와 root element 역할을 하는 tag가 필요하다.
그리고, 이를 php에서 불러서 root element를 불러낸뒤 그뒤에 자식element를 추가해주면 원하는 xml문서를 얻을 수 있다. 물론 xml선언부는 주어진 PHP함수를 사용하지 않고 내 마음데로 조절이 가능하다.
#################################### dom01.php
<?
include("example.inc");
if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}
$root = $dom->document_element();
$head = $dom->create_element("HEAD");
$head = $root->append_child($head);
$title = $dom->create_element("TITLE");
$title = $head->append_child($title);
$text = $dom->create_text_node("This is the title");
$text = $title->append_child($text);
echo "<PRE>";
echo htmlentities($dom->dump_mem());
echo "</PRE>";

?>
####################################################
결과는 다음과 같다.
<?xml version="1.0" encoding="euc-kr" standalone="yes"?> <!DOCTYPE HTML SYSTEM "HTML.dtd"> <HTML> <HEAD><TITLE>This is the title</TITLE></HEAD></HTML>
이와 같은 방법으로 문서를 작성해 나가면 될 것이다.

한글로 인코딩하는 xml 선언문까지 해결보고나서 문서를 만들려던중

create_element() , create_text_nod, set_content() 같은 함수들에 한글을 입력하게 되었다.

그러면...


Warning: dump_file(): output conversion failed due to conv error in D:\XML\ex01.php on line 60

Warning: dump_file(): Bytes: 0xC0 0xCC 0xB8 0xA7 in D:\XML\ex01.php on line 60

Warning: dump_file(): xmlOutputBufferFlush: encoder error in D:\XML\ex01.php on line 60


다음과 같은 에러가 발생했다.

output 버퍼가 어쩌구... -_-;


한글을 써야할텐데... 이러면 낭패다.


열씸히 검색해보니 php.ini에 가서 buffer,flush 관련 항목의 주석제거와 알맞게 샛팅후 다시 써보라는둥... 혹 윈도우버전이라 안되는건 아닐까... 모듈이 없는건 아닐까 고민고민했다.

그러다가 나와 같은 에러를 갖은 사람의 문서를 찾게 되었고 그 문서를 통해서 해답을 찾는듯 했다.


http://bugs.php.net/bug.php?id=26443


결론이 난 이문서의 최종 해결책은

Please try using this CVS snapshot:

  http://snaps.php.net/php4-STABLE-latest.tar.gz
  http://snaps.php.net/win32/php4-win32-STABLE-latest.zip

다음과 같은 STABLE 버젼을 다시 설치하고 해보라했다.

웹서버의 종류도 특성이 있는듯 했고 window용에 대한 언급도 있었다.


내공이 부족해서 시키는데로 했다.


덕분에 새로운 팁을 익히게 되었지만 한글을 뿌리게끔 현실적으로 보탬이 되진 않았다.

계속 찾아 헤매던중 eocoding쪽에 관련이 있을것 같아서 문서 검색을 해보니...


xml 파서함수의 uft8-encode() 함수를 쓰도록 하고있었다.

그래서, 해봤다... 이제 위와같은 버그는 없었다. 다만 읽을수 없는 문자가 난무했다.

이유인 즉슨 ISO-8859-1 문자열을 UTF-8 로 바꿈에 있었다.


PHP내공이 부족해서 대책을 바로 찾지 못했는데 한글문자열은 UTF-8 포맷으로 바꿔줘보기로 했다.


iconv 함수를 이용해서...


string iconv ( string in_charset, string out_charset, string str)


예 1. iconv() example:

echo iconv("ISO-8859-1","UTF-8","This is test.");

적용해보니 한글을 잘 뿌릴 수 있게 되었다.

이제 걸리는 문제는 모두 해결하게 되었다.


이제부터 문서를 만드는 일만 남았다.



[소스]


폼을 통해 전달해주는 문서 index.html


<form name=form1 method=POST action=ex01.php?X=KKK>
<input type=hidden name=rootName value="EXTEXT">
<table border=1>
  <tr>
   <td>name</td>
<td><input type=text name=name></td>
  </tr>
  <tr>
   <td>title</td>
<td><input type=text name=title></td>
  </tr>
  <tr>
   <td>content</td>
<td><textarea name=content></textarea></td>
  </tr>
  <tr>
   <td></td>
<td><input type=submit></td>
  </tr>
</form>


넘어온 form 값을 XML로 만들어주는 PHP프로그램 ex01.php


<?
print_r($_REQUEST);


if(!array_key_exists("rootName",$_REQUEST)) {
///////// 넘어온 폼에서 rootName값이 없을 경우 default XML root element value를 만들어준다. set "TEMPTEXT"
$RootName="TEMPTEXT";
} else {
//////// 있다면 그냥 준다.
$RootName=$_REQUEST["rootName"];
unset($_REQUEST["rootName"]);
}

/////////////////////////////// XML root ELEMENT(부모) 생성
$xmlstr = "<?xml version='1.0' encoding='euc-kr'?><$RootName></$RootName>";

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}
$root = $dom->document_element();
////////////////////////////////////////////////////////////////


foreach($_REQUEST as $key=>$value) {

$$key = $dom->create_element($key);
$$key = $root->append_child($$key);
$$key->set_content(iconv("EUC-KR","UTF-8",$value));

}


//echo htmlspecialchars($dom->dump_mem(1, 'euc-kr'));
echo $dom->dump_mem(true);
//echo htmlentities($dom->html_dump_mem());

/// xml문서로 바로 남기고 자 하면 dump_file을 쓴다.
//$dom->dump_file("result.xml", false, true);
?>


[결과]


<?xml version="1.0" encoding="euc-kr" ?>
-<EXTEXT>
<X>KKK</X>
<name>이름</name>
<title>제목</title>
<content>내용</content>
</EXTEXT>

반응형
3.4 JSP Application Design with MVC

JSP technology can play a part in everything from the simplest web application,
such as an online phone list or an employee vacation planner, to full-fledged
enterprise applications, such as a human-resource application or a sophisticated
online shopping site. How large a part JSP plays differs in each case, of course.
In this section, I introduce a design model called Model-View-Controller (MVC),
suitable for both simple and complex applications.

JSP 기술은 전화번호부나 직원휴가일정과 같은 간단한 웹어플리케이션에서부터
구인구직, 정교한 쇼핑몰 등의 성숙한 기업 어플리케이션에 이르기까지 모든 분야에서
유용하다. .. 나는 간단하거나 복잡한 어플리케이션에 모두 적합한 모델-뷰-컨트롤러
(MVC: Model-View-Controller) 라는 설계 방법을 소개하려고 한다.

MVC was first described by Xerox in a number of papers published in the late
1980s. The key point of using MVC is to separate logic into three distinct units:
the Model, the View, and the Controller. In a server application, we commonly
classify the parts of the application as business logic, presentation, and
request processing. Business logic is the term used for the manipulation of an
application's data, such as customer, product, and order information.
Presentation refers to how the application data is displayed to the user, for
example, position, font, and size. And finally, request processing is what ties
the business logic and presentation parts together. In MVC terms, the Model
corresponds to business logic and data, the View to the presentation, and the
Controller to the request processing.

MVC는 제록스가 80년대말 발표한 여러 논문에서 처음 설명되었다. MVC 의 핵심은
프로그램로직을 세 개의 유닛 [ 모델, 뷰, 콘트롤러 ] 로 분리하는 것이다.
서버어플리케이션에서는 [ 비즈니스로직, 프레젠테이션, 리퀘스트프로세싱 ] 으로
어플리케이션 구성요소를 분류한다. 비즈니스로직은 고객,상품,주문 정보등과 같은
어플리케이션 데이터의 처리를 말할 때 쓰는 용어이다. 프레젠테이션은 이러한
데이터가 사용자에게 어떻게 보여지느냐를 의미한다. 예를들어 데이터의 위치,
글자의 종류나 크기 등을 말한다. 마지막으로 리퀘스트프로세싱은 비즈니스로직과
프레젠테이션 영역을 연결해주는 부분을 말한다. MVC 용어에 있어서, 모델은
비즈니스로직과 데이터에, 뷰는 프레젠테이션에, 콘트롤러는 리퀘스트프로세싱에
해당된다.

Why use this design with JSP? The answer lies primarily in the first two elements.
Remember that an application data structure and logic (the Model) is typically
the most stable part of an application, while the presentation of that data
(the View) changes fairly often. Just look at all the face-lifts many web sites go
through to keep up with the latest fashion in web design. Yet, the data they
present remains the same. Another common example of why presentation should be
separated from the business logic is that you may want to present the data in
different languages or present different subsets of the data to internal and
external users. Access to the data through new types of devices, such as cell
phones and personal digital assistants (PDAs), is the latest trend. Each client
type requires its own presentation format. It should come as no surprise, then,
that separating business logic from the presentation makes it easier to evolve an
application as the requirements change; new presentation interfaces can be
developed without touching the business logic.

왜 JSP 를 가지고 이렇게 설계를 할까? 그 답은 우선 앞의 두 요소에 있다.
어플리케이션 데이터구조와 로직(모델)은 전형적으로 가장 안정된 영역이고, 반면에
그러한 데이터의 프레젠테이션(뷰)은 사실 자주 변경된다는 점을 상기해보자. 단지
웹디자인의 최근 유행을 따르기 위해 많은 웹싸이트가 겪는 모든 성형수술을
주목해보자. 그러나 웹싸이트가 보여주는 데이터에는 변함이 없다. 프레젠테이션
로직이 비즈니스로직에서 분리되어야 하는 또 다른 평범한 예로, 국내외의
사용자에게 다양한 언어로 데이터를 보여주고 싶을 수 있다. (역자 주: 이 경우는
동일 템플릿에 다른 데이터할당을 말하는 것 같습니다.) 핸드폰이나 PDAs 와 같은
새로운 장치들에 대한 데이터처리는 최근의 경향이다. 각 클라이이언트 유형은
그에 맞는 프레젠테이션 포맷을 요구한다. 그렇다면, 비즈니스로직과
프레젠테이션을 분리함으로써 이러한 요구의 변경에 따라 어플리케이션을
진화시키기 쉽다는 것은 놀라운 일이 아니다. 비즈니스로직을 변경하지 않고 새로운
프레젠테이션 인터페이스를 개발할 수 있다.

반응형
싸이월드를 사용할때 쓰는 BGM 플레이어는 기본적으로 방화벽 처리에 사용자 동의 없이 예외로
처리 시키고 사용자의 컴퓨터를 음악 재생용 서버로 사용하여 업로드 대역폭을 일정량 차지한다.
그것을 방지하는 프로그램으로 싸이월드 BGM 플레이어 제거 프로그램이다.

사용하면 인터넷 속도(웹서핑)가 약간 향상된것을 느낄수 있다. 경우에 따라 득이 없을수도 있음..
반응형

http://www.xtac.net/ 싸이트 주소
http://www.xtac.net/reference/ 레퍼런스 주소
스킨등 사용할때나 동시 접속자 처리등에 유용한 개발 방식
100%는 아니지만 디자인과 프로그램 코딩의 분리가 가능하여
개발하는데 보다 쉽다~, 캐슁이 가능해 잘사용하면 정말 좋을듯..
게시판을 보면. 동시접속자 500만 싸이트도 이방식을 사용하여 운영이 가능하다고 되어있다.

invalid-file

사용하려면 다운(라이브러리)

출처는 위 싸이트
반응형

+ Recent posts