반응형

Programming 18

Embed Python in java (jep) 환경 설정

Embed Python in Java (jep) jep는 간략하게 설명하면 java로 python interpreter를 구현하여 C / C++ 기반의 library와는 호환이 어려웠던 jython과는 다르게, JNI를 통해 CPython을 호출함으로써 C / C++ 기반의 python library도 java 상에서 실행이 가능한 프로젝트이다. Getting-Started 를 따라서 설치를 진행하다보면, 별도의 python library 사용 없는 간단한 python 코드의 경우 쉽게 실행 가능하다 Main.java:import jep.Jep; public class Main { public static void main(String[] args) throws Exception{ try(Jep jep ..

Programming/Python 2017.04.05

[Android]CPU의 가능한 Hz, mode와 현재 상태 구하기

Android에서 CPU와 관련된 내용들을 얻는 것은 Linux에 의존하게 된다. (아님 그냥 내가 못 찾은 것. -_-;) Linux에서 CPU에 대한 정보는 /sys/device/system/cpu에서 구할 수 있다. 그 중 우리가 원하는 CPU의 현재 Hz와 Mode, 사용 가능한 Hz와 Mode에 관한 정보는 /sys/……/cpu/[cpu number]/cpufreq 폴더에 존재한다. CPU가 single core라면 CPU0만 존재하고 dual 이상이라면 CPU0, CPU1… 이런 식으로 늘어난다. 현재의 평범한 multi core system이라면 CPU숫자와 상관 없이 CPU에 대한 동일한 정보를 얻어올 수 있지만 차후 big.LITTLE 기능이 적용된다면 코어마다 다를 수도 있을 것 같다...

Programming/기타 2013.03.11

[Android]어플리케이션이 내부 미디어플레이어를 이용할 때 네트워크 사용량 측정법?

안드로이드의 YouTube 어플리케이션이나 웹 브라우저를 사용해서 동영상을 봐도 YouTube나 웹 브라우저의 네트워크 통계에는 적용되지 않는 것을 볼 수 있다. 이는 YouTube나 웹 브라우저가 자기 자신이 아닌 내부의 미디어 플레이어를 이용해서 동영상을 틀어주기 때문이다. 실제 동영상 스트리밍 서비스까지 구현을 해본 적이 없어서 이런 것이 어떠한 방식으로 진행이 되는지 감도 못 잡고 삽질만 하다가 드디어 조금은 실마리를 잡은 것 같다. /proc/net/tcp 파일을 cat 등으로 읽으면 다음과 같은 결과를 얻을 수 있다. /proc/net/tcp에 대한 자세한 정보는 이 곳 에서 /proc/net/tcp로 찾으면 확인할 수 있다. 간단히 말하면 TCP socket의 현재 내용을 dump하는 곳이다..

Programming/기타 2013.03.09

[Android] Traffic Stats Class

Traffic Stats Class Android에서 network traffic의 rx/tx 에 관한 정보를 얻어올 수 있게 해주는 class. Network 사용량들은 UID별로 /proc/uid_stat/[UID]/ 에서 파일로 확인할 수 있으며 그렇기 때문에 원하는 process의 정보를 가져오기 위해서는 process의 UID를 알아야 한다. 데이터를 가져오는 함수들은 대부분 native interface로 이루어져 있다. UID: Unix-like OS에서 user에게 할당하는 ID. Android에서는 package를 설치할 시 package에게 User ID를 할당하여 개인적인 저장 공간을 유지할 수 있도록 하고 package를 삭제할 시 UID도 삭제가 된다. 그림 1 Android /p..

Programming/기타 2013.03.08

Kimberlize

주소: cmusatyalab / kimberley Kimberlize system은 사용자에게 사전의 설치 없이 application을 실행할 수 있는 기능을 VM 기술을 통해 제공한다. 요구되는 application이 돌아가는 VM은 다른 machine이 미래에 사용될 것이라 예상될 때 사용자에 의해 미리 만들어 진다. Runtime은 target machine에서 즉시 조립되고 resume 된다. 우리는 the VirtualBox VM monitor를 가상화 platform으로 사용하도록 선택했다. VirtualBox는 최근 Sun Microsystems가 구매한 독일 소프트웨어 회사 Innotek의 open-source 가상화 제품이다. 10기가 이상의 VM 상태를 runtime에 전송하는 것은 아..

Programming 2013.02.27

Kimberley

Kimberley: 고정된 infrastructure를 일시적으로 모바일 기기가 사용할 수 있게 해주는 목적의 시스템. 주소: cmusatyalab / kimberley Kimberley는 kimberlize와 display control manager(KCM)을 사용하여 mobile device가 큰 화면에서 application을 실행할 수 있도록 해준다. System Usage 전형적인 Kimberley system의 사용방법: 관리자는 base VM과 하나 이상의 kimberlize patch를 제작하기 위해 kimberlize tool을 사용한다. 관리자는 몇 개의 display를 설치하고 display에 base VM을 배분한다. 그 machine들 위에 서 Kimberley service를 ..

Programming 2013.02.26

OpenGL에서 GLSL을 GPGPU 목적으로 사용하기

CPU라는 제한된 프로세서 만으로는 현대인이 요구하는 빠른 속도를 감당하기에는 약간 힘든 것이 사실입니다. 모든 사용자가 프로그래머가 아니니 알고리즘의 시간복잡도에 따른 속도를 이해하며 프로그램의 수행시간 차이를 기다려 주진 않습니다. 만약 프로그램을 제작하는데 타겟이 되는 하드웨어에서 GPU가 달려있다면, (대부분의 PC와 모바일 디바이스는 GPU가 99.9%로 존재합니다!) GPGPU는 더 향상된 능력을 보여주는데 도움이 될 것입니다. PC용 프로그램이라면 GPGPU 목적의 Nvidia사의 CUDA Library라던가, OpenCL을 사용할 수 있지만 모바일 디바이스의 경우 그렇지 않습니다. 이런 경우를 생각한다면, Shader Language를 GPGPU목적으로 사용한다는것은 아직도 의미가 있다고 ..

Programming 2012.04.12

Google Reader API를 이용하기 위해 SID와 Token 얻어오기

Google Reader의 경우 현재 공식적으로 API를 제공하고 있진 않습니다. 모든 API가 unofficial이라서 언제 바뀔지 모릅니다. 현재까지는 아래와 같은 방법을 사용하면 API에 접근할 수 있습니다. 필요한 정보 : SID – A session ID, which remains valid until you log out Token – Similar to a session ID, but expires quickly. Used to access direct API calls Cookie – An ordinary cookie that uses your SID to authenticate your session on API calls 또, SID와 같이 전송오는 Auth가 필요합니다. SID , A..

Programming 2012.03.11

Windows 환경에서 nodejs module을 npm으로 설치했을때

node.js를 이용해서 간단한 서버를 하나 구현하고 있는데 mysql을 사용해야 해서 node-mysql module을 설치하였습니다. 나와있는대로 npm을 이용하여 간단히 설치했는데 문제는 실제 소스파일 require('mysql')에서 mysql module을 찾지 못하였습니다. 이유를 찾아보니 1. 우선적으로 npm을 이용하여 module을 설치했을때의 경로가 C:\Users\\AppData\Roaming\npm\node_modules 에 설치가 되었습니다. 기본적으로 이 곳은 환경변수에 등록되어 있지 않으니 nodejs의 설치 폴더로 module을 옮겼습니다. 그래도 오류가 납니다... 2. Windows7 환경에서만 그런건지? cmd를 열어서 node나 npm을 실행시키면 실행된 폴더만을 기준..

Android OpenGL ES 1.1에서 사각형 그리기

OpenGL에서는 Vertex의 시작과 끝을 명시하고 점을 찍으면 객체가 만들어 졌던것 같은데 ES는 그렇지 않습니다. 적어도 안드로이드에서는, ByteBuffer를 이용하여 vertex의 내용을 보여줘야 합니다. private float vertices[] = { -1.0f, 1.0f, 0.0f, // 0, Top Left -1.0f, -1.0f, 0.0f, // 1, Bottom Left 1.0f, -1.0f, 0.0f, // 2, Bottom Right 1.0f, 1.0f, 0.0f, // 3, Top Right}; // a float is 4 bytes, therefore we multiply the number if vertices with 4.ByteBuffer vbb = ByteBuffer...

Programming 2012.01.05
반응형