Skip to content

Instantly share code, notes, and snippets.

View studiawan's full-sized avatar

Hudan Studiawan studiawan

View GitHub Profile
@studiawan
studiawan / parallel-log-parser-chunk.py
Created May 27, 2020 02:42
Parallel log parser with PyParsing and multiprocessing. Read the log file in chunk.
import sys
import multiprocessing
import csv
from pyparsing import Word, alphas, Suppress, Combine, string, nums, Optional, Regex
from itertools import zip_longest
class ParallelLogParser(object):
def __init__(self, log_file):
self.log_file = log_file
@studiawan
studiawan / parallel-log-parser.py
Created May 27, 2020 02:41
Parallel log parser with PyParsing and multiprocessing
import sys
import multiprocessing
import csv
from pyparsing import Word, alphas, Suppress, Combine, string, nums, Optional, Regex
class ParallelLogParser(object):
def __init__(self, log_file):
self.log_file = log_file
self.authlog_grammar = self.__get_authlog_grammar()
@studiawan
studiawan / log-parser-pyparsing.py
Last active May 20, 2020 11:39
Log file (auth.log) parser with PyParsing
import sys
import csv
from pyparsing import Word, alphas, Suppress, Combine, string, nums, Optional, Regex
class AuthLogParser(object):
def __init__(self, log_file):
self.log_file = log_file
self.authlog_grammar = self.__get_authlog_grammar()
@studiawan
studiawan / test-perceptron.py
Last active August 1, 2018 02:34
NER with scikit-learn
# https://nlpforhackers.io/training-ner-large-dataset/
import os
from nltk import conlltags2tree
import re
from nltk.stem.snowball import SnowballStemmer
import itertools
from nltk import tree2conlltags
from nltk.chunk import ChunkParserI
from sklearn.linear_model import Perceptron, SGDClassifier
@studiawan
studiawan / imap-test.py
Created November 28, 2016 23:58
Read email via IMAP command line
import socket
BUFF = 1024
mail_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
mail_socket.connect(('mail.***.edu', 143))
mail_socket.recv(BUFF).strip()
commands = ['a1 LOGIN ***@***.edu ***\r\n', 'a2 LIST "" "*"\r\n', 'a3 EXAMINE INBOX\r\n', 'a4 LOGOUT\r\n']
for command in commands:
mail_socket.send(command)
@studiawan
studiawan / http-simple-server.py
Created November 10, 2016 04:22
Very simple HTTP server
import socket
import select
import sys
server_address = ('127.0.0.1', 80)
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server_socket.bind(server_address)
server_socket.listen(5)
@studiawan
studiawan / ftp-client-list.py
Created October 24, 2016 06:32
FTP client using raw socket displaying list of files and directories.
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('localhost', 21))
welcome_msg = s.recv(1024).strip()
# print welcome_msg
commands = ['USER 5112100155\r\n', 'PASS 123\r\n', 'TYPE I\r\n', 'EPSV\r\n', 'QUIT\r\n']
i = 1
while True:
@studiawan
studiawan / filter_mendeley.py
Last active June 12, 2017 02:18
A Python script to filter exported bib file from Mendeley Desktop
#/usr/bin/env python
# a Python script to filter exported bib file from Mendeley Desktop
import sys
import glob
import os
# read all .bib files
bibfiles = glob.glob('*.bib')
@studiawan
studiawan / raw-list.py
Last active December 1, 2015 09:50
List all files and directories in FTP server home dir
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect (('localhost', 21))
commands = ['USER hudan\r\n', 'PASS 123\r\n', 'TYPE I\r\n', 'EPSV\r\n', 'MLSD\r\n', 'QUIT\r\n']
i = 1
while True:
try:
if i > len(commands):
@studiawan
studiawan / raw-ftp.py
Last active September 1, 2017 19:32
Connect to FTP server using raw socket
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect (('localhost', 21))
commands = ['USER hudan\r\n', 'PASS 123\r\n', 'HELP\r\n', 'QUIT\r\n']
i = 1
while True:
try:
if i > len(commands):