2024 년은 갑진년-청룡의 해 입니다.
2024 happy new year
 
2024년은 용의 해입니다. 그리고 제가 50을 목전에 앞둔 해이기도 합니다.
 
올 한해.. 모두에게 좋은일이 가득하길 바래봅니다....(꾸벅)
이름 :    패스워드 :
scratch 와 turbowarp desktop. 그리고 조금 얽혀있는 squeak 과 smalltalk 이야기... 를 빙자한 잡설
 관심 있는 분들은 아시다시피 scratch 는 MIT Education lab 에서 시작된 block coding 언어입니다. 그리고 이후 네이버의 엔트리에 영향을 준 언어이기도 합니다.(이건 scratch V2 의 출시 이후였죠)
 
* https://playentry.org
 
최초의 scratch 버전은 smalltalk 의 방언(dialect, 구현체)인 squeak 에서 시작되었습니다. Nicholas Negroponte 교수(MIT media lab 의 설립자)의 100$ laptop 의 팀중 하나이며 smalltalk 의 창시자중 하나인 alan kay 의 squeak 그리고 etoy 와 비교되기도 하는데, 이는 etoy 와 scratch 의 초기버전이 둘 다 squeak 에서 동작하기 때문입니다.
 
* https://en.wikipedia.org/wiki/Etoys_(programming_language)
 
* https://en.wikipedia.org/wiki/Scratch_(programming_language)
 
 
하지만 etoy 의 시작은 1996년부터이며, scratch 는 2003 년부터 프로토타입이 등장한 것으로 보아 scratch 가 etoy 의 영향을 받은것으로 보는게 맞는 시각이라 생각합니다.
 
scratch 의 처음은 smalltalk 의 구현체중 하나인 squeak 의 위에서 시작되었습니다. smalltalk 에 Morphic 이라는 그래픽 체계를 사용한 squeak 은 scratch 의 처음을 시작하기에 더할 나위 없는 환경이었습니다. 그리고 전통적인 squeak 사용자들 역시 scratch 를 뜯어보기 쉬웠죠. 이는 모든것이 squeak(smalltalk) 이라는 환경(environment) 위에서 작동하기 때문이었습니다. scratch 독립 실행형 파일은 squeak vm 위에서 작동되는 smalltalk 어플리케이션 이었으며, smalltalk 및 morphic 환경의 특성상 scratch 를 구성하는 smalltalk 프로그래밍 내용을 살펴보는건 모두 자연스러운 결과였습니다.
 
이후 HTML5 및 web 환경이 동적으로 발달함에 따라 scratch 는 그 기반을 web 으로 옮겼습니다. 웹브라우저에서 작동되며, 좀 더 블록코딩에 대한 손쉬운 접근이 가능해 졌었죠. 하지만 이건 저같은 오래된.. 낡은 환경을 선호하는 사람들에게는 조금은... 불만으로 생각되었습니다. 프로그래밍을 하는데 웹브라우저를 반드시 띄워야 하는 환경이 잘 납득되지 않았으며, 인터넷이 연결되어 있지 않으면 프로그래밍을 올바르게 할 수 없다는건.. 개인적으로는... scratch 가 smalltalk 환경을 벗어난것 이상으로 불만이었죠. 게다가 제가 주로 사용하는 linux desktop 에서 web app 은 끔찍하게 느렸습니다.
 
이후 scratch 는 2019 년에 3.0(V3) 를 릴리즈 하게 됩니다. 기존보다 깔끔해졌고, V2 에서부터 신경쓰지 시작한 다국어지원은 이제 완숙단계로 접어들었다고 해도 과언이 아니었습니다. 버그때문에 욕을 먹는다고 해도 그건 출시때의 일이었지.. 지금은 훨씬 나아졌죠. 그럼에도 불구하고 web 기반의 scartch 는 여전히 제 안중에는 없었습니다. web app 이라는것도 별로였습니다만... 단독실행형으로 배포되는 scratch 는 Linux desktop 을 지원하지 않았습니다. 그렇게 소식만 간간히 찾아보면서 제 기준에서는 점점 잊혀져 가는듯 했습니다. 그런데...
 
 
로보타미.. 라는 코딩용 키트를 커뮤니티의 나눔품으로 득템하게 되었습니다. 득템한지는 거의 반년 가까이 되었는데... 다른 삽질등이 마무리되고 나니.. 슬슬 이게 눈에 들어오더라구요.... 타미스크래치 라는 MS windows 전용 환경이라는데... USB 로 연결되는걸 보니 어차피 USB serial 이라면? 이라는 생각이 들더라구요. 일단 타미스크래치 라는 프로그램 자체가 COM port (serial)를 설정해야 하는 프로그램이고.. baud rate 등은 모르지만.. 어케든 되지 않을까? 라는 생각이 들었습니다.
 
일단 windows 에서 로보타미의 기본 동작 테스트를 끝낸 후에, 이걸 linux 에서 해보고 싶은 마음에 자료를 이것저것 찾다보니.. 제가 원하는 것에 가장 근접한 솔루션이 나와있더라구요.
 
https://desktop.turbowarp.org/
 
일단은 다음과 같은 특징(?)이 있습니다.
 
1. scratch 환경을 (아마도) atom 을 이용해서 배포하고 있으며
2. linux 용 패키지도 제공하고(deb)
3. scratch V3 기반에 속도도 괜찮고
4. 내부에서는 기존 scratch 의 js 를 compile 해서 사용하기 때문에 속도가 꽤 괜찮다
 
일단 홈페이지에서는 scratch 팀과 별도로 제휴를 맺은건 아니라고 하지만.. 일단 scratch 의 block coding 을 웹브라우저 없이 실행할 수 있다는건.. 제겐 미칠듯한 장점이었습니다.
 
자... 서론이 좀 길었습니다만... 결국 이 글은 현재진행형 실패담 및 아주 약간의 가능성으로 끝나게 될겁니다... 그럼에도 누군가가 관심이 있는 분이 있으시거나.. 제가 기억하기 위해서 작성하고 있는 글이기는 합니다.
 
여튼! turbowarp desktop 의 Linux 실행을 성공한 이후에.. 저는 해당 프로그램의 "addons" 메뉴를 살펴 봤습니다. 여기에는 조이스틱의 입력을 받아서 블록코딩의 요소들을 제어하는 addon 만 있고, 기존의 scratch 에서 보던 외부 하드웨어 제어에 대한 부분이 별도로 없더라구요. 여기서부터는 기존 scratch 의 흔적을 따라가야만 했습니다.
 
 
조금 앞쪽으로 돌아가보자면... scratch 는 여러가지의 하드웨어 확장(extensions)을 지원합니다.
 
https://en.scratch-wiki.info/wiki/Extension#Available_Extensions
 
이 중 하드웨어에 대한 부분이라면 MS 가 관여된 micro:bit 와 LEGO 관련된 것들이 1차적이라고 보면 되겠습니다. scratch 는 V2 이후 기본적으로 web browser 에서 동작하기 때문에 별도로 scratch-link 라는걸 이용해서 web browser 와 desktop 의 하드웨어 리소스를 연결합니다. 그런데.. 이게 MS windows 와 Apple Mac OS 만 지원하는군요..(야!)
 
https://github.com/scratchfoundation/scratch-link
 
다행히도 scratch-link 의 소스코드는 공개되어 있습니다. 그리고 이걸 기반으로 한 linux-python 프로젝트가 있었죠.
 
https://github.com/kawasaki/pyscrlink
 
pyscrlink 는 scratch-link 와 거의 동일하다 보시면 되겠습니다. micro:bit 및 LEGO 하드웨어를 linux 에서 활용하기 위해서라면 거의 유일한 대안이지 않을까 싶습니다. 일단 사용 방법 자체는 windows/mac 용 scratch-link 와 동일합니다만... linux 에서 동작하며 bluetooth LE 규격"만"을 사용한다는 점 정도가 차이점이 되겠군요(오리지널 scratch-link 를 자세히 찾아보지 않아서 잘은 모르겠습니다만...)
 
 
문제라면 제가 테스트해본 타미스크래치는 usb 유선으로 연결하는건데 pyscrlink 는 블루투스 기반이라는점, 그래서 아마 제가 가진 제품은 호환이 안될거라는 슬픈 느낌이 옵니다..(에휴)
 
 
그냥 안되면 안쓰면 되는데.. 왜 이런 삽을 굳이 푸느냐고 물으신다면... 로보타미라는 이 제품을 초5인 큰아이에게 써보게 하고 싶은데.. 제가 쓰라고 지급한 laptop 에는 ubuntu 가 설치되어 있기 때문입니다...(어?) 그 덕분에 삽질이 여기까지 오게된거죠.....
 
 
사실 이쯤 삽을 펐으면... 해당 하드웨어의 제조사에 연락해서 물어보는게 훨씬 직관적인 방법이 아닐까 싶지만.. 해당 회사도 scratch 의 버전을 가리기 때문에 특정 scratch 버전을 사용하라고 권장하는 상황인데.. 굳이 제가 연락한다고 뭔가 힌트를 줄것 같지는 않아서.... 
 
1. 까먹기 전에 이 정도로 삽질을 정리하고
2. turbowarp desktop 이 너무 신박하고 괜찮아서 소개도 하고 싶고
3. 이런 삽질거리.. 즐겁게 읽으시는 분도 가끔 있고..
4. 관심있는 고수님이 있으시다면 아이디어좀 받아볼까 해서
 
겸사겸사 글 올려봅니다.
 
 
ps. 세상은 넓어서 이미 scratch-link 관련된 삽을 푸신 분이 있으시더라구요..
 
https://ahnbk.com/?p=790&
 
저도 나중에 다시 참고할 겸 링크도 올려둡니다.
이름 :    패스워드 :
2022 년에는 글을 하나도 안썼네요...
슬슬 페북을 좀 줄여볼까 합니다.... 페북에서 몇년전의 추억을 포스팅해주는데.. 굳이.. 라는 느낌도 들고 해서...(긁적)
 
2023년도 벌써 절반이 지났습니다만... ㅎㅎㅎ
 
2022년에는 막내가 태어나서 벌써 애가 셋이고..
 
저는 뭐하고 사는지도 모르겠는 인생을 살고 있는 느낌입니다.
 
보시는 분은 거의 없겠지만.. 최근에 nextcubr.org 도 한달 넘게 안열리고 있는 느낌이라... 뭐랄까 아쉬운 마음도 들고.. 뭐 그렇습니다....
 
 
서버의 php 를 버전업하면서 뭐랄까.. 바뀐 mysql 함수를 메인터넌스 하기 귀찮아서 걍 버티고 있었는데... 오랜만에 살펴보려니.. 뭔가 속이 터지네요...
 
ps. 설마.. 이 글도 적어놓고 에러나서 안올라가는건 아니겠지?..-.-;
이름 :    패스워드 :
[1][2][3][4][5][6][7][8][9][10][Next]

ONIONMiXER.net
ONIONMiXER.net RSS feed 맨위로 이동