Skip to content

Instantly share code, notes, and snippets.

View SegFaultAX's full-sized avatar

Michael-Keith Bernard SegFaultAX

View GitHub Profile
@SegFaultAX
SegFaultAX / es_log_parser.py
Last active February 15, 2018 01:11
Quick and dirty slow log parser for elasticsearch (sqlite3 output)
#!/usr/bin/env python
# The MIT License (MIT)
# Copyright (c) 2016 Michael-Keith Bernard
#
# 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
@SegFaultAX
SegFaultAX / reader.py
Created March 15, 2016 00:39
Simple lisp-like reader
#!/usr/bin/env python
# Much of this code is either directly copied from or heavily inspired by the
# following example lisp interpreter. The essential structure of this parser is
# mostly an exact replica, and for that I thank the original author for his
# inspirational work.
# Author: Peter Norvig
# Source: http://norvig.com/lispy2.html (http://norvig.com/lispy.py)
@SegFaultAX
SegFaultAX / dotted.rb
Created February 29, 2016 04:56
Dotted path expansion for Ruby hashes
def expand_dotted_keys(hash, recursive = true)
deep_merge = lambda do |h1, h2|
merger = proc do |k, v1, v2|
v1.is_a?(Hash) && v2.is_a?(Hash) ? v1.merge(v2, &merger) : v2
end
h1.merge(h2, &merger)
end
recursive_insert = lambda do |h, path, val|
h ||= {}
@SegFaultAX
SegFaultAX / sensu_checks.py
Last active March 14, 2016 02:12
Find active sensu checks
#!/usr/bin/env python
# The MIT License (MIT)
# Copyright (c) 2016 Michael-Keith Bernard
# 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
@SegFaultAX
SegFaultAX / query.json
Last active December 12, 2015 01:41
[elasticsearch] Example timestamp query
{
"aggs": {
"counts_by_servicetype": {
"aggs": {
"by_servicetype": {
"terms": {
"field": "servicetype",
"size": 0
}
}
@SegFaultAX
SegFaultAX / example_shell_script.py
Last active October 23, 2015 00:18
Example shell script
#!/usr/bin/env python
# The MIT License (MIT)
#
# Copyright (c) 2015 David Woodruff, Michael-Keith Bernard
#
# 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
@SegFaultAX
SegFaultAX / plan.md
Last active October 16, 2015 02:46
Resource query example (postgresql)
SELECT
  components.*,
  COALESCE(SUM(previous_month.resource_counts), 0.0) AS previous_month_resource_counts,
  COALESCE(SUM(previous_month.unblended_cost), 0.0) AS previous_month_unblended_cost,
  COALESCE(SUM(previous_month.blended_cost), 0.0) AS previous_month_blended_cost,
  COALESCE(SUM(month_to_date.resource_counts), 0.0) AS month_to_date_resource_counts,
  COALESCE(SUM(month_to_date.unblended_cost), 0.0) AS month_to_date_unblended_cost,
  COALESCE(SUM(month_to_date.blended_cost), 0.0) AS month_to_date_blended_cost
FROM "components"
@SegFaultAX
SegFaultAX / nested_table.py
Last active August 22, 2021 02:40
Draw nested ascii tables in Python
from StringIO import StringIO
from operator import attrgetter
import textwrap
class Node(object):
def __init__(self, val=None, *children):
self.val = val
self.children = list(children)
test1 = Node("foo")
@SegFaultAX
SegFaultAX / coderpad.py
Last active January 2, 2022 11:53
Install any package to coderpad
def main():
# Application code goes here!
pass
PACKAGES = ("praw", )
### IGNORE BELOW THIS LINE ###
def run(cmd, shell=False, silent=False):
@SegFaultAX
SegFaultAX / pypager.py
Created July 20, 2015 20:11
Dumb python pager
import shlex
import tempfile
import subprocess
LOREM = """
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc ornare enim
gravida congue mollis. Nullam imperdiet hendrerit lorem, vitae tempor nisl
facilisis ut. Integer at blandit ipsum, non blandit metus. Pellentesque enim
magna, malesuada sed mi eget, mattis viverra odio. Praesent ut imperdiet libero.
Phasellus varius laoreet quam, eget rutrum enim. Fusce sit amet volutpat arcu.