HTML5에 대해서 공부를 하면서 그 내용들을 정리하고자 한다. 앞으로 정리하고자하는 내용은 다음과 같다. [HTML5 튜토리얼] HTML5의 등장 배경과 여러 가지 개발 환경 및 현재 현황[HTML5 튜토리얼] 기초 및 기본 구조, 프로그래밍상 기존의 HTML과 바뀐 점[HTML5 튜토리얼] HTML5에 추가된 Element들 그리고 문서의 구조화[HTML5 튜토리얼] Canvas 기초 강좌[HTML5 튜토리얼] Video와 Audio 태그 기본[HTML5 튜토리얼] 새로운 form element 들[HTML5 튜토리얼] Web storage (localStorage, sessionStorage)[HTML5 튜토리얼] navigator.geolocation 위치 정보 수집 APIWeb SQL Datab..
* 이번에는 Google App Engine의 데이터베이스, Datastore를 이용해보자. 2012/10/06 - [Mini Project/NY-School] - [NY-School] Google App Engine과 Python 시작하기전에 공부하기2012/10/06 - [Mini Project/NY-School] - [NY-School] Google App Engine과 Python 시작하기 - Hello world2012/10/06 - [Mini Project/NY-School] - [NY-School] Google App Engine과 Python 시작하기 - webapp framework *개요: App Engine의 Datastore는 간단한 API로 구글의 인프라를 이용하여 네트워크 트래픽..
* 이전 글에 이어서 webapp 프레임워크를 사용하는 방법을 살펴보자. 2012/10/06 - [Mini Project/NY-School] - [NY-School] Google App Engine과 Python 시작하기전에 공부하기2012/10/06 - [Mini Project/NY-School] - [NY-School] Google App Engine과 Python 시작하기 - Hello world * 개요: CGI 표준은 간단하지만 이 모든것을 직접 손으로 코딩하려고 한다면 복잡하고 귀찮은 일이다. 웹 어플리케이션 프레임워크는 이러한 사항들을 대신 다워준다. Google App Engine은 Python과 CGI, WSGI 등을 이용하는 모든 프레임워크와 통신을 할 수 있다.따라서 Django, C..
2012/10/06 - [Mini Project/NY-School] - [NY-School] Google App Engine과 Python 시작하기전에 공부하기 * 이전글에 이어서 구글 앱 엔진과 파이썬을 연동하는 기본적인 hello world 프로그램부터 공부를 시작해보자. - 파이썬 설치 : MacOSX에서는 파이썬이 보통 깔려져있으므로 현재 설치되어있는 파이썬의 버전을 확인하자. : 현재 버전은 2.6.1로 처음 샀을 때 이후로 업데이트를 한적이 한번도 없다. 따라서 GAE가 설명하고 있는 2.7버전으로 업데이트하자. 현재 최신버전으로는 2.7.3버전과 3.3.0 버전이 있는데, 2.7.3 버전으로 진행하겠다. http://www.python.org/download/releases/2.7.3/ * ..
* 아래의 사이트에 이것저것 설명되어있다. 들어가서 자세하게 공부하는 것이 제일 좋을 것이다.https://developers.google.com/appengine/docs/python/overview : Google App Engine(GAE)는 자바와 파이썬, 그리고 Go (?)를 지원한다. (위의 사이트 참고) 이 중에서 이전에 자바를 이용했던 적이 있으므로 이번에는 파이썬을 적용해서 해보고자 한다. GAE와 Python : GAE에서는 파이썬은 버전 2.7이상을 지원하고 있고 (현재 파이썬 최신버전 : 2.7.3, 3.3.0) 파이썬 웹앱은 WSGI 프로토콜을 이용해서 GAE 서버와 통신을 하게 된다. 따라서 WSGI와 호환이 되는 웹 앱의 경우는 모두 GAE의 파이썬 런타임 환경을 적용할 수 있..
* 새로운 환경에서의 새로운 언어도 공부할겸 미니 프로젝트를 하나 진행하려고 한다. 이와 관련해서 공부하는 내용들, 관련 팁들을 쭉 정리할 생각이고 프로젝트가 완성 됐을 때 여러 사람들이 사용할 수 있도록 공개할 생각이다. : 지금 구상해놓은 프로젝트는 많은데, 이번에 진행할 미니 프로젝트는 웹에서 HTML5를 공부하기 위해 진행할 것이다. 여기에 서버를 GAE로 사용하면서 지금까지 지긋지긋하게 했던 JAVA보다는 Python을 조금 더 공부하고자 한다. : 매주 주말마다 조금씩 프로젝트를 진행할 것이고, 그 경과는 여기와 소스는 github를 통해 업데이트 될 것이다. : NY-School URL등록은 GAE상에 http://ny-school.appspot.com 으로 만들어놨지만 다다음주가 되기 전까..
* 다른 사람이 짜놓은 라이브러리를 가져다가 열심히 코딩하는데 에러가 났다. [error] PHP Fatal error: Call to undefined function json_decode() in /var/www/html/example/lib/ApiRestHandler.php on line 147, referer: http://example/open_api.html : 에러를 해석하자면, json_decode()라는 함수가 정의되지 않았는데 호출이 되었다는 것이다. 위치는 ApiRestHandler.php의 147번째 줄이다. : 이미 상용화를 하고 있는 문제없는 소스일텐데 에러가 났다. json_decode() 함수가 없다는 것이다. 그럼 라이브러리가 제대로 로드가 안되었거나 버전이 무언가 안맞던가..
오늘 PHP로 작업하다가 일반적인 언어의 유효영역(scope)로 생각하다가 한시간을 낭비한 일이 있었다. : 위와 같이 썼는데, 당연히 전역변수로 선언한 $apiHandler가 함수 내에서 $apiHandler 이렇게 바로 접근하면 될 줄 알았는데, object가 undefined라고 자꾸 나와서 왜그런가 했더니 로컬 함수 영역은 글로벌과는 별로도 따진다는 것이다. 만약에 함수 밖에 선언한 전역 변수를 사용하고자 한다면, function doFunction1(){ global $apiHandler; $apiHandler->call("foo");} : 이렇게 global로 정의를 해주면 전역변수로서 $apiHandler를 접근하게 된다. 이외에서 $GLOBALS 를 사용하는 방법도 있다. function ..
[자바스크립트] Uploading file with AJAX (XMLHttpRequest) : 지금까지 웹 언어들을 사용할 때 파일을 업로드 할때에는 form과 input type="file"을 이용해왔다. : 위의 구현은 php.net에 있는 내용을 가져온 것으로 태그 안에 단순히 form을 submit하는 것만으로 쉽게 구현이 가능했지만, 이러한 방법은 페이지 새로 고침(refresh) 현상을 유도하게 되고 이는 사용자 경험에 있어서 마이너스가 된다. (비동기를 적용하게 되는 것은 클라이언트 쪽이니까 서버측 구현은 일단 무시하자.) : 하지만 이러한 방법이 이제 어려워지는 가장 큰 이유는 바로 HTML5를 적용한 웹페이지들이 많아지면서 일 것이다. HTML5에서 HTML은 MVC 모델에서 철저하게 V..
AJAX는 이제 어느새 한물간듯한 지겨운 단어가 되어버렸지만 그 개념은 여전히 남아있으며, HTML5의 기본 프레임워크 안에 그 개념은 내제되어있다. 이제는 자바스크립트를 이용하는 어떠한 패러다임을 일컫는데 AJAX를 쓰기 보다는 자바스크립트를 말 할때 AJAX라는 말을 쓰지 않아도 기본적으로 비동기라는 개념이 들어가있게 된 것이다. 비동기처리를 하기 위해 AJAX라는 단어가 나오기 이전부터 XMLHttpRequest를 이용해왔고 HTML5로 넘어가는 앞으로도 이 XMLHttpRequest를 통해서 비동기적인 처리가 이루어질것이다. 따라서 굳이 AJAX라고 강조를 하지 않아도 '자바스크립트'라 하면 데이터는 비동기적으로 가져온다고 생각을 하면 된다. (물론 페이지 refresh를 하는 경우 등 비동기적이..
컴퓨터에 아파치나 IIS를 깔기에는 부담이 될때 파이썬이 있으면 간단한 웹서버로 웹페이지들을 테스트할 수 있다. 콘솔로 가서 웹 서버의 루트로 하고자하는 디렉토리로 가서 다음과 같이 실행하면 된다. * 이는 순전히 http 서버만을 지원해주며 추가적인 웹 언어는 지원하지 않는다. Python 2.x 버전 python -m SimpleHTTPServer 8000 Python 3.x 버전 python -m http.server 8000 : 뒤의 8000은 포트 번호이다. 그럼 다음과 같이 웹서버가 실행된다. : localhost:8000 이나 127.0.0.1:8000으로 접속하면 웹 서버 처럼 파일 시스템에 접근이 가능하다. 테스트용으로 로컬에서 간단하게 사용하면 편하다. 끝.
[Building a Javascript Library] 2. The beginning - state-of-art and basic designing 2012/10/04 - [Programming Lecture/Javascript Library] - [자바스크립트 라이브러리 만들기] 1. 개요 : 구글 검색 결과 - 일단 '트리를 그리는 자바스크립트 라이브러리'를 시작하기 전에, 다른 유사한 라이브러리들은 어떻게 동작하는지 보고 설계를 생각해보는 것도 좋은 방법일 것이다. 구글 검색 결과 트리를 그리는 라이브러리는 아주 '많다'. 상업적 목적이 무료인 라이브러리는 적겠지만, 개인 사용이라면 굳이 구현할 필요는 없을 것이다. 하지만 지금의 목적은 공부를 하기 위한 것이니 그냥 참고만 하자. * dhtmlx..
Building a Javascript Library : 1. Introduction : 최근 HTML5와 함께 새롭게 대두되고 있는 자바스크립트(Javascript)는 오래 전부터 활용이 되어왔지만 최근들어서 jQuery등과 같은 다양한 라이브러리를 통해 개발자들에게 더욱더 쉽게 다가가기 시작하고 있다. 이러한 jQuery 같은 라이브러리를 보면서 '나도 저런 라이브러리를 만들어보고 싶다'라는 생각을 하게 되어서 한번 나만의 라이브러리를 만들어보려고 생각하여 그 과정을 정리해보고자 한다. 지금 기능적으로 다양한 라이브러리를 생각하고 있는데, 지금 당장 자바스크립트로 HTML에 트리구조를 그려줄 수 있는 라이브러리를 만들어보려고 한다. 그러기 위해서 일단 기본적인 구현에 대한 공부를 해야할 것이다. --..
[PHP] Session에 변수 저장하기, 불러오기 $obj = new Object();$_SESSION['myObj'] = $obj; //저장하기 $newObj = $_SESSION['myObj']; //불러오기 object를 저장하는 경우 serialize는 자동으로 해준다고 한다. 찝찝하다면 serialize를 수동으로 해줘도 괜찮다. 그리고 앞에 안전하게 세션의 시작을 설정해주는 것도 좋다. (세션을 사용하는 첫 페이지에 들어왔을 경우) session_start(); //세션 시작 $obj = new Object();$_SESSION['myObj'] = serialize($obj); //저장하기 $newObj = unserialize($_SESSION['myObj']); //불러오기 나중에 세션에..
안녕하세요!요즘 맥으로 디아를 하는 유저인데요, 한국어로는 맥버전이 없다보니 북미계정으로 사서 아시아로 접속하는데 (이걸 보시는 분도 그렇겠죠?) 이 문제는 검색하셨으면 아시겠지만, 클라이언트 버전이랑 서버 버전이 달라서 나타나는 문제이에요. 근데 여기서 블쟈의 운영방식에 따라 발생하는 문제는 지금 여러분들처럼 북미서버랑 아시아서버랑 패치시기가 달라서(북미는 화요일, 아시아는 목요일) 각 서버 버전이 달라지면 둘중에 하나밖에 접속을 못하게 되는거죠; 북미계정으로 북미용 클라이언트를 깔면 패치 서버를 북미쪽으로 설정되어서 이런 패치가 일어나면 아시아 서버랑 버전이 달라져 버리는거죠. 이러면 패치가 이루어질때 북미는 되지만 아시아는 접속이 안되는겁니다. 하지만 어제 접속이 안된거는 약간 다른데, 아시아 서버..
[자바] String으로 된 수식 계산하기 : 옛날에 스택 배울때 힘들게 스택에 넣고빼고 수식을 파싱해가면서 했는데 자바 1.6이상에서는 그냥 Javascript 엔진을 이용하면 된다. (자바스크립트의 eval 함수와 같은 기능의 함수가 있다) import javax.script.ScriptEngineManager; import javax.script.ScriptEngine; public class Test { public static void main(String[] args) throws Exception{ ScriptEngineManager mgr = new ScriptEngineManager(); ScriptEngine engine = mgr.getEngineByName("JavaScript");..
:데이터베이스 목록 보기 (show databases) mysql> show databases; +--------------------+| Database |+--------------------+| information_schema | | aquarium | | mysql | | test | +--------------------+4 rows in set (0.00 sec) :데이터베이스 만들기 (create database ) mysql> create database mwangaza_survey; Query OK, 1 row affected (0.00 sec) :데이터베이스 선택하기 (use ) mysql> use mwangaza_survey; Database changed :테이블 생성하기 mysq..
[Android] C2DM 푸시 알림 구현하기 - PHP 서버 편 튜토리얼 PHP서버에서 C2DM을 이용해서 푸시를 하려면 curl을 이용하는 방법과 Zend 프레임워크를 이용하는 방법이 있다. 더 간단한 방법인 curl 을 이용해서 ClientLogin을 하고 메세지를 방법을 살펴보도록 하자. C2DM 푸시를 보내는 순서는 구글 계정 인증 (이전에 C2DM에서 푸시를 보내는 계정으로 설정했던 계정)curl을 이용해서 메세지 전송 이렇게 이루어진다. 두 단계만 거치면 간단하게 전송이 가능하다. 0. C2DM 세팅 (클라이언트)[안드로이드] C2DM(push notification) 구현하기 - 안드로이드(클라이언트) 편 1. google 계정 등록하는 함수 작성function googleAuthentic..
[Android] Unable to start service Intent { act=com.google.android.c2dm.intent.REGISTER (has extras) }: not found 안드로이드에서 C2DM 푸시 알림을 이용하는데 다음과 같은 에러가 일어나면 다음 3가지에 유의해야한다. 실제 안드로이드 장치에 올릴때에는 안드로이드 2.2 버전 이상이어야한다. (에뮬레이터 포함)Market 어플리케이션이 인스톨 되어있어야한다. (실제 장치만 해당, 에뮬레이터는 없어도 된다.)해당 장치에 구글 계정을 연동해야한다. (Settings / Accounts & Sync / Google..) : 참고--It requires devices running Android 2.2 or higher tha..
[Android] ContentProvider(컨텐트프로바이더)로 ExpandableList(확장 가능한 목록) 구현 예제 (CursorTreeAdapter (커서 트리 아답터) 사용) 튜토리얼 ContentProvider를 구현했으면 사용을 해야할 것이다. Activity안에서 query로 데이터를 가져올 수 있지만 목록에는 CursorAdapter나 CursorTreeAdapter로 해당하는 목록에 적용 시켜야할 것이다. 지금부터 ExpandableList에 CursorTreeAdapter를 사용해서 ContentProvider를 적용하는 방법을 알아볼 것이고 BaseExpandableListActivity를 확장하는 Activity안에서 작업을 할 것이다. 조금거 기본적인 ExpandableList..
[Android] R.java 파일 자동 생성 안될때 이클립스에서 가끔 R 파일이 자동으로 업데이트 안될때가 있을때에는..Clean project > Build automatically이클립스 재시작 위와 같이 했는데도 안된다면, 에러가 있는 resource가 있는 경우가 많다.대표적으로 layout xml 파일에 에러가 있다면 R 파일이 자동으로 생성되지 않는다. 그래도 못 찾겠다면 Android SDK 설치가 제대로 되었는지 확인한다. (업데이트하다가 도중에 중단되면 R.java가 생성 안되는 경우도 발생한다.) 끝.
[Android] 에뮬레이터에 구글 계정 등록하기 기본 안드로이드 에뮬레이터 상에서 구글 계정을 설정하는 부분이 settings/accounts & sync 아래에 Google이 없는 경우. 1. 컴파일하는 라이브러리로 Android X.X SDK 가 아니라 Google API를 이용해야한다.2. AVD 에뮬레이터도 Google API를 사용하도록 바꿔준다.3. Settings/Accounts & Sync/Google 들어가서 계정을 설정한다. 끝.
[Android] ContentProvider example and tutorial 지금부터 ContentProvider를 앱에 적용하는 방법을 살펴보자.최종적인 목표는 SyncAdapter와 ContentProvider를 조합해서 사용하는 것으로 일단 ContentProvider부터 앱에 맞게 설정을 하도록 해보자. 컨텐트프로바이더의 기본에 대해서는 여기서 읽어보면 유용하다. http://developer.android.com/guide/topics/providers/content-provider-basics.html이론 공부는 일단 코딩하면서 하나하나 매치 시켜나가보자.이론적인 공부는 나중에 더 자세하게 다뤄볼 생각이다. * 아래의 소스 코드는 처음으로 ContentProvider가 어떻게 돌아가는지..
[Android] C2DM, 푸시 알림 구현하기. 안드로이드에서는 C2DM (Cloud to Device Messaging)이 iOS에서의 푸시 알림과 같은 개념으로 사용자에게 알림 메세지를 서버에서 보내는 방식을 취하고 있다. 자세한 정보는 http://code.google.com/android/c2dm/index.html 에 가면 얻을 수 있다. 단계적으로 구현하는 방법을 알아보자. 1. C2DM을 이용하기 위한 등록 먼저 http://code.google.com/android/c2dm/signup.html 가서 앱을 등록해야한다. 입력해야하는 정보는 - 개발하고 있는 안드로이드앱의 패키지(예 : com.example.app)- 하루에 이용할 메세지의 수- 초당 이용할 메세지의 수- 이메일 연락처- ..
[Android] Popup, confirm window 안드로이드에서 확인창, 경고창을 띄우는 방법 new AlertDialog.Builder(this) .setTitle("Titel") .setMessage("Do you really want to whatever?") .setIcon(android.R.drawable.ic_dialog_alert) .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { Toast.makeText(MainActivity.this, "Yaay", Toast.LENGTH_S..
[자바] 경고창, 확인창 띄우기 1. 단순 확인창 JOptionPane.showMessageDialog(frame, "Eggs are not supposed to be green."); 2. 예, 아니오, 취소 창 //Custom button text Object[] options = {"Yes, please", "No, thanks", "No eggs, no ham!"}; int n = JOptionPane.showOptionDialog(frame, "Would you like some green eggs to go " + "with that ham?", "A Silly Question", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE,..
[자바] 랜덤 숫자 생성하기 자바에서는 기본적으로 랜덤 숫자를 생성하는 2가지 방법이 있다.double Math.random()java.util.Random class : 그냥 간단하게 랜덤 숫자를 만들때에는 위의 Math.random()을 사용하면 좋지만, 함수 정의를 보면 알겠지만 synchronized를 이용한다. 멀티쓰레드 프로그램을 이용한다면 Math.random()을 자주 이용한다면 성능에 영향을 미칠수 밖에 없을 것이다.: Math.random()은 0 ~ 1 사이의 double을 랜덤으로 생성한다. 범위에 맞게 수정해서 사용하면 된다.double java.lang.Math.random() public static synchronized double random ()Since: API Lev..
[안드로이드] 안드로이드 이전 버전도 호환가능한 액션바 만들기 이전에 올렸던 안드로이드 인터페이스 디자인 패턴 영상에(참고: [Android] UI Design patterns) 나왔던 액션 바 (Action Bar)를 만드는 방법에 대해서 알아보자. - 참고: 액션 바(ActionBar)는 안드로이드 SDK 3.0 (HoneyComb) 이후 추가되어 보다 쉽게 사용이 가능하다. 하지만 3.0 이전 버전에서는 ActionBar가 존재하지 않는다. 하지만 그 이전의 안드로이드 버전에 호환이 불가능하기 때문에 무턱대고 사용했다간 호환성문제에 부딪칠 것이다. 따라서 안드로이드 개발자 사이트에서는 호환가능한 예제를 제공해주어서 이 문제를 해결하도록 도와주고 있다.(참고: http://developer.andro..
- Total
- Today
- Yesterday
- 강좌
- google app engine
- lecture
- 서울
- 자바스크립트
- 속깊은 자바스크립트 강좌
- java
- 사진
- gae
- K100D
- 뽐뿌
- 팁
- GX-10
- c++
- Writing
- gre
- 안드로이드
- Android
- Javascript
- 안드로이드 앱 개발 기초
- Python
- HTML5
- TIP
- 삼식이
- ny-school
- 샷
- 탐론 17-50
- HTML5 튜토리얼
- php
- mini project
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |