요사이 아이들이랑 수학 이야기하던 걸 정리중이었는데, 이야기하다가 산으로 가 버린 것(분수 이야기하다가 수의 유래랑 십진법으로...)이 많아서 적절히 가지치기 하는 중입니다. 그 사이 초미립자팁이라도 도움되실 분 있을 지도 모르니 올려봅니다.
python을 아이패드에서 진지하게 하고 싶으신 분 대상입니다.
=========
Colab이라고 아시나요? http://colab.research.google.com/
python으로 프로그래밍하시는 분들, 특히 딥러닝 하시는 분들은 종종 쓰실 플랫폼일텐데요. 구글 서버가 벡엔드로 받쳐주고 있는 웹용 python환경입니다. 어느정도 쓸만한 CPU, GPU를 기본 무료로 제공해 주기 때문에, 무료 어카운트만으로도 어지간한 머신 러닝 연습 문제들을 돌려볼 수 있고, 돈 내고 쓰면 실전 문제도 여기서 돌려볼 수 있어요.
머신 러닝 다 모른다고 해도 python처음 배우는 플랫폼으로도 좋습니다. 저는 아이들한테 python을 이걸로 가르쳐 주는데요. 예전에는 컴퓨터 언어 하나를 배우려면 언어 설치부터 해야 해서 컴퓨터 운영체제 및 환경마다 다른 방법으로 셋업하기 바빴겠지만, 요즘은 세상이 이렇게 좋아져서 gmail아이디 하나만 가지고 웹에서 프로그래밍을 마음껏 할 수 있습니다.
오늘의 문제는
이것을 아이패드에서 하고 싶다
는 것입니다. 노트북도 충분히 가볍지만 아이패드만하지는 않더라구요.
웹서비스인데 아이패드에서 안 될 것이 무엇이냐고 물으실 수 있을 텐데요.
아이패드에서 안 됩니다. ㅠㅠ.
실행은 되지만 편집을 할 때 코드에서 영역 지정 및 복사 / 붙여넣기가 안 됩니다. (정확히는 복사가 안 되는 겁니다. 하지만 복사가 안 되니 다 안 되는 것 처럼 보이죠) 같은 코드를 넣고 싶으면 빠른 타자실력으로 고대로 쳐야 한답니다.(코딩에서는 말도 안 되는 상황이죠). 관련이슈가 올라온 지 2년도 훨씬 넘었지만 고쳐지지 않았답니다. iOS에서 사용하는 웹킷에서 기인하는 문제라서 아이패드용 사파리나 크롬 모두 안 됩니다.
하지만, 언제나 되게 만드는 방법이 있는 법이죠.
첫번째 방법: Inspect browser
Inspect browser라는 앱(App Store link)은 웹 디버깅을 위한 앱인데요. DOM parsing이나 javascript console을 지원하는 앱중에 거의 유일하게 쓸만해 보이는 앱입니다. 하지만 이 대목에서 가장 중요한 것은 이 앱은 colab에서 복사 붙여넣기가 됩니다. 자체 라이브러리로 웹페이지를 렌더링하는 모양입니다. 유료앱입니다($7)
두 번째 방법: 물리 키보드 및 VIM
만약 아이패드로 ssh 접속해서 리눅스 서버 관리같은 걸 취미로 하시는 분이라면, 아이패드용 물리적 키보드 하나 정도는 있으실 것도 같고, VIM 사용법은 얼추 아실 것도 같습니다.
colab이 vim 을 지원합니다.

Tools menu -> Settings 로 가시면 위와 같이 Editor key binding을 VIM으로 바꾸실 수 있습니다.
vim모드에서는 복사 붙여넣기 영역 선택 등등이 다 되죠 :) 문제가 다 해결된 것 같지만 여기서 문제 하나 나갑니다.
1. 아이패드용 키보드 (smart folio나 magic keyboard)에는 esc키가 없습니다.
2. 다른 블루투스 키보드에는 esc키가 있지만 키보드 따라서 esc키가 colab에서 인식되지 않습니다.
esc가 없는 vim이라니 끔찍하죠? jj나 jk 혹은 caps lock으로 esc키를 리매핑하는 것이 슬프게도 웹용 vim에서 지원이 안 됩니다.
그럼 어떻게 하느냐.
iOS Settings에서 리매핑을 합니다.
물리키보드를 연결하시면, Settings앱에서 General->Keyboard에 Hardware Keyboard 항목이 생깁니다.

여기에 들어가셔서 Modifier Keys를 선택하시면,

특수 키 들을 다른 키에 매핑시킬 수가 있습니다. 저는 지구모양의 글로벌 키를 ESC에다가 매핑시켰습니다.

이걸로 다 해결되었죠. esc가 되도록 만들어서 vim을 사용하는 것은 꼭 colab편집 뿐만 아니라, ssh terminal로 리눅스 서버에다가 원격 코딩하시는 분들도 사용하시면 좋습니다.
그럼 happy coding하세요~ :)
🐰
🐰
🐰
불편하지만... cellmagic을 이용한 방법도 있습니다 ㅜㅜ
https://flavourabbit.github.io/ml/2021/04/06/colab-ios-copy.html
🐰
한두개 실행시켜만 봤는데 잘 되는 것 같네요