달력

11

« 2012/11 »

  •  
  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  •  
2012.11.26 13:03

스탠딩 데스크에 대한 생각 2012/Temporary2012.11.26 13:03

앉아만 있는 것이 건강에 안 좋은 것 같아 서서 쓰는 책상을 진지하게 고려중이다..

일단 집에서는 책상위에 임시로 작은 상을 올려 놓아서 쓰고 있는데... 음 괜찮다. 아직 적응이 안되서인지

다리가 좀 아프지만... 확실히 딴 짓 안하고 집중하게 만드는 효과가 있다.

근데 책상이 좀 지저분해지고, 공간을 많이 차지하는 것 같아 차후에는 정식으로 구매를 하나 해야 할 것 같다.

문제는 아직까지 우리 나라에서 이런 스탠딩 데스크를 파는 곳이 많지 않고, 제품도 단순한 것 들로 제한되어 있다는게 

아쉽다. 아무래도 눈을 외국으로 돌려야 하는게 아닌 가 싶다.



Ninja Standing Desk

<source : http://www.ninjastandingdesk.com/>

구글링중에 나온 것 중에 특이한게 바로 닌자스탠딩 이란 제품인데, 보기에도 좋을 뿐더러 설치를 어느 한 군데에 고정하는 것이

아니라서 유동성이 좋은 것 같다. 제품 가격은 저렴한 모델이 $159 정도인데, 그렇게 비싼 가격은 아니지만 해외 배송이 안되는 것 같다.


그 다음 후보로는 IKEA의 Jerker 란 모델인데... 조만간 우리나라에 이케아가 들어온다고 하니 직접 보고 판단하면 괜찮을 것 같다.


마지막으론 GeekDesk 란 제품.. 뭔가 이름부터 포스가 남다르다. 높이를 자유자재로 조절할 수 있는 장점이 있지만, 가격이

너무 비싸다. 기본이 거의 100만원부터 시작하는데... 직접 써보고 감동이라도 하지 않는한 구매까지 이어지기 힘든 제품은 아닐까.


<source : http://www.geekdesk.com>



일단은 임시로 꾸민 스탠딩 데스크가 정말로 효과적인지 몇일정도 테스트 후에 어떤 것을 구매할 것인지를 좀 고민해봐야 할 것 같다. 그 사이에 이런저런 제품들도 좀 더 알아보는 것도 좋고.





저작자 표시
신고
Posted by 에어림

2008년에 일본의 전뇌코일이란 애니메이션을 봤고, 너무나 감동해서 감상평도 블로그에 올렸었다.

근 미래의 일본에서, 마치 드래곤볼의 스카우터처럼 생긴 안경을 쓰고 현실과 가상 세계를 넘나드는 아이들의 모험을 그린 이야기였다.


그 때의 글을 오랜만에 보니 참 불과 몇 년 사이에 세상이 많이 변했다. 휴대폰으로 지금처럼 수 많은 메시지를 보내고 알림을 받고 웹에 접속하는 등의 시대가 이렇게 열릴 줄이야. 인터넷 요금 폭탄에 벌벌 떨던게 엊그제 같은데..


그 동안에 입는(weareable) 컴퓨터에 대한 연구는 많았을 것이다. 하지만 구글 글래스 처럼 대중 앞에서 강렬한 임팩트를 준 적은 없었다. 아니, 구글이 발표했기 때문일까? 꿈만 같던 기술이 현실감있게 다가온다. 마치 곧 실현될 것 처럼 말이다.


전뇌코일과 같은 세상이 되려면, 나는 우선 모든 사물이 식별되어야 한다고 생각한다. 각각의 사물에 고유한 식별값을 보유하고, 

사물마다 자신의 GPS 위치를 알릴 수 있는 인프라가 생성되어야 애니메이션처럼 현실과 가상이 겹쳐질 수 있지 않을까?


증강 현실의 미래를 생각하니 오랜만에 흥분되서 잠이 오질 않았다. 그 때 꿈꿨던걸 어떻게 잊고 살 수 있었을까?







저작자 표시
신고
Posted by 에어림
2012.11.12 20:17

WebGL - Drawing ConvexHull 2012/OpenGL2012.11.12 20:17

임의의 점 10개를 생성하여, convexthull을 그려주는 webgl 예제.


아래는 정점 버퍼 초기화 함수. viewport의 크기는 640x480이다.


function initBuffers() {


var maxPoints = 10;
var i = 0
var vertices=[];
var points = [];

while(i!= maxPoints)
{
var vertexElement = [];
vertexElement.push(getRandomInt(0,640));
vertexElement.push(getRandomInt(0,480));
vertexElement.push(0);

points.push(vertexElement[0]);
points.push(vertexElement[1]);
points.push(0);

vertices.push(vertexElement);
i++;
}

var convexVertcies = [];
convexVertcies = getConvexHull(vertices);


var newVertices = [];
for (var idx in convexVertcies) {
var temp = convexVertcies[idx];

for (var i in temp) {
newVertices.push(temp[i][0]);
newVertices.push(temp[i][1]);
newVertices.push(temp[i][2]);
}

}

console.log(newVertices);
console.log(points);

lineBuffer = gl.createBuffer();
gl.bindBuffer(gl.ARRAY_BUFFER, lineBuffer);
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(newVertices), gl.STATIC_DRAW);

lineBuffer.itemSize = 3;
lineBuffer.numItems = newVertices.length / lineBuffer.itemSize;

pointsBuffer = gl.createBuffer();
gl.bindBuffer(gl.ARRAY_BUFFER, pointsBuffer);
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(points), gl.STATIC_DRAW);

pointsBuffer.itemSize = 3;
pointsBuffer.numItems = maxPoints;

}

아래는 convexhull을 만드는 함수. x좌표의 최소값과 최대값을 찾고, 두 개를 기준으로 상단 convexhull과 하단을
만든 후 결합한다. 알고리즘은 quickhull이라 불리는 것을 가져옴. 근데 이게 진짜 정확한 방식인지는 모르겠으나, 
여러번 테스트 결과는 이상없이 결과 나옴.

function getDistant(cpt, bl) {
var Vy = bl[1][0] - bl[0][0];
var Vx = bl[0][1] - bl[1][1];
return (Vx * (cpt[0] - bl[0][0]) + Vy * (cpt[1] -bl[0][1]))
}


function findMostDistantPointFromBaseLine(baseLine, points) {
var maxD = 0;
var maxPt = new Array();
var newPoints = new Array();
for (var idx in points) {
var pt = points[idx];
var d = getDistant(pt, baseLine);

if ( d > 0) {
newPoints.push(pt);
} else {
continue;
}

if ( d > maxD ) {
maxD = d;
maxPt = pt;
}

}
return {'maxPoint':maxPt, 'newPoints':newPoints}
}

var allBaseLines = new Array();
function buildConvexHull(baseLine, points) {

allBaseLines.push(baseLine)
var convexHullBaseLines = new Array();
var t = findMostDistantPointFromBaseLine(baseLine, points);
if (t.maxPoint.length) { // if there is still a point "outside" the base line
convexHullBaseLines =
convexHullBaseLines.concat(
buildConvexHull( [baseLine[0],t.maxPoint], t.newPoints)
);
convexHullBaseLines =
convexHullBaseLines.concat(
buildConvexHull( [t.maxPoint,baseLine[1]], t.newPoints)
);
return convexHullBaseLines;
} else { // if there is no more point "outside" the base line, the current base line is part of the convex hull
return [baseLine];
}
}

function getConvexHull(points) {
//find first baseline
var maxX, minX;
var maxPt, minPt;
for (var idx in points) {
var pt = points[idx];
if (pt[0] > maxX || !maxX) {
maxPt = pt;
maxX = pt[0];
}
if (pt[0] < minX || !minX) {
minPt = pt;
minX = pt[0];
}
}
var ch = [].concat(buildConvexHull([minPt, maxPt], points),
buildConvexHull([maxPt, minPt], points))
return ch;
}

결과는 다음과 같다.


전체 소스 코드는 아래에서 확인~

https://github.com/airyym/webgl/blob/master/triangulation.html




저작자 표시
신고
TAG webgl
Posted by 에어림
2012.11.09 12:02

Delete Android App using command console 분류없음2012.11.09 12:02

before proceeding you need to know the package name.

 

1. windows key + r -> cmd 

2. adb uninstall "package name" 

3. if the console shows "Success" message, the app is deleted successfully .

저작자 표시
신고
TAG Android
Posted by 에어림