json parse Uncaught SyntaxError: Unexpected token

Sometimes JSON.parse or $.parseJSON encounter an error message like

json parse Uncaught SyntaxError: Unexpected token

When you meet this error message, check a quotation mark.

{Id:"10",Name:"Matt"}

must be

{"Id":"10","Name":"Matt"}

To be committed–indeed, to be successful at anything–you have to believe you can do it. – Carole Hyatt & Linda Gottlieb

Lack of self-esteem is a basic cause of failure. To be committed–indeed, to be successful at anything–you have to believe you can do it.
자존감의 결핍은 실패의 근본적인 원인이다. 어떤 일에 전념하려면–정말로 어떤 것에서든지 성공하려면–우리가 그것을 할 수 있다고 믿어야 한다.

– Carole Hyatt & Linda Gottlieb
– 캐롤 하이얏 & 린다 갓립

refer http://dic.daum.net/zine.do?articleid=2664&dic=all

Understanding HBase

Column in HBase

HBase’s table can has multidimensional column.
Hence if you know about RDBMS, you might have a problem to understand about HBase table structure. JSON expression will give little help to understanding.

1. Run hbase shell

hadoop@delmonte:~$ hbase shell

2. Create Table

You can make a table and columns through two ways.

hbase> create 'blogposts', {NAME => 'post'}, {NAME => 'image', 
VERSIONS => 1, TTL => 2592000, BLOCKCACHE => true}

or

hbase> create 'blogposts', 'post', 'image'
Express by JSON
blogposts = {
'post':{},
'image':{}
}

3. Add Data

hbase> put 'blogposts', 'post1', 'post:title', 'Hello World'
hbase> put 'blogposts', 'post1', 'post:author', 'The Author'
hbase> put 'blogposts', 'post1', 'post:body', 'This is a blog post'
hbase> put 'blogposts', 'post1', 'image:header', 'image1.jpg'
hbase> put 'blogposts', 'post1', 'image:bodyimage', 'image2.jpg'
Express by JSON
blogposts = {
  'post1':{ // row
    'post':{ // column
      'title':'Hello World', // cell
      'author':'The Author', // cell
      'body':'This is a blog post' // cell
    },
    'image':{ // column
      'header':'image1.jpg', // cell
      'bodyimage':'image2.jpg' // cell
    }
  }
}

4. Look at the Data

hbase> get ‘blogposts’, ‘post1′
COLUMN          CELL
image:bodyimage timestamp=1229953133260, value=image2.jpg
image:header    timestamp=1229953110419, value=image1.jpg
post:author     timestamp=1229953071910, value=The Author
post:body       timestamp=1229953072029, value=This is a blog post
post:title      timestamp=1229953071791, value=Hello World


Row in HBase

In HBase, you need to keep in mind that a table is possible to consist more than billion rows. Thus, to find a particular row, HBase use named ‘rowkey’: It is a same concept as ‘hashkey’ in the hash table.

Most of people mentioned about MD5 to make a ‘rowkey’ and there’s reason to do.

First of all, MD5 makes long name to short (16 bytes).
e.g. An URL ‘http:// do-buffalo-buffalo-buffalo-buffalo-buffalo-buffalo-buffalo-buffalo.com’ can be ‘739729cc1870c16e78c1cb1395bf2bc4’.

Second, If you monotonically increase ‘rowkey’ like ‘r1’, ‘r2’, ‘r3’ … ‘rn’, you will encounter a problem called ‘RegionServer Hotspotting’. It is really well described in here by comics.

Of course you can make a ‘rowkey’ by combination like this. The choice is depends on what your site want to store to HBase.

refer for COLUMN IN HBASE
http://www.evanconkle.com/2011/11/hbase-tutorial-creating-table/
http://wiki.apache.org/hadoop/Hbase/Shell
http://jimbojw.com/wiki/index.php?title=Understanding_Hbase_and_BigTable
refer for ROW IN HBASE
http://hbase.apache.org/book/rowkey.design.html
http://entireboy.egloos.com/viewer/4689269
http://ikaisays.com/2011/01/25/app-engine-datastore-tip-monotonically-increasing-values-are-bad/
http://hbase.apache.org/book/schema.casestudies.html

어느 무명배우의 이야기

141355817716509

시칠리아 출신 이민자 2세인 그의 부모는 가난 때문에 자선병동에서 아이를 출산해야만 했다. 자선병원에는 경험이 부족한 의사들이 많았기 때문에 의료사고가 잦았고, 분만 중 의사의 실수로 안면신경 중 일부가 끊어져 왼쪽 뺨과 입술을 제대로 움직일 수 없는 안면신경마비 장애를 안고 태어나게 된다.

배우를 꿈꾸던 그에게 안면신경마비는 치명적인 단점이었다.
발음이 제대로 되지 않고 표정도 일그러져서 오디션을 수없이 보았지만 번번이 떨어졌고, 기껏 돌아오는 것은 단역에 불과했다. 몇 년 동안 단역을 전전하면서 그는 생계를 위해 수위, 경비원, 피자 배달부, 영화관 안내인, 식당 종업원 등 온갖 잡일을 하게 된다. 피곤에 지친 나날들 속에서도 그는 틈틈이 연기 연습을 하고 시나리오를 썼다.

29살 생일, 그때 그의 통장에는 106 달러 밖에 남아있지 않았다. 그의 개는 굶고 있었고, 헐리우드의 쓰러져가는 아파트의 월세 조차 내지 못하고 있었다. 더군다나 아내는 임신 중이었다.

아내가 사온 1.15 달러의 케익을 앞에두고 생일 축가를 부른 뒤 그는 이렇게 빌었다. “제발 이 지긋지긋한 곳을 벗어나게 해주세요!” 그리고 ‘이대로는 안 된다. 뭔가 변화가 있어야 한다’고 직감적으로 느꼈다. 그는 운명적으로 1975년 3월 24일 한 권투 경기를 보았고 전화 코드를 뽑아버리고 외출도 하지 않은 채 비장한 각오로 3일 반나절동안 한 편의 시나리오를 완성다. 완성된 시나리오를 들고 여러 영화사를 전전한 그는 자신이 내건 조건 때문에 번번이 거절을 당하고 나오기 일쑤였다.

그 조건은 주연배우와 감독은 자신을 시켜달라는 조건이었다.
무명인 그에게 감독과 주연배우를 시켜서 영화를 만들겠다는 곳이 있을 리 만무했고, 수십번이 넘는 끈질긴 시도 끝에, 마침내 유나이티드 아티스트라는 제작사에서 그가 주연배우만 하는 조건으로 제작을 수락하게 되었다. 벼랑 끝에 몰린 상황에서도 발휘한 그의 뚝심이 마침내 보답을 받은 것이다.

1976년 개봉된 영화 <록키>는 전에 없는 히트를 하며 제작비의 50배 이상을 벌어들이게 된다. 또한 49회 아카데미 시상식에서 편집상, 작품상, 감독상을 수상하고 10개 부문에 노미네이트되면서 무명이었던 그 또한 단숨에 스타로 거듭나게 만들었다.

이 무명 배우의 이름은 실베스터 스탤론이다.

from 안면신경마비
from 어느 무명배우의 이야기
from ‘Rocky Isn’t Based on Me,’ Says Stallone, ‘But We Both Went the Distance’

How to Start a Startup – 1

스크린샷 2014-10-09 오전 9.58.21
시작은 이상한 아이디어와 좋은 아이디어의 교차점이 좋다.
스타트업 부터 제대로된 성장까지 10년을 바라봐라.

스크린샷 2014-10-09 오전 10.11.46

창업자들은 자기가 원하고 만들고 싶어하는 아이디어를 정한뒤 그것을 듣기위한 사람들을 찾지만, 사람들이 무엇을 변화하고 싶은지를 판단하고 그것에 맞는 적절한 공급을 하는 것이 좋다.

스크린샷 2014-10-09 오전 10.15.59

페북이나 구굴의 시작은 못생기고 웃겼다. 문제는 컨테츠이다.
지금 할 수 있는 최선의 제품을 만들어라.

스크린샷 2014-10-09 오전 10.43.28

독점을 하기 위해서는 작은 마켓부터 시작하라. 시작이 잘 되면 곧 성장한다. 작은 마켓의 사람들이 제품을 좋아하게 되면 SNS등을 통해 급속하게 퍼진다.

스크린샷 2014-10-09 오전 11.48.18

처음부터 광고를 통해 사람들을 모으지말고, 피드백을 주는 사람들을 모아라. Pinterest의 Ben Silverman 은 커피숍의 아무사람을 붙잡고 자기의 제품을 사용해보길 부탁했다. 또 애플스토어의 브라우저를 키면 자신의 사이트가 나오도록 세팅하고 다녔다. 다듬고 발전시키고 광고하라.

Olleh 스토어 Unity3D 플러그인 개발 시 주의 사항

InApp 라이브러리를 사용하기 위해 자바객체를 얻어와야 하는데,
runOnUiThread 라는 녀석을 사용해서 호출되는 콜백 함수에서 자바객체를 얻어와야 정상적으로 값이 리턴된다.

	var jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
	var jo = jc.GetStatic<AndroidJavaObject>("currentActivity");

	var jc2 = new AndroidJavaClass("com.product.UnityPlayerNativeActivity");
	jo.Call("runOnUiThread", new AndroidJavaRunnable(()=>
	{
		var jo2 = jc2.CallStatic<AndroidJavaObject>("GetInstance");
		jo2.Call("OnPurchase", "id");
	} ));

T 스토어 Unity3D 플러그인 개발 시 주의 사항

InApp 라이브러리를 세팅한후, 만일 게임을 Landscape 으로 만든다면

 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

이녀석을 꼭 주석 처리 해야한다.
아니면 Unregistering JNI method 라는 요상한 메시지가 뜨면서 시작하자 마자 종료 된다.

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		// Screen portrait 고정
		//setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
		mPlugin = IapPlugin.getPlugin(this, "development");
		mActivity = this;
	}