표준입력으로부터 문자열을 라인 단위로 입력 받기 위해서는,

C 표준 라이브러리 stdio.h 에 있는 함수 중,

fgets, gets 를 사용할 수 있는데,


fgets(buf, buf_size, stdin); 와 gets(buf); 의 차이는 무엇일까?

==> buf 에 new line character 를 붙이느냐 안 붙이느냐 차이다.

      fgets 로 받은 buf 에는 new line character 가 붙고,

      gets 로 받은 buf 에는 붙이지 않는다.


유사하게,

fputs(buf, stdout) 과 puts(buf) 의 차이는?

==> 둘 다 null character 를 만날 때가지 표준출력으로 출력하는데,

      fputs 는 마지막에 new line character 를 붙이지 않고,

      puts 는 마지막에 new line character 를 붙인다.



표준입/출력으로부터 라인 단위로 데이터를 처리해야 할 것이 있어서 잠시 찾아본 내용~

반응형

설정

트랙백

댓글

개인적으로 거의 대부분의 인터넷 서비스를 구글을 이용하고 있습니다.

메일, 일정, 할일목록, 노트, 구글 리더(RSS) 등등...


그 중에서도 오늘은 북마크 이야기를 해 볼까 합니다.


요새는 온라인 북마크를 제공해 주는 곳이 많이 있죠.

하지만 쉽게 접근이 가능하고 브라우저에 독립적인 서비스를 해 주는 곳이라면

구글 북마크만한 곳이 없다고 생각됩니다.


계정 만들기도 쉽고, 개인정보나 보안이 걱정된다면 별도의 계정을 만들면 되니깐요.

(나중에 기회가 된다면 이야기 하겠지만, 저는 비슷한 이유로

 안드로이드 노트류 어플인 GNotes를 독립된 계정으로 사용하고 있습니다.)


개인적으로 IE, FF, Chrome 3 가지 브라우저를 모두 사용하는 터라,

이러한 북마크 서비스가 꼭 필요합니다.


IE 에서는 구글 툴바를 통해,

FF 나 Chrome 에서는 확장기능을 통해서 구글 북마크 관리가 가능하죠.

물론, 이러한 Add-on 이 없더라도 그냥 구글 북마크 웹 페이지 열어두고 사용하는 방법도 있지요.


구글 북마크 페이지 : https://www.google.com/bookmarks

(여담입니다만, 저기에서 웹 기록에 들어갔더니 좀 무서웠습니다.

 주위 사람들에게 구글에 날 팔았다라고 말하고 다니긴 하지만...)


구글 북마크는 기본적으로 'Tree' 기능을 제공하지 않습니다.

단순히 북마크에 Label (분류) 만 지정할 수 있죠.

하지만 여기에도 'Tree' 기능을 흉내내는 방법이 있습니다.


바로 Label 에 '>' 를 넣어두면 FF 나 Chrome 의 구글 북마크 확장기능에서

자동으로 Tree 형태로 보여주게 됩니다.

확장기능 사용방법을 잘 모르신다면, 참고에 있는 바다야크님의 글에 잘 설명되어 있답니다.

( 참고: 바다야크님의 글 - 구글 북마크 서비스, 소중한 북마크를 모든 컴퓨터에 똑 같이 동기화 )


하지만 이러한 편법을 쓰더라도 IE 의 구글 툴바나,

구글 북마크 웹페이지에서는 Tree 형식으로 보여주진 않습니다.

이 부분은 좀 아쉽긴 합니다만, 언제 시간이 된다면 구글에 기능개선 제안이라도...

(사실 이것보다 더 아쉬운건 구글 캘린더 음력 지원인데...)


오늘은 여러가지 구글 서비스 중, 북마크 이야기였습니다.

나중에 기회가 된다면 다른 구글 서비스에 대해서 이야기 해 보겠습니다.


마지막으로 미닉스님의 글을 링크하며 이만~

구글을 위한 변명


반응형

설정

트랙백

댓글

Snes9x EX 홈페이지


제가 본 안드로이드 에뮬레이터 중 가장 마음에 들었던 에뮬레이터인

Snes9x EX 가 다시 마켓에 등록되었네요!!

(예전에 마켓에 있었다가 사라졌었는데, 다시 등록이 되었군요)

물론 Snes9X EX 개발자가 올린겁니다.


마켓에서 Snes9x EX+ 로 검색하면 됩니다.

Cheat 기능이 없는게 아쉽긴 하지만,

무료로 받을 수 있는 SNES 에뮬레이터 중에는 가장 좋다고 생각됩니다.


단, 현재(2013년 2월 4일 기준) 등록된 최신 버전은 1.5.8 버전입니다.

1GHz 이상의 CPU 의 기기에서 사용할 것을 권장하고 잇네요.

옛날 기기를 사용한다면, 홈페이지에 와서 1.4.3 버전을 받으라고 하는데...

디버그 버전이 아닌 릴리즈 버전의 1.4.3 버전은 찾을수가 없군요.


P.S

여기에 Feel 받아서 같은 개발자가 개발한

NES.emu 유료 버전을 구입했는데,

여기도 Cheat 기능은 안습이네요. (췟!)

반응형

설정

트랙백

댓글

쓸만한 공개 유틸리티 정리해 봅니다.
개인뿐만 아니라 회사에서도 무료로 쓸 수 있는 프로그램 위주로 정리합니다.
(앞으로도 계속 업데이트 할 예정입니다.) 



- 압축 프로그램
1. 7-zip : 오픈소스 프로그램. 7z 은 탁월한 압축률을 자랑한다. 간단한 파일 매니저 기능도 있음.
2. 반디집: alz, egg 파일 압축 해제 가능. 제발 좀... 알집을 쓰더라도 alz, egg 포맷을 안 썼으면 좋겠는데... 

- 이미지 프로그램
1. Imagine : 용량 작고 빠른 이미지 뷰어! donationware 로 여유가 있으신 분은 기부를...
2. 꿀뷰3 : 만화책 뷰어로는 최고. 이미지 뷰어로도 괜찮다.

- 문서 관리
1. Notepad++ : 텍스트 에디터. Notepad 보다 한 백만배쯤 나은듯...

- 보안/바이러스
1. V3Lite : 백신 프로그램. 개인용으로만 사용가능함..(회사에선 사용 불가)
               회사에서 백신을 사용한다면 구입하는게 최선일듯... 

- 기타
1. Deskpins : 윈도우창을 항상 위로 만들어 주는 유틸리티.
                   참고로 홈페이지는 더 이상 접속이 되지 않는다.
                   여기 <-- 에서 다운 가능. 단축키는 Ctrl+F11, Ctrl+F12
2. HTTrack : 웹사이트를 로컬로 다운로드 하는 프로그램. Website Copier.


반응형

설정

트랙백

댓글

(원문글)

http://www.ansaldocomputing.com/ubuntu-flash-installer-hanging-on-httparchive-canonical-com.html


결론은 /etc/wgetrc 파일에 프록시 설정을 추가하라는 것.

# You can set the default proxies for Wget to use for http, https, and ftp.

# They will override the value in the environment.


https_proxy = http://proxy-server.********.com:8080/

http_proxy = http://proxy-server.********.com:8080/

ftp_proxy = http://proxy-server.********.com:8080/

# If you do not want to use proxy at all, set this to off.

use_proxy = on


반응형

설정

트랙백

댓글

나의 장기 프로젝트 중 하나는 초소형 컴퓨터를 넣은

오락실용 게임기 캐비넷을 만드는 것입니다.


이런 초소용 컴퓨터에는 예전부터 계속 관심을 가져 왔었지요.

그래서 종종 미니 베어본들을 살펴보곤 했습니다.


그러다가 Raspberry Pi(라즈베리파이, 이하 RPi)와 MK802II라는 것을 알게 되었습니다.

( 그리고 어떤 것을 살까 고민하다가, 둘 다 질러버렸습니다... -_-;; )


요넘들은 저가의 초소형 컴퓨터라고 볼 수 있습니다.

가격은 RPi B모델이 $35, MK802II는 $66 입니다.

두 가지를 외형과 스펙을 간단히 살펴보면 아래와 같습니다.


[Raspberry Pi Model B]

(출처: http://www.raspberrypi.org/faqs)


RPi B모델의 간단스펙은 다음과 같습니다.

검정색이 더 이쁘던데 홈페이지에 검정색 모델의 사진은 없네요.

(자세한 스펙은 http://elinux.org/RPi_Hardware 참고)

CPU & GPU: Broadcom BCM2835 (ARM11 700MHz + Broadcom VideoCore IV)

RAM: 512MB (2012/10/15 이후부터, 이전에는 256MB)

USB 2.0 ports: 2개

Video outputs: 컴포지트, HDMI (동시출력안됨)

Audio outputs: 3.5mm jack, HDMI

Onboard Storage: 없음. SD카드 필요.

Network: 10/100 wired Ethernet

Power: MicroUSB or GPIO header 를 통한 5V DC 





[Ricomagic MK802II]

(출처: http://www.rikomagic.co.uk)


MK802II의 간단스펙은 다음과 같습니다.

(http://www.rikomagic.co.uk/forum/viewtopic.php?f=2&t=305 참고)

Main Chip: Allwinner A10 (ARM Cortex-A8 1GHz)

RAM: 1GB

Storage: 4GB

OS: Android 4.0 (Micro SD 카드를 통해 리눅스 사용 가능)

Graphics: MALI 400 Processor

Network: Wireless 802.11b/g/n

External Storage: Micro SD 2~32GB 지원

IO: Micro USB x 2, USB 2.0 x 1, HDMI x 1, Micro SD x 1

Power: USB port로 공급받음



전 아직 물건을 받지 못해서 잘 모르겠지만,

sonhc님의 글에 따르면 (http://sonhc.tistory.com/440)

3만원 정도의 차이라면 MK802를 추천한다고 합니다.

(온라인 게임만 하지 않는다면,

 부모님들 컴퓨터를 MK802II로 구성해 드리는건 어떨까 싶기도 하네요.)



제가 RPi와 MK802II을 가지고 해보려고 하는 것은 두 가지가 있습니다.


하나는 Dosbox, MAME, SNES 등의 에뮬레이터 성능이

어느정도 나오는지 확인을 해보고 싶네요.

근데 ARM용으로 제대로 된 port 가 있을지 모르겠네요.

일단 이건 나중에 고민을...


또 한가지는 XBMC로서의 기능과 성능을 확인 해 보고 싶습니다.


인터넷에 여러 글들이나 동영상이 올라와 있긴 합니다만

그래도 직접 눈으로 확인하고 싶군요.



요샌 집에가면 애보기 바빠서 시간이 날지는 모르겠습니다만,

차근차근 확인해 봐야겠네요.

반응형

설정

트랙백

댓글

JB 에서 사용 가능한 방법

이 방법은 내가 회사 테스트폰에서만 확인한 방법이라,

다른 폰에서도 공통적으로 사용가능 한지 모르겠다.


adb shell input <명령>


을 사용하는 방법인데, JB 의 input 에는 ICS 는 없던 명령이 추가 되었다.

바로 tap 이라는 명령.


adb shell input tap x좌표 y좌표

adb shell input keyevent <키코드값 or 키코드이름>


위 두 가지로 매우 편하게 터치/키이벤트를 보낼 수 있다.




ICS 에서 사용 가능한 방법

참고사이트: http://whitesnows.blogspot.kr/2011/02/android-monkey-tool-script.html

==> Monkey Tool Script 를 이용


1. 이벤트를 정의한 txt 파일을 만들어서

2. txt 파일을 폰의 임의의 위치에 밀어 넣고  --> adb push a.txt /mnt/sdcard/

3. adb shell monkey -f /mnt/sdcard/a.txt [반복횟수]



반응형

설정

트랙백

댓글

http://www.explusalpha.com/home/snes9x-ex/downloads


Snes9x EX 가 1.5.1 버전이 나오면서

드디어 한글폴더/파일을 제대로 표시해 주는군요.


개인적으로 Android 용 SNES 에뮬 중에 가장 뛰어나다고 생각합니다.

하지만 그 동안은 한글 파일 이름을 제대로 표시해 주지 못해 불편했었죠.

그게 해결되어 군요!!!


이제 유일한 단점은 마켓에 없다는 거...


위 링크를 따라가면, apk 파일을 다운로드 받을수 있습니다.

반응형

설정

트랙백

댓글

http://people.csail.mit.edu/bdean/6.046/dp/

위 링크의 Dynamic Programming 문제들 중,

남은 두 문제인 Edit Distance 와 Two-Person Traversal of a Sequence of Cities 에 대하여 정리해 본다.

( 12번 Bin Packing 은 굳이 할 필요가 없어 패스 )

이 두 문제는 도대체 해결방법이 떠오르지 않아, 인터넷의 풀이를 보고 말았다.

두 문제의 풀이를 보면서 일단 DP 문제라도,

문제를 Recursive 하는 푸는 방법을 떠 올리고,

거기서 DP 풀이를 찾는 것이 좋겠다는 생각이 들었다.



- Edit Distance

문제) String A, String B 가 있을 때, A -> B 로 바꾸는 최소한의 Operation 수를 구하는 문제이다.

        Operation 은 다음과 같은 3 가지가 있다.

        1. Insert a character, 2. Remove a character, 3. Change a character to another character.


이 문제는 아래 링크의 풀이를 참고하였다.

https://secweb.cs.odu.edu/~zeil/cs361/web/website/Lectures/styles/pages/editdistance.html

거기서 사용된  예를 가지고 문제를 쪼개는 방법을 설명해 본다.




- Two-Person Traversal of a Sequence of Cities

문제) 순서가 있는 N 개의 도시가 있다. (지리적으로 순서가 있다는 의미가 아니다. 방문할 수 있는 순서를 말한다. )

        그리고 각각의 도시는 모두 연결되어 있다.

        이 도시들을 두 집합으로 나누고 (연속된 도시일 필요는 없다.),

        두 사람 A, B 가 각각의 도시 집합을 방문한다고 할 때,

        A, B 의 이동거리의 합이 가장 짧은 경우는 얼마가 되는가?

        단, A, B 방문 시작점은 각 도시 집합의 첫 번째 도시이다.


처음엔 문제 자체를 이해를 못해서 한참 해멨다.

그 다음에는 문제를 어떻게 풀어야 하는지도 몰라서 한참 생각하다가,

결국 인터넷을 뒤졌는데, 이걸 깔끔하게 설명한 곳도 찾기가 힘들었다.

그리다가 아래 링크의 Grimbal 이란 사람의 리플을 보고 풀었다.

http://www.ocf.berkeley.edu/~wwu/cgi-bin/yabb/YaBB.cgi?board=riddles_cs;action=display;num=1311271494








반응형

설정

트랙백

댓글

- Counting Boolean Parenthesizations

문제) 5개의 심볼을 가지고 만든 Boolean Expression을 괄호로 묶어 Evaluation했을 때,

        결과가 true 가 되는 Case 의 갯수는 몇 개인가?

        심볼 = { true, false, and, or, xor }

        예를 들면, ' false and true xor true '가 true 가 되는 괄호 묶기 방법은 1가지 밖에 없다.




- Optimal Strategy for a Game

문제) N 개의 동전이 있다. (N은 항상 짝수)

        각 동전의 가치는 V(0)...V(N)이며, 이 동전들은 일렬로 놓여져 있다.

        두 사람이 일렬로 놓여져 있는 동전의 양쪽 끝 동전 중 하나를 가질 수 있다고 할 때,

        처음 시작하는 사람이 가능한 최대 금액은 얼마인가?


       상대방이 무엇을 선택하는지는 여기에서 문제가 아니다.

       모든 경우의 수에서 최대값을 찾는 문제인 것이다.

       처음엔 "상대방은?" 이라는 생각에 잠시 혼란스러웠었다.



두 문제 다, 나름 풀만한 문제였다.

근데, 이 두 문제 전에 있는 문제인 Edit Distance는 당췌 아이디어가 안 떠오르네...








반응형

설정

트랙백

댓글