리브레오피스(LibreOffice)에 ARM기반 새로운 애플 실리콘(Apple Silicon)의 MacOS빌드 지원 커밋을 확인하였습니다.

앞으로, 애플(Apple)에서 ARM기반 macOS를 탑재한 기기가 나올 경우에 대비하여, 리브레오피스(LibreOffice)가 Arm기반 macOS에 동작할 수 있게 빌드 지원 선작업을 하였군요.

아마도, Intel기반의 MacOS뿐만아니라  Arm기반의 macOS에서도 리브레오피스(LibreOffice)가 지원 될겁니다!

아래는 ARM기반 애플 실리콘(Apple Silicon) CPU상에 동작하는 macOS[arm64-apple-macos]에 대응하는 코드가 추가된 초기 커밋입니다.

https://git.libreoffice.org/core/+/baab4f890c8ac99d1b8dab5790fbb7ab949100ab%5E%21

 

Diff - baab4f890c8ac99d1b8dab5790fbb7ab949100ab^! - core - Gitiles

commitbaab4f890c8ac99d1b8dab5790fbb7ab949100ab[log]

git.libreoffice.org

 

Buy me a coffeeBuy me a coffee

오랜만에, Mac 업그레이드 후에 처음으로 MacOSX 10.15 Catalina 에서 LibreOffice(리브레오피스) 빌드를 진행하였습니다.

LibreOffice(리브레오피스) 빌드는 문서 재단의 위키 링크 Building LibreOffice on macOS를 보며 따라하였습니다.

빌드를 진행하다 보니, 아래의 오류로 빌드 진행이 안되는 것을 확인하였습니다.

In file included from /Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.7/Headers/Python.h:139:
/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.7/Headers/pythonrun.h:142:5: error: 'TAPI' is not defined, evaluates to 0 [-Werror,-Wundef]
#if TAPI
    ^
[AIN] ooo_images
1 error generated.
/Users/****/dev/lode/dev/core/solenv/gbuild/LinkTarget.mk:239: recipe for target '/Users/****/dev/lode/dev/core/workdir/CObject/pyuno/source/module/pyuno_dlopenwrapper.o' failed
make[1]: *** [/Users/****/dev/lode/dev/core/workdir/CObject/pyuno/source/module/pyuno_dlopenwrapper.o] Error 1
make[1]: *** Waiting for unfinished jobs....
Makefile:282: recipe for target 'build' failed
make: *** [build] Error 2

해당 내용에서는 C언어 매크로 TAPI가 정의 안되어서 빌드 에러가 난다는 이야기가 나왔습니다.

해당 내용에 대하여 IRC의 #libreoffice-dev채널에 문의를 하였습니다.

9:28 PM I have a question about build on MacOSX (Catalina 10.15.2)
9:28 PM I get a LibreOffice source from git repository. and try to build, then failed.
9:29 PM message is In file included from ***/dev/core/pyuno/source/module/pyuno_dlopenwrapper.c:22:
9:29 PM In file included from /Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.7/Headers/Python.h:139:
9:29 PM /Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.7/Headers/pythonrun.h:142:5: error: 'TAPI' is not defined, evaluates to 0 [-Werror,-Wundef]
9:30 PM What is "#if TAPI" ? 
9:41 PM <mikekaganski> dhsung_: a coincidence: https://ask.libreoffice.org/en/question/223751
9:44 PM <ycao> https://ask.libreoffice.org/en/question/223751/error-tapi-is-not-defined-evaluates-to-0-werror-wundef-while-building-on-macos/
9:44 PM Any tips?
9:44 PM <_rene_>  yes, the obvious one
9:44 PM (don't build with -Werror)
9:45 PM and this undefined macro is inside python itself which is clear from the error message... (just that LO bundles python if you let it..)
9:45 PM <mikekaganski>  _rene_: the problem is that this looks like our default in LODE
9:46 PM <ycao>  How can I build without `-Werror`
9:46 PM Using `lode`
9:46 PM <_rene_> mikekaganski: yes, it's a problem. anywhere :)
9:46 PM $ ./configure --help | grep -i werror --enable-werror         Turn warnings to errors. (Has no effect in modules
9:47 PM so --disable-werror, of course ;)
9:48 PM <ycao>  So run `./configure --disable-werror` is ok?
9:48 PM <mikekaganski> ycao: essentially, add --disable-werror which _rene_ mentioned to autogen.input in your core directory

문의 결과

./configure --help | grep -i werror --enable-werror         Turn warnings to errors. 

빌드 '에러 error'를 에러 대신 '경고 warning'로 바꾸어서 빌드하라고 하더군요.

이유는 TAPI라는 정의되지 않은 매크로는 파이썬 자체에 있고, 이 매크로를 무시해도 빌드 후에 실행은 되니 '에러 error'로 빌드 안되는 것에 대하여 '에러 error'레벨을 '경고 warning'으로 바꾸어서 빌드 하면 된다고 하군요.

그래서, 저는 아래의 명령어로 빌드 진행을 하였습니다.

이후, 빌드 후 확인

****@**** core % ./autogen.sh --with-locales="ko"  --with-vendor="DaeHyun Sung, TDF Member"  --disable-werror           
********************************************************************
*
*   Using commandline arguments and ignoring autogen.input!
*
********************************************************************
Running ./configure with '--with-locales=ko --with-vendor=DaeHyun Sung, TDF Member --disable-werror --srcdir=/Users/sungdaehyun/dev/lode/dev/core --enable-option-checking=fatal'
********************************************************************
*
*   Running LibreOffice build configuration.
*
********************************************************************
To build, run:
/Users/****/lode/opt/bin/make

To view some help, run:
/Users/****/lode/opt/bin/make help

After the build of LibreOffice has finished successfully, you can immediately run LibreOffice using the command:
open instdir/LibreOfficeDev.app

If you want to run the smoketest, run:
/Users/****/lode/opt/bin/make check

****@**** core % make build-nocheck
make -j 4  -rs -f /Users/****/lode/dev/core/Makefile.gbuild  build  
[PAT] boost
[DEP] LNK:Library/libuno_salhelpergcc3.dylib.3
[LNK] Library/libuno_salhelpergcc3.dylib.3
[UPK] libgpg-error-1.27.tar.bz2
[PAT] icu
[PAT] nss
[PAT] liblangtag
[DEP] LNK:Executable/bestreversemap
[LNK] Executable/bestreversemap
[PAT] libjpeg-turbo
[PAT] lcms2

(생략)


[BIN] extras
[MOD] extras
[MOD] libreoffice
[BIN] top level modules: libreoffice
[ALL] top level modules: build-non-l10n-only build-l10n-only

빌드 완료 후 실행

****@**** core % open instdir/LibreOfficeDev.app

실행 후 화면

Buy me a coffeeBuy me a coffee

MacOSX mojave(10.14)에서 어플리케이션 빌드를 하기 위해 설정을 해야했음.

checking what macOS SDK to use... configure: error: Could not find an appropriate macOS SDK

Mac위의 메세지가 뜨면서 빌드 설정이 실패시 아래의 명령어를 입력하여 macOS SDK를 설치하면 된다.

이번에 나온 MacOSX mojave(10.14) 부터 헤더파일(headers)이 `/usr/include/`에 기본적으로 설치되지 않습니다.

그래서 헤더파일(header)파일을 설치하려면 아래의 명령어를 입력하여

$ open /Library/Developer/CommandLineTools/Packages/macOS\_SDK\_headers\_for\_macOS\_10.14.pkg

를 실행합니다.

실행이 완료되면 아래의 설치화면이 뜹니다.

설치가 완료되면 어플리케이션 빌드가 가능합니다.

Buy me a coffeeBuy me a coffee

링크: The Mac 'Pick a Bundle'!

참조: [할인] 맥용 앱 30개 중에 아무거나 10개를 골라 39불에 구매하세요... 'PickaBundle'


저는 paw, soulver, emulsion, typed, posterine, alternote, kiwi for gmail, downie 2, pixa, rapidweaver6를 구매

Buy me a coffeeBuy me a coffee

2014년 블랙 프라이데이에 맥용 소프트웨어 구입 


미국달러 $42.80 에 $302.59 어치의 맥용 소프트웨어 6종

  • 1Password
  • Camtasia
  • CleanMyMac2
  • Parallels Access
  • Acronis True Image for Mac
  • Gemini

구입 


Android폰과 iPad Mini Retia에서 1Password를 잘 쓰고 있기때문에 Mac용 으로 구매 및 Parallels Access기한 만료로 솔직히 사무실에서 원격으로 집의 맥을 사용하려고 구매하려니 떨이로 6개를 구입했군요 ㅎㅎ 


이제 맥북생활이 편해질듯~_~

Buy me a coffeeBuy me a coffee

2011년부터 쭉 쓰던 맥북프로의 메인보드 고장으로 인해 새로운 맥북프로를 구입하였습니다.


이번에 새로 구입한 맥북프로는 가볍고 레티나 디스플레이, SSD, 8GB메모리를 탑재하고 HDMI케이블연결잭까지 있더군요. 그러나 예전 맥북프로에 있던 ODD가 없어서 아쉽습니다.

고장난 맥북프로 보니깐 그동안 모은 스티커 언제 새 맥북프로에 옮길 지 휴우.


Buy me a coffeeBuy me a coffee


Mac OSX에서 brew를 설치해서 사용하다 

2011/02/23 - [분류 전체보기] - Mac에서 homebrew를 사용해보기.

하드디스크 정리 겸 homebrew를 삭제하게 되었습니다.

cd `brew --prefix`
rm -rf Cellar
brew prune
rm -rf Library .git .gitignore bin/brew README.md share/man/man1/brew
rm -rf ~/Library/Caches/Homebrew


위와 같이 하면 Homebrew 제거 완료.

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

2010년 6월 27일부터 2010년 7월 3일까지 제 블로그에 접속한 사람들의 OS와 Web Browser의 분석해보았습니다.

Google Analytics다음 웹인사이드를 이용해서 블로그에 접속한 사람들의 분석을 한 결과 충격적인 내용들로 가득하였습니다.


① Google Analytics

1) 운영체제


1위는 Windows, 2위는 의외로 Android였습니다. 3위는 Linux, 4위는 맥, 5위와 6위는 iPhone과 iPod Touch 시리즈였습니다. 8위에 iPad, 9위엔 BlackBerry, 10위는 Symbian이 차지하였습니다.

컴퓨터로 Windows로 제 블로그를 보는 사람들이 많은가 봅니다, (컴퓨터를 쓴다면 대다수가 windows이니 당연한것 아닌가? - 참고로 저는 Linux를 씁니다. Ubuntu 10.04 사용자입니다.)

Android 폰에서 접속하신 분들이 많은 것을 보면 안드로이드관련 글을 여기 블로그에 더욱더 많이 작성해야할것같습니다.


2) 웹 브라우저


1위는 Internet Explorer. 역시 MS사 Windows의 기본 웹브라우저로 제 블로그에 접속하는 분들이 많은것입니다.

2위는 Chrome. Google에서 만든 웹브라우저인데 의외로 9%를 차지하니 IE가 아닌 웹 브라우저 중에서 Firefox보다 속도가 빠르다는 이유로 많이 쓰는 듯 합니다.

3위는 Firefox 5.25%, 4위는 Safari 3.66%. 맥으로 제 블로그에 접속하신 분들이 상당수 있더군요. 5위는 Opera이구요.


3) 운영체제와 웹 브라우저


1위는 Windows에서 Internet Explorer로 제 블로그를 접속하신 분들입니다. 무려 81.16%를 차지하군요. 

2위는 Windows에서 Chrome로 제 블로그를 접속하신 분들입니다. 3위도 Windows에서 Firefox로 제 블로그를 접속하신분들입니다.

1,2,3위를 보니 Windows OS 인기는 식지 않았습니다. 역시 PC하면 MS사 Windows이지요.

(본인은 Ubuntu 10.04에서 Firefox 또는 Chrome을 사용하여 웹 브라우징을 합니다. 참 취향 독특하죠?^^)

4위를 보면 Android OS에서 Safari로 접속하였다는 건데 Android OS에 들어간 기본 브라우저가 Webkit을 사용하다보니 safari로 오인하는가봅니다. 안드로이드폰에서 제 블로그를 보시는 분들이 상당수 있다는 방증이겠지요?

5위는 Linux에서 Firefox로 제 블로그를 보시는 분이고 6위는 Linux에서 Chrome으로 제 블로그를 보시는 분들입니다. (이건 제가 접속하는 것이 상당수겠지요?

7위는 iPhone에서 Safari로 제 블로그를 보시는 분이고, 8,9위는 맥에서 Firefox로 제 블로그를 보시는 분과 맥에서 Safari로 제 블로그를 보시는 분입니다. 


4) 모바일


정말 의외의 결과가 나왔습니다. 대한민국상황에서 iPhone의 보급율이 높은 지라 iPhone또는 iPod Touch등의 Apple의 디바이스로 접속하는 비율이 높을 것 같았지만, 1위는 안드로이드 기기에서 제 블로그로 접속하는 비율이 높았습니다.

제가 요즘 안드로이드 플랫폼에 대해서 많은 글을 쓰다보니 안드로이드 플랫폼을 사용하신 분들이 제 블로그에 많이 찾아오신듯 합니다.

기대에 부흥을 하기 위해서 안드로이드 플랫폼에 대한 공부를 정말 열심히 해야겠군요 ㅡㅡ;;


여기까지 Google Analytics에서 제 블로그를 분석한 내용입니다.



② 다음 웹인사이드

1) 운영체제


다음 웹인사이드에서 제 블로그를 분석하였습니다.

제 블로그의 분석 결과를 보니 Windows계열이 거의 압도적으로 많군요.

Windows XP, Windows 7, Windows Vista순으로 현재 대한민국에서 많이 보급된 OS모습을 볼수 있습니다.

Linux로 접속한 분들은 2.65%?  알수없음은 어떤 플랫폼에서 접속한지 다음에서 분석할수 없는 결과인데 2.47%입니다.

2) 웹브라우저


웹브라우저 결과를 보면 충격입니다.

대한민국에서 제일 많이 사용될수밖에 없는 Internet Explorer의 사용자가 많긴 하지만 Internet Explorer 6의 보급율이 많이 떨어졌다는 결과가 나왔습니다.

네이버, 다음과 같은 포털등에서 Internet Explorer 8로 업그레이드 하면 경품준다는 이벤트와 Windows 7의 보급으로 인해 Internet Explore 8의 비율이 37.18%로 되었습니다. (정말 IE8의 사용자가 높다는게 충격적일수밖에요. Internet Explorer 6의 비율이 23.9%라는 것에서도 다시금 충격^^)

그리고 Google Chrome이 9.54%, Firefox 사용자가 2,3 모두 합하여 5.32%, Safari사용자는 2.75%, Opera 사용자는 0.4%입니다.


다음 웹인사이드에서 분석한 내용을 보면 Google Analytics와 비슷한 결과가 나오긴 합니다. 다만 Google Analytics는 Mobile Platform에서 어떤 브라우저로 접속하였는지까지 체크하는 섬세함이 보인다랄까요?


이상 Google Analytics와 다음 웹인사이드를 이용해서 블로그에 접속한 사람들의 분석을 하였습니다.

제가 안드로이드 플랫폼에 관심이 많아 블로그에 관련글을 많이 사용하니 Android Platform에서 제 블로그를 접속하신분들이 상당수가 있군요.

의외로 안드로이드폰에서 제 블로그를 접속하신 분들이 많다는 거에 깜짝놀랐습니다. 다음부터는 안드로이드 관련 기사를 블로그에 많이 올려야겠습니다.

제 블로그가 Ubuntu 10.04에서 Firefox 또는 Chrome에 최적으로 보이게 만들었지만, 이제는 Mobile, 특히 Android Platform에서도 잘 보일 수 있도록 스킨 조정도 해야겠으며 플래시를 적용한 부분도 많이 줄여야겠다는 생각을 했습니다.


(제가 Linux, Android같은 Open Source에 관심을 갖고 있는지라 Windows에 대해 역차별(?)을 지금도 하고 앞으로도 할 예정입니당?)

Buy me a coffeeBuy me a coffee



Mozilla에서 Firefox 3.6.4를 2010년 6월 22일에 출시하였습니다.

여러가지 버그들을 잡았지만 제일 큰 버그였던 Flash가 깨지면 웹브라우저도 꺼지는 버그를 잡았답니다. 그 기능을 Crash Protection(오류 보호)기능이라고 부릅니다.

Google Chrome같이 플래시가 깨져도 계속 브라우저가 돌아가게끔 만들어졌다고 합니다.

점점 Firefox도 Google Chrome을 닮아가는 인상을 보여주군요.

이 Crash Protection(오류 보호)기능은 Windows와 Linux에서만 된답니다. 안타깝께도 Mac에서 Crash Protection(오류 보호)기능은 올해 하반기에 쓸수 있다고 하군요.


Firefox 3.6.4가 나온건 새벽에 Twitter를 보다 @Firefox 에서 이런 글이 올라왔더군요.

Firefox 3.6.4 with crash protection now available!http://mzl.la/aJLuio

위의 글 처럼 Firefox를 실행하니 업데이트를 하고 있었습니다.

업데이트를 완료하고 나선 웹 브라우져 재시작을 하였습니다.


재시작을 하고 나선 Firefox를 실행하였더니 잘 돌아가군요.



지금까지 계속 Firefox 3.6에 대한 마이너 업데이트들이 이뤄지고 있지만, 언젠간은 Firefox4가 나오겠지요? Firefox 4가 나오면 어떻게 바뀔련지는 궁금합니다^^

Buy me a coffeeBuy me a coffee

+ Recent posts