tpod touch 게임중에서 tap defense를 하면서... 그나마 제일 재밌는 게임이라고
중독되어서 하게 되었군요. 그런데 easy와 normal은 너무 쉬워서...
그냥 시작하자 클리어를 했지만... hard모드는 이상하게 어려워서 ㅜㅜ...
몇번 하다가 스냅샷까지 찍어가며 공략을 세워보고 ㅋ... 그리하여 스냅샷을 올리게 되었군요 ㅋ
음... 스냅샷은 그냥 단지 개인적으로 해본 것이고... 이것이 정확한 공략은 되지 못할 수도 있음 ㅋ


마지막에 5개의 생명을 live 하면서 끝냈습니다!! ㅎㅎㅎ
음... 이 공략이 정확한 정답은 될 순 없겠지만... 나름 신경써서 해봤습니다 :)

파일디비를 사용하기 위해서... 이것저것 사용해 보다가... sqlite를 알게 되고..
이것을 사용해 보면서... 상당히 편한점도 많았다는 것을 알았다.
mysql보다 빠른 속도를 자랑하고..  사용할 수 있는 c api들도 있고...
사용하기도 간편했다...

sqlite를 관리하기 위한 툴로서... SQLiteSpy라는 프로그램이다...
http://sqlite.org
에 가면... sqlite 사용 방법이 있고... 어느정도의 쿼리문을 알고 있다면... 사용하는데에는 문제는 없을 것이라고 생각이 된다.

딕셔너리.. 맵에 데이터를 넣고 정렬할게 생겨서... 할려다 보니... 어찌해야 하나 고민하게 되었다...
음... c++의 stl에서는 잘 되는것인데...
그래도 찾다보니
key값으로 sorting하는것은

dickeys = dic.keys()
dickeys.sort()
for i in dickeys:
      print i, dic[i]

그러면... value로 sorting 하는 방법은...
diclist = []  
for i in dic.keys():
      diclist.append( (i, dic[i]) )
diclist.sort( key = lambda(x,y):y )

for i in diclist:
      print i[0], i[1]   

음... 이 방법 이외에...
from operator import itemgetter

dict = {}
dict['a'] = 2
dict['b'] = 1
dict['c'] = 5

print sorted(dict.iteritems(), key=itemgetter(1), reverse=True)

로 하게 되면... value의 값으로 정렬을 하게 된다는거...
음... python.. 쉬우면서도 어려운... ㅎㅎ


Demon이라는 녀석이 있습니다.
 
Daemon

In Unix and other computer multitasking operating systems, a daemon (IPA pronunciation: /'de?m?n/ or /'dim?n/[1]) is a computer program that runs in the background, rather than under the direct control of a user
they are usually initiated as processes.
Typically daemons have names that end with the letter "d"
- wikipedia -

결국 백그라운에서 뭔가를 궁시렁 대는 녀석이라는 뜻이죠.. ^^
기본적으로 제공되는 daemon들이 있는데..
그 중에서  cron이라는 녀석에 대한 이야기를 하려고 합니다.

* Cron Demon은 지정된 날짜와 시간에 쉘 명령어를 수행한다.
* Cron Demon을 사용하기 위해서는 crontab명령을 이용하여 crontab파일을 수정/생성해야 한다.
* Cron Demon은 crontab파일을 참조하여 지정된 시간에 지정된 일을 반복하여 실행한다


다음은.. crontab 명령어에 대해서..
내용
Cron작업을 제출, 편집, 나열 또는 제거

관련파일
/usr/bin/crontab : 실행파일
/etc/rc.d/init.d/cond : crontab데몬
/etc/crontab : crontab정의 파일
/etc/cron.allow : crontab사용 계정정의
/etc/cron.deny : crontab사용 제한 계정정의

옵션
-e : 사용자의 crontab 파일의 사본을 편집하거나 또는 아직 crontab 파일이 없으면 편집 세션을 시작합니다. 편집이 완료될 때, 항목이 사용자의 crontab 파일로서 설치됩니다. 편집 세션은 EDITOR 환경 변수에 의해 지정되는 편집기를 사용하여 시작됩니다. 디폴트 편집기는 vi입니다
-l : crontab 파일을 나열합니다
-r : crontab 디렉토리에서 사용자 crontab 파일을 제거합니다
-v : cron 작업의 상태를 나열합니다

파일형식
형태 : 분 시 일 월 요일 command(명령)
분 : 0 - 59
시 : 0 - 23
일 : 1 - 31
월 : 1 - 12
요일 : 0(일요일) ? 6(금요일)
command(명령) : 쉘 명령

'tip' 카테고리의 다른 글

[ipod touch] tap defense - hard  (0) 2009.04.28
sqlite sqlitespy  (0) 2009.04.16
mysql root 계정 비밀번호 설정 및 계정 추가  (0) 2009.01.09
linux iconv 설치 및 설정...  (0) 2009.01.08
linux locale 설정 변경  (0) 2009.01.07
python.... 스크립트 언어는 속도가 많이 느리다...
당연히 C 보다는 느리다는 얘기...
하지만 python에는 다양한 모듈이 많이 있다... 그 중에서도 속도를 C만큼은 아니지만
솔직히 C 보다는 조금 느리다... 하지만 기존의 속도보다는 많이 빠르게 하는 모듈이 있다...
psyco
이 모듈을 이용하면... 상당한 연산 속도를 높일 수 있다...
음... 기본적으로 mod_python을 잡고난 다음에...
httpd.conf 파일을 설정해 줘야 하는..문제...

<Location "/mysite/">
    SetHandler python-program
    PythonHandler django.core.handlers.modpython
    SetEnv DJANGO_SETTINGS_MODULE mysite.settings
    PythonDebug On
    PythonPath "['/path/to/project'] + sys.path"
</Location>

mysite는 자신의 프로젝트 이름이다...
하지만 <Location "/mysite/">에서는... 웹에 주소 입력시... ex) http://localhost/mysite 하였을 때 나타나게 되는 것...
이름은 변경해도 되나... mysite.settings는 프로젝트이름.settings 이어여 한다는것...

이렇게 했는데... 리눅스에서 eggs... 어쩌고 하면서 permision denied라는 에러가 보이게 된다면...
import os
os.environ['PYTHON_EGG_CACHE'] = '/some/directory'
의 내용을 넣어서 임의의 파일을 만든다... 음... 파일의 위치는 프로젝트 안이여도 좋고... 아니여도 좋고~
나는... eggs.py라고 해서 /var/www 안에 넣었음...
그리고 나서

httpd.conf(debian 계역에서는 apache2.conf)파일 안에다가
PythonInterpreter my_django
PythonImport /path/to/my/project/file.py my_django
의 내용을 넣는다... 이렇게 하면... 문제 해결...

여기에다가... 위와 같이 Location하고 났을 때... 음... python manage.py runserver 하고 나서 나왔던 media정보들에 대한 문제...의 해결은...
httpd.conf 파일 안에다가...
Alias /media/ /var/www/asdf/asdf/asdf....
즉 Alias /media/ media의 dir이 있는 위치를 적어주면 된다...
음... 이렇게 해서 우선 보여지는 것들은 해결...

# -*- coding: ms949 -*-
from math import *
from datetime import *


def main():
    now1 = datetime.now()
    result = 0
    for i in range(1000000):
        result = result + pow(i,2)

    now2 = datetime.now()
    
    time = now2-now1
    print "결과 : ", result
    print "시간 : ", time
     
main()

  • DB API : Python에서 JDBC 같은 역할
  • http://mysql-python.sourceforge.net/ 에서 MySQL 모듈 받음
  • 혹은, sudo apt-get install python-mysql
  • User Guide
  • http://www.devshed.com/c/a/Python/MySQL-Connectivity-With-Python/
  • Python DB API
  • Writing MySQL Scripts with Python DB API
  •  

    1. import MySQLdb
      # DB접속
      db = MySQLdb.connect(db='DB명', user='사용자명', passwd='비밀번호', host='원격서버')

      # 커서생성
      cursor = db.cursor() # 모든 DB 작업은 캐서를 통해서

      # SQL 문 실행 : update 류일 경우에는 영향 받은 레코드 개수
      cursor.execute('''
      SQL 문장
      ''')

      # select
      cursor.execute('select ....')
      cursor.rowcount; # 결과 행수
      cursor.description; # 각 필드 특징 (필드명,데이터형_코드, 표시크기, 내부크기, 정확도, 비율, nullable)

      cursor.fetchone(); # 결과 한개, 더이상 레코드 없으면 None
      curor.fetchmany(); # n 개의 결과. 튜플
      cursor.fetchall(); # 남은 결과 전체. 튜플

      # 튜플이 아닌 사전 형식으로 필드 가져오기
      cursor = db.cursor(MySQLdb.cursors.DictCursor)
      # 위 형태로 커서를 가져오면 fetch*() 메소드 실행 결과가 필드명을 키로 한 사전이다.
    2.  
    3. 커밋/롤백
      db.commit()
    4. db.rollback()

    5. # DB 작업 종료
      cursor.close()
    6. db.close()


    참고로...
    아직 MySQLdb 모듈이 python 버전 2.5까지밖에 지원을 안해주는군요...
     

    + Recent posts