개발 26

아이폰 12 패널과 배터리 교체 후기

작년 인턴 생활을 할 때 기존에 가지고 있던 6 Plus로는 회사 앱 설치가 불가능해 급하게 아이폰 12를 refurbished로 아마존에서 구매했었다. 처음에 왔을 때부터 최대 배터리 성능이 80%였던터라 한 1년 가까이 쓰니까 전압이 일정하지 않아서 그런지 툭하면 꺼지곤 해서 스트레스가 이만저만이 아니었다. 이러한 이유로 한국에 온 김에 배터리 교체를 감행했다. 전에 이미 한번 바꿔본 기억이 있어서 그렇게 어렵진 않았다. 하지만 문제는 패널을 제거하면서 발생했는데, 아시는 분은 아시다시피 아이폰은 앞에서 패널을 먼저 제거해야 내부 부품에 접근할 수 있다. 근데 제거하다가 패널을 깨먹었다. 패널과 패널에 붙어 있는 프레임 사이에 헤라를 넣어서 모서리에 가니 사실상 유리를 직접적으로 건들여서 부셨기 때문..

hlint 설치 후기

Haskell을 학교에서 배우는데 좀 어설픈 것 같아서 방학이 된 겸, 교수님이 쓰시는 자료 (1)뿐만 아니라 다른 자료 (2)도 찾아보면서 공부하려고 준비하고 있었다. 내 눈에 밟힌 건 stack인데 stack이 하스켈 개발 전반적으로 도움을 주는 프로그램이라 설치해보려고 시도했다. 결론적으로는 실패했는데 아직 OS X AArch64는 지원을 안 한다고 한다 (출처는 GHCup). cabal은 되는 것 같아서 이걸로 프로젝트를 프로젝트답게 할 수 있지 않을까 싶어서 또 다른 삽질을 하던 도중 haskell의 linter인 hlinter를 vscode에서 발견했고 이걸 사용하려면 hlint를 설치해야 한다는 걸 알았다. 설치 방법은 상당히 쉬운데 cabal install hlint면 된다. 그치만!!! ..

자바스크립트의 신기한 기능들

이 글에서는 제가 자바스크립트를 공부하면서 다른 언어에서는 볼 수 없었던, 그래서 신기하지만 까먹지 않게 메모하고 싶은 기능들을 정리해보려고 합니다. 1. 호이스팅 (Hoisting) JS에는 변수나 함수를 선언할 때 (추가로 뭐가 있는지 안 찾아봄) 선언문을 가장 위로 끌어올려주는 (Hoist) 기능이 있습니다. 가령 이런 코드가 가능하다는 것이죠. 그렇지만 우리가 예상했던 것과는 다르게 호이스팅을 해도 "Hello"가 출력되진 않고 undefined가 출력됩니다. 그 이유는 변수의 선언 (책마다 표현하는 방식이 다르긴 하지만 전 declaration과 initialization or assignment로 구분하겠습니다)만을 호이스팅하기 때문입니다. 따라서 내부적으로는 코드가 다음과 같이 선언되게 된다..

개발 2021.08.22

About Mathematics Behind Large Margin Classification Quiz

SVM의 수학적 의미에 대해 설명하는 강의에서 나온 퀴즈다. 보기로는 1/4, 1/2, 1, 2가 주어지고 그중에 하나를 고르면 된다. 나는 문제를 풀고 보기 중에 선택하면 될 줄 알았는데 그렇게 하면 답을 못 구하고 보기를 하나씩 대입해보면 풀 수 있다. Decision boundary가 y축이라면 theta는 boundary와 수직을 이뤄야 한다. 그리고 우리는 다음과 같은 숙제를 갖고 있다. $$\min_{\theta}\frac{1}{2}\sum_{j=1}^{n}{\theta_{j}^{2}} \\ \text{s.t. } \begin{cases} p^{(i)}\left \| \theta \right \| \geq 1 & \text{ if } y^{(i)}=1 \\ p^{(i)}\left \| \the..

개발 2019.09.30