.bash_profile에 다음을 추가한다.


set -o vi


vi 대신 emac를 사용할 수 있다.



$source ~/.bash_profile



vi 쓰듯이 편집기를 사용할 수 있다. 




Esc를 누르면 커맨드 모드로 입력된다 .h와 l, w, b, 0, ^, $ 기본적인 커맨드를 사용해 커서를 움직일 수 있고

위 아래인 j, k는 커맨드 히스토리를 최근부터 찾는다. 

/를 누르면 커맨드 히스토리에서 검색할 수 있다.



커맨드

의미

h

왼쪽으로 한 글자씩 이동한다.

l

오른쪽으로 한 글자씩 이동한다.

b

왼쪽으로 한 단어씩 이동한다.

w

오른쪽으로 한 단어씩 이동한다.

o

라인의 시작으로 이동한다.

$

라인의 끝으로 이동한다.

x

커서의 글자를 삭제한다.

dw

커서의 단어를 삭제한다.

rc

커서의 글자를 c로 변경한다.

a

입력 모드로 진입해 현재 글자 뒤에 글자를 추가한다.

i

입력 모드로 진입해 현재 글자 앞에 글자를 추가한다.

k

커맨드 히스토리에서 이전 커맨드를 얻는다.

j

커맨드 히스토리에서 이후 커맨드를 얻는다.

/string

커맨드 히스토리에서 string을 포함한 가장 최근에 실행한 커맨드를 찾는다. string이 null이면 바로 이전에 실행한 커맨드를 얻는다.



set -o vi를 하지 않으면 디폴트로 emac를 라인 편집기로 사용한다.



커맨드

의미

Ctrl+b

왼쪽으로 한 글자씩 이동한다.

Ctrl+f

오른쪽으로 한 글자씩 이동한다.

Esc f

왼쪽으로 한 단어씩 이동한다.

Esc b

오른쪽으로 한 단어씩 이동한다.

Ctrl+a

라인의 시작으로 이동한다.

Ctrl+e

라인의 끝으로 이동한다.

Esc d

커서의 글자를 삭제한다.

erase char

커서의 단어를 삭제한다.

Ctrl+p

커맨드 히스토리에서 이전 커맨드를 얻는다.

Ctrl+n

커맨드 히스토리에서 이후 커맨드를 얻는다.

Ctrl+r string

커맨드 히스토리에서 string을 포함한 가장 최근에 실행한 커맨드를 찾는다.


Posted by '김용환'
,



카프카 서버는 파티셔닝 키를 주어지지 않더라도 키를 기반으로 분산처리되도록 되어 있다. 



https://cwiki.apache.org/confluence/display/KAFKA/FAQ

Why is data not evenly distributed among partitions when a partitioning key is not specified?

In Kafka producer, a partition key can be specified to indicate the destination partition of the message. By default, a hashing-based partitioner is used to determine the partition id given the key, and people can use customized partitioners also.





그러나, 언어별 클라이언트에 따라서는 key 값을 잘 선택을 못한다면 이상 징후가 발생할 수 있다. 


scala의 경우 DefaultPartitioner는 다음과 같은 코드로 되어 있다. 



import kafka.utils._

import org.apache.kafka.common.utils.Utils

@deprecated("This class has been deprecated and will be removed in a future release. " +

            "It has been replaced by org.apache.kafka.clients.producer.internals.DefaultPartitioner.", "0.10.0.0")

class DefaultPartitioner(props: VerifiableProperties = null) extends Partitioner {

  private val random = new java.util.Random

  

  def partition(key: Any, numPartitions: Int): Int = {

    Utils.abs(key.hashCode) % numPartitions

  }

}



scala의 kafka.producer.KeyedMessage를 살펴보면, key없이 KeyedMessage를 생성하면 key와 partKey는 null이 된다. 

case class KeyedMessage[K, V](val topic: String, val key: K, val partKey: Any, val message: V) {
if(topic == null)
throw new IllegalArgumentException("Topic cannot be null.")

def this(topic: String, message: V) = this(topic, null.asInstanceOf[K], null, message)

def this(topic: String, key: K, message: V) = this(topic, key, key, message)

def partitionKey = {
if(partKey != null)
partKey
else if(hasKey)
key
else
null
}

def hasKey = key != null
}


결국 null 이 되어 같은 위치만 계속 파게 된다. 


이 클래스는 0.10.x까지 사용되고 0.11.0에서는 사라진다고 한다.. 


Posted by '김용환'
,

출처 : http://www.clien.net/cs2/bbs/board.php?bo_table=park&wr_id=53020512&page=3


살다 보면 꼭 한번은 재수가 좋든지 나쁘든지 천재를 만나게 된다. 대다수 우리들은 이 천재와 경쟁하다가 상처투성이가 되든지, 아니면 자신의 길을 포기하게 된다. 그리고 평생 주눅 들어 살든지, 아니면 자신의 취미나 재능과는 상관없는 직업을 가지고 평생 못 가본 길에 대해서 동경하며 산다.

 

이처럼 자신의 분야에서 추월할 수 없는 천재를 만난다는 것은 끔찍하고 잔인한 일이다. 어릴 때 동네에서 그림에 대한 신동이 되고, 학교에서 만화에 대한 재능을 인정받아 만화계에 입문해서 동료들을 만났을 때, 내 재능은 도토리 키 재기라는 것을 알았다. 그 중에 한두 명의 천재를 만났다. 나는 불면증에 시달릴 정도로 매일매일 날밤을 새우다시피 그림을 그리며 살았다. 내 작업실은 이층 다락방이었고 매일 두부장수 아저씨의 종소리가 들리면 남들이 잠자는 시간만큼 나는 더 살았다는 만족감으로 그제서야 쌓인 원고지를 안고 잠들곤 했다. 그러나 그 친구는 한달 내내 술만 마시고 있다가도 며칠 휘갈겨서 가져오는 원고로 내 원고를 휴지로 만들어 버렸다. 나는 타고난 재능에 대해 원망도 해보고 이를 악물고 그 친구와 경쟁도 해 봤지만 시간이 갈수록 내 상처만 커져갔다. 만화에 대한 흥미가 없어지고 작가가 된다는 생각은 점점 멀어졌다. 내게도 주눅이 들고 상처 입은 마음으로 현실과 타협해서 사회로 나가야 될 시간이 왔다. 그러나 나는 만화에 미쳐 있었다.

 

새 학기가 열리면 이 천재들과 싸워서 이기는 방법을 학생들에게 꼭 강의한다. 그것은 천재들과 절대로 정면승부를 하지 말라는 것이다. 천재를 만나면 먼저 보내주는 것이 상책이다. 그러면 상처 입을 필요가 없다. 작가의 길은 장거리 마라톤이지 단거리 승부가 아니다. 천재들은 항상 먼저 가기 마련이고, 먼저 가서 뒤돌아보면 세상살이가 시시한 법이고, 그리고 어느 날 신의 벽을 만나 버린다. 인간이 절대로 넘을 수 없는 신의 벽을 만나면 천재는 좌절하고 방황하고 스스로를 파괴한다. 그리고 종내는 할 일을 잃고 멈춰서 버린다. 이처럼 천재를 먼저 보내놓고 10년이든 20년이든 자신이 할 수 있다는 생각으로 하루하루를 꾸준히 걷다 보면 어느 날 멈춰버린 그 천재를 추월해서 지나가는 자신을 보게 된다.

 

산다는 것은 긴긴 세월에 걸쳐 하는 장거리 승부이지 절대로 단거리 승부가 아니다. 만화를 지망하는 학생들은 그림을 잘 그리고 싶어한다. 그렇다면 매일매일 스케치북을 들고 10장의 크로키를 하면 된다. 1년이면 3500장을 그리게 되고 10년이면 3만 5000장의 포즈를 잡게 된다. 그 속에는 온갖 인간의 자세와 패션과 풍경이 있다. 한마디로 이 세상에서 그려보지 않은 것은 거의 없는 것이다. 거기에다 좋은 글도 쓰고 싶다면, 매일매일 일기를 쓰고 메모를 하면 된다. 가장 정직하게 내면 세계를 파고 들어가는 설득력과 온갖 상상의 아이디어와 줄거리를 갖게 된다. 자신만이 경험한 가장 진솔한 이야기는 모두에게 감동을 준다. 만화가 이두호 선생은 항상 “만화는 엉덩이로 그린다.”라고 후배들에게 조언한다. 이 말은 언제나 내게 감동을 준다. 평생을 작가로서 생활하려면 지치지 않는 집중력과 지구력보다 더 중요한 것은 없다.

 

가끔 지구력 있는 천재도 있다. 그런 천재는 존재하는 것만으로도 축복이고 보는 것만으로도 감사하다. 그런 천재들은 너무나 많은 즐거움과 혜택을 우리에게 주고 우리들의 갈 길을 제시해 준다. 나는 그런 천재들과 동시대를 산다는 것만 해도 가슴 벅차게 행복하다. 나 같은 사람은 그저 잠들기 전에 한 장의 그림만 더 그리면 된다. 해 지기 전에 딱 한 걸음만 더 걷다 보면 어느 날 내 자신이 바라던 모습과 만나게 될 것이다. 그것이 정상이든, 산중턱이든 내가 원하는 것은 내가 바라던 만큼만 있으면 되는 것이다.

 

 

"실패가 두렵지 않은 이는 없어요. 하지만 실패가 곧 패배여서는 안 되요. 젊었을 때는 여유가 없어서 속도를 내 달리지만, 지쳐서 몇 번 멈춰보면 여유있게 걷는 법을 알게 돼요. 한 걸음씩 천천히 걷다 보면 결국엔 원하는 지점에 갈 수 있어요. 다른 방법은 없어요. 천천히 집중하면서 자신의 의지를 향해 걸어가야 해요. 누구에게나 기회는 찾아와요. 또 성공 뒤에는 위기가 있기 마련이에요. 이 위기를 극복하는 길은 결국 처음부터 천천히 다시 시작하는 것뿐이에요. 오만해서도 흥분해서도 안되죠. 위기라는 것은 서둔다고 해서 빠져나올 수 있는 것이 아니니까요."

 

 

내가 진실로 원하는 것은 무엇인가? 그것은 내면에서 나오는 것이다. 성취의 여부는 당신이 얼마나 집중할 수 있는가 이다. 왜냐하면 당신이 생각하는 방식이 바로 당신을 방해하기도, 성공시키기도 하는 것이기 때문이다.

 

1) 내가 원하는 이미지를 그려보자. 그것을 완벽하게, 아름답게, 우아하게 하는지 상상해보자. 완벽하게 자신감을 가지고 하는 모습을 점점 더 확실하게 상상할 수 있을 만큼 더 목표에 다가서게 될 것이다.

 

 

2) 집중할 시간을 정하자. 그 시간을 정해놓고 그 시간만큼은 아무 것도 하지 않고 집중만 한다.

 

 

3) 좌절감이 느껴지면 1)번으로 돌아가보자. 큰 그림을 그리자.

 

 

4) 조금씩 계속하자. Once you own this piece of this, then whole other things come along.  

 

 

5) 약점은 무시하고 장점을 개발하자.

 

 

6) 이건 일이 아니다, 기쁨이다.

 

Posted by '김용환'
,


머신러닝/딥러닝 공부를 링크 모임



* 딥러닝 데모 

https://github.com/alexjc/neural-doodle





http://richzhang.github.io/colorization/

https://www.dropbox.com/s/sa8m3y1ymj0ihct/presentation_eccv_release.pptx?dl=0




https://github.com/satoshiiizuka/siggraph2016_colorization





만화 이미지 확대

http://waifu2x.udp.jp/





* 제프딘 발표 자료



http://www.slideshare.net/AIFrontiers/jeff-dean-trends-and-developments-in-deep-learning-research

Jeff Dean at AI Frontiers: Trends and Developments in Deep Learning Research from AI Frontiers



http://www.slideshare.net/hustwj/cikm-keynotenov2014


Large Scale Deep Learning Jeff Dean from Jun Wang


* 용어 이해


<한글>

http://clien.net/cs2/bbs/board.php?bo_table=lecture&wr_id=313552&sca=%5B%EC%83%9D%ED%99%9C%EC%83%81%EC%8B%9D%5D


http://slownews.kr/41461


<전문가용>

CNN : https://research.googleblog.com/2016/08/improving-inception-and-image.html

convolution layer : http://www.wildml.com/2015/11/understanding-convolutional-neural-networks-for-nlp/

pooling layer : http://www.wildml.com/2015/11/understanding-convolutional-neural-networks-for-nlp/

Convolutional Neural Network : https://research.googleblog.com/2016/08/improving-inception-and-image.html

Recurrent Neural Network - http://eric-yuan.me/rnn2-lstm/

ltsm의 이해 - https://medium.com/@shiyan/understanding-lstm-and-its-diagrams-37e2f46f1714#.erqeg37dd




* 데이터 사이언티스트를 위한 딥 러닝


http://www.slideshare.net/andrewgardner5811/deep-learning-for-data-scientists-dsatl-talk-alpharetta-20140108

Deep Learning for Data Scientists - Data Science ATL Meetup Presentation, 2014-01-08 from Andrew Gardner



* 딥러닝 개념



http://www.slideshare.net/0xdata/transform-your-business-with-ai-deep-learning-and-machine-learning

Transform your Business with AI, Deep Learning and Machine Learning from SriSatish Ambati



* 딥러닝 역사

http://www.andreykurenkov.com/writing/a-brief-history-of-neural-nets-and-deep-learning-part-4/



* RNN, LSTM, BPTT 용어 정리

https://deeplearning4j.org/kr/kr-lstm



* 각광받는 회사

nvidia : http://kr.nvidia.com/object/deep-learning-kr.html

주가가 작년에 비해 10배가 뜀

https://www.google.com/finance?chdnp=1&chdd=1&chds=1&chdv=1&chvs=maximized&chdeh=0&chfdeh=0&chdet=1487145848691&chddm=98923&chls=IntervalBasedLine&q=NASDAQ:NVDA&ntsp=0&ei=dQukWJCtC8Ls0gT-7avoDg



* 학습자료


https://github.com/oxford-cs-deepnlp-2017/lectures 


https://www.youtube.com/playlist?list=PLlJy-eBtNFt6EuMxFYRiNRS07MCWN5UIA

(자막 : https://github.com/aikorea/cs231n/tree/master/captions/En)




쿄세라

Andrew Ng - https://www.coursera.org/learn/machine-learning

Daphne Koller - https://www.coursera.org/learn/probabilistic-graphical-models

Geoffrey Hinton - https://www.coursera.org/learn/neural-networks


쿄세라 강의를 위한 좋은 가이드 - https://brunch.co.kr/@aidenswmo/2




* 텐서 플로우 공부를 가이드/공부 문서


https://github.com/jtoy/awesome-tensorflow



* POS tag - 어휘와 품사 정보

딥러닝에서 사용중임.

http://kkma.snu.ac.kr/documents/?doc=postag

http://ra2kstar.tistory.com/32

Posted by '김용환'
,