2013년 2월 19일 화요일

QFHD(3840×2160) 는 UHD(7680×4320) 가 아니다.

http://en.wikipedia.org/wiki/Graphics_display_resolution


QFHD (4K) (3840×2160)
UHD (8K) (7680×4320)

마케팅은 사기가 아닙니다. 그러지 맙시다.

UHD 할 일 많을 것.
프로세서,전송규약을 새로 만들어야 할지도. 그것도 무선까지.

UHD 컨텐츠를 위한 카메라는 준비하고 있을라나요?

768GB에 영화 한편 들어가겠군.
60프레임이면 3배 계산해야돼나?

LG가 5인치 1080p 개발했다고 기사나고 했더만...
그거 16개 붙이면 되는 거잖아... 그래봐야 20인치네 머

문제는 다른 거지...
반응속도 느린 lcd로 계속 가야하느냐...
3천3백만 화소를 처리할 수 있나.
전송할 통신은 가능한가
색표현을 8bit품질을 계속갈건가... 고급모니터들은 10bit넘게 표현하고 확실히 다르니까.
60hz에서 멈출건가.

좀 더 섬세하게 들어갈 수도 있지만...

2013년 2월 14일 목요일

한국정치 2012

결국 박근혜 정부를 맞이하게 될 대한민국...... 아 대한민국.

석가모니불의 인과의 철저함을 다시 실감케 한다.

민주진영도 진보진영도 이익보수의 고개를 넘지 못했다.

아마도 다양한 스펙트럼이 있는 국민의 생각이지만,
전체적으로 보면, 아직 한번도 민주주의라를 것을 체험하지는 못하였다.
간단히 말하면 민주주의 단편적 체험을 하고 있는 것이다.
그것도 별로 좋지 않는 또 본격적이지도 않은.
민주란 스스로 결정하고 스스로 책임지는 것입니다.
주인이 안쪽 경계에서 이윤을 논하지 않습니다.
잘 경영하는 것을 논하죠.

민주주의는 좋은 제도도 아니고 나쁜 제도도 아니다.
사상으로보면 동학의 '사람이 곧 하늘이다'는 구호보다 초라하다.
'사람이 곧 하늘이다'는 구호는
윤홍식 선생이 화엄경의 의도를 설명할 때,
부처될 종자니 이미 부처다라고 힐링하며 이끌고자하는 어린애 달래기용이다.

사람이 어떻게 하늘이겠는가.
그 하늘은 무슨 의미의 하늘이겠는가..

하늘도 무심하시지.. 그 무심한 하늘이 되겠는가... 사람이..
과정이 빠져있다. 사람이 무심이 되는 과정.
무심히 보면 있는 그대로 보이는...무심.

또 자유주의란 말이 있는데, 이거 아주 위험한 말이다.
원뜻은 한사람의 신체와 사유와 행동은 어떤 경우도 자유롭다..일텐데...
그것이 그 사람이라고 하는 신체와 개인으로 주어진 시간 공간에 한해서이다.
공통의 영역이나 타인의 영역은 자유가 철저히 제약 된다는 의미도 같이 담고 있다.

말뿐이고 현실은 그렇지 않아 늘 괴로운 것이다.

경제민주화 란 단어가 많이 나돌았다.
사실 민주화의 직접대상이다. 먹고사는 문제이다.
그리고 대부분의 국민들은 경제민주화의 의미도 모르고 있다.
나이가 들어도 자기 욕망을 채우려고, 자기하고 다르다는 이유만으로
또는 본의아니게 방해를 받았다고 해서 포악을 떠는 어린애들에게 민주는 없다.
이미 파괴하고 있지 않은가.

선진국에서는 임금을 지불하고 노동을 원하는 것 같은데,
한국에서는 임금을 지불하고 목숨다바치는 충성을 요구하는 것 같다.
이것이 왜 가능할까. 먹고 사는 문제가 해결되지 않아서 그렇다.
사람에게 하늘은 밥이라 하지 않은가.
주거도 교육도 다 밥의 문제다.

대선이 끝나고 민주당을 지지했던 정치그룹이나 언론인들이
요새 민주당 욕하기 바쁜데...
내려놔라... 친x다 다 내려놔라... 그 의도가 매우 의심스럽다.
조그만 머리로 이것이 문제다 저것이 잘못이다 면서..

난 욕도 하나의 표현이라고 인정하는 편이지만,
지금 민주당을 욕하는 자들은 정말 창피한 자기모습을 발견하기 바란다.
민주당 후보였던 사람 욕할 수 없다. 자기 말마따나 최선을 다했다.
다만 고만고만한 후보들이였기에 광고 오래해 온 후보가 된 것이다.
(후보 개인의 인격을 말하는 것이 아님)
민주당의 진용과 구도 어쩔 수 없어서 힘이 나오지 않았다.
어리석음이 원인이겠지만 그렇다.
상대진영은 새누리당은 이해관계로 쫙 정리되어서
자기끼리 욕하거나 비난하지 않는다.
그런데 민주진영은 별일 아닌 것 가지고도 목숨걸고 싸운다.
장작불을 피우려는데 막 헤집어..참 미운짓이다.

잘 따지고 보면
이승만, 박정희,전두환-노태우. 이렇게 이어졌다.
어디 민주진영이 활동하고 자라갈 수 있는 환경이었나?
그렇게 오랜동안 잘 공부했다던 김대중도 그 호기에 구조조정하지 못했고
잠재된 사회적 울분 에너지를 끄집어 낸 노무현도 다소 엉뚱한 낭만파짓을 했다.

튼튼하게 자라지 못한 민주진영이 그러는 것은 당연하다.
그리고 50대의 90%가 민주당 노는 꼴이 그래서 새누리당 후보를 지지했다고 하는데..

그런 정도의 성숙?한 의식이라면... 글쎄..


난 그들시대를 폄훼할 의도는 전혀 없다.
그 시대의 흐름으로 보면, 이승만,박정희는 필연이었을지도 모른다.
그 후 민주화라고 하지만, 많은 강압의 구조들이 굳어지고
동양에서 꿈꾸는 것도 서양에서 이상적인 것도 맥락을 잃어버린 듯하다.

열심히 소위 피땀으로 일구온 그 노고가 끝까지 아름답길 바란다.

좀 더 정확하게 말해야 하는 것은 
지금의 민주.진보진영의 현실이란 것이 독재가 강압적으로 구조를 이끌어갈때
그것에 대항했다... 그래서 그것으로 인한 요구되는 부족한 부분의 욕구가 가장 커졌을 때
김대중,노무현이 했다. 그런데 여기서 문제가 된다.
나라를 경영할 준비는 하고 있지 않았다는 것이 어느면에서 드러났다.
감당할 수 없는 것이다.
비난하고 지적질 하기는 쉬우나 경영은 어려운 것이다.


다만 그시대를 살아내신 분들은,
그 정도 나이면 좋아도 싫어도 가야할 길 찾아 갈 수 있는 나이 아닌가?
비난이나 욕, 기회가 기울어져 균형감각이 없다고 본다.
무엇이 먼저인지도 모른다고 생각한다. 그저 길들여진 욕망의 발로였을 뿐.

그 결과 좋은 구조로 도인되지 못했으므로
다른 세대를 살아온 젊은세대에게는 불만족럽게 흐르고
또 산업화시대에 일정의 성공을 이루지 못한 사람들에게도 가혹하게 된 현실이 있다.

대기업이 전체산업을 지배하는 듯한 구조에 대해서도 다소 엉뚱한 생각이 든다.
대기업은 소수다. 중소기업은 다수다.
욕망의 총량으로 보면 어느쪽이 더 클까?

보수여당은 중소기업은 그들의 문제일 뿐으로 정리된 것 같고.
진보진영은 90%의 일자리가 그쪽에서 나온다고는 했지만,
딱히 어찌하겠다는 없다.(자잘한 뭐...)
공정거래는 자본주의 기본질서의 문제이지
그것때문에 중소기업 전체가 어찌되리라고는 생각지 않는다.

안철수 현상은 냉정하게 지켜봐야 한다.
왜냐면 잘 걸어온 정치인이 아니기 때문이다.
본의든 본의가 아니든 과도기에 기여했다고 평하는 김영삼이나
김대중, 노무현도 다 삶의 현장과 정치계를 잘 보고 행동으로 말해왔던 사람들이다.
겨우 정치의 맛을 좀 보여준 것이다.


어설프게 안철수에 기대하는 사람들에게
최소한 안철수는 정치쪽에서 행동으로 검증되지는 않았다는 것을 상기해주고 싶다.
그리고 그 행보는 매우 의심할만한 것이었다.


미국의 민주당 진영의 오바마... 솔직하고 설득력 있는 말빨..
지도력,정치력,결정력,협상력.. 좋은 의도.. 미국 대통령의 품위...
당시 미국으로선 최선의 선택.
그러나 부시대에 워낙 망가뜨려 놔서... 어쩔 수가 없다.
그 조건에서는 한계가 있는 것이죠.. 의료보험 하나도 못했다.
할 수 있는 정도 한다고 하지만... 어떤 것도 기대 이하다.
미국의 돈찍는 짓은 힘센놈이라 대놓고 말 못하지만, 전 세계에 피해를 주었다.
그러니 어떤 사람에게는 솔직해 보이던 것이 교활해 보이고
설득력 있어 보이던 것이 사기꾼처럼 보이게 된다.
구조..체계가 좋지 않았던 한국은 부풀려 받은 것이고.


어쨌거나 1인 1표로 뽑는 제도에서 어떤 위정자를 갖는 것은
온전히 그 나라의 의식수준의 반영이다.

4대강이며 가계부채 1,000조며 국가.공공기관 부채 증가율이며...
이런 것을 만들어온 정치집단의 후보를 다시 위정자로 뽑았으니
그 결과를 지켜 봅시다.

대한민국 국민들, 당신들의 선택의 결과가 이제부터 펼쳐질 것입니다.

인간을 사람으로 볼 것이냐 동물로 볼 것이냐... 그것이 문제로다.

2013년 2월 6일 수요일

전세금은 따로 월세로 더 얹어줘

감당할 수 없으면 놓아야지.
지좋자고 그 높은 고혈의 전세금 받으며
온갖 패악질과 욕지기를 해가며 지랄을 하더니
이젠 월세까지 따박따박 받쳐라...

타인의 불행위에 지 행복도 아닌 꼴랑 지좋자고...
그렇게 타인을 괴롭히면서 살아온 사람은
그런 세상 갖는다.
그런 세상 갖는다.

니가 하는 모든 행동
하나하나 알지 못해도
알알이 기도가 되어
너는 그런 세상 갖는다.
너는 그런 세상 갖는다.

더 나아지려할 때 하나하나 장애가 된다.

핍박 받는 사람들은 있는 대로 살자.
분노를 가슴에 쌓아 장애를 만들지 말자.
빨리는 피를 보충하려 먹어야 하는 그 무엇 같구나.
하나 스스로 놓아야지 놓아야지.
괴롭지는 말아야지..

세상을 비추어보면 한사람만 포악을 떨어도
열 스물 수천 수만 수천만 수억이 괴롭고
열 스물 수천 수만 수천만 수억이 좋은 마음 내어 다 같이 좋자고 해도
한 두 놈이 못쓰게 만들어 버리니..

수백만 수천만 수억이 그렇게 포악을 떨어대는데
좋아질게 무엇이냐,
나아지는 속도보다 망가지는 속도가 훨씬 빠르다.

이제는 자연도 버티기 어려운가보다.

지금 시대는 어려움 없이 먹고 살고를 다 해결할 수 있으나
스스로 지옥을 만들고, 못살겠다 괴로워 한다.

그냥 놓고 있는대로 살자.

그렇게 죽으라 죽으라 대놓고 기도하는 자들이 있는한
핍박받는 자는 편할 수 없다.

누가 원하지 않았어도 인생은 이렇게 주어졌고
사람살이 다른 것도 많으니
스스로를 이롭게하고 평온에 이르시길 바란다.

따지고 보면, 사람은 많고 욕망은 더 크니
어느 누가 있어 빼앗지 않고 그 욕망을 채워주랴.

사람을 낳아 놓고도 모두 짐승으로 만들어 버리니..
누가 저런 것들을 집어 넣었을까..

내안에 나 아닌 것을 모두 거둬 버리자.
요구하고 겁주고 핍박하는 자는 다 가짜다.

인과에 어두움에 화가 나는 것은 어쩔 수 없으나
분노도 원인으로 돌리고
괴로움도 원인으로 돌리고
평온에 이르자 평온에 이르자.

심어진 모든 것을 버리고
모든 말을 잊고 모든 모양을 떠나
평온에 이르면 저절로 알게 될 것이다.
별다른 것은 아니다.
있는대로 살자.


2013년 2월 4일 월요일

사파리 Safri,osx,ios 만 웹소켓 websocket 이상해 wired

Windows에서 현재 Safari는 5.1.x이다. 부분적으로 지원하지만 온전히 지원하지는 않는단다.
그래 그건 그렇다 치고.

os x, ios는 왜 6.x대인데 안되는 거냐는 거지.

그뿐만이 아니지.. os x, ios 에서 chrome을 설치해도 안된다는 거지.

Jobs는 놀라운 일을 해냈지만,
bill gates와는 다르지만 기기를 이용한 독점성은 여전해..
그것이 소위 부가가치를 높이면서 할 수 있는 최선인지는 모르겠는데

websocket의 경우는 사알짝 삐닥해지고 있다는 거지...

모든 사람들이 mac에 osx나 mac mobile기기에 ios를 써주길 바라는 건지.

그렇다면 ..... 다시 생각해 봐야지.. 독점의 결과는 잘 알잖아.

WebSocket, Atmosphere, Tomcat 예제 웹소켓

2013-10-05 
여름을 지나면서 웹로직까지 websocket을 지원하게 돼었으므로
해당 WAS의 예제를 검색하여 사용하십시오.
-----------------
java WAS에서 websocket을 안정되게 지원하는 Atmosphere 예제다.
server-Window7 x64, java7 x64, tomcat 7.34, Atmosphere
client-Window7 x64, Chrome,Firefox,Opera,IE10

javatomcat 이 준비되었다면
http://maven.apache.org/ 에서 maven을 다운받아 환경을 잡고
http://github.com/Atmosphere/atmosphere 에서 zip으로 다운받아
maven으로 compile,package를 돌려준다.

https://github.com/Atmosphere/atmosphere/wiki
https://github.com/Atmosphere/atmosphere/wiki/Structure-of-an-Atmosphere's-Application
https://github.com/Atmosphere/atmosphere/wiki/Understanding-WebSocketHandler
를 참조하여 필요한 파일들을 찾아서 lib,web.xml,context.xml등을 톰캣에 복사한다.
web.xml


    <servlet>
        <description>AtmosphereServlet</description>
        <servlet-name>AtmosphereServlet</servlet-name>
        <servlet-class>org.atmosphere.cpr.AtmosphereServlet</servlet-class>
        <load-on-startup>0</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>AtmosphereServlet</servlet-name>
        <url-pattern>/websocket/atmosphere/*</url-pattern>
    </servlet-mapping>

다음은 java 소드다.

package test.ws;

import java.io.IOException;
import java.util.Date;

import org.atmosphere.config.service.WebSocketHandlerService;
import org.atmosphere.cpr.AtmosphereRequest;
import org.atmosphere.cpr.AtmosphereResource;
import org.atmosphere.cpr.Broadcaster;
import org.atmosphere.cpr.BroadcasterFactory;
import org.atmosphere.util.SimpleBroadcaster;
import org.atmosphere.websocket.WebSocket;
import org.atmosphere.websocket.WebSocketHandlerAdapter;
import org.atmosphere.websocket.WebSocketProcessor.WebSocketException;
import org.codehaus.jackson.map.ObjectMapper;

@WebSocketHandlerService(path = "/websocket/atmosphere/simple", broadcaster = SimpleBroadcaster.class)
public class AtmosphereSample extends WebSocketHandlerAdapter
{
private final ObjectMapper mapper = new ObjectMapper();
public void onByteMessage(WebSocket socket, byte[] arg1, int arg2, int arg3) throws IOException
{
// TODO Auto-generated method stub

}

public void onClose(WebSocket socket)
{
AtmosphereResource resource = socket.resource();
AtmosphereRequest request = resource.getRequest();
String uri = request.getRequestURI();
String remote = request.getRemoteHost();
System.out.println("socket closed:" + uri + " from " + remote);
}

public void onError(WebSocket socket, WebSocketException e)
{
System.out.println("socket error:" + e.getLocalizedMessage());
}

public void onOpen(WebSocket socket) throws IOException
{
AtmosphereResource resource = socket.resource();
AtmosphereRequest request = resource.getRequest();
String uri = request.getRequestURI();
String remote = request.getRemoteHost();
System.out.println("socket opened:" + uri + " from " + remote);
socket.resource().setBroadcaster(BroadcasterFactory.getDefault().lookup("/simple", true));
}

public void onTextMessage(WebSocket socket, String message) throws IOException
{
// socket.write(socket.resource().getResponse(),message);
        AtmosphereResource r = socket.resource();
        Broadcaster b = r.getBroadcaster();
        b.broadcast(mapper.writeValueAsString(message));
}
}

다음은 jsp? 또는 html로

<%@ page contentType="text/html;charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body>
<textarea id="marea" style="width:400px;height:300px">
</textarea>
<br/>
<input id="newbutton" type="button" value="new" onclick="fNewSocket('ws://localhost/websocket/atmosphere/simple')"  style="visibility:visible"/>
<input type="text" id="send"></input>
<input id="sendbutton" type="button" value="send" onclick="fSendMessage()" style="visibility:hidden"/>
<input id="closebutton" type="button" value="close" onclick="socket.close()" style="visibility:hidden"/>
</body>
<script id="script" type="text/javascript" src="/js/jquery/jquery-1.9.0.js"></script>
<script id="script" type="text/javascript" src="/js/jquery/jquery.atmosphere.js"></script>

<script type="text/javascript">
var tarea = document.getElementById("marea");

var data = [];
var socket;
function fNewSocket(uri)
{
try
{
if(socket && socket.readState != 3) socket.close();
window.WebSocket = window.WebSocket || window.MozWebSocket;
socket = new WebSocket(uri);
socket.onopen = function(msg) { 
tarea.value += "opened:"+socket.readyState+"\n";
}; 
socket.onerror = function(e) { 
tarea.value += e.data+"\n";
}; 
socket.onclose = function(e) { 
tarea.value += "closed:"+e.code+","+e.reason+":"+socket.readyState+"\n";
document.getElementById("sendbutton").style.visibility = "hidden";
document.getElementById("closebutton").style.visibility = "hidden";
document.getElementById("newbutton").style.visibility = "visible";
}; 
socket.onmessage = function(message) {
try
{
var s = message.data;
tarea.value += message.data+"\n";
}
catch(ex)
{
alert(ex)
}
};
document.getElementById("newbutton").style.visibility = "hidden";
document.getElementById("sendbutton").style.visibility = "visible";
document.getElementById("closebutton").style.visibility = "visible";
}
catch( e)
{
tarea.value = e.toString();
}
}
function fSendMessage()
{
socket.send(document.getElementById("send").value);
}

window.unload = function(){
if(socket.readyState != 3) socket.disconnect();
}


</script>
</html>
------------------------------------
단순한 chat예제이다. win7-IE10,Chrome,Firefox,Opera는 다 잘 동작한다.
Safari, osx ios 환경에서 chrome등은 동작하지 않는다.
Safari는 6.x에서부터 제대로 지원할 것이라고 하고, 
osx,ios의 속사정은 모르겠다. chrome의 문제인지 os의 문제인지..

websocket 형태의 필요가 대두된지는 오래되었다.
websocket도 2008~9년부터 이야기가 본격화 되었어도 이제 겨우 여기까지 왔다.

websocket의 활용범위는 ajax는 비교되지 않는다.
벌써 이용하고 있는 곳도 적지 않다.

개발자들에게 상당한 자유도를 줄 것으로 보인다.

2013년 2월 1일 금요일

브라우저들의 websocket 지원현황 - websocket support browsers

현재 웹소켓을 지원하는 브라우저들을 보여주는 사이트.






각 브라우저의 버전별로 나와있는데 거의 대부분의 브라우저가 지원한다.

http://caniuse.com/websockets