이전 포스트에서 사용한 애플스크립트.

이름은 InternalKeyboardEnabler.


그냥 쉘 스크립트 였는데, 매번 터미널 들어가기 귀찮아 애플스크립트로 작성하고 Application으로 저장했다.

안에 내용을 보면 내부 키보드 드라이버를 로드/언로드하는 것뿐이 없다.


실행하면 Enable 메뉴와 Disable 메뉴가 다음과 같이 나오는데,

Enable 메뉴는 노트북 키보드 사용가능하게, Disable은 키보드 사용을 불가능하게 한다.

Diable시 다음과 같이 경고(?)가 나오지만, 무시하고 OK를 선택하면 리붓 전까지는 맥북 키보드가 동작하지 않을것이다.


InternalKeyboardEnabler 다운로드

InternalKeyboardEnabler.zip


Posted by xHuro
,

A87등 bootloader가 올라가있는 atmega에서 isp를 통하지 않고 hex파일을 전송하는 놈인데...

(자세한 용어는 기억이 가물가물... 임베디드 안한지가 10년째...)


윈도우용만 있어서 맥에서 컴파일만 한것. 소스는 여기(http://www.obdev.at/products/vusb/download.html)에...


참고로 매버릭스에서 컴파일하고 실행해봤기 때문에 32bit 환경은 장담못하겠다.



Posted by xHuro
,
차라리 iTerm을 설치하고 콘솔로 명령 내리는 게 훨씬 정신 건강에 좋다.
Posted by xHuro
,
http://www.experimentsingameprogramming.com/chapter1.php

개인적으로 DirectX에 관한 기본을 어느 정도 익히고 난후에 보면 좋을 튜토리얼이다. 2D와 3D를 같이 사용하므로 기본 기술을 간단히 리뷰할 수 있을 꺼라 생각한다. 

나름대로 변경한 소스가 있기는 한데, 소스 정리후에 올려야겠다.
Posted by xHuro
,
VirtualBox가 2.x를 넘어오면서 많이 안정화 된 것을 느낀다. (여기서의 안정화는 익스플로러에서 activeX를 사용할 때의 안정화다.)

내가 주로 거래하는 은행 사이트들은 뻗어버리지 않고, 잘 연결된다.

월급 통장이 있는 신한 은행.

대학때 부터 써오던 농협.

VirtualBox 1.5.x때에는 activeX 설치하다가 뻗어버리던, 새마을 금고까지.


오픈소스로 이정도까지 발전할 줄 몰랐던 VirtualBox. 이젠 Vmware에 견주어도 부럽지 않다.
Posted by xHuro
,
오늘 낮, 회사 데스크탑의 archlinux를 32bit에서 64bit로 올렸다. ftp 버젼으로 설치를 하는데, 패키지를 다운로드 받는데 시간이 너무 오래 걸리는 것 같아, 한국 미러 사이트를 찾아보니 없었다.

결국 기본 사이트(ftp.archlinux.org)에서 패키지를 받고 설치했다. (KDE를 포함하여 두어시간 걸렸다. 집에서 노트북에 설치할 때는 켜놓고 잠들어서 얼마나 걸리는지 파악하기 힘들었다 ㅡㅡ)

매번 패키지를 다운로드 받고, 업데이트할 때마다 느리다는 느낌이 들었는데, 이참에서 스크립트라도 만들어야 겠다고 결심하고 즉시 실행에 옮겨봤다.

- http://thirdman.webzero.co.kr/archlinux/smart-mirror/0.1/PKGBUILD
- http://thirdman.webzero.co.kr/archlinux/smart-mirror/0.1/smart-mirror-0.1.tar.gz

그리고 이왕하는 김에 ABS도 연습삼아 해볼 겸 PKGBUILD도 만들어 봤다.

설치
# wget http://thirdman.webzero.co.kr/archlinux/smart-mirror/0.1/PKGBUILD
# makepkg
# pacman -U smart-mirror-0.1-1-x86_64.pkg.tar.gz


실행
실행시 주의점은 root 또는 sudo가 가능한 account로 실행해야 한다.
# smart-mirror


설명
패키지안에는 shell script 파일 하나와 python script 파일 하나, 총 2개이며 특별히 어려운 내용은 없다.

python : update_mirrorlist
/etc/pacman.d/mirrorlist를 읽어들여 모든 server에 ping을 해보고, response time 이 짧은 순으로 정렬하여 /tmp 에 저장한다.

shell : smart-mirror
python script를 실행시키고, /etc/pacman.d/mirrorlist 를 업데이트한다. 업데이트전 mirrorlist 파일은 mirrorlist.updatetime 으로 백업된다.


결과화면
실행전 /etc/pacman.d/mirrorlist

실행후 /etc/pacman.d/mirrorlist


TODO
1. 로컬의 mirrorlist 파일 update
2. ArchLinux Mirrorcheck and status report(웹에서 실시간으로 mirrorlist check)에서 list를 받은 다음 update



ftp 설치시에는 mirror.neotuli.net 서버가 그나마 괜찮은 속도를 보였다. 리스트에 있으므로, 무작정 enter치지 말고, mirror.neotuli.net 서버를 선택하도록 하자.


PS
패키지명은 smart, 즉 똑똑하다는 얘기인데, 딱 오해하기 쉬운 패키지명이 되어버렸다. 패키지명을 뭘로 해야하나 고민하다가 날림으로 지었다.
Posted by xHuro
,
얼마전 arch linux의 KDE 패키지가 4.1.x에서 4.2.x로 업데이트 되었다.
그동안 불량했던, KDE plasma와 workspace, 그리고 konsole이 심신의 안정을 찾고 있는 중이다.

applet이랑 theme도 많이 추가되어 이쁘장한 UI를 꾸밀 수 있다.

자, 또한번의 KDE빠의, 간만의 스크린샷.


Posted by xHuro
,
python에서 XML을 파싱할 때 주로 elementtree 라이브러리를 사용한다. 나 같이 XML에 대해 잘 몰라도 쉽게 노드에 접근 및 추가할 수 있다.

요넘을 이용한 간단한 rss 파서를 만들어봤다. 아주 간단히...ㅋㅋ

#-*-encoding:utf-8
import socket
from urllib2 import Request, urlopen
import elementtree.ElementTree as ET

class Rss(object):
    id = int()
    link = str()
    title = str()
    description = str()
    item_list = list()

class RssItem(object):
    id = int()
    title = str()
    link = str()
    description = str()
    pub_date = str()
    site_id = int()

def get_rss(rss_url):
    rss = Rss()
    req = Request(rss_url)
    rss_content = str()
    response = None

    try:
        timeout = 3
        socket.setdefaulttimeout(timeout)
        response = urlopen(req)
    except IOError, e:
        if hasattr(e, 'reason'):
            print 'We failed to reach a server.'
            print 'Reason: ', e.reason
        elif hasattr(e, 'code'):
            print 'The server couldn\'t fulfill the request.'
            print 'Error code: ', e.code
        sys.exit(0)

    try:
        rss_content = response.read()
        tree = ET.fromstring(rss_content)
        channel = tree[0]
        rss.title = channel.find('title').text.strip()
        rss.link = channel.find('link').text.strip()
        rss.description = channel.find('description').text.strip()
        items = channel.findall('item')

        for item in items:
            rss_item = RssItem()
            rss_item.title = item.find('title').text.strip()
            rss_item.link = item.find('link').text.strip()
            rss_item.description = item.find('description').text.strip()
            rss_item.pub_date = item.find('pubDate').text.strip()
            rss.item_list.append(rss_item)
    except Exception, e:
        print e

    return rss

if __name__ == '__main__':
    site = get_rss("http://no99.tistory.com/rss")
    print site.title


참고문서
(참고하기 보다는 그냥 복사해왔다는 말이 정확하겠다^^)
urllib2 - http://www.voidspace.org.uk/python/articles/urllib2.shtml
elementtree - http://effbot.org/zone/element-index.htm



Posted by xHuro
,
연말이라 한동안 관심밖이었는데, 그새 TurboGears 2.0 Beta1이 release (그전에는 TurboGears 1.9.x 라 불리었었다) 되었다.

참고로, TurboGears 1.0은 python 2.5.x 에서만 설치된다. python 2.6 이상에서는 설치되지 않는다^^;;

연말 동안 opensuse에서 archlinux로 옮겨탔는데, default package로 python 2.6이 설치되어 있기 때문에,
이전 포스트는 모두 버리고(?), TurboGears 2.0으로 다시 포스팅해야겠다.
(2.0을 사용한지는 약 3달가까이 되어가는데, 개인적으로 1.0보다 2.0을 추천한다^^)
Posted by xHuro
,
뻑하면 멈춰서서 멍때리고 있고, GTK 기반 프로그램 쓰다가 QT 기반 프로그램 사용하면 키보드 병신되고...

그래, 솔직히 5.04이후, 8.04.1까지는 그러려니 했다.
그나마 KDE 3.5.9까지는 그럭저럭 몇번의 삽질만에 잘 버텼으니...
근데, 이번 KUbuntu 8.10은 많이 아쉽다.
아직은 불안정한 KDE 4 + KUbuntu 이니... 여기저기 사용성에 대한 버그가 자잘하게 눈에 띈다.

무료로 쓰는데, 하면서도 내가 찾아서 고치기에는 양이 너무 방대하다.
버그 리포팅도 영작이 되어야 하지 ㅠㅠ

결국 3년동안 사용했던 배포판을 던져 버리기로 결심해버렸다.

주말이후 노트북에 OpenSuse를 설치하면서 테스트해보는 중, 레드햇 기반의 배포판은 2005년 이후 안썼으니 적응이 잘 안된다. (apt-get이 짱인데... 쩝~)

한 3-4번 정도 깔았나... (특히 etc 하위 설정 파일이 틀려서 애 먹었다.)
이제 어느정도 내가 원하는 틀을 잡아가는구나.

데스크탑에는 Mandriva나 깔아버릴까.

세팅 기념 스샷 하나.




Posted by xHuro
,
어제부로 Ubuntu 8.10이 정식 릴리즈되었다.

커널이 2.6.27 버전으로 올라왔는데, 기존에 사용하던 ipw3945 드라이버 역시 재컴파일해줘야한다.
(이전 포스트 Ubuntu 8.04, Dell M1330에서의 무선 랜 문제(iwl3945) 참고)

2.6.27에서는 ieee82111의 함수 시그너쳐가 변경되었다. patch 내용은 아래에서 확인할 수 있었다.
Kernel v2.6.27 /net/ieee80211/ieee80211_wx.c

이전 포스트에서 컴파일을 해주고 설정파일을 고쳐야하는 번거로움이 있어서, 날림 쉘 스크립트를 만들었다.
압축을 푼 다음, ipw.sh를 먼저 실행한 후, 리붓하고 ipw2.sh 실행하면 설정 파일을 생성하고 알아서 리붓된다.
쉘 스크립트는 시간날때마다 정교화(?) 작업을 하도록 해야겠다.
(단, 이 스크립트는 2.6.27-x만 사용 가능하다.)



Posted by xHuro
,
간만에, ubuntu.com에 들어갔더니...
사용자 삽입 이미지

어라? Debian 15주년을 축하하고 있구만.
오늘인가? 궁금증이 들어 wikipedia에서 찾아보니...

debian was first announced on 16 August 1993, by Ian Murdock, who was then a student at Purdue University


이틀 남았네... 한번도 debian을 써보지 않았지만, 어쨌건 축하^^
Posted by xHuro
,
얼마전 노트북의 Ubuntu를 밀고, Kubuntu hardy 64bit용으로 설치했다. 그리고, 최근에 정식 릴리즈된 eclipse ganymede를 다운받아 실행했다.

그.런.데, 계속 튕김질이었다. (어디서 튕김질이야!!!)
콘솔에서 eclipse를 실행해보니...
# An unexpected error has been detected by Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007fc53c09c25a, pid=10671, tid=1086290256
#
# Java VM: Java HotSpot(TM) 64-Bit Server VM (10.0-b23 mixed mode linux-amd64)
# Problematic frame:
# V  [libjvm.so+0x1f125a]
#
# An error report file with more information is saved as:
# /media/sda4/static/program/eclipse/hs_err_pid10671.log
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.

64비트용 java vm에 무슨 버그가 있는지...
열심히 구글질... (또다시 삽질의 세계로 ㅡㅡ) 해결했다. (정답일지는 모르겠지만...)
[Solved] Eclipse 3.4 + Ubuntu 8.04 + SUN JDK == Crash

결론만 얘기하자면, eclipse.ini에 다음을 추가해준다.
-XX:CompileCommand=exclude,org/eclipse/core/internal/dtree/DataTreeNode,forwardDeltaWith

Posted by xHuro
,
얼마전 회사 물품으로 지급받은 M1330이 계속해서 무선 네트워크(Intel Pro/Wireless Network 3945ABG)가 삐리리해지는 상태가 발생했다.
BandWidth를 많이 사용하게 되면 dmesg 확인 결과, 아래와 같은 message뿌리고 먹통이 된다.

[ 2011.554701] ADDRCONF(NETDEV_UP): wlan0: link is not ready
[ 2011.586582] wlan0: Initial auth_alg=0
[ 2011.586592] wlan0: authenticate with AP 00:0b:85:64:62:2f
[ 2011.784093] wlan0: authenticate with AP 00:0b:85:64:62:2f
[ 2011.983660] wlan0: authenticate with AP 00:0b:85:64:62:2f
[ 2012.183236] wlan0: authentication with AP 00:0b:85:64:62:2f timed out

처음에는 iwl3945 모듈을 내리고 올리는 방법을 사용하였으나, 웹질 중에 몇가지 사실을 확인하게 되었다.
(Using IPW3945 instead IWL3945 for Intel wireless 3945 in hardy 참고)
1. 8.04로 들어오면서 이전 ipw3945 모듈을 사용하지 않고 iwl3945 모듈을 사용한다.
2. 그런데, 요 iwl3945 모듈이 문제점 몇개가 지적되고 있다
-throughput이 rx에서 100kb/s로 제한된다.
-무선랜이 매우 불안정하다.
-네트워크를 찾는 도중 시스템이 때때로 멈춰버린다.

역시나, 내가 겪던 증상이랑 비슷하다. 노트북을 덮어버리면 무선 네트워크를 못찾고 방황한다던지...
결국 Using IPW3945 instead IWL3945 for Intel wireless 3945 in hardy 페이지 처럼 ipw3945를 사용하기로 결정!

위 페이지에서 소개한 순서와 달리 손이 좀 더 간다.

1. ieee80211 모듈 컴파일(ieee80211 subsystem for Linux에서 소스를 다운로드 받아, 커널 2.6.24 패치를 적용)한다.

2. 위 페이지와 동일한 순서로 ipw3945를 컴파일하고 설치한다.

3. sudo aptitude install linux-restricted-modules 실행하여 linux-restricted-modules을 설치하고, Hardware Drive Manager에서 Intel Pro/Wireless Network 3945ABG를 in use로 만든다.

4. 리부팅~

몇번 테스트 해봤는데, 문제없이 진행된다. Dell M1330에서 ubuntu 8.04를 사용하면서 무선 네트워크문제를 겪는 사람은 한번 시도해봐도 괜찮을 듯.

5. 패치파일들
 - ieee80211 : - ipw3945 :

Posted by xHuro
,
사용자 삽입 이미지

새로이 깔 자신은 없고, 일단 집에서 사용하는 노트북부터 업그레이드 중...
그나저나 업그레이드하기는 쉬운데, 느리다. 한숨자고 일어나면 끝나있으려나^^;;

21시 51분 추가.
네트웍으로 패키지 정보를 가져오는 바람에 너무 늦어 포기하고 CD로 다운로드 받아 업그레이드 중이다.
잠깐 언급하자면,

1. ftp://ftp.daum.net/ubuntu-releases/kubuntu/hardy 에서 alternative CD를 받는다. (꼭 alternative여야 하는지는 모르겠지만, cdromupgrade 프로그램 - https://help.ubuntu.com/community/HardyUpgrades/Kubuntu 를 참고-이 alternative 밖에 없더라.) 집에서 약 15분 정도 걸렸다.

2. Konsole로 iso를 mount한다. (집에 공CD가 없어서 걍 디렉토리에 mount 했다.)
sudo mount kubuntu-8.04-alternate-i386.iso /media/cdrom -o loop

3. https://help.ubuntu.com/community/HardyUpgrades/Kubuntu의 첫번째 방법을 따라하면 된다. 단, kdesu "/cdrom/cdromupgrade"에서 mount된 디렉토리로 명령을 바꿔서 하자~

사용자 삽입 이미지

Posted by xHuro
,
앞으로, 정식 릴리즈가 3일 남았다.

아침에 출근해서 잠시 들러봤는데 열려있네?

냉큼 주문했다는...

Ubuntu 32bit : 20장
Ubuntu 64bit : 10장
Kubuntu 32bit : 10장
Kubuntu 64bit : 5장


7.10도 많이 남아돌고 있는데, 괜시리 많이 신청하는 게 아닌가 싶다. (의외로 주위에서 필요하다는 사람이 별로 없었다. 관심있는 사람이 많을 줄 알았는데 말이지... 쩝~)

어쨌든 3일 남았지만, 당분간은 7.10으로 간다. 7.10 나왔던 초반에도, 시스템이 불안불안했는데... 지레 겁 먹어버렸다. 이번 버전은 좀더 안정된 상태에서 나왔으면 하는 바램이... (개인적인 경험으로는 7.04가 제일 안정적이었다고 생각된다.)
Posted by xHuro
,
Moonlight(간단히 Silverlight for linux)를 위해 더이상 삽질하지 말자.

Linux용 firefox add-on이 나왔다. 약간 불안감이 있긴 하지만, 맛보기로 쓰기는 괜찮네~
(자, 내일부터 스터디 시작이다 ㅠㅠ)

정 컴파일해보고픈 사람들은 아래의 링크를 참고하시라~ (단, 별의별 오류가 나도 난 책임없다.)
Moonlight On Ubuntu 7.04
moon, use Silverlight Plugin in Ubuntu 7.10


Posted by xHuro
,
사용자 삽입 이미지

bootchart로 분석한 내 애마(Undergound) 부트 시간.


오늘따라 노트북이 느리게 부팅되는 감이 있어, 기웃거려보니 꽤 괜찮은 boot time 분석기가 있어서 올려본다.
이름하야~ bootchart! dmesg로 보여지는 부트 타임을 일목요연하게, 이쁘게 그림으로 보여준다.

여러가지 정보들이 보기 쉽게 나오니 한번쯤 실행해서, 부팅과 동시에 자기 컴안에 어떤 데몬들이 떠다니고(?) 있는지 확인해보는 것도 의미가 있을 듯 싶다.

synaptic으로  bootchart를 찾아서 설치하면 되고, 설치 후 리부팅하면 /var/log/bootchart/ 안에 부팅 로그를 분석하여 png 파일로 저장된다. 매번 부팅할 때마다 저장되는 듯.
Posted by xHuro
,
http://www.voidspace.org.uk/python/mock.html
Posted by xHuro
,
그동안 열심히 신청해서 받은 CD들..

그동안 열심히 신청해서 받은 CD들..


5.10부터 7.10까지(중간에 shipit 정책이 바뀌는 바람에 6.10에 대한 CD는 못 받았다. 쩝...)
처음, 5.04의 Live CD라는 게 신기해서 설치해보고, vmware로 테스트 해 본 것이 엊그제 같은데, 2년 6개월이 지난 지금 그동안 많은 발전이 있었다. Live CD와 Install CD가 합체(?)되고, 신청하면 신청하는 데로 주던 CD들도 수량이 한정되고...

무엇보다, Ubuntu가 널리 사용되지 않았어도, Ubuntu 이름은 널리알려졌다는 것...

그러고 보니... Kubuntu는 초지 일관 비슷한 디자인이네. Ubuntu는 사람들이 늘었다 줄었다 하는데..ㅎㅎ

p.s 최근 블로고스피어에 데스크탑 리눅스에 관한 이야기들이 많은데...
항상 얘기하지만, 미들웨어 성격의 같은 OS라도 애시당초 만들어질 때의 목표가 틀리다는 걸 알아줬으면 한다.
누구 하나 데스크탑 리눅스를 쓰라고 강요하는 사람은 없다는 것도...
Posted by xHuro
,