자석 케이블 후기

item image

자석 케이블은 이미 굉장히 흥한 아이템 중 하나죠. 단선의 걱정이 덜하고, 일단 신기하니까요.

어차피 아이폰 X가 무선충전이 되는 시점에서 저는 케이블을 번거롭게 연결할 생각이 전혀 없었습니다만 키보드는 이야기가 좀 다르더군요. 특히 이 녀석은 사용환경 특성상 연결과 해제가 잦을 예정이었는데 필연적으로 단선이 우려가 됐습니다. 그래서 자석 케이블과 코일 케이블을 합체(?)해서 쓸 생각을 하게 됐죠. 그러면 이런 게 나오게 됩니다.

magnet coiled

연결부가 조악하지만 효과는 발군이더군요. 만족스러워서 코일 케이블 두 세트와 자석 케이블 두 세트를 주문했습니다. 과정에서 알 게 된 점 두 가지.

1. 자석 케이블의 절대다수가 섬유(패브릭) 케이블이다.

그런데 코일 케이블은 그냥 일반 케이블이고 필연적으로 둘을 결합하면 정말 키메라같은 느낌이 나는 결과물이 나올 수 밖에 없었습니다. 그래서 알리익스프레스를 뒤져서 이걸 찾아내게 됩니다.

2. 자석 케이블은 한 쪽만 데이터 전송이 된다.

이건 솔직히 상상도 못했는데, 한 쪽만 데이터 전송이 되고 나머지 한 쪽은 충전만 되더군요. Plum75야 블루투스가 되니 그렇다손 치더라도 Plum84는 유선 키보든데 꼼짝없이 자석 케이블을 쓰는 이유 중 하나가 사라졌습니다. 아예 다른 접촉 방식 케이블을 사거나 해야 할 것 같네요.


자석 케이블을 아이폰에 쓰는 친구 말을 들어보니 본래 용도인 휴대폰 연결용으로서도 내구성이 형편없었다고 합니다. 2주일 지나니 접촉이 안 되더라고.


홀로그램 스티커를 제품에 반드시 부착하십시오

image

그러면 잘 좀 떨어지게 만들든가…


Day One 버그: 영구 저장소

managed object model version

언제부턴가 컴퓨터를 재부팅하면 이런 메세지가 나옴. 다행히 책갈피 아이콘이 Day One에서만 쓰는 거라 어떤 녀석이 문제를 일으키는 건지는 쉽게 파악을 했는데 문제는 왜 이런 에러를 발생시키는지에 대한 설명이 없음. 한 컴퓨터에서만 그러면 컴퓨터 문제거나 설정의 문제겠거니 하겠지만 맥미니와 맥북 에어에서 동시다발적으로 이런 에러가 나타나는 걸로 보아서는 뭔가 제작 단계에서 문제가 있었다고 밖에는 상상이 가지 않는 상황.

다행히 제작사 측에서 적은 known issue에서는 메인 화면을 열면 된다고 한 걸로 보아 기능 자체에 문제가 있거나 한 것 같지는 않음.

어차피 동기화를 하려면 메인 앱 화면을 열어야 하기 때문에 크게 영향이 있을 것 같지는 않음.


bigfoot 설정 변경

알고 보니 bigfoot에서 각주로 붙인 항목을 없앨 수 있는 설정이 따로 있었습니다. 이래서 설명서를 읽으라고 하는건데 읽고도 못 알아봤군요. 역시 머리가 나쁘면 손발이 고생하는 모양입니다.

아무튼 요점은, bigfoot에서 각주로 붙인 항목이 포스트 마지막에 나오지 않도록 변경했습니다.

+ 추가

atom에서 PlatformIO IDE Terminal을 설치해서 좀 더 쓰기 편해졌습니다. 아예 atom 내에서 포스트 작성과 푸시까지 한 번에 가능해지니까 훨씬 편하군요. 물론 그렇다고 해서 글을 쓰는 일이 많아질지는 미지수입니다.


PopClip mail extension

PopClip의 기본 메일 익스텐션은 무조건 선택한 텍스트를 메일의 본문에 넣어버리는 못된(?) 습성을 가지고 있습니다. 마침 Popclip Extension 제작 Documentation을 보니 애플스크립트로도 가능하다고 해서 만들어보았습니다. 일단 소스 코드는 Github에 올려두었으며 현재 작동하는 버전은 아니고 2018년 4월 3일 업데이트함 개발자의 도움을 받아서 계속 진행할 예정입니다. 이 포스트는 그 과정 중에 배운 것을 적어보는 글입니다.

텍스트 이어붙이기

영어로는 concatenation이라고 하던데 한국말로는 뭐라고 하는지 정확히 모르기 때문에 그냥 이어붙이기라고 부르겠습니다. 파이선에서는 +로 됐었는데 애플스크립트에서는 &를 사용하는군요. 하나 배웠습니다.

set a to "Al "
set b to "was "
set c to "here."
set myVar to a & b & c
display dialog myVar

via alvinalexander blog

조건문

if else 문을 쓰긴 쓰는데 if를 썼으면 end if로 닫아주어야 합니다. 한 줄로 쓸 때는 if (조건) then (액션)의 꼴로 써도 되더군요.

변수

자바스크립트에서는 var, C언어에서는 변수 타입으로 변수 지정을 시작했었는데 애플스크립트에서는 특이하게 set으로 시작하더군요. set (변수명) to (값) 이런 식… 개인적으로 적응하기 가장 어려운 부분이었습니다.

변수할당도 = 기호를 쓰는 대신 to를 쓰고 == 대신에 is equal to를 쓰는데 읽는 입장에서야 편할지 몰라도 작성하는 입장에서는 꽤나 곤혹스럽더군요.

변수 타입을 강제로 지정할 때는 as (변수타입)으로 하는 모양.

반복문

애플스크립트의 반복문은 repeat으로 시작합니다.

repeat with chr from 1 to (get (count of character in inputText) - 2)
	if item chr of inputText is equal to "@" then set aat to 1 as boolean
	if item chr of inputText is equal to "." then set dot to 1 as boolean
end repeat

문자열과 정규식

전술했듯이 선택한 텍스트가 메일 주소 형식인지를 파악해서 다음 액션을 결정하도록 하고 싶었기 때문에 가장 유용할 법한 것은 정규식입니다. .*@.*\.[..?] 쯤 되려나요.

다만 아무래도 정규식을 불러오면 그만큼 자원이 더 필요하니 조금 간략화해서 @.가 둘 다 들어있으면 메일 주소인 걸로 합니다. 조금 더 머리를 쓰면 최상위 도메인 주소는 적어도 2글자 이상이니까 문자열의 뒤에서 2번째까지 읽어서 그 안에 .가 없으면 메일 주소인 걸로 해도 되겠네요.

문자열 내의 각 문자에 접근하기 위해서는 C언어와 비슷하게 item (숫자) of (문자열 변수명)으로 씁니다. 재밌는 건 (숫자)에 음수가 들어가면 뒤에서부터 세는 거라고 하는군요. Apple Discussion

'’는 문자열로 안 받고 ““만 문자열로 받는 듯 합니다.

제어문

위의 조건문과 밀접한 부분이기는 한데, 애플스크립트에는 continue에 상응하는 구문이 없다고 합니다. 때문에 이런 구라 루프를 쓰더군요. 신선한 충격이었습니다.

URL Scheme

alfred-2do 때 잘 써먹었었지만 macOS의 경우 tell application "System Events" to open location "**(주소)**" 형식을 이용해서 URL을 열 수 있습니다. 메일의 경우 URL 형식에 mailto:를 넣으면 기본으로 설정된 메일이 열리고 이하 내용이 수신자로 입력이 됩니다. mailto:?body= 라면 = 이하 내용이 본문에 입력됩니다.