'2008/12'에 해당되는 글 3건

  1. 2008/12/26 여러가지 언어를 배우고 쓰다보면..
  2. 2008/12/15 오랜만에 간 노래방.. (1)
  3. 2008/12/11 텍스트 큐브 데이터 자동 백업 (1)
여러가지 언어를 배우고 그를 이용해 프로그램을 작성하다보면 한가지 애로사항이 꽃핀다.

그건 바로 언어들 스팩이 조금씩 다름에 오는 헷갈림..

언어라는 것들이 필연적으로 기존 언어의 장점을 따오고 문법을 따오게 마련이다.

뭐 문법이라면 차라리 낫다.

똑같은 객체지향 언어라고 해서 보니 틀은 기존의 다른언어를 그대로 쓰면서
기존 언어에는 없는 기능이 추가된 것들이 문제다.

이거 은근히 헷갈린다..

열심히 java 또는 c#을 이용해서 만들다가..

잠시 c++을 만질 기회가 있을때 나오는 컴파일 에러의 당혹감..

........

다시 한번 언어 스팩문서를 뒤진다 ㄱ-

어디 초울트라스펙트럼울랄라킹왕짱 스팩을 가진 언어가 평정을 좀 해줬으면..

뭐 예를 들자면 이런거..

네이티브 컴파일, 헤더와 소스 구분없는 구조, 가비지 컬렉터 지원, 멀티 플랫폼 지원, 각종 객체지향 언어의 스팩 지원, 광속 컴파일, 반복문 문법의 다향성 지원, 각종 프레임웍에 쉽게 지원가능, 스크립트로 사용가능

뭐 이정도만.

......

이럴러면 우선 명바기가 물러나고 만수가 버로우타고 외계인이 와야지만 가능할 것이다.

ps. 그런데 왠지 명바기가 물어나고 만수가 버로우만 타도 될거 같..........................
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2008/12/26 18:56 2008/12/26 18:56
오랜만에 노래방을 갔구나..

정말 미치도록 목이 찢어지도록 불렀다.

아.. 속 확풀려..

이렇게 질러줘야지 되는데 너무 안가서 쌓였;;

ps. 그런데 더 부를수 있었는데 쯧...
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2008/12/15 19:15 2008/12/15 19:15
역시나 이번에도 귀차니즘의 발동으로 웹으로 클릭질 하면서 백업하기 귀찮아서 자동백업에 사용할 수 있도록 스크립트를 만들어봤습니다.

텍스트큐브 데이터를 백업하기 위해서는 웹으로 로그인이 필요하므로 쉘스크립트는 무리라서 파이썬으로 작성을 했습니다.

따로 설명은 안하겠습니다. 함수의 인자를 보시면 무엇을 넣어야하는지 아실겁니다.

대략적인 작동 방식은 텍스트큐브에 로그인 한 다음 관리자툴의 백업 url을 get으로 요청하여 xml로 된 데이터를 받아서 로컬에 저장해 줍니다.

이 스크립트를 이용하여 예전에 만들었던 trac 백업하기를 응용하면 백업후 자동으로 메일 발송이 가능합니다. :)

아.. 웹서버가 불안정 했는데 데이터 날아갈 걱정이 줄었네요..

#!/usr/bin/python

import httplib, urllib, os, sys

def backupTextCube(host, id, password, blogroot, toSavePath, filename, incAttachment) :

    params = urllib.urlencode({"loginid": id, "password": password})
    headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/html"}
    conn = httplib.HTTPConnection(host)
    conn.request("POST", blogroot + "/login", params, headers)
    response = conn.getresponse()
    response.read()

    cookies = []
    start = 0   
    end = 0

    items = response.getheader("set-cookie")

    while True :

        start = items.find("TSSESSION", start)
        end = items.find(";", start)

        if start == -1 : break

        extracted = items[start:end]

        if "LOGINID" not in extracted :
            cookies.append(extracted)

        start = end

    params = urllib.urlencode({})
    headers = {"Cookie": ";".join(cookies[1:])}
    conn.request("GET", blogroot + "/owner/data/export?includeFileContents=" + str(incAttachment).lower(), params, headers)
    response = conn.getresponse()   

    result = False   

    if response.status == 200 :        

        if not os.path.exists(toSavePath) and toSavePath != "." :
            os.mkdir(toSavePath)

        file = open(toSavePath + "/" + filename, "wb+")
       
        while True :
            readed = response.read(4098)
           
            if readed == "" : break
           
            file.write(readed)
           
        file.close()               

        result = True                
       
    else :
        result = False
   
    conn.close()

    return result

backupTextCube("www.dcple.com", "a@a.com", "1234", "/blog", ".", "blogbackup.xml", True)

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2008/12/11 19:09 2008/12/11 19:09