목록개발 (99)
Joonas' Note
Google에는 단말기에서 AR 관련 기능이 돌아갈 수 있도록 AR 플랫폼인 ARCore가 있다. 최근 이와 관련한 업데이트가 있어 글로 남겨볼까 한다. ARCore를 사용하여 개발하는 튜토리얼을 보다보면, OpenGL을 직접 사용하지 않고 Sceneform이라는 프레임워크를 사용하여 개발하는 문서가 굉장히 많다. (실제로도 공식 샘플 코드에서 사용한다.) 하지만 관리가 점점 힘들어지는 탓인지, 프로젝트를 closed해버렸고 1.16 버전부터 오픈소스로 전환, archived 해버렸다. (한국 시간 기준으로 5월 15일) [프로젝트 링크] 이렇게 되면 한가지 문제가 있다. Android Studio에는 3D Object를 쉽게 import 하기 위한 플러그인으로, Google Sceneform Tools..
작년 말에 GitHub에 액션(Actions)이라는 기능이 추가되었다. 이제 GitHub에서는 자체적으로 CI 기능을 제공한다. 그 전에는 Travis-CI 아니면 CircleCI에서 빌드 & 테스트를 하고, 그 상태를 위 같은 배지 이미지로 표시했는데, 이제 직접 제공하면서 더 간편해졌다. 환경 변수를 암호화해서 Travis-CI에서 빌드하는 그런 기능까지 있는지는 써보면서 확인을 해봐야겠다. (aws나 google api key 때문에.. 이거 암호화하는 거 꼭 필요함..) CI + Chrome WebDriver + pytest 배포 전에는 미리 배포 환경으로 테스트하면서 종종 사용하는데, 이번에는 문제가 생겼다. 분명 Windows 10에서는 Chrome WebDriver 사용하는 selenium ..
종종 사용하는 std::binary_search와 그 친구들(lower_bound, upper_bound)의 구현입니다.이 친구들은 헤더에 있습니다. 평소 쓰던 스타일을 그대로 작성하여 올립니다.binary_search가 왜 그 lower_bound와 key가 같은지만 비교하는 지는, 다른 글에서 설명하였다. [보기]코드
저는 quick sort를 기반으로 구현했고, 그 중에서도 중간값이 아닌 (위치가) 중앙에 있는 값을 사용했습니다.이 정도만 구현해도 많은 문제는 생기지 않았습니다. 다만 실제 std::sort 는 구조가 조금 다른 것으로 알고 있습니다. 크기가 100개 이하인 케이스는 insertion sort를 사용하는 등 최적화를 위해서 수정했다고 하네요. template 함수로 작성했기 때문에, 타입은 별도로 명시하지 않아도 됩니다.int형 배열 a[100]에 대해서도, std::sort 함수 쓰듯이 sort(a, a+100) 이라고 호출해도 동작합니다. 이전 게시글에서 구현한 vector를 파라미터로 넘겨도 동작합니다. 즉, sort(vec.begin(), vec.end()) 가능합니다.코드
2018년 말에, Semantic-UI 에서 제공하는 progress bar를 살짝 바꾸어서 CSS의 overflow: hidden 속성으로 무한 로딩을 구현한 적이 있다. https://jsfiddle.net/J00nas/xpvt214o/970756/ 위 링크에서도 동작하는 모습을 볼 수 있다. 기존의 progess bar의 인터페이스는 그대로 유지하고 기능만 추가하였기에, 코드도 나름 깔끔한 편이다. 문제는 기존에 제공되는 placement text는 안된다. 당시에 이걸 유지해보려고 많은 삽질을 해봤다가 실패했다. 사실 이 기능은 Semantic-UI에 PR을 날렸으나 무산되었다. [Progress] Add properties for infinite loop as loader style #6691(..
(venv/db) joonas@DESKTOP-JOONAS $ ~/DB test $ pip install psycopg2Requirement already satisfied: psycopg2 in c:\users\joona\venv\db\lib\site-packages (2.8.4)(venv/db) joonas@DESKTOP-JOONAS ~/DB test $ python manage.py migrateTraceback (most recent call last): File "C:\Users\joona\venv\db\lib\site-packages\django\db\backends\base\base.py", line 220, in ensure_connection self.connect() ....(중략).....
자료를 정리하다 우연히 옛날에 개발하면서 생겼던 버그와 해결법이 있어서 공유 2014년 11월 즈음에, 아주 오래된 CentOS 5.x 운영체제에서 돌아가는 PHP 사이트를 관리하던 시절이 있었다. 꽤 많은 업데이트와 보안 패치 등을 위해서 PHP 버전을 업그레이드하려고 핬다. (PHP4에서 PHP5.4로) 당시에 CentOS의 yum 패키지 매니저로 아주 고생한 기억이 난다. yum의 의존성은 어떻게 잘 해결했다고 치고, 위 문제는 libedit.so.0을 패키지에 추가해서 해결했다.
게임 하러 가기: https://joonas-yoon.github.io/rubik-s-race/ (3 in 5)^2 puzzle Move the tiles, Solve the puzzle! joonas-yoon.github.io 2048 게임을 수정하여 다른 게임으로 만들었다. 빈 칸(어두운 색의 칸)으로 다른 타일을 옮겨서, 큰 판에 있는 중앙 3x3칸의 타일 배치를 (위에 있는) 작은 판의 3x3 타일 배치와 똑같게 만들면 게임에 승리한다. 더 적은 움직임으로 맞출수록 고득점이다. 사실 저번 주말, 카톡 단체 채팅방에서 우연히 아래 짤이 올라왔다. 머하는거지... 하고 보다가 오! 했다. 갑자기 이걸 코딩하겠다는 이야기도 나오고 해서 나도 솔깃했고 다음날 저녁 간단한 프로토타입을 만들었다. 우선, 처..