2008년 8월 31일 일요일

아파치 SeLinux 권한 관련 오류

Apache 와 PHP를 설치후,.. 아파치를 실행하면,

Syntax error on line 232 of /usr/local/apache/conf/httpd.conf:
Cannot load /usr/local/apache/modules/libphp5.so into server: /usr/local/apache/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied

Fedora에서는 Selinux기술을 사용하는데, 서버환경에서 Selinux환경이 활성화 되어 있는 상태이면 위와 같은 오류가 발생한다.
Selinux활성화 상태에서 apache를 구동하는 방법은 조금 복잡함으로, 그냥 비활성화 시키고 재부팅하면 된다.


/etc/sysconfig/selinux   파일은 열어서

SELINUX=enforcing  부분을 아래와 같이 변경후 재부팅한다.

SELINUX=disabled

2008년 8월 28일 목요일

헝가리언 표기법

헝가리언 표기법

 

유래

10,15년 전 Microsoft의 개발자중 헝가리 사람의 프로그래머가 쓰던 변수 명명법.

MS 내부에서 따라 쓰기 시작하던 것이 점차 전세계의 프로그래머들에게 널리 퍼져 프로그램 코딩시 변수 명명의 표준적인 관례가 되었다. 그러나 실제로 현장에서 일하다 보면 헝가리안 표기법을 제대로 지키는 개발자는 그리 많지 않다. 어느 정도 개발 경험을 가지고 있는 프로그래머는 물론 심지어 시중의 프로그래밍 서적에서 조차 저자 마다 변수 명을 개인에 따라 가지 각색으로 짓고 있어서 처음프로그램을 배우는 입문자들이 변수 명명에 대한 기준을 제대로 잡지 못하고 있는 실정이다.

변수 명명에 관한 표준화된 관례를 지켜주면 코드의 가독성을 높여 줄뿐 아니라 어떤 변수 명을 지을지 고민하지 않아도 되는 편리함을 누릴 수 있다.

                         

 :Prefix     :Type                  :Description                                   :Example

:b          :bool                   :any boolean type                           :bool bTrue;

:c          :char                    :character type                              :char cLetter;

:i           :int                      :integer                                         :int iCars;

:l           :long                    :long type                                      :long lDistance;

:u          :unsigned             :unsigned type                            

:f           :float                   :floating point                                :float fPercent;

:d          :double                :double floating point                      :double dPercent;

:s           :static                  :a static variable                           :static short ssChoice;

:rg         :array                   :stands for range                            :float rgfTemp[16];

:p          :*                        :any pointer                                   :int *piAddr;

:sz         :*                       :null terminated string of characters   :char szText[16];

:pfn        :*                        :function pointer                            :int (*pifnFunc1)(int x, int y);

:t           :struct                 :a user defined type

:e          :enum                  :variable which takes enumerated values

:E          :enum                  :Enumerated type

:g_         :Global                 :Global Variable                               :String *g_psBuffer

:m_        :Member               :class private member variable           :

:k           :constant formal parameter                                        :void vFunc(const long klGalaxies)

:r           :reference formal parameter                                       :void vFunc(long&rlGalaxies)

:str        :String                  :string class(C )                          :String strName;

:prg       :dynamically allocated array                                       :char *prgGrades;

:h          :handle                :handle to something                     :hMenu

 

:n          :                           :number, quantity                          :int nNum;

:x/y        :                           :used as size                                 :int xWitdth, yHeight;

 

 

Example of type specific variable naming

unsigned char ucByte;              :한 바이트 데이타

         char cChar;               :한 문자

unsigned char rgucByte[10];           :바이트 데이타10개

         char rgcChar[10];                        :문자 데이터10개

         char szChar[16 1];     :문자16개를 저장할 수 있는 문자열 공간

 

:Data Type           :Description

BYTE               unsigned char type

WORD              unsigned short type

DWORD            unsigned long type



접두어

의미

a

배열

b 또는 f

BOOL형 변수(b는 bool, f는 flag의 약자

by

BYTE(unsigned char)형 변수

c

카운터로 사용되는 변수

ch

Char 형 변수

cx, cy

X, Y 길이를 나타내기 위해 사용되는 변수

d

날짜형 변수

dbl

Double형 변수

h

핸들(HANDLE)형 변수

n는 i

Int형 변수

l

Long형 변수

p

포인터변수

lp

Long(far)포인터 변수(32비트 프로그래밍에서는 일반 포인터와 같음)

s

문자열

sz

(NULL)문자로 끝나는 문자열

u

Unsigned int형 변수

w

WORD(unsigned short)형 변수

dw

DWORD(unsigned long)형 변수

str

Cstring 형 변수

2008년 8월 26일 화요일

C#으로 동영상 플레이 제작을 위한 필수 항목

DirectX Software Develpment Kit

http://www.microsoft.com/downloads/details.aspx?FamilyID=86cf7fa2-e953-475c-abde-f016e4f7b61a&displaylang=en&Hash=qeJBP6Uksx0zY%2btLhcKYj%2fx4PDbDDOI%2btC%2bsa73SX4pkMysJCEnMU48j49VRn6%2fbDsK5k8OfHBLz%2fe9FNHN8hg%3d%3d

위 SDK를 설치한 후에

using Microsoft.DirectX.AudioVideoPlayback;

를 이용하여~ 딱 3줄로.. 동영상 재생가능~~

1. 무작정 Visual Studio 2008을 띄우고 C# WinForm 프로젝트 생성
2. [Add Reference]에서 Microsoft.DirectX.AudioVideoPlayback를 추가해주고(DirectX는 깔려 있어야 함)
3. Form을 더블 클릭하고 다음과 같이 쳐준다.

using Microsoft.DirectX.AudioVideoPlayback;
private void Form1_Load(object sender, EventArgs e){
    Video v = Video.FromFile(@"c:\test.avi");
    v.Owner = this;
    v.Play();
}

4. F5를 누른다.

근데 안된다.

[Debug]-[Exceptions]-[LoaderLock]의 Thrown 항목을 꺼준다.

사용자 삽입 이미지

5. F5를 누른다.

사용자 삽입 이미지

ㅋㅋㅋ 성공 ….

[잡설]
이번 일주일간 WDM 디바이스 드라이버 프로그래밍 교육중이다.
Kernel Mode 프로그램에서는 좀만 잘못하면 블루 스크린…
오랜만에 보는 VisualStudio… 안보던 사이 많이 바뀌었었네…

2008년 8월 19일 화요일

Linux BackUp Scrpit ~~~

Linux 백업 스크립트~

난 아래 내용의 파일을 ~~ /etc/cron.weekly 에 복사해서 실행 권한을 주고~ 일주일에 한번식 실행하도록 한다.

펼치기



 

2008년 8월 15일 금요일

Bonjour Service 제거 방법

Adobe CS3 버전부터는 Apple사의 Bonjour network 프로그램을 사용한다.

프로세서의 자원을 먹기 때문에 조금이라도 빨리 없애고 싶을것이다.

Adobe사의 기술노트 http://www.adobe.com/go/kb400982 로 들어가면 Bonjour의 설치된 이유, 시작, 지우는 방법이 나와 있다.

여기서는 지우는 방법만 소개하도록 하겠다.

명령 프롬프트를 연다 (시작 -> 실행 -> cmd)

그림과 같이 실행한다.

사용자 삽입 이미지

여기까지 완료하면 재부팅 하고 C:\Program files\Bonjour 폴더를 삭제하면 된다.

2008년 8월 13일 수요일

PhpMyAdmin (WebDB) Session 오류 해결방법

phpMyAdmin 실행시 다음의 오류가 나는 경우

phpMyAdmin - Error

Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.


원인은 PHP가 Session 을 생성하는데, 있어 Session 생성이 실패했다는 것이다.
저 오류의 대표적인 원인은 Session 을 저장하는 디렉토리가 잘못되었거나 권한이 없어 세션을 생성하는데 실패했다는 뜻이다.

일반적으로 리눅스는 /tmp 디렉토리를 임시디렉토리로 쓰므로 다음의 파일을 열어.. 다음의 옵션을 수정한다.

/etc/php.ini 파일 을 열어 수정한다. 이 파일은 php의 옵션을 다루고 있는 파일이다.

session.save_path = "/tmp"      <- 세션 디렉토리를 /tmp로 설정한다.
register_globals = On               <- PHP에서 변수를 전달할때 바로 전달이 되도록 한다. 이 옵션을 On으로 해두면 대부분의 php 프로그램이 동작되나, off로 해두면 동작안되는 php프로그램이 상당히 많이 생긴다... 보안은 조금 취약해질수 있지만.. 호환성을 위해 On으로 한다.

그리고 당연히 아파치 재시작~~~~~~




2008년 8월 12일 화요일

VB 6.0에서 listbox 가로 스크롤 생성

winsock1.senddata 이부분 밑에는
winsock1.listindex = winsock1.listcount - 1
이렇게 써주시면 스크롤이 자동으로 내려갑니다.^^




-----*추가내용*-----

가로 스크롤 생성

''''''''''''''일반프로시저 에 넣을곳
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const LB_SETHORIZONTALEXTENT = &H194
Dim LV As String
''''''''''''''여기서부터 폼의 속성으로넣어주세요
Private Sub AddScroll(List As ListBox)
Dim i As Integer, intGreatestLen As Integer, lngGreatestWidth As Long
For i = 0 To List.ListCount - 1


If Len(List.List(i)) > Len(List.List(intGreatestLen)) Then
intGreatestLen = i
End If
Next i
lngGreatestWidth = List.Parent.TextWidth(List.List(intGreatestLen) + Space(1))
'Space(1)은 문자열의 짤림방지용입니다.
lngGreatestWidth = lngGreatestWidth \ Screen.TwipsPerPixelX
'스크롤바를 추가한다.
SendMessage List.hwnd, LB_SETHORIZONTALEXTENT, lngGreatestWidth, 0

End Sub
'그다음 스크롤을 생성하는것..
'이건 아무데나 해도됩니다.
Private Sub Form_Load()
Call AddScroll(List1)
End Sub
'저는 폼이 켜질때로 하겠습니다.
'이렇게 해주시면 길게 된 문자가 쓰여지면 가로스크롤이 생성됩니다.

2008년 8월 7일 목요일

APACHE의 Virtual Host 셋팅

설정파일 위치 : /usr/local/apache/conf/extra/httpd-vhosts.conf

더보기(펼치기)

2008년 8월 5일 화요일

MS "굿바이 윈도, 웰컴 미도리"

MS "굿바이 윈도, 웰컴 미도리"

2008년 8월 4일(월) 오후 10:05 [아시아경제신문]

출처 : http://news.nate.com/service/news/shellview.asp?ArticleID=2008080422054823228&LinkID=740

마이크로소프트(MS)가 PC 운영체제의 대명사인 '윈도'의 종말을 준비하고 있는 것으로 알려졌다.

4일(현지 시각) BBC는 MS가 윈도 시리즈의 은퇴에 대비한 새로운 운영체제 개발 프로젝트를 시작했다고 보도했다. '미도리(Midori)'라는 이름의 새로운 운영체제는 MS가 윈도 비스타의 뒤를 이어 2010년 출시 예정인 '윈도 7'의 후계자로 낙점됐다.

BBC에 따르면, 윈도 7이 MS 윈도 시리즈의 종착역이라면 미도리는 차세대 운영체제의 출발점인 것이다.

미도리는 현재 MS가 윈도 7과 별개로 개발 중인 운영체제 프로젝터 '싱귤래러티(ingularity)'에서 파생된 것으로, 윈도 7이 서버 운영체제 기반의 '윈도 NT' 커널을 사용하는 것과 달리 미도리는 복수 커널 기반의 싱귤래러티를 모델로 삼고 있다.

이에 따라 미도리는 MS 윈도가 기존 커널로 인해 겪어야 했던 보안이나 파일 관리 등의 문제를 상당히 해소할 것으로 기대된다. 아울러 지금의 윈도와는 전혀 다른 GUI를 채택할 전망이다.

무엇보다 윈도가 '1 PC 1 운영체제' 개념의 하드웨어 의존성이 강한 운영체제인 것과 달리 미도리는 '가상화(virtualisation)' 기술을 통한 네트워크 의존성이 탁월한 운영체제로 평가받고 있다.

당초 가상화 기술은 수많은 시스템을 운영하는 회사 내에서 효과적은 자원 관리를 위해 사용돼왔다. 가상화 시스템 내에서는 운영체제를 지금보다 더욱 작게 설계할 수 있으며, 서로 다른 기기끼리의 통신도 보다 자유롭다. 결국 미도리는 하드웨어에서 네트워크로 컴퓨터 패러다임이 급변하는 것을 의미한다.

가트너 애널리스트의 마이클 실버는 "미도리의 개발은 MS에게는 엄청난 도전"이라며 "더 많은 애플리케이션이 웹으로 이동하면서 윈도의 가치는 축소되고 있으며, MS는 새로운 대안을 제시해야 한다"고 언급, 미도리가 '윈도' 브랜드를 얼마나 자연스럽게 대체하느냐가 관건임을 지적했다.

이정일 기자 jaylee@asiaeconomy.co.kr
<ⓒ아시아 대표 석간 '아시아경제' (www.asiaeconomy.co.kr)>

이정일 jaylee@asiaeconomy.co.kr

근데 코드명이.. 왜 하필 미도리라... 차라리 고도리라고 하지..... 빛을 발휘하는 오광 ~~ ㅋㅋㅋ
... 닷넷으로 넘어가고 싶지 않은데... 점점 닷넷으로 넘어가라는.. 신호가 여기저기서 강하게 들리는군..

인터넷 익스플로러의 화면이 늦게 뜨거나 버벅거릴경우, 다음의 과정대로~

인터넷 익스플로러 7에 윈도우즈 XP Service Pack 3를 적용했을 경우, 웹페이지가 늦게 뜨거나, 이미지들이 하나씩 나올경우 아래의 방법대로 하면 순간 순간 팍팍 뜨더라~~~

출처 : 파코즈   (소스 제공 : 진원기)

우선 다음의 사이트에 가서.. 플래쉬 플래이어를 재설치한다.

Adobe Flash Player 설치 #1

Adobe Flasg Player 설치 #2

위의 두 주소에서 플래쉬 플래이어를 재설치 한후,

첨부된 레지스트리 4개를 더블클릭하면, 추가가 된다.





마지막으로~~~ 재부팅 해보거라~~~ ㅎㅎ 완전 팍팍 뜬다 ㅋ