C언어로 63줄로 위와 같은 웹브라우저를 뚝딱 만들수 있습니다.

(제가 직접 프로그래밍 한 부분은 아니라서 소스 분석만 했다만 Webkit라이브러리를 잘 조합하면 위와 같은 웹브라우저를 금방 만들 수 있습니다)

#include <webkit/webkitwebview.h>

위의 헤더파일을 추가를 하고 컴파일 하면 웹브라우저가 돌아갑니다.

 GTK+라이브러리는 조금 안다는 가정하에 Webkit라이브러리와 GTK+를 이용하면 위와 같은 웹브라우저를 63줄만에 뚝딱할수 있습니다.

 라이브러리를 잘 만 이용하면 프로그래밍을 잘 할수 있습니다.

PS. Android에서도 Webkit라이브러리를 잘 이용하면 위와 같은 웹브라우저를 뚝딱 금방 만듭니다. 다만 언어가 Java라는것 차이 정도?


ps2. 다음에는 Android 에서 Webkit라이브러리를 이용하여 웹브라우저를 띄우는 방법을 올리겠습니다.



Buy me a coffeeBuy me a coffee

출처: Linus Torvalds Considering End To Linux 2.6 Series


리누스 토발즈(Linus Torvalds)가 Linux Kernel 2.6.0 개발을 시작(2003년 12월 18일)하여 40번째 개발사이클로 진행되고, 리눅스 커널 탄생 20주년(1991년 8월 26일에 탄생함)을 기념하여 2.6.x대 대신 2.8 또는 3.0으로 옮길 계획이라고 합니다.


아래는 원문

"With the Linux 2.6 kernel set to begin its 40th development cycle and the Linux kernel nearing its 20th anniversary, Linus Torvalds has expressed interest today in moving away from the Linux 2.6.x kernel version. Instead he's looking to change things up by releasing the next kernel as Linux version 2.8 or 3.0. "The voices in my head also tell me that the numbers are getting too big. I may just call the thing 2.8.0...So I'm toying with 3.0 (and in that case, it really would be "3.0", not "3.0.0" — the stable team would get the third digit rather than the fourth one.""


Buy me a coffeeBuy me a coffee

2011.04.30. 천둥번개를 동반한 비가 내리는 새벽녘.

6년된 노트북에 달려 있던 하드디스크를 새로운 하드디스크로 교체 후, Ubuntu Linux설치 하다 심심해서 찍은 사진.


빨콩에 때가 끼인 것으로 세월의 흐름을 알수 있겠구나.

Buy me a coffeeBuy me a coffee




심심해서, 집에서 놀고 있는 6년된 ThinkPad R52에 Linux Kernel 2.6.38.1을 Ubuntu에 올렸습니다. -_-v

(며칠전 4학년된 학부생 친구들이 리눅스 커널 어떻게 올리는지 모르겠다고 노골적으로 숙제 도와달라는 부탁을 보고 뿌리쳤습니다. 저는 커널 컴파일을 몇번씩 해서 블로그에 올린 경험이 있는지라 -_-;;)

(추가로 췌장염때문에 몸이 말을 안들어서 일찍 나갔습니다-_-;;)

Ubuntu에서 커널 컴파일이 안된다는 말때문에 뭐가 안되지 하면서 Ubuntu 10.10에서 커널 컴파일을 해보았습니다.

컴파일 하는 방법은 컴파일을 해보자 7(커널 컴파일1) 에 있는 그대로 진행하였습니다. 

  1. Kernel.org 에서 적당한 커널 소스를 받는다.
  2. cp /boot/config-`uname -r` .config
  3. make oldconfig
  4. make-kpkg clean
  5. make-kpkg --initrd --revision=386 kernel_image kernel_headers linux_source modules_image
  6. cd .. && dpkg -i linux-image-2.6.38.1_386_i386.deb (2.6.38.1은 커널 버전, 원하는 커널 버전을 올리면 됨)

컴파일 끝나고 나선 아래와 같이 Linux Kernel 2.6.38.1이 제대로 올라왔다고 나오군요. ㅎㅎ

뭐가 어렵다는거지?? (커널 올리는 것 참 쉽죠? =3=3==3)

Linux studioego-laptop 2.6.38.1 #1 SMP Sun Mar 27 02:07:50 KST 2011 i686 GNU/Linux

Ubuntu 10.10


Welcome to Ubuntu!

 * Documentation:  https://help.ubuntu.com/


Last login: Sun Mar 27 14:08:08 2011 from macbook-pro.local

studioego@studioego-laptop:~$ uname -a

Linux studioego-laptop 2.6.38.1 #1 SMP Sun Mar 27 02:07:50 KST 2011 i686 GNU/Linux

studioego@studioego-laptop:~$ 


ps. 참고로 Ubuntu Linux에서는 Linux Kernel 2.6.35를 사용합니다.

'컴퓨터 > Linux' 카테고리의 다른 글

카이스트 미러 서버 멸망 이유  (3) 2011.05.22
overview of GI's architecture  (0) 2011.05.22
죽기전에 코드패치를 한 아버지 이야기 #gnome  (2) 2011.03.01
#Ubuntu 10.10 CD 도착  (0) 2011.02.28
Redmine 설치 완료.  (0) 2011.02.27
Buy me a coffeeBuy me a coffee

2011년 2월 28일

집에 도착하니 외국에서 온 편지가 도착했더군요.

그 편지는 Canonical사에서 보낸 Ubuntu 10.10 Maverick Meerkat CD였더군요.

저는 편지를 뜯어보았습니다.


앞면은 개인정보상 털썩

짜잔, 내용물인 Ubuntu 10.10 Desktop Edition CD입니다.

Ubuntu. Try it. Love it. Share it!

Macbook Pro위에 올려진 Ubuntu 10.10 Desktop Edition CD.


물건너온 CD를 받고 나선 너무 좋아 기념 사진을 찍었답니다 ㅎㅎ

ps. 은근 맥북 자랑질도 *-_-*

Buy me a coffeeBuy me a coffee

우분투 11.04의 기본 Desktop으로 채택될 예정인 Unity를 사용해보았습니다.

Ubuntu Unity - http://unity.ubuntu.com/

2010/11/21 - [컴퓨터/Linux] - Gnome을 대체할 Unity소개 #Ubuntu 11.04 Natty Narwhal uses Unity Desktop by Default!


아래는 Ubuntu 11.04 Natty Narwhal의 기본 데스크탑인 Unity의 화면입니다.

Unity Desktop



2004년 말부터 GNOME(http://www.gnome.org/) Desktop를 주로 쓰던 저에게 Unity는 신선한 충격을 가져다 줍니다. KDE Desktop처럼 온갖 기능 붙혀서 무겁게 느껴지거나 GNOME같이 평범한 Linux Desktop도 아닌 뭔가 새롭고 신선한느낌정도?

Unity Desktop의 UI가 겉으로 보면 예쁘지만, 실제로 사용하다 보면 약간 뭔가 어지럽습니다. 익숙하지 않아서 그럴지도?

Netbook을 위한 Desktop을 표방하고 있습니다만, 아직 GNOME환경에 비해서 느리고 빠릿빠릿하지 않다는 느낌이 듭니다.


Unity가 GNOME(GTK+기반)과 달리 QT기반으로 작성되었으며 X 윈도우 시스템을 대체할 OpenGL기반의 데스크탑 관리시스템인 웨이랜드(Wayland) 데스크탑 엔진, Compiz를 대체할 mutter를 사용합니다.

이전에는 X Windows위에 GTK기반의 GNOME Desktop을 사용했다만 Ubuntu를 관리하는 Canonical사는 독자적인 방향으로 새로운 UI를 제공하겠다는 목표로 Unity project를 진행하고 있습니다.

Unity가 데스크탑, 노트북말고도Tablet같은 Touch screen이 있는 노트북이나 넷북에도 적용할 예정입니다. 아래 화면에서 보듯 UI가 손가락으로 클릭하기 좋게 구성 되어 있습니다.


Unity UI를 보면 볼수록 뭔가 Mac OSX를 많이 흉내내려고 노력한 흔적이 많이 보입니다.


Canonical사는 Ubuntu OS에 Unity라는 새로운 사용자 경험을 보여주합니다. 기존의 GNOME기반의 경험을 가진 사람에겐 뭔가 느낌이 이상하게 느껴지는건 익숙하지 않아서일까요?


ps. 아직 Alpha release단계라 버그가 많습니다. 가끔씩 죽는 경우가 생겨 launchpad에 bug reporting을 자주 하는 편입니다.

Buy me a coffeeBuy me a coffee

Android 프로그래밍을 하다 C코드를 Java코드와 연동해야하는 일이 생겼습니다.

Android NDK를 이용해 빌드하다보니 ant를 사용하여 안드로이드 프로그램을 빌드하였습니다.

Linux에서 빌드할때와 Mac OSX에서 빌드할때 미묘한 차이가 생기더군요.


Java로 된 안드로이드 소스코드는 UTF-8로 분명히 저장되어 있는데, Ant가 Linux에서 돌릴때엔 ascii로 인식해서 컴파일을 하더군요. 결국엔 안드로이드 어플에 한글이 깨져 나오는 문제가 있습니다.

Mac에서는 아무런 문제없이 빌드되고 안드로이더 어플에 한글이 깨져나오는 일이 없습니다. 참 미묘하기도 하지요?


참고로 CentOS5에 설치한 Ant 버전은 아래와 같습니다.

[studioego@localhost ~]$ ant -version

Apache Ant version 1.7.1 compiled on June 27 2008

[studioego@localhost ~]$ 



그리고 Mac  OSX 10.6에 설치된 Ant버전은 아래와 같다.

Dae-Hyun-Sung-ui-MacBook-Pro:~ studioego$ ant -version

Apache Ant version 1.8.1 compiled on September 21 2010

Dae-Hyun-Sung-ui-MacBook-Pro:~ studioego$


CentOS5 에서 Ant를 실행했을때


$ ant debug

Buildfile: build.xml

    [setup] Android SDK Tools Revision 8

    [setup] Project Target: Android 2.2

    [setup] API level: 8

    [setup] 

    [setup] ------------------

    [setup] Resolving library dependencies:

    [setup] No library dependencies.

    [setup] 

    [setup] ------------------

    [setup] 

    [setup] 

    [setup] Importing rules file: tools/ant/main_rules.xml


-debug-obfuscation-check:

-set-debug-mode:

-compile-tested-if-test:

-dirs:

     [echo] Creating output directories if needed...

    [mkdir] Created dir: /******/bin/classes

-pre-build:

-resource-src:

     [echo] Generating R.java / Manifest.java from the resources...

     [null] /home/studioego/android/platform-tools/aapt: /usr/lib/libz.so.1: no version information available (required by /home/studioego/android/platform-tools/aapt)

-aidl:

     [echo] Compiling aidl files into Java classes...

-pre-compile:

compile:

    [javac] Compiling 5 source files to /******/bin/classes

    [javac] /******/src/org/ccl/mobile/student/AnnoLine.java:4: warning: unmappable character for encoding ascii

    [javac] // 시작점 좌표

    [javac]            ^

    [javac] /******/src/org/ccl/mobile/student/AnnoLine.java:4: warning: unmappable character for encoding ascii

    [javac] // 시작점 좌표

    [javac]             ^

    [javac] /******/src/org/ccl/mobile/student/AnnoLine.java:4: warning: unmappable character for encoding ascii

    [javac] // 시작점 좌표

    [javac]              ^

    [javac] /******/src/org/ccl/mobile/student/AnnoLine.java:4: warning: unmappable character for encoding ascii

    [javac] // 시작점 좌표

    [javac]               ^

    [javac] /******/src/org/ccl/mobile/student/AnnoLine.java:4: warning: unmappable character for encoding ascii

    [javac] // 시작점 좌표

    [javac]                ^

    [javac] /******/src/org/ccl/mobile/student/AnnoLine.java:4: warning: unmappable character for encoding ascii

    [javac] // 시작점 좌표

    [javac]                 ^

    [javac] /******/src/org/ccl/mobile/student/AnnoLine.java:4: warning: unmappable character for encoding ascii

    [javac] // 시작점 좌표

    [javac]                  ^

    [javac] /******/src/org/ccl/mobile/student/AnnoLine.java:4: warning: unmappable character for encoding ascii

    [javac] // 시작점 좌표

    [javac]                   ^

    [javac] /******/src/org/ccl/mobile/student/AnnoLine.java:4: warning: unmappable character for encoding ascii

    [javac] // 시작점 좌표

    [javac]                    ^

    [javac] /******/src/org/ccl/mobile/student/AnnoLine.java:4: warning: unmappable character for encoding ascii

    [javac] // 시작점 좌표

    [javac]                      ^

(생략)

    [javac] 100 warnings

(생략)



이후 소스코드는 UTF-8로 분명히 저장했는데도 안드로이드 어플에서 글씨가 깨져 나옵니다.


Mac OSX 10.6 Snow Leopard 에 탑재된 Ant를 실행했을때

$ ant debug

Buildfile: /******/build.xml

    [setup] Android SDK Tools Revision 10

    [setup] Project Target: Android 2.2

    [setup] API level: 8

    [setup] 

    [setup] ------------------

    [setup] Resolving library dependencies:

    [setup] No library dependencies.

    [setup] 

    [setup] ------------------

    [setup] 

    [setup] 

    [setup] Importing rules file: tools/ant/main_rules.xml

-debug-obfuscation-check:

-set-debug-mode:

-compile-tested-if-test:

-pre-build:

-dirs:

     [echo] Creating output directories if needed...

-aidl:

     [echo] Compiling aidl files into Java classes...

-renderscript:

     [echo] Compiling RenderScript files into Java classes and RenderScript bytecode...

-resource-src:

     [echo] Generating R.java / Manifest.java from the resources...

-pre-compile:

...

(생략)

BUILD SUCCESSFUL

Total time: 10 seconds


소스코드도 UTF-8로 저장되었고 안드로이드 어플에서 한글이 깨지는 일이 없이 문제 없이 돌아갑니다. 


ant의 버전 차이때문에 그런건가요?


이 문제 때문에 Linux용 최신 ant binary 버전을 다운 받아서 사용했어도 똑같은 일이 발생하더군요.

버전문제는 아는 것 같고.. Linux용 ant를 직접 빌드해서 사용해야 문제가 해결될까요?


한글이 깨지는 문제때문에 구글링 한 결과 android-sdk폴더안의 파일을 수정해야되더군요

android-sdk디렉토리 안에 있는 tools/ant/main_rules.xml 을 열고 나서 

<property name="java.encoding" value="ascii" /> 부분을 찾습니다. 

 120     <!-- compilation options -->

 121     <property name="java.encoding" value="ascii" />

 122     <property name="java.target" value="1.5" />

 123     <property name="java.source" value="1.5" />

이후 ascii를 UTF-8로 수정후 저장합니다.

 <property name="java.encoding" value="UTF-8" />

이후에 다시 ant로 안드로이드 어플 컴파일 하면 한글이 깨지는 문제가 사라집니다.

참조: android: getting rid of “warning: unmappable character for encoding ascii”

(역시 구글링하면 모든 문제가 대부분 해결 되더군요 ㅎㅎ)


참고로 Mac OSX에선 기본적으로 UTF-8로 설정되어서 위와 같이 한글이 깨지는 문제가 없더군요.

아래는 맥의 ant 설정파일의 내용입니다.

/Users/studioego/android-sdk-mac_86/tools/ant/main_rules.xml

124     <!-- compilation options -->

125     <property name="java.encoding" value="UTF-8" />

126     <property name="java.target" value="1.5" />

127     <property name="java.source" value="1.5" />


Buy me a coffeeBuy me a coffee

2011.2.3. 설날 맞이 기념으로 Gentoo Linux를 설치하고 있습니다. (글쓰고 있는 시점에서도 설치중)


이번에 노트북을 구입한 후, 컴퓨터 성능을 시험하고자 컴파일로 최적화시키고 퍼포먼스를 높혀서 사용할수 있는 Gentoo Linux를 virtualbox안에서 설치하였습니다.

Gentoo Linux의 경우는 다른 Linux배포판과 다르게 FreeBSD 기반의 port(BSD기반의 Mac OSX에서는 The MacPorts Project로 port를 사용할 수 있습니다.)와 비슷한 emerge로 일일히 컴파일 하여 OS를 만져볼수 있습니다.

기본적으로 Linux를 Fedora Core, CentOS, Ubuntu로 사용한 경험이 있다보니 설치하는데는 아무런 문제가 없었습니다.

아래의 Gentoo 설치 문서 

Gentoo Linux x86 Quick Install Guide

KLDP Wiki - Gentoo Install 설치 기록

를 자세히보면 문제없이 설치할수 있습니다.

네트워크 설정(Configure networking)

디스크 파티션, 파일시스템 생성, 마운트, (Create the partition, Create the file systems and Mount the file systems)

커널 설정 및 설치(Kernel Configuration and compile a kernel source and install the kernel)

시스템 툴 설치(Installing System Tools)

부트로더 설치(bootloader installation)

위의 과정은 정말 금방 끝냈다. 이후 X Window를 띄운다고 Gnome을 설치하다... 뭔가 큰일 난것 같다. -_-;;

문제가 설치 시간이 상당히 오래 걸린다는것 정도? 설치하는데 하루종일 컴파일해도 아직도 끝나지 않았다는것에 좌절하였음.

Kernel설치는 5시간만에 다한듯 한데, GNOME설치하는 것은 X11설치하는것도 있으니 아마도 1일정도 걸릴듯하다. (지금 cairo 컴파일중)

설치 시간이 머신의 성능에 따라 영향을 받는데, VirtualBox에서 설치를 했으니 실제 하드웨어에서 설치하는것 보다 당연히 느릴수 밖에 -_-


내일 정도 X Window가 띄어진 화면을 볼수 있을것 같다. Gentoo는 폐인들을 위한 배포판 같다.

ps. 2월 4일(금) 오전 8시 30분경.. 아직도 컴파일중 -_-

ㅔㄴ

Buy me a coffeeBuy me a coffee



Ubuntu 11.04 부턴 Gnome Desktop 대신 Unity가 기본적으로 탑재될 것이라는 하며 Unity에 대한 소개를 합니다.


Unity Desktop은 현재 Ubuntu Netbook Remix에서 사용하고 있는 Desktop Environment입니다.

Ubuntu 11.04 Natty Narwhal uses Unity Desktop by Default! [UDS N Day 1]

Buy me a coffeeBuy me a coffee

Ubuntu를 만들고 후원하는 기업인 Canonical의 회장인 마크 셔틀워스(Mark Shuttleworth)가 2010년 10월 25일에 열린 UDS(Ubuntu Developer Summit)의 키노트 동영상을 보여드립니다.


UDS - Natty Narwhal - http://summit.ubuntu.com/uds-n/


2010년 10월 25일, 미국 플로리다주 올랜드의 카리브 로열에서 열린 UDS(Ubuntu Developer Summit) 키노트 동영상입니다.

Caribe Royal in Orlando, Florida, USA

Introduction and KeynoteIntroduction by Jono Bacon, Keynote by Mark Shuttleworth

UDS Natty 11.04 - Mark Shuttleworth keynote - Part 1

Part2 는 아래의 링크 클릭하면 볼 수 있습니다^^

UDS Natty 11.04 - Mark Shuttleworth keynote - Part 2

Part 2 is a separate video. http://blip.tv/file/4293437

- This is part 2 of an 'unofficial' rip of the video stream from the event which cut part way through. 

Buy me a coffeeBuy me a coffee

+ Recent posts