글쓰기 메뉴

RMagick, Interlaced "Progressive JPEG"

JPEG 에서 Progressive(프로그레시브)는 영상처리에서 말하는 프로그레시브와는 좀 달라. 영상의 프로그레시브는 순차적 주사를 의미하는데 JPEG의 프로그레시브는 오히려 인터레이싱과 같이 뭉개진 단위를 먼저 출력하고 여러번에 걸쳐 점점 선명하게 이미지를 표시하는걸 말하지.


이미지의 인터레이싱은 위키에서 퍼온 아래 GIF 를 보면 이해가 빡!


adam7_passes.gif


RMagick 에서 인터레이스 사용

img = MiniMagick::Image.read(filedata.read)
img.combine_options do |c|
    c.quality "100"
    c.interlace "plane"
end
img.write("~/sample.jpg")


인터레이스 확인

$ identify -verbose file.jpg | grep Interlace


어디서 왔지?
[["www.google.com.ua", 1], ["synd.kr", 4], ["www.google.co.in", 1], ["www.google.ru", 2], ["unknown", 337], ["www.google.co.kr", 9], ["www.google.com.tw", 1]]
다른 글들
0 1
Square

이미지 업로드 퀄리티

업로드한 이미지 퀄리티가 너무 손상되네요.
3 1
Square

많이 늦었습니다. 움짤.

업로드된 이미지의 프레임수로 컨디션 하나 추가하는 일이었는데 오래걸려서 죄송합니다.
2 0

씬디는 입력기에서 사진을 자를 수 있지

씬디는 사용자의 글 작성을 돕기 위해 간단한 사진편집기능을 제공하고 있지.
텍스트 입력기에 사진을 업로드하면 업로드한 사진에 대해 "자르기", "모자이크", "회전" 세 가지의 편집 기능을 사용할 수 있다는 말이지.
이미지를 등록하고 > 등록된 이미지를 클릭하고 > "편집"을 선택한 뒤 > 포토에디터 버튼을 선택하면 새창으로 사진편집기가 열림. ㅇㅇ
사용데모는 아래 동영상에서 확인!
1 0

씬디버그 리포팅
- 대신 작성

페북 메시지로 받은 버그 및 의견
1. 글 수정누르니 본문에 입력한 링크가 사라짐.
2. 그 상태에서 서브밋하니 링크 날라감.
3. 맥에서 글 쓰다보면 모음과 자음 분리형상 자꾸 생김 ㅇㅛㄹㅓㅎㄱㅔ


리퀘스트.
1. 이미지 추가, 혹은 이미지 링크 추가있었으면
2. 커버도 수정할 수 있었으면
일단은 현재 에디터가 실 사용에서 생각만큼 쾌적하지 않다는 것, 인지하고 있습니다.
에디터는 주말 중에 변경하는 것을 목표로 작업하고 있습니다.
이미지 추가는 가능하나 버튼들이 우하단에 잘 숨어있어서 안보임! 
2 0

인쇄 및 PDF 내려받기

인쇄버튼과 PDF 내려받기 기능이 추가됐습니다.
같은 방식으로 XML과 이미지 등 많이 쓰이는 형식으로 글을 내려받는 기능을 천천히(!) 추가할 계획입니다.
큰 쓰임이 없는 기능이겠으나 "입력"에만 집중하겠다는 씬디의 현재 컨셉과는 잘 맞는 기능인 것 같습니다. 생산된 콘텐츠의 유통과 사용은 기존방식과 망에 맡기는게 좋다는 (교체가 넘사벽) 생각입니다.
다음 업데이트는 손쉬운 조작을 위해 페북 공유를 OG로 변경하는 작업, 카톡이나 이메일 공유 등의 기초적인 공유 기능의 정리를 계획하고 있습니다.
쌓인 작업 중 우선 순위가 높은 작업은 "표 입력", "차트 입력", "폰트 및 디자인 수정", "파일 첨부" 등 입니다. 
끝!      
0 0

MiniMagick jpg 저장 시 알파채널 검게 나오는 문제

MiniMagick 이나 ImageMagick 에서 jpg 포맷으로 알파채널이 있는 png 등의 이미지를 저장시킬 경우 투명부분이 검게 저장되지.
일부는 코맨드로 convert 를 사용할 경우 background 만 흰색으로 지정하면 문제가 없다고 하던대 MiniMagick 은 mogrify 를 사용해서 그런건지 BG 지정만으로는 안되고 아래처럼 background 를 지정하면서 알파 채널을 삭제하면 되더군.
그리고 중요한점! 반드시 format 을 변경하기 전에 해당 코맨드가 들어가야 정상적인 결과가 나오더군
0 0

우분투 14.04 wkhtmltopdf 설치

wkhtmltopdf 는 HTML 페이지를 PDF 로 만들어주는 오픈소스 도구로 Qt WebKit 엔진을 사용한다. 자매품인 wkhtmltoimage 는 같은 방식으로 HTML 을 다양한 형식의 이미지로 변환시켜준다.
Ubuntu 14.04 에서 apt-get 으로 wkhtmltopdf 패키지를 설치할 수 있으나 Qt 가 wkhtmltopdf 에 맟춰 패치되지 않았다면 몇 가지 기능이 제한된다. 예를 들면 HTML 에 있는 링크가 PDF 에 사라지는 등의 오류가 있을 수 있다. 관련 옵션은 --enable-external-link 인데 Qt 가 패치되어 있지 않으면 해당 옵션을 켤 수 없다. 
그러니 wkhtmltopdf 홈페이지에서 컴파일되어 있는 바이너리를 다운받아 설치하도록 하자. 만사가 편하다.
* 우분투 서버를 사용하고 있을 경우 X 시스템과 폰트관련 패키지가 설치되어 있지 않다. 이럴 경우 먼저 필요한 패키지와 폰트를 설치하자.
폰트는 마음에 드는 패키지를 찾아 설치하면 되는데 별도의 설정없이 바로 사용할 수 있는 한글 폰트는 unfonts, baekmuk, nanum 정도 되겠다. 각각 패키지는 아래와 같다. (우분투위키에서 CJK 폰트 참고)
은폰트 - unfonts
백묵폰트 - baekmuk
나눔폰트 - nanum
폰트툴과 폰트가 설치 된 후 wkhtmltopdf 다운로드 페이지에서 Ubuntu Trusty (14.04.1) 버전(64-bit)의 .deb 파일을 다운받아 아래와 같이 설치한다. 
설치 후 아래와 같이 확인할 수 있다.
webpage/url 이라는 주소의 웹페이지를 save.pdf 로 변환하는 명령어 예제는 다음과 같다. 자세한 옵션은 man wkhtmltopdf 로 확인할 수 있다.
--print-media-type
스크린 타입이 아니라 프린트 미디어로 PDF를 렌더한다.
--page-size
페이지 사이즈를 지정한다. Letter, A4, A3 등의 형식으로 지정할 수 있다.
* 공식 홈페이지에서 전체 리스트 링크를 제공하고 있으나 현재 사용이 연결이 되지 않는다. 소스에서 확인한 전체 리스트는 이 곳에 적어둔다.
* --page-width, --page-height 로 페이지 크기를 지정할 수 있다 
--dpi
dpi (dots per inch) 값을 지정한다.
-T, -B, -L, -R
상(Top), 하(Bottom), 좌(Left), 우(Right) 여백을 지정한다.
요즘 웹페이지의 PDF 변환이나 이미지 캡처는 요즘 PhantomJS 를 사용한 방식이 훨씬 많이 소개되고 있다. 의존패키지에 대한 고려나 설정에 대한 부담감이 없기 때문일텐데 개인적으로 wkhtmlto* 를 오래전부터 사용하고 있어서 정리해봤다.
2 3

"남편들이여 어쩌구 저쩌구"의 글들

남자는 아내가 하는 이야기를 그냥 들어주는 법을 배워야 한다.

이 글을 읽고 문득 든 생각인데..
남편들이여. 어쩌고 저쩌고.. 이런류의 글들을 보면..

항상 남자가 무엇인가 참거나 인내하거나 액팅하는 등등의 내용이다.


1.
왜 항상 남편들이 뭔가를 시정해야만 한다는 글들만 있는걸까?
왜 여자들이 시정해야 한다는 내용의 글은 별로 없는걸까?
2.
웃긴건 이런글을 쓰는건 대부분 남편들이라는거다.
결국 자신만의 경험을 공유하는건데.. 
이런 공략집(?)을 내는 이유는 남편들끼리 전우애(?)가 어느정도 있는것 같기도 하고..
이걸 보는 낄낄거리는 남편들은 글 내용에 공감하기도 하면서 한편으론 화평한 가정을 꾸미고 싶은 마음도 있을것이다.
3. 
암튼 항상 모든 문제는 남편이 제공하는걸까?
그 정도로 아내는 완벽한 사람(거의 신급)인건가?
왜 남편이 아내에게 일방적으로 맞춰야만 하는건가?
왜 그래야만 가정이 화평한건가?
4.
흠.. 결국 서로 이해하고 배려해야하는건데..
보통 남편이 이해해라, 남편이 양보해라,  뭐 결국 이런 내용이다.
남자가 뭘 그렇게 잘못한건가?
왜 항상 남자만 이해하고 양보하고... 그래야 하는건가?
5.
암튼, 이런류의 글들을 읽다보면 괜히 억울하고 분노가 올라온다.
왜 항상 모든 문제의 원인은 남자한테있고, 남자가 수정해야 하는건가.
이게 남여평등인건가? 남자가 희생하는게?
아님 내가 여성혐오인건가?
솔직히 "전구 갈아주세요", "프린트가 안되요", "컴퓨터가 어쩌고 저쩌고" 부탁하는 여자들보면 짜증난다.
이건 남여구분없이 누구나 할 수 있는거다. 본인이 조금만 노력하면 되는거다.
이런 날로먹는 근본.. 정말 혐오한다.
도둑년심보같으니라구..
이게 여성혐오인가? 글쎄.. 저런 거지근성의 사람들. 성별 구분없이 전부 혐오한다.
성별을 떠나 본인은 노력하지 않고, 상대방이 모든걸 맞춰주길 바라는, 희생하길 바라는, 대접받는게 당연하고 여기는 그 모든 새끼들. 혐오한다.
솔직히 아래 링크 이미지.. 백퍼 공감한다.
아 몰라.. 그냥 딥빡쳐서 그냥 막 두서없이 휘갈기는겨.
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
2 1
Square

씬디 시즌투를 시작한다

시즌1이라는게 없었는데 시즌2를 시작한다니 놀랍군.
어쨋든 시즌2는 다음과 같이 요약됨.
숨겨진 감성이든
누군갈 욕을하든
알게된 지식이든
맛있는 사진이든
자꾸쓰면 잘써진다.
잘쓰려면 자꾸쓰자.
글쓰기는 잔근육빨.
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 을 리스닝하고 있는 아래의 설정이 요청을 수신하게 된다. 
끝.
0 0

아우 나 돌머리...

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