블로그 이미지
progh2
지루한 것에서 벗어나 재미난 것 속으로 풍덩~☆

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Notice

Recent Post

Recent Comment

Archive

2008. 11. 14. 08:47 기술문서창고/windows tip

컴퓨터를 사용하다 보면, 컴퓨터를 특정 시간 후에 종료되게 하는 명령을
내리고 싶을 때가 있습니다. 그럴 때를 위해서 shutdown 이란 명령어가
윈도우에 있습니다. 사실 이 명령어는 리눅스 등 다른 운영체제에도
모두 있습니다. ^^

[시작]->[실행]을 누른 후 입력 창에다 shutdown -s를 입력해주면 됩니다.
옵션 -s를 붙이지 않으면, 도움말이 표시되는데 다른 옵션들에 대해서
알고 싶으시다면 참고하세요.

추가로 유용한 몇 가지 옵션을 알려드리면 다음과 같습니다.

-t 180

시간 지정입니다. 즉 180초 후에 종료하라고 하는 것으로, 이 옵션을 붙이지 않으면
30초 후에 꺼지도록 되어 있습니다.

-c "컴퓨터 꺼집니다~"

종료 메시지 내용을 달 수 있습니다.

저의 경우에는 제가 알바로 하고있는 전산실에서 적용하기위해 다음과 같은
명령을 만들어서 예약을 걸어놓았습니다. =)
저녁 17:57이 되면 다음과 같은 메시지가 뜨면서 종료 카운트가 시작됩니다.
비슷하게 집에서 종종 컴퓨터를 끄고 나가는 것을 잊어버리는 분들도 마찬가지로
시간을 설정해 놓으면 좋겠지요?  

shutdown -s -t 180 -c "전산실은 18:00까지 운영됩니다. 3분 후에 컴퓨터가 종료됩니다!"



 

posted by progh2
2008. 10. 21. 22:09 기술문서창고/windows tip
textupdate인가 updatetext인가 하는 방법을 쓰는 법도 있지만,
여러모로 복잡한 고로 간단히 varchar 필드를 추가한 후, 여기에 text 필드의 값을
넣은 후 이 값을 replace로 치환, 다시 text 필드로 덮어쓰는 script를 만들어 보았습니다.

최근 악성코드때문에 고생하시는 분들은 있는데, 유용히 쓰였으면 좋겠네요.

아래 소스는 authors 라는 테이블에 text 속성인 desc1 칼럼이 있고 이 필드에 있는
<script url='http://'>악성코드</script>' 를 '<br>' 으로 변경할 경우를 가정한 것입니다.
적절히 수정해서 쓰세요~


-- 변수 선언
declare @target_column varchar(100)
declare @replace_source_string varchar(100)
declare @replace_target_string varchar(100)
declare @temp_column varchar(100)
declare @table_name varchar(100)
declare @sql varchar(1000)
declare @temp_column_size varchar(5)
set @temp_column='temp_column'
--//////////////////////////////////////////////
--
-- 경우에 맞게 적절하게 수정해서 사용
--
--//////////////////////////////////////////////
set @table_name='authors'
set @target_column='desc1'
set @replace_source_string='<script url=''''http://''''>악성코드</script>'
set @replace_target_string='<br>'
set @temp_column_size=4000
-- varchar형식의 임시 칼럼 추가
set @sql='alter table ' + @table_name + ' add ' + @temp_column + ' varchar('+ @temp_column_size +');'
exec (@sql)
-- 임시 칼럼으로 데이터 복사
set @sql='update ' + @table_name + ' set ' + @temp_column + '=' + @target_column
exec (@sql)
-- 원하는 문자열 제거
set @sql='update ' + @table_name + ' set ' + @temp_column + '=replace(' +@temp_column + ', ''' + @replace_source_string + ''', ''' + @replace_target_string +''')'
exec (@sql)
-- 임시 칼럼에서 원본 칼럼으로 데이터 덮어쓰기
set @sql='update ' + @table_name + ' set ' +  @target_column + '=' + @temp_column
exec (@sql)
-- 임시칼럼 삭제
set @sql='alter table ' + @table_name + ' drop column ' + @temp_column + ';'
exec (@sql)
-- 결과 조회
set @sql='select * from ' + @table_name;
exec (@sql)

posted by progh2
2008. 9. 18. 00:55 기술문서창고/php

php에서 str_replace()라는 아주 유용한 함수가 있습니다.
문자열을 치환할 때 쓰이는 것으로 매우 자주 사용됩니다.
그런데 mysql 에서 db 작업을 할 때 이런 함수가 필요할 때를 느꼈었는데,
역시 그런 역할을 하는 함수가 있더군요. 그것이 바로 replace()함수입니다.
사용법은 다음과 같습니다.

UPDATE website_content_pages SET content = REPLACE(content,'b>','strong>'); 


출처: http://davidwalsh.name/mysqls-replace-phps-strreplace
posted by progh2
2008. 6. 8. 17:07 기술문서창고
클리앙에서 올라온 질문에 답변한 글입니다.
사실 나름 길게 썼는데 아까워서(...)

ms Access 수업에서 SQL을 좀 배우는데,
SELECT 에 대한 설명을 잘 이해하지 못해서 질문드립니다.

교재에 보면 SELECT structure 를 설명한다 그러면서

SELECT [DISTINCT] column(s)
    FROM table(s)
    [WHERE condition] <general condition>
    [GROUP BY item(s)]
    [HAVING condition] <group condition>
    [ORDER BY columns] <sorting option>

이라고 써 있습니다.
근데 저는 DISTINCT도,, column도 나머지 행들도 무슨 소린지 잘 모르겠습니다 ㅠ_
교수님이 만드신 교재라 설명이 제대로 된 부분도 없구요 ;;

혹시 대강이라도 설명해 주실 수 있는 분이 계실까요?

대강 설명을 하면 select는 db table에서 어떤 자료를 빼와라! 하는 명령입니다.
"어이, 전화번호부에서 짜장면집 전화번호 좀 가져와라~" 같은 것이지요.

[]는 추가적인 옵션입니다.
<>는 []를 사용하면 추가적으로 넣어줘야 하는 조건입니다.

예를 들어 앞의 짜장면집 전화번호.. 라고 하면
select 짜장면집이름, 전화번호 from 전화번호부
같이 되겠지요.

그런데 이렇게 하면 전국의 짜장면집-_- 전화번호가 나열되겠죠?
그럴 때 쓰는 옵션이 where 입니다.
사용법은where 지역="종로구" 같이 사용합니다. 즉
select 짜장면집이름, 전화번호 from 전화번호부 where 지역="종로구"
가 됩니다.

그런데 그냥 가져오기 하면.. 미리 설정된 특정 컬럼(=필드)의 순서대로 자료를
가져오게 됩니다. 그런데 나는 짜장면집 이름순서대로 보고 싶습니다.
그때 사용하는 것이 order by 입니다.
사용법은 order by 짜장면집이름 ASC
이렇게 하면 가나다,abc 같이 순서대로 정렬해서 가져옵니다.
ASC 대신 DESC 를 넣으면 역순으로 가져오고요. 그래서
select 짜장면집이름, 전화번호 from 전화번호부
where 지역="종로구" order by 짜장면집이름 ASC
라고 하면 종로구 지역에 있는 짜장면집 이름과 전화번호를
짜장면집이름 순서대로 정렬해서 가져와라! 가 됩니다.

그런데 어떤 이유로 해서 짜장면집 이름만 가져와 보기로 했다고 합시다.
그래서 select 짜장면집이름 from 전화번호부
where 지역="종로구" order by 짜장면집이름
라고 했더니만, 어이쿠.. 홍콩반점이 10개나 나오는 둥 같은 이름이 잔뜩
나와서 괴롭습니다. 이걸 하나하나 지우기도 귀찮고..
이걸 해결해주는 옵션이 distinct 입니다. 즉 가져오는 결과가 같은 것들이
여럿 있으면 하나만 남기고 지워줍니다. (앞에서처럼 이름과 전화번호가
같이 있는 상태면 전화번호는 다를 것이기에 소용이 없겠죠?)
select distinct 짜장면집이름 from 전화번호부
where 지역="종로구" order by 짜장면집이름 ASC
이러면 깔끔하게 짜장면집 이름들만 중봅없이 가져오게 됩니다.

group by 는 특정 필드 기준으로 나눠서 출력해줍니다.
예를 들어서 앞에서처럼 각 지역마다 존재하는 짜장면집이름을
가져오게 하고 싶다고 합시다.
그러면 group by 지역 이라 해주면 지역별로 출력해줍니다.
select distinct 짜장면집이름 from 전화번호부
order by 짜장면집이름 ASC
group by 지역

그런데 지역 중에서 종로구와 구로구만 가져와서 보고 싶습니다.
이럴 때 group by에 조건을 거는 것이(즉 group by에 대한 where 역할)
having 입니다.
select distinct 짜장면집이름 from 전화번호부
order by 짜장면집이름 ASC
group by 지역
having 지역 = "종로구" or 지역="구로구"

대강 써봤지만.. 역시 책을 보고 실습하시면서 익히시는게
최고일 것 같네요.. ^^;

posted by progh2
2007. 3. 17. 23:52 기술문서창고
위키피디아에 있는 MEncoder에 대한 내용:
http://en.wikipedia.org/wiki/MEncoder

그리고 저 링크 하단에 보면 젠투리눅스 사이트에 있는 가이드를 볼 수 있는데,
후에 리눅스 서버 등에서 쉘스크립트의 조합으로 알아서 인코딩 하게 한다던가 할 때
사용하면 매우 유용할 것 같습니다.

제 조디악 PDA에 파워포트 개조를 해서 시간의 압박에서 벗어나게 되었거든요. =D
이젠 PMP 부럽지 않습니다. 후후후.
알바 구하게되면 4기가짜리 SD도 추가해서 넉넉히 가지고 보고 다녀야..겠지만
제 좌절에 가까운 경제 능력으로는 알바를 구할 수 있을지.. 모르겠습니다. 휴..
posted by progh2
2006. 2. 27. 12:23 기술문서창고
몇 가지 유용한 질답
Q
TCP/IP를 사용할 때 어떤 TCP와 UDP 포트가 NetBIOS를 제공하는가?
A
NBT 이름 서비스는 Port 137/udp를 사용한다. NBT 세션 서비스는 port 139/tcp를 사용하고, NBT 데이터그램 서비스는 port 138/udp를 사용한다.

Q
NetBIOS RFC를 어디에서 찾을 수 있는가?
A
RFC 1001과 1002의 ASCII 버전은 (..중략..) IETF의 웹사이트(http://www.ietf.org)에서도 다운로드할 수 있다.

Q
SMB 프로토콜에 대한 자세한 정보는 어디서 찾을 수 있는가?
A
Microsoft는 SMB(예를 들어, CIFS) 프로토콜을 강력히 지원 중이다.(이유는 명백하다) SMB의 링크와 정보를 찾으려면 http://www.microsoft.com/workshop/networking/cifs 를 방문한다. --> 이 URL는 이제 존재하지 않고, http://www.microsoft.com/mind/1196/cifs.asp 가 대신함.(progh2 曰)

smb.conf 설정 예시.
(프린터 관련 설정은 프린터를 분리해놓은 관계로 작동여부를 알 수 없음)
(그 외 설정은 기본 설정을 따른다. 즉 이것만으로는 돌아갈지는 의문.)
[global]
dos charset = cp949
unix charset = euc-kr

netbios name = TARHO
workgroup = WORKGROUP

invalid users = root
security = user


load printers = yes
; printing = bsd
; printcap name = /etc/printcap

; printing = cpus
; printcap name = cups

[home]
comment = 개인폴더
path = %H
browsealbe = no
writeable = yes
valid users = %S
locking = no
create mode = 0755
directory mode = 0755

[family]
comment = 가족공유폴더
path = /home/samba/family
writeable = yes
valid users = +family
locking = yes
create mode = 0660
directory mode = 0770
force group = family

;[printers]
; comment = 공유프린터
; printable = yes
; writeable = no
; valid users = +family
; path = /var/spool/samba
; path = /var/spool/cups

;[cdrom]
; comment = Samba server's CD-ROM
; browsable = yes
; writable = no
; read only = yes
; locking = no
; path = /mnt/cdrom
; public = yes
; preexec = /bin/mount /cdrom
; postexec = /bin/umount /cdrom

고민해봐야할 문제
+ 외부에서의 접속문제 - 과서버와의 테스트를 했었는데 어쩌면 학교 방화벽에서 막아버렸을 수도 있음 -_-;
+ 프린터의 진행상황을 클라이언트에서 볼 수 있게하기
+ ntlogin 서버로의 활용이 필요가 있을까 고민해보기 - 바탕화면 복사 등의 압박때문에 아마도 쓰기 힘들듯 -_-;
posted by progh2
2006. 2. 27. 01:22 기술문서창고/windows tip

1. 접근한 윈도우의 네트워크 설정
+ TCP/IP 네트워크 프로토콜 설치 (필수)

- NetBEUI 프로토콜과 NWLink IPX/SPX 프로토콜 삭제
(네트워크 혼란을 방지하기 위한 것으로 옵션.
특히 xp에는 IPX/SPX 프로토콜이 기본으로 설치되어 있지 않음.)

+ Client for Microsoft Networks 설치 (필수)
(TCP/IP 위에서 삼바에 접근하기 위한 Client. )

2. 연결하기
cmd에서 연결
cmd창에서 다음과 같은 형식으로 명령을 실행하면 된다.

== user 설정으로 되어있는 경우 ==
*개인 계정을 드라이브로 연결
net use 드라이브: \\호스트\아이디 /user:아이디 암호
예) net use h: \\192.168.1.3\iamuser /user:iamuser iampasswd
id가 iamuser이고 암호가 iampasswd인 사용자의 겨우.

* 공유(public = yes) 설정된 폴더를 드라이브로 연결
net use s: \\tarho\share /user:아이디 암호

== share 설정으로 되어있는 경우 ==
간단하다. 아이디, 암호 없이 연결하면 됨.

net use 드라이브: \\호스트\폴더이름
예) net use p: \\192.168.1.3\public
p:로 192.168.1.3서버의 public이란 폴더를 연결하는 경우.

3. 연결상황보기
net use

4. 연결해제
net use /d 드라이브:
예) net use /d s:
s:로 연결된 공유드라이브 해제

5. 영구연결설정
/persistent:yes 또는 /persistent:no 라는 옵션을 붙이면 영구연결/해제가 가능하다.
이 뜻은 윈도우를 부팅할 때 자동으로 연결하는지를 뜻하며 기본적으로는 NO로 되어있다.
단, 암호가 설정되어있다면 이 옵션이 켜져있어도 자동으로 암호가 입력되는 등의 작업이 자동으로 되지는 않는다. 즉, 이 옵션은 "연결 시도"만 할뿐, 암호입력은 별개의 것이다. 파일탐색기를 보면 알 수 있지만 드라이브명이 떠있기는 하지만 클릭해보면 암호를 입력하라고 뜬다. 이때 입력해주면 된다.

6. 프린터연결
net use LPTn: \\호스트\프린터이름
예) net use LPT1: \\192.168.1.3\HP810C
posted by progh2
2006. 1. 1. 21:09 기술문서창고/php
네. 얼마전에 테터리더에 utf-8 rss를 가져오는 소스 수정에 대해 글을 올렸습니다만, 테터툴즈 1.0 클래식 RC가 나오면서 필요가 없어졌습니다. 자동으로 utf-8인지를 감별, 처리하는 기능이 리더에 추가되었으니까요. ^^

그래서 제거하는 방법에 대해서 간단히 이야기 하고자 합니다.

일단 클래식으로 테터툴즈를 업그레이드 하신 후...

utf8rss.php파일을 삭제하거나 다른 이름으로 바꿉니다.
(저는 다른 이름으로 변경하였습니다.)

그런 후 "연결된 블로그 글 수집하기"를 합니다.
그러면 소스수정을 해서 구독하던 블로그 주소들은 글을 가져오질 못합니다
(왜냐면 방금 utf-8rss.php 파일의 이름을 바꿨으니까. ^^;)

따라서 이제 리더주소록에 가보면 왼쪽 아이콘 중 회색으로 된 녀석들이
보이는데, 이 녀석들의 주소를 수정해주면 됩니다.
예를들어 interlude님 블로그 주소의 경우
http://progh2.net/cgi-bin/tt/utf8rss.php?uri=http://interlude.pe.kr/tt/index.xml
이렇게 되어있는 것을
http://interlude.pe.kr/tt/index.xml
이렇게 앞부분을 떼내어주면 되는 것입니다. 그런 후 "정보 가져오기" 버튼을 클릭하면
제대로 정보를 가져오는 것을 알 수 있습니다. =)

이제 이 블로그도 utf-8 체제입니다. 헤헷~ ☆
posted by progh2