2015년 3월 12일 목요일

피터드러커가 말하는 효율성

피터드러커가 효율성에 대해서 아래와 같이 경고했다.


절대하지 말아야할 일을 효율적으로 하는것만큼 위험한것은 없다.

빌게이츠가 한 말하고도 비슷한데, 아래와 같이 말했다.

빌게이츠는 자동화를 하기전에 문제자체를 효율적으로 바꾸라고 했다.
(비효율적인 문제를 자동화 하고있는건 아닌지 확인하라는 말이다.)

기업도 이와 마찬가지이다.

현재 만들면 안되는 제품을 값싸고 품질좋게 만들면 뭐하는가?

시장은 아무도 사주지 않는것을..

아이폰6와 갤럭시6 가 싸우고 있다...

하지만 미래의 싸움터는 다른곳 (예를들면 사물인터넷이나)으로 이동될 것이다.

이미 사물인터넷은 국내에서 진행하고 있는곳도 있네요.


http://seoulite.camp/%EC%B0%BD%EC%97%85-6%EA%B0%9C%EC%9B%94%EB%A7%8C%EC%97%90-%ED%88%AC%EC%9E%90-%EC%9C%A0%EC%B9%98-%EA%B8%80%EB%A1%9C%EB%B2%8C-%EB%84%98%EB%B2%84%EC%9B%90%EC%9D%84-%EC%9D%B4%EA%B2%A8%EB%B3%B4/

http://biz.chosun.com/site/data/html_dir/2014/09/18/2014091800007.html
사용자 정의 검색

2015년 3월 7일 토요일

프로그래밍 심리학을 ruby 코딩에 적용하기

ruby 에서 정규 표현식은 아래와 같이 2가징 방법으로 표기할수있다.














앞에것은 perl style 이고 뒤에것은 객체지향적 표기방법이다.

뒤에것이 객체지향적면서도 특정숫자($1) 등에 의존하지 않아서 명확하다.
그러나!! perl 에 정규표현에 익숙한 독자들을 배려하기위해서
perl 스타일을 사용하여야한다.

언어의 다양한 면을 구사하는 현학적(어려운?) 표현보다는
쉽게 독자가 읽을수 있도록 해주는 코딩이 더욱 바람직하다.

언어의 특화된 면을 많이 사용하기 보다는
일반적으로 많이 사용하는 문법을 사용하는것이 더 바람직하다.

이런 것이 프로그래밍 심리학이다.

아직 프로그래밍이 기술이라고 생각한다면 프로그래밍 심리학을 보기바란다.
프로그래밍은! 궁극적으로는 문학이 되어야한다.

프로그래밍 심리학

누구나 쉽게 이해할수 있는 책이 재미가 있듯이,
누구나 쉽게 이해할수 있는 프로그래밍을 해야한다.

함수를 100줄 넘게 짜고 있는가?
10줄이하로 줄이기 바란다.
나는 평균 4줄 정도의 함수를 사용한다.
이렇게하면 한번에 하나의 일만 하는 함수로 구성할수 있다.

함수의 적정 라인수가 얼마인지 고민해본적이있는가?

함수의 내부를 눈으로 해석해야한다면 나쁜 함수이다.
함수의 제목만 보고도 어떤 함수인지 기대할수 있어야 하고,
함수의 내용을 보면 그러한 기대와 동일하게 동작하여야한다.


2013-2014 졸트상 수상 책

졸트상 수상 책들이 내용이 좋아서 찾아보았는데

요즘다시 나온 책들이 있어서 공부하기위해서 추가합니다.

2011년 졸트상

  • Domain-Specific Languages, by Martin Fowler with Rebecca Parsons
  • The Art of Computer Programming, Volume 4A: Combinatorial Algorithms, Part 1, by Donald E. Knuth
  • The Joy of Clojure: Thinking the Clojure Way, by Michael Fogus and Chris Houser
  • Productivity Award #1: Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages, by Bruce A. Tate
  • Productivity Award #2: Mining the Social Web: Analyzing Data from Facebook, Twitter, LinkedIn, and Other Social Media Sites, by Matthew A. Russell
  • Excellence Award: Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation, by Jez Humble and David Farley

2012년 졸트상

* 구글은 소프트웨어를어떻게 테스트하는가?

구글은 소프트웨어를 어떻게 테스트하는가
와우!
사람의 상상력을 뛰어넘는 궁극적인 테스트 솔루션들...정말 대단하다.
이 책을 읽고 제발 구글이 SoC 개발하지 않게 해주세요라고 기도했다.
도대체 나는 저런 회사를 만들 수나 있을것인가?

* Running Lean

린 스타트업
요즘 스타트업이 많이 유행이지요
스타트업을 하려면 반드시 읽어야 합니다. 스타트업 뿐만이 아니고
미래 기업이 가져야할 방법론이 됩니다.



Jolt Finalist: Elemental Design Patterns

Jason M. Smith
엘리멘틀 디자인 패턴
디자인 패턴에 대한 현대적인 분석인것 같다.


Jolt Productivity Award: iOS Programming: The Big Nerd Ranch Guide, Third Edition


아론 힐리가스의 iOS 프로그래밍




Jolt Productivity Award: HTML5 Developer's Cookbook

by Chuck Hudson and Tom Leadbetter


Product Details




specification by example


담아간 이미지 고유 주소
이제는 스펙을 잘쓰고 싶다고 생각하던 찰라에... 좋은 책이 나왔네요.
한국어 판이 있나봅니다. 꼭 읽어봐야 할것 같네요!!!

2013 졸트상 (25회)

NoSQL Distilled

NoSQL
NoSQL 이라는것은 새로운 기술에 대한 포괄적인 의미를 담고있다고한다.
기존 DB 로부터 한단계 진보한것을 NoSQL 이라고 부르는것인가?
새로운 세계, 빅데이터나 Analytics 쪽에 관심이 있으면 보아두면 좋겠다.
저자중에 마틴파울러가 있다. 

Team Geek

Product Details협업의 기술

번역본의 그림이 달라 헷갈릴수 있다. (난 원서 그림이 더 맘에든다)
피플웨어의 현대판 버전이라고한다. 
아래와 같은 내용이 나온다고하네.
* 사람을 꾸짖지말고 행동을 꾸짖어라
* 단기적 편의를 위해서 장기적 문화를 희생하지마라.
아~ 읽고 싶다.

얼마나 아름다운 표지그림인가? 팀이란 이래야한다.
다행인것은 우리 회사도 이렇게 개발하고 있다는 거다.


Productivity Award: Taming Text

By Grant S. Ingersoll, Thomas S. Morton, and Andrew L. Farris

자연어 텍스트 처리를 통한 검색 시스템 구축

텍스트를 구조적으로 다루는 방법을 기술한듯하다. 

Productivity Award: Dependency Injection in .NET

By Mark Seeman

Product Details

객체지향 설계에 어느정도 경험이 있고,
Dependency Injection 에 경험이 있는 사람들에게 도움이 된다고한다. 


Jolt Award: Lean UX

By Jeff Gothelf with Josh Seiden

Product Details
이건 번역본이 있어서 사서 읽었습니다. 스타트업들이 UX(유져 익스피어리언스)를 어떻게 수정해 가는지에 대해서 guide 하고 있습니다.
아주 재미있고 흥미롭게 읽었던 기억이 있습니다.

2014 졸트상 (26회)


- Automate With Grunt (실용주의 자동화 시리즈)

Jolt Finalist: Automate With Grunt

by Brian Hogan
Product Details

java script 쪽의 build 자동화 도구.  각 domain 마다 build 자동화 도구는 다를수 밖에 없다고 이야기한다.
그렇다면 역시 SoC 에도 별도의 build 자동화 도구가 있어야한다.
(사서 쓰던지 만들어 쓰던지 둘중 하나야!)


Jolt Finalist: Rethinking the Internet of Things

by Francis daCosta

Product Details
꼭 사보아야 할 책같다!!! 사물인터넷을 구현하기위해 수많은 센서와 actuator 들에 대한 이야기 같다.
과연 사물 인터넷이 구현되기위해서 SoC 는 무엇을 해야하는가!


Jolt Finalist: Threat Modeling

by Adam Shostack

Product Details

보안에 대해서 위협이 되는 요소를 모델링하는 , 즉 해킹을 모델링 하는 방법에대해서 이야기하는것 같다.
요즘은 ARM 에서 나온 TrustZone 과 같은 보안 솔루션이 있는데 이것만 쓴다고 되는것은 아니니까... (제대로 알고 써야하므로...)
제대로 보안에 관한 verification 을 강화하려면 위와같은 책을 읽고 다양한 시나리오를 가상 체험해보는것이
좋을것 같다.




Jolt Productivity Award: Single Page Web Applications: JavaScript End-to-End


Product Details
현존하는 최고의 자바 스크립트 책이라고 한다.
번역본 『단일 페이지 웹 애플리케이션』(http://wikibook.co.kr/spa/)

Jolt Productivity Award: Programming: Principles and Practice Using C++, 2nd Edition

by Bjarne Stroustrup
Product Details
C++ 의 창시자 (거장 비야네 스트루스트룹이 쓴책이니...) 무엇을 더 말하겠는가,
다양한 예제로서 C++을 설명한다고 한다. 1400 페이지에 달한다고하니
C++ 의 바이블이 아니겠는가?
개인적으로 비야네 스트루 스트룹이 쓴 디자인 패턴책을 읽어본적이있다.
그냥 감동 그자체였다... 그냥 천재... 보다도, 신(?) 이라는 느낌?




Jolt Award: Python in Practice

by Mark Summerfield
Product Details
개인적으로 파이썬을 루비보다 안좋아하는 이유는,  아직 좋은 책을 찾지 못하였기 때문인것 같다.
디자인 패턴을 알려주는 파이썬 책은 거의 없었다.
그런데 이책의 목차를 보니 디자인 패턴과 파이썬을 설명하고 있더라...
오우! 이런 책을 읽어봐야 파이썬을 자유자제로 쓸수 있을것 같다.
난 루비가 좋지만... 구글이 왜이렇게 파이썬을 미는가?
구글에서 만든 프레임워크는 파이썬이 많은것 같다.
아마도 루비는 일본에서 나왔고 파이썬은 미국에서 나와서 그런가?
번역본 『파이썬 인 프랙티스』(http://wikibook.co.kr/python-in-practice/)




앞서나가기 위한 생각

2011-2012 에 나온책을 2014 년도에 읽어보았다. 번역본이다보니 그런것인데...
졸트상 수상을 하면 국내에 나와서 번역되고 다시 평가 받고 하면 약 2년의 시간이 흐르는것 같다.
그냥 졸트상 수상한걸 바로 읽으면 2년은 빠르지 않을까?
남들보다 빠르게 적용하려면  slack 이 필요하다 20%의 여유시간만 있어도 충분할것 같은데.
역시 주말에 나와서 20%의 시간을 만드는 방법밖에는 없다.
혼자 공부하는것이 필요한 것으로 생각된다.
slack!! slack!! 시간은 24시간 누구에게나 공평하다!






2015년 2월 읽은책들

인프라엔지니어의 교과서

인프라 엔지니어의 교과서
서버를 어떻게 구축할지 배우려고 샀는데 엉뚱한 지식들을 알게되었다.

* 아마존의 IAAS 기반의 EC2 서비스
* 하이퍼바이저 가상화 서버기술
* 서버에 ecc (서버가 많아질수록 확률적으로 데이터 깨짐)



배운점은 아마존이 정말 대단한 회사라는것이다.
클라우딩 컴퓨팅을 서비스하는 회사에게 framework 를 제공하는것을 서비스한다는것이
놀라웠다.

메모리 ECC 에 대해서는 앞으로 SoC 수준에서 반드시 지원되어야할 기능으로 보인다.

사실 양자역학에 따르면 에러는확률에따라 발생하고, 사람이 벽을 뚫게 지나갈 확률도있다.
따라서 서버의 갯수가 셀수없을정도로 많아지면 데이터의 깨짐이 발생할수 있을것 같다.

reuse methodology manual


Product Details
10년전쯤 2판을 읽었을때는 이책은 DFT 를 어떻게 처리할지에 대한 참고서적으로 보았다.
그런데 3판의 내용은 완전히 다른것이 되어있었고,...
일찍 이책을 읽지 않은것을 후회하게 되었다.
SoC 개발서적의 바이블이라고 할수 있을것 같다.
IP 나 Chip 을 개발할때의 방법론(프로세스)를 아주 잘 기술해놓았다.
SoC 개발을하면서 문서화를 어떻게 해야할지 잘 몰라서 고민되는 부분이 많았는데
여기서 힌트를 많이 얻게 되었다.
현재 나를 많이 부끄럽고 반성하게 하는 책이다. 
꼭 회사에 적용하여 한단계 뛰어넘어야 하겠다.


이번달은 달랑 2권밖에 못읽었네...

거의 한달동안 RMM(ruse methodology manual) 만 본것같다.
아무래도 원서니까 읽는것이 오래걸린다.

삼성 대출왕인가? 아래 링크에 나오는 사람은 1년에 300권을 대출한다는데



요령인 즉은 필요한 부분만 발췌해서 읽는다고 한다.

아무래도 나도 책을 읽는 요령을 바꿔야 할것 같다.

괭장히 디테일하게 읽는 편이여서 저자의 경험이나 의도까지도 잡아낼수는 있는편인데
그것보다는 더 많이 읽는 편이 좋을것 같다.

이대로 책을 읽다가는 10년동안 400권도 못읽게 생겼다. 

2015년 1월 읽은 책들

죽은 열정에게 보내는 젊은 구글러의 편지


앞표지


구글에 가고싶다고?
그럼 저자 김태원 정도는 열정적인 삶을 살야아한다.
과연 나는 열정이 있는가?라고 반문하게 되었다.

위 책을 보면
5년후 목표를 세우고 계획을 진행하는사람은 MIT 학생의 3% 였다고한다.
5년후 목표만 있는 사람은 19%였다고한다.
그 3%와 나머지 19%의 수입차는 10배였다고한다.
목표만 있고 플랜이 없는 회사는 성공할수 없다. 
목표가 구체적이여야만 달성가능하고, 달성가능해야만 계속 지속할수 있는 원동력이된다.

Head First Python

Head First Python

python 문법을 속성으로 공부하고 싶어서 , 단점은 속성으로 공부해서 빠르긴한데
빨리 공부하면 머리에 남는게 없다.
내용을 공부해보니 ruby 문법이 python 보다는 훨씬 간결함을 느낄수 있었다.
아마 10년후에는 ruby 가 더 많이 쓰이지 않을까?
ruby 가 python 보다 더! 덜 객체지향적인면이있다.
예를들면 아래 2개중 무엇이 객체지향적인가?
* if array.length > 0      (ruby)
* if length(array) > 0     (python)



치명적 파이썬 


해커의 언어, 치명적 파이썬
파이썬 책은 많지만 루비 책에 비해서 하이 퀄리티의 재미있는책이 없는것 같아서
이것 저것 뒤지다가  파이썬 문법이나 공부하려고 산책인데.
이런! 해킹을 배우게 되었다.
해킹이 어떻게 이루어지는지 대략이나마 알게되어서
그동안 전혀 몰랐던 부분에대해서 지식을 가지게 되었다.

보안이 얼마나 중요한지 새삼 느끼게 되었다.

미래에는 보안이 더 중요해질것이고 반도체에도 보안관련 기능들이 더욱더 추가될것으로 보인다.

실용주의 cvs

실용주의 프로그래머를 위한 버전관리 using CVS

cvs 보다는 실용적인 버전관리를 배우고 싶어서 산 책이다. 
이전에 한번 봤는데 뭔가 배울것이 없나하고 다시 읽어보았다.
요즘은 cvs 는 한물가고 git 을 많이 사용하는추세인데 
본 책에는 버전 관리 자체에 대해서 나온다. 
아래와 같은것들은 다른 버전관리 tool 에도 적용할때 도움이 될듯하다.
* 버전간 차이점 비교하기
* 변경을 되돌리기
* module 과 alias 로 다른 저장소와 연동하기
* ip release 시에 branch 문제및 버전문제

이번달은 4권을 읽었다. 내용이 어렵지 않은 책들이라 1주에 한권씩 읽을수 있었다.