Eli의 여백

바쁜 나날들 사이에서 생각났던 이런저런 것들을 적어봅니다.

프로그래밍 11

C# 앱 제작시 Topmost 적용 안되는 현상 해결방법

문제상황게임화면 위에 원하는 미니맵을 띄우고 싶어서 개발을 시작함. VS써서 C#으로 Windows Forms app을 만들었으나 Forms.TopMost = true가 제대로 먹히지 않아 게임화면 밑으로 앱이 자꾸 묻힘. 인터넷 찾아보니 TopMost나 TopLevel에 parent 지정하는 것으로 z순서를 지정하라는데 내가 원하는 건 다른 앱 위에 올리는거라 결국엔 안됐음. 이전에 win32api 할 때 SetWindowEx로 임의의 창을 강제로 always on top으로 올리는 기능이 가능했기 때문에 c#에서도 분명히 될거라고 생각했음. 해결방법결국은 user32.dll을 P/invoke로 import해서 해결 가능했다. 코드는 다음과 같다.using System.ComponentModel;usi..

프로그래밍 2024.06.12

Exe 프로그램 배포시 자체 인증서 만들고 디지털 서명 적용

작성계기Visual studio 2022에서 간단한 windows forms 프로그램을 만들고 binary를 github release에 등록했는데 다른 컴퓨터에서 받을 경우 신뢰할 수 없는 게시자 경고가 뜸. 알 수 없는 게시자 문제를 해결하고자 사설 인증서 작성 후 적용했으나 windows 10과 11에서 Smartscreen이 신뢰할 수 있는 게시자(CA) 에 등록되지 않은 경우 게시자 표시가 불가하다는 것을 확인함. 그래도 인증서 만들고 디지털 서명 적용하는 과정이 의미있었다 생각했고, 기록으로 남기고자 함. 사설 인증서 생성 절차기본적으로 VS 2022에 windows SDK를 깔면 생기는 makecert.exe를 활용한다. 1. VS에서 도구-명령줄-개발자 명령 프롬프트 켜기 2. makece..

IT/새로운 시도 2024.06.12

그림 그리는 AI, 나도 그냥 쓸 수 있게 된 세상. Stable Diffusion으로 세상에 없던 그림 만들기

인공지능으로 멋진 그림을 쉽게 그릴 수 있다는 사실은 2020년대를 살아가는 현대인은 모를 수가 없을 것이다. 보통 이런 서비스는 유료 서비스 또는 정액제 회원가입을 요구하는 경우가 많다. 만약 무료이더라도 반짝 하고 나왔다가 소리소문 없이 사라지고, 결정적으로 온라인에서 써볼 수 있는 그림 그려주는 AI 서비스들은 자기네들이 학습시킨 모델을 공개하지 않고, 온라인 접속이 가능해야만 사용할 수 있기 때문에 사용에 여러 제약이 많았다. 그런데 오늘 우연찮은 기회를 통해 돈을 꽤 많이 들여서 만든 약 7GB에 달하는 거대 AI 모델을 대범하게 무료 전체공개로 뿌려버린 사람들이 있다는 사실을 알게 되었다. 심지어 몇몇 사람들이 이걸 일반인들도 쓰기 쉽게 오프라인 그래픽 인터페이스까지 구현 및 공개한 상황이기 ..

IT/새로운 시도 2022.10.20

오디오 파일 읽어서 SoundCloud Waveform처럼 만들기 관련 자료

얼마 전 비전공자 입장에서 TTS 제작하는 SCE-TTS라는 곳에서 Mimic Recording studio 사용하는 것을 봤는데 무슨 도커깔고 서버열고 하는거보고 이건 아니다 싶었고, 녹음하는 부분이 개선될 여지가 있을까 해서 잠깐 이것저것 찾아봄. 당연히 기본 녹음의 경우 Audacity를 이용하면 쉽게 할 수 있으나, 좀 더 아름답게 waveform 그리는 것 관련해서 이전 글에서도 잠깐 흥미가 생겨서 검색해봤던 점도 있고 해서 audio visualization 관련으로 약간 더 찾아봄. 그 결과 유용한 자료들 몇 가지를 찾은 것 같아서 간단하게 기록으로 남겨 본다. NAudio.WaveFormRenderer 맨 위의 그림처럼 대략적인 프리셋이 이미 갖춰진 example을 포함한다. https:/..

프로그래밍 2022.02.21

뽑기 확률 시뮬레이터, 설계부터 구현까지

들어가며우리나라에도 제대로 된 온라인 뽑기 확률 계산기가 있으면 좋겠다는 생각에서 출발했었고, 주말을 투자해서 쓸만한 결과물을 얻었었다. 그리고 뽑기 확률 시뮬레이터 완성품에 대한 공개 및 계산 결과 해석방법에 대해서 이전 글에서 상세히 다루었다. 이전 글 링크는 다음과 같다.https://projecteli.tistory.com/199 천장 찍으려면 얼마 필요? 뽑기 확률 시뮬레이터(Random box simulator)뽑기확률 by ProjectEli (@projecteli) on CodePen. 작성계기 얼마전에 우연하게 확률형 아이템이 있는 게임들의 확률 표기 방식에 대해 문제를 지적하는 한 영상(김실장 유튜브)을 보고 영상에 나온대로projecteli.tistory.com 이번 글에서는 해당 시..

IT/새로운 시도 2022.01.26

천장 찍으려면 얼마 필요? 뽑기 확률 시뮬레이터(Loot box simulator)

뽑기 확률 계산 (초기 로딩에 약간 시간이 소요될 수 있음) 뽑기확률 by ProjectEli (@projecteli) on CodePen. 작성계기 얼마전에 우연하게 확률형 아이템이 있는 게임들의 확률 표기 방식에 대해 문제를 지적하는 한 영상(김실장 유튜브)을 보고 영상에 나온대로 내가 뽑을 확률이 99%가 되려면 예상 시도횟수와 들어가는 비용이 얼마나 되는지 쉽게 계산할 수 있으면 좋겠다는 생각이 들었다. 그런데 아쉬웠던 점은 우리나라 사람이 우리나라 게임에 대해서 얘기하고 있는데 일본껄 가져왔다는 것이다. 약간 검색을 해보니 우리나라에 뽑기 확률 계산기가 제대로 된 게 없어서 그런 것 같았다. 특히 천장을 찍기 위해 필요한 뽑기 시도 횟수같은걸 제대로 구하는건 우리나라 확률형 아이템 규제법안에 아..

IT/새로운 시도 2022.01.17

오큘러스 퀘스트 2 첫 VR 앱 제작 및 빌드 문제 해결

제작동기 약 한 달 전쯤, 오큘러스 퀘스트 2를 구매한 후 신세계를 경험하면서, 이것저것 많은 것들을 해 봤다 (기기 관련 리뷰는 조만간 별도의 글로 정리해볼 예정이다). 그런데 대부분의 컨텐츠들이 남들이 만들어놓은 것을 보거나 쓰기만 하는 일방적인 앱들 뿐이라서 뭔가 아쉬웠다. ---- 2021-10-31 추가 ---- 후속 글이 완성되었다. 앱개발이 아니라 사용 리뷰가 궁금한 사람은 참고하기 바란다. https://projecteli.tistory.com/195 메타버스 기기로서의 오큘러스 퀘스트 2 느낀점 및 활용 팁 공유 이전 글을 쓴 이후로 바빠서 한동안 정리를 못했는데, 이제서야 키보드를 잡을 시간이 나서 글을 적는다. 약 한 달 전, 이런저런 이유로 페이스북의 VR 기기인 오큘러스 퀘스트 2..

IT/새로운 시도 2021.10.17

최근에 만든 앱 3종류

알파카 - 여타 스마트스피커보다 자연스러운 대화가 가능한 인공지능 사용 언어: Python 사용 라이브러리: OpenAI GPT-3 Davinci, Google cloud STT, Google 번역 개발도구: Microsoft Visual Studio Code + Github desktop (버전관리 및 github 업로드용) 개발기간: 3일 소스코드: Github gist 링크 (구글이랑 오픈AI의 API키는 json받은 다음 윈도우 시스템 환경변수에 해당이름으로 등록했음) 알파카 - GPT-3를 사용한 음성인식 알파카 - GPT-3를 사용한 음성인식. GitHub Gist: instantly share code, notes, and snippets. gist.github.com 구현 아이디어 카카오 ..

IT/새로운 시도 2021.07.08

Jupyter lab 환경에서의 MNIST 재해석

들어가며 이번 주에는 실험을 하다가 즉석에서 계량과 오차계산을 다 해야 했던 실험과정이 있었다. 계산기를 쓰면 편한데 손에 라텍스 장갑을 끼고 있어서 키보드에 묻을 가능성도 있고 매우 찝찝했었다. 그래서 이전 글에서 세팅한 음성인식이 생각이 났다. 노트북에 동일한 세팅을 하고 OriginLab에 연결시켜두면 자동계산이 될 것 같았다. 찾아보니까 origin도 python 연동이 되긴 하는데 2021버전부터 지원하고, 내 소속기관 라이센스는 2019가 한계라 불가능했다. 어쩔 수 없이 엑셀에 미리 수식을 써놓은 파일을 만들고 입력 부분만 말로 연동할 수 있게 하는걸로 계획을 변경했다. 그래서 다른 사람 글을 참고해서 python으로 엑셀을 제어할 수 있는 모듈을 하나 작성했다. 음성인식 부분도 google..

MATLAB으로 웹캠 OCR 하기

준비사항 1. USB 웹캠 라이브러리 https://kr.mathworks.com/matlabcentral/fileexchange/45182-matlab-support-package-for-usb-webcams MATLAB에서 웹캠 기능을 쓰려면 위 라이브러리 패키지를 다운받은 후 설치하면 된다. 2. Computer Vision Toolbox https://kr.mathworks.com/products/computer-vision.html 이 글에서는 툴박스 라이센스가 있어서 바로 사용했고, 만약 라이센스 없거나 octave인 경우에는 OpenCV로 대체 가능할 듯하다. 웹캠에서 이미지 얻기 https://kr.mathworks.com/help/supportpkg/usbwebcams/ug/acquire..

프로그래밍 2020.01.03

MATLAB으로 머신러닝 입문(?)

최근에 인공지능이 아주 폭발적으로 크고 있고, 최소한 앞으로도 그게 지속될 것이라는 것은 누구나 아는 사실이다. 현재 나의 연구분야는 아직 인공지능이 깊이 들어와 있지 않다. 이게 오히려 기회가 되지 않을까? 하면서 머신러닝과 딥러닝 쪽을 이전부터 기웃거리고 있긴 한데, 어떻게 써먹어야 할지는 대충 감이 오는데 현재 상황상 일단 눈앞에 놓인 학위 연구 같은 것들 때문에 실천은 못하고 있는 중이다. 딥러닝으로 구현한 프로그램들이 그동안 상상도 못했던 것들을 만들어내는 것이 현실이고, 나도 시대에 뒤쳐지지 않기 위해 흥미롭기도 한 머신러닝을 몇 년 전부터 깔짝대고 있다. 그동안은 정말로 관심은 많이 갔지만 대중 매체에는 맨날 보면 뉴럴넷 그림 같은 거 박아놓고 중간과정은 싸그리 생략하고 놀라 자빠질만한 결과..

프로그래밍 2019.12.13