티스토리 툴바


파이선2011/10/13 16:17
python unicode은 utf-8, utf-16 같은 encoding과는 다른 것이었다. 이것 때문에 엄청 해맸다.ㅜㅜ

http://wiki.python.org/moin/UnicodeEncoding 사이트의 내용을 번역해 본다.

파이선에서는 여러가지 Unicode 인코딩을 지원한다.

다음은 주로 쓰이는 유니코드 인코딩이다.
utf-8
utf-16

아주 중요한점은 이 유니코드 인코딩과 파이선 유니코드와는 별개라는 것이다.
 
다음은 utf-8 이나 utf-16 인코딩의 byte string과 파이선 unicode string의 차이점을 보여준다.

u"foo" - 이건 파이선의 unicode string 이다.
"foo" - 이건 그냥 byte string - 3 바이트 이다.
u"foo".encode('utf-8') -- 처음에 파이선 unicode string을 만든다음에, 이걸 다시 utf-8 으로 인코딩 한 byte string을 나타낸다.

'foo'를 표현하는 데는 3바이트가 필요하지만 u'foo'를 표연하는 데는 몇 바이트가 필요한지 알 필요가 없다.  
Posted by eternity74
애플2010/08/17 13:46
iPod 터치 2세대 모델을 사용중인데, iOS4 에서 멀티 테스킹과 바탕화면에 배경화면을 제공한다기에 혹해서 업그레이드를 눌렀다.
하지만, 그 다음부터 오늘 성능저하의 스트레스는 엄청났다. 메뉴전환시, 음악을 듣기 위해서 메뉴 진입시 등등 딜레이들이 스트레스를 줬다.
다운그레이드를 하기 위해서 SHSH BLOB를 백업해야 한다는 것은 다운그레이드를 시도하려고 할때 알게 되었다. 넓고 넓은 인터넷을 SHSH BLOB 없이 다운그레이드 하는 방법을 찾아서 해메고 다니다가, iPhone OS 3.0 은 저런게 없이도 된다는 것을 알게 되었고, 3.0 으로 다운그레이드를 시도 하였다. 방법은 성공.

3.0 에서 3.1.2 로 업그레이드 하기 위해서는 3.0 에서 redsn0w 0.8 버전으로 jb 한후에, 3.1.2 custom firmware를 다운로드하면 된다.

3.0 jb 버전에서 recovery mode, dfu 모드 진입 하지 않고 일반 메뉴상태에서 itunes 로 3.1.2 custom firmware를 restore 성공 하였다. 얏호.

그 뒤에 3.1.3 custom firmware로도 해봣는데 잘된다.
Posted by eternity74
컴퓨터2010/08/02 16:24
소스코드를 문법에 맞게 색을 입혀주는 멋진 스크립트이다. 내 블로그에 사용중인 버전은 3.0.83 버전이다.

syntaxhighlight 를 다운로드 받기 위해서는 http://alexgorbatchev.com/SyntaxHighlighter/download/ 사이트에 방문하여 받고, 압축파을을 해제 한다.

티스토리에 추가하기 위해서는 아래와 같이 HTML/CSS 편집으로 들어간다.


파일 업로드 탭을 선택후, 압축 해제한 파일중 styles 디렉토리와 scripts 디렉토리에 있는 모든 파일을 업로드 한다.
그 다음 HTML/CSS 편집 탭을 누른뒤, 위와 같이 <title> 아래 부분에 syntaxhighlight 에 필요한 소스를 추가해 준다.
<script type="text/javascript" src="./images/shCore.js"></script>
<script type="text/javascript" src="./images/shBrushAS3.js"></script>
<script type="text/javascript" src="./images/shBrushCpp.js"></script>
<script type="text/javascript" src="./images/shBrushCss.js"></script>
<script type="text/javascript" src="./images/shBrushDiff.js"></script>
<script type="text/javascript" src="./images/shBrushJava.js"></script>
<script type="text/javascript" src="./images/shBrushJScript.js"></script>
<script type="text/javascript" src="./images/shBrushPerl.js"></script>
<script type="text/javascript" src="./images/shBrushPhp.js"></script>
<script type="text/javascript" src="./images/shBrushPlain.js"></script>
<script type="text/javascript" src="./images/shBrushPython.js"></script>
<script type="text/javascript" src="./images/shBrushSql.js"></script>
<script type="text/javascript" src="./images/shBrushVb.js"></script>
<script type="text/javascript" src="./images/shBrushXml.js"></script>
<script type="text/javascript" src="./images/shLegacy.js"></script>
<link href="./images/shCore.css" rel="stylesheet" type="text/css">
<link href="./images/shThemeDefault.css" rel="stylesheet" type="text/css">
<script type="text/javascript">
     SyntaxHighlighter.all()
     SyntaxHighlighter.config.stripBrs = true;
     SyntaxHighlighter.config.stripBrs = "blockquote";
</script>
설치한후 syntaxhighlight 를 사용하기 위해서는 아래과 같이 <blockquote> 태그를 이용하면 편하다. <pre> 태그를 이용하면 <br>태그가 마구 생겨남.ㅜ.ㅜ

<blockquote class="brush: 원하는문법">
코드
</blockquote>

문론 사용하려는 문법에 대한 shBrushxxx.js 파일이 위에 포함되어 있어야 한다. ( 위 예제는 내가 주로 사용하는 문법만 포함해 두었다. )티스토리에서 스킨을 변경하면 이전에 올려 놓았던 소스와, skin.html 수정본이 날라가기 때문에 새로 수정해줘야 한다.그때 사용하기 위해서 기록을 남겨 놓는다.
Posted by eternity74
파이선2010/07/20 11:46
python 에는 list comprehension 이라는 것이 있다. 리스트를 쉽게 만들 수 있게 해주는 문법이다.

1. 0 부터 99 까지 정수를 가지는 리스트를 만들어 보자.
>>> result = [ x for x in range(0,100) ]>>> print result [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]>>>
한 줄에 원하는 것을 만들 수 있어서 정말 편하다.

문법을 이해 하자면, 맨 앞의 x 가 리스트의 element로 들어가는 표현이다. x 라고 쓰지 않고 2**x 와 같이 쓴다면, 2 의 x 승의 값이 리스트로 들어 간다. x 값은 그 뒤에 나오는 for 문에 의해서 반복되어진다.

for 문은 중복해서 사용 가능하다. 
>>> result = [(x,y) for x in range(0,10) for y in range(0,10)]>>> print result[(0, 0), (0, 1), (0, 2) , (0, 3), (0, 4), (0, 5), (0, 6), (0, 7), (0, 8), (0, 9),(1, 0), (1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (1, 7), (1, 8), (1, 9),(2, 0), (2, 1), (2, 2), (2, 3), (2, 4), (2, 5), (2, 6), (2, 7), (2, 8), (2, 9),(3, 0), (3, 1), (3, 2), (3, 3), (3, 4), (3, 5), (3, 6), (3, 7), (3, 8), (3, 9),(4, 0), (4, 1), (4, 2), (4, 3), (4, 4), (4, 5), (4, 6), (4, 7), (4, 8), (4, 9),(5, 0), (5, 1), (5, 2), (5, 3), (5, 4), (5, 5), (5, 6), (5, 7), (5, 8), (5, 9),(6, 0), (6, 1), (6, 2), (6, 3), (6, 4), (6, 5), (6, 6), (6, 7), (6, 8), (6, 9),(7, 0), (7, 1), (7, 2), (7, 3), (7, 4), (7, 5), (7, 6), (7, 7), (7, 8), (7, 9),(8, 0), (8, 1), (8, 2), (8, 3), (8, 4), (8, 5), (8, 6), (8, 7), (8, 8), (8, 9),(9, 0), (9, 1), (9, 2), (9, 3), (9, 4), (9, 5), (9, 6), (9, 7), (9, 8), (9, 9)]
if 문을 사용해서 list에 추가 할때 filter를 사용 할 수도 있다.
>>> result = [ x for x in range (0,100) if x%2!=0 and x%3!=0]>>> print result[1, 5, 7, 11, 13, 17, 19, 23, 25, 29, 31, 35, 37, 41, 43, 47, 49, 53, 55, 59, 61, 65, 67, 71, 73, 77, 79, 83, 85, 89, 91, 95, 97]
python 사용하면서 아주 만족도가 높은 문법이다.
Posted by eternity74
분류없음2009/04/21 21:55

수학적 귀납법

p(1) 이 참임을 보인다.
p(n) 이 참이면 반드시 p(n+1) 이 참임을 보인다.
Posted by eternity74
TAG 수학
파이선2008/08/28 10:59

trac 의 한 소스를 보다가 아래와 같은 문장을 보았다.


${ticket.exists and 'Submit changes' or 'Create ticket'}
ticket.exists 가 참이면 'Submit changes' 를 거짓이면 'Create ticket' 을 의미하게 되는 문장이다.
이 문장을 문법적으로 이해하려고 했는데 잘 이해가 되지 않았다.

python 에서 and 와 or 문은 True 나 False로 evaluation 되지 않는다.

x and y 는 첫번째로 x를 evaulation 하고 true 이면 x의 evaulation 값을 리턴하고, false이면 y의 evaluation 값을 리턴한다.

x or y 는 x를 evaluation 하고 true 이면 x의 evaulation 값을, false 이면 y이 evaulation 값을 리턴한다.

${ticket.exists and 'Submit changes' or 'Create ticket'} 문장을 보면 ticket.exists 가 참이면 'Submit changes' 를 evalutation 한다 이는 참임으로 'Submit changes' 스트링이 결과값이다. ticket.exists 가 False 이면 ticket.exists and 'Submit changes' 전체가 ticket.exists 로 계산되고  ticket.exists or 'Create ticket' 을 연산하게 된다.

나중에 python.kr 사이트에서 게시물 검색중 관련된 내용을 알았다.
C언어에서 a ? b : c 라는 표현을 python으로 옮길 때,
a and b or c 와 같이 표현하면 된다는 것을, 하지만 이때 b는 항상 true 로 판별되어야만 가능하다는 것을.....
Posted by eternity74
TAG 파이선
컴퓨터2007/09/28 16:16
 해당컴퓨터로 접속은 잘 되는데 보안정책부분에서 guest 허용이 되지 않아 접근이 되지 않는것 같습니다. 혹은 바이러스 때문에 보안정책이 손상되서 그럴수도 있구요.. 다음 방법을 참고해 보세요..

*** 만약 XP pro를 사용하신다면

1. [제어판]-->[사용자계정]-->[guest]가 사용함으로 되어 있는지 확인

2. 되어있다면 시작 → 설정 → 제어판 → 관리도구 → 로컬보안정책/로컬정책/사용자 권한 할당의 우측항목의 '네트워크에서 이 컴퓨터 액세스' 에 'Everyone' 혹은 guest를 추가합니다.

3. 재부팅 시킨 후 공유폴더에 접근하는지 확인해 보세요..


*** 만약 XP Home을 사용하신다면

1. [제어판]-->[사용자계정]-->[guest]가 사용함으로 되어 있는지 확인

2. 주변에 xp pro 사용하는 PC를 찾아 그 PC의 c:\windows\system32 폴더에 가셔서 secedit.exe 파일을 복사

3. 복사한 파일을 xp home의 c;\windows\system32 폴더안에 붙여넣기

4. 다음내용을 메모장에 복사하여 home_allowaccess.inf 파일로 만듬

[Unicode]
Unicode=yes
[Version]
signature="$CHICAGO$"
Revision=1
[System Access]
EnableGuestAccount = 1
[System Log]
[Security Log]
[Application Log]
[Event Audit]
[Registry Values]
machine\system\currentcontrolset\control\lsa\restrictanonymoussam=4,1
machine\system\currentcontrolset\control\lsa\restrictanonymous=4,0
machine\system\currentcontrolset\control\lsa\forceguest=4,1
[Group Membership]
[Privilege Rights]
sedenynetworklogonright =
senetworklogonright = *S-1-1-0,*S-1-5-32-545,*S-1-5-32-547,*S-1-5-32-551,*S-1-5-32-544,*S-1-5-21-1390067357-789336058-1708537768-501
[Registry Keys]
[Profile Description]

5. 만든 inf 파일을 xp home의 c:\windows\system32 폴더안에 넣습니다.

6. xp home에서 명령프롬프트를 실행하셔서 c:\windows\system32로 이동

7. 다음 명령어를 입력하고 엔터
secedit /configure /cfg home_allowaccess.inf /db temp.db /verbose

8. 진행과정이 퍼센티지로 나타나면서 명령을 잘 수행했다는 메세지가 나오면
명령프롬프트 창을 닫고 PC 재부팅!!

9. 공유폴더에 접근하는지 확인해 보세요

성공하셨나요? 참고로 위의 방법은 보안정책값을 초기화하는 방법입니다
Posted by eternity74
분류없음2007/07/25 09:21
회사에서 도메인 정책상 윈도우 자동 업데이트 설정 수정이 되질 않았다. 내 컴퓨터는 자동 업데이트만 시작되면 CPU 점유율이 높아지곤 했다. 설정을 변경하고 싶었지만, 변경이 되질않아 애를 먹었다.
인터넷 검색끝애 아래와 같은 방법을 알아냈다. ㅎㅎㅎ


출처 링크

Automatic Updates options are greyed out?
Published : April 10, 2005

Symptom

When you open the Automatic Updates tab in My Computer Property sheet, or from Control Panel, all of the Automatic Updates configuration options may be grayed out. This happens due to any of the following reasons:

  1. You're not logged on as Administrator (or equivalent)
  2. Automatic Updates Policy is enabled
  3. Automatic Updates (and Windows Update) access is blocked via Group Policy

Resolution

To make the Automatic Updates options configurable by the user (only for stand-alone systems), remove the restrictions 2 & 3 above.

  • Click Start, Run and type REGEDIT.EXE
  • Navigate to this location:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Policies \ Microsoft \ Windows \ WindowsUpdate \ AU

  • In the right-pane, delete the two values AUOptions and NoAutoUpdate
  • Navigate to this location:

HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ WindowsUpdate

  • In the right-pane, delete the value DisableWindowsUpdateAccess

Using the Group Policy Editor - for Windows XP Professional

  • Click Start, Run and type gpedit.msc
  • Navigate to the following location:

=> Computer Configuration
==> Administrative Templates
===> Windows Components
====> Windows Update

  • In the right-pane, double-click Configure Automatic Updates and set it to Not Configured
  • Then, navigate to this location:

=> User Configuration
==> Administrative Templates
===> Windows Components
====>  Windows Update

  • In the right-pane, set Remove access to all Windows Update features to Not Configured
Posted by eternity74
컴퓨터2007/07/11 10:17
Windows XP를 사용중인데, 테마를 xp에서 고전으로 변경하면 tray에 나오는 시계에 날자정보가 나오지 않고 마우스를 가져다 놔야 툴팁으로 날자가 표시되어 꽤 귀찮다.

사용자 삽입 이미지

Windows XP 기본 시계


이 시계를 입맛에 맞게 변경시키는 아주 작은 툴이 있어서 소개한다.
바로 TClock Light 라는 툴이다.




배포판에 소스까지 포함되어 있어 간단하게 오늘이 몇주차인지 표시하도록 수정해봤다.


사용자 삽입 이미지

몇주차인지 표시하려면 TClock 설정> 서식에 표시 형식 직접 입력을 선택하고, w 문자를 사용하면 몇 주차인지 표시하도록 했다. 아래 수정된 dll파일을 이용해야한다.


마지막으로 내가 설정한 세팅은 다음과 같다

사용자 삽입 이미지

Posted by eternity74
컴퓨터2007/06/05 13:48

현재 로컬 PC에 모니위키를 사용중에있다. 위키에서 code syntax highlight를 하기 위해서는 VimProcessor 를 이용하면 쉽게 가능하다.

Vim 으로 Highlighting 을 위해서 아래 2가지를 추가해주면 가능하다.

1. Vim 설치
2. config.php 파일에 vim 경로 등록

$path="C:\Program Files\Vim\Vim70";


 

두가지를 확인하면 아래와 같은 문법을 사용하면 wiki에서 문법에 맞춰 색이 나온다.
{{{#!Vim c
void main(void)
{
   printf("Hello world");
}
}}}

위의 예제의 결과물
사용자 삽입 이미지


만약 화면 layout이 이상해 진다면 vim.php 파일의 아래부분을 다음과 같이 변경해주면 정상동작한다. (136 라인 )
$out=substr($out,$fpos+6,$tpos - $fpos - 6);

substr의 3번째 인자가 length 인데 end position으로 잘못 코딩되어 있었다.
Posted by eternity74