2014년 2월 27일 목요일

Android의 네트워크 연결 상태 확인

Android 앱에서 네트워크 연결이 필요한 작업을 할 때 3G나 WiFi 연결이 되어 있지 않으면 오류가 발생한다.

이를 애초에 막기 위해서 네트워크 연결이 필요한 작업을 하기 전에 네트워크 연결 상태를 확인하는 로직을 넣어줄 수 있다.

우선 네트워크 상태에 접근할 수 있는 퍼미션을 AndroidManifest.xml에 추가한다.

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

퍼미션을 추가했다면 아래와 같이 코드를 구현한다.

private boolean checkNetwordState() {
    ConnectivityManager connManager = cManager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo state_3g = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
    NetworkInfo state_wifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

    return state_3g.isConnected() || state_wifi.isConnected();
}

이후 네트워크 연결상태 확인이 필요한 부분에 해당 함수를 호출해서 체크하면된다.

MySQL 문자열 replace

MySQL에서는 문자열을 replace하기 위한 함수를 제공한다.

replace('문자열','찾을 문자','바꿀 문자')

위와 같이 사용한다.

그런데 이미 들어있는 데이터를 바꿔서 넣고 싶을 때는 어떻게 해야할까?

아주 쉽다.

UPDATE문에 replace 함수를 사용하면 된다.

아래는 줄바꿈이 되어있는 텍스트를 HTML 형태의 줄바꿈(BR태크)으로 변경하는 쿼리이다.

mysql> update target_table set text_data = replace(text_data,'\n','<br/>');

2014년 2월 21일 금요일

Fuck you, Russia.

더러운 홈 어드벤티지에 연아만 당했네.

하키 인구가 몇인데 하키 졌다고 난리치더니 피겨에서 금 뺏아가네.

그래 뭐 심판 매수했다 치고..

그래도 저 점수는 아니잖아???

어느정도 하던 애가 저런 점수 받았으면 열이라도 안받지..

소트니코바? 빙판 위에서 뒹굴던애?

그 몸이 확확 접히는 러시아 꼬맹이한테 줬으면 덜 열받았을거야..

그렇게 스포트라이트를 받고 있었으니까..

그런데 뭐 듣보잡이 튀어나와서 금을 가져가네..

굿바이 피겨. Fuck you, Russia.

 

그래도 우리가 기억하는 챔피언은 김연아다.

소치 올림픽 피겨에서 금메달리스트보다 더 주목받고 인정받는 선수가 김연아다.

Wordpress에 Facebook 좋아요 버튼 달기

가끔 블로그를 돌아다니다 보면 Facebook 좋아요 버튼을 달아놓은 블로그들이 보입니다.

몇 천건, 몇 만건씩 좋아요가 눌러져 있는 것을 보면 참 부럽죠..

그래서 저도 Wordpress에 달아보았습니다!

구지 플러그인을 쓰지 않아도 원하는 페이지에 버튼을 달 수 있습니다.

물론 제가 구현을 하는 것이 아니라..

Facebook에서 API를 제공해주는 덕분이죠 ^^

따봉

 

Facebook 개발자 사이트에서는 여러 플러그인 및 API를 제공해 주고 있습니다.

그 중에서 좋아요 버튼을 누르는 API는 Like Button API입니다.

사용법은 간단합니다.

일단 해당 페이지(바로가기)에 접속해서 간단한 설정만 해주면 끝!

아래 그림이 설정부분입니다.

URL to Like에 본인의 블로그 주소를 넣고 Layout이나 Action Type 등을 설정하면 실시간으로 하단에 좋아요 버튼 모양을 확인할 수 있습니다.

 

[caption id="attachment_845" align="aligncenter" width="729"][ Facebook Like Button 설정 ] [ Facebook Like Button 설정 ][/caption] 

 

Layout은 좋아요 버튼의 모양을 설정할 수 있습니다.



















standard좋아요 버튼 오른쪽으로 좋아요 숫자와 함께 긴 문장이 추가되는 layout입니다.
box_count좋아요 버튼 위로 말풍선에 좋아요 숫자가 표시됩니다.
button_count좋아요 버튼 오른쪽으로 말풍선에 좋아요 숫자가 표시됩니다.
button단순히 좋아요 버튼만 있습니다.

 

[caption id="attachment_844" align="aligncenter" width="729"][ Facebook Like Button 종류 ] [ Facebook Like Button 종류 ][/caption] 

 

Action Type은 좋아요를 할 것인지 추천을 할 것인지 설정하는 부분입니다.

Show Friends' Faces를 체크하면 좋아요를 누른 사람 중에 친구가 있으면 보여주는 기능입니다.

Include Share Button을 체크하면 공유하기 버튼도 함께 보여집니다.

 

[caption id="attachment_843" align="aligncenter" width="729"][ Facebook Like Button 타입 ] [ Facebook Like Button 타입 ][/caption] 

 

위의 설정들을 모두 완료한 뒤 Get Code를 누르면 아래와 같이 Code가 생성됩니다.

이후에는 이러한 설정을 code에서 직접 수정해서 사용하실 수 있습니다.

 

[caption id="attachment_842" align="aligncenter" width="722"][ Facebook Like Button 스크립트 ] [ Facebook Like Button 스크립트 ][/caption] 

 

코드는 총 4가지로 생성되구요. 여기서는 HTML5 코드로 생성했습니다.

XFBML도 이와 유사하게 생성되구요. IFRAME이나 URL로 생성하면 다른 플러그인을 작성하거나 사용하실 때 사용할 수 있습니다.

위에서 생성된 코드 중에 위에 있는 코드는 <body>태그 바로 아래에 추가해 주시고 아래에 있는 코드는 좋아요 버튼을 위치시킬 곳에 추가하시면 됩니다.

완료된 모습은 제 블로그 최상단을 보시면 됩니다. ^^

참~쉽죠잉~~~

굿

 

* 아래에 있는 표는 코드 내에 있는 각각의 속성들을 나열한 표입니다.

추후에 직접 수정하고 싶으실 때에는 아래 내용을 참고해서 수정하시면 됩니다 ^^





































































SettingHTML5 AttributeDescriptionDefault
actiondata-actionThe verb to display on the button. Can be either "like" or "recommend""like"
colorschemedata-colorschemeThe color scheme used by the plugin. Can be "light" or "dark"."light"
hrefdata-hrefThe absolute URL of the page that will be liked.XFBML and HTML5 versions default to the current URL.
kid_directed_sitedata-kid-directed-siteIf your web site or online service, or a portion of your service, is directed to children under 13 you must enable this"false"
layoutdata-layoutSelects one of the different layouts that are available for the plugin. Can be one of "standard", "button_count", or "box_count". See the FAQ for more details."standard"
refdata-refA label for tracking referrals which must be less than 50 characters and can contain alphanumeric characters and some punctuation (currently +/=-.:_). See the FAQ for more details.None
sharedata-shareSpecifies whether to include a share button beside the Like button. This only works with the XFBML version."false"
show_facesdata-show-facesSpecifies whether to display profile photos below the button (standard layout only). You must not enable this on child-directed sites."false"
widthdata-widthThe width of the plugin. The layout you choose affects the minimum and default widths you can use, pleasesee the FAQ below for more details.Depends on layout

2014년 2월 19일 수요일

여기는 OpenStack Day in Korea 현장!

오늘은 OpenStack Day in Korea에 참석하러 세종대학교에 왔습니다.
RedHat, Ubuntu, HP에서 부스를 차려놓고 이벤트를 하네요 ㅎㅎ


20140218-164031.jpg

머그컵을 받기 위해 레드햇을 쓰고 포즈를 취해봅니다..
설문조사를 하고 티셔츠도 받았네요..
컨퍼런스 참석을 하러 온건지 상품을 받으러 온건지 모르겠네요 ㅎㅎ



20140218-164307.jpg

모바일로 처음 써보는데 잘 올라가는지 모르겠습니다 ㅋ
아직 세션이 진행중인데..잘 모르는 내용들이라 집중하기 힘드네요 ㅠㅠ

2014년 2월 13일 목요일

제14회 한국자바개발자 컨퍼런스

[caption id="attachment_831" align="aligncenter" width="579"]JCO 컨퍼런스 [ 한국자바개발자 컨퍼런스 이미지 ][/caption]2월 22일 세종대학교 컨벤션센터에서 JCO가 주최하는 제14회 한국자바개발자 컨퍼런스가 열립니다.

지난해 'Follower에서 Creator로!'라는 주제로 개최 되었으며 이번에는 '커뮤니티 안에서 개발자로서의 통찰력을 키우자!' ( class Community implements Insight {} ) 라고 정하고 '통찰력'과 '커뮤니티 활성화'를 주제로 개최한다고 합니다.

이번 컨퍼런스의 강연 트랙은 아래와 같습니다. 이미지를 클릭하면 한국자바개발자 컨퍼런스 행사일정 페이지로 이동합니다.

[caption id="attachment_833" align="aligncenter" width="480"]강연 트랙 [ 강연 트랙 ][/caption]아래 버튼을 클릭하시면 행사등록 페이지로 이동합니다.

행사등록

2014년 2월 12일 수요일

Javascript URL 정합성 체크하기

URL 정합성을 체크하기 위한 javascript plugin도 있는 것 같지만..

나는 아래와 같이 쓴다..

일단 프로토콜 부분만 체크하고 그 뒤는 체크하지 않는 듯하지만..

이 정도면 쓰는데 문제되지는 않을 것 같다.
if(/^([a-z]([a-z]|\d|\+|-|\.)*):(\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?((\[(|(v[\da-f]{1,}\.(([a-z]|\d|-|\.|_|~)|[!\$&'\(\)\*\+,;=]|:)+))\])|((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=])*)(:\d*)?)(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*|(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)|((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)|((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)){0})(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(URL)) {
alert("valid url");
} else {
alert("invalid url");
}

 

2014년 2월 11일 화요일

MySQL Workbench에서 update 실행 시 1175 에러

MySQL Workbench에서 update 명령 실행 시 Error code 1175가 떨어지는 경우가 있다.







Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Queries and reconnect.

이 에러는 WHERE절에 key(index) 컬럼이 조건으로 들어가 있지 않은 경우에 발생한다.

이를 해결하기 위해서는 WHERE절에 key(index) 컬럼을 조건으로 넣어 주거나 아래 환경변수를 설정해 주면 해결된다.
SET SQL_SAFE_UPDATES=0;

 

2014년 2월 6일 목요일

Eclipse에서 cocos2d Library project(libcocos2dx) 못찾을 경우

Cocos2d-x 3.0 beta2에서 안드로이드 프로젝트로 사용하기 위해서 Eclipse에서 프로젝트를 import하면 라이브러리 프로젝트의 경로가 잘못되어서 에러가 떨어진다.

(내가 참고한 블로그나 책의 경우에..)

그런데 다들 프로젝트 내에 포함되어 있는 cocos2d 디렉토리를 옮기거나 설치되어 있는 cocos2d-x 엔진 디렉토리에서 라이브러리 프로젝트를 import 시킨 후 다시 라이브러리 프로젝트를 설정해주는 방식을 사용하고 있었다.

난 그 방식들이 제대로된 해결책이 아닐 것이라는 생각에 프로젝트 내에 포함되어 있는 cocos2d 디렉토리를 사용하기로 하고 삽질을 해봤다.

화르르

역시..

cocos2d 디렉토리는 사용하라고 있는 것이었다.

xcode에서는 자동으로 읽어오지만 Eclipse용으로는 제대로 설정이 되어있지 않나보다..

일단 프로젝트 내의 라이브러리 프로젝트를 import한 후에 프로젝트를 import했더니 따로 설정을 변경할 필요 없이 정상적으로 로드되었다..

응..? 뭐지..하고나니까 당연한 것이었다는 생각이 든다..

참고한 곳에서는 내가 설치한 cocos2d-x와 디렉토리 구조도 조금씩 달랐다..OTL

너무 책만 쳐다보고 했나보다..

오픈소스 엔진인 cocos2d-x의 버전은 빠르게 올라가고 있으니..너무 책에만 의존하지 말고 스스로 공부를 해보는 것도 좋을 것 같다..ㅋ

[caption id="attachment_821" align="aligncenter" width="565"][ cocos2d-x 라이브러리 프로젝트 정상 로드 ] [ cocos2d-x 라이브러리 프로젝트 정상 로드 ][/caption]

수지 티몬 CF

뿌잉

 

티비를 보다가 티몬 CF를 보고 깜짝 놀랐다.

수지의 물오른 미모를 감상하느라 정신이 팔려있었다..

그래서 이 영상을 공유한다!ㅋㅋㅋㅋ

[youtube=https://www.youtube.com/watch?v=VGB0dk36vE8]

2014년 2월 5일 수요일

2월 5일 Admob 수입 지급

[caption id="attachment_815" align="aligncenter" width="282"][ Admob 수입 지급 ] [ Admob 수입 지급 ][/caption]2월 5일자로 Admob 수입이 지급되었습니다.

앱을 만들어놓고 방치해둔 상태라서..얼마되지 않는 수입이지만 그래도 지급되네요 ㅋㅋ

Admob의 경우 Paypal로 수입을 지급받으면 수입이 $20 이상이면 매월 초에 Paypal로 지급됩니다.

바로 Paypal에서 확인할 수 있는 것이 아니라.. 한 1~2주정도 소요되는 것 같네요..

커피 값 벌었습니다..!ㅋㅋㅋ

예얍