Monad Programming with Scala Future

2016-03-03 KENNETH 0

Monad Programming with Scala Future 함수형 언어에 대해서 공부를 하다보면 언제나 Monad라는 녀석을 마주치게 됩니다. Category Theory의 수학적인 개념이 바탕이 되어 있는 Monad를 접하면 어렵고 난해해서, 많은 사람들이 Monad를 학습하는 과정에서 함수형 언어를 포기합니다. 하지만 Monad라는 장벽을 넘어서고 나면, 아니 조금만 이해하고 나면 함수형 언어를 개발하는데 있어서의 이해도와 생산성이 급속도로 높아지게 됩니다. Learning Curves (for different programming languages)라는 글에 보면 여러 언어의 학습과정에서 나타다는 다양한 특징을 그래프로 보여줍니다. 그 중에 Haskell의 경우 Monad의 대한 이해 과정을 거치기 전과 후가 확연하게 차이가 나는 것을 볼 수 있습니다. 이 글에서는, 필자가 Monad를 이해하기 위해 겪었던 방황 – 혼돈, 의문, 좌절 – 과 적응, 마침내 갖고놀기에 이르는 과정을 소개하고, Scala의 Future를 이용한 예제를 통해 Monad에 한발짝 다가가 보려고 합니다. Monad 방황기 Monad 공부의 시작은 늘 그랬듯이 구글링을 통한 검색이었습니다. 구글의 페이지 랭크 알고리즘이 추천해주는 링크를 따라서 생각없이 위키피디아의 Monad (category theory)로 첫 문을 [ more… ]

그래, 가끔 "Vim에서" GitHub을 보자!

2016-03-03 KENNETH 0

그래, 가끔 "Vim에서" GitHub을 보자! vimrc 건드리기 좋은 목요일입니다. ;) 기술 블로그 담당자가 글을 내놓으라고 닥달하니, 예전에 만들었던 플러그인이나 한번 꺼내볼까 합니다: https://github.com/junegunn/vim-github-dashboard Vim 상에서 GitHub API를 이용해 dashboard 페이지를 보여주는 플러그인입니다. 왜 멀쩡한 브라우저를 놔두고 이런 짓을 한 것이냐 물으신다면 … 그것 참 좋은 질문이네요. Vimscript 만 가지고는 API 결과를 받아오는 것이 불가능하므로 Ruby interface를 이용합니다만 (:help ruby) OS X 의 시스템 디폴트 Vim 에서 기본적으로 지원하기 때문에 사용하시는데 문제는 없을 겁니다. 제공하는 커맨드는 다음과 같습니다. GHDashboard[!] [user] 특정 유저의 dashboard 화면 GHActivity[!] [user|repo] 특정 유저 혹은 repository 의 활동 내역 Public GitHub 의 경우 조회만 하는 경우는 인증이 필요 없기 때문에 느낌표를 붙여서 실행하시면 되겠습니다. :GHD! junegunn CTRL-N / CTRL-P 로 링크 사이를 이동할 수 있고, Enter key 나 o를 누르면 해당 페이지가 브라우저에서 열립니다. 매번 본인의 ID 를 입력하는 것이 번거롭다면 다음과 같은 설정을 vimrc 에 추가하세요. [ more… ]

No Image

OpenSSL 긴급 보안 업데이트

2016-03-03 KENNETH 0

출처 : http://www.boho.or.kr/data/secNoticeView.do?bulletin_writing_sequence=24083 OpenSSL 긴급 보안 업데이트 □ 개요 o 3월 1일(현지시간) 오픈SSL은 SSLv2 규격(Protocol)에 대한 긴급 업데이트 발표[1] o SSL 취약점을 이용한 신종 공격 방식인 DROWN, CacheBleed에 대한 보안 업데이트 등 – DROWN(Decrypting RSA with Obsolete and Weakened eNcryption) – CacheBleed: 인텔 프로세서의 Cache-bank 충돌로 인한 정보 노출을 이용한 부채널 공격 □ 영향 받는 사용자 – OpenSSL 1.0.2 이전 버전 사용자: 1.0.2g로 업데이트 – OpenSSL 1.0.1 이전 버전 사용자: 1.0.1s로 업데이트 □ 업데이트 내용 o SSLv2 프로토콜 비활성화 기본 설정 및 SSLv2 EXPORT 암호화 제거 등 □ 취약점 내용 및 권고 사항 o DROWN: 낡고 취약한 암호화를 통한 RSA 복호화 – RSA(Rivest Shamir Adleman): 공개키 암호화 알고리즘의 하나 CVEs 심각도 내용 비고 CVE-2016-0800 높음 SSLv2를 이용한 TLS에 대한 프로토콜 간 공격 DROWN CVE-2016-0705 낮음 DFB, 발생 빈도 낮음 CVE-2016-0798 낮음 SRP 데이터베이스에서의 메모리 누수 CVE-2016-0797 낮음 널 포인터 역참조 및 힙 커럽션 [ more… ]

No Image

MySQL Router 2.0

2016-03-03 KENNETH 0

MySQL Router 2.0 MySQL Router 2.0 (2.0.3 GA, published on Thursday, 03 Mar 2016) Source: MySQL Router 2.0

No Image

DROWN Vulnerability CVE-2016-0800 in OpenSSL Misses Most NGINX Users

2016-03-03 KENNETH 0

DROWN Vulnerability CVE-2016-0800 in OpenSSL Misses Most NGINX Users A new OpenSSL vulnerability (CVE-2016-0800), called DROWN, was recently announced. It affects older versions of several widely-used server technologies: SSLv2, an old version of the Secure Sockets Layer protocol. Most up-to-date websites don’t use SSL at all, having moved to TLS (Transport Layer Security) IIS v7. An older version of Microsoft Internet Information Services NSS 3.13. Network Security Services, a widely used cryptographic library The DROWN vulnerability is described on the dedicated website, The DROWN Attack. It stands for Decrypting RSA with Obsolete and Weakened eNcryption, and makes vulnerable websites susceptible to man-in-the-middle attacks. DROWN is unusual in that it does not require a site to actively use SSLv2 or other vulnerable protocols. A site is vulnerable if it supports one of the vulnerable protocols or shares a private key with [ more… ]