
IT/IoT | Hardware 2021. 4. 19.
Raspberry Pi Pico + Ethernet 연결하기 1 - 환경설정 라즈베리파이 피코 W5500
라즈베리파이 피코 보드에 대한 설명은 다른 곳에도 많이 있네요. 라즈베리파이 MCU 버전, 아두이노와 유사한 플랫폼입니다. 더 자세한 설명은 아래글... RP2040 RaspberryPi Pico 간단히 알아보기 --> divenire.tistory.com/292 라즈베리파이의 첫번째 MCU, RP2040 및 라즈베리파이 피코 소개 오픈소스 하드웨어의 대표주자인 라즈베리파이는 최근까지도 AP의 빈약한 GPIO로 애플리케이션의 엔드포인트에 이렇다 할만한 개선점이 크게 없었습니다. 호환성을 위해 GPIO 핀맵을 고수한 점은 divenire.tistory.com MicroPython vs CircuitPython for 이더넷 기능 Raspberry Pi Pico 보드에 Ethernet 기능을 추가하기 위해 ..

IT/파이썬 2021. 4. 16.
예외를 직접 발생시키기 - raise Exception
설명 필요없고, 아래 글 참고. raise Exception 함수내에서 Exception 처리하면 함수 호출 한 곳에서는 Exception이 발생이 안되니까, 별도로 Exception 처리이후에도 호출 쪽에서 그 내용을 알아야 한다면 강제로 raise Exception을 이용해서 예외를 다시 전달해 주도록 하자. dojang.io/mod/page/view.php?id=2400 파이썬 코딩 도장: 38.3 예외 발생시키기 지금까지 숫자를 0으로 나눴을 때 에러, 리스트의 범위를 벗어난 인덱스에 접근했을 때 에러 등 파이썬에서 정해진 예외만 처리했습니다. 이번에는 우리가 직접 예외를 발생시켜 보겠습니다. 예 dojang.io def three_multiple(): x = int(input('3의 배수를 입력..

IT/파이썬 2021. 4. 15.
Windows 10 SDK 설치 - dll 오류 같은 것이 나면
(아직 작성중인 글로 해결중인 블로그 글입니다. 최종 업데이트 하면 이 메시지는 사라집니다.) 그냥 Windows 10 SDK 설치를 하세요. 여러모로 좋아요 Pyinstaller dll 오류가 많이 나서 찾아보니, 이런 답변이 많네요. api-ms-win-core- dll 같은 것들이 오류나 로그에 많이 나타나네요 윈도우 10에서는 WARNING: lib not found: api-ms-win-core-*.dll같은 에러가 출력되는데 이를 해결하기 위해 아래의 페이지를 참고하자. developer.microsoft.com/en-us/windows/downloads/windows-10-sdk/ Windows 10 SDK - Windows app development Windows App Certifica..

IT/파이썬 2021. 4. 14.
파이썬 bytearray 배열 reset 하기
마이크로파이썬 micropython 의 세계로 들어가고 있다. 점점..하다보니 bytearray를 새로 만드는 것은 정말 자료도 많이 있는데, 이미 만들어진 bytearray를 다시 리셋 시켜주는 코드를 찾기가 쉽지 않네. 물론 가장 쉽게 할 수 있는 방법은 for i in range(len(your_array)): your_array[i] = 0 요거 더 잘하는 방법이 있을 것 같아서 찾아본 결과. $ ./upython MicroPython v1.8.1-39-gdb4addd on 2016-07-01; linux version Use Ctrl-D to exit, Ctrl-E for paste mode >>> a = bytearray(10) >>> id(a) 139728051341376 >>> a[:] =..

IT/Web 2021. 3. 31.
Asciidoc adoc 파일 pdf 변환시 한글 폰트 해결 팁 (잔머리)
Asciidoc을 이용해서 html pdf 내보내기 되고, 마크다운 같이 관리되고 다 좋은데 이것 참 pdf export 하면 기본적으로 한글이 네모난 칸으로 나오는 문제가 발생. 많은 해결했다는 곳들이 있지만, 나만의 팁을 공개. 최적은 아니어도 일단 됨 일단 한글 폰트 ttf 파일을 구해야 한다. 이건 어디서든 받을 수 있으니 일단 생략. 그리고는 다운도르 받은 폰트 파일을 아래 위치에 복사해 둔다. 나는 Ruby에서 \asciidoctor-pdf-1.5.4 가 설치되어 있으니 아래 위치인데 각자 설치한 위치에 비슷한 공간에 두면 된다. 여기에 폰트가 없으면 잘 안되서 그냥 여기에 뒀다. 다른 방법이 있으면 더 좋은데 이미 설치된 폰트파일에서 가져오는 것 처럼 말이다...무튼... 이젠 템플릿 혹은 ..

IT/파이썬 2021. 3. 19.
파이썬 pyside2 IP address 입력 창 만들기 - PyQt5 QLineEdit
파이썬 pyside2 IP address 입력 창 만들기 PyQT5, Pyside2를 이용한다면 아래 코드를 참고하면 IP address만 받는 입력 박스을 얻을 수 있다. 정규식과 Validator 를 활용하는 방법이 정말 좋아 보인다. ipRange = "(?:[0-1]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])" # Part of the regular expression # Regulare expression ipRegex = QRegExp("^" + ipRange + "\\." + ipRange + "\\." + ipRange + "\\." + ipRange + "$") ipValidator = QRegExpValidator(ipRegex, self) lineEdit = QLine..

IT/DB 2021. 3. 18.
MongoDB 복원하기 - mongorestore
백업 했으니 복원도 테스트 해봐야지 말이 필요없다. 성공한 내용은 아래와 같다. mongorestore --host 127.0.0.1 --port 27017 -u 사용자명 -p 비밀번호 --db 복원할DB ~/mongo_backup/복원할DB --authenticationDatabase admin --drop 물론 복원할 DB가 저장되어 있는 위치는 잘 맞춰서 넣어 주어야 한다. 문제가 없으면 아래와 같은 진행과정을 볼 수 있다. 이제 필요시 백업 복원은 자유롭게 해 보자. 물론 RAID 처럼 자동으로 되면 좋은데, 이것도 알아볼까나~~ 아~ --drop 이 문제가 많이 되었다. 여기저기 찾아보면 --drop 옵션에 db 명을 적어 주는 것으로 되어 있는데 난 해보니 그냥 옵션만 주는 게 맞는 것 같다...

IT/파이썬 2021. 3. 16.
파이썬 여러 widget 이 하나의 슬롯(callback/signal) 함수 사용하기
버튼 클릭이든, cellchanged 든 위젯을 쓰다보면 이벤트에 반응하는 함수를 구현해서 써야 한다. 버튼이 여러개 인데 거의 동일한 기능을 한다든지 혹은 위젯 배열로 구성했다던지 할 때 각각 signal 함수를 만들면 편리한 점도 있지만, 코드 낭비가 심하다는 기분이 많이 든다. 그래서 찾아보니 sender() 라는 함수가 있어서 동일한 함수를 써도 누가 보내는지 구분할 수 있도록 되어 있다. 이젠 거의 대부분 같은 기능을 하는 중복 함수라면 같이 사용하면 되겠다. 아래 예제 코드의 일부분은 QLineEdit 위젯에 글자를 쓰면 원하는 글자만 받도록 만드는 filter 기능을 넣고 싶을 때 사용한 코드이다. 물론 QLineEdit 가 배열형태로 많이 있는 페이지에서 동일한 필터를 사용하는 경우 사용하..

IT/파이썬 2021. 3. 10.
파이썬 변수 할당시 메모리 복사? 참조? copy deepcopy slicing
항상 궁금하던 건데, 파이썬은 막쓰기 좋은데 불안해~~~ 일단 변수에 다른 변수를 대입하는 형태로 하면 기본적으로는 포인터 교환처럼 같은 곳을 가리키는 포인터 값을 공유하는 느낌. from docs.python.org/ko/3/library/copy.html 파이썬에서 대입문은 객체를 복사하지 않고, 대상과 객체 사이에 바인딩을 만듭니다.가변(mutable) 컬렉션 또는 가변(mutable) 항목들을 포함한 컬렉션의 경우때로 컬렉션을 변경하지 않고 사본을 변경하기 위해 복사가 필요합니다. 요상하게 2가지 타입이 있어서 동작이 다르게 된다고 하니 그게 좀 문제 mutable , immutable 대충 내가 이해하기 위해 적어논 원칙, mutable 은 그냥 복사한 대로 그대로 사용만 되고, (즉 문자열같은..

IT/파이썬 2021. 3. 2.
파이썬 getattr 함수란? - 문자열 변수값과 동일한 객체 속성 불러오기
코드에서 getattr 이 있어서 간단하게 찾아봄 결론적으로 getattr(object, attr) 와 실제 object.attr 로 부르는 것이 동일하다는 뜻 For example, getattr(x, 'foobar') is equivalent to x.foobar. docs.python.org/3/library/functions.html#getattr Built-in Functions — Python 3.9.2 documentation Built-in Functions The Python interpreter has a number of functions and types built into it that are always available. They are listed here in alphabe..

IT/파이썬 2021. 2. 27.
파이썬 pyside2 layout에 버튼, 라벨 위젯 추가시에 쓰는 함수
파이썬 pyside2 layout에 버튼, 라벨 위젯 추가시에 쓰는 함수 보통은 그냥 addWidget 을 써버리는데, 이게 추가하는 순서대로 놓아지니깐, 나중에 뒤에 추가하는 것을 앞으로 정렬하고 싶을때 또 인덱스를 찾아서 지우고 삽입하는 과정을 해야 하는 것으로 레퍼런스가 많이 되어 있다. 그냥 런타임에 바뀌는 것이 아니라면, 원하는 순서대로 자기가 넣을 수 있도로고 addWidget 대신에 insertWidget 함수를 사용하면 편리하다. 아래처럼 말이다. # 원래코드 # self.ui.horizontalLayout_5.addWidget(self.ui.btn_search) # index 정보를 넣을 수 있는 insertWidget 사용한 코드 self.ui.horizontalLayout_5.inse..

IT/파이썬 2021. 2. 26.
파이썬 pyside2 버튼 글자 왼쪽 정렬
pyside2 pyqt5에서 QPushButton에 이미지도 넣고 글자도 넣고, 왼쪽으로 정렬하고자 한다면, 아래 그림처럼 (qpushbutton icon left alignment text left alignment) 간단하게 스타일시트 하나 적용하면 된다. 버튼이름.setStyleSheet("QPushButton { text-align: left; }") 추가로, 아래 내용도 넣어 주면 좋을 듯 background-position: left; background-repeat: no-reperat; 이글은 질문에서 답을 찾아온 것입니다. 아래 질문은 더 어려운걸 요구하셔서 ㅋㅋ 이미지는 왼쪽 정렬, 글자는 가운데 정렬 머 우리는 간단하게 통일하자고~~ stackoverflow.com/questions/..
