2018년 9월 13일 목요일

TLS1.2 tests

up.mykings.pw:8888/update.txt

www.yahoo.co.jr
[기대] 메인 화면에 주황색 경고 메시지 없어야 함.

https://www.ssllabs.com/ssltest/viewMyClient.html#1532670339319&frame_loaded
[기대]
Your user agent has good protocol support.
Your user agent supports TLS 1.2, which is recommended protocol version at the moment.




2018년 8월 24일 금요일

bayes

Yi.t
t에 하나라도 생산되면 1
아니면 0

제약 조건 추가
Pi.t <= M(큰수) * yi.t


https://stats.stackexchange.com/questions/188319/bayes-theorem-with-multiple-conditions



https://www.analyticsvidhya.com/blog/2016/06/bayesian-statistics-beginners-simple-english/

2018년 7월 1일 일요일

Python matplot

import matplotlib.pyplot as plt

a = 3b = 2c = 1
year = [x for x in range(-100, 100)]
pop  = [x*(a)+b for x in range(-100, 100)]
#pop  = [x*x*x*x*(a)+x*x*b+x*c + d for x in range(-100, 100)]
plt.plot(year,pop)
plt.show()

2018년 6월 29일 금요일

Python RE 2

import re
import statistics
import collections

data = []
f = open("localhost_access_log.2016-04-01.txt", "r" )
for l in f:
    match = re.search("^[\d:.]+", l )
    ip = match.group()

    match = re.search('\[([\w/:]+)', l)
    date = match.group(1)

    match = re.search(' /[\w.-]*', l)
    doc = match.group().strip()

    match = re.search('[\d-]+$', l)
    byte = match.group()
    if (byte == '-'):
        byte = 0    byte = int(byte)
    data.append([ip, date, doc, byte])
f.close()

print("1.전체 로그 출력")
for i in data:
    print("접속ip: {}\n접속일: {}\n요청문서: {}\n바이트크기: {}".format(i[0], i[1], i[2], i[3]))
    print("-"*30)

print("\n2. ip별 접속회수")
ip_list = [n[0] for n in data]
cip = collections.Counter(ip_list)
for i in cip:
   print(i, cip[i],"회")

print("\n3. 문서별 방문회수")
doc_list = [n[2] for n in data]
cdoc = collections.Counter(doc_list)
for i in cdoc:
   print(i, cdoc[i],"회")

print("\n4. 전체전송 바이트 사이즈, 평균 전송 바이트 사이즈, 전송 바이트 사이즈 표준 편차")
byte_list = [n[3] for n in data]
s = sum(byte_list)
m = statistics.mean(byte_list)
d = statistics.stdev(byte_list)
print("전체 전송 바이트 크기: {}\n평균 전송바이트 사이즈: {}\n전송 바이트 사이트 표준편차: {}".format(s,m,d))

print("\n5. 가장 많이 방문한 ip와 방문 회수")
m = cip.most_common(1)
m = m[0]
print(m[0], m[1], "회" )







import re
import collections
from statistics import mean, stdev
fp = open('localhost_access_log.2016-04-01.txt')
data = []
for rd in fp:
    match = re.search('([\d.:]+) \S+ \S+ \[([\w:/]+) \S+\] "\S+ (\S+) \S+" \d+ (\S+)', rd )
    d={}
    d['ip']= match.group(1)
    d['dt']= match.group(2)
    d['view']= match.group(3)
    bsize =  match.group(4)
    bsize = 0 if bsize=='-' else int(bsize)
    d['bsize']= bsize
    data.append( d )

# # 1. 전체 로그 출력# for dt in data:#     print("접속ip:", dt['ip'])#     print("접속일:", dt['dt'])#     print("요청문서:", dt['view'])#     print("바이트크기:", dt['bsize'])#     print("="*10)#2.ipList = [ n['ip'] for n in data]
ipCount = collections.Counter(ipList)
for ip,cnt in ipCount.items():
    print("ip:",ip,"접속횟수:",cnt)

#3.# viewList = [ n['view'] for n in data]# viewCount = collections.Counter(viewList)# for view,cnt in viewCount.items():#     print("페이지:",view,"접속횟수:",cnt)
#4.
print( "전체전송사이즈:", sum([n['bsize'] for n in data] ) )
print( "평균전송사이즈:", mean([n['bsize'] for n in data] ) )
print( "표준편차:", stdev([n['bsize'] for n in data] ) )

#5.mip,cnt  =  ipCount.most_common(1)[0]
print("가장많이 방문ip:", mip, "방문횟수:", cnt )

# print( data )
    # print("ip:", match.group(1) )    # print("dt:",match.group(2) )    # print("view:", match.group(3) )    # print("bsize:", match.group(4) )    # print("="*20)

2018년 6월 28일 목요일

Python PyQt5

PyQt5
pyqt5-tools


from PyQt5.QtWidgets import *
import sys # commandline args
def buttonClicked():
    print("clicked")

app = QApplication(sys.argv)  # Queue 메모리에서 이벤트를 가져 오기 위한 loop
dlg = QDialog()
dlg.setWindowTitle("Hi")
dlg.setGeometry(100, 100, 500, 300)
dlg.show()

layout = QVBoxLayout()
button = QPushButton("클릭")
button.clicked.connect(buttonClicked)
edit   = QLineEdit()

layout.addWidget(button)
layout.addWidget(edit)

dlg.setLayout(layout)

app.exec() # 무한 루프. Queue 메모리 체크print("end...")




from PyQt5.QtWidgets import *
import sys # commandline argsclass MyWindow:
    def __init__(self):
        self.dlg = QDialog()
        self.dlg.setWindowTitle("Hi")
        self.dlg.setGeometry(100, 100, 500, 300)
        self.dlg.show()

        self.layout = QVBoxLayout()
        self.button = QPushButton("클릭")
        self.button.clicked.connect(self.buttonClicked)
        self.edit   = QLineEdit()

        self.layout.addWidget(self.button)
        self.layout.addWidget(self.edit)
        
        self.dlg.setLayout(self.layout)

    def buttonClicked(self):
        print("clicked")

def main():
    app = QApplication(sys.argv)  # Queue 메모리에서 이벤트를 가져 오기 위한 loop    my = MyWindow()
    app.exec() # 무한 루프. Queue 메모리 체크    print("end...")

if __name__ == '__main__':
    main()




from PyQt5.QtWidgets import *
from PyQt5.uic import loadUi # XML UI 정보를 로딩해서 객체를 생성해 줌.import sys

class MyWin:
    def __init__(self):
        self.dlg = loadUi("a.ui")
        self.dlg.show()

        self.dlg.pushButton.clicked.connect(self.buttonClicked)
        self.dlg.radioButton.toggled.connect(lambda : print("toggled"))


    def buttonClicked(self):
        print("clicked")
        # print(self.dlg.lineEdit.setText("dadsd")) # designer에 있는 속성에서 set과 속성 첫글자를 대문자로 바꿔주면 설정 함수이다.(대개)        print(self.dlg.lineEdit.text()) # designeer의 속성 이름에 ()를 붙여주면 값이 넘어 온다.
app = QApplication(sys.argv)
a = MyWin()
app.exec()





from PyQt5.QtWidgets import *
from PyQt5.uic import loadUi # XML UI 정보를 로딩해서 객체를 생성해 줌.import sys

class MyWin:
    def __init__(self):
        self.dlg = loadUi("b.ui")
        self.dlg.show()

        self.dlg.pushButton.clicked.connect(self.buttonClicked)

    def buttonClicked(self):
        print("clicked")
        print(self.dlg.spinBox.value(), self.dlg.spinBox_2.value())
        s = self.dlg.spinBox.value()+self.dlg.spinBox_2.value();
        print(s)
        self.dlg.lineEdit.setText(str(s))

app = QApplication(sys.argv)
a = MyWin()
app.exec()




from PyQt5.QtWidgets import *
from PyQt5.uic import loadUi # XML UI 정보를 로딩해서 객체를 생성해 줌.import sys

class MyWin:
    def __init__(self):
        self.dlg = loadUi("d.ui")
        self.dlg.show()

        self.dlg.pushButton.clicked.connect(self.buttonClicked)
        self.init_widget()

    def init_widget(self):
        self.dlg.listWidget.addItems(['LG1', 'LG2', 'LG3', 'LG4'])
        self.dlg.listWidget.clicked.connect(self.buttonClicked)
        self.dlg.actionMenu2.triggered.connect(self.buttonClicked_menu2)

    def buttonClicked_menu2(self):
        print("buttonClicked_menu2")
        self.pop = loadUi("a.ui")
        #self.pop.show()# show는 modalless. exec는 모달로 구동 함.        self.pop.exec()
        print("hello") # exec로 실행한 경우, dlg가 닫혀야 이 라인이 실행된다.
    def buttonClicked(self):
        print("clicked")
        # print(self.dlg.spinBox.value(), self.dlg.spinBox_2.value())        # s = self.dlg.spinBox.value()+self.dlg.spinBox_2.value();        print(self.dlg.listWidget.currentItem().text())
        self.dlg.lineEdit.setText(self.dlg.listWidget.currentItem().text())

app = QApplication(sys.argv)
a = MyWin()
app.exec()