본문 바로가기

Develop

(33)
Python3 (SQL Alchemy) - MySQL server has gone away 에러 해결 Database 서버를 교체하고 기존 코드를 돌려보니, 크롤링을 하던 도중 ERROR 2006 (HY000): MySQL server has gone away 에러가 심심찮게 발생했다. 그래서 해결법을 찾아보았고 잘 되는것 같아 공유한다. 원인으로는 DB 서버측, 클라이언트 측이 있을 수 있다. # 서버 설정 보통 클라이언트에서 네트워킹이 장시간 없으면 서버 측에서 설정한 설정 값에 따라 연결을 끊거나, 서버에서 지정한 버퍼 (데이터 양)을 초과하면 서버에서 RST 패킷을 보내 연결을 끊는 것 같다. 대표적으로 관련된 설정 값은 아래와 같다. connect_timeout max_allowed_packet net_buffer_length max_allowed_packet wait_timeout mysql에..
Python3 - SQLAlchemy 사용하기 Draft Version. (연구하면서 틈틈히 업데이트할 것, 시간이 난다면 TEST DB의 테이블 구조 및 이름을 명시화 해서 코드를 작성하도록 하자) Python에서 database 사용을 위해 SQL Alchemy를 사용하고자 한다. # Connection Connection examples - http://docs.sqlalchemy.org/en/latest/core/engines.html#postgresql Engine Configuration — SQLAlchemy 1.3 Documentation The create_engine() function produces an Engine object based on a URL. These URLs follow RFC-1738, and usually ..
TUN Interface의 패킷 캡처 중 앞에 헤더가 붙는 경우 C++에서 TUN interface를 핸들링 하던 중 매번 패킷에 00 00 08 00 과 같이 정보가 앞에 붙어있는 경우가 있어, 이것을 핸들링해주었다. 경험상 08 00은 아이피 헤더의 number 즉, ethernet header의 ether_type이라는것을 알수있었는데, 버퍼 값 계산이나 등등 너무 번거로워서 이게 뭔가 찾아보니, TUN interface를 사용할때 앞에 정보에 대한 헤더를 붙여준다고 한다. 이것은 interface 생성시 flag에 IFF_NO_PI 옵션 추가를 통해 제거해 줄 수 있다. Ref : https://stackoverflow.com/questions/24143227/converting-raw-packet-data-received-from-a-tun-interface
Python에서 matplotlib이용 시 font type 변경하기 PDF에는 font type이 존재한다. 몰랐지만, 존재하더라. 그래서 그에 관련된 내용은 아래 링크에서 찾아볼 수 있다. 2019/05/16 - [Paper] - PDF Font type이란? PDF Font type이란? 논문을 작업하던 도중 PDF Type이 3로 되어있어, 1로 바꾸라는 피드백이 왔다(Python matplotlib를 사용하였는데, 기본적으로 Type3로 저장된다). 무슨말인지 몰라서 찾아보았다. PDF에는 Font가 들어가는데, 이 F.. blog.dork94.com 2019/05/16 - [Mac OS] - Mac OS(OSX)에서 pdf의 font type확인하기. Mac OS(OSX)에서 pdf의 font type확인하기. $ brew install poppler 먼저 위의..
PyQt에서 QPlainText를 이용해 정보 출력하기(색상 변경) 프로그램에서 특정 정보를 출력할 목적으로 Widget를 찾아보았는데, QPlainText을 추천해서 간단하게 구현해봤다. import sys from PyQt5.QtWidgets import QApplication, QWidget, QDesktopWidget from PyQt5.QtWidgets import QPlainTextEdit alertHtml = ""; notifyHtml = ""; infoHtml = ""; endHtml = " "; __author__='d0rk' class my_app(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setWindowTitle('PyQt QPlaintex..
pyqt를 이용한 QTreeWidget 이용 및 리스트 간 항목 이동 구현하기 GUI 공부를 위해서 pyqt를 사용하고 있는데, top-down 방식으로 공부하려니 여간 쉽지가 않다. 구성이 모든 class로 이뤄져있고, 객체간의 관계가 복잡해서 document를 정독하고 나서야 겨우 구현에 성공했다. 소스 코드는 다음과 같다. import sys from PyQt5.QtWidgets import QApplication, QWidget,QDesktopWidget,QPushButton, QBoxLayout,QTreeWidget,QTreeWidgetItem __auther__='d0rk' class my_app(QWidget): def __init__(self): super().__init__() self.add_btn=QPushButton('추가') self.del_btn=QPush..
Python에서 db 연동하기(mysql, mariadb) 예전에 파이썬에서 db를 사용할 일이있어서 코딩했다가, 오랜만에 다시 사용할일이 생겨 찾아봤다. 또 까먹을 것 같아 정리차 남겨둔다. Python에서 database를 사용할 수 있는 방법은 여러가지가 있지만, 그 중에서 나는 mysql이나 mariadb를 사용하므로 이것들과 연동이 되는 라이브러리를 찾아보았다. 그래서 나는 pymysql을 이용할 것이다! 코드는 다음과 같다 import pymysql # dbconfig.py class MysqlController: def __init__(self, host, id, pw, db_name): self.conn = pymysql.connect(host=host, user= id, password=pw, db=db_name,charset='utf8') se..
apktool 리패키징 오류해결 error: Error: No resource found that matches the given name (at 'src' with value '@drawable/ic_arrow_back_white_24dp'). 위 오류수정 코드 from os import listdir from os.path import isfile, join mypath = r'C:\Users\Jang\Downloads\base\res\layout' onlyfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))] for file in onlyfiles: if file.find('xml') != -1: print(file) with open(mypath +'\\'+ file, ..