lots of updates!
This commit is contained in:
parent
84bc4b0113
commit
8b736fded7
22 changed files with 92 additions and 499 deletions
|
@ -1,33 +0,0 @@
|
||||||
---
|
|
||||||
layout: post
|
|
||||||
title: "day 1"
|
|
||||||
date: 2018-01-01
|
|
||||||
categories: programming
|
|
||||||
---
|
|
||||||
# 100 Days of Code
|
|
||||||
|
|
||||||
With a brand new year, comes a fresh start, a clean slate. I am going to begin
|
|
||||||
my new year with something I have just come across: [100daysofcode](http://100daysofcode.com/) challenge.
|
|
||||||
I have forked the 100 days of code repo from github and am using the log to
|
|
||||||
track my daily progress. It will be fun, and it will be a great way to keep me
|
|
||||||
accountable for building my python knowledge. Here is an example snippet from
|
|
||||||
the code I did for day 1.
|
|
||||||
|
|
||||||
### Day 1:
|
|
||||||
{% highlight python %}
|
|
||||||
|
|
||||||
def gen_ssh_keypair():
|
|
||||||
""" Generate an RSA private / public keypair """
|
|
||||||
key = RSA.generate(2048)
|
|
||||||
|
|
||||||
# generate private key - output to file
|
|
||||||
with open('rsa_privkey.pem', 'wb') as privkey:
|
|
||||||
privkey.write(key.exportKey())
|
|
||||||
|
|
||||||
# generate public key - output to file
|
|
||||||
with open('rsa_pubkey.pem', 'wb') as pubkey:
|
|
||||||
pubkey.write(key.publickey().exportKey())
|
|
||||||
|
|
||||||
return 0
|
|
||||||
|
|
||||||
{% endhighlight %}
|
|
|
@ -1,19 +0,0 @@
|
||||||
---
|
|
||||||
layout: post
|
|
||||||
title: "day 2"
|
|
||||||
date: 2018-01-02
|
|
||||||
categories: programming
|
|
||||||
---
|
|
||||||
# 100 Days of Code
|
|
||||||
|
|
||||||
### Day 2:
|
|
||||||
Today we are going to make a Discord chat bot. Bots have always been
|
|
||||||
interesting to me.
|
|
||||||
Trying to make a computer program behave like a human sounds like a fun
|
|
||||||
challenge, and a great way to play some fun pranks on my friends on Discord.
|
|
||||||
So far, I have sketched up the initial framework in my python program using the
|
|
||||||
discordpy library. I will need to learn more about the following:
|
|
||||||
- asyncio
|
|
||||||
- coroutines
|
|
||||||
These seem to be two main concepts that this library uses, and it will help aid
|
|
||||||
my skills in the future when making programs that focus on performance.
|
|
|
@ -1,17 +0,0 @@
|
||||||
---
|
|
||||||
layout: post
|
|
||||||
title: "day 3"
|
|
||||||
date: 2018-01-03
|
|
||||||
categories: programming
|
|
||||||
---
|
|
||||||
|
|
||||||
# 100 Days of Code
|
|
||||||
|
|
||||||
### Day 3:
|
|
||||||
Today I could not find time to work on the coding aspect of the bot, but I did
|
|
||||||
grab some audio recordings that I need for the bot. I am mainly making this bot
|
|
||||||
to prank my friends in discord with voice recordings of funny moments that
|
|
||||||
occur in discord. I am going to make it queryable via prepending commands with
|
|
||||||
a !. I still did get to code today for work. I am working on some stuff in
|
|
||||||
python and I have to write unit tests, so I wrote a test for a couple of
|
|
||||||
functions
|
|
|
@ -1,16 +0,0 @@
|
||||||
---
|
|
||||||
layout: post
|
|
||||||
title: "day 4"
|
|
||||||
date: 2018-01-04
|
|
||||||
categories: programming
|
|
||||||
---
|
|
||||||
|
|
||||||
# 100 Days of Code
|
|
||||||
|
|
||||||
### Day 4:
|
|
||||||
Today I worked on some more unit tests with a program I am building at work. I
|
|
||||||
learned a good deal about unit test calls and the different assert options you
|
|
||||||
can pass. I also looked further into the discord python library and copied some of the
|
|
||||||
example bots into an examples directory in my repo. I will need to experiment
|
|
||||||
further with those and look up more information on asyncio and how to properly
|
|
||||||
use it.
|
|
|
@ -1,27 +0,0 @@
|
||||||
---
|
|
||||||
layout: post
|
|
||||||
title: "day 5"
|
|
||||||
date: 2018-01-05
|
|
||||||
categories: programming
|
|
||||||
---
|
|
||||||
|
|
||||||
# 100 Days of Code
|
|
||||||
|
|
||||||
### Day 5:
|
|
||||||
Today I did not have the energy to do anything with my discord bot. I will work
|
|
||||||
on that tomorrow and sunday. I mainly just did some hacker rank problems
|
|
||||||
involving strings. Here is a post someone on hacker rank who is much more
|
|
||||||
clever than me for validating any characters in strings:
|
|
||||||
|
|
||||||
```python
|
|
||||||
str = raw_input()
|
|
||||||
print any(c.isalnum() for c in str)
|
|
||||||
print any(c.isalpha() for c in str)
|
|
||||||
print any(c.isdigit() for c in str)
|
|
||||||
print any(c.islower() for c in str)
|
|
||||||
print any(c.isupper() for c in str)
|
|
||||||
```
|
|
||||||
|
|
||||||
that will return True or False if ANY of the characters contain alphanumberic,
|
|
||||||
alphabetical, a digit, lowercase, or uppercase. A nice little shortcut that I
|
|
||||||
will remember.
|
|
|
@ -1,89 +0,0 @@
|
||||||
---
|
|
||||||
layout: post
|
|
||||||
title: "day 6"
|
|
||||||
date: 2018-01-06
|
|
||||||
categories: programming
|
|
||||||
---
|
|
||||||
|
|
||||||
# 100 Days of Code
|
|
||||||
|
|
||||||
### Day 6:
|
|
||||||
Today I made use of the python-nmap library and made a class that I will be
|
|
||||||
able to import into future modules. I started out making things like a ping sweeping tool and
|
|
||||||
banner grabber, as well as a ssl cipher suite checker. I made a subclass of the nmap
|
|
||||||
PortScanner class to start so I have access to all of those utilities. Subclasses are something I have been looking into recently.
|
|
||||||
It is an easy way to add existing functionality to another object. This class will end up being the base
|
|
||||||
library that I use when I make my own port scanning scripts. here is what I
|
|
||||||
have so far:
|
|
||||||
|
|
||||||
```python
|
|
||||||
class NmapUtility(nmap.PortScanner):
|
|
||||||
|
|
||||||
def __init__(self, hostname, hosts=False):
|
|
||||||
""" Initialize with hostname and optional list of hosts """
|
|
||||||
self.hostname = hostname
|
|
||||||
|
|
||||||
def scan_host(self, hostname, portrange):
|
|
||||||
""" Scan a host using nmap.scan """
|
|
||||||
|
|
||||||
return self.scan(hostname, portrange)
|
|
||||||
|
|
||||||
def scan_hosts(self, hosts):
|
|
||||||
""" Scan a list of hosts """
|
|
||||||
pass
|
|
||||||
|
|
||||||
def ping_sweep(self, hosts):
|
|
||||||
""" Ping sweep a list of hosts """
|
|
||||||
self.scan(hosts=hosts, arguments='-n -sP -PE -PA21,23,80,3389')
|
|
||||||
hosts_list = [(x, self[x]['status']['state']) for x in self.all_hosts()]
|
|
||||||
for host, status in hosts_list:
|
|
||||||
print('{0}:{1}'.format(host, status))
|
|
||||||
|
|
||||||
def nmap_version(self):
|
|
||||||
""" Get nmap version being used """
|
|
||||||
|
|
||||||
return self.nmapVersion()
|
|
||||||
|
|
||||||
def command_line(self):
|
|
||||||
""" Run nmap.command_line """
|
|
||||||
|
|
||||||
return self.command_line
|
|
||||||
|
|
||||||
def cipher_check(self, hostname, portrange):
|
|
||||||
""" Run --script ssl-enum-ciphers on hostname """
|
|
||||||
|
|
||||||
return self.scan(hostname,
|
|
||||||
portrange,
|
|
||||||
arguments='--script ssl-enum-ciphers')
|
|
||||||
|
|
||||||
def get_csv(self):
|
|
||||||
""" Run scan.csv() """
|
|
||||||
|
|
||||||
return self.csv()
|
|
||||||
|
|
||||||
def all_tcp(self, hostname=False):
|
|
||||||
""" Get all ports for tcp protocol in sorted output """
|
|
||||||
if hostname:
|
|
||||||
return self[hostname].all_tcp()
|
|
||||||
|
|
||||||
return self[self.hostname].all_tcp()
|
|
||||||
|
|
||||||
def all_udp(self, hostname=False):
|
|
||||||
""" Get all ports for udp protocol in sorted output
|
|
||||||
requires scanHost() or scan() to be run first
|
|
||||||
"""
|
|
||||||
if hostname:
|
|
||||||
return self[hostname].all_udp()
|
|
||||||
|
|
||||||
return self[self.hostname].all_udp()
|
|
||||||
|
|
||||||
def banner_grab(self, portrange, hostname=False):
|
|
||||||
""" Grab banners from ports """
|
|
||||||
|
|
||||||
if hostname:
|
|
||||||
return self.scan(hostname, portrange,
|
|
||||||
arguments='-sV --script=banner')
|
|
||||||
return self.scan(self.hostname, portrange,
|
|
||||||
arguments='-sV --script=banner')
|
|
||||||
|
|
||||||
```
|
|
|
@ -1,15 +0,0 @@
|
||||||
---
|
|
||||||
layout: post
|
|
||||||
title: "day 7"
|
|
||||||
date: 2018-01-08
|
|
||||||
categories: programming
|
|
||||||
---
|
|
||||||
|
|
||||||
# 100 Days of Code
|
|
||||||
|
|
||||||
### Day 7:
|
|
||||||
Took a break from coding on Sunday. Needed to take care of some things around
|
|
||||||
my apartment instead. Today, I ended up programming for a few hours while at
|
|
||||||
work. I learned more about initialization of objects and about unpacking
|
|
||||||
tuples.
|
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
---
|
|
||||||
layout: post
|
|
||||||
title: "day 8"
|
|
||||||
date: 2018-01-09
|
|
||||||
categories: programming
|
|
||||||
---
|
|
||||||
|
|
||||||
# 100 Days of Code
|
|
||||||
|
|
||||||
### Day 8:
|
|
||||||
I installed the [xonsh](http://xon.sh/) shell on my home system after a
|
|
||||||
co-worker introduced me to it earlier today. I am going to be experimenting with it all night
|
|
||||||
and configuring it with runtime configs and importing my bash aliases and
|
|
||||||
functions. This is a really cool shell that will help me accelerate how quickly
|
|
||||||
I learn core skills of python. It's like Ipython and bash had a baby! I am in!
|
|
|
@ -1,14 +0,0 @@
|
||||||
---
|
|
||||||
layout: post
|
|
||||||
title: "day 9"
|
|
||||||
date: 2018-01-10
|
|
||||||
categories: programming
|
|
||||||
---
|
|
||||||
|
|
||||||
# 100 Days of Code
|
|
||||||
|
|
||||||
### Day 9:
|
|
||||||
Going to be writing some more add-ons to nmap module. Also, added an example of
|
|
||||||
a bubble sort algorithm in python, and accompanied it with a wikipedia
|
|
||||||
description of the algorithm. I am going to be looking into implementing
|
|
||||||
another type of sorting algorithm today.
|
|
|
@ -1,95 +0,0 @@
|
||||||
---
|
|
||||||
layout: post
|
|
||||||
title: "day 10"
|
|
||||||
date: 2018-01-11
|
|
||||||
categories: programming
|
|
||||||
---
|
|
||||||
|
|
||||||
# 100 Days of Code
|
|
||||||
|
|
||||||
### Day 10:
|
|
||||||
Made fibonacci programs from tutorials I found on youtube. One that introduces
|
|
||||||
the concept of memoization or storing results of recent function calls to
|
|
||||||
improve the speed of the recursive function. Also a basic bubblesort program in python
|
|
||||||
that I found from another tutorial. This is very basic stuff but I want to make sure I
|
|
||||||
know as much foundational knowledge as I can. Socrataca on youtube is a great
|
|
||||||
channel with lots of math and science themed videos. That is where I found
|
|
||||||
these tutorials. Here is a
|
|
||||||
[link](https://www.youtube.com/watch?v=Qk0zUZW-U_M&list=PLi01XoE8jYohWFPpC17Z-wWhPOSuh8Er-&index=18)
|
|
||||||
to the python video on the fibonacci sequence.
|
|
||||||
##### No Cache
|
|
||||||
|
|
||||||
```python
|
|
||||||
|
|
||||||
#!/usr/bin/env python3
|
|
||||||
# this shows the fibonacci sequence with basic recursion.
|
|
||||||
# note that it gets very slow at the end due to the recursion
|
|
||||||
|
|
||||||
|
|
||||||
def fibonacci(n):
|
|
||||||
if n == 1:
|
|
||||||
return 1
|
|
||||||
elif n == 2:
|
|
||||||
return 1
|
|
||||||
elif n > 2:
|
|
||||||
return fibonacci(n-1) + fibonacci(n-2)
|
|
||||||
|
|
||||||
|
|
||||||
for n in range(1, 101):
|
|
||||||
print(n, ":", fibonacci(n))
|
|
||||||
```
|
|
||||||
#### Cache
|
|
||||||
```python
|
|
||||||
|
|
||||||
#!/usr/bin/env python3
|
|
||||||
# this introduces recursive fibonacci with a cache of recent function calls
|
|
||||||
# this is introducing memoization: caching recent function call results
|
|
||||||
|
|
||||||
fibonacci_cache = {}
|
|
||||||
|
|
||||||
|
|
||||||
def fibonacci(n):
|
|
||||||
# If we have cached the value, then return it
|
|
||||||
if n in fibonacci_cache:
|
|
||||||
return fibonacci_cache[n]
|
|
||||||
|
|
||||||
# compute nth term
|
|
||||||
if n == 1:
|
|
||||||
value = 1
|
|
||||||
elif n == 2:
|
|
||||||
value = 1
|
|
||||||
elif n > 2:
|
|
||||||
value = fibonacci(n-1) + fibonacci(n-2)
|
|
||||||
|
|
||||||
fibonacci_cache[n] = value
|
|
||||||
return value
|
|
||||||
|
|
||||||
|
|
||||||
for n in range(1, 101):
|
|
||||||
print(n, ":", fibonacci(n))
|
|
||||||
```
|
|
||||||
#### Cache using functools lru_cache
|
|
||||||
```python
|
|
||||||
#!/usr/bin/env python3
|
|
||||||
from functools import lru_cache
|
|
||||||
|
|
||||||
@lru_cache(maxsize = 1000)
|
|
||||||
def fibonacci(n):
|
|
||||||
# check if type is positive int
|
|
||||||
if type(n) != int:
|
|
||||||
raise TypeError("n must be a positive int")
|
|
||||||
if n < 1:
|
|
||||||
raise ValueError("n must be a positive int")
|
|
||||||
|
|
||||||
if n == 1:
|
|
||||||
return 1
|
|
||||||
elif n == 2:
|
|
||||||
return 1
|
|
||||||
elif n > 2:
|
|
||||||
return fibonacci(n-1) + fibonacci(n-2)
|
|
||||||
|
|
||||||
|
|
||||||
for n in range(1, 501):
|
|
||||||
print(n, ":", fibonacci(n))
|
|
||||||
```
|
|
||||||
|
|
|
@ -1,34 +0,0 @@
|
||||||
---
|
|
||||||
layout: post
|
|
||||||
title: "day 11"
|
|
||||||
date: 2018-01-17
|
|
||||||
categories: programming
|
|
||||||
---
|
|
||||||
|
|
||||||
# 100 Days of Code
|
|
||||||
|
|
||||||
### Day 11:
|
|
||||||
Took a break on the weekend, but I am back at it. Today, I made a class for
|
|
||||||
decoding json data. Here is the code. I can use this with my xonsh shell now so
|
|
||||||
its proving to be useful.
|
|
||||||
|
|
||||||
```python
|
|
||||||
|
|
||||||
import os
|
|
||||||
import json
|
|
||||||
from pprint import pprint
|
|
||||||
|
|
||||||
class JsonUtils(object):
|
|
||||||
""" Json utility library """
|
|
||||||
|
|
||||||
|
|
||||||
def decode(self, json_file):
|
|
||||||
""" Decode a json string or file that contains json """
|
|
||||||
if os.path.isfile(json_file):
|
|
||||||
with open(json_file, 'r'):
|
|
||||||
data = json.load(json_file)
|
|
||||||
return pprint(data)
|
|
||||||
else:
|
|
||||||
data = json.loads(json_file)
|
|
||||||
return pprint(data)
|
|
||||||
```
|
|
|
@ -1,19 +0,0 @@
|
||||||
---
|
|
||||||
layout: post
|
|
||||||
title: "day 12"
|
|
||||||
date: 2018-01-18
|
|
||||||
categories: programming
|
|
||||||
---
|
|
||||||
|
|
||||||
# 100 Days of Code
|
|
||||||
|
|
||||||
### Day 12:
|
|
||||||
Today I made basic aws scripts that interact with ec2 and s3. I am going to look
|
|
||||||
into designing programs that will migrate my existing OVH vps using a
|
|
||||||
combination of the API they provide, unix tools like rsync, and the AWS API. I
|
|
||||||
need to get better at interacting with boto3 so this will be perfect.
|
|
||||||
interacting with API's is fun and I really enjoy working with the HTTP
|
|
||||||
protocol. I also made a cronjob on my vps that will run a git pull of my
|
|
||||||
brendan.mcdevitt.tech repo, and jekyll is in watch mode so it will always stay
|
|
||||||
up to date as long as I am pushing to git.
|
|
||||||
|
|
|
@ -1,67 +0,0 @@
|
||||||
---
|
|
||||||
layout: post
|
|
||||||
title: "day 13"
|
|
||||||
date: 2018-01-19
|
|
||||||
categories: programming
|
|
||||||
---
|
|
||||||
|
|
||||||
# 100 Days of Code
|
|
||||||
|
|
||||||
### Day 13:
|
|
||||||
Today I made a script that uses the Steam HTTP API to iterate through all
|
|
||||||
possible games/apps on steam and outputs the game/app name, and current player
|
|
||||||
count. It is a fun way for me to practice interacting with json dictionaries.
|
|
||||||
|
|
||||||
```python
|
|
||||||
import json
|
|
||||||
import requests
|
|
||||||
|
|
||||||
BASE_URL = 'https://api.steampowered.com'
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
""" Loop through list of appids and feed appid list into retrieval of
|
|
||||||
current players in game corresponding to appid
|
|
||||||
"""
|
|
||||||
|
|
||||||
appnames, appids = zip(*get_appid())
|
|
||||||
|
|
||||||
for appname, appid in zip(appnames, appids):
|
|
||||||
resp_data = json.loads(get_current_players(appid))
|
|
||||||
player_count = resp_data['response']['player_count']
|
|
||||||
print('Game Name: {}'.format(appname))
|
|
||||||
print('Current Players: {}\n'.format(player_count))
|
|
||||||
|
|
||||||
|
|
||||||
def get_current_players(appid):
|
|
||||||
""" Queries Steam API for number of current players in a game
|
|
||||||
|
|
||||||
:param appid: The appid of the game title
|
|
||||||
:param type: `str`
|
|
||||||
|
|
||||||
:returns: Returns string json response of number of current players
|
|
||||||
:rtype: `str`
|
|
||||||
"""
|
|
||||||
|
|
||||||
url = '{}/ISteamUserStats/GetNumberofCurrentPlayers/v1/?key=KEY&format=json&appid={}'.format(BASE_URL, appid)
|
|
||||||
r = requests.get(url)
|
|
||||||
return r.text
|
|
||||||
|
|
||||||
|
|
||||||
def get_appid():
|
|
||||||
""" Queries Steam API for appids
|
|
||||||
:returns: (appname, appid)
|
|
||||||
:rtype: `tuple`
|
|
||||||
"""
|
|
||||||
url = '{}/ISteamApps/GetAppList/v2'.format(BASE_URL)
|
|
||||||
r = requests.get(url)
|
|
||||||
json_data = json.loads(r.text)
|
|
||||||
apps = json_data['applist']['apps']
|
|
||||||
appname_and_id = [(dic['name'], dic['appid']) for dic in apps]
|
|
||||||
|
|
||||||
return appname_and_id
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
main()
|
|
||||||
```
|
|
|
@ -1,11 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<body>
|
|
||||||
|
|
||||||
{% for item in site.100-days-of-code %}
|
|
||||||
<h2>{{ item.title }}</h2>
|
|
||||||
<p>{{ item.description }}</p>
|
|
||||||
<p><a href="{{ item.url }}">{{ item.title }}</a></p>
|
|
||||||
{% endfor %}
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -14,7 +14,7 @@
|
||||||
# You can create any custom variable you would like, and they will be accessible
|
# You can create any custom variable you would like, and they will be accessible
|
||||||
# in the templates via {{ site.myvariable }}.
|
# in the templates via {{ site.myvariable }}.
|
||||||
title: brendan.mcdevitt.tech
|
title: brendan.mcdevitt.tech
|
||||||
email: bpmcdevitt@thelinuxspace.com
|
email: brendan@mcdevitt.tech
|
||||||
description: > # this means to ignore newlines until "baseurl:"
|
description: > # this means to ignore newlines until "baseurl:"
|
||||||
computers, free software, infosec, programming, gaming, system administration
|
computers, free software, infosec, programming, gaming, system administration
|
||||||
baseurl: "" # the subpath of your site, e.g. /blog
|
baseurl: "" # the subpath of your site, e.g. /blog
|
||||||
|
@ -27,9 +27,9 @@ markdown: kramdown
|
||||||
theme: minima
|
theme: minima
|
||||||
plugins:
|
plugins:
|
||||||
- jekyll-feed
|
- jekyll-feed
|
||||||
collections:
|
#collections:
|
||||||
100-days-of-code:
|
# 100-days-of-code:
|
||||||
output: true
|
# output: true
|
||||||
|
|
||||||
# Exclude from processing.
|
# Exclude from processing.
|
||||||
# The following items will not be processed, by default. Create a custom list
|
# The following items will not be processed, by default. Create a custom list
|
||||||
|
|
|
@ -1,11 +1,9 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en-us">
|
<html xmlns="https://www.w3.org/1999/xhtml" xml:lang="en" lang="en-us">
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
<title>{{ page.title }}</title>
|
<title>{{ page.title }}</title>
|
||||||
<meta name="author" content="Brendan McDevitt" />
|
<meta name="author" content="Brendan McDevitt" />
|
||||||
<link href="http://feeds.feedburner.com/brendan" rel="alternate" title="brendan mcdevitt" type="application/atom+xml" />
|
|
||||||
<meta name="readability-verification" content="QCzSs992GxmRYRKVpPeZ6LE2tS8aYKxsSSQKV8YM"/>
|
|
||||||
|
|
||||||
<!-- syntax highlighting CSS -->
|
<!-- syntax highlighting CSS -->
|
||||||
<link rel="stylesheet" href="/css/syntax.css" type="text/css" />
|
<link rel="stylesheet" href="/css/syntax.css" type="text/css" />
|
||||||
|
@ -14,7 +12,7 @@
|
||||||
<link rel="stylesheet" href="/css/screen.css" type="text/css" media="screen, projection" />
|
<link rel="stylesheet" href="/css/screen.css" type="text/css" media="screen, projection" />
|
||||||
|
|
||||||
<!-- Typekit -->
|
<!-- Typekit -->
|
||||||
<script type="text/javascript" src="http://use.typekit.com/jpd0pfm.js"></script>
|
<script type="text/javascript" src="https://use.typekit.com/jpd0pfm.js"></script>
|
||||||
<script type="text/javascript">try{Typekit.load();}catch(e){}</script>
|
<script type="text/javascript">try{Typekit.load();}catch(e){}</script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
@ -30,7 +28,7 @@
|
||||||
|
|
||||||
<a href="https://github.com/booboy"><img style="position: absolute; top: 0;
|
<a href="https://github.com/booboy"><img style="position: absolute; top: 0;
|
||||||
right: 0; border: 0; width: 149px; height: 149px;"
|
right: 0; border: 0; width: 149px; height: 149px;"
|
||||||
src="http://aral.github.com/fork-me-on-github-retina-ribbons/right-green@2x.png" alt="Fork me on GitHub"></a>
|
src="https://aral.github.com/fork-me-on-github-retina-ribbons/right-green@2x.png" alt="Fork me on GitHub"></a>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
---
|
|
||||||
layout: post
|
|
||||||
title: "devops team outing"
|
|
||||||
date: 2017-11-09
|
|
||||||
categories: misc
|
|
||||||
---
|
|
||||||
|
|
||||||
I had alot of fun tonight with my new co-workers! I am part of the devops team at Narrative Science. We went out tonight for a team outing. It was axe throwing! That was the first time
|
|
||||||
I have ever done something like that. I struggled in the beginning, but got a little bit better towards the end. Some of my teammates were absolutely
|
|
||||||
incredible at it! Here is a pic of the entire team! It was lots of fun, would
|
|
||||||
do it again in a heartbeat!
|
|
||||||
|
|
||||||
{:class="img-responsive"}
|
|
||||||
|
|
63
_posts/2018-06-19-all-shine-on.markdown
Normal file
63
_posts/2018-06-19-all-shine-on.markdown
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: "all shine on"
|
||||||
|
date: 2018-06-19
|
||||||
|
categories: misc
|
||||||
|
---
|
||||||
|
```
|
||||||
|
Instant Karma's gonna get you
|
||||||
|
Gonna knock you right on the head
|
||||||
|
You better get yourself together
|
||||||
|
Pretty soon you're gonna be dead
|
||||||
|
What in the world you thinking of
|
||||||
|
Laughing in the face of love
|
||||||
|
What on earth you tryin' to do
|
||||||
|
It's up to you, yeah you
|
||||||
|
|
||||||
|
Instant Karma's gonna get you
|
||||||
|
Gonna look you right in the face
|
||||||
|
Better get yourself together darlin'
|
||||||
|
Join the human race
|
||||||
|
How in the world you gonna see
|
||||||
|
Laughin' at fools like me
|
||||||
|
Who in the hell d'you think you are
|
||||||
|
A super star
|
||||||
|
Well, right you are
|
||||||
|
|
||||||
|
Well we all shine on
|
||||||
|
Like the moon and the stars and the sun
|
||||||
|
Well we all shine on
|
||||||
|
Ev'ryone come on
|
||||||
|
|
||||||
|
Instant Karma's gonna get you
|
||||||
|
Gonna knock you off your feet
|
||||||
|
Better recognize your brothers
|
||||||
|
Ev'ryone you meet
|
||||||
|
Why in the world are we here
|
||||||
|
Surely not to live in pain and fear
|
||||||
|
Why on earth are you there
|
||||||
|
When you're ev'rywhere
|
||||||
|
Come and get your share
|
||||||
|
|
||||||
|
Well we all shine on
|
||||||
|
Like the moon and the stars and the sun
|
||||||
|
Yeah we all shine on
|
||||||
|
Come on and on and on on on
|
||||||
|
Yeah yeah, alright, uh huh, ah
|
||||||
|
|
||||||
|
Well we all shine on
|
||||||
|
Like the moon and the stars and the sun
|
||||||
|
Yeah we all shine on
|
||||||
|
On and on and on on and on
|
||||||
|
|
||||||
|
Well we all shine on
|
||||||
|
Like the moon and the stars and the sun
|
||||||
|
Well we all shine on
|
||||||
|
Like the moon and the stars and the sun
|
||||||
|
Well we all shine on
|
||||||
|
Like the moon and the stars and the sun
|
||||||
|
Yeah we all shine on
|
||||||
|
Like the moon and the stars and the sun
|
||||||
|
|
||||||
|
-- John Lennon
|
||||||
|
```
|
21
_posts/2018-10-9-good-hex-tutorials.markdown
Normal file
21
_posts/2018-10-9-good-hex-tutorials.markdown
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: "oscp prep - hex tutorials"
|
||||||
|
date: 2018-10-09
|
||||||
|
categories: oscp prep
|
||||||
|
---
|
||||||
|
|
||||||
|
# oscp prep - hex tutorials
|
||||||
|
dumping files to hexadecimal and octal output, is something that i am going to
|
||||||
|
be really trying to learn. here are some links to good resources:
|
||||||
|
|
||||||
|
## hex color codes
|
||||||
|
{% include youtubePlayer.html id="6cJd7eyYBFs" %}
|
||||||
|
|
||||||
|
##### links
|
||||||
|
- [rtfm](http://man7.org/linux/man-pages/man1/hexdump.1.html)
|
||||||
|
- [wikipedia - hexdump](https://en.wikipedia.org/wiki/Hex_dump)
|
||||||
|
- [wikipedia - hexadecimal](https://en.wikipedia.org/wiki/Hexadecimal)
|
||||||
|
- [practice color codes](https://yizzle.com/whatthehex/)
|
||||||
|
- [making sense of hexadump](https://www.suse.com/c/making-sense-hexdump/)
|
||||||
|
- [hexadecimal numbers](https://www.electronics-tutorials.ws/binary/bin_3.html)
|
2
about.md
2
about.md
|
@ -5,7 +5,7 @@ permalink: /about/
|
||||||
---
|
---
|
||||||
|
|
||||||
I am an aspiring security researcher working as a *nix administrator. I
|
I am an aspiring security researcher working as a *nix administrator. I
|
||||||
like to program in python and play fast paced deathmatch video games. I try to
|
like to program in python and ruby. i also like to play fast paced deathmatch video games. I try to
|
||||||
better myself each day. If you would like to reach out, I can be reached via:
|
better myself each day. If you would like to reach out, I can be reached via:
|
||||||
|
|
||||||
- email - bpmcdevitt[at]thelinuxspace[dot]com
|
- email - bpmcdevitt[at]thelinuxspace[dot]com
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 4.2 MiB |
|
@ -9,8 +9,4 @@ title: brendan mcdevitt
|
||||||
{% for post in site.posts %}
|
{% for post in site.posts %}
|
||||||
<li><span>{{ post.date | date_to_string }}</span> » <a href="{{ post.url }}">{{ post.title }}</a></li>
|
<li><span>{{ post.date | date_to_string }}</span> » <a href="{{ post.url }}">{{ post.title }}</a></li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
<h1>100 Days of Code</h1>
|
|
||||||
{% for item in site.100-days-of-code %}
|
|
||||||
<li><span>{{ item.date | date_to_string }}</span> » <a href="{{ item.url }}">{{ item.title }}</a></li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
Loading…
Add table
Reference in a new issue