Tag: software
-
Structural matching simplifies the code
Well known structural matching in python would be match case. But there’s an other kind and it checks # of items, e.g., If foo() returns [1], it works fine. But if it returns either multiple items [1, 2, 3] or an empty list, it fails. This is pretty neat. I have been checking the length…
-
Better dict for configuration
When I use dict as a config of deep learning algorithms, I often run multiple training runs, varying the config value. As a trivial example: And then I run multiple iterations varying the ‘lr’. When doing that, I feel worried about making mistake like updating the dict with wrong key, e.g., To address such concerns,…
-
시간을 초월한 개발자에 대한 조언: 이름 짓기
트위터에서 이런 글을 읽었다. 지나치게 표면적인 이야기처럼 들릴지 모르지만, 모두의 경험은 다르다. 서로 다른 제품을 만들었고, 다른 환경, 다른 사람들과 일해왔다. 관찰의 범위가 다르고 각자가 추구해온 목표도 다르다. 그러므로 조언은 … 어디까지나 개인적인 것이고 읽는 사람이 그것을 내 상황에 맞게 이해하는 것이 필요하다. 그렇다면 그 모두를 초월한 지혜는 없을까. 여기에 ‘이름 짓기’가 떠올랐다. 컴퓨터 과학에서…
-
Tuple is immutable in python
I find this very interesting. These examples are from fluent python. Likewise… The reason of these behaviors are easier to understand if we take a look at the methods of tuple. Whenever += is called for tuple, say, a += b, what’s actually happening is a + b and then a = a + b.…
-
Keras 에서 Jax, Flax 로 코드를 옮겨본 소감
성능이 더 개선된다는 이유로, 그리고 기술적인 호기심으로 Keras 코드를 Jax로 옮기고 있다. 그러면서 느낀 점들을 공유해서 같은 migration을 하고 싶은 경우에 참고가 되었으면 한다. Jax 의 첫인상은 배우기 어렵단 것이었다. 특히 Sharpbits 에 그 내용이 잘 정리되어있는데 대부분은 데이터가 immutable 하다는 것으로 요약된다. 이것이 처음에는 매우 당혹스럽다가 서서히 익숙해졌다. 그러나 몇가지는 생각지도 못한 문제가 있었다.…
-
Forcing accessibility font size and dark theme on mobile chrome
Chrome on Android has accessibility settings to override font size. But there are websites that the change doesn’t apply. Also, chrome doesn’t use dark theme even when system theme is using it. Enable these two flags at chrome://flags to fix them. Restarting Chrome, you’ll see new accessibility settings for fonts and new menu item on…
-
Use left option key as ALT for VIM on mac
Use iterm2 and change the left option to ESC+ Once that done, left option will work as alt in the vim. But it will break your cursor movement in the shell, i.e., opt+left and opt+right won’t move cursor over words. To fix that, type in ‘cat’, type the key you want to bind, i.e., opt+left…
-
Use nerd font on chromebook terminal and changing the font size
Press ctrl+shift+j in the terminal, then paste the below. See https://gist.github.com/izzqz/af36c5bbde67ffff0f7614cf738d75a5 for details. Plus, you can change font size. This is from https://chromium.googlesource.com/apps/libapps/+/HEAD/nassh/docs/FAQ.md#How-do-I-use-web-fonts p.s. It still doesn’t render all the icons, e.g,. vim-tree in nvim. I don’t know answer for that.
-
의존성을 제거하여 생각하기
초보 개발자 시절엔 모든 코드를 자기가 생각하는 주요 비즈니스로직에 따라 작성한다. 사용자가 입력을 주면 파일에 쓰고, 검색어를 입력하면 검색을 수행한다. 여기서 조금 발전하면 코너 케이스를 보게 된다. 사용자의 입력이 버퍼 오버플로우를 일으킬 수 있다. 사용자의 입력이 엉뚱한 곳에 저장되어 시스템에 부정적인 영향을 줄 수 있다. 이런 점들을 깨달은 엔지니어는 이제 모든일에서 빼먹기 쉬운 유의사항을 쉽게…
-
개인용 pc 를 서버로 사용한 안전한 원격 작업 실행
클라우드를 사용할 때 한가지 장점은 보안이다. 인프라 보안을 책임져주는 부분도 있겠지만 개인 pc 를 사용할 때 대비 털려도 개인 파일이 탈취당하지 않는다는 장점이 있다. 코드와 데이터는 털리더락도 개인용 pc의 은행 인증서까지 해킹당하는 시나리오 보단 낫다. 그렇다면 개인용 pc 를 보다 안전하게 원격으로 사용하여 프로그램을 실행하는 방법은 무엇일까. 여기서 고려하는 시나리오는 저성능 랩탑 클라이언트로 코딩하고 원격지에…