2016년 7월 7일 목요일

Linux에서의 Swift 시작

Swift 2.x 까지는 Linux에서 Swift 언어 자체를 테스트하고 활용하는데에는 괜찮지만,  C binding을 제대로 지원하지 않아, 본격적인 프로젝트에 활용하기에는 문제가 많았다.

그러나, C binding이 Swift 3.0부터, Swift package manager를 활용하여 지원하기 때문에, Linux에서도 어느 정도 재미있는 프로젝트를 진행할 수 있는 기반이 된 것으로 보인다.

나는 Swift development snapshot을 이용하여 테스트를 진행하였다. swift.org에서 ubuntu용 이미지는 배포를 하고 있지만, 나는 arch linux를 사용하기 때문에, swift-development-bin 패키지를 설치하여 테스트를 진행하였다.

정상적인 설치여부 확인

$ swift --version
Swift version 3.0-dev (LLVM c191431197, Clang c6195325c5, Swift add621a959)
Target: x86_64-unknown-linux-gnu

$ swift package --version
Swift Package Manager – Swift 3.0

개발 시작, 빌드 및 실행


$ mkdir sample

$ cd sample

$ swift package init --type executable
Creating executable package: sample
Creating Package.swift
Creating .gitignore
Creating Sources/
Creating Sources/main.swift
Creating Tests/

$ swift build
Compile Swift Module 'sample' (1 sources)
Linking .build/debug/sample

$ .build/debug/sample
Hello, world!

어떤가? 간단하지 않은가?

Golang에 대한 소회

최근 반년간 golang을 스터디 목적으로 관심을 가지고 테스트를 해왔다.

여러가지 장점이 있는 반면, 시간이 갈수록 단점이 점점 더 부각되어, 더이상의 시간 투자는 하지 않으니라 생각하며, 이 글을 정리한다.

뭐, 단순히 말하면, 나와 맞지 않는 언어라는 결론...

장점이야 여러 사이트에 잘 정리되어 있으니, 그쪽을 참조하면 될거 같고,

점점 부각되는 단점으로는...


  • GC
    • 개인적으로 시간이 갈 수록 GC의 특성이 나에게 점점와 닫는거 같다. 최근에 가장 곤란한 상황은 C와의 binding에서 golang object에 대한 포인터를 C에서 관리하기 힘든 문제 때문이었다. Java의 경우 이러한 문제를 이미 해결한 상황으로 보이고, golang도 시간이 지나면 해결할 수 있을 것으로 보이긴 하지만, 지금의 상황에서는 나에게 큰 불편함으로 다가 온다.
  • Namespace 지원 관련
    • golang이 namespace를 지원하지 않는 것은 아니다, 다만, 다른 언어 만큼 자유롭게 namespace를 쓸 수 있는 것은 아니다. 이로 인해 singleton instance 관련 함수 이름 선정에 우아함을 부여하기 힘들다.
  • Object creator의 일관성
    • new operator 있다. 그러나, interface를 기반으로 하는 object를 생성하는 방법에 대한 일관성이 부족하다. 즉, 언어적 지원 사항이 없다. 
  • OOP
    • golang은 공식적으로 oop를 지원하지 않는다. 그러나, 다양한 방안을 이용하여 oop를 구현 활용할 수 있다.
    • 하지만, 이러한 구현 방법은 결국 일관성을 해치게 될 것이다. 각 개발자 마다 서로 다른 방법을 사용할 수 있고, 이것은 코드의 일관성과 가독성을 해치게 될 것이다.
    • 단기적으로는 큰 문제가 되지 않을 수도 있지만, 장기적으로는 golang 자체를 해치게 될 가능성이 많다.
프로그램 언어를 사용만 했지, 그 자체에 대한 전문적인 지식이 일천하여, 멋진 말로 설명하는 재주는 없다.
그러나, golang이 현 상황에서 여러 좋은 장점이 충분히 부각되는 서버쪽에서는 유용할지 모르나, 다른 분야에서까지 활용되기에는 아직 부족한 점이 많다.

물론, 똑똑한 사람들이 개발에 참여하고 있으니, 이러한 부족한 점들이 점점 개선되겠지만, 시간이 많이 필요할 것으로 예상된다. 최소한 2.0 이상 버전에서나 어느정도 개선될것으로 보임.

그러나, 언어 개발자들의 특성이 내가 원하는 바가 반영되려면 더 많은 시간들이 걸릴 것으로 예상되어, swift 로 전환하고자 한다.

2016년 5월 30일 월요일

New review for Seiko Astron Dual Solar

뉴스를 구독하다가, Watch New Site에서 작성한 Review가 있어서 공유합니다.

http://www.ablogtowatch.com/seiko-astron-gps-solar-dual-time-watch-review/

2016년 4월 26일 화요일

Seiko Astron GPS Solar Dual Time SSE049

이 시계를 오랜 고민 끝이 인터넷 면세점에서 구매하였다.

현재 거의 한달간 사용중인데, 이 시계에 대한 간단한 리뷰를 적고자 한다.

일단 간단히 평가는 여전히 굉장히 만족하면서 사용하고 있다. 내 몸에 걸치고 있는 아이템 중에 가장 반짜이는 아이템이다.
개인적으로 다른 사람이 구매하고자 한다면 적극적으로 추천하고 싶은 제품이다.


제품 선택 이유


최근 다양한 gps 수신 장치들이 출시되고 있다. 물론 주로 시계다. 순토, 가민, 시티즌, 카시오 등등...

이중에 순토, 가민에서 출시하는 장치들은 시계 본연의 기능보다는 사용자 추적, 운동 보조 등의 기능이 강조되고 있어, 사실상 스마트워치 기능을 하고 있다.

그런데, 이러한 스마트워치는 그 특성상 gps를 자주 수신해야 하고, 스마트폰과의 동기 등 다양한 기능을 제공해야 하므로, 배터리 소모가 크기 때문에 자주 충전을 해줘야 한다.

나는 이런 배터리 충전이 싫다. 스마트폰 배터리 관리만으로도 충분히 신경 쓰이고 있는데, 거기에 다른 기기가 추가된다는 것은 생각만 해도 짜증나는 일이다.

따라서, 시계 본연의 기능을 하는 gps 시계를 선택하고자 했다. 현재 gps 시계를 출시하는 곳은 세이코, 시티즌, 카시오 등이 있는 것으로 알고 있다.

대부분 기능면에 있어서는 아주 유사하다. gps 수신은 기본이고, 태양광 충전도 다 같이 지원한다.

그러나, 나는 그 중에서도 원조가 좋다. 그래서 SEIKO. 그리고, Astron이 디자인이 좀 더 고급스럽다. 물론 가격도 더 비싸다.

내 성격의 대부분은 대충 대충이고 너그러운데, 간혹 섬세해 지기도 하는데, 시계에 있어서는 좀 그런 것 같다.

시계는 늘 정확했으면 좋겠고, 날짜도 알아서 잘 맞춰 줬으면 좋겠다. 그리고, 배터리 같은거 신경 쓰기도 싫다.

그런면에 있어서, SEIKO ASTRON은 나에게 가장 완벽한 시계다.

이런 나에게 기계식 시계는 최악이다. 관리도 복잡하고, 시간이 잘 맞지도 않는 것이 비싸기만 하다.


시계외관


Black Titanium, Sapphire crystal, 45.0mm 의 간단한 사양이다.

Sapphire crystal은 너무나 투명하여, 많은 사람들이 유리가 있는지 없는지 구분하기 힘들 정도다.
Black Titanium은 시계 무게 자체를 줄여 크기에 비해 가볍다.

특히, 개인적으로 나토밴드를 좋아해서, 원래 있던 Titan Band를 나토밴드로 교체한 이후에는 거의 항상 시계를 차고 다니다.
나토밴드를 추가로 주문하였지만, 아직 도착전이라, 예전 시계에서 차고 있던 나토밴드를 대신 사용중인데, 다른 나토밴드와의 궁합도 기대되는 부분이다.

그리고, 시계 안쪽은 굉장히 입체적이다. 각각의 시계 파트가 print 되어 있는 것이 아닌, 작은 조각들로 구성되어 있는 형태라 그 입체감이 굉장하다.

그리고, 각 파츠들이 반짝반짝 빛을 반사하고 있어서, 화려한 보석 같다. 사실 이 부분이 장점이기도 하고 단점이기도 한데, 내 몸에 있는 유일한 악세사리이면서, 유일하게 반짝이는게 시계다.
그런데, 너무 반짝여서 시인성이 좀 떨어지는 면이 있다.

그리고, 날짜 표시 부분이 작아서 읽기가 좀 힘들다. 사실 노안이 슬슬 오고 있다.






시계기능

퍼페추얼 캘린더

잘 알려졌다시피, 2100년까지 날짜를 따로 조정할 필요 없는 퍼페츄얼 캘린더 기능을 가지고 있다.
내가 처음 가져보는 퍼페츄얼 캘린더라 굉장히 만족하고 있다. 

2099년쯤까지 이 시계가 동작하고 있다면, 그때쯤 캘린더 관련 패널을 교환하면 추가로 더 사용이 가능하다고 한다. 하지만, 그때까지 동작할까?

태양광 충전

시계를 수령하고 처음 케이스를 열었을 때도, 배터리는 완충 상태다. 일반 직장인이라 사무실 생활이 많은데, 그럼에도 불구하고, 한번도 배터리 게이지가 떨어지지 않는다. 당연한 결과이기도 하면서, 신기하기도 하다.
충전 배터리가 노후되어 수명이 다 되기 전까지는 계속해서 사용 가능할 듯. 10년에 한번은 교환해 줘야 하지 않을까?

Timezone

공식적으로 40개의 Timezone을 지원한다. 웬만하면 이정도면 충분하지 않을까 싶다.
물론, DST(Daylight Saving Time, 서머타임)도 수동으로 지원하기 때문에 웬만하면 모든 지역을 커버할 것으로 보인다.

다만, 버튼을 눌러 Timezone을 자동으로 설정하는 경우 반드시 하늘이 보이는 장소에서 진행해야 제대로 진행되기 때문에, timezone에 대한 지식이 있는 경우에는 수동으로 설정하는 것이 훨씬 간편하다.

특히, sub dial에 있는 시간 설정을 위한 타임존 설정은 수동으로 밖에 안되기 때문에 수동 타임존 설정 기능은 반드시 숙지하는 것이 좋다.

비행기를 이동하는 경우, 비행기와 공항을 이용하는 시간이 긴데, 이 시간동안 타임존 설정을 하지 않는 것 보다 수동 타임존을 설정하면 훨씬 편리할 것이다.

유튜브를 보면, 씨티즌 GPS 시계등과 타임존 설정 성능을 비교하는 것이 있는데, 이중에 Astron이 성능이 가장 늦다. 그러나, 이것이 과연 어떤 의미가 있을까 싶다.

수동 설정이 가장 빠르고, 간단하다.

Dual Time

이 시계의 가장 큰 장점이 Dual Time 지원사항이다. Dual Time 지원을 위해, 작은 시계와 오전/오후 표시를 위해 dial이 존재한다. 원래 목적은 외국 여행중에 local time 확인을 위해서 존재한다.

하지만, 외국 여행이 잦지 않은 나같은 경우, 작은 시계를 회사의 본사(미국 서부) 지역 시간으로 설정하여 사용하고 있다.

sub dial의 timezone 역시 간단한 설정으로 변경 가능하므로, 이것 역시 유용한 기능이다.

GPS Time Sync

GPS 기반 Time sync는 단 하나의 gps 신호만 수신하면 가능하므로 타임존 설정에 비해 간단한 작업이다. 따라서, 하루에 한번 자동으로 시간 설정을 시도한다.
그런데, 이 자동 시간 설정이 명확한 부분도 있는 반면, 일부는 명확하지 않다.

한가지 명확한 것은, 한번 사용자가 수동으로 gps 시간 설정을 하면, 그 시간을 기억하고 있다가 하루에 한번 그 시간에 gps 시간 설정을 시도한다는 것이다.

그외에, 태양광을 일정시간 이상 쬐는 경우에 자동으로 시간 설정이 된다고 하는데, 이 부분에 있어서는 동작이 명확하지 않다.
그동안의 테스트 결과로는, 이전 gps sync가 fail 상태이고, 강한 햇빛을 쬐는 경우 자동으로 gps sync를 시도하는 것으로 보인다.

따라서, 항상 gps 수신이 가능한 시간에 수동 시간 설정을 한번 하기를 권고한다. 예를 들어, 규칙적인 출퇴근 시간 같이.

결국, 적당한 시간에 gps sync를 수동으로 한번 진행하고, 이후 잊고 사는게 답이다. 대부분의 경우 항상 정확한 시간을 표시하고 있을 것이기 때문이다.

공식 홈페이지는 http://www.seiko-astron.com/8x_dual-time/ 

2011년 10월 18일 화요일

나는 가수다, 자우림과 바비킴

나가수 이전에 개인적으로 좋아했던 가수들이다.

두 가수 모두 나가수에 나와서 처음에 기대를 많이 했다가, 초반에 고생을 하는 모습들을 봐왔다.
그런데, 최근의 두 가수는 아주 탁월한 성적을 보이면서 나가수에서 두각을 나타내고 있다.

특히, 자우림의 노래는 듣는 순간 몸에 전율이 일어날 정도로 멋졌다.


자우림 - 가시나무 from Music1004 on Vimeo.

자우림 - 꿈 from Music1004 on Vimeo.


바비킴 - 추억속의 재회 from Music1004 on Vimeo.


바비킴 - 골목길 from Music1004 on Vimeo.


2011년 10월 6일 목요일

스티브 잡스 삼가 고인의 명복을 빕니다.

스티브 잡스에 대한 훌륭한 평가와 많은 악평등 수많은 세간의 평가와는 별개로, 그는 치열한 삶을 살았고 그가 이룩한 수많은 혁신은 우리의 삶을 윤택하게 하였습니다.

IT의 한 획을 긋고 이제는 전설이 된 고인의 명복을 빕니다.

2011년 10월 5일 수요일

하린이 사진...

넌 뭐야?


짜식 별거 아니군.


실망스러운 iPhone 4S 그러나,

아이폰 4S가 발표되었다. 아이폰 5를 기대했으나, 실망스럽게도 4S였다.

디자인도 그대로, HSDPA 정도의 추가와 카메라 성능 CPU 성능과 메모리 및 저장 공간의 증가, 월드폰 지원이 전부였다.

이 기능들과 더불어 디자인에 변화를 줬으면 어땠을까 생각된다. 그렇다면 이렇게 까지 실망감은 들지 않았을지 모른다.

여러가지 루머가 돌았지만 그중에 하나인 LTE 출시설은 기대하지도 않았다. 현재 LTE 망은 새롭게 구축중이기 때문에 지원 범위가 제한적이다. 때문에 LTE 단독 지원이 불가능하여, LTE와 월드폰의 기능을 동시에 지원해야 하는데, 그렇게 되면 보다 많은 배터리와 하드웨어 공간이 추가로 필요하게 되어, 아이폰에 적합하지 않다. 추후에 LTE 기능이 one-chip에 포함되어, 이러한 문제가 해결되어야 애플이 LTE 기능을 아이폰에 추가하지 않을까?


다른 한편으로는 4S를 출시한 이유가 원래는 아이폰5와 4S 모두를 준비했는데, 기술적인 문제로 아이폰5의 출시가 연기된 것은 아닌가 생각도 든다. 현재 수준의 제품을 출시하는데, 출시 일정을 연기했다는 것은 뭔가 의심스럽다.

애플의 새로운 시도가 내부적으로 실패한 것일까?

때문에, 내년 1~2월 정도까지는 기존의 아이폰 3GS를 그대로 사용할 예정이다. 그때까지도 새로운 제품 출시가 없다면, 실망스럽겠지만 그때 바꿀 수 밖에....

2011년 9월 2일 금요일

iPhone 저작권 목록 분석

오래전에 작성하다가 놔둔 내용이다. 지금의 아이폰과는 다른 부분이 있을지 모르지만, 누군가에게는 도움이 될지 모른다는 생각에 올린다.

-----------------------

우연히 저작권 항목을 살펴 보았다. 그런데, 이 항목을 살펴보면서 iPhone에서 사용되고 있는 Software에 대한 정보를 얻을 수 있어서, 여기에 정리해 본다.

참고로 여기 항목에 나타나 있어도 실제 사용되지 않을 수도 있으니, 이 항목의 모든 software가 사용되었다고 확신할 수는 없다.

BSD kernel
AT&T C Library
Mach Operation System
pppd
poll
stack_protector.c
BSD Operating System
libgcc, libstdc++
GNU libiconv
ncurses
FreeType
iLIBC codec
Xpdf JBIG2 decoder
TCMalloc
zlib
SHA2
AES implementation, SHA2 Message Digest
SQLite
ICU
BIND
JPEG library
TIFF library
dtoa.cpp - Lucent Technologies
Kerberos, WebDAV
arena files parser
NSS - Network Security Services
MeCab
OpenSSH
OpenSSL
Distributed Computing Environment 1.1
tif_pixarfilm.c
libpng 1.0.8
giflib
bzip2
Tiny Scheme
libm - Sun Microsystems
Sun RPC - Sun Microsystems
libuuid
ConvertUTF
wordexp (), wordfree () from LDM project
PCRE - PCRE is a library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language.
libxml2, libxslt
ASN.1 compiler
tidylib
WebKit (khtml, kcanvas, kdom, ksvg2, kjs)
IPsec-Tools, racoon

iPhone 4 발열 문제 해결 방법 한가지

멀티태스킹이 적용되면서 아이폰 발열 문제 등이 많이 발생하는 것으로 보인다.

마누라의 경우도 아이폰4를 사용하는데, 최근 몇달 동안 발열 문제로 폰을 3번이나 교체를 했는데도 문제가 해결되지 않는다.

나도 개발자이기 때문에 이 발열 문제가 하드웨어 이슈가 아님은 짐작하고 있었지만, 일단 바꿔봤다. 그렇지만 여전히 문제는 계속된다.

자, 이제는 확실히 소프트웨어 문제로 판명됐다. 발열이유가 임의의 프로그램이 CPU를 100% 점유하고 있기 때문에 발생하는 현상이기 때문이다.

때문에 다음과 같은 테스트를 진행해봤다.


  • 아이폰을 restore 하고, 설정을 전부 새롭게 하였다.
    • 한 2주간은 별문제 없었지만, 결국 다시 문제 발생
  • 리부팅을 다양한 방법으로 해봤다.
    • 부팅완료 후 CPU 점유율이 다시 100% 를 유지하고 있다.
결국 해킹을 하고 프로세스 상태를 확인하려고 했다. 그러다가 문득 내가 iPhone 개발자 등록비를 내고 xcode로 아이폰에 연결할 수 있음을 기억해 내고 말았다.

xcode를 연결하고, iPhone에서 출력하는 로그를 확인하였다. 그리고, 문제의 이유를 찾을 수 있었고, 발열 문제를 해결하였다.

이유는 회사 Exchange 설정을 한 후에 대략 2주간 Exchange 와 연결 설정을 하지 않은 것이 문제였다.
Mail 프로그램이 계속 회사 Exchange Server와의 연결을 시도하고 있었던 것이다.

이것은 명백한 아이폰 버그이다. 문제 해결은 집에서 간단히 VPN으로 회사 Exchange 와 연결하는 것으로 끝.

너무나 어이없는 원인이었지만, 지난 몇달간의 고생이 빛을 보는 순간이었다.

어서 빨리 ios5가 릴리즈되고, 이러한 문제가 수정되었으면 한다.

2011년 8월 29일 월요일

3D TV 전쟁 LG 승?

그간 3D TV에 대한 삼성과 LG의 경쟁이 치열했다.

겉보기에 두 회사 3D TV의 가장 큰 차이는 안경으로 확인할 수 있다.
삼성은 전자 장치가 내장된 3D 안경을 사용하고, LG는 단순 필터 방식의 안경을 사용한다.

기술을 간단히 요약하면,

삼성의 경우 초당 120 Hz의 화면을 출력하면서 양쪽 눈 각각에 60 Hz 의 화면을 따로 보여주고 있다. 왼쪽, 오른쪽 눈을 위한 화면이 번갈아 나오고, 안경의 셔터가 왼쪽 오른쪽을 번갈아 가며, 열고 닫아 양쪽 눈이 서로 다른 화면을 보도록 지원한다.
때문에, 안경에 전자 장치 및 이를 위한 배터리가 포함되어야 한다.

LG는 화면에 양쪽 눈을 위한 화면을 동시에 출력하는데, 이때 사용하는 전파의 파형이 서로 작각이 되도록 하고, 안경의 필터가 이를 추출하여 양쪽 눈에 서로 다른 영상을 전달하는 방식으로 되어 있다.
때문에, 안경에 단순 필터가 설치되어 있으면 된다.

그런데, 이러한 차이가 큰 차이를 만들고 있다. 삼성 방식은 TV와 안경사이의 세심한 동기화가 이루어져야만 가능하다. 그리고, TV와 안경이 서로 연결이 되어야 한다. 이러한 섬세한 동작 방식으로 인해 극장과 같이 많은 사람들이 동시에 3D를 보는 방식에서는 삼성과 같은 방식을 사용할 수 없다.

LG는 단순 필터 안경이기 때문에, 다양한 형태의 안경을 개발할 수 있다. 안경을 착용하는 사용자를 위한 클립식 필터 등을 만들 수 있는 이유다.
또한, 극장이 아닌 장소에서 대형 모니터를 이용하여 많은 사람들에게 동시에 3D 화면을 제공할 수도 있다. 공공장소에서 3D 화면을 일반 사람에게 제공가능한 것이다.

이렇듯, 단순한 방식의 차이에서 그 활용도에서 많은 차이를 보이고 있다. 그리고, 이러한 활용도의 차이는 시간이 지나면서 점점 더 커질것으로 보여진다.

사실상 3D TV 기술 방식에서는 삼성의 패배로 보인다. LG 방식이 더욱더 다양한 활용처를 생산하기 때문이다.

2011년 7월 31일 일요일

Google Tasks

요즘 일이 많아 할일을 관리해야할 필요가 생겼다.

그렇게 해서 이렇게 저렇게 방법을 찾아 봤는데, 몇가지 이유로 Google Tasks를 이용하기로 하였다. 요즘은 회의나 온갖 상황에서 항상 Google Tasks를 이용하여 메모를 하는 좋은 습관이 생겼다.

Google Tasks의 특징을 정리하면 다음과 같다.

  • 이미 구글 계정이 있기 때문에 추가 계정 생성이 필요치 않다.
  • 인터넷 서버스이기 때문에 어디에서나 접근이 가능하다.
  • 다양한 전용 프로그램이 존재한다.
  • 완료된 할일을 정리하기 쉽고, 이후에 확인하기도 편하다.
  • 다양한 카테고리를 지원한다.
  • 들여쓰기를 이용한 할일 관리를 지원한다.

iPhone에서는 GoTasks 를 사용한다.

다음과 같은 기능을 제공한다.
  • Free다
  • Google Tasks의 모든 기능을 제공한다.
  • Due date에 알림창으로 그날 할일을 알려 준다.

Chrome Browser의 확장 프로그램을 지원한다.


2011년 7월 11일 월요일

안드로이드 특허 이슈 정리

최근 안드로이드 관련 특허 분쟁이 자꾸 발생하고 있다. 현재 발생중인 특허 이슈를 한눈에 알아 볼 수 있도록 정리하고자 한다.


이곳 저곳에서 자료를 수집하였다.


http://androidkr.blogspot.com/2010/08/android-oracle-google-android-part-1.html



MS 특허 분쟁


MS에서 제기한 특허 분쟁들이다. 2011년 7월 현재시점에서 HTC는 5달러 라이센스비용을 지불하기로 합의한 상황이다.


이 특허는 모바일 단말기가 PC보다는 성능이 느린 단점을 극복하기 위한 것이다. 브라우저가 보여주는 문서는 텍스트와 이미지가 혼합되어 있다. PC는 텍스트와 이미지를 거의 동시에 다운로드 하지만 모바일 단말기는 그러기에는 성능이 너무 떨어졌다. 그래서 텍스트만 먼저 보여주고, 이미지는 X 박스로 영역만 먼저보여준다. 그 다음 이미지 하나씩 다운로드하여 차례로 보여주는 방식이다. 이런 방식이 반즈앤노블에서 만든 안드로이드 기반 전자책 '누크'에 적용되어서 특허 소송이 걸렸다. 


전화통화 기록으로 부터 연락처를 검색하여 연락처 리스트에 추가하거나 갱신하는 방법에 관한 내용 


휴대폰 장치, 어플리케이션, 서비스 상태를 미리 정의해 두었다가, 조건에 맞는 상태가 발견되면 알려주는 방식에 관한 내용이다. 위 2개 특허는 모토로라에게 소송했던 특허중 2개 이다.

애플 특허

멀티터치 관련 UI 특허 (ZDNET Link)

이 특허는 오늘날의 특허소송과관련, 그 중심부인 멀티터치 디스플레이와 관련한 유저인터페이스를 담고 있다. 이 특허는 ‘디스플레이된 콘텐츠를 번역하기 위한 포터블 멀티기능기기, 방법 및 그래픽유저인터페이스(GUI)’(Portable multifunction device, method, and graphical user interface for translating displayed content)로 명명된 것으로 미 특허 N0 7,966,578호로 등록됐다. 

특허는 이 기술이 ‘포터블 다기능 기기’에서 스마트폰과 태블릿에서부터 다른 터치스크린에 이르기까지 광범위하게 적용될 전망이다. 

씨넷은 애플이 이 특허를 확보함으로써 현재  삼성, 노키아 등과 다각적으로 벌이는 아이폰, 아이패드 특허와 관련해서도 지대한 영향을 미칠 것이라고 전망했다. 

레이븐 자카리 전 특허분석가이자 iOS개발고객 대상의 컨설턴트는 “애플이 급부상하는 시장에서 동작특허를 광범위하게 적용해 특허 방어에 나선다면 다른 기술회사의 기술혁신을 막을 것“이라고 말했을 정도다.  

이 특허는 스마트폰의 가장 기본적 특허를 담고 있다. 즉, 반도체의 킬비특허로 불릴 만 하다. 

보도에 따르면 이번 특허는 터치스크린 상에 보이는 엘리먼트를 이동시키는 모든 방법을 담고 있다.

이 방법은 손가락 하나나 둘, 또는 그이상으로 스크린 터치하는 방법을 담고 있다. 그리고 이 특허에는 얼마나 많은 손가락으로 스크린을 터치해 조작하느냐 하는 방법을 담고 있다. 



애플의 특허 요약서에는 “스크린 조작 제스처에 사용하는 손가락 수에 따라 사용자들은 손쉽게 콘텐츠 페이지를 해석해 내거나 페이지 안에 들어있는 프레임콘텐츠를 해석해 낼 수 있다”로 기술돼 있다. 

오라클 특허
오라클이 썬을 인수하면서, 자바의 소유자가 되었다. 자바는 standard edition에 대해서는 GPL로 공개하였지만, 모바일 영역에서의 자바 사용은 공개하지 않았다.

구글이 안드로이드OS 설계시 프로그래밍언어와 관련된 코드사용을 통해 자사의 자바 저작권과 특허권을 침해하고 있다

2010년 8월 소송


1. No. 6,125,447
특허명: "Protection Domains To Provide Security In A Computer System"

2. No. 6,192,476
특허명: "Controlling Access To A Resource"

위 1,2 번 특허 모두 permission에 기반한 보안 처리에 대한 특허 내용으로 보인다. 모두 Li Gong이 제안한 특허.

3. No. 5,966,702 
특허명: "Method And Apparatus For Preprocessing And Packaging Class Files"

복수 개의 클래스 파일에 중복된 데이터를 전처리 과정에 의해 중복을 합치고 제거하는 처리에 대한 특허 내용인 것 같다. Nedim Fresko가 제안한 특허.

4. No. 7,426,720
특허명: "System And Method For Dynamic Preloading Of Classes Through Memory Space Cloning Of A Master Runtime System Process"

복수 개의 VM 프로세스를 실행 시 초기화 과정을 줄이기 위해 메모리 cloning을 이용한 preloading에 대한 특허 내용으로 보인다. Nedim Fresko가 제안한 특허이다.

5. No. RE38,104
특허명: "Method And Apparatus For Resolving Data References In Generate Code"

컴파일된 바이트 코드를 인터프리트 할 때 성능을 향상 시키기 위해 심볼 정보를 실행 시 숫자 값으로 변경하여 인덱스 정보로 빠르게 링크하는 방법에 대한 특허로 보인다. James Gosling 님께서 제안한 특허.

6. No. 6,910,205
특허명: "Interpreting Functions Utilizing A Hybrid Of Virtual And Native Machine Instructions"

바이트 코드의 특정 부분을 동적으로 컴파일하여 native code로 만들고 인터프리트와 native code 부분을 번갈아가며 수행하는 방법에 대하여 설명하는 특허로 보인다. Sun의 Java ME HotSpot VM을 개발하고 Google로 옮겨 Chrome 브라우저의 V8 엔진을 개발하고 있는 Lars Bak에 의해 제안된 특허.

7. No. 6,061,520
특허명: "Method And System for Performing Static Initialization"

static array 초기화에 필요한 많은 바이트 코드 수행 결과를 .mclass 파일에 미리 저장하여 초기화 과정을 최적화하는 내용으로 보인다. 
Java Virtual Machine 스팩을 Tim Lindholm과 함께 쓴 Frank Yellin이 제안한 특허. 


대당 라이센스 15$ 정도 요구.

2011년 7월 8일 금요일

Apple Mac의 새로운 OS 10.7 Lion을 써보고

요즘 외근이 많아서 MacBook Air를 작업 컴으로 사용하고 있다.
회사 직원을 통해 Lion GM 버전을 설치하여 몇일 사용해 봤는데, 아주 좋다.

가장 대표적인 기능은 Mission Control 과 Email 기능이었다.

Mission Control
이 기능은 한마디로 가상화면 관리 방식이다. 기존의 Space를 제대로 확장한 기능이다.
Touch pad에서는 손가락 3개면 Mission Control이 제공하는 모든 기능을 사용할 수 있다.

세손가락을 아래로 긁으면, Mission Control 상태로 전환되고,
세손가락을 좌우로 긁으면, 가상화면이 전환된다.

가상화면은 최대 16개까지 만들 수 있다.

이번 버전에서 새롭게 추가된 어플들 전체 화면 모드의 경우 별도의 가상화면을 만든 후 생성된다.

Email
기존의 좀 꾸리꾸리한 화면을 정리하여 아주 이쁘게 변신하였다. 현재까지는 약간의 버그로 인해 하루에 한번쯤 멈추는 현상이 발생하지만, 그것 이외에는 깔끔하게 잘 동작하고 있다.

기타
입력기 반응이 향상되었다. 이전보다 빠르게 입력기가 반응하여 오타가 줄었다.
다양한 화면 효과가 추가되었다.

구글 Chrome 이 가끔 멈춘다. 하루에 한두번쯤.

단점
많이 언급되는 문제는 터치 패드의 drag 방향이 반대로 바뀐 것이다. 이 부분은 처음 익숙해 지는데 많은 시간을 필요로 한다. 물론 설정으로 변경 가능한 부분이지만, 난 적응을 선택하였다.

USB Wibro가 동작하지 않는다. 메시지로 봤을 때는 더이상 32bit device driver를 지원하지 않는다고 한다.

맥 주소록 프로그램에서 Gmail 주소록 sync를 지원하는데, 여전히 성, 이름등의 sync에 문제가 있다.

2010년 10월 4일 월요일

청산농원

2010년 9월 4일~5일 청산농원에 다녀왔다.

장소 : 경기도 포천시 신북면 금동리 534-1
연락처: 031-535-8585 / 011-302-7746
홈페이지: http://www.chung-san.net/

아주 조용하고, 옆에 개울이 흐르는 장소로 노부부가 사는 한적한 곳이다.
화장실과 샤워장이 불편한데, 그것만 빼면 아주 좋은 장소다.

주인아저씨는 친절하신데, 전화통화시에는 20,000원이라고 말씀하시고는 실제로는 25,000원 받아 가셨다. 이건 좀 짜증.

화장실과 샤워장 등의 부대 시설은 안좋지만, 자연 경관은 아주 좋은 곳. 사람들에게 많이 알려지지 않아 또한 조용한 곳이다.

그러나, 강남에서 가는데 2시간이 걸렸고, 오는데 3시간이 넘게 걸렸다. 장소는 아주 좋은데 교통체증이 너무 심하다. 새로운 길을 개발해야겠다.

임진강 폭포어장 캠프

2010년 10월 2일 ~ 3일 양일간 임진강 폭포어장 캠프를 다녀왔다.

놀이시설과 비교적 평이 괜찮아서 갔었는데, 솔직한 평으로는 별로...

일요일날 놀이시설로 인한 소음도 많았다. 다만, 주인 아저씨는 굉장히 친절하였다.

오늘 길에 아쿠아랜드라는 목욕탕에 들렸다. 8,000원에 잘 씻고 잘 자고 왔다.

강남에서 막히는 것을 포함하여 약 2시간 걸렸고, 가격은 20,000원.

아이들 놀이 시설 이용에는 좋다. 그러나, 일요일날 소음은 각오해야 함.

2010년 9월 1일 수요일

ANGLE Project

최신 브라우져의 경우 WebGL이라는 GPU 사용을 위한 API를 제공한다. 그리고, WebGL의 API set은 OpenGL을 기반으로하여, 사용하는 OS에서 OpenGL을 제공해야한다.

그러나, windows 시스템의 경우 모두가 OpenGL을 제공하는 것은 아니다. 많은 하드웨어가 DirectX만을 지원하는 경우가 많다.

ANGLE은 DirectX 기반의 하드웨어에서 WebGL을 지원하기 위한 프로젝트이다.

2010년 8월 27일 금요일

SPHINX

새로운 형태의 개발자를 위한 document tool이다. 원래는 python document를 위한 도구였으나, C/C++도 지원한다.

다양한 출력 format을 지원하고, 무엇보다도 doxygen 보다 출력된 문서의 quality가 더 좋아 보인다.

아직 사용해보지는 않았지만, 다음 프로젝트에서 한번 사용해봐야 할거 같다.

ffmpeg의 vp8 decoder

ffmpeg에 현재 세상에서 가장 빠른 vp8 decoder가 들어갔다는군요.

그들이 최적화에 돌입한지 몇주만의 성과라고 합니다.

역시 ffmpeg 팀...

Multitouch Protocol specification v1

X Input Extension 에 추가될 멀티터치 규격이 나왔다.

XI2proto.txt 를 참고하거나, LWN 의 Article을 참고하자.

개인적으로는 많이 기다린 규격이다. 모바일 환경에서 이제는 멀티터치가 대세인데, 리눅스에서는 아직까지 각각 별도 개발을 진행한 것이 사실이다.

이제서라도 나와줘서 고맙다.