전체 글 31

iPad에서 Python 배우기 - Carnet 모듈 설치하기

iPad 에서 Carnet 을 통해 pandas 를 공부하던 중, 예제 코드에서 to_excel() 함수를 사용하는 부분을 만났다. 다음과 같은 에러를 내며 함수가 실행되지 않았다. ModuleNotFoundError: No module named 'openpyxl' 데스크탑이라면 pip install 을 통해 터미널에서 모듈을 설치하면 되는데, ipython 환경에서는 어떻게 설치하지? 라는 의문이 생겨 찾아보았다. 다음과 같이 매직 함수를 통해 pip 를 사용할 수 있었다. 일단 pip 부터 업그레이드가 필요할 것 같다. 다음 명령어로 pip 업그레이드를 해준다. %pip install --upgrade pip 이후 업그레이드가 완료되면 다시 모듈 설치를 시도한다. %pip install openpy..

Python 2023.03.18

C++23 : stacktrace

Visual Studio 2022 의 최신 C++ 도입내용을 살펴보다 반가운 내용이 있어 오랜만에 블로그를 열었다. 드디어 콜스택을 확인할 수 있는 헤더를 VS에서 사용할 수 있게 되었다. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p0881r7.html A Proposal to add stacktrace library template string to_string(const basic_stacktrace & st); template basic_ostream & operator D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl(331): CppPractice!__scrt_co..

C++ 2022.11.27

Pandas : 데이터 집계 - 주간 집계하기, string -> datetime 타입변환

데이터 분석을 진행하면서, 일간 데이터를 주간 데이터로 재가공할 일이 있었다. Pandas 에서는 다음과 같이 데이터를 리샘플링(resample)할 수 있었다. https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.resample.html pandas.DataFrame.resample — pandas 1.3.4 documentation Which side of bin interval is closed. The default is ‘left’ for all frequency offsets except for ‘M’, ‘A’, ‘Q’, ‘BM’, ‘BA’, ‘BQ’, and ‘W’ which all have a default of ‘right’. Wh..

Python 2021.11.28

Pandas : 데이터 집계 - 범위로 그룹화 하기

Pandas 에서 데이터를 집계할 때, 범위 (0~10까지, 10~100까지, 100~1000까지... 등등) 로 데이터를 그룹화 하여 집계하는 방법을 정리해본다. 일단 간단한 더미데이터를 준비한다. import random data = [random.randint(0, 10000) for e in range(1000)] 위 데이터로 프레임을 만들어준다. import pandas as pd df = pd.DataFrame(data, columns=['value']) df.head() 이 데이터를 groupby 로 집계하려면, 집계의 기준이 될 column이 필요하다. 나는 위 프레임에 column 하나를 추가하여 "태그" 라 부르려 한다. # groupby용 태그 컬럼 추가 df['tag'] = 0 # ..

Python 2021.08.30

DX9-style assignment syntax is deprecated in technique10 pass blocks in favor of new function call syntax

technique11 Render { pass Pass0 { CULLMODE = NONE; SetVertexShader(CompileShader (vs_5_0, vs())); SetPixelShader(CompileShader (ps_5_0, ps())); } } Shader 마이그레이션 중 위 코드에서 다음과 같은 에러가 발생했다. DX9-style assignment syntax is deprecated in technique10 pass blocks in favor of new function call syntax CULLMODE = NONE 위 구문이 deprecated 된 것이다. technique10 이후부터는 아래와 같이 RasterizerState 를 별도로 선언하고, SetRasteriz..

DirectX11 2021.06.19

DX11 - 셰이더 마이그레이션

다음과 같이 1:1 로 변경하면 된다. ShaderModel 2 (DX9) ShaderModel 5 (DX11) 흩어져 있던 상수들 cbuffer (contant buffer) texture Texture2D 픽셀셰이더로 전달하는 POSITION SV_POSITION (system value position) PS_INPUT VS_OUTPUT 그대로 사용 ps(...) : COLOR0 ps(...) : SV_Target technique technique11 VertexShader = compile vs_2_0 vs(); SetVertexShader(CompileShader (vs_5_0, vs())) PixelShader = compile ps_2_0 ps(); SetPixelShader(Compile..

DirectX11 2021.06.19

DX11 - Encoded Pixel Shader size doesn't match specified size.

DX9 -> DX11 마이그레이션 중 다음 코드에서 에러메세지가 발생했다. // Create the pixel shader hr = GetDevice()->CreatePixelShader( pPSBlob->GetBufferPointer(), pPSBlob->GetBufferSize(), nullptr, &pPixelShader); Encoded Pixel Shader size doesn't match specified size. [ STATE_CREATION ERROR #192: CREATEPIXELSHADER_INVALIDSHADERBYTECODE] 아무리 확인해봐도 코드상으로는 잘못된 부분이 없어보였다. 셰이더 모델이 문제인가 싶어, 픽셀 셰이더 버전을 ps_2_0 에서 ps_4_0 으로 변경했더니 ..

DirectX11 2021.06.18

DX11 - D3D11CreateDeviceAndSwapChain 실패

Dx11 튜토리얼 코드가 D3D11CreateDeviceAndSwapChain() 함수에서 실패하여 DirectX Control Panel 에서 디버그 메세지를 켜보았다. 위와 같이 디버깅 할 프로그램 이름을 입력하면, DirectX 내부의 동작을 좀 더 세밀하게 확인할 수 있다. 위와 같이 설정한 뒤 프로젝트를 실행하면, 출력창에서 다음과 같은 에러메세지를 볼 수 있다. D3D11CreateDevice: Flags (0x2) were specified which require the D3D11 SDK Layers for Windows 10, but they are not present on the system. These flags must be removed, or the Windows 10 SDK ..

DirectX11 2021.05.10

교육용 퀴즈게임 : Quiz Slayer

지인 중 초등학교 교사분이 계신데, 수업중에 사용할 퀴즈 프로그램을 직접 파워포인트로 만들어서 사용하신다는 말을 듣고 마침 유니티 공부도 하던 겸 간단하게 퀴즈 프로그램을 만들어보았다. 선생님들이 데이터 파일에 문제/답을 직접 입력하고 해당 데이터 파일과 함께 게임을 압축해서 학생들에게 전달하면 학생들이 게임을 다운받아 플레이할 수 있다. 프로그램은 다음 링크에서 다운받을 수 있다. (파일이 너무 커서 첨부파일로 올리지 못함) drive.google.com/drive/folders/1dWnxHi30nITKbWGxud7wNuBVGwyPgfC7?usp=sharing 공유 - Google Drive 이 폴더에 파일이 없습니다.이 폴더에 파일을 추가하려면 로그인하세요. drive.google.com 아래에 사용..

Toy Project 2021.04.18