네트워크 공유 문제.. 귀찮아서 안하다가 찾아서 적어봄.

네트워크 오류.
'공유 파일 및 폴더에 액세스할 수 없습니다.'
'액세스할 권한이 없습니다. 네트워크 관리자에게 액세스 권한을 요청하십시오.'

answer :
  - 공유폴더 권한문제
"공유폴더 - 속성 - 보안 - 추가 - 고급 - 지금찾기 - Everyone 선택 - 확인"

끝.

그 외 기타 확인사항...
1. http://support.microsoft.com/kb/318030/ko
2. http://answers.microsoft.com/ko-kr/windows/forum/windows_xp-networking/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/397cc08a-b7b5-456c-9b99-e2923d4e4c23

Unix 철학

from Info/Dev 2009/06/14 19:39 view 58024
  1. 모듈화의 규칙 : 깔끔한 인터페이스와 함께 간단한 부분을 작성하라.
    • 복잡한 소프트웨어를 작성해낼 수 있는 유일한 길은 전체적인 복잡도를 낮추는 방법뿐이다.
    • 깔끔한 인터페이스로 구성된 간단한 모듈로부터 프로그램을 만들어 간다면, 많은 부분은 지역적으로 이해할 수 있다.
    • 어떤 모듈을 수정하더라도 전체가 같이 망가지는 일은 없도록 한다.
  2. 명료함의 규칙 : 명료함은 영리함보다 중요하다.
    • 프로그램을 설계할 때는 프로그램을 실행하는 컴퓨터보다 소스 코드를 읽고 유지보수 할 사람이 더 중요하다.
    • 성능을 약간 개선하려고 복잡하고 난해한 코드를 택하는 것은 정말 멍청한 거래이다.
    • 복잡한 코드는 버그들이 은신하기 딱 알맞기도 하지만 나중에 유지보수를 해야 하는 사람들이 그 복잡함에 좌절하지도 모르기 때문이다.
  3. 조합의 규칙 : 다른 프로그램과 결합될 수 있도록 프로그램을 설계하라.
    • 프로그램이 다른 프로그램과 통신하지 못한다면 지나치게 복잡한 프로그램이 되는 것을 막을 수 없다.
    • 단순한 텍스트 기반의 데이터로 입/출력하는 프로그램을 작성하는 방법이 좋다. 이러한 포맷은 스트림 지향적이고 장치와 독립적이다.
    • 텍스트 스트림을 파싱해야 하는 오버헤드는 있겠지만, 그렇게만 된다면 일반적인 툴도 또한 연결해서 사용할 수 있으므로 활용도는 높아진다.
  4. 분리의 규칙 : 메커니즘과 정책을 분리하라. 인터페이스와 엔진을 분리하라.
    • 엔진과 인터페이스를 분리하는 방법을 찾아야 함을 뜻한다.
    • 프론트엔드와 백엔드 프로세스로 나누고, 이들 사이를 특별한 프로토콜을 사용해서 통신하게 하는 방법도 있다.
      • 프론트엔드는 정책을, 백엔드는 메커니즘을 담당하게 된다.
      • 전체적인 복잡도는 한 프로세스에서 모든 과정을 처리하는 방법보다 줄어든다.
      •  버그도 많이 줄일 수 있고, 비용도 줄일 수 있을 것이다.
  5. 단순함의 규칙 : 단순함을 최우선 가치로 두고 설계하라. 어쩔 수 없을 때에만 복잡함을 더하라.
    • 프로그램을 상호작용하는 작음 프로그램들로 쪼개는 것을 말한다.
    • 이러한 재귀적 방법을 통해 거추장스럽게 치장하거나 쓸데없이 요란하게 디자인된 것을 바로 잡을 수 있다.
  6. 절약의 규칙 : 다른 일들을 하지 않는다는 가정 하에서만 큰 프로그램을 작성하라.
    • 코드크기와 내부적 복잡도가 커지게 되면 그만큼 유지 보수가 어렵다.
  7. 투명성의 규칙 : 프로그램을 검사하고 디버깅하기 좋도록 투명하게 작성하라.
    • 투명하다고 하는 것은 프로그램을 보고 한눈에 무슨 일을 어떻게 하는지 파악할 수 있다는 뜻이다.
    • 발견가능성이란 프로그램이 모니터링 기능을 가지고 있어서 내부 상태를 보여 줄 수 있음을 뜻한다.
    • 프로그램이 생각대로 올바르게 돌아가는 것을 보여주고, 다른 프로그램에서 사용하기 쉽도록 인터페이스를 단순하게 만드는 것이다.
  8. 강건함의 규칙 : 강건함은 투명성과 단순함으로부터 나온다.
    • 보통의 상태뿐 아니라 설계자의 가정에 어긋나는 상황에서도 잘 수행된다는 것을 뜻한다.
    • 프로그램이 대책 없는 마구잡이식 입력을 견디게 만드는 것도 중요하다.
    • 소프트웨어가 '투명하다'면, 대강 프로그램이 어떻게 돌아가는지를 알 수 있다.
    • 프로그램의 돌아가는 모양이 인간의 머리로 충분히 납득할 수 있게 짜여졌다면 '단순하다'고 말할 수 있다.
  9. 표현의 규칙 : 모든 지식을 데이터로 감싸게 하라. 프로그램 로직은 그만큼 간결해진다.
    • 프로그램 복잡도와 자료구조 복잡도 사이에서 고민해야 한다면 후자를 선택해야 한다.
    • 디자인을 전개할 때 복잡함을 데이터로 미룰 수 없는지를 항상 찾아봐야 한다.
    • 데이터는 모든 것을 좌우한다. 적절한 자료구조를 선택하고 설계하면 알고리즘은 스스로 자명함을 보여준다.
    • 프로그램 중심에는 알고리즘이 아니라 자료 구조가 있다.
  10. 예외적 상황 최소화의 법칙 : 인터페이스 디자인에서는 뜻밖의 것을 최소화하라.
    • 사용하기 쉬운 프로그램이란 사용하려고 할 때 뭔가 새로운 것을 배우지 않아도 되는 프로그램이다.
    • 전통에 귀를 기울여서 전통을 배우는 시간을 절약할 수 있도록 도와줘야 한다.
  11. 무언의 법칙 : 프로그램은 중요한 메시지만 출력해야 한다.
    • 잘 설계된 프로그램은 사용자의 관심과 주의를 소중하게 여겨서 되도록 꼭 필요한 경우에만 시선을 끈다.
    • 중요한 정보들이 프로그램 내부의 동작을 장황하게 설명하는 메시지들 사이에 묻혀버리게 해선 안된다.
  12. 정정의 규칙 : 에러를 수습할 수 있으면 그렇게 하라. 하지만 실패할 수 밖에 없다면, 되도록 빨리 단념하라.
  13. 경제성의 규칙 : 프로그래머의 시간은 컴퓨터의 시간보다 소중하다.
    • 기계들에게 프로그래밍의 저수준 작업의 처리 방법을 알려준다.
  14. 자동화의 규칙 : 손으로 코딩하지 않도록 하라. 프로그램을 만드는 프로그램을 만들어라.
    • 코드 생성기는 에러를 발생하기 쉬운 부분을 자동화하기 위해 많이 사용된다.(파서와 랙서 생성기)
    • 작성해야 하는 프로그램의 명세가 간결해질수록, 그것을 올바르게 설계할 가능성이 높아진다.
  15. 최적화의 규칙 : 먼저 프로토타입을 만들어라. 최적화 이전에 돌아가는 버전을 만들어라.
    • "기능의 90%를 구현하고 잘 돌아가는 편이 100%를 구현했지만 동작하지 않는 것보다 낫다."
    • 프로토타입을 먼저 하는 것이 최적화 범위를 고민하는 데 시간을 뺏기지 않고 고통을 털 수 있다.
    • 병목지점을 찾지 않고 최적화를 감행하는 것은 설계를 망치는 길이다.
    • 힘든 디버깅에 필요한 시간보다 리소스들이 허락하는 범위 내에서의 최적화가 훨씬 이득이 된다.
    • "우선 돌아가도록 만들어라. 이후에 빨리 돌아가게 만들어라."
    • "실행되게 하라. 그리고 올바르게 돌아가도록 만들라. 그 다음에는 빨리 실행하도록 만들어라."
    • 원래의 설계에 충실하도록 최적화하지 않은 구현을 한 후 가장 높은 성능을 이끌어낼 수 있는 부분을 찾아야 한다.
  16. 다양성의 규칙 : "왕도"는 없다.
    • 가장 훌륭한 소프트웨어일지라도 원래 설계자가 고안했던 범위 안에서 돌아가게 마련이다.
  17. 확장성의 규칙 : 미래를 위한 설계를 하라. 그 때는 곧 들이닥칠 것이다.
    • 호환성을 위해 데이터 포맷과 코드에 여분을 두도록 해라.
    • 프로토콜이나 파일 포맷을 설계할 때에는 반드시 스스로 확장 가능하도록 만들어야 한다.
    • 새로운 기능을 쉽게 추가할 수 있는 구조로 만들어야 한다.

결론

UNIX는 KISS 이론을 위한 최상의 환경이다.

Keep It Simple, Stupid!

UNIX적 전통을 똑바로 실천하려면 마음을 가다듬고 조심스레 즐겨라. 기꺼이 탐구할 자세를 가져라.


참고자료

  • Art of UNIX Programming - 1장

이 글은 스프링노트에서 작성되었습니다.

Fedora 에서 소스를 가지고 VLC 설치

from Info/Tools 2009/04/16 02:08 view 108106
yum install vlc 를 하면 되기도 하지만 vlc 를 변경 하고자 할때 소스 를 통해 설치 해보자.
핵심은 libxxx-devel 을 깔아야 된다는거.

http://www.videolan.org/ 에서 소스를 다운 받는다.

./configure 를 하면 libmad 가 없다고 뜬다.
yum install libmad
yum install libmad-devel

liabavcodec 없다고 뜨면
yum install ffmpeg
yum install ffmpeg-devel

liba52 가 없다고 뜨면
http://liba52.sourceforge.net/ 에서 소스를 다운받고 설치.

혹시라도 make install 도중 relink 어쩌고 저쩌고 에러가 뜨면 전에 수행한 make 과정이 남아있는 거므로
make clean 을 수행한후 다시 진행해보면 된다.
gdb vlc 를 수행 시키기 위한 방법. 그냥은 안되네..

1. http://www.live555.com/liveMedia/public/  메뉴얼 보고서 live 깔고 다른건 yum install xx 를 통해 깔자.

2. debug 를 위한 configure .. , yum install faad2*, libdca* 과 같은 라이브러리가 필요하기도 함.

./configure --enable-x11 --enable-xvideo --disable-gtk --enable-sdl --enable-ffmpeg --with-ffmpeg-mp3lame --enable-mad --enable-libdvbpsi --enable-a52 --enable-dca --enable-libmpeg2 --enable-dvdnav --enable-faad --enable-vorbis --enable-ogg --enable-theora --enable-faac--enable-mkv --enable-freetype --enable-fribidi --enable-speex --enable-flac --enable-livedotcom --with-livedotcom-tree=/usr/lib/live --enable-caca --enable-skins --enable-skins2 --enable-alsa --disable-kde--disable-qt --enable-wxwindows --enable-ncurses --enable-release --enable-debug




Tag | , ,

더욱 자세한 사항은 http://www.pyrasis.com/main/Subversion-HOWTO 를 참고한다.

Apache로 말고 순수하게 svn:// 로 접속해서 사용할 수 있도록 만들고자 한다. svn://을 사용하면 Apache를 사용할때보다 더욱 빠르다고 한다.

먼저 SVN을 사용하기 위해서 저장소(Repository)를 만들어야 한다. 이 저장소는 프로젝트마다 하나씩 필요할 것이다. 난 /home/svn/에 저장소 root를 잡을려고 한다.

#mkdir /home/svn

그런 다음 만든 svn폴더로 가서 파일 시스템(버클리 DB를 사용할 수도 있다.)을 이용한 sample이라는 이름으로 저장소를 만든다.

#cd /home/svn
#svnadmin create --fs-type fsfs sample

/home/svn/sample/ 로 가서 ls를 하면 관련 파일들이 있으며 여기 있는 파일을 임의로 수정하게 되면 데이타를 다 잃어버릴 수도 있으니 주의하기 바란다.

이제 SVN을 실행한다. 실행하면 3690 포트가 열린다.

#svnserve -d -r /home/svn

테스트 하기 위해

#svn checkout svn://(서버 IP또는 도메인)/sample

checked out revision 0. 이 나오면 제대로 설정한 것이다. 현재상태는 누구나(Anonymous) 저장소에 접근해서 체크아웃, 커밋이 가능하다.


Svnserve에서 ID로 인증하기

Subversion 0.33.0 이후로 ID로 사용자 인증이 가능하게 되었다. 그래서 아까 만들어 놓은 저장소안에 /home/svn/sample/conf/svnserve.conf 파일을 찾아서 설정만 해주면 된다.

#vi /home/svn/sample/conf/svnserve.conf

### This file controls the configuration of the svnserve daemon, if you
### use it to allow access to this repository.  (If you only allow
### access through http: and/or file: URLs, then this file is
### irrelevant.)

### Visit http://subversion.tigris.org/ for more information.

[general]### These options control access to the repository for unauthenticated
### and authenticated users.  Valid values are "write", "read",
### and "none".  The sample settings below are the defaults.
anon-access = none
auth-access = write

### The password-db option controls the location of the password
### database file.  Unless you specify a path starting with a /,
### the file's location is relative to the conf directory.
### The format of the password database is similar to this file.
### It contains one section labelled [users]. The name and
### password for each user follow, one account per line. The
### format is
###    USERNAME = PASSWORD
### Please note that both the user name and password are case
### sensitive. There is no default for the password file.
password-db = passwd
### This option specifies the authentication realm of the repository.
### If two repositories have the same authentication realm, they should
### have the same password database, and vice versa.  The default realm
### is repository's uuid.
realm = jidolstar's Repository

위 와 같이 설정하면 anon-access=none에 의해 아무나 read를 못하게 막는다. 만약 이부분이 read라면 아무나 들어와 읽을 수 있다. 그리고 auth-access=write는 ID로 인증된 사람만 쓰기 권한을 주게 된다.
password-db = passwd는 /home/svn/sample/conf/ 아래에 passwd 이름으로 ID를 만들 수 있다.
이것은 다음과 같이 만든다.

#vi /home/svn/sample/conf/passwd

[users]
sampleuser = password1234

설정이 완료되고 svn checkout svn://(사용자 도메인)/sample 으로 접속하면 ID와 비밀번호를 입력하여 성공하면 "checked out revision 0" 이 나온다.

여기서 잠깐!!!
외부에서 우리가 설치한 SVN에 접근하기 위해서는 반드시 3690 포트가 열려 있어야 한다.

3690 포트가 열려있는지 확인하기 위해 다음과 같이 확인해보자

# nmap localhost -p1-9999
....(생략)
3690/tcp open  unknown....(생략)
Nmap run completed -- 1 IP address (1 host up) scanned in 1.165 seconds

3690 포트가 없다면 방화벽을 의심해본다.

# vi /etc/oops-firewall/filter.conf
에서 TCP_ALLOWPORT에 3690을 추가한다.
그리고 firewall을 다시 실행한다.

# service oops-firewall restart
Tag | , ,

Fedora 에서 쓸만한 ftp-server VSFTPD

from Info/Tools 2009/04/13 16:29 view 59852
vsftpd 는 현재 사용자 계정에 접속할 수 있도록 해주는 유용한 ftp server 이다.

각종 옵션이 있지만 대충 설정해주고

more..



service vsftpd start 해준다.

vsftpd 를 실행후에도 설정해준 계정으로 접근을 할 수 없을 때 SELinux 때문인듯..

[root@serahero vsftpd]# setsebool -P allow_ftpd_full_access=1
[root@serahero vsftpd]# setsebool -P ftp_home_dir=1

을 통해 폴더의 접근을 가능하도록 해줘야 겠다.

Very Secure FTP Daemon Configuration 이라는 GUI 툴도 존재한다. ㅋ..

사용자 삽입 이미지

Tag |

다음 지도-로드뷰 너무 좋다.!

from 잡담 2009/04/04 20:20 view 45065
제주도 로드뷰를 보면서 예전 일들을 생각해 보기도 하면서.. 마치 내가 시간여행을 하는 기분이 든다.


모자이크가 없는 다음 직원분들 ~ 이분들은 정말 재밌네.. ㅋㅋ

제주도-다음직원 분중 개그코드가 있는 두분 ..ㅋㅋ  보러가기

사용자 삽입 이미지

Tag | ,
윈도우에서 듀얼 모니터를 쓸때 윈도우창을 편하게 관리하는 울트라몬을 그놈에서도 따라할수 있었다..
양쪽화면에 실행창을 따로 관리 할 수 있어 편리하다.

Just add a a panel to each monitor you want, and add to that panel a window list. That’s it.

Instructions:
1.) Right click on anywhere on the launchbar, click “New Panel”
2.) Drag that to any monitor.
3.) Right click on that panel, and click “Add to Panel”
4.) Select “Window List” under Desktop and Windows
5.) Click Add.
6.) Click Close, and you’re done.

간단하네-_ㅡ;;

삼성(DB-A75) 컴에 Fedora 10설치

from Info/OS 2009/03/18 14:09 view 35442
새로운 컴에 페도라10 설치 할려고 했더니 ..세상에~ 커널패닉이 발생한다. 아마도 그래픽 쪽 드라이버 문제인듯.

에러발생 : end trace 4eaa2a86a8e2da22

 리눅스 CD 넣고 설치선택 화면에서 TAB키를 눌러서 vm-img 어쩌고 저쩌고 뒤에 한칸띄어서

noapic nolapic acpi=off 를 뒤에 추가한뒤에 설치한다.

xwindow 설치가 아니므로 기본설치 능력이 필요하다.

여기서 wget 을 통해 드라이버를 다운받은 후 http://www.nvidia.com/object/linux_display_ia32_180.29.html
1. wget http://us.download.nvidia.com/XFree86/Linux-x86/180.29/NVIDIA-Linux-x86-180.29-pkg1.run
2. sh NVIDIA-Linux-x86-180.29-pkg1.run
3. /etc/inittab -> id:5:initdefault:


adduser 와 패스워드를 추가해주고 init5 그래픽모드로 다시 재부팅해주면 그놈이 나타남!!

참고링크 : http://forums.virtualbox.org/viewtopic.php?f=3&t=14902&start=0
Tag | ,
현재 페이지는 드래그방지 코드 적용중 테스트 해보기! -_-..파이어폭스는 적용안되다는거..

게시물의 무단 복사를 주로 막기 위해 사용되는 코드이나..하지만 소스보면 다 나온다는거..-_-..
Body 태그의 옵션중 하나로 사용한다.
<body oncontextmenu="return false" onselectstart="return false" ondragstart="return false">

무력화 하거나 이러한 코드를 삭제해주는 툴이 있긴 하다.

알툴바 환경설정-일반- 마우스 오른쪽 버튼 제한 해제하기 옵션을 체크하거나

툴바를 깔기 싫다면..
마우스 우클릭 해제 펌방지 해제 프로그램 YesClick 0.3.2 을 사용하여 해줄수 있다.
인스톨 후 단축키 F9 를 통해 사용할 수 있다.

Bash Shell 단축키

from Info/Tools 2009/03/07 15:00 view 34053
bash shell 에서 제공되는 단축키

참고로 Ctrl + l 같은 경우에 화면을 전부 지워주는 clear와 같은 기능을 하므로 작업효율을 올려준다.
Xwindow 환경이라면
Alt 조합을 사용할 수 있기 위해서..
Edit -> Keyboard Shortcuts... -> F10, Menu Key 를 체크를 풀어주자.



____________CTRL Key Bound_____________
Ctrl + a - Jump to the start of the line
Ctrl + b - Move back a char
Ctrl + c - Terminate the command
Ctrl + d - Delete from under the cursor
Ctrl + e - Jump to the end of the line
Ctrl + f - Move forward a char
Ctrl + k - Delete to EOL
Ctrl + l - Clear the screen
Ctrl + r - Search the history backwards
Ctrl + R - Search the history backwards with multi occurrence
Ctrl + u - Delete backward from cursor
Ctrl + xx - Move between EOL and current cursor position
Ctrl + x @ - Show possible hostname completions
Ctrl + z - Suspend/ Stop the command

____________ALT Key Bound___________
Alt + < - Move to the first line in the history
Alt + > - Move to the last line in the history
Alt + ? - Show current completion list
Alt + * - Insert all possible completions
Alt + / - Attempt to complete filename
Alt + . - Yank last argument to previous command
Alt + b - Move backward
Alt + c - Capitalize the word
Alt + d - Delete word
Alt + f - Move forward
Alt + l - Make word lowercase
Alt + n - Search the history forwards non-incremental
Alt + p - Search the history backwards non-incremental
Alt + r - Recall command
Alt + t - Move words around
Alt + u - Make word uppercase
Alt + back-space - Delete backward from cursor

----------------More Special Keybindings-------------------

Here "2T" means Press TAB twice

$ 2T - All available commands(common)
$ (string)2T - All available commands starting with (string)
$ /2T - Entire directory structure including Hidden one
$ 2T - Only Sub Dirs inside including Hidden one
$ *2T - Only Sub Dirs inside without Hidden one
$ ~2T - All Present Users on system from "/etc/passwd"
$ $2T - All Sys variables
$ @2T - Entries from "/etc/hosts"
$ =2T - Output like ls or dir
Tag | ,