이글루스 검색기능은 장식인가?

몇일전에 이오공감에 올랐던, 핸드폰 관련 글을 찾으려고 검색에서 이것저것 처봐도 않나온다. 

구글에서 검색하니 첫번째로 나온다. 

-_-;;;

이글루스 검색은 여전히 장식이였구나. 

by 밀리네스 | 2009/09/23 23:25 | 일상 | 트랙백 | 덧글(10)

스노우레오파드에서 MacPort 업그레이드에 실패할때 해결방법

레오파드에서 스노우레오파드로 업그레이드후에   port selfupdate 후에  sudo port upgrade outated 를 실행하면  fontconfig 를 받아서 업그레이드 하려다가 실패하길래 원인을 조사 해 보았습니다. 

일단 mac port 는 소프트웨어를 컴파일을 통해 설치하기 때문에 cpu 또는 os version 이 달라지면 기존에 설치된 버전을 지우고 새로 설치해야 합니다. 




1. 현재 설치된 패키지 목록을 보관해둡니다. 
port installed > myports.txt

2. 기존 패키지를 제거합니다. 
sudo port clean installed
sudo port -f uninstall installed

3. 저장해둔 파일을 보고 하나 하나 설치해줍니다. 
sudo port install portname +variant1 +variant2 ...


대충 최상위에 해당하는 패키지를 설치하면 필요로 하는게 모두 따라오니까 그것을 이용하시면 편합니다. 

저 같은경우 자주 사용하는 python25 와 pygtk-25, glade3를 설치하면 어지간한건 다 복구 되더군요. 


참고 : Migration – MacPorts

by 밀리네스 | 2009/09/17 15:21 | 트랙백

Gnome Human Interface Guideline 에 따르는 GTK 어플리케이션 디자인

Gnome Human Interface Guideline 을 따르는 어플리케이션을  glade로 레이아웃을 잡는 것에 대한 요령을 설명하는 글입니다. 

이글을 읽기전에 기본적인  Glade 사용법은 안다고 가정하겠습니다. 

제가 처음 pygtk와 glade를 사용했을때 나름 쓸만하다고 생각했습니다. 그리고 Gnome hunam interface guideline을 보고 가이드라인에서 제시하는 여백을 가지는 레이아웃을 만들려고했을때 답이 없다고 생각했었습니다. 

VBOX, HBOX등의 spacing이나 padding으로는 도저히 여백을 맞출 방법이 없었거든요. 

그래서 다른 유명한 glade 기반의 어플리케이션의 glade파일을 분석해본결과 어느정도 해결책을 알게 되었습니다. 


먼저  GHIG에서 제시하는 가이드라인을 살펴보면,  GHIG에서 제시하는 간단한 여백공식이 있습니다. 
   a. 각 컴포넌트는 패널 안으로 12픽셀만큼 떨어질것
   b. 각 컴포넌트는 가로방향으로는 12 픽셀만큼 떨어질것
   c. 각 컴포넌트는 세로방향으로 9픽셀만큼 떨어질것
   d. 컴포넌트의 그룹간에슨 세로방향으로 18픽셀만큼 떨어질것.
   e. 들여 쓰기 하는 컴포넌트는 12픽셀만큼 들여쓰기할것 
깊이 들어가면  더 많이 있습니다만, 이정도만 지켜줘도 다른  GTK 어플리케이션과 어울리는 레이아웃이 나옵니다. 


그럼 이러한 여백을 어떻게 만들어줄수 있을까요?
핵심은 논리적 그루핑과 박싱, alignment의 활용에 있습니다. 


논리적 그루핑 과 박싱 

박싱의  기준은 같은 들여쓰기를 하는 컴포넌트끼리 묶어라입니다. 

다음과 같은 UI 가 필요하다고 가정해 보겠습니다. 

 * 상위 메뉴 1
  * 하위메뉴 1
 * 상위메뉴 2 


얼핏 그냥 3줄짜리  VBOX 를 이용하면 될것 으로 보입니다만,  논리적으로 구분해보면 3개의 박스가 필요합니다. 
 최외곽 박스, 상위메뉴1+하위메뉴1박스, 하위메뉴1박스입니다. 

이 기준은 각각 논리적인 구분에 항목을 추가하면 어떻게 되느냐입니다. 
하위메뉴2,3이 늘어날수 있기때문에 하위메뉴들의 박스가 필요하고, 이를 상위와 같이 묶어주기 위한 박스가 필요한거죠. 


이런 구조를 가지게 됩니다. 

UI 의 논리적 구성이 끝났으니 이제 레이아웃을 손볼 차례입니다. 

레이아웃의 핵심은 alignment와 이를 넣기 위한 add parent 기능입니다. 

일단  vbox1은 패널로부터 GHIH의 룰  a를 만족시키기 위해서 12픽셀씩 않으로 들어가야 합니다. 
이러한 여백을 관리하기 위해서 alignment가 사용됩니다. 

그림에서 보이듯이 vbox1에서 우클릭을 하고 add parent-> alignment를 실행시킵니다. 


그럼 구조가 위의 그림처럼 변하게 됩니다. 이제 alignment1에 여백을 설정합니다. 

그러면 vbox1이 패널로부터 12픽셀만큼 않으로 들어갔습니다. 

마찬가지로 GHIH의 룰  e를 만족시키기 위해  vbox3도 들여쓰기를 해야겠지요.


다음은 각 GHIH의 룰  c를 만족시키면 되는데 이것은 vbox의 spacing을 이용하면됩니다. 

이렇게 논리적인 박싱과 alignment를 이용하여  Gnome Human Interface Guideline에 따른 UI 레이아웃을 할수 있었습니다. 
심화된 내용은 이것을 활용하는것인데 중요한것은 역시 논리적 박싱입니다. 


기존의 gtk, pygtk 튜토리얼을 아무리 뒤져봐도 이렇게 어떤 가이드라인에 맞추는 내용이 없어서 고생좀 했고, 
이왕 익힌거 간단하게나마 정리해보았습니다. 


by 밀리네스 | 2009/08/01 16:58 | 기술 | 트랙백

OSX 에 PyGTK 개발환경 구축하기.

1. X11 설치 http://guide.macports.org/#installing.x11




5. 쉘 재시작

6. 만약 MacPort를 설치한지 시간이 조금  지났다면(몇일정도)  소스트리를 갱신한다.  
  sudo port -v selfupdate 

7. Python 설치
  sudo port -v install python25

8. Python Select 설치
  sudo python_select python25

9. install pygtk
  sudo port -v install py25-gtk

9-1 설치 도중 설치된 glib2 버전이 낮다고 나오면
이전 버전 제거
sudo port -v uninstall glib2 @버전

신규버전 설치
sudo port -v install glib2

그후에 다시 py25-gtk 설치를 시도한다.

10. 테마를 설치한다. (몇몇 테마는 버전 문제로 설치 않될수도 있지만 그럴때는 그냥 넘어가면 된다)
  sudo port -v install gnome-themes  
sudo port -v install gtk-nodoka-engine  
sudo port -v install gtk-smooth-engine 
sudo port -v install gtk2-aurora  
sudo port -v install gtk2-clearlooks  
sudo port -v install gtk2-extra  
sudo port -v install gtk2-industrial  
sudo port -v install gtk2-murrine

11. Theme switch를 설치한다. 
  sudo port -v install gtk-theme-switch

12. 테마를 선택한다. 
  switch2

13. glade3를 설치한다. 
  sudo port -v install glade3

14. glade 테스트
  glade-3


설치가 바이너리 설치가 아닌 소스컴파일 설치가 대부분이라 
맥북 2.4GHz Core 2 duo 4GB 환경에서 한 3~4시간쯤 걸리니 느긋하게 기다리면서 작업해 나가면 된다. 

특히 시간이 많이 걸리는 부분이 py25-gtk 와 glade3 이다. 뭐 의존하는 모듈들이 한두개가 아닌지라 ^^  


by 밀리네스 | 2009/07/21 14:54 | 기술 | 트랙백

tar 사용시 주의사항

gzip은 여러개의 파일을 묶는 기능이 없다. 

따라서 여러개의 파일을 묶어서 압축하려면 tar와 같이 사용하던가 zip같은 다른 압축포멧을 사용해야 한다. 

꺼꾸로 tar는 묶는 기능만 있고 압축하는 기능이 없다.  물론 z 옵션을 주어 다 묶은후 gzip으로 압축하게 하는 기능은 있다. 


그럼 왜 이렇게 불편한 tar를 쓸까? 


tar는 해당 파일의 심볼릭 링크나,  user id, group, permission등 파일 메타정보도 모두 저장하고 복구하게 되어있다.  

그래서 유닉스 시스템의 파일들을 정상적으로  복구시키기 위해서 tar를 사용하게 된다. 


그런데 리눅스에서 FAT32에 tar 파일을 풀때 문제가 발생한다. 



문제는 FAT32 파티션을 마운트하면 해당 파티션은 마운트 한 유저의 권한, 소유로 마운트되게 된다. (user id, group id등) 일반적으로 root이다. 


여기에 tar 파일을 풀려고 한다면 tar는 해당 파일에서 파일을 추출해 내고,

추출해 낸 파일을 tar에 기록된 원래 압축한 사용자의 user id, group으로 변경시키려고 시도한다. 


그러나 FAT32 파일시스템은 소유에대한 정보를 저장하지 않는 파일 시스템이며 이에대한 변경시도는 실패하며 결국 root:root로 남아 있게 된다. 


tar는 user id , group id 변경 시도가 실패했으므로 압축해제를 중단시키게 된다. 


따라서 tar로 FAT32에 압축을 풀기 위해서는 원본이 root:root이 되어 있거나 

풀기옵션에 소유권을 복구하지 않게하는 옵션을 주어야 한다.

by 밀리네스 | 2009/06/18 17:38 | 트랙백

Linux에서 파티션 숨기기.

linux에서 USB로 부팅한 루트 디스크나 복구용 이미지등이 포함되어 있는 파티션을 숨기고자 할때가 있다. 

그럴때는 HAL을 통해 해당 파티션을 무시하게끔 설정해주면 된다. 

1. UUID
vol_id --uuid  [대상 파티션 디바이스명]
ex) vol_id --uuid /dev/sda1
4A38-46C5

으로 해당 파티션의 UUID를 얻어온다. 


2. UDI
이렇게 얻어온 UUID는  구분자 -(Dash)인데 이 -를 _(Underbar)로 바꾼후
lshal | grep [Converted UUID] 를 실행하여 대당 기기의 HAL UDI를 얻어온다. 


ex) lshal | grep 4A38_46C5
udi = '/org/freedesktop/Hal/devices/volume_uuid_4A38_46C5'
  info.udi = '/org/freedesktop/Hal/devices/volume_uuid_4A38_46C5'  (string)


3. Set HAL property
이렇게 얻어온 UDI를 가지고 프로퍼티를 바꿔어 주면 된다 

sudo hal-set-property --udi /org/freedesktop/Hal/devices/volume_uuid_4A38_46C5 --key volume.ignore --bool true

이렇게 HAL에서 해당 기기의 volume.ignore 프로터피를 true로 지정해주면 Gnome desktop등에서 이 파티션을 무시하고 보여주지 않게 된다. 

sudo /etc/initd.d/gdm restart 등으로 데스크탑을 다시 띄워보면 적용됨을 확인할수 있다. 


4. HAL Policy
물론 이것은 재부팅되면 사라지는 1회성 이다. 이것을 매번 부팅때마다 적용시키고 싶다면
/usr/share/hal/fdi/policy/ 
/etc/hal/fdi/policy
에 HAL 정책파일을 추가해주면 매번 부팅될때마다 적용되게 된다. 


<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
<device>
    <match key="volume.uuid" string="E6C5-A7A9">
      <merge key="volume.ignore" type="bool">true</merge>
    </match>
    <match key="volume.uuid" string="21fd63b4-3d68-4518-a61b-1021a3caa237">
      <merge key="volume.ignore" type="bool">true</merge>
    </match>
  </device>
</deviceinfo>


참고 : 
http://people.freedesktop.org/~david/hal-spec/hal-spec.html
http://june3474.blogspot.com/2007/08/6-udev-hal-gnome-volume-properties.html
http://salgunamu.tistory.com/438

by 밀리네스 | 2009/06/18 17:26 | 트랙백

요즘 NBA은 수비를 않하는군요 -_-

몇년만에 NBA를 볼려고 이번 파이널 경기들을 보고 있는데..



왜이리들 기본기가 떨어지는 겁니까..
파이널에서 이런 수비라니..

자리잡는법도 모르는거 같고
가드가 일부러 어려운 자리가서 패스하고..

공이 떨어졌는데 멍하니 보고있고, 
공가진 사람이 페인트존에 들어왔는데 쳐다보고 있고..


진짜 수준 많이 떨어졌네요..

by 밀리네스 | 2009/06/11 09:38 | 트랙백 | 덧글(4)

정치력이 중요하다.

멍청한, '빨대 꼽힌' 대학생의 소심한 반론

세상을 바꾸는 것은 정치다. 


정치는 별개 아니다, 서로 이해관계가 충돌하는 이슈에 대해 대응해나가것 자체가 정치이다.

그러니 “정치적으로 해석하지 마세요”라던가 하는 부류의 말들이 얼마나 자신의 권리를 포기하는것인가는 좀 생각들좀 해보기 바란다. 


정치가 이슈에 대한 대응이라면 정치력은 무었일까?

간단히 말하면 이슈에 대해 내가 원하는 방향으로의 결과를 도출해내는 힘을 말한다. 


정치력의 발휘에서 “멍청한 애송이”와 “쩔어빠진 늙은이”가 차이가 나는 것이다. 


젊은이는 이상을 말한다. 아는게 그것밖에 없거든. 젊은이는 자신의 의견이 아닌, 배운 의견을 말하게 되어 있다. 

특히 우리나라에서는 “자신의 의견을 생각하고(심화시키고) 표현”하는 것을 교육이 가르쳐 주지 않기 때문에  이 문제가 특히 심하다. 

그렇기 때문에 젊은이들은 “자신의 이상에서 어긋나면 그것은 틀린것“이라고 생각하는 습성이 있다. 


그래서 자신의 취향(이상이라고 말하고 싶지만 그게 진짜 이상일리가 없으니)에 딱 맞는 정당이, 정치인이 없다고 정치에서 눈을 돌린다. 


다음을 보고 오자( 저작권이 있는 그림이라 링크만 건다)

http://kr.engadget.com/2009/05/25/gadget-man/ 


세상에 자신의 취향에 딱 맞는 정치인, 정당, 정치사상은 존재하지 않는다. 




잘 생각해보자. 


자기 자신조차 자신의 취향에 맞지 않는데 

자신의 취향에 맞는 정당, 정치인, 정치사상 그런게 있을거 같은가?


진실로 대학생을 대변하는 정치조직?  이게 얼마나 허황된 것인지를 모른다면 참 할말이 없다. 



그런데 그럼에도 불구하고 ”쩔어빠진 늙은이“들은 자신에 취향에 딱 맞지는 않은 정당을 지지하여 ”큰 규모의 정치력을 형성”한다. 

그리고나서 그 형성된 정치력을 자신의 이해관계에 이용한다. 


결국 정치에서는 정치력이 큰쪽이 더 큰 파이를 얻어가게 되어 있다. 



그런데 단지 취향에 맞지 않는다는 이유로  정치를 포기하면서 

그래서 아주 작디 작은 정치력만을 발휘하면서 심지어는 투표조차 하지 않으면서(그걸 또 자랑으로 생각하면서)


“왜 나에게 돌아오는 파이는 이렇게 작은가”라고 외치는것은 참으로 공허하다. 



by 밀리네스 | 2009/06/02 12:37 | 트랙백

내가 믿는 지식 한가지


인간의 두뇌는 23~5세를 기준으로 자아와 인격이 확립되며,  이 이후로는 병이나 사고등으로 두뇌에 변화가 일어 나기 전에는 자아 와 인격에 큰 변화는 일어나지 않는다. 

라는 지식이 있습니다. 

이 지식에 따르면 "세대는 변할수 있지만 사람은 변하지 않는다"라는 결론이 나옵니다. 
(다른 사람을 변화시키려는 대부분의 노력은 실패하며 유일하게 성공 가능성이 높은 것은 다음 세대를 가르치는 것이라는 의미지요)

그런고로 저는 다른 사람과 논쟁을 하여 결론을 낼수는 있다고 생각하지만 그 결론에 따라 사람이 변할것이라고 생각은 하지 않습니다. 
그리고 그 사람이 변하는 것을 전제로하는 논쟁은 애시당초 실패할것이라고 생각하지요. 

감정의 흔들림에 의해 잠시 자신의 자아에 어긋나는 행동을 하는 경우는 있겠지만, 최대 3개월이 지나면 다시 자신의 자아에 따르게 되어 있는것이지요. 
(그러므로 사람/자신을 바꾸고 싶다면 "습관"을 바꾸는 것에 집중해야 한다는 의미도 됩니다)

아무튼, 저는 사람들이 깨달았다, 변했다 이런거 않믿습니다. 

사람들이 변했다/정신차렸다고 믿고 계신분들은 나중에 상처받지 않으시길 바랍니다. 

by 밀리네스 | 2009/05/27 13:07 | 트랙백 | 덧글(1)

그런 사람이라고 생각했는데 진짜 그런 사람이였네..

흔히 말하는 목숨 걸고 도전한다라는 거..
진짜로 해버리는 사람일꺼라고 생각은 했지만 진짜로 해버렸다. 

아...

잘가시길..

by 밀리네스 | 2009/05/23 12:19 | 생각 | 트랙백

◀ 이전 페이지다음 페이지 ▶