터널

 - 한 사람의 욕심때문에 다른사람이 고통 받는다.

인간의 욕심으로인한 결과가 결국 인간에게 돌아온다는것을 모르는 사람이 있을까?

터널시공자의 욕심때문에 자동차 딜러가 피해를 입었고, 다음주에 신입사원 MT가있던 신입사원이 죽었다

하지만 터널시공자만의 잘못일까

우리가 살고있는 사회

경쟁이 치열한 세상

그 사람이 배운 교육환경

자라온 생활환경

만난 사람들등 이러한 환경이 그 한사람을 만들었다.

그렇다면 이러한 환경은 누가 만들었을까?

그 사람이 혼자 스스로 만들었을까?

아니다. 그러한 환경과 사회는 어떤 사람들의 욕심으로 인해 만들어 진것이다

한 사람의 욕심과 또 한 사람의 욕심과 또 다른 한사람의 욕심으로인해

경쟁주의가 생기고, 물질만능주의가 생기고, 환경오염이 생기고... 여러가지 인간에게 악한것들이 생겼다.

이러한 환경속에서 터널 시공자가 태어났으며 이 시공자 또한 같은 실수를 반복한다

어떻게보면 눈에 띄게 표가 나지않아서 그렇지만 이 시공자도 한사람의 피해자이다. 

자동차 딜러와, 신입사원은 시공자보다 조금더 큰 피해를 본것일뿐이다.

우리도 피해를 받고있으며, 남에게 피해를 주고있다. 우리의 이기적인생각과, 탐욕적인 마음때문에

또한 우리의 그런 생활이 쌓이다보면 결국 우리도 알게 모르게 누군가에게 엄청난 피해를 줄수도있다.

그런 사실을 잊지말자.

여기서 중요한것은 터널시공자와 우리는 같은 사람이고, 같은 생각을 가지고있고, 같은 사회에서 자랐다.

터널은 이런 사례를 단적으로 보여주는 예일 뿐이다.

자 그럼이제 선택을 해보자.

이를 통해서 우리는 막무가내로 우리사회를 이렇게 만든 리더들 욕만하고 있을것인가.

아니면 우리가 저지른 탐욕적인 생활, 이기적인 생활을 되돌아 보면서우리부터 올바른 삶을 살기위해서

노력할것인가.

하지만 이를 위해서는 우리가 사는 세상에서 불리우는 이익, 이득을 가지게 되는 것과는 많이 멀어진 삶을 살게 될것이다. 

또한 많은 것을 포기하며 살게될것이며, 내가 그렇게 산다고해서 세상이 바로 바뀌는 것은 아니다.

엄청난 시간이 소요될것이다. 하지만 원인이 있다면 결과는 반드시 있다. 터널시공자의 욕심이 그랬듯이...

또한 한가지 더 잊지말자. 한 사람의 의인이 세상을 바꾸고, 모두를 변화시킨다는 것을.


'Think' 카테고리의 다른 글

공학이란?  (0) 2016.08.31
참을수 없는 교회의 가벼움이라...  (0) 2016.08.28
새로운 아이디어! - 추가  (0) 2016.08.27
에듀테크...  (0) 2016.08.27
새로운 아이디어!  (0) 2016.08.26

Only For Study(가제)

 

요약(Summary)

교실에 들어가면 자동으로 카톡, 인터넷 등이 차단되는 어플리케이션

- 데이터는 연결되지만 어플리케이션이 실행이 안됨

 

 

목적(Propose)

스마트폰을 교육적인 용도로 사용하기 위한 방법

교실 안에서는 스마트폰이 유흥의 용도가 아닌 교육의 용도로 사용되게 하기 위해서

학교에서는 옛날부터 조례시간에 핸드폰을 제출하고 종례시간에 다시 받는다. 그 과정에서 생기는 비효율적인 시간과, 핸드폰 파손 여부 또한 불분명하다.

에듀테크 시장이 성장하기 시작했는데, 이를 시작하기 위해서는 스마트폰을 오직 교육의 용도로만 사용해야한다. 적어도 교실에서와 수업시간에만 이라도.

이 서비스로 누가 로그인을 했는지 안했는지도 알수있어서, 간단한 출석체크도 가능하다.

 

 

방법(Method)

(비콘 과) 시간(수업시간, 쉬는 시간 제외) 활용해서 위 스마트폰 어플리케이션과 통신하여, 특정 어플의 실행을 막아주게 함.

http통신을 사용하여 교사가 금지한 어플리케이션을 실행하지 못하게 함. 실행 시 교사에게 별도의 알람이 가지 않고 자체적으로 메시지 표시 후에 종료

실행 못하게 하는 방법 - 어플리케이션 종료(return HOME)pop-up message띄우기

상단바에 계속 띄워놓기 (push알람 받는 곳에) 거기서 조작을 할 수 있게 만드는거지

 

문제점(Problems)

1. 어플 실행할 때 어떤 방법으로 차단할까??

특정 어플리케이션의 액티비티가 띄어지지 않게 하면 되겠네 -> 패키지명으로 검색하여 차단 (ex. com.kakao.talk)

 

2. 그러면 각 학생의 스마트폰에 있는 패키지 명을 어떻게 알 수 있을까?

학생마다 깔려있는 어플리케이션이 모두 다를텐데?

3. 각각 따로 다 통제해야 하나? -> Top10을 뽑는건 너무 바보같은 짓이야.

-> 지정한 어플리케이션을 막을 수는 없다면....? 아니면 교사가 허용한 어플리케이션 외에 모든 어플리케이션을 막는 방법???

교사가 허용한 어플리케이션이라면.. 학교에서 허용한 교육용 어플리케이션?(스마트 알림장 등)

 

4. 담임이 계속 교실에 있지 않은 중고등학교의경우에는???

-> 교실마다 전담 디바이스가 존재? 개인스마트폰이 아니라 교실 전용스마트폰인거지 그거를 선생님만 사용 할 수 있는 거지

 

 

조건 - 진솔이와 대화 후

장소를 기반으로 하는 것은 좋지 않은 것 같다. 학교마다 설치해야하고, 장소의 범위도 따로 지정해야한다. 부패하기도 쉬우며, 하드웨어의 유지보수도 어렵다. 그러므로 소프트웨어 측에서 끝낼 수 있게 만들어 보자.

교사마다 개별적인 제어가 가능하게, 조작이 간편하게 구현

 

디자인(Design)

액티비티 : 메뉴바

프래그먼트: Main(어플리케이션 차단, 해제 버튼) / 현재 접속 중인 학생화면 / 차단 앱 차단 시간(학교별로 시작시간과 마치는 시간이 동일하므로 따로 설정 하지 않아도 됨 , 초 중 고 별로 따로 만들기) / 사용자 정보 / 로그아웃

알림바 : 없어지지않고 계속 존재하면서 정보 넘겨주기

'Think' 카테고리의 다른 글

참을수 없는 교회의 가벼움이라...  (0) 2016.08.28
터널  (0) 2016.08.28
에듀테크...  (0) 2016.08.27
새로운 아이디어!  (0) 2016.08.26
여름방학 프로젝트를 하고나서...  (0) 2016.08.25

교육을 도와주는 어플리케이션

안그래도 이런 분야에 관심이 있었는데

에듀테크라는 이름으로 시장이 생긴지 얼마 안되었다

그래서 관심있게 지켜보고있는데

어떨까?

교육 + IT 이며 거기에다가 소프트웨어 산업이다

나에게는 더할나위없이 좋은 시장이다.

이 시장에 뛰어 들기위해서는

두가지 선택지가 있다.

1. 창업

2. 취직

아직 정하지 못하겠다

내가 창업에 자신이 있나? 할수있을까?

근데 하고싶다... 해보고싶다. 다른 회사들과 협업해서 교육기자재시장을 이끌어 나가보고싶다.

창업을 하려면 돈돈돈인데...하... 글쎄...

여러 가지 생각이 공존하는 오늘밤


'Think' 카테고리의 다른 글

참을수 없는 교회의 가벼움이라...  (0) 2016.08.28
터널  (0) 2016.08.28
새로운 아이디어! - 추가  (0) 2016.08.27
새로운 아이디어!  (0) 2016.08.26
여름방학 프로젝트를 하고나서...  (0) 2016.08.25

JSON이란, Javascript Object Notaion의 약자로써, 자바스크립트 객체 표기법을 뜻하며

쉽게 생각하면 그냥 데이터 표현 방법이다. JSON은 실무에서도 굉장히 많이 쓰이니 꼭 알아 놓도록하자.

JSON의 구조는 크게 2가지인데, JSONObject와 JSONArray이다. 순서대로 알아보도록하다.


1. JSONObject

구조 : {"name", "shin", "age": 24}

사용방법 :

JSONObject jObj = new JSONObject;

jObj.put("name": "shin");

jObj.put("age": "24");


String input = jObj.toString();

input값 :  {"name", "shin", "age": 24}


String data = jObj.get("name");

get값 : shin


2. JSONArray

구조 : [{"name":"shin"},{"name":"kang"}]

사용방법 : 

String data = "[{\"Product\" : \"Mouse\", \"Maker\":\"Samsung\", \"Price\":23000},"
               + "{\"Product\" : \"KeyBoard\", \"Maker\":\"LG\", \"Price\":12000},"
               + "{\"Product\":\"HDD\", \"Maker\":\"Western Digital\", \"Price\":156000}]";
try{
   String result = "";
   JSONArray jArray = new JSONArray(data);
   for (int i = 0; i < jArray.length(); i++){
      JSONObject jObj = jArray.getJSONObject(i);
      result += "product: " + jObj.getString("Product") + ", maker: " + jObj.getString("Maker") +
                  ", price: " + jObj.getInt("Price") + "\n";
   }
}catch (JSONException e){ }

결과값 :  result : product: Mouse, maker: Samsung, price: 23000
product: KeyBoard, maker: LG, price: 12000
product: HDD, maker: Western Digital, price: 156000
출처 : http://biig.tistory.com/52



JSONObject 안에 Array를 넣어서 사용할수도 있다.

"jObj":{
"name" : "me",
"entuty":[
{"name":"shin"},
{"name":"kang"},
{"name":"choi"}
]
}


'Programming > Android' 카테고리의 다른 글

manifest  (0) 2016.09.02
notification 고정시키기  (1) 2016.08.28
AsyncTask  (0) 2016.08.26
AccessibilityService  (0) 2016.08.26
Intent와 Intent Filter  (0) 2016.08.26

Node.js에서는 데이터 형식으로 JSON을 사용한다. 자바스크립트 객체를 직렬화하여 클라이언트에서 서버로 전달하거나 프로세스에서 프로세스로 전달, 스트림에서 스트림으로 전달, 데이터베이스에 저장시에도 사용된다. 자바스크립트 객체를 직렬화하는 일에 XML보다 JSON이 사용되는 이유는 다음과 같다.

– JSON이 XML보다 객체를 직렬화거나 역직렬화 할때 필요한 문자수가 적다.
– JSON을 직렬화하거나 역직렬화하는 것이 XML로 똑같은 작업을 하는것보다 빠른다.

 

[1] JSON을 자바스크립트 객체로 변환

JSON.parse(string)을 사용하여 자바스크립트 객체로 변환한다.

var accountStr = ‘{ “name”:”John”, “members”:[“Sam”, “Smith”], “number”:12345, “location”:”Seoul”}’;
var accountObj = JSON.parse(accountStr);
console.log(accountObj.name);
console.log(accountObj.members);

 

[2] 자바스크립트 객체를 JSON으로 변환

Node.js는 자바스크립트 객체를 JSON포맷으로 변환할 수 있다. 이를 이용해 문자열 형태 자료를 파일이나 데이터 베이스에 저장하거나 HTTP연결을 사용해 전송, 스트림이나 버퍼에 쓰기 등을 할수 있다. JSON.stringify(object)함수를 사용해 자바스크립트 객체를 파싱해 JSON 문자열을 만들 수 있다.

var accountObj = {
“name”:”John”,
“members”:[“Sam”, “Smith”],
“number”:12345,
“location”:”Seoul”
}
var accountStr = JSON.stringify(accountObj);
console.log(accountStr);


출처 : http://aljjabaegi.tistory.com/40

'Programming > Node.JS' 카테고리의 다른 글

Event개념 이해  (0) 2016.09.03
기본 내장 모듈  (0) 2016.09.03
전역 객체에 대하여  (0) 2016.09.03
node.js 특징  (0) 2016.09.03
Nodejs로 serial통신하기  (0) 2016.08.25
Android는 Java로 되어 있어 Java에서 제공하는 기능을 사용하여 Thread를 구현할 수 있습니다. 그러나, 안드로이드 화면의 각 요소(View)에 정보를 표시한다든지 하는 UI와 관련된 작업을 하는 경우에는 여러가지 제약 사항이 따릅니다.

Google에서는 AsyncTask라는 것을 제공하여 Android에서 UI 작업과 관련된 Thread의 구현을 손쉽게 할 수 있도록 지원 합니다
 
 

  Thread with AsyncTask

UI Thread를 구현하기 위해서는 해당 Thread가 Activity에서 구현이 되어야 하며, 주고 받는 인자들의 타입이 일치 하여야 합니다. 아래 설명에서는 서로 일치해야 하는 인자들의 경우에는 동일한 색으로 표시를 해서 구분 합니다.

* AsyncTask 호출 구현
private Activity activity = null;

activity = this;
(new theAsyncThread()).execute(para1para2para3);


*AsyncTask 구현
private class theAsyncThread extends AsyncTask<StringStringString> {
    //--- Thread를 시작하기 전에 호출되는 함수
    protected void onPreExecute() {
        if ((activity != null) && (activity.isFinishing() == false)) {
            Toast.makeText(activity, "Before thread", Toast.LENGTH_SHORT).show();
        }
        super.onPreExecute();
    }

    //--- Thread의 주요 작업을 처리 하는 함수
    //--- Thread를 실행하기 위해 excute(~)에서 전달한 값을 인자로 받습니다.
    protected String doInBackground(String... arg) {
        int argCnt = 0;
        
        argCnt = arg.length;
        if (argCnt != 3) {
            return "Error";
        }
        
        //--- onProgressUpdate(~) 실행하기 위해서는 아래 함수를 호출 합니다.
        publishProgress("Thread processing.");
        return "OK";
    }

    //--- doInBackground(~)에서 호출되어 주로 UI 관련 작업을 하는 함수
    protected void onProgressUpdate(String... progress) {
        if ((activity != null) && (activity.isFinishing() == false)) {
            Toast.makeText(activity, progress[0], Toast.LENGTH_SHORT).show();
        }
    }

    //--- Thread를 처리한 후에 호출되는 함수
    //--- doInBackground(~)의 리턴값을 인자로 받습니다.
    protected void onPostExecute(String result) {
        if ((activity != null) && (activity.isFinishing() == false)) {
            Toast.makeText(activity, "After thread", Toast.LENGTH_SHORT).show();
        }
        super.onPostExecute(result);
    }

    //--- AsyncTask.cancel(true) 호출시 실행되어 thread를 취소 합니다.
    protected void onCancelled() {
        super.onCancelled();
    }      
}    


출처 : http://cuteelfluv.cafe24.com/xe/index.php?mid=etc&page=4&document_srl=5803

'Programming > Android' 카테고리의 다른 글

notification 고정시키기  (1) 2016.08.28
JSONobject 과 JSONarray  (0) 2016.08.27
AccessibilityService  (0) 2016.08.26
Intent와 Intent Filter  (0) 2016.08.26
어플 패키지명  (0) 2016.08.25

Only For Study(가제)

 

요약(Summary)

교실에 들어가면 자동으로 카톡, 인터넷 등이 차단되는 어플리케이션

- 데이터는 연결되지만 어플리케이션이 실행이 안됨

 

목적(Propose)

스마트폰을 교육적인 용도로 사용하기 위한 방법

교실 안에서는 스마트폰이 유흥의 용도가 아닌 교육의 용도로 사용되게 하기 위해서

학교에서는 옛날부터 조례시간에 핸드폰을 제출하고 종례시간에 다시 받는다. 그 과정에서 생기는 비효율적인 시간과, 핸드폰 파손 여부 또한 불분명하다.

에듀테크 시장이 성장하기 시작했는데, 이를 시작하기 위해서는 스마트폰을 오직 교육의 용도로만 사용해야한다. 적어도 교실에서와 수업시간에만 이라도.

이 서비스로 간단한 출석체크도 가능하다.

 

 

방법(Method)

(비콘 과) 시간(수업시간, 쉬는시간 제외) 활용해서 위 스마트폰 어플리케이션과 통신하여, 특정 어플의 실행을 막아주게함.

http통신을 사용하여 교사가 금지한 어플리케이션을 실행하지 못하게 함. 실행 시 교사에게 별도의 알람이 가지 않고 자체적으로 메시지 표시 후에 종료

실행 못하게 하는 방법 - 어플리케이션 종료(return HOME)pop-up message띄우기

 

문제점(Problems)

1. 어플 실행할 때 어떤 방법으로 차단할까??

특정 어플리케이션의 액티비티가 띄어지지 않게 하면 되겠네 -> 패키지명으로 검색하여 차단 (ex. com.kakao.talk)

 

2. 그러면 각 학생의 스마트폰에 있는 패키지 명을 어떻게 알 수 있을까?

        학생마다 깔려있는 어플리케이션이 모두 다를텐데?

3. 각각 따로 다 통제해야 하나? -> Top10을 뽑는건 너무 바보같은 짓이야.

 

-> 지정한 어플리케이션을 막을 수는 없다면....? 아니면 교사가 허용한 어플리케이션 외에 모든 어플리케이션을 막는 방법???

교사가 허용한 어플리케이션이라면.. 학교에서 허용한 교육용 어플리케이션?(스마트 알림장 등)

 

조건 - 진솔이와 대화 후

장소를 기반으로 하는 것은 좋지 않은 것 같다. 학교마다 설치해야하고, 장소의 범위도 따로 지정해야한다. 부패하기도 쉬우며, 하드웨어의 유지보수도 어렵다. 그러므로 소프트웨어 측에서 끝낼 수 있게 만들어 보자.

교사마다 개별적인 제어가 가능하게, 조작이 간편하게 구현

'Think' 카테고리의 다른 글

참을수 없는 교회의 가벼움이라...  (0) 2016.08.28
터널  (0) 2016.08.28
새로운 아이디어! - 추가  (0) 2016.08.27
에듀테크...  (0) 2016.08.27
여름방학 프로젝트를 하고나서...  (0) 2016.08.25
화면이 변경되었을때 해당 package가 아니면 /*실행*/부분을 실행하는 예제


1
2
3
4
5
6
7
8
9
10
11
12
13
public class WindowDetecter extends AccessibilityService 
{
 
 @Override
 public void onAccessibilityEvent(AccessibilityEvent event) {
  if (event.getEventType() == AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED){
   Log.d(TAG, "Package is " + event.getPackageName());
   if!"패키지명".equals(event.getPackageName())){
      /*실행*/
   }
  }
 }
}
cs


AccessibilityService.class란, 접근성에 관련된 클래스이다.

TYPE_WINDOW_STATE_CHANGED

Added in API level 4
int TYPE_WINDOW_STATE_CHANGED

Represents the event of opening a PopupWindowMenuDialog, etc.

팝업윈도우나, 메뉴, 다이얼로그같이 현재 열려있는 이벤트에 대한 상수

Constant Value: 32 (0x00000020)


getEventType

Added in API level 4
int getEventType ()

Gets the event type.

이벤트 타입을 얻는다.

Returns
intThe event type.


출처 : https://developer.android.com/reference/android/view/accessibility/AccessibilityEvent.html

'Programming > Android' 카테고리의 다른 글

JSONobject 과 JSONarray  (0) 2016.08.27
AsyncTask  (0) 2016.08.26
Intent와 Intent Filter  (0) 2016.08.26
어플 패키지명  (0) 2016.08.25
ProgressDialog 와 Toast  (0) 2016.08.25

+ Recent posts