기본 콘텐츠로 건너뛰기

1월, 2012의 게시물 표시

Linux: some VIM tips for your programming

Tips for VIM which can be useful for programming jobs

- Open file at a location that was last viewed
==> http://superuser.com/questions/111016/vim-open-file-at-location-that-was-last-viewed

- Code completion (you can see how it works from the below screen shot)
==> http://amix.dk/blog/post/19021


- See manual at cursor
==> 'K' on function name

- Do not use space as tab for Makefile
==> 'autocmd FileType make setlocal noexpandtab' from VIMRC

- Edit your own VIMRC
==> e $MYVIMRC

- How to use gcc compiler with make?
==> 'compiler gcc' from VIMRC. Type 'make' from VIM command input.

- Ctags usage
==> http://stackoverflow.com/questions/563616/vim-and-ctags-tips-and-tricks

- Find string and open file
==> Ctrl-W, I

- TODO: Need to check later
==> https://github.com/Rip-Rip/clang_complete/

Linux: FUSE and thread termination

These days, I'm trying to write a file system via FUSE. During the debugging, I found that if I want to use threads with pthread, I need to create my own thread from init function of fuse operations.

If I create thread from main function before I call fuse_main, my thread will be terminated soon after fuse_main function calling.

I saw the FAQ of FUSE and it mentioned all thread should be created from init because when the FUSE process goes to background the threads which was started before fuse_main will be exited. Please see the below references.

References:

How should threads be started?: http://sourceforge.net/apps/mediawiki/fuse/index.php?title=FAQ#How_should_threads_be_started.3Fhttp://fuse.sourceforge.net/

Linux: How to kill specific process with it's name?

If you want to find a process named "testapp" and kill it, how can you do this?


ps -ef | grep testapp | head -n 1 | fmt -u | cut -d ' ' -f 2 | xargs kill -9

But, this is too complex solution for simple issue. I just can use 'killall'. Such as 'killall testapp'.
It's still interesting to learn Linux tools to manipulate text data. (such as head, cut, fmt ...)

References:
Learning GNU text utilitiesText manipulation tools

Cloud: Amazon Storage Gateway 소개

Amazon S3 클라우드 스토리지를 이용한 데이터 Snapshot 백업을 제공하는 새로운 서비스 - Amazon Storage Gateway. 소개 동영상을 보자!


실제 구현 구조에 대한 그림.

AWS Storage Gateway 소프트웨어를 저장장치가 연결되어 있는 Host Computer에 설치한다. 클라이언트는 기존과 다름없이 SAN (Storage Area Network)에 저장하듯이 iSCSI 인터페이스로 데이터를 전송한다. 그러면, AWS Storage Gateway가 데이터의 변경 부분만 AWS S3에 Snapshot으로 저장하고 SAN Disk에 모든 데이터를 저장한다. 예를 들어 100MB의 데이터를 클라이언트가 Host에 저장하려고 하는데 5MB만 기존 데이터와 다르다면 5MB만 AWS S3에 Snapshot으로 저장되고 100MB는 SAN Disk에 써진다.

Apple의 Time Machine 백업과 같은 기능을 AWS S3를 이용하여 클라우드 스토리지에 저장하는 셈...

Getting Started Tutorial 참고.

Embedded: eCos (Embedded Configurable O.S.)

eCos is a free open source real-time operating system intended for embedded applications.
You can find a free eBook for eCos from the below link:

EMBEDDED SOFTWARE DEVELOPMENT WITH ECOS™
  => http://ptgmedia.pearsoncmg.com/imprint_downloads/informit/perens/0130354732.pdf

Wikipedia page of it: http://en.wikipedia.org/wiki/ECos

List of real-time O.S.: http://en.wikipedia.org/wiki/List_of_real-time_operating_systems

Embedded Linux or eCos?: http://stackoverflow.com/questions/2672502/embedded-linux-or-ecos

Wireless: 802.11ac

애플이 최근 새로 발표된 와이파이 기술을 에어포트를 시작으로 자사 제품군에 곧 적용할 것으로 보인다. 최근 열렸던 ‘2012 소비자가전쇼(CES)’에서 새로운 와이파이 규격인 ‘802.11ac’가 발표됐다. 1세대 무선기술 802.11이 등장한 이후 802.11b/g/n을 거쳐 등장했기 때문에 ‘5세대 와이파이 기술’이라고 불린다.
(이상 Bloter.net 기사에서...)
802.11ac는 더 넓은 RF 대역폭과 최대 8개의 MIMO 스트림, 256 QAM 모듈레이션 등을 통해 500 Mbps ~ 1 Gbps의 빠른 통신 속도 지원이 가능하다고. 다음 번 Mac 제품을 구매하려면 802.11ac가 지원되는 제품 라인업이 나올 때 까지 기다려보는 것이 좋겠다~
(From Zdnet.com)
참고자료:

http://en.wikipedia.org/wiki/IEEE_802.11ac

2012년 IT 전망들

http://www.bloter.net/archives/92670

2012년에 대한 각종 IT 전망들이 나오고 있다. 2011년 전망들과 비교해보니 뭐 거기서 거기 수준. 클라우드, 스마트 디바이스, 빅 데이터 등등 이전에 다루었던 내용과 큰 차이 없어 보인다.



결국 IT 업계를 쥐고 흔드는 몇몇 업체들에 의해서 올해의 IT 기술 화두가 결정되지 않을까 싶다. 예를 들면...

- Apple의 TV 출시에 따른 스마트 TV에 대한 관심 폭증
- Apple의 iBooks 2 출시에 따른 새로운 eBook 컨텐츠에 대한 관심 증가
- Siri에 의해 촉발된 음성인식 기술 및 인공지능 기술
- Nokia + Microsoft 진영의 약진에 의해 Windows Phone에 대한 관심 증가
- iPad 3를 이용한 eLearning 산업 (with iBooks 2, iTunes U + maybe Siri)
- The New iPad를 이용한 교육의 혁명 (with iBook, iTunes U ...)
- Windows 8 ?
- 여전히 LTE 광고는 많이 나올 것이고...

사랑하는 Apple 제품에 대한 몇가지 상상을 해본다면 ...

Apple은 Siri와 iBooks 컨텐츠를 연동해서 멋진 기능을 제공하려고 시도하지 않을까? 음성으로 책의 내용을 검색한다거나 학생의 질문을 책의 내용 + 인공 지능으로 답변해준다거나 하는... iPad가 선생님의 역할을 일정 부분 대신해주는 날이 올지도. iBooks에 대한 Genius 지원 등도 가능한 시나리오로 보인다. 책에 대한 Ping 서비스도 가능할 것 같고.

삼성전자는 2012년 기술 트렌드에 일조할 무엇이 없을까? 음..... 쩝.

Linux: Data Structures for C

How can I use basic data structures such as list, queue and stack in Linux by using C language?

1) List, Tail queue, Circular queue from 'sys/queue.h'
http://stackoverflow.com/questions/1173422/library-for-the-basic-data-structures-such-as-queue-in-c
See 'man queue' also.

Example codes of LIST: http://ideone.com/T1EID
Example codes of TAILQ: http://blog.unx.ca/2006/08/tailq-example.html

2) Priority queue
https://github.com/vy/libpqueue#readme

Linux: Threads Programming

Let's summarize information about the threads (parallel) programming on Linux.

1) POSIX Threads Programming
https://computing.llnl.gov/tutorials/pthreads/

2) OpenMP
https://computing.llnl.gov/tutorials/openMP/

3) Interesting Q&A

Mutex order: http://stackoverflow.com/questions/4713782/boost-mutex-orderpthread_cond_wait never unblocking: http://stackoverflow.com/questions/4989801/pthread-cond-wait-never-unblocking-thread-pools
This page (https://computing.llnl.gov/?set=training&page=index) has valuable lectures for parallel programming.