일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- ps4
- 닌텐도스위치
- 게임보이
- 오블완
- mobilesuit
- Game Gear
- Saturn
- 게임기어
- Apple II
- 새턴
- 컨트롤러
- ensemble
- MSX
- 패미컴
- mister
- 메트로이드
- 슈퍼패미컴
- 슈퍼마리오
- 티스토리챌린지
- 3DS
- PC엔진
- 메가드라이브
- snes
- 앙상블
- 모빌슈트
- analogue
- fpga
- GOG
- 닌텐도
- 건담
- Today
- Total
목록IT, Computer (192)
Just a Blog
1. 데이터 타입 Java와 다르게 Kotlin에는 primitive 타입이 없다. 모든 타입은 오브젝트이다. (1) 숫자 타입 ① 종류 - Long: 64비트 범위 정수 표현 - Int: 32비트 범위 정수 표현 - Short: 16비트 범위 정수 표현 - Byte: 8비트 범위 정수 표현 - Double: 64비트 범위 실수 표현 - Float: 32비트 범위 실수 표현 ② 표현 변수에 숫자를 직접 할당할 때, 정수의 기본형은 Int형으로 추론하고 실수의 기본형은 Double형으로 추론한다. 정수값 뒤에 'L'을 붙이면 Long 타입으로 추론되고, 실수값 뒤에 'F'를 붙이면 Float 타입으로 추론한다. val num1 = 123 (정수값은 기본적으로 Int로 추론한다) val num2 = 3456..
1. 구문 (1) expression 가능 값을 평가/계산하는 expression을 구문에 사용할 수 있다. 'a * a'는 순수히 a * a 값을 나타내는 표현(expression)이기 때문에 에러가 나지 않는다(대신 값을 evaluation하는 것 외에 다른 일은 일어나지 않는다). fun main(args: Array) { var a = 1 a * a println(a) } 이런 특성으로 Kotlin에서는 다음과 같이 함수(function)을 expression으로 선언할 수도 있게 된다. fun square(s:Int) = s * s (2) 각 구문에 세미콜론(;)은 생략 가능하다 (써도 그만 안써도 그만) var a = 1 println(a) (3) 구문 블럭 Java와 동일하게 '{', '}'..

1. 문제 상황 한 대의 PC에서 서로 다른 OS(Windows, Linux, macOS 등)를 다중부팅(multi-booting)해서 사용하는 사용자들이 있을 것이다. 이런 환경에서 그 PC에 동일한 블루투스(bluetooth) 장비를 각 OS에 모두 사용하려면 문제가 발생한다. 블루투스 장비의 입장에서 보면 자신이 접속해야 할 블루투스 MAC 어드레스는 하나인데(하드웨어(블루투스 모듈)에 할당되므로 OS 간에 동일하다) 페어링 키는 OS 별로 서로 다르게 설정되게 되므로, 마치 하나의 접속대상이 다른 키를 사용하는 것 처럼 보여지기 때문이다. 경험 상, 블루투스 연결 채널이 3개인 블루투스 하드웨어도 접속하려는 MAC 어드레스가 동일한 장비에 대해 키 값만 달리 해서 채널 별로 별도로 연결되지는 않았..

애플 실리콘 맥북에서 Homebrew가 정식으로 지원되게 되어, 기존 x86 환경에서 사용하던 툴들을 편하게 설치할 수 있었다. 그 중 python을 버전에 따라 설치하기 위해 사용하던 pyenv도 잘 설치되었는데, 문제는 pyenv로 miniconda를 설치하려고 하면 x86 아키텍처가 아니라고 하여 진행이 되지 않았다. 그래서 여러가지 방법을 찾아보던 중, pyenv가 제시하는 miniforge는 애플 실리콘인 arm64용으로도 제공되는 것을 확인하고 설치해 보았다. Github 페이지의 설명에도 있지만, 이 글의 작성 시점에 arm64 플랫폼은 아직 experimental 상태라고 한다. 그래도 애플 실리콘 맥의 터미널 하에서 conda 환경을 사용할 수 있는 방법이 이렇게 있기는 하다.
* 본 내용은 2021년 1월 8일 기준으로 작성된 것으로 현재 여러가지 방식으로 개선되었음 * 애플실리콘(M1) 기반 맥북에어를 원활히 사용하기 위해 이것 저것 알고 보고 있는데 생각보다 진전이 더디여 보인다. 특히 터미널 기반 유틸리티를 설치할 수 있는 Homebrew에서는 생성되는 유틸리티가 새로운 아키텍처를 완벽히 지원하지 못하는 것으로 보인다. (1) Homebrew를 통해 설치한 rbenv에서 Ruby의 특정 버전을 install 한 경우, 빌드된 Ruby는 ARM64 바이너리였다 (2) Homebrew를 통해 설치한 pyenv에서 Miniconda를 install 한 경우 python은 X64 패키지였다. (3) ARM 64bit용 JDK를 사용하기 위해 Zulu의 OpenJDK를 설치했는데..
1. 성능 차이 보다는 아키텍처가 다르다는 느낌이 든다애플 실리콘(M1)이 Intel 기반 맥에 비해 성능 향상이 크다는 평가들을 많이 했지만, 개인적으로는 성능보다는 아키텍처 변화에 인한 시스템 동작 특성이 달라졌다는 느낌이 강하게 들었다. 각종 벤치마크 테스트에서 M1 기반 시스템이 기존 모바일 기기(맥북에어, 맥북프로 등)에 비해 성능 향상됨을 보여 줬지만 기존 데스크탑 시스템에 비해 향상된 결과를 입증하지는 않았다는 점을 이해해야 한다고 본다.독에서 한 번 바운스 되고 실행되는 앱들, 4K 해상도의 동영상도 빠르게 작업하는 데모, 순식간에 동작하는 앱 스위칭 등은 단순히 프로세싱 성능이 향상되었기 때문이라고 보기 어렵다고 본다. 프로세서 코어와 GPU, RAM 등이 밀접하게 집적된 통합 칩의 구성..
모하비(Mojave)에서 카탈리나(Catalina)로 업그레이드에 불편함을 느끼고 모하비를 기본으로 오랫동안 사용했다. 이번에는 큰 마음을 먹고 iMac, Macbook Pro에 업데이트를 했다(가지고 있는 Mac mini는 구형이라 이번 업데이트를 지원하지 않았다). 소감을 적어본다. 1. 시동음이 살아났다과거에 맥을 부팅할 때 나던 시동음이 어느 단계의 업데이트 부터 사라졌는데 이번에 돌아왔다. 아마도 정확히는 macOS의 기능이라기 보다는 이와 연계된 시스템 업데이트에 의한 것일텐데, 그래도 Big Sur 업데이트 과정에서 다시 복구된다.시스템의 시작을 명확하게 알려줘서 반갑기는 한데 도서관 같은 공공장소에서 맥을 조용히 사용해야 하는 사람에게는 조금 불편할 수도 있겠다 싶다. 개인적으로 생각하는 ..
최근에 나와서 직접 구매하기도 했던 '게임 & 워치 슈퍼 마리오 브라더스' 기기를 전문가가 해킹하는 동영상이 유투브에 공개되었다. 불법적으로 사용하기 위한 해킹이 아니라 기술적 호기심에 대한 접근이며, 특히 하드웨어 펌웨어를 해킹하는 방식에 대한 괜찮은 기술 레퍼런스로 보인다. 공유기든 게임기든 현재의 기기 해킹은 이와 비슷한 방식으로 이루어지는 것으로 알고 있는데, 내용에도 나오는 것 처럼 이를 방지하기 위한 칩 레벨의 방어 기술도 계속 선보이고 있다. 방식을 대충 요약해 보면 다음과 같다. (1) 기기를 열어서 (2) 프로세서와 플래시의 칩 종류를 확인함 (3) 디버깅 포트를 찾아야 하는데 이 기기의 경우 정직하게 드러나 있고 (4) 그게 진짜 맞는지 datasheet와 멀티미터 체크를 통해 확인함...
이전 글에서 밝혔지만, 사용하고 있는 맥 기기 대부분은 아직 macOS 10.14 모하비(Mojave)를 사용하고 있다. 이번에 출시된 macOS 11은 오랫동안 사용된 10.x 버전명을 벗어난 버전이기도 하고, 어쩌면 이 버전이 Intel CPU 기반이 메이저에서 벗어나는 macOS가 될 것 같기도 해서, 겸사겸사 맥북 프로에 깔아 보았다. 비주얼 적으로는 iOS/iPadOS가 많이 연상되는데, 아이콘이나 컨트롤센터 등의 모습이 특히 그렇다. 모바일 기기와의 통일성을 고려했다면 이해는 된다. 사용 소감은, 이후 추가 예정.사용 소감은 여기에.
조만간 macOS의 최신 버전인 11.0 Big Sur가 출시될 예정이라고 한다. 하지만 보유한 모든 맥 기기(iMac, Mac mini, Macbook Pro)에서 현재 사용하고 있는 macOS의 버전은 현재까지 최신 버전인 Catalina가 아니라 그 이전 버전인 Mojave이다. 개인적으로 왜 그렇게 사용하고 있는지 설명해 보겠다. 1. 거의 강제하고 있는 터미널 쉘 zshCatalina 부터 터미널에서 bash 쉘을 사용하고 있으면 경고 문구가 뜬다. 반 강제적으로 zsh을 종용한다. 개인적으로 이것이 매우 마음에 들지 않늗다.물론 bash를 사용하던 버전에서 부터 일부러 zsh/oh-my-zsh을 설치해서 사용하는 사용자도 많은 것으로 알고 있다. 이러한 사용자들은 bash가 너무 오래되었고 z..