글쓰기 메뉴
3 1
Square

씬디 시즌투를 시작한다

시즌1이라는게 없었는데 시즌2를 시작한다니 놀랍군.
어쨋든 시즌2는 다음과 같이 요약됨.
숨겨진 감성이든
누군갈 욕을하든
알게된 지식이든
맛있는 사진이든
자꾸쓰면 잘써진다.
잘쓰려면 자꾸쓰자.
글쓰기는 잔근육빨.
0 0

미니멀리즘

인테리어나 삶의 방식이 아니라 소프트웨어나 서비스라면 사실 사용자에게 "미니멀리즘" 이 느껴지게 하기위해 물밑에서 엄청난 발장구를 쳐야겠지.
사용자는 아무것도 선택하지않고 (그랬다고 알고있고) 항상 재밌어야할테니까..
0 0

Rails 모든 연결 SSL 로 변경하기 + Nginx Redirect

Let's encrypt 와 EFF 그리고 여러 스폰서들과 개인기부자들 덕분에 간단하게 SSL 을 적용했으니 이제 모든 http 연결을 ssl 로 돌려보자.
Rails 에서는 Controller 단위에서 force_ssl 을 사용할 수도 있고 보다 와이드하게 전체 설정에서 다룰 수도 있다.
씬디는 https 변경에 다른 별 이슈가 없기때문에 config/environments/production.rb 에 force_ssl 을 설정했다.
이렇게 설정하면 route 룰을 포함해 모두 ssl 연결로 변경된다.
NginX 나 Apache 등을 리버스 프락시로 구성하여 백단에 서버들에게 넘겨준다면 다음의 헤더를 반드시 포함시켜야한다.
Rack 서버는 1) 443 포트로 연결되었는지 2) ENV['HTTPS'] 값이 "on" 인지 3) X-Forwarded-Proto 헤더가 "HTTPS" 인지 3 가지를 보고 판단하기 때문에 리버스 프락시 뒤에 있는 puma 나 unicorn 등은 443 포트가 아닌 다른 포트나 유닉스소켓으로 통신하기 때문에 HTTPS 연결인지 확인하지 못하고 계속 리디렉션 시키게 된다.
NginX 나 Apache 단에서 301 리디렉션으로 연결 프로토콜을 변경할 수도 있겠다.
80 포트를 수신하는 서버 설정을 넣고 해당 설정에서는 http 를 https 로 변경하여 리디렉션시키면 443 을 리스닝하고 있는 아래의 설정이 요청을 수신하게 된다. 
끝.
1 1
Square

SSL 인증서 설치 및 적용
스마트폰 ssh 접속으로 5분만에 완료?!!?!
그것도 무료??!!?!??!

이건 누구의 얘기도 아닌 제 얘기. 제가 씬디에 https 를 적용하기 않고 버틸 수 있던 합리적(!) 이유들.

하지만 계속 눈에 밟히는....
그리고 괜시리 갖고 싶은 녹색 자물쇠
그리고 오늘.. Let's encrypt 와 EFF 의 Certbot 으로 인증비용없이 뻥안치고 스마트폰으로 5분만에 SSL 도입 끝.
물론 후속 설정들과 이미지, 외부 소스 등에 대한 url 점검과 설정이 필요했지만 이건 레알 신세계.
근데 이거 나만 몰랐어???
불과 몇달전에도 클라한테 인증서 구매시키고 서버세팅했었는데???
블로그 참 열심히 하시는 존경스러운 outsider 님이 2015년에 베타를 경험했던 포스팅은 여기.
이후 EFF 에서 Certbot 에 Apache, Nginx 등의 소프트웨어와 서버 OS 를 플러그인으로 개발하면서 지금은 서버설정까지 Certbot 이 완료시켜주고 있음.
설치는 EFF Certbot 페이지에 가서 자신의 서버와 웹서버를 선택하면 나오는 메뉴얼대로 (대략 5 ~ 7 커맨드) 하면 끝.
난 심지어 지하철에서 스마트폰으로 ssh 연결해서 설정 끝냈음. ㅇㅇ
내 케이스는 nginx / ubunt 14.04 LTS 로 실제 설치 커맨드 히스토리는 아래와 같음. 아래가 전부임.
이렇게 하면 1) 이메일 주소 입력하세요. 2) 이메일 수신 OK? 3) (서버레벨에서 확인된 도메인 중) 어떤 도메인 쓸꺼임? 4) https 만 씀? 80도 같이 씀? 이렇게 4개 물어보고 답하면 된다.
이후에 nginx 에서 http 접속을 https 로 리디렉션 시키던지 Rails 에서 모든 연결에 ssl 을 적용하는 등의 설정을 하면 됨. 이건 별도의 글로 작성.
이제 Let's encrypt 라는 회사를 살짝 알아보자.
리눅스 재단 (Linux Foumdation) 과의 협력프로젝트라고 사이트 상단에 '이미지'가 박혀있는데 어떤 관계인지는 확인하지 못했다.
ISRG 라는 캘리포니아의 기업에서 "HTTP" 보안이 기업들과 사용자들의 비용절감에 직간접적인 도움이 된다는 생각으로 시작했다고한다.
기본적으로 ACME (인증관리자동화환경) 을 보고 있고 실제로 해당 목적을 훌륭하게 수행하는 솔루션이 있다. letsencrypt 에서 개발하다가 현재는 EFF 에서 개발하고 있으며 패키지이름은 Certbot. 인증절차 및 인증서 설치 이후 갱신을 "명령어 하나로" 처리해준다.
SSL CA 로 중요한것은 얼마나 많은 주효한 클라이언트가 이를 인증된 CA 로 받아들이는가 하는 부분인데 해당 목록은 이곳 링크에서 확인할 수 있고 파폭 2.0+, 크롬, 익스 XP3+, 엣지, 안드 2.3.6+, 맥 사파리 4.0+, iOS 사파리 3.1+ 등등 그냥 믿고 사용해도 되는 수준이다.
또 하나는 letsencrypt 의 생존력인데.. 인증서가 무료다보니 기업의 유지가능성도 살펴보는게 좋겠다.
기업 스폰과 기부금으로 운영되는 것으로 보이며 공식홈페이지에서 스폰서들은 소개하고 있다.
문서상으로 년간 30만불(3년유지) 또는 35만불을 지원하는 플래티넘 스폰서는 mozilla, Akamai, SISCO, EFF, OVH, chrome 등의 6개사이고 그 외 IdenTrust,  포드재단, 페이스북, 디지털오션, 볼터, 쇼피파이 등 다수의 스폰서들이 있다.
역시나 결론은 그냥 믿고 쓰면 되겠군이라는 결론 ㅋㅋ
EFF 는 Electronic Frontier Foundation 의 약자로 한국위키 이름이 "전자 프런티어 재단" 이다.

뭔가 틀리진 않았지만 우습달까?
EFF 는 '디지털 월드' 에서 사용자들의 자유를 지키기 위해 1990년 설립된 비영리 재단으로 블루 리본 캠페인도 여기서 시작했다고 한다.
물리적으로는 관계되기 힘든 연결고리 없는 사람들과 조직이 어느날 나에게 직접적으로 혜택을 주는 일들이 많아지는게 참 재밌고 고마울 뿐이다.

진짜 고마우면 Donate! 
Support Let's encrypt
Support EFF Certbot
0 0

아우 나 돌머리...

아 된장. 원래 소스나 프레임워크 업뎃이 목적이 아니였고.. 글 상세 페이지 하단에 나오는 연관글들 로직 수정하려고 했던건데... 초반에 글이 너무 없어서(지금도 적지만) 최신글 몇개를 박아넣었는데 그게 아직도 살아있어서 없애려는 목적이였는데...
코드를 여는순간 매직!!!! 뻘짓만 드럽게했네.
1 0
Square

업데이트

프레임워크 버전이 너무 올라가서 나중에 따라가려면 대형 공사가 될까 걱정되어 프레임워크 버전업. 하지만 이미 큰 공사였음. 아 힘들어.
텍스트 에디터도 자잘한 오류들이 많이 보여서 코드 정리 및 라이브러리들 일부 업데이트. 완전 힘듬.
별로 테스트 해볼 시간은 없어서 대충 동작되는 것 같아서 서버에 적용.
오류나면? 알려주삼.
1 0
Square

안드로이드 앱 업데이트

씬디는 원래 웹 버전이 베이스라 (아.. 시대착오적...) 초기부터 쓰시던 분들은 앱이 있는지도 모르실텐데 몇달전에 안드로이드만 우선적으로 (제가 안드유저라) 등록했었습니다.
저조차도 앱은 설치했지만 설치하고 보니 '당겨서 새로고침' 이 안되기에 뭔가 어색해서 안쓰고 있었죠.
그런데 간간히 안드 앱으로 사용자분들이 들어오시더니 급기야는 누군가 플레이스토어에 무려 리뷰를 남기신겁니다!!
화면 회전 시키면 첫페이지로 돌아간다는 오류 리포트를요.
엄청나게 짜증나는 오류일텐데 그걸 리뷰로 남겨주신 정성과 애정에 무한한 감사를 느꼈지만 과연 내가 언제 업뎃 작업을 할 수 있을까하는 걱정도 있었습니다.
그러다가 오늘 아침 드디어!!! 꽤 이른시간에 출근하게되어 상큼한 기분으로 풀충전되어있는 그 타이밍을 놓치지 않고! 앱을 업데이트했습니다.
회전 시 초기페이지 이동 오류와 '당겨서 새로고침' 을 추가했습니다.
혹시나 씬디 사용하시다가 오류나 버그가 아니여도 불편한점이 있거나 추가되면 좋겠다는 내용이 있으면 아무곳으로나 알려주세요.
씬디에 글로 써주시면 제일 좋구요.
사족)
당겨서 새로고침을 직접 구현하지 않고 안드로이드 SDK 에서 제공하는 SwipeRefreshLayout 을 사용해버렸네요.
구버전 호환성을 꼼꼼하게 확인하지 않았는데.. 업댓은 했으나 마음의 짐은 또 하나 생겼네요 ㅠ.ㅠ
2 2
Square

커피 - 아침마다 깜놀

미국영화나 드라마보면 아침마다 드립커피가 항상 있던데 ( 누가 내렸을까!!) 난 출근하고 첫 커피를 마시지.
놀라운건. 매일매일 새삼 놀라는건.
첫모금이 넘어갈때의 그 "각성의 맛"
실제로는 매우 무뎌서 카페인으로 인해 잠이 안온다든지 하는 일은 겪어보지 못했지만 이건 그야말로 각성의 맛.
매일 아침 첫모금이 질리지도 않고 매번 절로 감탄이 튀어나오니 진짜 놀라워.
1 0
Square

"여름"은 스크류바!

해가 미친듯이 내리쬐고 아스팔트에 아지랑이가 스믈거리는 뜨거운 한낮에 좀이라도 시원할까 싶어 스크류바를 산다면 질질 녹아 흐르는 끈적한 설탕물 범벅 ㅋ
다 먹고 나면 넘넘 단맛이라 입안도 끈적끈적.
1 2
Square

내 생각을 멈추면
지구가 멈춰
그렇게 돌아가지
태양말고 너
2 1
Square

foo, bar - Metasyntactic variable
메타구문변수라니.. 번역해도 뭔말인지...

개발자들은 foo, bar 라는 단어가 아주 친숙하지.

그냥 "무엇이든 지칭할 수 있는 의미없는 단어"로 예제코드나 문서에서 매우 자주 쓰이니까.
그래서 개발 시작한지 얼마안되는 초보시절(!)에 foo, bar (합쳐서 foobar 라고도 많이 부름) 의 어원이나 정확한 의미를 찾아보는 시간을 갖지. 나 역시 찾아봤었고.
영문은 위키피디아에서 보면 되고,
한글로는 이게 제일 그럴듯해. (군대 은어 - FUBAR 에 대한 설명만 빠져있음)
다만 foo 를 한글의 "홍길동" 이라고 이해하지는 말자. "홍길동"은 지칭되는 사람이 없는 사람을 뜻하는 단어지만 foo 는 사람이든 사물이든 가리지 않고 무엇이든 지칭할 수 있으니까. 
그런데 foo, bar 다음은 뭔지 알어? 다음 단어가 있긴 있을까?
이게 메타구분 변수 목록이야 ㅋㅋㅋㅋ 너무 재밌고 신기하고 신나서 글 써봄 ㅋㅋㅋ
2001년 만우절에 작성된 RFC3092 문서에 나와있네.  RFC3092
근데 형들 RFC 가 무슨 약자인줄 알어? 이것도 재밌는데 ㅋㅋㅋ
0 1

Vim with the Syntastic plugin and ESLint (feat Vundle)

나는 nerdtree 라든지 하는 플러그인 안쓰고 날것의 vim 을 좋아하는데 syntax 나 eslint 는 필수기 때문에 써야지.
플러그인 관리 대세가 pathogen 에서 vundle 로 넘어간 듯.. 대세는 또 따라줘야지.
Vundle: https://github.com/VundleVim/Vundle.vim
Syntastic: https://github.com/vim-syntastic/syntastic
깃허브에 아주 잘 설명되어 있고.. 아래는 내 설치 히스토리.
소스 받기
.vimrc 에 다음 내용 추가 - Syntastic(만) 포함됨
설정된 플러그인 인스톨
플러그인 인스톨하면 화면 쪼개지고 설치 진행됨. 당황하지 말고 Vim 상태표시줄에 다 끝났다는 메시지 나오면 끄면 됨.
ESLint 는 글로벌로 설치해놓고 
사용하고 있는 .eslintrc 가 없다면 프로젝트 root path 에서
eslint 설정 파일이 있다면 아무 파일이나 돌려보면 eslint-plugin-react 등 필요한 것들 설치해줌
글로벌로 npm 설치해도 물론 됨
끝.
0 1

Mac Xcode 다운로드 2일 12시간...
느려도 너무 느려 터진 iTunes

쌔끈한 브랜~뉴 맥에 개발 환경 설정하다가 높은 확률로 빡치는 곳. 
Apple Development Center 에서 Xcode 다운로드 시도하면 iTunes 로 넘겨주는데 다운로드 누르면 남은 시간이 고무줄.
아, 제목에 2일 넘는건 뻥이고 2시간 30분 남았다고하네. 2시간 30분. 퇴근하겠는걸?
암튼... iTunes 로 안넘어가고 아래 페이지에서 필요한 파일 찾아서 브라우저에서 다운로드 할 수 있음.
apple 계정으로 로그인은 해야하고..
https://developer.apple.com/download/more/

이어받기가 필요하다거나 브라우저 다운로드가 왠지 모르게 불안하다면 gem 중에 adcdownload 라고 있음. wget 사용해서 이어받기도 되니 필요하면 아래처럼 사용할 수 있음
$ gem install adcdownload --no-document
$ adcdownload get http://adcdownload.apple.com/Developer_Tools/Xcode_8.3.2/Xcode8.3.2.xip
이렇게 실행하면 apple 아이디와 비밀번호 묻고 다운로드 시작. 
다운로드 링크는 물론 저 위에 페이지에서 파일 url 복사한거.
중간에 끊어지면 그 위치에서 다시 같은 커맨드로 이어받기 가능.
[링크]
https://developer.apple.com/download/more/
https://github.com/MagLoft/adcdownload
0 0

깃(깃허브) 브랜치 작업 커맨드 히스토리

이번팀은 자기 계정으로 포크안하고 origin 클론 받아서 브랜치만 쪼개서 작업하던데 난 포크시켜서 하는게 마음이 편해.

문제는 할때마다 까먹는다는거 ㅋㅋ
깃보다 서브버전을 오래, 자주 써서 그런것도 있고 서브버전은 체크아웃, 브랜치, 머지, 커밋 이렇게 비교적 직선에 가까운 작업 형태인데 깃은 확실히 시각화 될 수 있는 수준의 단계에 대한 이해가  필요한 것 같음.
암튼.. 깃허브를 쓴다고 가정하고 내 방식을, 내 기억을 위해 기록.
1. 원본 리모트 레파지토리 내 계정으로 fork
2. 클론
3. 리모트 네임 변경
4. 원본 리모트 레파지토리 추가
5. 최신 소스 동기화
6. 작업 브랜치
7. 작업 작업 작업
8. rebase - 마스터 헤드 이동 (브랜치 작업 시작 후 upstream master 의 커밋이 있는 경우)
9. rebase - 커밋 합치기
10. rebase - upstream 최신 HEAD 로 이동
12. Delete branch (local & remote)
13. Push
14. github 에서 풀리퀘스트 작성 및 전송
<링크>
http://www.popit.kr/오픈소스-git-프로젝트-pull-request-보내기/

http://dogfeet.github.io/articles/2012/git-merge-rebase.html
0 0
Square

Reason why I chose Nightmare over phantomjs, casperjs, selenium and ...

테스트용이 아니라 자동화, 스크랩핑(automation, scraping) 용도로 헤드리스 브라우저 - headless browser: 그래픽 인터페이스가 없고 프로그래밍으로 컨트롤 가능한 브라우저 - 를 살펴보고 있는데 종류도 많고 문서 읽어보면 각각의 장점도 분명해서 선택이 어렵다.
이럴땐 사용자도 많고 소스도 오랜시간 검증된 안전한 선택이 좋겠다.
하지만 ㅋㅋㅋ 결론적으로 이번 플젝에 Nightmare 를 선택한 이유는..
Nightmare 공홈이 너무 귀여워서 ㅋㅋㅋㅋ
ㅋㅋㅋ 개귀염
phantomjs 를 엔진으로 쓰다가 2배가량 빠르다는 Electron 으로 엔진을 교체했다는 솔깃한 얘기는 덤.
콜백지옥을 경험하지 않아도 되는 코딩 스타일도 덤.
react 로 작성된 웹페이지와 같이 특정 노드를 대기할 수 있는 메소드가 있는 것도 덤.
- 끝 -
http://www.nightmarejs.org/

http://www.seleniumhq.org/

http://casperjs.org/
http://phantomjs.org/
https://electron.atom.io/

https://github.com/dhamaniasad/HeadlessBrowsers [헤드리스 브라우저 리스트 - outdated]

https://en.wikipedia.org/wiki/Headless_browser [헤드리스 브라우저 위키]
0 0
Square

earth: windmap
어스 윈드맵으로 황사, 먼지 등 대기 상태 및 예보 보기

오늘은 정말 잠깐 밖에만 나가도 목이 칼칼하더군.
주변에 미세먼지와 황사의 강력한 조합으로 인해 목이 붓는 등 고통받고 계신분들도 꽤 보이고.
이놈의 황사는 언제 걷힐까 싶어 "어스"에 접속. 
은 노란 하늘 ㅋㅋ
저 두꺼운 먼지들이 언제쯤 걷힐까 예보화면을 확인함.
12일이 되면 한국 상공은 꽤나 투명하기에 주변인들에게 "어스"를 보여줬더니 "이게 머여?" 라는 반응.
미세먼지 예보는 앱들 설치 많이 했던데 "어스"는 잘 모르는 모양.
그래서 "어스" 에 대해 짧은 사용법을 작성하기로 함.
어스 윈드맵(earth: windmap)은 일본에 살고 있는 미국인 개발자 Cameron Beccario가 만든 웹사이트로 2013년 12월 11일 오픈했고 윈체스터 대학교에서 열린 The Graphical Web 2014 컨퍼런스에서 개발 배경 등에 대한 발표가 있었다.
일부에서 "어스"를 인디드(Indeed, 취업/채용 사이트)에서 만든 사이트라고 설명하는데 Cameron Beccario 는 위 컨퍼런스에서 개인 공부를 위해 시작한 개인적인 프로젝트였다고 밝혔다. (당시의 직장은 Indeed)
초기버전은 Air와 Ocean 두 개의 모드만 제공했으나 현재 Chem(케미컬)과 Particulates(dust, smoke, soot, clouds) 가 추가되었으며 GMAO/NASA 의 데이터를 사용한다.
대충 설명은 된 것 같고 짧은 사용법을 시작하기전에.. 진심으로 Cameron Beccario 의 수고와 노력에 감사한다.
여러분도 고마운 마음이 생긴다면 글 하단의 링크를 타고 Cameron Beccario 의 트위터에 인사를 남기거나, 어스의 아트웍을 구입해 직접적으로 도움을 줄 수 있다.
"어스" 사이트에 접속하면 기본값으로 설정된 지표면에 불고 있는 바람을 볼 수 있다.
https://earth.nullschool.net

미세먼지 및 대기 중 화학물질(일산화탄소와 이산화탄소, 황산화물)을 확인 하기 위해선 화면 좌하단의 "earth" 메뉴를 클릭해 설정을 변경해야한다.
[미세먼지 및 대기오염 물질 보기 설정] 
Height: Sfc (관측높이는 surface, 지표면으로 설정)
Mode: Chem
Overlay: COsc (일산화탄소)
Overlay: CO2sc (이산화탄소)
Overlay: SO2sm (이산화황)
Mode: Particulates
Overlay: DUex ((미세)먼지 = dust, smoke, soot, clouds 등으로 대기의 광학적 두께를 - 얼마나 불투명한지를 - 표현)
Overlay: SO4ex (황산화물)
[예보 및 지난 데이터 보기]
Control 메뉴
<< : 24시간 이전 데이터 확인
< : 3시간 이전 데이터 확인
> : 3시간 이후 데이터 확인
>> : 24시간 이후 데이터 확인
⊕ : 현재 위치를 중심으로 

Grid : 그리드 표시
▷ : 바람 표시
HD : 고해상도 설정
- 끝 -
https://earth.nullschool.net [어스]
https://twitter.com/cambecc [개발자 트위터]

http://memory.org/point.b/earth.html [아트웍 구매]
https://en.wikipedia.org/wiki/Cameron_Beccario [개발자 위키문서]

https://www.youtube.com/watch?v=QXNODLWhSbw [The Graphical Web 2014 발표]

https://gmao.gsfc.nasa.gov/GEOS/ [GEOS-5 - GMAO / NASA]
0 0

맥 시에라 vi / vim 클립보드 사용하기

1~4 단계의 과정이 필요할 수 있다.
1. ~/.vimrc
아래 내용을 사용자 홈디렉토리 아래 .vimrc 파일에 추가한다 (없으면 만든다)
2. +clipboard 로 컴파일 됐는지 확인한다
clipboard 옵션 없이 컴파일 된 경우

clipboard 옵션이 포함된 경우
2-1. clipboard 옵션이 없는 경우 brew 로 vim 을 설치한다
맥에는 기본으로 vim 이 설치되어 있다.
아래와 같이 brew 로 vim 을 설치하여 시스템 디폴트 vim 교체할 수 있다 (실제로 교체되지는 않고 path 설정 바꿔주는 듯)
3. 어떤 vim 이 호출되는지 확인한다
3-1. /usr/bin/vim 이 잡힌다면 /etc/paths 파일을 수정하여 /usr/local/bin 이 /usr/bin 보다 위에 나오도록 한다
4. 여기까지해도 동작되지 않는다면 
client-server 옵션으로 설치하면 동작하는 경우가 있다고 한다.
4-1. .vimrc 설정
1번의 설정으로 충분하나 아래와 같이 설정할 수 있다 (참조)
0 0

하나님

감사합니다.
제 짐을 내려주시고 그 어깨에 흥을 얹어주시니 감사합니다.
성전과 같은 경건함을 지킬 수 있는 용기를 주시옵고 주의 뜻을 귀기울여 찾고 행할 수 있는 힘을 주시옵소서.
아멘
0 1
Square

This light.

말 그대로 최선을 다해보자.
0 2

스팸 및 댓글에 대한
의견을 구합니다.

안녕하세요.
광고글과 광고댓글로 몸살이었던적이 있었죠.
제 관리나 기능으로 해결하지 못하고 지저분함에 사용자들이 떨어져나가자 효과없음을 느낀 스패머가 더 이상 활동하지 않았던건죠.
다른 공격적인 사용자라면 음담패설이나 모욕적인 댓글을 남기는 사용자가 있었구요.
아무튼 해결해야 하는 문제임은 분명하죠.
아래의 옵션 중에 투표를 해주시거나 다른 방안을 댓글로 알로주시면 작업 기일을 공표하고 진행토록하겠습니다.
1) 신고 기능
댓글이나 글이 특정횟수 이상 신고 될 경우 블라인드처리되거나 삭제되도록
2) 자신이 작성한 글 (손님글은 제외) 에 달리는 댓글은 적성자가 블라인드(삭제아님) 처리할 수 있는 권한 부여
3) 관리자가 24/7, 365모니터링 ㅋㅋㅋ
기타 의견이나 아이디어 있으시면 댓글 남겨주세요!
1 3 9