jenkins 관련한 발표 자료들은.. 아래 링크에 많이 모아져 있다. 

continuous deployment, 테스트, jenkins에 대한 컨퍼런스 자료(pdf, 동영상)들이 모여 있어, 공부하기 좋다. 


https://www.cloudbees.com/company/events/juc

Posted by '김용환'
,


2011년도에 과거에 서버 표준 작업과 오픈소스 거버넌스를 진행하면서 고민했던 내용과 철학을 정리했었다. 

http://knight76.tistory.com/entry/FOSS-%EA%B1%B0%EB%B2%84%EB%84%8C%EC%8A%A4-Free-Open-Source-Software-Governance-%EC%86%8C%EA%B0%90



NIPA소프트웨어공학센터에 구체적이고 상세한 글을 실었다. 

http://www.software.kr/mbs/swkr/jsp/board/list.jsp?boardId=183&mcategoryId=&id=swkr_040500000000



110호_공학_트렌드_JDK_WEB_WAS_서버_표준화와_오픈_소스_거버넌스_Part_1.pdf


111호_공학_트렌드_JDK_WEB_WAS_서버_표준화와_오픈_소스_거버넌스_Part_2.pdf


Posted by '김용환'
,



1. Foursquare 서비스 자료


https://qconnewyork.com/system/files/presentation-slides/jonhoffman-qconnyc-2014.pdf


http://www.slideshare.net/InfoQ/scaling-foursquare-from-checkins-to-recommendations

Scaling Foursquare: From Check-ins to Recommendations from InfoQ



2. Naver Labs의 김정희님의 딥러닝 자료 


http://www.slideshare.net/deview/2a4deeplearningatnaver


[2A4]DeepLearningAtNAVER from NAVER D2



Posted by '김용환'
,


회사 동료가 공유한 play framework의 asyn 기능을 java와 scala로 쉽게 설명한 문서.


http://www.slideshare.net/brikis98/play-framework-async-io-with-java-and-scala?related=1 


http://www.youtube.com/watch?v=cnPPLpIk9mo&feature=youtu.be&t=15m22s 


nonblocking과 async의 개념 정보

http://devsw.tistory.com/142 
http://stackoverflow.com/questions/2625493/asynchronous-vs-non-blocking 
http://stackoverflow.com/questions/7931537/whats-the-difference-between-asynchronous-non-blocking-event-base-architectu/9489547#9489547 

Posted by '김용환'
,


출처 :


http://books.google.co.kr/books?id=T_HMAwAAQBAJ&pg=PT63&lpg=PT63&dq=colon+%EB%B2%88%EC%97%AD&source=bl&ots=Bt44r3OyjQ&sig=A0PczhODQxcTaFDLSbsVKzxt-NE&hl=ko&sa=X&ei=6U9CVPyyMqK7mwWYsoGoBQ&ved=0CGEQ6AEwCA#v=onepage&q=colon%20%EB%B2%88%EC%97%AD&f=false



colon(:) 은 앞부분을 설명하기 위해 쓰이며, 적절한 접속사의 의미를 가진다.

semicolon(;)은 앞, 뒤의 문장이 의미상 밀접할 때 쓰인다. 

dash(-)는 기본적인 의미는 colon이나, 실제로는 semicolon이라 문장의 전후관계의 문맥에 따라 적절히 번역.


Posted by '김용환'
,

hiccup의 3번째 의미는 어려움이다. 소스 버전으로 다운받고 실행하다가 겪는 문제, 서버 행, 개발하면서 부딪히는 어려움 등.. difficult라기 하기는 사소하지만, 스트레스 받는 어려움을 hiccup이라 말하는 듯 하다... (주관적인 느낌)



a minor difficulty, interruption, setback, etc.:


예문)

http://penandpants.com/2014/02/28/using-conda-environments-and-the-fish-shell/
The first real hiccup I’ve run into is that conda’s environment activation/deactivation scheme only works in bash or zsh. I use fish.


http://www.dslreports.com/forum/r24702449-Internet-Hiccups-Hang-Ups-

 Internet "Hiccups/Hang Ups"




http://forums.steampowered.com/forums/showthread.php?t=679482

 But we ran into problems with it because the server would 'hiccup'--meaning it would hang for a few seconds like it was lagging (with no lag) and then resume gameplay.

Posted by '김용환'
,

Facebook은 feed 묶음 (aggregated) 처리를 진행하고 있다. facebook에서 사용했던 용어들을 익숙하게 하기 위해서 링크를 찾아보았고 스크랩해둔다. 


https://www.facebook.com/help/125104497570475?sr=4&query=aggregated&sid=0DKkiKaj6fSHye84U


http://www.ignitesocialmedia.com/facebook-marketing/facebook-grouped-news-feed-stories-topic/


http://www.insidefacebook.com/2010/08/11/threaded-comments-multiple/


http://www.insidefacebook.com/2010/09/28/aggregated-places-checkin-stories/


http://www.insidefacebook.com/2010/08/09/birthday-wall-feed/


http://www.insidefacebook.com/2010/11/09/aggregated-mentions-machine-reading/





Posted by '김용환'
,


과거에 하려고 했던 내용. (현재 있는 회사에서 한 것이 아님.)

계획했던 내용에 비해서 했던 것은 미미하지만. 나중에 다시 만날 수 있을 것 같아서 정리.



Part #1

- Legacy 시스템 유지보수를 맡게 되면서..

-- 시스템의 API Flow & History을 아는 이가 없음
    (API 나 Code의 Aliveness를 몰라 어떻게 해야 할지)

-- 대략 Dizzy 코드 / 보안 취약 

-- 시스템의 변경시의 Side Effect를 모름 (작은 수정에도 모든 API 테스트)

-- 시스템의 xUnit / 환경 전무

-- 형상관리 및 브랜치 관리 전무

-- 배포툴도 없음 (ant + ftp)

-- Document는 반영이 되지 않아 쓸모없고
-- 구전(口傳) 코딩 / 상상(Imagination) 코딩

-- 기존에 알던 사람들이 부정적


- 안좋은 Legacy 시스템은 정치적으로도 먼가 꼬여 있다. 




Part #2


- 형상 관리 정책 수정

- 개발 환경 구축

- Business Code 이해 & History 파악

- Dead Code 는 무조건 삭제 

- Code Refactoring

- Test Code (xUnit) 추가

- API 테스트 코드 추가 (Acceptance Test) 



Part #3

- 개발자 테스트 환경

-- 아키텍처

   (option 1) - vagrant + ansible 

   (option 2) - local 설치 + ansible

-- mockup : nodejs, ruby sinatra

-- 이미지를 만들어 Webdav 서버에 올려 개발자들이나 QA에 공유

-- acceptance test : rspec or http unit or 언어별로 알아서 api 콜 



Posted by '김용환'
,



conf/application.conf 파일의 jpda.port 를 지정해야 특정 포트에서 jpda.port에서 실행할 수 있다. command line에서 properties 등록으로는 jpda.port 변경이 되지 않는다. 


jpda.port=8010



디폴트 혹은 설정된 jpda port값을 지정했다 하더라도..  play run 이용하면서 비어있는 포트로 변경될 수 있다. 



Listening for transport dt_socket at address: 54489



play 실행시 python 데몬과 java 데몬 두개가 뜨는데. shutdown, startup 하면서 port 이슈를 최대한 적게 하려는 시도(??) 가 아니었을까 하는 생각이 들었다.  



 $ ps -ef | grep play

  501 72458  9133   0 12:00PM ttys002    0:00.10 python /mydev/util/story-play-1.2.5.3/play run

  501 72459 72458   0 12:00PM ttys002    0:02.00 /usr/bin/java -javaagent:/mydev/util/story-play-1.2.5.3/



자세한 정보는 document에 있다. 


~ If the application is in DEV mode, a JPDA session is automatically opened on the port specified by the 

~ conf/application.conf file's jpda.port property (defaulting to 8000). If the JPDA port is already in use, 

~ another available port is automatically chosen.

~

~ Options:

~ ~~~~~~~~~

~ -f: 

~ Disable the JPDA port checking and force the jpda.port value.


Posted by '김용환'
,

play framework 1 예제를 다운 받아 테스트해보기. 



예제 소스 다운로드 

$ play new excel-example


eclipse에서 열어볼 수 있도록 함


$ play eclipsify excel-example


실행

$ play run excel-example






Posted by '김용환'
,