마이크로소프트의 도움말 사이트 http://support.microsoft.com/?id=322090
[web page]Computer Vision
computer vision에 대한 open source가 있다. 그 대표적인 것이 openCV(open source computer vision)이다.
openCV : http://opencv.willowgarage.com/wiki/
이를 C#, VB.Net, VC++, IronPython 등에서도 사용할 수 있도록 랩퍼를 만든 것이 있다.
EmguCV : http://www.emgu.com/wiki/index.php/Emgu_CV
OpenCVDotNet : http://code.google.com/p/opencvdotnet/
SharperCV : http://www.cs.ru.ac.za/research/groups/SharperCV/
Code Project : http://www.codeproject.com/KB/cs/Intel_OpenCV.aspx
[VBA]VBA에서 엑셀함수 사용하기
엑셀 함수는 VBA 함수보다 훨씬 다양한 분야에 많은 함수들을 보유하고 있다.
앞서 살펴본 것처럼, 삼각함수 분야에도 많은 역함수를 보유하고 있다. 더군다나 스프레드시트 프로그램으로서 당연히 갖추어야 하는 함수도 많이 보유하고 있다. 예를 들면 다음과 같다.
1 2 3 4 |
area = Application.WorksheetFunction.Pi * radius ^ 2 a = Application.WorksheetFunction.Acos(b) Set myRange = Application.Worksheets("Sheet1").Range("C1:C60") mySum = Application.WorksheetFunction.Sum(myRange) |
첫줄은 원주율을 참조한 것이고, 둘째줄은 코사인 역함수를 호출하여 사용한 것이다.
셋째줄은 워크시트 내의 특정범위를 설정한 것이며, 네째줄에서 이 범위에 대한 합을 엑셀함수를 이용하여 구했다.
또 다른 방법으로는 Evaluate 메소드를 사용하는 것이다.
1 |
mySum = Evaluate("=Sum(C1:C60)") |
[VB6, VBA]삼각함수의 역함수(ArcSin, ArcCos) 작성
앞서 기술한 것처럼, 비주얼베이직6.0과 VBA에는 삼각함수의 역함수인 ArcSin()과 ArcCos()이 없다. 대신 Atn()만 있다.
도움말을 보면 다음과 같이 작성하라고 안내하고 있다.
1 2 |
역 사인 (ArcSin(x)) = Atn(x / sqr(-x * x + 1)) 역 코사인 (ArcCos(x)) = Atn(-x / sqr(-x * x + 1)) + 2 * Atn(1) |
이대로 하면 분모가 0이 되는 경우에 대한 대책뿐만 아니라, x가 -1<=x<=1 범위를 벗어날 경우에 대한 대책이 없다.
특히, 부동소수계산을 하다보면 정확하게 -1 또는 1이 되지 않고, -1.0000000** 또는 1.000000**가 되는 경우가 발생한다. 이에 대한 대책이 필요하다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Function ArcSin(ByVal x As Double) As Double If Abs(Fix(x)) <> 1 Then ‘-1=2 일때는 오류 발생 ArcSin = Atn(x / Sqr(-x * x + 1)) Else ‘ Abs(Fix(x)) = 1일 때 즉 -2 1 ArcSin = Sgn(x) * Atn(1) * 2 End Function Function ArcCos(ByVal x As Double) As Double If Abs(Fix(x)) <> 1 Then 'If (-1 < x) And (x < 1) Then ArcCos = Atn(-x / Sqr(-x * x + 1)) + 2 * Atn(1) Else If x > 0 Then 'Fix(x)=1일 때 ArcCos = 0: Exit Function ElseIf x < 0 Then 'Fix(x)=-1일 때 ArcCos = Atn(1) * 4: Exit Function End If End If End Function |
FYI
ArcSin, ArcCos을 작성한 이유 : 태양기하학에서는 태양의 방위각과 고도를 계산하는 과정에서 삼각함수를 많이 사용한다. 1보다 작은 값들로 사칙연산을 하다보면, 부동소수가 정상 범위를 벗어나는 경우가 생긴다. 이런 오류를 사전에 방지하기 위해서 작성하였다.
태양의 고도를 계산하는 공식은 다음과 같다.
따라서,
- h (태양의 고도) : -90° ~ +90°
- δ (태양의 적위) : -23.5° ~ +23.5°
- L (위도) : -90° ~ +90° (남극 ~ 북극)
- H (시각) : -180° ~ +180° (00시는 -180°, 06시는 -90°, 12시는 0°, 18시는 +90°, 24시는 +180°)
태양 방위각 은 다음과 같은 공식으로 구한다.
삼각함수 비교
삼각함수 비교
설명 | Excel | VBA | VB6 | VB.NET | 비고 | |
---|---|---|---|---|---|---|
sin | 사인함수 | Sin | Sin | Sin | Sin | |
cos | 코사인함수 | Cos | Cos | Cos | Cos | |
tan | 탄젠트함수 | Tan | Tan | Tan | Tan | |
arcsin | 사인역함수 | Asin | – | – | Asin | |
arccos | 코사인역함수 | Acos | – | – | Acos | |
arctan | 탄젠트역함수 | AtanAtan2 | Atn | Atn | AtanAtan2 | |
sinh | 하이퍼볼릭사인함수 | Sinh | – | – | Sinh | |
cosh | 하이퍼볼릭코사인함수 | Cosh | – | – | Cosh | |
tanh | 하이퍼볼릭탄젠트함수 | Tanh | – | – | Tanh | |
arcsinh | 하이퍼볼릭사인역함수 | Asinh | – | – | – | |
arccosh | 하이퍼볼릭코사인역함수 | Acosh | – | – | – | |
arctanh | 하이퍼볼릭탄젠트역함수 | Atanh | – | – | – |
이상에서 보듯 VB6와 VBA로 프로그래밍을 하고자 하면, 삼각함수의 역함수를 작성해야 한다.
만약 VBA에서 새로 역함수를 작성하지 않고, 엑셀함수를 사용하고자 한다면 다음과 같이 하면 된다.
1 2 |
area = WorksheetFunction.Pi * radius ^ 2 a = WorksheetFunction.Acos(b) |
특허 정보 검색
특허 정보 검색은 다음과 같은 웹사이트에서 가능하다.
한국 특허 정보원 www.kipi.or.kr
특허정보조사서비스 www.forx.org
미국 특허청 www.uspto.gov
일본 특허청 www.jpo.go.jp
유럽공동체 특허청 www.epo.co.at
WPA – PSK (Wi – Fi Protected Access – Pre Shared Key)의 사용 배경, 동작 원리
WPA – PSK (Wi – Fi Protected Access – Pre Shared Key)의 사용 배경, 동작 원리
기존의 WEP 암호화 방식은 취약한 보안으로 인해 기업환경에서는 거의 사용이 불가능해진 상태입니다. WEP 알고리즘은 IV(Initialization Vector)의 평문전송, 키 스트림의 단순성, 고정키 사용에 따른 RC4 키 갱신 부재 등으로 인해 키 길이에 상관없이 그 보안기능이 취약하다고 판명되었습니다.
사용자들이 WEP
사용에 인색한 이유는, 대부분의 무선랜 제품들이 “WEP 사용안함”을 기본 설정으로 출고 되기 때문에, 사용자들 역시 이 기능을
“사용함”으로 설정하는걸 잊은채(혹은 귀찮아서) 그냥 내버려 둔다는게 첫 번째이며, 두 번째는 WEP 설정시 연결이 잘
안된다거나, 초보자들의 경우 여러가지 옵션(ASCII, Hexadecimal, PassPhrase등)이나 키 입력 과정의
복잡함(?)이 그 이유였습니다.
WPA는 옵션이나 키 입력의 방식이 WEP방식 보다 간단하여 설정하기 더욱 편리해 졌습니다.
WPA는, 대칭벡터(IV : Initialization Vector)라 불리는 WEP 헤더의 취약점(고정 암호키 방식)을 해결하기 위해 그 대응책으로 개발되었습니다.
데이터 암호화를 강화하기 위해 TKIP(Temporal Key Integrity Protocol)과 AES(Advanced Encryption Standard)라는 IEEE 802.11i 보안 표준을 사용합니다.
TKIP(Temporal Key Integrity Protocol)은 순서 규칙이 있는 48
비트 초기화 벡터(WEP에서는 24비트 초기화 벡터)를 이용하는데, 이것은 키 재사용 및 재생 공격을 방지해 줍니다. 또한
WEP 취약 키 공격을 막아주는 패킷 당 키 혼합 기능과, 패킷 위조 공격을 막아주는 암호 체크섬 키 기능이 있습니다.
AES(Advanced Encryption Standard)는 128,
192, 256 비트 등의 가변 키 크기를 가지는 수학적 암호화 알고리즘을 사용합니다. 암호화된 데이터는 AES 알고리즘의 키
없이 원래 데이터로 되돌리기가 거의 불가능하기 때문에 타인이 데이터를 송신하는 전파를 수신하더라도 기밀이 유출되는 사태를 막을
수 있습니다.
즉, 무선 통신상의 전송내용을 암호화하는 암호키가 기존 WEP에서는 고정되어 있던 것과 달리, WPA는 암호키를 특정 시간이나 일정 크기의 패킷 전송 후에 자동으로 변경시키기 때문에 해킹이 불가능하다는 것입니다. 또한, 암호키 생성 진행과정이 매우 정교하고 키 갱신이 매우 신속하게 이루어지기 때문에, 암호를 해독하기 위한 충분한 데이터를 모으기가 불가능합니다.
시스템 성능에 영향을 주지 않으며 소프트웨어 업그레이드를 통해 이용 가능 하여 SOHO 사용자들에겐 WPA-PSK라는 특정 모드로, 기업과 같이 인증서버 없이도 강력한 보안을 제공합니다.
종합해 보면 인증 방법들의 보안성의 우수한 순위가 다음과 같이 정리 됩니다.
오픈 시스템(WEP사용안함) < 쉐어드 키 인증 < 오픈 시스템(WEP사용함) < WPA – PSK
LG070 인터넷 전화 설정
LG070 인터넷 전화 설정
– 유무선공유기 접속 ip : 192.168.123.254
– 한 개의 유선 포트(192.168.123.101)와 여러 개의 무선 포트가 가능함
VB.NET Tutorial
Visual Basic .NET에 대한 설명서가 잘 정리된 웹페이지를 소개한다.
http://www.java2s.com/Tutorial/VB/CatalogVB.htm
키워드(keyword) 별로 어떻게 쓰이는지 알고 싶다면, 꼭 한 번 들를만 하다.
또한, 비주얼베이직 닷넷 말고 지구상에 존재하는 웬만한 프로그래밍 언어에 대한 설명서도 함께 있다. 여기서는 비주얼 베이직 닷넷만 연결해 놓은 것이다. 왜? 이 홈피의 주관심사여서. ^^
윈도우XP 자동 로그인
- 시작 – 실행에서 control userpasswords2를 입력하고 실행한다.
- “사용자 이름과 암호를 입력해야 이 컴퓨터를 사용할 수 있음”의 체크를 해제한다.
- ‘확인’버튼을 누르면 아이디와 암호를 입력하는 창이 나타난다.
- 다음 부팅부터는 그 아이디로 자동로그인이 된다.
- 자동로그인을 해제할려면 “사용자 이름과 암호를 입력해야 이 컴퓨터를 사용할 수 있음”에 체크를 해주면 된다.