카테고리 없음2016. 4. 12. 16:31


삶이정말 짧단걸 깨닫고 있습니다.

원칙을 깨버리는 것이 좋겠습니다.

용서는 빠르게 사랑은 진심으로 웃음은 미친듯이

자신을 미소짓게 만들었던것에 대해 후회하지 마십시오.

인생은 한순간에 나락으로 떨어질수 있고

갑자기 멈추게 될지도 모릅니다.

​그러니 현재 살아있는 동안에 최대한 행복하게

하루하루를 보내는 것이 좋을것 같습니다.

싸우고 남을 공격하고 그러지 말고

본인을 위해서 즐겁게 살아야 합니다.

나중에 후회하지 말고 가족이나 친구들에게 잘해주고

최대한 정직하고 남에게 폐 끼치지 말고 그렇게

살아가면 되는 것입니다.

일을 할땐 열성을 다해서 사랑할땐 뜨거운 심장을

가지고 쉴때는 머리를 비운채 편안하게

먹을땐 너무나도 맛있게 놀때는 미친듯이

그렇게 살면 됩니다.

항상 잘해야 된다는 부담도 가지지 마세요.

인간이기 때문에 항상 잘할순 없습니다.

오늘이 마지막이다 라고 생각하고

에너지를 발산해보도록 하세요.


Posted by NullBr4in
프로젝트/기타2013. 11. 8. 17:11


picpick 설정 변경 간편화 프로그램 프로젝트

 

* 목차

 1. 개요

 2. 기능

 3. 디자인

 4. 프로그램 동작 원리

 5. picpick 정보

 

1. 개요

- 목표        : 단축키를 통해 자동 저장될 파일 이름과 디렉터리를 손쉽게 설정하여 효율적인 작업환경 구축

- 이유        : 많은 양을 캡쳐했을 때 어떤 스크린샷이 어떤건지 일일이 확인 후 이름 변경이 비효율적

                  매번 "파일 > 환경설정 > 파일이름, 자동저장 > 파일 이름 지정, 자동저장 옵션 On, 디렉터리 지정" 을 해야함

- 기간        : 2013-11-08 ~ 2013-11-08

- 개발 언어: MFC 예정

 

2. 기능

- 설정파일 내용 수정

- 전역 단축키(파일 이름, 디렉터리 이름 지정)

(참고 : https://docs.google.com/document/d/16KmANksvRnoPe52sdABpp9qDbV68JTM9sP-_J26VAgw/edit)

- 설정 복원 기능(프로그램 종료 시)

 

3. 디자인

- 다이얼로그

 + 파일 이름 입력 : 기존의 값을 가져와서 텍스트박스에 뿌려주고 포커싱을 맞춰서 전체 선택 상태로 띄워서 "확인", "취소" 버튼이 달린

팝업창으로.

 + 디렉터리 이름 입력 : 위와 동일

 

- 프로그램 형태

 + 트레이 아이콘 형식으로 존재

 + 옵션은. 프로그램 정보, 설정(ini파일 위치가 다를 경우), 종료

 

- 프로그램 정보에 들어갈 내용

 + 개발자 정보

 + 단축키 설명

 + 프로그램 종료 시 프로그램 설치 전으로 백업되는것을 명시

 

4. 프로그램 동작 원리

- picpick 설정 파일을 변조

 + picpick 은 캡쳐할 때마다 설정파일 내용을 가져옴

 + 설정 파일만 변경해주면 자동으로 적용됨

 

5. picpick 정보

- picpick 설정 파일 위치

 + %homeprofile%\AppData\Roaming\picpick\picpick.ini

 

- 설정 파일 정보

 + AutoSaveText3="자동저장될 문자열" // 자동 저장될 파일 이름

 + UseAutoSave=1 // 1은 On, 0은 Off // 자동 저장 옵션

 + UseSaveFolder=C:\~~~ // 자동 저장될 디렉터리 이름 및 경로

 

끝.

Posted by NullBr4in
Programming/Python2012. 10. 26. 10:13


학교 중간고사 시즌입니다.

"정보 검색"이란 과목은 중간고사 대신 프로젝트 제출로 하라고 하셔서

한번 만들어 봤습니다.

 

프로그래밍 언어에 조건이 없어서

이전에 해보고 싶어하던 파이썬을 이용해서 만들어 보았습니다.

 

더 라인 수를 줄일 수 있을 것 같은데...

파이썬으로 처음 만들어본 소스다 보니...ㅠㅠ

 

-----------------Information search - midterm project---------------

 

***Project: Extract the words from a set of text****

example:
The South Korean government is
on of the leading countries in Asia.
It is a government that makes
other countries strive hard.

the - 2
south - 1
korean - 1
government -2
is - 2
------
***

--------------------------------------------------------------------

 

아래는 코드..

--------------------------- 07050053_midterm.py --------------------

import os
str = raw_input("in :")
str2 = str.lower()
str3 = str2.split()
for word in str3:
 print "%s - %d"%(word,str3.count(word))
 for q in range(str3.count(word)):
  str3.remove(word)
os.system("pause")
--------------------------------------------------------------------

 

exe 로 변경시 결과를 출력하고 바로 종료시키기 때문에

os 를 포함시킨후 pause 로 멈추는 걸 추가하다보니 2줄이 더 길어졌네요..

 

평소 많이 쓰던 C나 타 언어로는 상상할 수 없던 라인 수네요.. 7줄..

굉장히 매력적인 언어인 것 같습니다..

Information Search midterm.zip

'Programming > Python' 카테고리의 다른 글

Python을 하나의 exe 파일로 변환하기.  (0) 2012.10.26
Posted by NullBr4in
Programming/Python2012. 10. 26. 10:03


py2exe 를 이용한 py 파일을 하나의 exe 로 만드는 방법 :

http://cshong.tistory.com/entry/py2exe-인스톨-팩토리-install-factory-사용법

 

 

'Programming > Python' 카테고리의 다른 글

[Python] 문자열을 입력받아 단어 카운팅  (0) 2012.10.26
Posted by NullBr4in
이야기/잡담2012. 7. 9. 21:46


바쁘던 일들이 끝나고

어느정도 안정 됬네요~

 

조만간 키보드 후킹(커널 수준) 관련 내용으로 다시 찾아뵙겠습니다~

'이야기 > 잡담' 카테고리의 다른 글

블로그 운영에 대한 간단한 글입니다..  (0) 2012.02.10
블로그 처음 시작해봅니다..  (0) 2012.01.22
Posted by NullBr4in
이야기/잡담2012. 2. 10. 21:25


이제 대학교 4학년인데 아직 제 실력이 많이 미흡합니다.

공부를 하는데, 공부를 하면서 포스팅을 하려다 보니 공부를 4시간 했다면 포스팅하는데 1~2시간이 소요됩니다.

3월달까지 열심히 달리고나서 3월달까지 어느정도 공부가 끝난다면 다시 포스팅을 시작하겠습니다.

만약 게시된 글 중에 궁금하신게 있으시다면 댓글달아주세요.

아는것이라면 최대한 답변을 달아드리도록 하겠습니다.

모르는것이라도 찾아서 답변을 달아드리도록 하겠습니다.^^

새해 복 많이 받으세요~ 

'이야기 > 잡담' 카테고리의 다른 글

다시 시작..  (0) 2012.07.09
블로그 처음 시작해봅니다..  (0) 2012.01.22
Posted by NullBr4in
Programming/Assembly2012. 1. 26. 18:58


"인텔 기반 컴퓨터를 위한 어셈블리 언어 5판" 은 어제부터 시작한 어셈블리 교재입니다.

공부하면서 풀은 연습문제입니다.


1번 - 텍스트 색상 그리기

TITLE 5.8.1 example

; 5.8.1
; 텍스트 색상 그리기

 
INCLUDE Irvine32.inc
.data
printMsg BYTE "Assembly language - NullBr4in - ajlab.tistory.com", 0

.code
main PROC
mov eax, yellow
call SetTextColor
mov edx, OFFSET printMsg
call WriteString
call Crlf

mov eax, green
call SetTextColor

call WriteString
call Crlf

mov eax, cyan
call SetTextColor

call WriteString
call Crlf

mov eax, lightRed
call SetTextColor

call WriteString
call Crlf

mov eax, lightgray
call SetTextColor

exit
main ENDP
END main



2번 - 피보나치 수의 파일
 
 

 
Posted by NullBr4in
Programming/Assembly2012. 1. 26. 18:03


어셈블리어 명령어 정리는 시간 날때마다 한번씩 내용을 추가하겠습니다 ( 2012-01-26 )


 어셈블리어 명령어에 대해 정리할때 아래와와 같은 표기법을 이용해서 정리하겠습니다. 
 
  [그림 1] 인텔 IA-32 메뉴얼에서 채택한 피연산자에 대한 간단한 표기법



 MOV 
 - MOV 명령어는 소스 피연산자로부터 목적지 피연산자로 데이터를 복사한다.
 - MOV 복사하고자 하는 목적지, 복사할 대상이 있는 곳
 - MOV destination, source
 - MOV 명령어는 dest = source 와 같다 

 - MOV 명령어의 규칙
  + 두 피연사자는 같은 크기이어야 한다.
  + 두 피연산자는 모두 메모리 피연산자일 수는 없다.
  + CS, EIP, IP는 목적지 피연산자일 수 없다.
  + 즉시값은 세그먼트 레지스터로 이동될 수 없다.
 
 - 세그먼트 레지스터를 제외한 일반적으로 사용하는 MOV의 형태들이다.
  + MOV reg, reg
  + MOV mem, reg
  + MOV reg, mem
  + MOV mem, imm
  + MOV reg, imm

 - MOV 명령어를 사용할 때 한 메모리에서 다른 메모리 위치로 이동시키는데 사용하지 못한다.
   그러므로 다음의 방법을 사용한다.
  + var1, var2 는 WORD 형태를 가지고 있습니다.
    mov ax, var1
    mov var2, ax

 
Posted by NullBr4in
Programming/Assembly2012. 1. 23. 17:11


5.4.2 장에서 스택을 이용한 문자열을 역순으로 배치하는 예제 입니다.

고급언어를 만지다가 저급언어를 만지게 되니  저급언어가 방법도 여러가지에 효율적이라고 생각되네요.



 TITLE Reversing a String (RevStr.asm)

INCLUDE Irvine32.inc
.data
aName BYTE "Abraham Lincoln", 0 ;  역순으로 배치할 문자열을 선언합니다
nameSize = ($ - aName) - 1 ; aName에 대해 문자열의 길이를 구하는 부분인데, 여기서 $ 는 
                                                                ; 현재 명령어의 위치 주소 입니다. 현재 주소에서 aName의 주소를
                                                                ; 빼게 되면 문자열의 길이만 남게 되는데, 여기서 널문자를 제외하기 위해 - 1 을
                                                                ; 해줍니다. 

.code
main PROC

; 스택으로 문자를 push 하는 부분 
mov ecx, nameSize                            ; 반복문에서 사용할 count 레지스터인 ecx에 문자열의 길이를 넣어줍니다.
mov esi, 0                                          ; esi에는 0으로 초기화 시켜줍니다. esi는 간접 피연산자를 이용한 간접 주소 지정
                                                                ; 을 통해 문자열을 하나하나 가리키게 됩니다. 

L1:                                                            ; L1 루프의 시작
movzx eax, aName[esi]                     ; aName+esi 위치의 문자열을 eax로 이동시켜줍니다. aName+0, aName+1 이런식
push eax                                           ; eax를 스택에 추가하고 - L,i,n,c,o,l,n,,, 이런식으로 스택에 쌓이게 됩니다.
inc esi                                               ; esi를 1증가시킵니다 - 다음 반복에서 다음 문자를 가리키기 위함입니다.
loop L1                                              ; L1의 처음부분으로 가서 반복합니다.

; 아래는 스택에서 문자를 pop 하는 부분.

mov ecx, nameSize                             ; 반복이 끝나면 0이 된 ecx에 다시 문자열의 길이를 넣어줍니다.
mov esi, 0                                           ; esi 또한 0으로 초기화 합니다

L2:
        pop eax                                              ; pop을 하여 스택의 맨 나중에 들어간 'n'을 꺼내옵니다.
mov aName[esi], al                            ; 꺼내온 값을 [aName+esi] 에 넣습니다.
inc esi                                               ; esi를 1 증가시킵니다.
loop L2                                              ; 루프의 처음으로 돌아갑니다

; 역 배치가 끝나고 출력 하는 부분.

mov edx, OFFSET aName                     ; aName의 offset을 edx에 저장합니다.                  
call WriteString                                      ; WriteString 함수는 edx에 저장된 주소의 위치에 있는 문자열을 출력합니다.
call Crlf                                               ; 개행
exit                                                    ; 종료
main ENDP
END main


Posted by NullBr4in
Programming/Assembly2012. 1. 23. 16:30


약 170억번 반복되는 반복문을 통하여 컴퓨터 성능을 시험해보는 예제 입니다.

반복문 시작 전 후로 현재 시간을 구하여 빼는 원리입니다.



TITLE Link Library Test #3 (TestLib3.asm)

; Calculate the elapsed time of executing a nested loop

INCLUDE Irvine32.inc

OUTER_LOOP_COUNT = 3 ; adjust for processor speed
.data
startTime DWORD ?
msg1 BYTE "Please wait...", 0dh, 0ah, 0 ; 0dh,0ah 는 개행문자입니다.
msg2 BYTE "Elapsed milliseconds: ",0
.code
main PROC
mov edx, OFFSET msg1 ; "Please wait..."이라는 문자열을 edx 에 넣습니다.
call WriteString ; 문자열 출력 - edx에 있는 주소의 문자열을 출력합니다.
; Save the starting time.
call GetMSeconds ; GetMSeconds - 자정 이후를 msec 단위로 계산하여 eax로 리턴
mov StartTime, eax ; eax 에 리턴된 값을 StartTime에 넣는다.
mov ecx, OUTER_LOOP_COUNT ; ecx - loop를 반복할 횟수를 넣어줌.

; Perform a busy loop.
L1:
call innerLoop ; innerLoop PROC 을 세번 호출한다.
loop L1

; Display the elapsed time.
call GetMSeconds ; 위의 루프가 끝나면 다시 한번 현재 시간을 구합니다
sub eax, startTIme ; 현재 시간에서 루프 시작하기 전 시간을 빼줍니다
mov edx, OFFSET msg2 ; "Elapsed milliseconds: "의 오프셋을 edx에 저장
call WriteString ; edx에 저장된 문자열 출력
call WriteDec ; eax에 있는 루프 도는데 걸린 시간 값을 출력
call Crlf ; 개행문자
exit ; main PROC 종료
main ENDP

innerLoop PROC ; innerLoop Proc 정의
push ecx ; 이전 루프에서 ecx가 사용되고 이번에도 사용되므로 스택에 저장함
mov ecx, 0FFFFFFFFh ; 반복 횟수를 FFFFFFFFh 로 지정
L1: ; L1 루프
mov eax, eax ; eax를 eax로 이동시키는 아무 의미 없는 코드 삽입
loop L1 ; L1 처음으로 . 
pop ecx ; 루프가 끝나면 이전 ecx를 스택에서 꺼내서 복원시킵니다
ret ; innerLoop Proc 을 리턴합니다.
innerLoop ENDP

END main

Posted by NullBr4in