• [c#] 클래스 리스트를 쉽게 DataGridView에 바인드하기 – ObservableObject

    클래스 리스트를 DataGridView에 연결하여 리스트 아이템의 필드가 바뀐 때 후자에 반영되게 하려면 INotifyPropertyChanged.PropertyChanged 이벤트를 써야 한다. 이거는 원칙적으로 클래스의 각 필드에 구현을 해야 한다. 많이 번거롭고 코드도 길어진다. 더 편하게 하려면 클래스 리스트를 쓰지 않고 아예 DataTable을 이용한다. 하지만 이건 클래스 리스트보다 느리다. 변칙적인 방법인데 ObservableObject를 이용하면 클래스 리스트를 이용해서도 쉽게 구현할 수 있다. 이걸…

  • 유튜브 재생 목록으로 보는 지귀연 판사의 정치적 편향성

    지귀연 판사는 유튜브 채널을 가지고 있는데 여기에 재생 목록들이 공개되어 있다. 그 가운데 눈에 띄는 두 개의 동영상들이 있는데 이것들이 어떤 것인지는 보면 쉽게 알 수 있다. 왜 그렇게 무리한 결정을 했는지 어느 정도 수긍이 되는 성향이다. 바로 위에 있는 매불쇼의 그냥 노래 한 곡이랑은 차원이 다르다.

  • [c#] task와 lambda expression을 이용한 멀티 뜨레드

    전에는 멀티 뜨레드를 이용할 때 thread나 ThreadPool을 이용했지만 요샌 task를 쓴다. task로 새 뜨레드를 만들 땐 run이나 StartNew를 이용한다. 전자가 더 편하고 빠르다. run을 이용하면 새로운 뜨레드로 실행할 메떠드를 그대로 쓸 수 있다. 하지만 람다식을 써야 한다. StartNew로 하려면 대상 메떠드가 패러미터로 object만 받을 수 있다. 이걸 다시 타입캐스트해서 써야 하므로 번거롭다. 지나치게 간결한 건…

  • [c#] Contol.Invoke와 Control.BeginInvoke의 비교

    Invoke와 BeginInvoke는 멀티 뜨레드를 다룰 때 자주 쓴다. Invoke는 Control로 제어권이 넘어간 뒤 돌아올 때를 기다리고 BeginInvoke는 기다리지 않는다. 조금 더 어렵게 설명하면 전자는 synchronous 즉 동기적이고 후자는 asynchronous 즉 비동기적이다. 아래 예제에서 BeginInvoke를 한 거는 label 출력 명령을 떠나 보낸 뒤 바로 제 갈 길을 간다. 따라서 BeginInvoke가 실행된 뒤 그 끝을 기다리지 않고…

  • 넥스트레이드에서 매매되는 종목 아니라도 중간가 주문 가능

    중간가에 대해 검색을 해 보면 새로운 주식 거래소에 대한 내용들만 나온다. 중간가 주문은 넥스트레이드에서만 가능하다고 착각할 수 있다. 아니다. 한국거래소를 통해서도 중간가 주문을 지금 처리할 수 있다. 중간가는 1 매도 호가와 1 매수 호가의 평균 가격이다. 이들 호가는 계속 변하니 중간가도 그렇다. 따라서 중간가로 주문을 해 놓으면 고칠 필요가 없이 바로 체결이 된다. 가격이 1…

  • plum은 자두이지만 plum blossom은 자두꽃이 아니다

    plum blossom은 prunus mume 즉 매실나무의 꽃인 매화이다. 자두는 자두나무의 열매이고 매실은 매실나무의 그것이다. 이들 나무는 prunus라는 살구속의 한 가족이다. 그래서 서양사람들이 헷갈려 한다. 그렇다면 자두꽃은 뭐라 해야 할까? european plum blossom이라 한다.

  • 메모장을 종료해도 저장되지 않는 문제

    최신 버전의 메모장은 예전 버전과 달리 종료할 때 파일로 저장할 것인지를 묻지 않는다. 그냥 끝난다. 파일로 저장을 하지 않았음에도 불구하고 다시 실행하면 종료할 때 상태로 다시 시작한다. 이게 편할 수 있지만 문제가 될 수도 있다. 메모장으로 읽은 문서를 계속 메모장으로만 이용하려면 굳이 파일로 저장하는 과정을 거치지 않는 게 편할 수 있다. 하지만 메모장으로 문서를 여는…

  • 미국 미네소타 주 코팅된 주방 용품 등 판매 금지 – fda 불신

    The state last month became the first to ban the sale of cookware containing the socalled “forever chemical” known as PFAS.– the wall street journal 2025-2-13 미국의 미네소타 주에서는 pfasper- and polyfluoroalkyl substances로 코팅된 주방 용품이나 치실 등을 살 수 없다. 미국 정부는 테플론 등을 재료로 한 주방 용품이 몸에 해롭지 않다고 하지만 미네소타 주의…

  • [c#] 경로가 맞는데도 LoadLibrary가 126을 반환하고 실행되지 않는 문제

    아래의 코드는 0을 반환해야 하지만 126을 반환하는 경우도 있다. LoadLibrary가 파일을 찾지 못하면 GetLastWin32Error는 126을 반환한다. 그러나 File.Exists(path)로 확인을 한 상태이므로 126을 반환해서는 안 된다. 이 문제에 대해 검색을 해 보면 dependency가 어쩌구 하며 여러 설명들이 나오지만 내가 보기엔 그저 버그다. 같은 코드가 어떤 컴퓨터에서는 0을 반환하고 다른 거에서는 126을 반환하기도 하며 후자의 경우에도 정적으로…