2017년 1월 6일 금요일

[English]Day3


You'll be getting a bonus and free merchandise from the company :
당신은 회사로부터 보너스와 상품을 받게 될거에요.
ex)
A : I overheard Mrs.D giving R some good news.
B : And what news is that, Ms.A?
A : You'll be getting a bonus and free merchandise from the company.
B : That's great news!

overheard : 우연히 듣다.

disseminate 퍼뜨리다 
mainstream 주류 
subjective 주관적인 
supplemental 추가, 보충되는 


stimulate 자극하다 
ethics 윤리 
acceptable 받아들여지는 
credentials 자격


2017년 1월 5일 목요일

[Hadoop] jps 명령어에 datanode 가 안보일 시


/hadoop/logs/ 에서 데이터노드의 로그를 보면 "all directories in dfs.datanode.data.dir are invalid"라고 써있다.
해결책은 /dfs/data 를 chmod로 755로 바꾸면 된다.

또 데이터노드 아이디가 맞지 않는다고 나올 때도 있는데(영어로) 이때는 /dfs/data 파일을 지웠다가 다시 생성해준다. 하둡 실행 중에 namenode초기화를 해서 id가 중복되었던 것 같다.

[Hadoop]'jps' 명령어가 안 먹을 때


hduser @ hduser : ~ / hadoop-1.2.1 $ jps 
The program 'jps' can be found in the following packages:
 * openjdk-7-jdk
 * openjdk-6-jdk 


위와 같이 Namenode와 트랙커를 보지 못할 때


해결책 : 
아래의 .bashrc 파일에서 PATH 변수를 설정합니다. 

1) vi .bashrc 
2) export PATH = $ PATH : $ JAVA_HOME / bin 
3) source  .bashrc 

[English]Day2


Circumstance : 주위의 상황, 환경
ex)Extenuating circumstance : 피지못할 사정

Exclusive : 독점적인, 배타적인
ex)Our newspaper has exclusive access to the president, so you won't find this interview elsewhere.

elsewhere : 다른 곳에서


Looks like our online advertisements are paying off :
우리 온라인 광고가 기대했던 성과를 내고 있는 것처럼 보여요
ex)
A : Looks like our online advertisements are paying off
B : Yes, the company's orders have increased by ten percent in the first month alone when we started the banner ads.
A : That was a good suggestion. I should have implemented if earlier. I'll give my ears open next time you want to give me advices.
B : Thanks. 

pay off : 지불하다, 성과를 거두다 
implement : 시행하다 
percussive 쳐서 소리를 나게 하는 
notion 개념, 관념 
cash cow 고수익을 내는 상품 
gig 공연 
dominate 지배하다, 군림하다



2017년 1월 4일 수요일

[Algorithm]합병 정렬(Merge Sort)



합병정렬은 정렬을 
분할 : 배열을 반으로 분할한다.
정복 : 분할한 배열을 정렬한다.
합병 : 분할된 정렬들을 합쳐서 정렬한다.
순으로 진행된다.



위의 그림을 참조한다.



위 그림처럼 각각의 두 배열을 정렬하는 것(정복)은 Recursion으로 풀어볼 수 있다.
그리고 합병을 할 때 원래 배열과 같은 크기의 임시배열을 필요로 한다.

i, j, k변수로 배열을 증가를 나타내어 변수가 배열을 끝을 나타내면 불필요한 연산을 막을 수 있다. 
위 그림의 동작순서를 설명하면 arri[i] 와 arrj[j]를 비교하여 A가 H보다 작으니 추가배열 첫번째 요소에 넣고 i를 증가시킨다. 다음으로 G가 H보다 작으니, 다시 i를 증가 추가배열에 넣는다. 다시 L과 H를 비교, H가 작으니 추가배열에 요소를 넣고 요소가 추가 될 때마다 k를 증가시킴으로 정렬된 배열을 모두 합병한다. 



위와 같이 분할은 재귀로, p r은 배열 첫과 끝으로 변수를 둔다.



merge함수이다. 첫번째 while문은 합병정렬을 하며, 두번째 세번째는 while문은 i or j가 배열끝에 이르렀을 때 실행된다. 즉 두번째 세번째 반복문은 둘 중 하나만 실행되는 것이다.



시간 복잡도이다. 풀어보자면 배열요소의 수가 n일 때 n log2 n의 식이 된다.



아래는 코드다.

import java.util.*;

public class Test {
static void Merge(int data[], int p, int q, int r){
int i=p, j=q+1, k=p;
int[] tmp = new int[data.length];
while(i<=q && j<=r){
if(data[i]<=data[j])
tmp[k++]=data[i++];
else
tmp[k++]=data[j++];
}
while(i<=q)
tmp[k++]=data[i++];
while(j<=r)
tmp[k++]=data[j++];
for(i=p; i<=r; i++)
data[i]=tmp[i];
}
static void mergeSort(int A[], int p, int r){
if(p<r){
int q=(p+r)/2;
mergeSort(A,p,q);
mergeSort(A,q+1,r);
Merge(A,p,q,r);
}
}

public static void main(String[] args){
int[] A = {2, 5, 4, 9, 6, 3, 8, 0, 1, 7};
mergeSort(A,0,9);
for(int i=0;i<10; i++)
System.out.println(A[i]);
}
}


2017년 1월 2일 월요일

[English]Day1


Indignant : 열받은, 화난
ex)
The man became indignant when he found out that his secretary threw away important papers he needed for meeting.
그 남자는 비서가 회의에 필요한 중요한 서류를 버린 것을 알고 화가 많이 났다.


Ponder : 곰곰히 생각하다(철학적인 문제를)
ex)
Kevin often ponders whether true love exists.
케인은 가끔 진실한 사랑이 존재하는지 곰곰히 생각해본다.


The caterer we used last year was excellent : 
지난해 우리가 고용한 주문요리사가 정말 좋았어요.
ex)
A : The caterer we used last year was excellent.
B : Are you saying the food isn't your liking?
A : The meal we had last year was certainly much better.
B : I don't think the food isn't so bad.

cer·tain·ly[|s3:rtnli] 발음부사 틀림없이, 분명히congratulatory 축하의deemed ~로여기다dismayed 경악, 경악하게 만들다recognized 인정된 알려진 diplomatic  외교의prompting 설득 prompt 즉각적인 

rec

[Python] IndentationError, NotImplementedError 예외처리


1. IndentationError
 Tab, Enter와 같은 코드상에 공백이 있을 경우 생기는 에러


2.  NotImplementedError
 NotImplementedError는 파이썬 내장 오류로, 꼭 작성해야 하는 부분이 구현되지 않았을 경우 일부러 오류를 발생시키고자 사용한다.

class Bird: def fly(self): raise NotImplementedError

위의 코드는 Bird클래스를 상속하는 자식클래스들이 무조건 fly함수를 오버라이딩하게 할 때 사용한다.
위와 같이 일부러 Error를 발생시키기도 한다.