Skip to content

Instantly share code, notes, and snippets.

View wataash's full-sized avatar

Wataru Ashihara wataash

View GitHub Profile
# SPDX-FileCopyrightText: Copyright (c) 2024 Wataru Ashihara <wataash0607@gmail.com>
# SPDX-License-Identifier: Apache-2.0
import argparse
import asyncio
import base64
import collections
import dataclasses
import datetime
import difflib
@wataash
wataash / systemd-analyze-dot-only-n.rb
Last active December 29, 2022 08:19
systemd-analyze dot (only the top 30 units with the most appearances)
require "set"
unless ARGV.length == 1
warn("usage: systemd-analyze dot | systemd-analyze-dot-only-n N")
exit(1)
end
n = ARGV.shift.to_i(10)
txt = ARGF.read
pairs_unit_count = Hash.new(0)
@wataash
wataash / parser_warth2007_2.py
Last active August 10, 2021 02:07
A Python implementation of "Packrat Parsers Can Support Left Recursion" by Alessandro Warth, James R. Douglass, and Todd Millstein. http://www.vpri.org/pdf/tr2007002_packrat.pdf
# SPDX-License-Identifier: Apache-2.0
"""
https://gist.github.com/wataash/dc9f8352dc147b223382def86c3a592b
A Python implementation of "Packrat Parsers Can Support Left Recursion" by
Alessandro Warth, James R. Douglass, and Todd Millstein.
http://www.vpri.org/pdf/tr2007002_packrat.pdf
2. An Overview of Packrat Parsing
@wataash
wataash / compile_commands.json
Last active August 30, 2020 10:03
linux/drivers/tty/vt/vt.c compile_commands.json https://twitter.com/wata_ash/status/1300010744273014786
[
{
"arguments": [
"gcc",
"-c",
"-Wp,-MMD,drivers/tty/vt/.vt.o.d",
"-nostdinc",
"-isystem",
"/usr/lib/gcc/x86_64-linux-gnu/9/include",
"-I/home/wsh/qc/linux/arch/x86/include",
@wataash
wataash / linux-esp-decryption.hs
Last active September 1, 2020 06:36
linux L2TP/IPsec ESP decryption
$ sudo ip xfrm state
↓ info for local→remote direction IPsec tunnel(ESP)
src 192.168.0.2 dst 10.0.0.1
proto esp spi 0xaaaaaaaa reqid 1 mode transport
replay-window 0
auth-trunc hmac(sha1) 0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 96
enc cbc(aes) 0xcccccccccccccccccccccccccccccccccccccccccccccccccccccccc
encap type espinudp sport 4500 dport 4500 addr 0.0.0.0
anti-replay context: seq 0x0, oseq 0xaab, bitmap 0x00000000
sel src 192.168.0.2/32 dst 10.0.0.1/32
@wataash
wataash / dragon.c
Created June 27, 2020 04:49
Compilers: Principles, Techniques, and Tools, 1st Edition (1986) Section 2.9
// Compilers: Principles, Techniques, and Tools, 1st Edition (1986)
// by Alfred V. Aho, Ravi. Sethi, Jeffrey D. Ullman
// Section 2.9
// http://basen.oru.se/kurser/koi/2010-2011-p1/asu-86/29/files.html
/* global.h */
#include <stdio.h> /* include declarations for i/o routines */
#include <ctype.h> /* ... and for character test routines */
# MIT License
#
# Copyright (c) 2020 Wataru Ashihara
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
# based on
# https://qiita.com/saba/items/107c4237206e31acdbef
# Pythonのスタックとキューには何を使えばいいのか(各データ構造の速度比較)
# by @saba (https://qiita.com/saba)
from collections import deque
import logging
from queue import Queue
import time
import typing as t
/* A Bison parser, made by GNU Bison 2.3. */
/* Skeleton implementation for Bison's Yacc-like parsers in C
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)