글쓰기 메뉴
4 0

피들리

최근 봐야할 사이트가 많아서 피들리를 처음 써봤는데 정말 편하고 좋다.
(피들리는 rss서비스라고 하네요. )
분류도 쉽고 효율성도 올라가고 피들리를 쓰고나서 플립보드 앱은 바로 지웠다. 설치하고 사용을 거의 안했는데 
피들리는 많이 쓸거 같은 느낌.
feedly.com

인터넷 검색 많이 하시는 분은 한번 사용해보세요.
저는 인터넷 하면 창에 기본탭이 10개 이상입니다. ㅋㅋ 중독인가봐여
0 0

Rails4, Elasticsearch
관계 모델 및 Method 인덱싱

searchkick 이나 tire(retire) 등을 사용하지 않고 elasticsearch-model 을 사용하는 경우 mapping 을 사용해 인덱스를 설정할 수 있다.
내 경우엔 다국어 사용을 위한 store 컬럼들과 관계모델의 컬럼들, 그리고 일부 메쏘드를 인덱스에 포함시켜야했다. - 아마 모두가 비슷하겠지.
간단하게 as_indexed_json 을 오버라이드하고 인덱스 재성성 ㄱㄱ
해시와 배열이 뒤섞여 있어 좀 거지같아 보이지만 직접 해보면 이해가 쉽다.
1 3

가방

가방 들고 다니는거 너무 귀찮다.
옛날 커피숍 "보디가드"에 있던 하이텔 단말기처럼 아무데서나 사용할 수 있는 디바이스들이 있으면 좋겠다.
음.. 환경설정이 너무 오래걸리려나?
음.. 그냥 스마트폰 성능이 좋아지면 끝인가?
으음.. 당분간은 그냥 가방을 들고 다녀야겠군.
으으음.. 나 초딩같다 ㅋㅋㅋ
0 0

잠시 잊고 있던 씬디에 왔다.

예전에 올려놨던 신해철의 "아버지와 나"를 다시 한번 들어본다.
어떤 서비스던 많은 사람들이 쉽고 편안하게 또는 자주 사용 할 수 있게 만드는것은 참 어려운일이다.
그 제품, 서비스가 무엇이든 좋은 이야기로 만들어 회자되고 그 쓰임 그대로 쓰일수 있게 한다는거
그런 의미에서 씬디는?
2 2
Square

넘나 성실한 스팸알바생

기본적으로 손님 글 등록은 구글 캡챠를 사용하기 때문에 수동작업이 필수인데 꾸준히 할당량(?)을 채우고 있고 오늘은 심지어 커버까지 등록하는 인간적인 모습을 보여주네.
참.. 열심히 사시는구나. 나도 본받아야지.
1 0

파비콘 만들기

파비콘 관련해서는 소프트웨어도 많고 웹서비스도 엄청 많아서 대충 골라도 무난하게 작업되긴하더라.
그래도 근래에 몇번 유용하게 사용한 파비콘(및 아이콘) 제작 웹서비스라 Donate 는 힘들더라도 링크를 거는것으로 마음의 짐을 덜어보자.
"파비코메틱" - http://www.favicomatic.com/
0 2

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

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

여친 쇼핑몰 한다는데 맥프레삼.

맥도 써본적 없음
사용용도 쇼핑몰 운영
근데 OS는 윈도우설치
아니 도대체 왜..
그렇게 얘기해줬것만..
조언을 여기저기 구하지만, 결국 지 하고싶은데로 함.
그 말인즉슨 조언을 구하는게 아니라, 자기 의견이랑 같은 사람을 찾아서 자위하는것일뿐.
1 1
Square

[3분 복붙] 기사면 랜딩 PV 2배로 올리기.
브라우저 뒤로가기 제어.
이딴거 만들지 말자.

대부분의 서비스가 보다 많은 활동 사용자를 목표로 함은 분명하다.
하지만 얼마나 많은 활동 사용자가 있는지를 가늠할 수 있는 지표에 대한 목표설정은 좀 다른 얘기라고 생각한다.
심지어 그 목표의 달성을 위한 실현 과정이 사용자들을 열받게 만든다면 이 얼마나 근시안적 추태인지...
PV (Page View, 페이지 조회수) 에 대해 강한 집착을 보이는 국내 언론사들이 근래 "뒤로가기"가 실행되는 경우 이전 페이지로 보내지 않고 메인페이지로 이동되도록 하는 기능을 속속 도입하고 있더라. (좀 됐지.. 내가 잠수였던거지..)
사용자 입장에선 개빡치는 UX. 
그렇지만 남들이 한다니까 자기들도 해달라는 클라이언트의 등장은 당연지사.
해당 기능을 도입한 사이트들을 둘러보니 대부분 광고대행사 등이 제공한 스크립트를 사용하는 것 같더라.
메인페이지를 거치는 것도 짜증나는데 그 중간에 광고까지 껴있으니 개짜증..
이딴거 누가 안만들면 좋겠는데 일개 개발자가 뭘 할 수 있겠냐 고민하다가...
클라이언트에게 만들어준 간단한 스크립트를 모두에게 제공하고 너도나도 다들 도입해서 더 많은 사용자들이 더 빠르게 빡돌게 만들면 슬슬 이딴 쓰레기 같은 기능을 버리지 않을까라는 골때리는 결론에 도달했다.
0.
jQuery 를 사용하고 있다고 가정한다.
1.
아래의 코드를 기사 페이지 등 기능이 동작될 페이지에서 로드되는 js 파일에 추가한다.
3번 라인 정규식 패턴안의 synd\.kr 부분은 자신의 도메인으로 변경한다.
2.
기능이 동작될 페이지 HTML 코드 사이에 아래의 코드를 삽입한다.
완성!
코드는 단순해서 쉽게 이해할 수 있겠지만 몇몇 부분을 설명해보자면...
1. pushState 이후에 replaceState 를 다시 콜하는 이유.
pushState 만으로 history 를 조작할 경우 firefox 에서 백버튼이 골때리게 반복된다.
external > page > main > page > main > external
replaceState 를 다시 콜하면 아래와 같이 의도한대로 동작된다.
external > page > main > external
2. popState 이벤트를 사용하지 않고 hashChange 를 사용하는 이유
페이스북 앱 등 in app browser 를 사용할 때 해쉬가 없는 경우 뒤로가기 실행시 popState 이벤트가 발생되지 않음
해쉬를 추가해야 뒤로가기 실행 시 기존 URL (해쉬없는) 로 페이지 변화없는 이동이 발생하고 이 타이밍에 hashChange 가 콜 됨.
또한, Safari 9버전 이하에서 popState 가 지멋대로 fire 됨.
3. 이건 좀 쓸데없는 설명이지만 location.href 는 history 에 기록되고 location.replace 는 history 에 남지 않기 때문에 replace 를 사용해야함.
지원브라우저
웹이고 모바일이고 html5 history api 를 지원하는 브라우저 (http://caniuse.com/#search=history) 에선 기본적으로 모두 동작된다고 기대할 수 있으나 아이폰 크롬에서 동작안됨.
그 외 페이스북 앱 등 인앱에서 웹뷰를 사용하는 경우도 정상 동작.
Tested.
Microsoft Edge.
Microsoft IE 11.
Firefox 52.x (Windows)
Firefox 47.x (Linux)
Firefox 52.x (Mac)

Firefox 52.x (Android)
Firefox 6.x (iOS)
Chrome 57.x (Windows)

Chrome 48.x (Linux)
Chrome 56.x (Mac)

Chrome 57.x (Android)
Chrome 57.x (iOS) *동작안됨
Safari 10.x (Mac)
Safari 10.x (iOS)
Android 6 browser 4.x
Facebook App
자 이제 자리에서 일어나서 팀장이든 부장이든 상사에게 "저희 PV 를 2배로 올리겠습니다!" 라고 보고하고 보다 많은 사용자들의 빡을 돌려(?) 주삼. 
0 0

Ubuntu 14.04 - Apache Tika 설치

아파치 티카는 PPT, XLS, PDF 등 수천종의 파일에서 텍스트와 메타정보를 추출하는 툴킷이다.
아파치 소프트웨어 재단의 프로젝트이며 아파치 루씬의 서브프로젝트로 시작됐고 현재는 독립되었다.
티카는 Apache Maven2로 빌드가 가능하나 여기서는 바이너리를 사용한다.
소스나 바이너리 다운로드 URL은 다운로드 페이지에서 확인하자
tika-app
콘솔에서도 유틸리티처럼 사용이 가능하고 --server 옵션으로 서버모드로도 사용이 가능하다. NetCat 등의 커맨드를 사용해 처리결과를 받을 수 있다.
tika-server
보다 서버스러운(!) 서버모드로 RESTful API 를 제공한다.
구동
JRE 는 당연히 설치되어 있어야하고 -jar 옵션으로 간단하게 구동된다. 기본 포트는 9998
구동 확인
브라우저에서 9998 포트로 접속하면 URL 정보가 출력된다.

tika-server 는 PUT 메쏘드만 받으며 리퀘스트 body 로 파일만을 받는다.
Meta 
Text
HTML
추가로, 내가 쓰는 Typhoeus 에서는 아래와 같이 사용할 수 있다.
Apache Tika : http://tika.apache.org/
TiakJAXRS Wiki : http://wiki.apache.org/tika/TikaJAXRS
0 0
Square

안드로이드 앱 업데이트

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

Trix Editor 변경 작업 중단

누가 궁금할까 싶지만 에디터 변경을 예고한 적이 있고 작업을 중단했기 때문에 글을 남겨놔야지.
Trix 로 에디터 변경을 원했던 이유는 당연히 안정적인 입력을 위해서였지만 약 3일에 걸친 작업 끝에 다음과 같은 이유로 작업을 중단했다.
1. 2bytes 입력에서 몇가지 문제가 확인됨. 
- Trix 는 라인브레이커로 br 을 사용하고 div나 pre, figure 등의 블럭 엘리먼트가 들어오면 새로운 "블럭"을 만드는데 새로운 블럭의 첫 단락에서 확정적으로 자모음이 깨진다.
- Trix 는 contentEditable 을 사용해 IME 의 입력내용을 캐치하고 Trix::Document 를 생성하는데 2bytes 의 경우 한 글자를 위해 여러번의 키스트로크가 발생할 수 있기 때문에 글자의 순서가 변경되는 문제가 간혹 발생한다.
- 같은 이유로 입력된 글자를 contentEditable에 재출력할 때  다른 블럭으로 캐럿이 점프되는 경우가 있다.
2. 기존 사용하던 에디터의 안정성이 확보됐다.
- 사용 중이던 에디터가 갑자기 엄청난 숫자의 버그들을 쏟아냈으나 약 2달에 걸쳐 대부분의 버그가 수정됐다.
- 입력된 콘텐츠가 날아가는 치명적인 문제가 남았지만 원인을 찾을 수 있었고 소스 핵을 통해 해당 부분 스킵. 발생되는 사이드 이펙트는 서버단에서 저장 시 처리하도록 코드 수정.
Trix 의 개발은 계속 팔로우 하겠고 의미있는 버전업이 생기면 다시 개발을 고민해봐야겠다.
1 0

리디렉션 페이지에 구글 아날리틱스 코드 집어넣기

리디렉션 되는 페이지에 구글 웹로그 분석기 추적 코드를 넣고 meta 태그나 스크립트로 페이지를 이동시키면 데이터 수집이 완료되지 않은 상태로 페이지가 종료되고 로그가 남지 않는 문제가 있지.
리디렉션을 5초 정도로 잡아도 무관하다면 그냥 5초로 잡고 돌려도 OK.
리디렉션 타깃 페이지가 같은 도메인 아래에 있다면 타깃 페이지에 추적 코드가 있는 것 만으로 레퍼러로 처리되어 데이터가 수집되니까 이것도 OK.
하지만 리디렉션을 외부 사이트로 보내야하고 1~5초 정도 사용자를 묶어두는게 부담스럽다면 추적 코드의 동작이 완료된 후 리디렉션을 실행하면 되겠지.
2013년부터 사용된 Google Universal Analytics 추적 코드라면 hitCallback 콜백을 사용하면 되고 혹시 2013년 이전 코드라면 글로벌 오브젝트인 _gaq 큐에 함수를 밀어넣으면 된다네.
추적 코드 어딘가에 _gaq 가 있으면 그냥 오래된 코드, _gaq 가 없고 다음과 같이 추적코드가 시작된다면 Universal.
오래된 버전에서는 아래처럼 리디렉션이 가능
Universal 버전에서는 아래처럼 hitCallback을 사용할 수 있음
이상 끝!
1 0
Square


Noto Sans KR 웹폰트 - 구글 폰트 얼리 억세스로 변경

구글 Noto 한국어 글꼴을 웹에서 마음껏!
구글 폰트 얼리 억세스에서 드디어 Noto Sans KR 웹폰트를 제공한다. 개인적으로 매우 기쁜일이 아닐 수 없다!!!
그간 Coderifleman 님께서 한땀한땀 작업해주신 서브셋을 서버에 올려놓고 웹폰트로 사용하고 있었다.
매우 적은 용량이지만 알 수 없는 압박감에 사용자가 없으니 트래픽도 없지 normal 과 bold weight 만 사용했었는데 이번 Early Access 에서 제공하는 Noto Sans KR 은 6가지 굵기를 지원한다니 기쁘지 아니한가!

유니코드 한글 11,172 자와 완성형 한글 코드(KS_X_1001), 옛한글이 포함되어 있으며 한자는 포함되어 있지 않다. 
원래 있었는지 이번에 같이 추가됐는지 모르겠는데 한글 뿐 아니라 Noto Sans JP 와 Noto Sans SC(간체, 번체는 언제...) 도 제공하고 있으니 글로벌 서비스에서 마구마구 써줘야겠다.
css 파일에 다음의 라인을 추가
4 2
Square

로그인 사용자 익명글 작성 기능 추가

로그인한 사용자가 글을 작성할 때 글 작성 폼 하단 좌측에 "익명으로 작성" 체크박스가 추가되었습니다.
해당 체크박스를 체크한 상태로 글을 등록하면 글 보기 화면에서 사용자 정보가 노출되지 않습니다.
노출되는 작성자의 정보만 숨겨지고 수정, 삭제, 알림 등의 기능은 로그인 사용자가 작성한 비익명 글과 동일하게 작동됩니다.
"익명으로 작성" 체크를 기본값으로 사용하고 싶다면 상단 "메뉴 > 내 정보 - 수정" 메뉴에서 "익명으로 글을 작성하려면 체크하세요" 항목을 체크한 후 "수정완료" 버튼을 눌러 개인정보를 변경하시면 됩니다.
특정 유저의 글을 모아보는 페이지에서도 "익명"이 체크된 글은 노출되지 않습니다.
(로그인이 되어 있는 상태라면 -자신의 글 목록을 보고 있다면- 익명글도 노출되며 확인을 위해선 로그아웃 후 해당 페이지에 접속하시면 됩니다)
저는 테스트를 위해 쓸데없이 익명으로 써보고 있습니닼ㅋ
1 0

레일즈, 엘라스틱서치 필드 값 유무 쿼리

특정 필드의 값이 있거나 없는 조건을 쿼리할 때 _missing_ 과 _exists_ 를 사용할 수 있다.
title 값이 있고 published_at 값이 없는 질의를 Query String 으로 짜면 아래와 같다.
2 5

SYND 바란다#2

1. 비공개 글의 경우 메타 로봇 설정으로 noindex 처리 필요
2. 해더스타일을 좀더 쉽게 사용 할수 있게 스타일속성에서 밖으로 나왔으면.
3. 해더 스타일에 따라 자동으로 H* Tag로 마크업 처리 필요
0 0

제목 폰트 Noto Sans CJK 웹 폰트로 변경

Noto Sans CJK 폰트는 구글과 어도비가 만든 폰트로 중국어 간체와 번체, 일본어와 한국어 폰트를 포함하고 있다. 예전에 비해 웹에서 사용할 수 있는 한국어 폰트가 꽤 많아졌지만 여전히 목마른 우리에겐 참 흐믓한 일이다. 라이센스는 Apache License, Version 2.0
하지만 다른 구글 폰트와 달리 엄청난 용량으로 google early access 에서 제공하지 않고 있는 관계로 (아니지, 왜 제공 안하는지는 나는 모르지) 웹에서는 여전히 사용하기 어려운 실정이다.
드디어 구글 폰트 얼리 억세스(Google Fonts Early Access)에서 Noto Sans KR 을 서빙하기 시작했습니다. 자세한 내용은 아래 링크를 참고하세요.
"훈민정음 반포 569돌을 맞이해서 자그마한 선물을 마련했습니다."
그! 런! 데! Coderifleman 님의 노력으로 (언급은 안하셨지만 이런 작업은 그냥 괴로운 노가다..) 매우 적당한 용량의 서브셋을 웹폰트로 사용할 수 있다.
관련된 내용이나 사용법 등이 매우 잘 정리되어 있고 Coderifleman 님의 노력에 감사하는 의미로 이 곳에서는 아무 설명없이 링크로 대체한다.
한글 웹 폰트 경량화해 사용하기
Noto Sans CJK KR 폰트 보기
Noto Sans CJK 다운로드 및 도움말 페이지
1 0

레일즈4 마이그레이션, Change, Up, Down 섞어쓰기

내용은 간단한데 제목과 태그가 너무 길엌ㅋ
Rails 4 Active Record Migrations 에서 reversible 이란 메쏘드를 사용해서 아래와 같이 up, down 컨디션에 따라 SQL 을 실행할 수 있네.
1 3 4