[작성자:] namoman

  • 오르페우스이야기

    요즘 물랑루즈로 유명해진 캉캉의 주인공. 그리스 신화에서 가장 유명한 사랑꾼이자, 단 한 번의 실수를 견디지 못해 비극의 주인공이 된 오르페우스 이야기를 소개하려고 한다.

    이 오르페우스가 맞다

    음악계의 ‘리빙 레전드’

    오르페우스는 태양신 아폴론에게 하프를 배운 당대 최고의 뮤지션이었다. 그의 연주 실력은 정말 대단했는데, 그가 노래를 부르면 사람과 동물은 물론이고 무생물인 바위나 나무조차 감동해서 눈물을 흘릴 정도였다고 한다.

    이렇게 완벽한 그가 아름다운 요정 에우리디케와 결혼하며 행복한 삶을 꿈꿨지만, 그 기쁨은 너무나 짧았다. 결혼한 지 얼마 안 되어 에우리디케가 들판을 산책하다가 독사에게 발목을 물려 허무하게 목숨을 잃고 말았기 때문이다.

    아내를 찾으러 저승까지

    아내를 잃은 슬픔에 빠진 오르페우스는 무모한 결심을 한다. 살아있는 몸으로 직접 저승(하데스)에 내려가 아내를 데려오기로 한 것이다. 그는 오직 ‘음악’ 하나만 믿고 정면 돌파를 시도했다.

    • 저승의 강을 지키는 뱃사공 카론도 그의 연주에 마음을 열어 저승으로 가는 배를 태워주었다.
    저승으로 가는 스틱스를 오고 가는 배를 운전하는 카론. 신과함께를 포함해서 여러가지 작품에서 이걸 모티브로 하는 캐릭터들이 많이 나온다.
    • 머리 셋 달린 괴물 개 케르베로스 역시 음악에 홀려 길을 내주었다.

    결국 냉혹한 지옥의 왕 하데스와 왕비 페르세포네조차 오르페우스의 눈물 어린 연주에 감동하여, 에우리디케를 지상으로 데려가도 좋다는 허락을 내리게 되는데..

    단 하나의 조건: “절대 뒤를 돌아보지 마라”

    하지만 하데스는 한 가지 아주 까다롭고 엄격한 조건을 걸었다.

    “지상에 도착할 때까지 에우리디케는 네 뒤를 따라갈 것이다. 하지만 너는 지상에 도착하기 전까지 ‘절대로’ 뒤를 돌아보아서는 안 된다.”

    오르페우스는 기쁘게 대답하고 아내를 뒤에 세운 채 캄캄한 지하 동굴을 오르기 시작했다. 뒤에서 아내의 발소리가 잘 들리지 않아 불안함이 엄습했지만, 그는 꾹 참으며 앞만 보고 걸어갔다.

    이렇게 끝나면 재미가 없지

    마침내 지상의 빛이 보이기 시작한 순간이었다. 오르페우스는 동굴 밖으로 무사히 발을 내디뎠고, 너무나 기쁜 나머지 아내가 잘 따라왔는지 확인하려고 고개를 홱 돌리고 말았다.

    하지만 안타깝게도 그때 에우리디케는 아직 동굴 안(지옥의 경계)에 발을 걸치고 있는 상태였다. 찰나의 순간, 에우리디케는 “안녕…”이라는 마지막 말만 남긴 채 다시 어둠 속으로 영영 끌려 들어갔고 이 이야기는 여러 예술가들의 영감을 자극했고 많은 작품이 이 이야기를 소재로 태어났다

    에드워드 존 포인터(Edward John Poynter)의 <오르페우스와 에우리디케 (Orpheus and Eurydice)>(1862)

    오르페우스는 다시 그녀를 구하려 했지만 카론은 더 이상 그를 태워주지 않았고, 결국 그는 평생 다른 여인을 만나지 않고 슬픈 노래를 부르며 세상을 떠돌다 비극적인 최후를 맞이하게 된다.(너 때문에 흥이 다 깨져 버렸으니까 책임져!)

    다음번엔 오펜바흐의 오르페우스에 대한 이야기를 올려봐야겠다

  • 삼성전자 253,000원 돌파! 내가 바로 주식의 신인가?

    남들이 8만 전자, 9만 전자를 외치며 일희일비할 때 나는 남다른 안목으로 235,000원에 당당히 입성했다. 당시 내 평단가를 들은 지인들은 “제정신이냐” 혹은 “우주 전쟁이라도 준비하느냐”며 비아냥거렸지만, 나는 그들의 안목이 짧음을 속으로 비웃었다. 그리고 마침내 오늘, 보란 듯이 숫자가 바뀌었다. 삼성전자가 253,000원을 찍었다.

    현재 삼성전자 실시간 주가(Google Finance)의 수치 따위는 중요하지 않다. 내 계좌에 찍힌 이 경이로운 수익률과 상승 기류가 중요하다. 남들이 63빌딩 높이에서 벌벌 떨 때 에베레스트를 넘어 성층권에 자리를 잡았던 나의 선택이 옳았음이 증명된 것이다. 이제 인공위성들과 인사하는 것은 일상이 되었고, 저 멀리 달의 뒤편이 보일 정도로 공기가 맑고 쾌적하다.

    상황이 이렇게 되니 무서운 고민이 시작되었다. “여기서 더 사야 하는 것 아닌가?”라는 강력한 확신, 일명 불타기의 유혹이다. 지금 이 상승세라면 253,000원은 시작에 불과하고 300,000원, 아니 화성까지 갈 수 있을 것만 같다. 초심자 특유의 근거 없는 자신감이 온몸을 지배하고 있으며, 내가 매수 버튼을 누를 때마다 주가가 오르는 환상마저 보인다.

    하지만 한편으로는 이 짜릿한 본능을 현실의 전 재산에 바로 투영하기에는 내 간이 아직 조막만 하다는 사실을 깨달았다. 그래서 나의 이 천부적인 투자 감각을 마음껏 발휘하고 검증해 볼 수 있는 연습장을 하나 만들었다. 바로 파이어베이스 호스팅(Firebase Hosting)으로 배포한 주식 투자 시뮬레이션 게임, stock.namoman.com 이다.

    • 초기 자산: 단돈 1000만 원으로 시작한다.
    • 주가 로직: 삼성전자 주가가 2초마다 -5% ~ +5% 사이로 요동친다.
    • 목표: 이 변동성을 이겨내고 스테이지별 자산목표 달성하여 랭킹 보드에 이름을 올리는 것이다.

    현실에서 253,000원에 풀 매수를 때릴지 말지 고민하며 밤잠을 설치는 대신, 이 게임 안에서 가상의 주식을 무한대로 사고팔며 내 실력을 테스트하고 있다. 2초마다 바뀌는 파란색과 빨간색의 향연 속에서 매수와 매도의 타이밍을 잡다 보면, 내가 진짜 주식의 신인지 아니면 그저 운 좋은 불나방인지 곧 판가름 날 것이다.

    나처럼 고점에서 의기양양하게 불타기를 고민하는 초심자 동지들이여, 혹은 나의 이 무서운 상승세를 구경하고 싶은 구경꾼들이여. 지금 바로 접속해서 실력을 겨뤄보자. 현실 계좌는 언제 파란 멍이 들지 모르지만, 이 가상 세계에서만큼은 누구나 10억 자산가가 되어 마음껏 기세를 떨칠 수 있다.

    나는 오늘도 253,000층의 쾌적한 산소를 마시며 stock.namoman.com 의 랭킹 1위를 노린다. 253,000원, 여기서 더 가면 정말 우주 정거장이라도 하나 사야 할지도 모르겠다.

    하다 보니 카카오나 네이버도 추가해서 각자 포폴을 구성하는 기능을 넣어도 재밌을 거 같다는 생각이 든다.

    네이버+카카오

  • 워드프레스라니..

    고딩때 생일 선물로 친구인 seapy(구 nakada)와 성현이가 돈을 합쳐서 사준 도메인으로 시작해서 20년넘게 유지하다가

    html기반 홈페이지부터 그누보드, tt보드, 테크노트, 이지보드, 제로보드, xe, 등을 거쳐 워드프레스까지 흘러왔습니다.

    디자인도 해보고 싶은 욕심이 있지만 요즘은 심플한게 좋아보이더라구요

    ssl이 지원안되는 점은 방문자들에게 참 미안하게 생각합니다,

    (호스팅업체에서 무료ssl을 지원안해 준다고 하네요)

    티스토리나 각종 호스팅서비스를 거쳐서 여러번 변태해왔는데 이번 블로그는 오래가기를 빌어봅니다.

    다행히 예전 db 백업본을 찾아서 덮어씌우긴 했는데 참 여러가지 생각이 많이 나서 어제는 오랜만에 잠을 꼴딱 새버렸네요

    쨌든 이번엔 robots 파일도 올려서 검색도 잘 되게 하고,열심히 운영해 봐야겠습니다.

  • 콘크리트 호칭강도

    콘크리트 호칭강도

    00(A)-000(B)-00(C)

    A: 굵은공재 최대치수(mm). B:호칭강도(MPa),C:슬럼프(mm)

    캡처.PNG

  • 키보드 마우스 후킹 ( Key Mouse Event hooking )

    키보드 마우스 후킹 ( Key Mouse Event hooking ) 

    pyHook 이 너무 라이브러리가 잘되어 있다. 

    MouseEvent , Keyboard Hook 외에도 아래 사이트를 참조하면 라이브러리들에 대한 소개가 있음.

    http://www.cs.unc.edu/Research/assist/doc/pyhook/public/pyHook.HookManager-module.html

    import os

    import time

    import pyHook # http://sourceforge.net/projects/pyhook/

    from win32gui import GetWindowRect, GetClassName, GetWindowText

    ##http://sourceforge.net/projects/pywin32/files/pywin32/Build216/

    curTime = time.strftime(“%Y%m%d_%H%M%S”, time.localtime(time.time()))

    if not os.path.exists(“Messages”):

    os.mkdir(“Messages”)

    print “Make Message Directory “

    f = open(“Messages\messages”+ curTime +”.txt”, “w”)

    def Log(logStr):

    print “In logging “

    print str(logStr)

    f.write(logStr + “n”)

      

    def OnMouseEvent(event):

    print “On Mouse Event “

    Log(‘MessageName:’ + str(event.MessageName))

    Log(‘Message:’ + str(event.Message))

    Log(‘Time:’ + str(event.Time))

    Log(‘Window:’ + str(event.Window))

    if event.Window != 0:

    Log(‘Window Rect:’ + str( GetWindowRect(event.Window)))

    Log(‘Window Class Name:’ + str( GetClassName(event.Window)))

    #Log(‘Window Text:’ + str( GetWindowText(event.Window)))

    Log(‘WindowName:’ + str(event.WindowName))

    Log(‘Position:’ + str(event.Position))

    Log(‘Wheel:’ + str(event.Wheel))

    Log(‘Injected:’ + str(event.Injected))

    Log(‘—‘)

    # return True to pass the event to other handlers

    # return False to stop the event from propagating

    return True

    def OnKeyboardEvent(event):

    print “On keyboard Event “

    Log(‘MessageName:’ + str(event.MessageName))

    Log(‘Message:’ + str(event.Message))

    Log(‘Time:’ + str(event.Time))

    Log(‘Window:’ + str(event.Window))

    if event.Window != 0:

    Log(‘Window Rect:’ + str( GetWindowRect(event.Window)))

    Log(‘Window Class Name:’ + str( GetClassName(event.Window)))

    #Log(‘Window Text:’ + str( GetWindowText(event.Window)))

    Log(‘WindowName:’ + str(event.WindowName))

    Log(‘Ascii:’ + str( event.Ascii) + str( chr(event.Ascii)))

    Log(‘Key:’ + str( event.Key))

    Log(‘KeyID:’ + str( event.KeyID))

    Log(‘ScanCode:’ + str( event.ScanCode))

    Log(‘Extended:’ + str( event.Extended))

    Log(‘Injected:’ + str( event.Injected))

    Log(‘Alt’ + str( event.Alt))

    Log(‘Transition’ + str( event.Transition))

    Log(‘—‘)

    # return True to pass the event to other handlers

    # return False to stop the event from propagating

    return True

    # create the hook mananger

    hm = pyHook.HookManager()

    # register two callbacks

    hm.MouseAllButtonsDown = OnMouseEvent

    hm.KeyDown = OnKeyboardEvent

    # hook into the mouse and keyboard events

    hm.HookMouse()

    hm.HookKeyboard()

    if __name__ == ‘__main__’:

    import pythoncom

    pythoncom.PumpMessages()

  • ZIP 파일 크랙 python 코드

    ZIP 파일 크랙 python 코드

    치명적인 파이썬 책에 있는 내용인데, 정말 재밌는 책인 것 같다. 

    이런저런 유용한(?) 코드들이 많은 느낌이다.

    아래 내용은 zip 파일 패스워드를 딕셔너리 방식으로 크랙하는 내용이다. 쓰레드를 이용하여 처리 하도록 되어 있고,

    좋은 dictionary 나 브루투 포스 알고리즘만 짜두면 나쁘지 않을 것 같다.

    usage %prog -f <zipfile> -d <dictionary>

    root@ubuntu:/home/k1rha/python/ZIP_CRACK# 

    import zipfile

    import optparse

    from threading import Thread

    def extractFile(zFile,password):

    try :

    zFile.extractall(pwd=password)

    print ‘[+] Found password ‘ + password + ‘n’

    except :

    pass

    def main():

    parser = optparse.OptionParser(“usage %prog “+

    “-f <zipfile> -d <dictionary>”)

    parser.add_option(‘-f’,dest=’zname’, type=’string’,

    help=’secify zip file’)

    parser.add_option(‘-d’ , dest=’dname’, type=’string’,

    help=’specify dictionary file’)

    (options,args) = parser.parse_args()

    if(options.zname == None) | (options.dname == None):

    print parser.usage

    exit(0)

    else :

    zname = options.zname

    dname = options.dname

    zFile=zipfile.ZipFile(zname)

    passFile = open(dname)

    for line in passFile.readlines():

    password = line.strip(‘n’)

    t = Thread(target = extractFile , args=(zFile,password))

    t.start()

    if __name__ == ‘__main__’:

    main()

  • 자동 트윗

    자동 트윗

    http://comjoy21.tistory.com/89

    트위터에 글쓰는 프로그램에 대해 Head First Programming를 참고하여 응용해 보았습니다.

    트위터에 글쓰는 프로그래밍을 하려면 우선 트위터에 애플리케이션을 등록해야 합니다. 물론 트위터 계정이 있어야 하고요. 로그인 후http://dev.twitter.com/apps 에 접속합니다.

    twt.jpg



    등록한 애플리케이션이 하나도 없다면 이 목록에는 아무것도 보이지 않습니다. 오른쪽에 있는 ‘Register a new app’를 클릭하여 애플리케이션 등록 화면으로 넘어갑니다.

    twt01.jpg

    twt01_00000.jpg

    Application Name에 이 예제와는 다른 이름을 입력해야 합니다. 다른 사람이 등록한 이름은 사용할 수 없습니다.
    Application Type은 꼭 ‘Client’를 선택해야 합니다.
    Default Access type은 ‘Read & Write’를 선택해야 합니다.
    캡차(CAPCHA) 문자를 입력 후 ‘Register application’ 단추를 클릭합니다. ‘TWITTER API TERMS OF SERVICE‘ 창이 뜨는데, ‘I Accept’를 클릭하면 애플리케이션 등록되며, 등록된 애플리케이션의 상세 정보를 보여 줍니다.

    twt01_00001.jpg

    twt01_00002.jpg

    컨슈머 키(Consumer key)와 비밀번호(Consumer secret)를 메모장에 잘 복사해 둡니다. 이 정보를 애플리케이션이 사용해야 합니다. OAuth로 인증할 때 필요합니다.

    이렇게 트위터 사이트에 글을 쓸 수 있는 애플리케이션을 마련하였습니다. 이제 파이썬에서 트위터에 글을 쓸 수 있는 라이브러리를 설치해야 합니다. 트위피(tweepy) 라이브러리가 있습니다. 
    http://tweepy.googlecode.com/files/tweepy-1.4-py3.tar.gz 
    에서 Tweepy for python 3 파일을 다운로드합니다. 

    물론 python 3을 미리 설치해 놓아야 합니다. 파이썬 3은 
    http://www.python.org/ftp/python/3.1.4/python-3.1.4.msi
    에서 다운로드 받아 설치합니다. 
    64비트 운영체제를 사용한다면 
    http://www.python.org/ftp/python/3.1.4/python-3.1.4.amd64.msi 
    를 다운로드 받아 설치해야 합니다. 리눅스(우분투)에서는 소프트웨어 센터에서 파이썬 3.1.4 버전을 설치합니다. 아래 내용은 MS 윈도우 운영체제용으로 설명합니다. 

    다운로드 받은 트위피 파일은 확장자가 .tar.gz이므로 알집 등의 유틸리티 프로그램으로 압축 해제합니다. 압축 해제한 파일들을 c:tweepy 폴더에 복사합니다. ‘명령 프롬프트’ 실행 후, cd c:tweepy 명령으로 c:tweep 폴더로 갑니다. 그리고 dir 명령을 실행했을 경우 다음과 같이 나타나야 합니다.

    twt02.jpg

    twt02_00000.jpg

    http://python-distribute.org/
    에서 목록 중 distribute_setup.py 파일에 마우스 놓고 우클릭하여 단축메뉴 중 ‘다른 이름으로 대상 저장’을 클릭하고 c:tweepy 폴더에  저장합니다. 윈도우 탐색기 창에서 c:tweepy 폴더에 있는 distribute_setup.py 파일을 더블클릭하여 실행합니다. 그러면 필요한 파일들을 설치합니다.

    다시 ‘명령 프롬프트’ 창 c:tweepy 폴더에서 
    c:Python31python.exe setup.py install
    을 실행합니다.


    twt02_00001.jpg

    twt02_00002.jpg

    이렇게 윈도우에 트위피 라이브러리를 설치하였습니다.

    리눅스(우분투)에서 트위피 라이브러리를 설치하려면 다음과 같습니다.

    위에서 언급한 Tweepy for python 3 파일을 다운로드 한 후, tweepy 폴더를 만들고 그곳에 압축을 풉니다.

    우분투 소프트웨어 센터에서 python3-setuptools를 설치 후, 터미널에서 조금 전에 만든 tweepy 폴더가 있는 부모 폴더에 갑니다. 예를 들어 부모 폴더가 ‘다운로드’ 라면, 

    > cd 다운로드 

    > sudo easy_install3 tweepy

    이렇게 리눅스(우분투)에 트위피 라이브러리를 설치하였습니다.


    이제 OAuth 인증을 받아야 합니다. 

    TwitterOAuth.py

     TwitterOAuth.py

    위에 있는 파일을 다운로드 받은 후 파이썬 3으로 엽니다.
    이 파일은 트위터에 애플리케이션 등록 시에 받은 컨슈머 키와 비밀 번호를 이용하여 OAuth 인증을 받을 수 있게 해 줍니다. 메모장에 저장해 둔 컨슈머 키(Consumer key)와 비밀번호(Consumer secret)를 복사하여 아래 그림에 표시한 부분에 차례차례 붙여넣습니다. 이 때 꼭 따옴표를 지우면 안 됩니다.

    twt02_00003.jpg

    참고로 윗 그림 첫 줄에 있는 ‘import tweepy’를 위해, 즉 트위피 라이브러리를 임포트시키기 위해 트위피 등을 다운로드 받고 설치한 것입니다.

    컨슈머 키와 비밀 번호를 수정하고 실행(F5)시키면 다음과 같은 화면입니다.

    twt02_00004.jpg



    빨갛게 표시한 부분을 복사하여 웹 브라우저 주소창에 붙여넣고 엔터를 치면 아래 그림과 같은 창이 나타납니다.

    twt02_00005.jpg

    트위터 아이디와 비밀번호를 입력하고 ‘애플리케이션 승인’ 단추를 클릭하면 다음과 같은 화면이 나옵니다.

    twt02_00006.jpg

    PIN 숫자를 복사하여 아래와 같이 붙여넣으면, 접근 키(ACCESS_KEY)와 비밀 번호(ACCESS_SECRET)를 알려줍니다.

    twt02_00007.jpg

    여기서 알려준 접근 키와 비밀번호도 메모장에 잘 저장해 둡니다. 메모장에 저장한 컨슈머 키와 비밀 번호, 접근 키와 비밀 번호, 이 4개로 트위터에 글을 쓸 수 있게 됩니다.

    이렇게 트위터에 글을 쓸 수 있는 기본적인 준비를 마쳤습니다. 이제 파이썬 3으로 트위터에 글을 쓰는 프로그래밍을 하면 됩니다. 프로그래밍 내용은 다음과 같습니다.

    import tweepy
    import urllib

    def send_to_twitter(msg):
        CONSUMER_KEY = ‘컨슈머 키’
        CONSUMER_SECRET = ‘비밀 번호’
        ACCESS_KEY = ‘엑세스 키’
        ACCESS_SECRET = ‘비밀번호’

        auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
        auth.set_access_token(ACCESS_KEY, ACCESS_SECRET)
        api = tweepy.API(auth)
        api.update_status(msg)

    def get_data() :
        page = urllib.request.urlopen(“http://www.kma.go.kr/forecast/mid-term_02.jsp“)
        text = page.read().decode(“euc-kr”)
        where = text.find(‘tl_mid_term1.gif’)
        start_of_data = where + 85
        end_of_data = start_of_data + 128
        return text[start_of_data:end_of_data]
    data_now = input(“기상정보를 지금 보내기를 원합니까(y/n)?”)
    if data_now == “y” :
        send_to_twitter(“[기상정보]” + get_data()) 
    else :
        send_to_twitter(“천천히 여유롭게 잠시 쉬었다 지혜를 모아 다시 해 봅시다!”)

    프로그래밍을 한 코드를 살펴보면 다음과 같습니다.

    import tweepy
    import urllib
    트위터에 글을 쓸 때 필요한 라이브러리들을 불러옵니다. tweepy는 트위터에 글 쓰고 보는 라이브러리입니다. urllib는 인터넷 주소로 접속하여 필요한 작업을 할 때 필요한 라이브러리입니다.

    def send_to_twitter(msg):
        CONSUMER_KEY = ‘컨슈머 키’
        CONSUMER_SECRET = ‘비밀 번호’
        ACCESS_KEY = ‘엑세스 키’
        ACCESS_SECRET = ‘비밀번호’

        auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
        auth.set_access_token(ACCESS_KEY, ACCESS_SECRET)
        api = tweepy.API(auth)
        api.update_status(msg)

    send_to_twitter 함수는 트위터에 컨슈머 키 등을 입력하고 OAuth 인증을 받고 글을 씁니다. 컨슈머 키 등은 메모장에 저장해 두었던 것을 복사하여 사용합니다.

    def get_data() :
        page = urllib.request.urlopen(“http://www.kma.kr/02.jsp“)
        text = page.read().decode(“euc-kr”)
        where = text.find(‘tl_mid_term1.gif’)
        start_of_data = where + 85
        end_of_data = start_of_data + 128
        return text[start_of_data:end_of_data] 

     

    기상 정보 중 트위터에 올리고 싶은 내용 중 첫 단어로 검색을 합니다. 이 내용은 꼭 ‘tl_mid_term1.gif’라는 문자로부터 85자 다음에 시작합니다. 그리고 트위터에 글을 쓸 때 140자까지만 가능하기도 하고 기상 정보 내용이 평균적으로 120자에서 130자이므로, 시작 단어로부터 128자까지의 내용을 트위터에 올리기로 하였습니다. 이 내용을  get_data 값에 저장합니다. 이는 인터넷 기상 정보 페이지에서 가져온 모든 문자를 리스트로 저장해 놓았는데, 그 중에 해당하는 부분만 가져온 것입니다. text 변수에 페이지의 모든 문자가 리스트 형태로 저장되었습니다. 그 중 start_of_data에서부터 end_of_data까지의 문자만 가져오는 것입니다.

    data_now = input(“기상정보를 지금 보내기를 원합니까(y/n)?”)
    if data_now == “y” :
        send_to_twitter(“[기상정보]” + get_data()) 
    else :
        send_to_twitter(“천천히 여유롭게 잠시 쉬었다가 다시 해 봅시다!”)

    기상 정보를 지금 트위터로 보낼 것인지를 묻습니다. ‘y’를 누르면, ‘[기상정보]’라는 머릿글을 포함하여 트위터에 기상정보를 자동으로 써 줍니다. ‘n’을 타이핑하면, ‘천천히 여유롭게 잠시 쉬었다가 다시 해 봅시다!’라는 문구를 트위터에 올려줍니다. 이를 응용하시면 다양한 정보를 필요할 때마다 골라 트위터에 올리실 수 있을 듯 합니다. 

    프로그래밍 소스 파일 :

    py2twt.py

     py2twt.py

     

    get_data 함수는 인터넷 주소에 있는 파일을 읽고, 문자를 euc-kr 형태로 바꾸며, ‘tl_mid_term1.gif’라는 문자를 검색하여 찾고, 이 문자로부터 85자 다음에 있는 글자부터 시작하여 128자까지 있는 내용을 get_data 값에 저장합니다. 위에서 사용한 인터넷 주소는 원래 다음과 같습니다.
    http://www.kma.go.kr/weather/forecast/mid-term_02.jsp
    이 주소가 너무 길어 짧게 표현했습니다. 이 주소에 가서 [보기 – 원본] 메뉴를 실행하고 다음과 같이 작업합니다.

    twt03.jpg


  • ppt 초안잡기

    메모장으로 내용을 입력하신 다음에

    확장자만 ppt로 바꾸면 됩니다.

     

    엔터로 ‘제목’ 구분을 해주고

    탭으로 ‘내용’을 입력하시면 됩니다.

     

     

    이런 식으로 초안 잡으시고

    마스터 슬라이드만 바꿔주시면 작업이

    훨씬 간단하게 진행됩니다.

     

    이미 있는 파일에 추가할 때도

    이렇게 작업하신 다음에 복붙 하시면 서식 유지되니까 편하고요

     

  • ppt에서 폰트 한번에 바꾸기

    마스터 슬라이드 있든 없든 상관없이 바꿀 수 있습니다.

     

    [윈도우 (오피스 2007 이후)]

    1. 홈 리본에서 맨 오른쪽 섹션의 ‘바꾸기’ 메뉴를 펼친 후 ‘글꼴 바꾸기’를 선택합니다.

    2. 창이 뜨면 위쪽 드롭다운에서 바꿔야 하는 폰트를(PT에서 쓰고 있는 폰트만 목록에 뜹니다), 아래쪽에서 바꿀 폰트를 선택합니다.

    3. 바꾸기 버튼을 누릅니다.

     

    [OSX]

    1. 메뉴에서 Format -> Replace Fonts를 선택합니다.

    2. 나머지는 윈도우와 똑같습니다.

     

    [비고]

    – 폰트간에 교체가 안되는 경우가 가끔 있습니다. 대부분 폰트의 종류가 다르다던지(예: 영문폰트 – 한글폰트), 파일 내부가 꼬여서 그렇습니다.

    – 사실 위 경우는 별로 어려운 게 아닙니다. 아는 분은 아시겠지만 조원들 자료 취합하다가 폰트 등등 꼬이는 게 더 짜증납니다. 오히려 70장을 한명이 만들었으니 꼬일 확률이 더 적을 겁니다.

    – 그런데 조원 한명한테 피티 70장 만들게 시킨 조장도 좀 그렇네요.

    ps. 내가 추천하는 폰트. hy울릉도M, 서울남산, 윤고딕,

    ps2. 휴먼엑스포체는 호환성에 문제가 많으므로, 쓰지말자!