Blog
셀렉트 요소의 기본값 없애기
<select> <option value="1">옵션1</option> <option value="2">옵션2</option> <option value="3">옵션3</option> </select> 브라우저는 첫번째 옵션 요소인 '옵션1'을 선택된 상태로 보여준다. 이 때 셀렉트의 value 값을 확인해 보면 선택된 옵션의 값인 '1'이고 티입은 문자열(string)이다. 셀렉트의 value 값을 undefined나 null, 또는 …
dev |2018-11-25 | Comments (0)
데스크톱 프로그레시브 웹 앱
크롬 70버전에 프로그레시브 웹 앱을 데스크톱 앱으로 설치 할 수 있는 기능이 추가됐다. 맥의 경우는 아직 기본으로 활성화되어 있지는 않고 chrome://flags/#enable-desktop-pwas 주소에서 활성화 할 수 있다. 모바일에서도 바탕화면에 추가(A2HS)하는 기능으로 앱처럼 사용할 수 있었는데 이제 이 기능을 이제 데스크톱에서도 사용할 수 있게 되었다. 웹사이트 설치를 위해서는 사이트가 프로그레시브 웹 앱이어야 한다. 프로그레시브 웹 앱으로 인식되게 하기 위해서는 몇가지 기능이나 설정을 추가해 줘야 하는데 1) …
dev |2018-11-14 | Comments (0)
Path 종료와 백업
패쓰(Path)의 열혈 사용자는 아니었다. 최근에는 캠핑 다니면서 기록 차원에서 사진을 올리는 정도가 다였다. 같이 사용하던 사람들도 대부분 떠나버려서 댓글을 주고 받는 경우도 거의 없었다. 하지만 서비스를 닫는다고 하니 뭔가 많이 아쉬웠다. 파격적인 인터랙션으로 칭찬을 많이 받았다는 기억 때문인가, 친한 사람들만을 중심으로 관계를 맺는 서비스여서 그런가, 처음 사용하던 시절이 생각이 나서 그런가, 그 당시 다니던 케이티에이치를 아쉽게 그만두어서 그런가, 카카오에 있던 시절 서비스가 인수되어서 그런가 잘 모르겠다. 뭐라고 하 …
work |2018-10-04 | Comments (3)
JBL Charge 3
캠핑을 가면 음악을 틀어놓는 분들이 있다. 웬만하면 그냥 참는데 틀어놓는 음악도 별로고 특히 스피커가 후진 경우에는 불쾌감이 밀려온다. 듣기 싫은 소리를 상쇄하기 위해서 아이패드나 아이폰으로 음악을 틀어봤는데 역부족이다. 집에 블루투스 스피커가 많아서 이중에 하나를 가지고 다닐까 생각해봤지만 요즘 나오는 소위 AI 스피커들은 음질이 좋지 않아서 싫었다. 그래서 '싸고 들고다니기 좋고 음질도 그다지 나쁘지 않은' 스피커를 하나를 더 사기로 생각했다. 원래 JBL을 좋아하기도 했고 예전에 들었던 JBL 펄스(JBL Pluse)가 …
hobby |2018-09-07 | Comments (0)
다양성이라...
난 '다양성의 지지자'인줄 알았지만 그 발치도 못간다는 것을 알고 뒤로 빠진 비겁자이긴 하지만, 그리고 내가 경험한 다양성이 요즘 많이 얘기되는 다양성과 차이도 있겠지만, 다양성은 언급 자체가 우월감과 편견에서 자유롭지 못하다. Inclusion을 왜 포용이라고 번역하(했)는지 모르겠는데, 포용이 아니라 그냥 같이 있는 거다. 자기 검열 안한다고 하지만 어떻게 그게 가능한가, 결국은 그 피로감에 압도되게 된다. 각 구성 요소들이 자존감을 가질 수 있게 해주는게 우리의 역할이 아닌가 하는 아재스러운 생각만 남았다. 이를 받아들이고 …
life |2018-08-24 | Comments (0)
노드몬에서 특정 파일 제외하기
노드몬(Nodemon)은 자바스크립트 파일이 변경될 때 마다 노드 앱을 재시동 해줘서 개발환경에서 많이 사용한다. 그런데 앱 실행할 때 .json 파일을 생성하게 했더니 무한 재시작이 되는 것을 볼 수 있었다. By default, nodemon looks for files with the .js, .mjs, .coffee, .litcoffee, and .json extensions. By default, nodemon will only restart when a .js JavaScript file changes. 문서에 두개 …
dev |2018-08-19 | Comments (0)
노드에서 셋 인터벌을 쓸 수 있구나
정리하고 나니 좀 창피하기도 한데, 나한테는 솔직히 문화적인 충격 비슷한 일이었다. 원격 프로세스의 종료 이벤트를 알 수 없어서 폴링으로 목록을 계속 보면서 끝났는지 확인해야 하는 상황이 발생했다. 처음에는 크론으로 자바스크립트 파일을 실행하면서 확인할까 하다가 배치 태스크가 추가되는 일은 피하고 싶어졌다. 노드에서 크론탭을 관리하는 모듈이 있지 않을까 node cron으로 검색해보니 있었다. 실제로 크론탭을 관리하는 것은 아니고 크론 처럼 작동하는 모듈이다. 이 모듈을 검색해보니 아웃사이더님 블로그로 연결됐고 아웃사이더님은 no …
dev |2018-08-11 | Comments (1)
누구나 활용할 수 있는 음성 인식용 데이타, 커먼 보이스
요즘 머신 러닝이나 딥러닝이 화두다. 이제 머신 러닝 안하면 시대에 뒤쳐지는 느낌까지 든다. 머신 러닝을 하려면 학습을 시킬 데이터가 있어야 하는데 음성 인식 분야는 아무래도 돈있는 기업과 개인의 격차가 심하다. 개인은 음성 인식을 시작할 수 있는 데이터 셋을 구하기 거의 힘든 것으로 보인다. 이런 격차를 없애기 위해서 모질라에서 커먼 보이스(Common Voice)라는 프로젝트를 시작했다. 음성과 연관된 내 프로필 정보와 함께 화면의 문장을 읽어주기만 하면 이것이 데이터로 쌓이고 이 데이터를 필요로 하는 사람들이 자유롭게 활용할 …
dev |2018-07-15 | Comments (0)
PHP 사이트에 노드 앱 추가
이 사이트는 Ubuntu에 Apache-PHP에서 돌리고 있는데 일부 페이지를 노드 기반으로 바꾸려고 서버에 노드를 설치해봤다. 우선 node, npm, pm2를 설치한다. 그냥 apt-get으로 설치하면 버전이 낮을 거 같아서 PPA를 써봤다. 최신 버전(latest)을 설치할까도 생각했지만 안정 버전(stable)이 있는 이유가 있을 거라는 생각과 안정 버전에서도 될 건 다 된다는 생각에 그냥 8.x대를 선택했다. curl -sL https://deb.nodesource.com/setup_8.x -o nodesource_set …
dev |2018-06-16 | Comments (8)
유틸리티 CSS
SMACSS나 OOCSS, BEM, 더 나아가서 부트스트랩과 같은 다양한 CSS 방법론이 있지만 대부분 CSS에 제약을 가하는 형식이어서 별로 선호하지 않는다. 그중 극단을 보여주는 것이 이 유틸리티 CSS다. 관심사의 분리(separation of concerns)는 달성될 수 없고 역으로 HTML에 독립적인 CSS를 이용해서 CSS의 재사용성을 높인다는 주장이다. <button class="f6 br3 ph3 pv2 white bg-purple hover-bg-light-purple"> Button Text < …
dev |2018-06-15 | Comments (0)