'Hengki's Program/ETC'에 해당되는 글 5건
- 2011/10/18 :: 01. XpressEngine 개발환경 만들기
- 2010/06/24 :: [PROGRAM] 어떤 언어를 배워야 할까요? (2)
- 2010/04/08 :: [ALGORITHM] 개미 최적화 알고리즘
- 2009/06/09 :: 컴공 친구의 avr 도전기 - 1 (2)
- 2009/05/11 :: html 액션정리
[1] 서론
보통 XpressEngine(이하 XE)에 무슨 개발환경이 필요해!! 라는 생각을 할것입니다. 저도 마찬가지 입니다. 메모장이든 에디트 플러스든 울트라 에디터든 많은 텍스트 에디터 에서 HTML, CSS, JAVASCRIPT 만 수정하면 됩니다. 근데 왠 XE에 개발환경 세팅을 운운 하는것일까요? ㅎㅎ 아무 이유 없습니다. 그냥 이런식으로 하면 좀더 편하게 개발할수 있겠다 라고 생각했습니다.
[2] 요약
이클립스로 HTML, CSS, JAVASCRIPT 개발.
1. JDK 설치
2. 이클립스 설치
3. 이클립스FTP 플러그인
4. 개발 화면 설정
[3] 설치
1. JDK 설치
이클립스를 실행 하기 위해서는 JDK 또는 JRE가 필요합니다.
- JRE 다운로드 사이트 이동 ( http://java.com/ko/download/manual.jsp )
- 자신 사양에 맞는 JRE를 다운 받습니다. (64bit 에서 32bit 설치하면 이클립스가 제대로 동작하지 않습니다.)
- 다운로드한 파일을 실행하여 다음다음 누르시면 설치가 완료됨니다. ( C:\Program Files\Java\jre6 )
2. 이클립스설치
이클립스는 설치 프로그램이 아닌 포터플(설치불필요)프로그램 입니다. 이클립스 사이트에서 바로 다운 받습니다.
- 이클립스 다운로드 사이트 이동 ( http://www.eclipse.org/downloads/ )
- Eclipse IDE for JavaScript Web Developers 다운 (32bit/64bit 자신에 알맞는 버전 선택)
- 추천하는 미러사이트에서 다운
- 압축 해제 (이클립스는 무설치 프로그램입니다.)
- 실행 (eclipse.exe 실행)
3. 이클립스 플러그인 설치
주로 XE프로그램은 FTP 상에서 개발을 하기 때문에 FTP연동이 필요합니다. Aptana 프러그인을 설치하여 FTP를 사용할수 있도록 하겠습니다. (굳이 이클립스를 설치하지 않고 http://www.aptana.com/ 에서 aptana를 설치하셔도 됩니다.)
- Help > Install New Software... 선택
- Work with 에 ( http://download.aptana.com/tools/studio/plugin/install/studio ) 를 넣은후 Add
- Add Repository 창이 뜨면 Name를 입력한후 OK
- Name 에서 체크박스를 모두 선택후 Next
- Next 클릭
- I accept the ~ 체크후 Next - 프로그램 설치 (2~3분이면 끝나요.)
- 설치후 이클립스 재시작
4. 개발 화면 설정
XE를 개발하기 편한 화면으로 설정해 보도록 하겠습니다.
- 오른쪽 상단의 JavaScript 옆의 창모양아이콘 클릭 > Other... 클릭
- Aptana Web 선택후 OK!
- 화면이 바뀌는걸 볼수 있습니다.
- 왼쪽 바의 FTP에서 FTP를 추가할수 있습니다.
- FTP를 설정
- FTP를 설정하시면 아래와 같이 서버환경에서 작업 가능합니다.
게임이나 Win32어플리케이션 등 : C++, MFC
MIS나 간단한 윈도우어플리케이션개발 : C#
UNIX기반, 웹기반의 MIS 분야 : Java
아이폰어플개발 : ObjectiveC
안드로이드어플개발 : Java
출처 : 훈스닷넷
Ant Colony Algorithm(ACO)
개미 알고리즘(Ant algorithm)은 실제 개미들이 먹이까지 가장 짧은 경로를 찾는 것을 모방한 알고리즘입니다. 이
알고리은 1992년 Dorigo에 의해 처음 제안되었습니다. 개미들은 어떻게 가장 짧은 경로를 찾게 되는 것일까요? 다음과 같은
예제를 통해 살펴보겠습니다.

-
어떤 개미가 (a) 라는 길을 열심히 돌아다니다가 음식 (F)를 찾게 됩니다. 그 후 <그림1>과 같이 둥지로 돌아오는 경로 (b)에다가 페로몬으로 흔적을 남기면서 돌아옵니다.
-
이 어떤 개미는 한 마리가 아니었고 4마리 정도가 동시에 둥지에 도착해서 <그림2> 번과 같이 여러 개의 길을 찾게 되었습니다. 이중에는 먹이까지 긴 길도 있고 짧은 길도 있게 됩니다.. 그러나 페로몬의 특성상 길에 남겨진 페로몬은 시간이 지날수록 그 향이 희미해진다.
-
경로가 길게 되면 개미들이 흔적을 남기는 시간도 길어지게 되며 자연적으로 긴 경로에는 상대적으로 페로몬 향이 옅어 지게 됩니다.
-
개미들은 여러 경로 중 페로몬 향이 강한 길을 선택해서 움직입니다.
-
짧은 길일 수록 개미들의 왕래가 잦아지면서 페로몬 향기는 짙어집니다.
-
결국 <그림3>과 같이 개미들은 가장 짧은 경로로 먹이를 운반하게 됩니다.
Ant 알고리즘은 최적의 경로를 선택합니다. 우리는 이 경로를 Edge 로 정의하고 Edge 끝은 Node 로 정의 합니다.
정리하면 다음과 같습니다.

Ant 알고리즘은 페로몬의 향기 정도를 다음과 같은 확률계산식으로 계산합니다.

이 식에서 τi,j 는 edgei,j 의 페로몬의 양을 나타냅니다. α는 τi,j 의 값을 컨트롤 하는 파라미터 값입니다.
ηi,j 는 edgei,j 에 대한 가중치를 나타내며 보통 노드 사이의 거리에 반비례하는 값입니다.
β는 ηi,j 의 값을 컨트롤 하는 파라미터 값입니다.
Ant 알고리즘에서 개미는 이 확률 값을 통해 경로를 선택하게 됩니다.
다음은 페로몬 업데이트 공식을 살펴 보겠습니다.
τi,j = (1 − ρ)τi,j + Δτi,j
ρ 값은 페로몬의 증발 비율을 나타냅니다. Δτi,j
는 새로이 추가되는 양을 나타내며 다음과 같이 정의됩니다.
![]()
Lk
는 노드 사이의 거리로 볼 수 있습니다.
Ant 알고리즘은 TSP 문제에 적용시킬 때 좋은 예가 됩니다.
TSP는 판매원이 집에서 출발하여 모든 고개들의 도시에 방문하고 다시 집에 돌아오는 최단 경로를 찾는 문제 입니다.
이 문제에는 다음과 같은 전제 조건이 있다.
-
매판원의 집도 도시로 취급한다.
-
모든 도시들은 서로 연결되어 있다.
-
모든 도시들은 한번씩만 거쳐야 한다.
-
모든 도시들을 거친뒤 다시 매판원의 집으로 돌아와야 한다.
이 전제 조건을 고려하여 TSP를 구하는 Pseudocode 를 작성하면 다음과 같습니다.
Start Node : Each ant is initially put on a ramdomly chosen
start city
While(all ants don’t pass by every nodes)
while(an ant
don’t pass by every nodes)
ant←getNextMovableNode()
ant←chooseNextNode()
end-while
Arc←updatePheromone(ant’s
path)
End-while
개미는 처음에 랜덤하게 시작 노드를 정해 위치시킵니다.
페로몬을 업데이트 할 때는 짧은 경로일수록 가중치를 주기 위해서 경로의 길이가 짧을수록 페로몬이 증발량을 작게 합니다.
모든 개미가 모든 노드를 거치게 되면 프로그램이 종료하게 됩니다.
TSP의 결과는 프로그램이 종료된 후 그래프의 각 arc(경로)에 남아있는 페로몬의 수치가 높은 순으로 선택하면 앞의 그림처럼 하나의 루프가 형성된다.
이것은 곧 TSP의 최적의 해가 됩니다.
이러한 NP 문제를 해결하는 이외에도 ACO 알고리즘은 네트워크 분야, 유전학 분야, 검색 분야 등 다양한 곳에 적용 될 수 있습니다.
출처 : http://ant.blackun.com/ant (전북대학교 개미 최적화 알고리즘)
- ATmeaga128 보드 (ATMK-128V1 개발 KIT - Atmega128,uC/os-II RTOS)
- isp
- 기타 잡다한 것들..
AVR의 ISP(In system programing)의 기능은 일단 가장 중요한 것은 Flash에 사용자가 작성한 Code를 Write해주는게 가장 중요한 기능이겠죠. 실제 C언어로 코딩을 하게 되면 Hex파일과 어셈으로 변환되고 Flash의 App 영역에 들어가게 됩니다. (Boot 영역이 아닌것에 주의 -> 물론 부트로더도 사용자가 변경하여 올릴 수 있죠) AVR에서 ISP 기능은 SPI통신 방식을 이용하게 되는데요.. SPI는 보통 Chip끼리의 1:1 통신에서 사용되는 방식입니다.
MOSI(Master Output Slave Input)
SCK(동기 클럭신호)
SS(Select Slave)
출처 :네이버 지식인
onblur- element가 포커스를 잃었을때
onchange - 필드의 내용이 변경되었을때
onclick - 객체를 마우스 클릭했을때
ondbclick - 객체를 마우스 더블클릭했을때
onerror - 문서나 이미지가 로딩될때 에러가 발생했을때
onfoucs - element가 포커스를 얻었을때
onkeydown - 키보드의 키를 눌렀을때
onkeypress - 키보드의 키를 누르거나 놓았을때
onkeyup - 키도브 키를 놓았을때
onload - 페이지 또는 이미지의 로딩이 끝났을때
onmousedown - 마우스 버튼을 눌렀을때
onmousemove - 마우스를 움직일때
onmouseout - 마우스가 element를 벗어났을때
onmouseover - 마우스를 element위로 이동할때
onmouseup - 마우스버튼을 놓았을때
onreset - 리셋버튼을 클릭했을때
onresize - 윈도우 또는 프레임이 크기가 변했을때
onselect - text가 선택되었을때
onsubmit - submit 버튼을 클릭했을때
onunload - 사용자가 페이지를 나갈때