하늘높이의 프로그래밍 이야기

알파고 이후의 딥러닝의 시대가 되었다.
부모들에게도 약간 쇼킹한 사건이었는지 아이들에게 소위 말하는 코딩교육을 한다고 한다.

그런데 어떤 전단지를 보면 자바가 써 있기도 하고 어디에는 C언어가 써 있다더라. 헉
개발을 잘 모르는 사람은 코딩이 인기라더라며 웹 코딩/퍼블리셔 직군에게 이게 코딩 아니냐며 코딩 교육을 할생각이 없냐는 이야기도 한다.

물론 Java, C, HTML 좋다. 그들의 원리를 조금 배워보는것 역시 좋다. 하지만 그들의 철학과 원리를 이해하기는 15년이 된 개발자도 어렵다.
(나만 그런가?)

그리하여 나의 생각은 아이들이 배울 것은 그것이 아닌데...
아이들이 당장 자바나 HTML 코딩을 배우면 뭐하겠는가... 나 역시 초3에 컴퓨터가 생기고 4학년때부터 뜯기 시작하고 6학년때 GW베이직을 처음 익히고 이 바닥으로 들어왔지만 사실 중요한것은 그것이 아니었다.

개발자가 된 것을 후회하는 것은 아니지만 컴퓨터에 빠져서 다른 기초학문이나 사상을 혹은 수학을 더더더더더 많이 익히지 못했던것을 후회한다.

또한 개발의 언어 외에도 업무의 언어를 더 많이 있히지 못함이 미안하다.

소위 딥러닝의 시대가 되면 더 그럴지 않을까.

현재도 3.5세대나 4세대 IDE툴 즉 개발환경을 제공해주는 툴 들, 예를들면 비주얼스튜디오나 이클립스등의 툴은 나름의 인텔리전스 기능을 가지고 있다. 코드 몇자를 치면 이 코드 쓰려는 거구나. 다 입력해줄테니 여기서 바꿔봐... 그리고 조금더 쉽게 쓸수 일는 프레임워크나 언어는 계속 나온다.

딥러닝 시대가 되면...이것이 더 발전할텐데...
ide가 (이제는 문법이 아니고) 너가 이 알고리즘을 쓰려는 거구나... 이렇게 짜보는 것이 어때?
너가 짠 코드는 이런 부분이 비 효율적이야. 내가 바꿔도 될까?

현재의 DB처럼 넌 맘데로 니멋대로 짜
코스트 기반의 옵티마이저가 분석해서 똑같은 결과 코드로 대체 할 것이다. 너가 짜려고 하는 코드는 스택오버플로우에 이미 있는거란다. 이것대로 해볼렴!! [사실 지금도 컴파일러가 비슷하게 하고 있지만... ]

정말 아쉽지만 결국 코드를 잘 짜는 개발자와 못 짜는 개발자의 차이가 적어진다. 즉 경력자와 초보자의 코드가 별 차이가 없어진다. 정말 잘짜고 효율적인 그리고 수학적인 개발자는 엔진 개발자, 코어 개발자등 한정 분야에만 존재 할 것이다.

그렇다면 나는 어떤 능력을 늘려야 하고 아이들에게는 무엇을 알려줘야 할까?

개발의 언어인가 사고의 능력인가.






얼마전에 아이들을 재우고 밤에 넷플릭스에서 영화 잡스를 보았다. 내가 좋아하는 철학의 애플 그리고 스티브잡스의 일대기

사실 이미 많은 부분이 알려져 있고 실존했던 인물의 긴 스토리를 짧게 영화로 보여주려고 하여.... 다른 영화들에 비해 영화의 스토리라인은 생략이 너무 많아 영화 구성 자체는 개인적으로는 조금 별로 였으나...

여러가지 생각이 들어 몆가지 적어 놓아야 할것 같아 기록을 한다.


스티브 잡스는 "천재인 것은 맞지만. 내 주변 저런 성격의 사람이 있지는 않았으면 좋겠다" 라고 생각이 드는 인물 중 하나였다.

이유는

- 출생의 문제로 세상에 대한 원망은 많고 자존감은 너무 높은 절대 갑
- 다른 직원/동료 들과 소통을 하지 못하는 독불 장군
- 뭐도 없으면서 허세만 부리는 전형적인 사기꾼
- 일에 빠져 가족이나 동료를 보지 못하는 일 중독자

주변 사람들로는 참 싫어하는 요소들이며 위에 것들만 보면 전형적인 한국 기업/한국 정치의 사람인데 라는 생각도 들었으나...

그에게는 성공을 할 수 있는 절대적으로 부러운 점 세가지가 있었다.

- 메인프레임 시대에 개인적으로 세계 최소 형 컴퓨터를 만들 수 있는 천재 스티브 워즈니악이 친구로 있었고 그를 동료로 만들수 있었다.

- (애플이) "세상을 바꿀 수 있다"는 사명감을 머리에 두고 그것을 기초로 결정하고 행동하고 있었다.(설령 그 행동이 잘못되고 너무 극한의 방향이라 인간적이지는 않았디만 그의 행동은 결정 자체가 달랐다.)

- 마지막 아름다움에 대한 디테일
(동료와는 소통하지 못했지만 소비자의 니즈는 정확히 파악하고 아름답게 만들었다.)

즉 사람과 비전 그리고 완성도

나는 매 순간 어떤 생각을 가지고 코드를 짜고 계획을 하며 그것을 동료들에게 전파 하고 있는 것일까?

앞으로 나는 어떤 기준을 머릿속에 넣고 생활하고 판단하여 전파해야 할까?

진지하게 나에게 물어봐야 할듯 싶다.

Hello world가 아닌 Change the world 할 수 있을까?


[몇년전 쿠퍼티노에서 찍은 사진을 추억하며...]








Software-development

과거 하드웨어 반도체의 축이던 인텔
그리고 2년 아니 18개월 마다 반도체의 집적도는 전에 비해 2배가 된다는 무어의 법칙

무어의 법칙의 세 가지 조건은 다음과 같다.
출처: 위키피디아

  1. 반도체 메모리칩의 성능 즉, 메모리의 용량이나 CPU의 속도가 18개월에서 24개월마다 2배씩 향상된다는 '기술 개발 속도에 관한 법칙'이다.
  2. 컴퓨팅 성능은 18개월마다 2배씩 향상된다.
  3. 컴퓨팅 가격은 18개월마다 반으로 떨어진다.


어느덧 무어의 법칙은 하드웨어 세상에만 존재하는 법칙이 아닌 비트의 세상, 즉 소프트웨어 세상에도 존재하는듯 하다.

소프트웨어의 세상 역시 제곱, 즉 기하급수적으로 팽창하고 있다.

자고 일어나면 새로운 오픈소스, 개념, 철학
AI, 딥러닝, 클라우드, 아마존, 페이스북, 구글, 마이크로소프트 업체들마다 다들 새로운 계획과 구성을 필요로 한다.

어느 정도 완성되어 마지막 부분만 학습하여도 구현 되는 부분이 있긴하나 제대로 알고 발전시키며 남들에 비해 우위에 있으려면 기초 학습인 수학이나 통계 역시 알아야 좋다.(어느 정도 능력도 요함) 게다가 사상의 패러다임의 변화까지 변화를 주어 신 개념 혹은 철학까지 필요로 한다.

나 혼자 아무리 똑똑하려 해봐야 양적으로 할 수 없는 시기가 도래 하였다.
(모두 이해하려면 아이언맨이나 베트맨 정도 되어야지 나같은 일반인은 잘 모르겠다.)

사람들과 더 함께 일하고 그들은 발전 시키고 함께 성장하는 방법을 찾아야 한다. 그렇게 하면 변화의 양을 감당할 수 있을까?




이세돌 2차 전을 보며 드는 생각을 몇 자 적어본다. 개발자가 술먹고 돌아 오면서 간단히 폰으로 적는 알파고와 경기 관전 평 이랄까? 뭐 바둑은 아부지가 그렇게 배우자고 하였지만... 배운적이 없어.. 전혀 모른다.

다만 최근의 기사들을 보면..
"바둑의 수는 우주의 원자수 만큼 많아 직관이 없는 기계는 사람을 이길 수 없다." 라고 하였지만...

다시 생각하면 "그 수가 너무 많아 현재 사람들이 쓰는 수 자체가 모두 최적의 수가 맞는가?"라는 의문이 든다.

아직까지 사람들이 발견하지 못한 새로운 패턴(최적의 수)이 있는 것은 아닐까? 사람들이 그렇게 두면 절대 안된다고 생각하는 수가 있는 것은 아닐까? 그리고 그것을 슈퍼 컴퓨터 속도로 시뮬레이션(자가 경기 기계 학습 한달에 100만건? 하루에 3만건?) 해보고 찾아낸다면.... 사람은 듣지도 보지도 못한 수에 당하게 되며 사실상 이기기 어렵다.
2차 전 결과 역시 비슷해 보인다. 나머지 경기도 비슷할 듯하다.

이 정도 경기와 시간이 지났으니.. 알파고는 이미 최적의 수로 발전할 수 있을 만큼 발전한 것으로 보인다.
저 정도 속도면 바둑이라는 게임이 만들어진 이후 전세계에서 치룬 경기 수보다 알파고 자기 학습의 경기가 우월하게 많아 질것으로 보인다.

만약 이 기사가 다음 경기에서 알파고가 승리하기 어려운 패턴을 찾아내서 그 패턴을 계속 쓰지 않는 한 승리는 어렵다.
(내가 알기로는 딥러닝은 한 두 경기의 패턴으로 전체의 패턴을 바꾸지는 못한다. 말로는 일차전 이차전 경기가 학습되어 다른 놈일 것이라 하지만... 딥러닝이란 태생이 로직이 아니고 빅데이터 이다 보니 작은 한두 경기로는 패턴이 바뀌지 않는다. 말그대로 결과를 테스트하고 홍보하는 이벤트로 보인다. 만약 이 기사가 그래도 알파고의 허점을 하나 찾는다면 남은 경기에서는 모두 다 써 먹을 수도 있을 것 같다.

하지만 위에도 말했듯이 컴퓨터는 멀티태스킹이 된다. 이세돌 기사와의 경기를 두는 도중에도 다른 프로세서들의 알파고들은 서로 경기를 하며 시뮬레이션하여 한달에 100만 건씩 자기 반복 학습을 하여 새로운 패턴을 찾을 수 있다. 한달에 만들어지는 100만건의 데이터는 패턴을 바꾸기에도 충분한 큰 데이터가 될 수 있을 것 같다. 사실 이기사와 경기에서 얻는 패턴 보다 자가 학습의 패턴이 더 무섭다.)

외부 요소가 적은 룰안에서 벌어지는 게임들은....사실 무슨 게임이 되건 현재의 클라우드 슈퍼 컴퓨팅 파워를 이기기는 쉽지 않다. 구글, 아마존 등 클라우드 컴퓨팅 파워는 돈만 있다면 누구나 병렬 처리 슈퍼컴퓨터를 만들 수 있다.
슈퍼 컴퓨터와 머신 러닝등의 추론을 도구로 쓰는 시대가 오는 것이다.

다만 이것이 모든 기업과 모든 사람들이 쓸 수 있는 가는 조금 더 생각해 봐야하지만....
(결국 더 큰 자본력과 더 많은 데이터를 갖은 기업이 승리하기 유리해진다. 페이스북의 타임 라인 알고리즘을 전세계에 쓰는 것을 보지만 우리 대형 포털 업체들이 비슷하거나 더 효과적인 것을 못 만들어 내는 것을 보면 가지고 있는 데이터 양과 컴퓨팅 파워가 무시 못할 자산이 되는 듯 하다.)

사람들은 영화에서 처럼 AI가 인간을 지배하는 날이 오는구나... 라고 걱정하지만...

그렇다면...
암산으로 계산기를 이길 수 있는가?
중장비보다 더 무거운 것을 들 수 있는가?
자동차보다 더 빨리 달릴 수 있는가?

그럼 수학이 없어지고 역도나 체력이 무의미 하고 달리기라는 스포츠는 필요 없는가?
누구나 다 알 듯이 그렇지는 않다.

이미 인간은 특정 분야에서 많은 부분 기계에게 지고 있다.

그리고 인간의 세계는 게임과 달리 훨씬 더 복잡하다. 어느 정도 추상적인 부분이 현재 알고리즘으로 정량화 되어지기는 하겠지만... 아직까지 모든 것을 인식하거나 통찰 하는 Ai는 없다. 바둑이라는 게임 안에서 승부일 뿐이다.
만약 모든 것을 통찰 하는 인공지능 자기 자신을 인식하는 스카이넷 그런 것이 나온다면...또 모르겠지만...

아직까지 인공지능 역시 도구는 도구일 뿐이다.
세상의 모든 도구는 잘쓰면 약 잘못쓰면 독이된다.
(칼을 요리를 할수도 있지만 남을 다치게 할수도 있고 핵은 발전에 쓸 수도 있지만 폭탄이 될 수도 있다.)


이 세상의 예외를 기계가 모두 알 수 있을까?
이 기사가 만약 발로 바둑판을 걷어찬다면? 알파고는 뭐라 해야 하는가? 승부는 true/false이지만? 

이런 상황은 정답인가 오답인가? 인간의 자유 의지는 정답이 없다. 세상 다양한 외부 요소로 정답이 다양한데 이 모든 상황을 예외 처리가 가능한 인공지능이 나올 수 있을까? 모든 상황의 통찰력을 갖을 수 있을까? 이런 것까지 모두 판단할 수 있을까?  

글쎄 아직까지 도구는 도구라 생각하는 개발자 1인이.. 

약간 씁쓸해하며 기술에 감탄하는 어느날 밤에...








오랜만에 업데이트 푸시가 와서 업데이트
그런데 뭐가 좋아진거지?



TistoryM에서 작성됨

'New Tech' 카테고리의 다른 글

SixthSense 기술의 놀라운 잠재력  (0) 2009.12.29
XMPP(Extensible Messaging and Presence Protocol)  (0) 2009.12.01
포토신스(PhotoSynth) 오픈  (4) 2008.08.25

이클립스로 안드로이드 개발하다 뭘 잘못건드렸는지... 깨져서 다시 받음

한데....ADT랑 이클립스를 업데이트 하고 나니까 이런 경고 뜬다.

스택오버플로우에서 찾음 또 찾기 귀찮아서 기록

http://stackoverflow.com/questions/22524789/error-this-android-sdk-requires-android-developer-toolkit-version-22-6-1-or-abo

Error: This Android SDK requires Android Developer Toolkit version 22.6.1 or above [duplicate]

 

결론 https://dl-ssl.google.com/eclipse/plugin/4.2 Install New Software에 넣고 업데이트

프로그램을 하다가 음원을 다룰일이 있는데...

파일이 많이 쌓이니까 녹음한 파일을 한번에 조정하는게 쉽지 않더라는....


하여 일괄로 파일을 짤라내는 명령어를 찾다가.

리눅스의 mp3splt 라는 명령어를 찾았는데...

찾아보니 윈도우에도 있더라는...


관련 URL http://mp3splt.sourceforge.net/mp3splt_page/home.php


하여 그 명령어를 이용해... 파일 앞뒤 트림 성공!!


정확한 옵션은 

>mp3splt -r -d "신규 경로" c:\경로\파일명.mp3 -o @f -p th=-50,nt=10



나중에라도 또 쓸일이 있겠지...

나머지 배치파일은 알아서...

어쨋든 1500개 음원파일 앞뒤 공백 짤라내기 성공!!!


'OS, DB > MS Windows' 카테고리의 다른 글

64비트 윈도우 탐색기에서 RAW 포맷 보기  (0) 2012.01.09
Windows 에서 RAW파일 이용하기  (0) 2009.12.28
Windows 7 XP 모드 설치하기  (7) 2009.11.21
윈도우 서비스 관련 TIP  (0) 2009.02.26
Windows Live Writer 베타  (2) 2008.11.11

노트북 랜카드(소니 바이오)가 intel 6220인데...

802.11ac를 지원하는 공유기를 구매하게 되어....

아마존에서 intel 7260을($34.98) 사서 교체!!


속도 괜찮네요^^

<기존 랜카드>


<아마존에서 구매한 랜카드>

<인터넷 테스트와 작업관리자>


작업관리자에서는 600~700메가로 뜨고 내부속도는 200~300Mbps정도 나오구요. 

뭐 인터넷은 대략 회선 끝까지 나옵니다.


요즘에 오픈 하드웨어인 아두이노에 살짝… 발 담그기 중입니다.

이거에 대한 글들은 워낙 많으니… 제가 보탤 것은 없고…

제가 찾았던 것 들을 참고 하기 위해 살짝 정리합니다.

참고 사이트는 아래와 같으니.. 필요하신 분들은 원본사이트를 찾아보시기 바랍니다.

LCD : http://www.devicemart.co.kr/goods/view.php?seq=38753

참고 사이트는 : http://blog.daum.net/shksjy/24, http://www.hacktronics.com/Tutorials/arduino-character-lcd-tutorial.html

헬로우 월드 수준의 프로그램 입니다.

LCD 판넬 핀 배열

LCD Pin

Connect to

1 (VSS)

GND Arduino pin*

2 (VDD)

+ 5v Arduino pin

3 (contrast)

Resistor or potentiometer to GND Arduino pin*

4 RS

Arduino pin 12

5 R/W

Arduino pin 11

6 Enable

Arduino pin 10

7 No connection

 

8 No connection

 

9 No connection

 

10 No connection

 

11 (Data 4)

Arduino pin 5

12 (Data 5)

Arduino pin 4

13 (Data 6)

Arduino pin 3

14 (Data 7)

Arduino pin 2

15 Backlight +

Resistor to Arduino pin 13**

16 Backlight GND

GND Arduino pin*

 

Code

   1:   
   2:  // include the library code:
   3:  #include <LiquidCrystal.h>
   4:   
   5:  // initialize the library with the numbers of the interface pins
   6:  LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);
   7:  int backLight = 13;    // pin 13 will control the backlight
   8:   
   9:  void setup() {
  10:    
  11:    pinMode(backLight, OUTPUT);
  12:    digitalWrite(backLight, HIGH); // turn backlight on. Replace 'HIGH' with 'LOW' to turn it off.
  13:   
  14:    // set up the LCD's number of columns and rows: 
  15:    lcd.begin(16, 2);
  16:    // Print a message to the LCD.
  17:  }
  18:   
  19:  void loop() {
  20:   
  21:    lcd.print("Hi, Arduino ");  
  22:    delay(1000); //Just here to slow down the serial to make it more readable  
  23:  }

 

Run

'Hardware > Arduino' 카테고리의 다른 글

[아두이노] 자이로센서 신호 받기  (6) 2013.06.17

집에서 플레이스테이션으로 NAS에 있는 비디오를 보려고 이리저리 이동하다보니....

TV섹션에 앱이 추가된것을 발견!!!! 오옷 YOUTUBE다.


유튜브XL 모드(http://www.youtube.com/xl?page=settings_lang&hl=ko)가 워낙 안좋은 화질을 제공해서....

이놈을 화질 좋게 HD로 볼수 있는 방법이 없을까 했는데... 드디어 PS3용 앱 출시...

(http://www.theverge.com/2012/8/14/3241181/playstation-3-native-youtube-app)

아직 PS3 죽지 않았구만.!~

<물론 우리집에서는 한글로 나옴, 캡쳐하기는 귀찮아서...>


이제 Youtube를 고화질로 TV에서 시청 가능!!! 아싸!~

'New Tech > IPTV' 카테고리의 다른 글

[펌] 버팔로, PSP용 MPEG-4 변환 대응의 capther 카드  (0) 2006.01.25

런던 올림픽2012가 이제 코앞으로 다가 왔네요.

올림픽을 즐겁게 만드는 필수 아이템 앱 쏘티가 나와서 소개드리려고... 글을 씁니다.


올림픽 정보 쏘티는 14개의 인기 종목의 전문가 들과 함께 응원하며... 

정보를 실시간으로 획득 할수 있는 모바일 앱입니다.


게다가 다양한 이벤트로... 올림픽 기간동안 필수 방송 뱃지를 모두 모으면...

KIA 자동차의 신차 K3도 제공한다고 하네요.

올림픽을 즐겁게 만드는 필수아이템 쏘티

http://j.mp/SotyApple - 앱스토어
http://j.mp/SotyGoogle - 안드로이드 마켓
http://j.mp/SotyHome - 소티 홈페이지
http://j.mp/SotyTStore - TStore 티스토어

기술적으로 특이한 기능은 핸드폰이 방송을 인식해서....

현재 방송의 방송정보를 보여준다는 것이죠. 지상파 어느 채널이든 가능합니다.




지금 바로 앱을 다운받고... 핸드폰을 TV앞에 가져가 보세요.!!!

다음 버전 쏘티 버전은 방송정보용 앱으로 다가온다니 더욱 기대되네요.!!!

이제 공식적으로 본방 사수를 인증 받을 수 있어요!!


본방~~~ 사수!!


사진을 찍고 편집하는 것을 좋아하다 보니… 아무래도 카메라에서 RAW로 찍는 경우가 많다.

그런데 최근에 집에 컴퓨터를 64비트로 업데이트 하고…. 탐색기에서 RAW를 볼 수 없어 영 불편하던 참에…

 

검색해보니.. MS에서 나온 카메라 코덱 팩이 있었다.(이런 작년 7월 26일에 나온 것이 있었잖아./4개월 쯤 전..)

 

다운로드

http://www.microsoft.com/downloads/ko-kr/details.aspx?FamilyID=a0ac689f-9bad-46be-ae8d-550cb9ba5430

 

http://www.ps3mediaserver.org/

 

오랜만에 PSMedia Server 에 접속해보니 버전이 1.4가 올라왔네요.

일단 제가 사용하는 버전은 리눅스 서버에서 돌아가는 PSMedia Server인데요.

이번에는 안정성이 많이 개선된 듯 한데요.(제 서버에서만… 그렇게 느끼는 것인가요? @.@)

이제는 정말… 초보자에게도 추천할 만한 솔루션이 되지 않았나 생각되는데요.

 

 

그리고 과거에 문제되었던 한글 폴더나 한글 메뉴등은 mrhan80님이 업데이트 해주신 것이 적용되어서

http://mrahn80.tistory.com/30 별다른 설정 없이 아주 잘 돕니다.(패치 감사합니다.)

이번 버전에서는 IPhone/IPAD 플레이어들도 지원하구요.

'Hardware > Encording' 카테고리의 다른 글

MP4Box 만을 이용해 Ipod/Iphone 멀티 자막 입히기  (5) 2010.04.14

Winning Eleven 2012가 출시되어서 바로 주문해서 도착했네요. ㅋㅋㅋ

팀 메이트 무빙 요 기능 잘만하면 새로운 주 특기 가 될 수 있을 것 같네요. 온라인에서 만나요~ ㅋㅋㅋ