본문 바로가기

전체 글361

메타인지 학습기 Booknoon, 성적 올리는 부스터 상위 1%의 선택 메타인지 학습기 북눈 자동 이해 자동 기억 국어+영어+암기과목, 수학까지? 내신부터 로스쿨까지 무정차 공인중개사도 한번에 합격 -문해력 급상승 -집중학습력 최고조 -올백 제조기 2023. 1. 25.
아이폰6이지만 PC카톡이 쓰고 싶어 PC 카톡을 설치하면 맨 처음 보게 되는 화면이다. 로그인을 하면 이런 창이 뜬다. 두 버튼 중 무엇을 선택해도 모바일 카톡으로부터 인증을 받아야 한다. 근데 아이폰6이면 인증을 할 수가 없다. 왠진 모르겠지만 모바일 카카오톡이 최신 버전이 아니면 인증을 할 수가 없다고 한다. 그래서 아이폰6 유저라면 밑에 Having trouble?이라는 작은 회색 글자를 눌러야 한다. 그럼 이런 모달이 뜬다. Send를 누른다. 그럼 모바일 카카오톡으로 코드가 도착한다. 이걸 그대로 PC 카카오톡에 입력한다. 그럼 성공적으로 로그인이 된다. Having trouble?이라는 버튼을 못 봐서 탈옥도 해 보고 블루스택도 깔아보고 QR코드도 찍어보고 별 짓을 다 했지만 다 실패했다. 이럴 거면 그냥 처음부터 4자리 코드로.. 2023. 1. 21.
[C# WPF] 연속해서 여러 번 클릭하는 것을 방지해보자. 다음과 같은 코드가 있다. public partial class MainWindow : Window { private void Button_Click(object sender, RoutedEventArgs e) { Thread.Sleep(500); Title += "a"; } } Title을 수정하는 코드가 0초가 걸린다고 하면 이 버튼은 클릭을 할 때마다 0.5초가 걸리는 작업을 한다. 근데 클릭을 한 번 하고 나서 0.5초의 작업을 하는 동안 한 번 더 클릭하면 클릭이 예약이 되어버린다. 버튼을 눌렀더니 0.5초 동안 무응답이길래 한 번 더 눌렀는데 1초를 기다려야 하는 셈이다. 성질 급한 사람은 3번 이상 누를지도 모른다. 그럼 무응답인 시간은 계속 길어지고, 스트레스는 증가하고, 버튼은 계속 누르.. 2023. 1. 20.
[NSIS] 우리 NSIS로 한 번 가자 NSIS는 nullsoft scriptable install system의 약자이다. installer를 만들어주는 프로그램이다. 왜 Microsoft Visual Studio Installer Project를 사용하지 않고 NSIS를 사용하게 되었는가? 그것은 바로 덮어쓰기 때문이다. Microsoft에서 제공하는 Installer는 동일 버전이 이미 설치되어 있으면 덮어쓰기가 불가능하다. 버전을 높여서 설치기를 만들어도 어셈블리 파일 버전이 같으면 덮어쓰기가 안 된다. 일일히 버전을 높여줘야 하는 번거로움이 있다. 반면에 NSIS는 버전과 관계없이 동일 경로에 무조건 덮어쓰기가 가능하다. 그래서 나는 NSIS를 선택했다. Download - NSIS (sourceforge.io) 2023. 1. 17.
[C#] StackOverflowException은 얼마나 스택이 쌓여야 뜰까? class Program { static void Main(string[] args) { a(0); } private static void a(int b) { Console.WriteLine(b); a(b + 1); } } 15138 15139 15140 15141 15142 15143 15144 15145 15146 15147 15148 15149 15150 15151 15152 15153 Process is terminated due to StackOverflowException. Press any key to continue . . . 15155개의 스택이 쌓이면 오류가 뜸을 알 수 있다. 2023. 1. 13.
[C#] Tesseract.Page의 메소드별 경과 시간 비교 class Program { static void Main(string[] args) { var pix = Pix.LoadFromFile("file path"); using (var engine = new TesseractEngine(".", "eng")) { engine.SetVariable("thresholding_method", 2); engine.SetVariable("load_system_dawg", false); engine.SetVariable("load_freq_dawg", false); var page = engine.Process(pix); var watch = Stopwatch.StartNew(); // code from here page.GetAltoText(0); // to her.. 2023. 1. 11.
[C#] Property의 StackOverflow public ImageSource Icon { get { return Icon; } set { if(value != Icon) { Icon = value; OnPropertyChanged("Icon"); } } } 위와 같은 Property를 넣고 프로그램을 디버그하니까 Process is terminated due to StackOverflowException. 라는 메시지가 나왔다. 왜 그런걸까? 문제의 코드는 무려 두 군데나 있었다. 첫 번째는 get에서 return Icon, 두 번째는 set에서 Icon = value다. 두 코드 모두 get과 set을 재귀적으로 호출하게 된다. 결국 끝나지 않는 무한루프에 빠지게 되는 것이다. private ImageSource icon; public Imag.. 2023. 1. 10.
[C# WPF] Ctrl Z 감지하기 private void Window_KeyDown(object sender, KeyEventArgs e) { if(e.Key==Key.Z && e.KeyboardDevice.Modifiers == ModifierKeys.Control) { Console.WriteLine("wow"); } } 실험해본 결과 Z를 먼저 누르고 Control을 누르면 wow가 출력되지 않는다. 2023. 1. 9.
[Visual Studio] Git failed with a fatal error. 해결 git을 깔면 된다. github 말고 git 말하는 거임. 저 에러 때문에 github desktop으로 들어가서 푸시해야 돼서 불편했는데, 너무 쉽게 해결되서 허무하다. 2022. 12. 26.
GUI 만들기 새로운 프로젝트를 시작하자. 현재로서는 이유를 모르겠지만 (.NET Framework)이 들어간 것을 선택한다. 코드 파일(cs 확장자)이지만 일반 코드 파일과 모양이 다른 것이 생김 각종 컨트롤을 배치해야 하는데, 이것을 보려면 [도구 상자]를 열어야 한다. 컨트롤 이름 변경은, 아래 폼의 이름은 Form2이다. 변경 가능하다. Main이 있는 Program.cs에선 Form2라는 명칭이 중요하다. 반면 Text 속성의 Form1을 바꾸면 윈도우 상단 좌측 글씨도 바뀐다. 만약 Form1.cs의 파일 이름을 바꾸면 어떤 일이 일어날까? 관련 파일 이름들이 모두 바뀐다. 하지만 이름만 바뀔 뿐, 속성 내용과는 무관하다. 2022. 12. 11.