제임스딘딘의
Tech & Life

고양이의 둥지 246

[네트워크/프로토콜] BOOTP 에 대해서. BOOTP란? BOOTP 특성?

BOOTP란? (bootstrap protocol) Bootp는 TCP/IP상에서 자동 부팅을 위한 최초의 표준프로토콜이다.디스크 장치가 없는 클라이언트를 구동시키기 위한 목적으로 개발되었다.여기서, 디스크 장치가 없는 클라이언트라고 하면, 과거 Unix머신과 연결해서 사용하던 'X터미널' 과 같은 장비쯤 되시겠다.이 터미널 장비는 디스크 장치가 없으므로, 장치의 설정정보를 저장할 곳이 마땅치 않게된다. 그러니깐, 디스크 장치를 가지고 있는 Main Unix머신이 이 정보를 가지고 있다가, X터미널이 실행되고 Unix머신에게 연결하려고 신호를 보내면, Unix머신은 Bootp 서버를 이용해서 X터미널에게 이런 정보들을 알려주게 된다.그러면 X터미널은 BOOTP클라이언트 쯤이 된다.정확하게 말하면 클라이언..

PandaBoard ES : 부팅용 SD card 준비

PandaBoard ES : 보드 부팅을 위한 SD card 준비 TI 의 ARM Cortex A9 기반의 임베디드 보드인 PandaBoard ES에는 내장된 별도의 저장공간이 없다. 대신에 sd card슬롯을 제공하고, sd카드의 boot partition을 통해 부팅을 하게된다. 아무래도 trial(시험용) 보드 성격이 강해서 그런 것이리라.. 우선 판다보드 부팅에 사용할 sd카드를 준비하는 작업이 필요하다.다음 순서로 진행할 것이다. 1. SD카드 파티션 분할 및 각 파티션 포맷2. U-Boot 소스코드 다운로드 및 빌드3. Linux Kernel 소스코드 다운로드 및 빌드4. Ubuntu의 Root File System 확보 및 SD카드에 복사5. Wi-Fi driver firmware 확보 및 ..

풀업 저항, 풀다운 저항 (Pull-up, Pull-down)

풀업 저항, 풀다운 저항 (Pull-up, Pull-down) - 입력단 회로MCU나 임베디드 시스템을 구성할 때, 입력부분을 설계해야 하는 경우가 있다. 여기서 입력 부분이라 하면, 버튼이나 스위치 같은 물리적인 입력이 발생하는 부분을 말한다. 이때, 풀업 (Pull-up) 저항을 달거나 풀다운(Pull-down) 저항을 달게 된다. 왜 그런지 이유를 알아보자. 이 저항이 무슨 목적을 가지고 있는지를 이해하면 된다. 그리고 더 나아가, 이 저항을 얼마짜리를 달아야 하는지, 저항값 계산 방법을 알아보자. 플로팅 상태풀업 / 풀다운이 왜 필요한지를 이해하려면 먼저 플로팅(Floating) 상태라는 것을 알면 쉽다. 플로팅은 '떠있다, 부유하는, 유동적인' 등의 뜻이다. 디지털회로에서 플로팅 상태 라고하면,..

라즈베리파이 보안카메라 (Raspberry Pi Security Camera)

라즈베리파이 보안카메라 (Raspberry Pi Security Camera) 소개Welcome to the official tutorial for building your very own Particle-connected security camera with Raspberry Pi! This project uses the Raspberry Pi integration with the Particle Cloud to control a PIR sensor, Neopixel LED ring, and Raspberry Pi camera to watch for intruders, snap a photo, and upload it to the web via Dropbox.All firmware and softwar..

[안드로이드] 최신 Android 7.0 "누가" 출시 : 안드로이드 앱 개발자가 알아둬야 할 것들

최신 Android 7.0 "누가" 출시 : 안드로이드 앱 개발자가 알아둬야 할 것들 안드로이드 7.0, "누가" (Android Nougat) 버전 출시되면서 Google은 이 새로운 운영 체제에 몇 가지 필수 기능을 추가했다. 사실 안드로이드 7.0 누가(Android nougat)에서는 안드로이드 6.0 과 비교했을때, UI, UX, 그리고 Look and Feel을 크게 변경하지는 않았다.그러나 Google은 몇 가지 새로운 필수 기능을 추가했고, 운영 체제를 좀더 세련되게 다듬었다고 볼 수 있다. Nougat에 대한 Google의 설명은 다음과 같다. "Android Nougat은 보안적인 측면에서 사용자를 더욱 안전하게 유지하는 데 중요한 요소를 추가했다. chromebook의 업데이트 적용에..

삼성 GearS2를 위한 타이젠 앱 개발하기 : [2] Hello world 앱 띄우기 (맥 OS X)

SDK설치를 했으니, 실제로 앱을 기어S2에 올려봐야죠. 그런데요, 아이폰 앱개발이나 안드로이드폰 앱개발을 해보셨던 분이라면 의아한 부분이 있을거에요. 기어S2랑 컴퓨터랑 어떻게 연결해서 앱을 올리지? 기어S2는 컴퓨터와 USB케이블을 이용해서 직접 연결할 수 는 없는 구조입니다.물론 기어S2 시계줄을 빼고 옆의 작은 커버를 벗기면 5핀 단자가 노출되긴 하는데요,연결할 거치대가 별도로 제공되거나 판매되고 있지 않죠. Tizen개발자 사이트와 삼성에서 공식적으로 언급하는 방법은 Wi-Fi를 사용하는 방법입니다.기어S2와 컴퓨터를 동일한 네트워크에 연결한 뒤, 이 둘을 'sdb (smart debugger bridge)' 라는 툴을 이용해서 TCP/IP layer로 연결합니다. 선이 없어서 깔끔하지만 반응속..

[Mac OS] 맥의 OS X에서 readelf와 같은 binary utility 사용하기

GNU 바이너리 유틸리티 - GNU Binutils 맥의 OS X건, 리눅스 건, 개발을 하다 보면 디버깅 할 일이 생기게 마련이다.디버깅시 유용한 도구중 하나가 GNU 바이너리 유틸리티(GNU Binutils)이다.GNU 바이너리 유틸리티는 여러 종류의 오브젝트 파일 형식들을 조작하기 위한 프로그래밍 도구 모음인데, 이들은 일반적으로 GCC, make, GDB와 함께 사용하게 된다. as - 어셈블러ld - 링커addr2line - 주소를 파일과 줄로 바꾼다.ar - 아카이브(압축) 파일을 만들고, 수정하고, 해제한다.c++filt - 맹글링된 C++ 심볼들을 원래대로 되돌린다.nm - 오브젝트 파일의 심볼을 출력한다.objcopy - 오브젝트 파일을 복사한다.objdump - 오브젝트 파일에 대한 정..

삼성 GearS2를 위한 타이젠 앱 개발하기 : [1] SDK설치 (맥 OS X)

삼성에서 출시한 스마트워치 GearS2 에서 사용할 앱을 개발하는 과정을 풀어내 봅니다. 1. SDK 설치 특정 플랫폼에서 간단하게 앱을 개발해 보려면 해당 플랫폼이 제공하는 SDK를 사용하는게 통상적인 쉬운 방법이죠.2016년 현재 GearS2는 Tizen 2.3.1 Wearable 플랫폼 기반으로 동작합니다. SDK를 다운로드 받고, 설치하려면 타이젠 개발자 사이트 ( http://developer.tizen.org ) 를 방문합니다. 바로 가는 링크는 : https://developer.tizen.org/ko/development/tools/download?langredirect=1 Tizen개발자 사이트의 다운로드 페이지에 가보니깐 Tizen 2.4 Rev4 SDK가 2016/3/4 부터 배포시작..

구글 엔지니어가 여가시간에 만든 스마트 거울

구글 엔지니어가 여가시간에 만든 스마트 거울 2017년 CES에서 거대한 터치 스크린을 가진 삼성의 새로운 냉장고와 같은 사물의 인터넷에 대한 다소 별난 아이디어를 봤다.그리고 사람은 스마트 오브젝트의 새시대인 지금, 다양한 것들을 원한다. 그래서 Google의 소프트웨어 엔지니어 인 Max Braun이 만든 이, 우아한 스마트 거울이 정말 흥분되는 이유이기도 하다.이걸 보면, 아마 당신도 바로 지금 집에서 실제로 사용해보길 원할것 같다. Max Braun은 자신의 프로젝트 결과를 매체에 올렸고, 사진은 상당히 비현실적으로 보였다..날씨, 시간 및 주요 헤드 라인을 한 눈에 볼 수있는 것, 그리고 동일한 정보를 Android 휴대 전화에서 공유 할 수 있다. 그러나 이런 정보들은 욕실 거울에서 보여지는게..

NULL ptr/ NULL ptr 2016.02.03

Torrent의 원리

1. BitTorrent ? - P2P 방식의 파일 공유 프로토콜로서, 파일을 여러개의 조각으로 나누어 서로 공유함- 브램 코헨이라는 사람이 창안하여, BitTorrent 회사를 창립하고 이를 통해 유지보수하고 오픈소스로 배포함- 전세계 네트워크 사용량을 보면, 동영상 스트리밍이 1위이고 2위가 P2P 이며, P2P 트래픽의 90%를 BitTorrent가 차지함.- 클라이언트의 종류로는 BitTorrent, μTorrent 가 있음. 2.BitTorrent 의 동작 개요도와 용어설명 1) Piece- 공유 파일의 한조각 의미함- 토렌트는 하나 파일을 여러개의 조각으로 나누고, 조각단위로 공유함- 조각의 크기는 토렌트 생성시 설정할 수 있음 2) Seeder : 공유 파일의 모든 조각을 가지고 있는 클라이..

[Mac OS] Eclipse로 맥에서 C/C++ 개발환경 만들기

맥에 Eclipse로 C/C++ 개발환경 만들기 이 부분은 간단하다.맥에서 java가 실행될 수 있도록 JDK, 혹은 JRE를 맥에 설치한다.그 후 '이클립스 CDT'를 설치 한다.기본적으로 맥에서는 gcc를 제공하지 않지만맥의 XCode에서 llvm을 gcc라는 이름으로 연결해서(심볼릭 링크인가..?) 사용하는것 같다.그래서 이클립스 CDT 에서도 컴파일 및 실행은 된다. 그러나 디버깅이 안된다.즉, break point 찍고, line by line으로 실행하는 등등의 기능이 안된다는 얘기.이유는 이클립스CDT는 디버거로써 'gdb' 라는 것을 사용하는데, 이 gdb가 mac에는 없기 때문인 것 같다. 맥에 GDB설치하기찾아보니 맥에 gdb를 설치하는 방법이 있다.아래방법은, OSX mavericks..

[Panda Board-es] Trouble shooting: booting에 문제가 있음.

3년전 구입해 가지고 있던 Pandaboard-es에 안드로이드를 올려서 가지고 놀아보고자, 다시 꺼내었다.SD카드 파티셔닝/포맷 후에 u-boot와 MLO를 넣고 booting 시도했으나 실패.serial연결해도 booting log조차 출력되지 않는 상황이었다. 오랫동안 사용하지 않은 보드의 H/W 적인 문제가 아닌가 고민하다가 pandaboard.org 에서 검색해보니 아래와 같이 H/W의 문제인지 아닌지를 판단할 수 있도록 pre-built 된 u-boot이미지, MLO, 그리고 kernel을 제공하고 있었다. 또한 제공된 이미지 안에 H/W test를 위한 쉘스크립트가 '/bin' 아래에 'panda-test.sh' 라는 이름으로 함께 제공되고 있어서 실행만 하면 다음 항목들에 대해 간단히 정상..

TiddlyWiki : DB와 설치가 필요없는 간단한 one file 위키

위키 'Wiki' 는 특정 내용을 '정보'로서 정리하고, 나중에 다시 찾아보고, 다른사람과 공유하기에 좋은 수단 인 것 같다.나도 개인적으로 위키를 활용해 정보들을 정리를 하고 싶어서 어떤 위키시스템을 사용할 것인지를 찾아봤었다. 그러나 설치가 복잡하거나 Database 가 필요하거나, 서버가 필요하다 등등 진입장벽으로 작용할 만한 내용들이 다수 존재 한다고 생각했었다. 그러나 내가 진입장벽이라고 여겼던 것들이 전혀 없는 아래와 같은 것이 존재했다. http://tiddlywiki.com/

The Expert (Short Comedy Sketch) : 개발자, 프로젝트 매니저 그리고 UX담당자와 클라이언트

이것은 IT개발 현장에서 흔히 발생하는 일을 한편의 짧은 코미디로 표현한 영상입니다.저는 IT개발현장에서 일하는 한명의 불쌍한 개발자입니다. 이 영상의 내용에 매우 격하게 공감을 하게 되네요.이 영상을 보시면 아시겠지만, 영상에서 말하는 'The Expert' 어떤 프로젝트를 맡아서 구현하는 '실무자' 를 말합니다. 부제는 ' 개발자 암걸리는 이야기' 쯤이 될 것 같네요. 각설하고, 영상을 한번 보시죠!Setting 에서 '한국어' 선택하시고 cc버튼으로 자막 켜기 하시면 한글 자막을 볼 수 있으니 내용 파악은 간단할 거에요! 출처 : http://www.youtube.com/watch?v=BKorP55Aqvg#action=share

ASLR : Address space layout randomization

Address space layout randomiztion(ASLR)은 buffer overflow 공격으로부터 보호하기 위한 컴퓨터 보안 기술이다.이 내용의 실제 구현 까지는 상당히 많은 dependency를 가지는데, Processor architecture, OS(kernel implementation), compiler, debugger, linker(loader) 등등이 상호 조화를 이루어 구현이 된다. 참고 : http://stackoverflow.com/questions/2463150/fpie-position-independent-executable-option-gcc-ld참고 : http://en.wikipedia.org/wiki/Address_space_layout_randomizati..

[mysql] Data Type

MySQL Column Type 컬럼(Column)은 데이타 베이스를 이루는 가장 작은 단위이다. 컬럼들이 모여서 레코드(Record)를 이루고, 레코들들이 모여서 테이블(Table)이 된다. 테이블이 모여서 데이타 베이스를 이루게 된다. 즉, 데이타 베이스를 데이타들의 계층적 구조라고 말한다. TINYINT부호있는 수는 -128에서 127까지, 부호 없는 수는 0에서 255까지 표현할 수 있다. 1 바이트 ※디폴트는 부호있는거(SIGNED), UNSIGNED를 붙이면 부호없는것~ SMALLINT부호있는 수는 -32768에서 32767까지, 부호 없는 수는 0에서 65535까지 표현할 수 있다. 2 바이트 ※디폴트는 부호있는거(SIGNED), UNSIGNED를 붙이면 부호없는것~ MEDIUMINT부호있는..

[모니터/문제해결] 삼성 싱크마스터 TA350 - 흐릿하고 초점이 맞지 않는 출력 교정하기

English Version Click me!모델 소개 : SyncMaster TA350내가 사회생활을 갓 시작하면서 거주했던 원룸에서 사용했던 TV모니터 중 특이한 녀석이 있었다. 모델은 삼성 SyncMaster TA350. 원룸 전세로 들어갔더니 TV랍시고 제공되던 모니터였다. HDMI 입력포트가 2개이며 d-sub 입력단자가 1개, 컴포넌트 입력단자가 1개인 모델. 컴포넌트 입력단자 덕분에 인터넷TV의 셋탑박스와 연결해서 사용하기 용이하여(응? HDMI가 더 용이해 임마...), 과거 2011년~2014년 즈음 지어진 원룸건물에 건물주들이 대량으로 공급하는 모델이었던 걸로 추정된다. 제품은 아래와 같은 모습이다. PC연결시 화질 문제 그런데, 문제가 있다. 이상하게도 이 모니터를 PC와 연결하면 화..

NULL ptr/ NULL ptr 2013.08.28 (22)

[우분투] 컴퓨터이름 변경하기

[우분투] 컴퓨터이름 변경하기 우분투 리눅스가 설치된 컴퓨터의 이름 바꾸는 방법이다.한글로 컴퓨터이름을 지정했다가 여러가지 이유로 인해, 영어 이름으로 변경해야 할 경우가 생기곤 한다. 아래 방법을 따르면 쉽게 변경할 수 있다. Ex) 유저네임@유저네임-desktop:~& -> 유저네임@desktop:~& 수정해야 할 곳은 2곳이다. /etc/hostname 에서 이름을 변경한다. 그리고 다음 명령 수행한다. hostname -F /etc/hostname /etc/hosts 에서 "ip 컴퓨터이름" 에서 컴퓨터이름 부분을 변경한다. 이후 아래 명령을 수행한다. sudo /etc/init.d/hostname.sh stop sudo /etc/init.d/hostname.sh start sudo shutdon..

[Java/SWT] 그래픽스 컨텍스트 (Graphics Context)

1. GC(Graphical Context) 클래스는 SWT의 그래픽엔진의 코어를 형성한다.2. GC는 도형, 텍스트, 이미지를 그리는데 필요한 모든 메소드를 제공한다.3. 컨트롤, 디바이스 또한 다른 이미지 위에 그릴수 있다. 일반적으로 그리기 라이프사이클은 다음과 같이 구성된다.1. 그리려고 하는 대상의 GC를 생성하거나 얻음.2. 그린다.3. GC를 생성했다면, 소멸시킨다. 코드로 보면 다음과 같다. GC gc = new GC(display); gc.drawRectangle(...); gc.drawText(...); gc.drawImage(...); gc.dispose(); 일반적으로 paint handler에 그리기 코드를 넣는다. final Canvas canvas = new Canvas(she..

[SWT] 이벤트

이벤트1. SWT는 2가지 유형의 리스너를 제공한다. : untyped / typed2. untyped 리스너는 보다 간단한 코드를 작성할 수 있게 한다.3. typed 리스너는 보다 더 모듈화 된 디자인을 할 수 있게 한다. 이벤트모델1. SWT는 옵저버 패턴에 기반한 이벤트모델을 사용한다.2. 다수의 리스너를 등록하여 알림메세지를 보낼 수 있다.3. SWT에서는, 위젯과 Display만 이벤트 리스너를 가질 수 있다. Typed 이벤트 리스너타입이 정해진 이벤트 리스너(typed listner)는 단지 한종류의 특정한 이벤트 타입에 대해서만 listen 할 수 있다. 예를 들면, SelectionListener 는 SelectionEvent 라는 이벤트타입에 대한 리스너 이다.untyped 이벤트 리..

[리눅스/커널] 커널에서 자주 사용되는 매크로 : likely( ) / unlikely( )

커널에서 자주 사용되는 매크로 : likely( ) / unlikely( )커널 소스를 보다보면 likely 또는 unlikely 메크로를 자주 사용하는 것을 볼 수 있습니다. likely / unlikely macro가 어떤 의미를 가지는 매크로인지 궁금했어요.그래서 알아보았죠. 커널 3.2 코드를 기준으로 likely / unlikely macro는 커널 소스에 다음과 같이 정의되어 있더군요. 소스위치는 ./include/linux/compiler.h 109 /*110 * Using __builtin_constant_p(x) to ignore cases where the return111 * value is always the same. This idea is taken from a similar p..

Concurrency Visualizer

Concurrency Visualizer View는 컴퓨터에서 멀티스레드 기반 어플리케이션이 자신,하드웨어,OS,다른 프로세스와의 상호작용 하는것을 볼수있게 한다.이 뷰는 당신의 프로그램안과 시스템전체의 스레드들간의 임시적인 관계를 보여주는 그래픽,표, 텍스트 데이터를 제공한다.당신은 Concurrency Visualizer를 성능 병목구간, CPU 자원낭비지점, 스레드 경쟁, 다중코어에서의 코어간 스레드 이동, 동기화 지연, overlapped I/O 영역 그리고 다른 정보들 에 위치시켜 사용할수 있다.뷰는 당신이 그것의 그래픽출력을 콜스택이나 소스코드에 연결하는 등의 행위를 언제나 가능하도록 데이터를 제공한다이 도구는 효율적인 워크플로우가 가능하도록 Visual Studio 2010 프로파일러에 통합..

Java에서 AES 128 암호화/복호화 구현

AES 암호화 AES 소개 1997년 1월에, 기존의 데이터 암호 표준, 즉 DES를 대체할 보다 강력한 알고리즘을 찾기 위한 공모 작업이 미국 상무부의 한 기관인 표준기술연구소(NIST)에 의해 시작되었다. 새로운 알고리즘이 충족해야 할 규격 요건으로는, 최소 128 비트나 192 비트 또는 256 비트 크기의 키를 지원하는 128 비트 크기의 블록 암호화를 사용한 대칭형 (암호화나 복호화를 하는데 동일한 키가 사용되는) 알고리즘으로서, 전 세계적으로 로열티 없이 사용할 수 있어야 하며, 향후 20년~30년 동안 데이터를 보호하기 위해 충분한 정도의 보안성을 제공할 것이 요구되었다. 또한, 이 알고리즘은 스마트카드 등과 같은 제한된 환경을 포함하여 하드웨어나 소프트웨어로 구현하기 쉬워야 했으며, 다양한..

[모듈 삽입 에러] unknown symbol in module

ko 파일을 insmod 명령을 통해 커널에 동적 삽입을 시도할 때 다음과 같거나 혹은 유사한 메세지를 뱉으며 에러가 나는 경우가 있다. -1 : unknown symbol in module dmesg 명령을 통해 커널 로그를 확인 해보자.모듈 삽입시 에러가 나는 원인을 어느정도 추측할 수 있을 것이다. dmesg 에 기록된 메세지 사례 사례 1 :Unknown symbol lockdep_init_map (err 0) 다음 조건을 만족하면 발생 : 컴파일한 모듈의 소스코드에 semaphore, mutex, spinlock 등 락 메커니즘을 사용하는 함수가 포함되어있는 경우. 커널 빌드시 CONFIG 옵션중 lock 관련 디버깅 옵션을 활성화 한 경우.(lockdep) lockdep는 커널의 락 메커니즘이..

데이터 글러브 동작 테스트 영상

Air Haptic Glove 프로젝트 초기의 데이터 글러브 테스트 영상 입니다. 3D Rendering Part : 전영호3D Rendering Engine : microsoft XNA 3.1Implement Language : C#Physics Engine : JigLibX.Net3D Modeling : 3D studio max 2011 Hardware Part : 김재민, 권기우MCU : cortex m3acceleration sensor, magnetic sensor, flex sensor : can`t remember 첫번째 영상은 데이터글러브를 착용한 사용자의 손가락 구부림 정도를 추정하여 3D 손에 적용하는 테스트 영상이다. 프로젝트 초기의 영상이라 손가락 떨림 보정이 적용되어있지 않은 것을..

[구매후기] PRADA-2M0513-SAFFIANO METAL-NERO 남성용 반지갑

제품 요약 브랜드 : PRADA (프라다)모델넘버 : 2M0513재질 : SAFFIANO METAL (사피아노 가죽, 메탈 로고)컬러 : NERO가격 : \ 530,000 출시년도 : 2012년 개인적인 평가프라다의 검은색 사피아노 가죽으로 만들어진 남성용 반지갑이다.20대 초반~ 30대 후반 남성들이 사용하기에 잘 어울릴 것 같은 제품으로 여겨진다.물론 위 나이대에 속하지 않더라도, 사용하면 안되는 것은 아니다. 생각해보니 누구에게나 잘 어울리겠다 싶다. 그만큼 이 제품은 평범한 디자인, 평범한 색상을 가지고 있다.전혀 튀지 않는다. 카드 수납공간은 아래와같이 총 8칸이다.많지도, 적지도 않다. 과하지 않고 부족하지 않아서 사용하기 좋다. 지폐의 수납공간은 2칸이다. 이 역시, 반지갑이라면 대부분 2칸..

NULL ptr/ NULL ptr 2012.10.19

Pandaboard ES 구매

Pandaboard ES 구매 삼성소프트웨어 멤버십 임베디드 시그에서 공부하는데 사용하려고 구매했다. Pandaboard ES 보드이다. Ti Omap4460 를 프로세서로 사용하는 보드. 아직 국내판매처는 없는 것 같고, digikey 를 통해 구매하였다. 링크 : http://www.digikey.kr/ 주문 후, 1~2일 기다리면 digikey 측에서 email 을 통해 invoice 작성을 요청해온다. 작성하여 다시 email로 회신해주었더니, 상품 배송을 해주었다. UPS를 통해 배송해 주었고, 미국에서부터 배송기간은 4일 정도 걸렸다. (9월 17일 상품 준비~9월20일 대전에서 수령) 수령후 10일 이내에 입금 하면 되는데, 상품 가격은 19만7천원 가량이었다. 수령한 보드는 아래와 같은 임..

1 2 3 4 5 6 7 ··· 9