August 23, 2016

소프트웨어 개발자들의 유효기간

 소프트웨어와 알고리즘이 중요하다 강조하는 목소리들이 많은데, 뒷북 좀 그만치자 ...

 내 눈에는 그 가치가 급락 중으로 보인다. 

 믿기 어렵다면 Google Trends로 우선 Programmer를 한번 넣어보자. IT 기술과 시장은 커지는 반면 Programmer에 대한 검색량이 주는 이유는 뭘까? (software engineering도 똑같음)


이걸론 부족하겠지. Indeed.com 잡 트렌드도 보자 ㅋ.

 

Cloud computing의 빠른 진화로, 과거와 달리 IT 비지니스를 위해 더 이상 많은 인원이 달라붙을 필요가 없어졌기 때문이다. 아마 연식이 좀 된 사람들은 알 게다. DB와 리눅스를 잘 다루는 (고급) 서버 개발자와 (초/중급) 클라이언트 또는 웹 개발자를 찾던 시절을. 

 이제는 데이터베이스 전문가, 리눅스 전문가, 서버 전문가, 대형 서비스 경험자, 클라이언트 앱 개발자 기타 등등 인력을 충분히 조달해야 가능하던 일이 한 명 혼자 충분히 해결 가능하다. 

 우리는 요걸 Serverless 시대라고 말한다. 

 소프트웨어 개발자들은 초기 OS와 각종 유틸 전쟁을 넘어 웹의 출현과 함께 server-side technologies에 몰렸고, 오늘날 대부분의 서버 기술이 Clouds로 녹아든 이후엔 App 개발과 스타트업으로 몰리는 양상을 띄고 있다.

 개인 오픈소스 해커들도 사라지고 있는데 individual contribution 위주의 Unix, Linux, 그리고 Apache 활동 들은 대기업 company-driven contribution 형태로 넘어가고 있다.  

 그럼 이쯤해서 개발 랭귀지 동향은 어떻게 변화하고 있는가 보자. C++ 시대를 넘어 Java가 최고급 대우를 받던게 불과 수년 전인데 Scala나 Python으로 빠르게 넘어가는 걸 볼 수 있다. CPU, 메모리 최적화 Coding skills 그딴거 더 이상 필요없다. 논리 설계하면 발로 개발 하든 어쩌든 동작한다.


 통신 인터페이스는 어떻게 되어 가고 있을까? 굳이 길게 설명할 것도 Trends 결과를 붙일 필요도 없다. 웹 소켓과 JSON 따위의 Key/Value로 정리된다. 요즘 RDF나 XML, 그리고 JDBC, ODBC 써본 사람?

 그러니까 결론은 ... 소프트웨어 엔지니어링 노동력의 가치는 점차 자동화에 의해 대체되고 있고, 일기 쓰는 것보다 쉬워지고 있다. 창의적인 App 개발을 해야 살아남는 현실을 인식하지 못한다면 굉장히 위험하다. 소프트웨어 개발자의 유효기간은 이미 끝났다.

August 9, 2016

Include Aparapi into maven local repository

1. Clone the aparapi from the github and build
% git clone https://github.com/aparapi/aparapi.git
% cd aparapi
% ant -Dapp.sdk.dir=/home/edward.yoon/AMDAPPSDK-3.0/

2. Install the file 
% mvn install:install-file -Dfile=/home/edward.yoon/aparapi/com.amd.aparapi/dist/aparapi.jar -DgroupId=com.amd.aparapi -DartifactId=aparapi -Dversion=1.0 -Dpackaging=jar

3. Edits pom.xml file 
After installed, just declares the aparapi coordinate in pom.xml.
    <dependency>
      <groupid>com.amd.aparapi</groupid>
      <artifactid>aparapi</artifactid>
      <version>1.0</version>
    </dependency>
Build it, now the "aparapi" jar is able to retrieve from your Maven local repository.

August 6, 2016

Collective Artificial Intelligence

DeepMind executive director Demis Hassabis said "AlphaGo played himself, a different version of itself, millions and millions of times, and each time there is progressively a little bit better". And, I imagined just like:

알파고 2개가 서로 바둑을 뒀다는 걸 들으면서 나는 스미스를 떠올렸다. 병렬로 존재하며 다른 경험을 하고 서로 정보와 의견을 공유하는 우리의 스미스 요원:

Agent Smith - The Matrix

Today, many people says about Super-intelligence and its dangerousness. The people wonder who will made it. I personally think, we'll made it together like a internet. So, I believe the most important keywords are "collective" and "parallel". Anyway, it's just a natural phenomenon. Historically, the single-celled organisms had evolved into multi-cellular organisms. If you think it's dangerous, you maybe a cancer cell.

아마도 초지능으로 넘어가는 세계는 어떤 한 집단에 의해 개발되는게 아니라 인터넷처럼 우리 모두의 활동에 의한 것으로 상상한다. 그래서 Knowledge transfer, Collective Intelligence, Parallel computing 등에 주목 할 필요가 있다. GPU 카드 따위가 중요한게 아니라. 한편, 단세포가 뭉쳐 불현듯 다세포 생물로 진화 했듯, 우리도 그러한 진화 속에 있다고 본다. 그래서 인공지능이 위험하다는 발상은 암세포 만이 할 수 있다는.

August 4, 2016

First submission to the arXiv

and I'm preparing v02 w/ ma co-workers using shareLaTex.

Horn: A System for Parallel Training and Regularizing of Large-Scale Neural Networks

I introduce a new distributed system for effective training and regularizing of Large-Scale Neural Networks on distributed computing architectures. The experiments demonstrate the effectiveness of flexible model partitioning and parallelization strategies based on neuron-centric computation model, with an implementation of the collective and parallel dropout neural networks training. Experiments are performed on MNIST handwritten digits classification including results.
Subjects: Distributed, Parallel, and Cluster Computing (cs.DC); Learning (cs.LG); Neural and Evolutionary Computing (cs.NE)
Report number: EP-909420F9A6E94B3691E5EE413DAD353E
Cite as: arXiv:1608.00781 [cs.DC]
  (or arXiv:1608.00781v1 [cs.DC] for this version)