Move table of contents to bottom in 12 blog posts and add append script
This commit is contained in:
parent
c3c78ec338
commit
578bcd4824
176 changed files with 429 additions and 35 deletions
78
append_toc.py
Normal file
78
append_toc.py
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
#!/usr/bin/env python3
|
||||
"""
|
||||
Append table of contents directive to RST files that don't have one.
|
||||
|
||||
This script:
|
||||
1. Finds all .rst files in content/ directory
|
||||
2. Checks if they already have .. contents::
|
||||
3. Appends proper whitespace and .. contents:: to files without it
|
||||
4. Reports which files were modified
|
||||
"""
|
||||
|
||||
import os
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
def has_toc(content):
|
||||
"""Check if file already has a table of contents directive."""
|
||||
return '.. contents::' in content
|
||||
|
||||
|
||||
def append_toc(filepath):
|
||||
"""Append TOC directive to file with proper whitespace."""
|
||||
with open(filepath, 'r', encoding='utf-8') as f:
|
||||
content = f.read()
|
||||
|
||||
# Check if already has TOC
|
||||
if has_toc(content):
|
||||
return False
|
||||
|
||||
# Ensure file ends with newline
|
||||
if not content.endswith('\n'):
|
||||
content += '\n'
|
||||
|
||||
# Add blank line and TOC directive
|
||||
content += '\n.. contents::\n'
|
||||
|
||||
# Write back to file
|
||||
with open(filepath, 'w', encoding='utf-8') as f:
|
||||
f.write(content)
|
||||
|
||||
return True
|
||||
|
||||
|
||||
def main():
|
||||
content_dir = Path('content')
|
||||
|
||||
if not content_dir.exists():
|
||||
print("Error: content/ directory not found")
|
||||
sys.exit(1)
|
||||
|
||||
# Find all RST files
|
||||
rst_files = sorted(content_dir.glob('*.rst'))
|
||||
|
||||
modified_files = []
|
||||
skipped_files = []
|
||||
|
||||
for filepath in rst_files:
|
||||
if append_toc(filepath):
|
||||
modified_files.append(filepath.name)
|
||||
print(f"✓ Added TOC to: {filepath.name}")
|
||||
else:
|
||||
skipped_files.append(filepath.name)
|
||||
|
||||
# Summary
|
||||
print(f"\n{'='*60}")
|
||||
print(f"Modified: {len(modified_files)} files")
|
||||
print(f"Skipped (already has TOC): {len(skipped_files)} files")
|
||||
print(f"{'='*60}")
|
||||
|
||||
if modified_files:
|
||||
print("\nModified files:")
|
||||
for filename in modified_files:
|
||||
print(f" - {filename}")
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
|
@ -53,3 +53,5 @@ still seems active and continues to hosts a few of the bands tracks.
|
|||
|
||||
Sorry about the bummer, but you should still give the music a listen.
|
||||
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -99,3 +99,5 @@ yourself!
|
|||
.. |four2go! logo| image:: /uploads/2010/12/four2go.png
|
||||
|
||||
.. |gumyum logo| image:: /uploads/2010/12/gumyumgameslogo.png
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -22,3 +22,5 @@ steps </add-a-breadcrumb-subscriber-to-a-pyramid-project-using-4-simple-steps/>`
|
|||
|
||||
|
||||
You should follow me on twitter `here <https://twitter.com/russellbal>`_
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -36,3 +36,5 @@ Did I miss any reasons? Feel free to comment below.
|
|||
|
||||
You should follow me on twitter `here <https://twitter.com/russellbal>`__
|
||||
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -55,3 +55,5 @@ software!
|
|||
:target: /uploads/2011/01/treeman1.png
|
||||
:class: wordwrap-right
|
||||
:width: 300
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -44,3 +44,5 @@ You should follow me on twitter
|
|||
`here <https://twitter.com/russellbal>`__.
|
||||
|
||||
.. |china-food| image:: /uploads/2011/01/food1.jpg
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -41,3 +41,5 @@ You should follow me on twitter `here <https://twitter.com/russellbal>`__.
|
|||
.. |dream-solving| image:: /uploads/2011/01/dream.jpg
|
||||
:target: /uploads/2011/01/dream.jpg
|
||||
:class: wordwrap-left
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -10,8 +10,6 @@ virt-back: a python libvirt backup utility for kvm xen virtualbox
|
|||
|
||||
|image0|
|
||||
|
||||
.. contents::
|
||||
|
||||
**Over the weekend I wrote virt-back, a backup utility for QEMU, KVM,
|
||||
XEN, or Virtualbox guests.**
|
||||
|
||||
|
|
@ -108,4 +106,4 @@ Restoring
|
|||
|
||||
.. |image0| image:: /uploads/2011/03/virt-back.png
|
||||
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -23,3 +23,5 @@ porting ChaosTheory. You can view the finished product at
|
|||
|
||||
You should also give Pylowiki a try. Pylowiki has futuristic, live
|
||||
preview, same page, section edit functionality.
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -101,3 +101,5 @@ Place the following into teamspeak's crontab:
|
|||
::
|
||||
|
||||
@reboot /opt/teamspeak/ts3server_startscript.sh start
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -57,3 +57,5 @@ You should follow me on twitter
|
|||
`here <https://twitter.com/russellbal>`_
|
||||
|
||||
.. |onion| image:: /uploads/2011/04/onion.png
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -81,3 +81,5 @@ When I checked my email, I had this letter from Amazon.com:
|
|||
- This smells like double taxation.
|
||||
- One more reason to move out of Connecticut when looking for Tech or
|
||||
IT jobs.
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -64,3 +64,5 @@ the faulty splitter.
|
|||
.. |uverse link errors| image:: /uploads/2011/06/uverse-dsl-link-errors.jpg
|
||||
.. |old uverse splitter| image:: /uploads/2011/06/old-splitter.jpg
|
||||
.. |new uverse splitter| image:: /uploads/2011/06/new-splitter.jpg
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -46,3 +46,5 @@ means?**
|
|||
|
||||
.. |school.yohdah.com.graph| image:: /uploads/2011/06/school.yohdah.com_.graph_.png
|
||||
:target: /uploads/2011/06/school.yohdah.com_.graph_.png
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -54,3 +54,5 @@ snippet:
|
|||
% for link in request.bread.links:
|
||||
${ link | n } /
|
||||
% endfor
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -48,3 +48,5 @@ only my name was shorter... LOL
|
|||
You should follow me on twitter `here <https://twitter.com/russellbal>`_
|
||||
|
||||
.. |image0| image:: /uploads/2011/07/80-percent-github-hack.png
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -43,3 +43,5 @@ torrent.
|
|||
|
||||
At the peak of the scrape I had 14 threads running of the script, using
|
||||
approximately 580Kbps (I used iftop).
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -54,3 +54,5 @@ Thanks for reading, you should follow me on twitter `here <https://twitter.com/r
|
|||
|
||||
.. |time-travelling-wizard-alchemists| image:: /uploads/2011/08/time-travelling-wizard-alchemists.jpg
|
||||
:alt: time traveling wizard alchemist
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -108,3 +108,5 @@ commands start guest DOMs, virsh create will also register the DOM into
|
|||
the hypervisor.
|
||||
|
||||
|
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -65,3 +65,5 @@ nonsensical rules and procedures.
|
|||
|https://xkcd.com/936/|
|
||||
|
||||
.. |https://xkcd.com/936/| image:: /uploads/2011/08/password-strength.png
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -44,3 +44,5 @@ https://bitbucket.org/russellballestrini/pig/raw/tip/pig.py
|
|||
|
||||
.. |pig.py| image:: /uploads/2011/08/pig1-color1.png
|
||||
:class: wordwrap-left
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -65,3 +65,5 @@ hold importance and need each other.
|
|||
If you liked this article, you should follow me `here <https://plus.google.com/101342467879466559261/posts>`_
|
||||
|
||||
.. |Viewers vs Doers Lecture| image:: /uploads/2011/09/lecture-viewers-vs-doers.jpg
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -7,8 +7,6 @@ A system administrators guide to installing and maintaining multiple python envi
|
|||
:slug: a-system-administrators-guide-to-installing-and-maintaining-multiple-python-environments
|
||||
:status: published
|
||||
|
||||
.. contents::
|
||||
|
||||
Some operating systems depend on a specific version of python to
|
||||
function properly. For example, Yum on Redhat Enterprise Linux 5 (RHEL5)
|
||||
depends on python 2.4.3. This version of python lacks support from many
|
||||
|
|
@ -113,3 +111,5 @@ python site-packages directory.
|
|||
Now you can run easy_install to install packages into virtpy/lib/python2.7/site-packages.
|
||||
|
||||
**Thanks for reading, that's all for now.**
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -54,3 +54,5 @@ In loom of the recent and persisting hurricane season I present a
|
|||
[gallery link="file"]
|
||||
|
||||
.. |image0| image:: /uploads/2011/09/hacker-olive-oil-lamp.jpg
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -10,3 +10,5 @@ New Baby Homecoming
|
|||
|image0|
|
||||
|
||||
.. |image0| image:: /uploads/2011/09/RJ-and-Carter.jpg
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -42,3 +42,5 @@ create live web page thumbnails. We provide the API free of charge,
|
|||
think of LinkPeek as Gravatar for web addresses.
|
||||
|
||||
Have I missed any other market segments?
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -18,3 +18,5 @@ The `LinkPeek <https://linkpeek.com/>`__ API had an alpha release!
|
|||
LinkPeek is a website screenshot service. Convert any webpage to an
|
||||
image. No software, no downloading and absolutely no waiting! Unlimited
|
||||
free 140 pixel thumbnails!
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -26,3 +26,5 @@ document type:
|
|||
This doctype tag forces the broswer into standards mode which allows the pages to render properly.
|
||||
|
||||
Thanks!
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -19,3 +19,5 @@ to gather an improved representation of backlinks.
|
|||
|
||||
`Click here to try
|
||||
now! <https://www.google.com/#sclient=psy-ab&hl=en&source=hp&q=%22school.yohdah.com%22+-site:school.yohdah.com&pbx=1&oq=%22school.yohdah.com%22+-site:school.yohdah.com&aq=f&aqi=&aql=1&gs_sm=e&gs_upl=1836l15311l0l17007l43l35l0l0l0l8l274l5507l4.23.8l35l0&bav=on.2,or.r_gc.r_pw.r_cp.,cf.osb&fp=18aa9f7b4fee5b6d&biw=1485&bih=912>`__
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -51,3 +51,5 @@ Call us directly by dialing:
|
|||
6 am to 10 pm Pacific Time
|
||||
|
||||
.. |image0| image:: /uploads/2011/10/microsoft-resells-free-internet-services.png
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -21,3 +21,5 @@ Edit *src/Makefile*:
|
|||
KEXT := $(shell echo $(KVER) | sed -ne 's/^[23]\.[1-9]\..*/k/p')o-
|
||||
|
||||
**Now you should follow the rest of the guide.**
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -37,3 +37,5 @@ forever. The foliage emits a euphoric glow under the sun saturated rays.
|
|||
.. |image0| image:: /uploads/2011/10/smile-guy.jpg
|
||||
.. |image1| image:: /uploads/2011/10/skull.jpg
|
||||
.. |image2| image:: /uploads/2011/10/wind.jpg
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -16,3 +16,5 @@ will not work if you have offline enabled.
|
|||
#. *Enable* "Inserting images - by Kent T"
|
||||
|
||||
**Welcome!**
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -29,3 +29,5 @@ line.
|
|||
| |image0|
|
||||
|
||||
.. |image0| image:: /uploads/2011/10/stack-vs-queue.png
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -48,3 +48,5 @@ boot.
|
|||
|
||||
.. |image0| image:: /uploads/2011/10/df_inode-year.png
|
||||
.. |image1| image:: /uploads/2011/10/df_inode-day.png
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -20,3 +20,5 @@ But most of all I'm scared that nobody will like me. I'm scared of
|
|||
failure.
|
||||
|
||||
**Now that I got that out of my system please check out https://linkpeek.com**
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -48,3 +48,5 @@ Get out there and meet people with similar interests!
|
|||
**Did you like this post?**
|
||||
|
||||
You should checkout the first chapter of my e-book, *How-to Work From Home* titled `The Road to Remote </how-to-work-from-home-the-road-to-remote-chapter-1/>`_
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -94,3 +94,5 @@ subscribers::
|
|||
Now you can use ``${google_analytics_key}`` anywhere in your template.
|
||||
|
||||
**Thank you for reading, and feel free to leave comments**
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -13,3 +13,5 @@ LinkPeek.com Number One on Hacker News
|
|||
| |image0|
|
||||
|
||||
.. |image0| image:: /uploads/2011/12/linkpeek-number-1-on-hacker-news.png
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -14,3 +14,5 @@ conception as you sit bewildered at your desk.
|
|||
|
||||
**Other names:** *Flash Meeting*, *Flash Mob Meeting*, *Flash Office
|
||||
Meeting*
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -42,3 +42,5 @@ About a week later on a whim I posted the generator to hacker news with an hones
|
|||
**Remember, when faced with pivoting or killing a project, take a good
|
||||
look at all possible by-products. Don't miss the hidden gem in a
|
||||
project's slag!**
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -35,3 +35,5 @@ charged.
|
|||
Always make sure to extensively test payment and sign up code. Try all
|
||||
the edge cases. Try to make your software break. Don't inflict friction
|
||||
on your potential customers.
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -26,3 +26,5 @@ Internet entities often desire to communicate securely, some reasons include:
|
|||
Since then we have new DNSSEC extensions which allow for origin authentication of DNS data,
|
||||
authenticated denial of existence, and data integrity.
|
||||
DNSSEC does not attempt to solve availability and confidentiality.
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -33,3 +33,5 @@ could be compromised during the transmission of a message.
|
|||
Yes, you can have integrity of a message without confidentiality. One
|
||||
can take a hash or sum of the message on both sides to compare. Often we
|
||||
share downloadable files and provide data integrity using md5 hash sums.
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -20,3 +20,5 @@ To find the number of possible mappings we take the 256 input blocks and
|
|||
find it's factorial. There are 256! possible mappings.
|
||||
|
||||
We can view each of these mappings as a key, so this cipher has 256! keys.
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -6,8 +6,6 @@ Monoalphabetic Cipher and Inverse Written in Python
|
|||
:slug: monoalphabetic-cipher-and-inverse-written-in-python
|
||||
:status: published
|
||||
|
||||
.. contents::
|
||||
|
||||
introduction and background
|
||||
===============================
|
||||
|
||||
|
|
@ -150,6 +148,8 @@ Here I show how to use the library:
|
|||
>>> mc.encrypt_with_monoalpha('Hello all you hackers out there!', cipher)
|
||||
'sXGGt SGG Nt0 HSrLXFC t0U UHXFX!'
|
||||
|
||||
>>> # decrypt a message with the cipher.
|
||||
>>> # decrypt a message with the cipher.
|
||||
>>> mc.decrypt_with_monoalpha('sXGGt SGG Nt0 HSrLXFC t0U UHXFX!', cipher)
|
||||
'Hello all you hackers out there!'
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -64,3 +64,5 @@ Public/Private Keys.
|
|||
|
||||
If group N had 50 members, it would need to generate and maintain 100
|
||||
Public/Private Keys.
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -137,3 +137,5 @@ The above code would have produced the following invalid hash:
|
|||
</p>
|
||||
|
||||
**You should follow me on twitter:** `@russellbal <https://twitter.com/russellbal>`__
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -71,3 +71,5 @@ Block cipher lab
|
|||
input = "1010000010100000101000001010000010100000101000001010000010100001"
|
||||
print cipher2( input )
|
||||
# output: 1010000110100000101000001010000010100000101000001010000010100000
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -23,3 +23,5 @@ The official `@RedSox <https://twitter.com/#!/RedSox>`__ re-tweeted the image to
|
|||
:target: https://russell.ballestrini.net/my-4-month-olds-15-minutes-of-fame/cutest-redsox-fan-ever/
|
||||
.. |image1| image:: /uploads/2012/02/Screenshot-at-2012-02-16-172630.png
|
||||
:target: https://russell.ballestrini.net/my-4-month-olds-15-minutes-of-fame/screenshot-at-2012-02-16-172630/
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -50,3 +50,5 @@ I'm getting faster, this was completed in 20 minutes
|
|||
:alt: I drew lumpy princess from Adventure Time
|
||||
.. |image5| image:: /uploads/2012/02/sad-jake.png
|
||||
:alt: I drew sad Jake from Adventure Time
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -60,3 +60,5 @@ This is the python plugin I came up with:
|
|||
print "HTTP Critical:", r.status, r.reason
|
||||
|
||||
exit( 2 )
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -139,3 +139,5 @@ has length of one byte. List all three fields and their lengths.
|
|||
.. |image3| image:: /uploads/2012/02/wireshark-packets.png
|
||||
.. |image4| image:: /uploads/2012/02/wireshark-stop-capture.png
|
||||
.. |image5| image:: /uploads/2012/02/wireshark-filter.png
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -108,3 +108,5 @@ list!**
|
|||
:target: https://russell.ballestrini.net/how-to-save-hundreds-of-dollars-on-groceries-without-clipping-coupons/6876069657_5a2f4ae487_o/
|
||||
.. |image3| image:: /uploads/2012/03/6876068965_db8a5d12b2_o.jpg
|
||||
:target: https://russell.ballestrini.net/how-to-save-hundreds-of-dollars-on-groceries-without-clipping-coupons/6876068965_db8a5d12b2_o/
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -14,3 +14,5 @@ there?
|
|||
|
||||
Maybe we can come to a consensus as a standard name? Please feel free to
|
||||
post your virtualenv names here as a sort of poll.
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -17,3 +17,5 @@ As far as I can tell, I am the originator of this version of this quote.
|
|||
|
||||
**EDIT:** changed "originator of the quote" to "originator of this
|
||||
version of this quote".
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -32,3 +32,5 @@ nosslsearch cname is a bad idea and solution
|
|||
|
|
||||
| Reference:
|
||||
https://support.google.com/websearch/bin/answer.py?hl=en&answer=186669
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -23,3 +23,5 @@ attach disk images to guests without restarting.
|
|||
|
||||
| ``virsh attach-disk`` is to ``mount`` as
|
||||
| ``virsh edit`` is to ``vim /etc/fstab``
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -38,3 +38,5 @@ Mark Zuckerburg, I just thought up the perfect T-Shirt for you:
|
|||
|
||||
**I just purchased Instagram for 1B and all I got was this lousy
|
||||
image filter.**
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -68,3 +68,5 @@ learning more about my target market and customer needs.
|
|||
|
||||
**If you liked this post, you should follow me on twitter
|
||||
`here <https://twitter.com/RussellBal>`__.**
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -25,3 +25,5 @@ Once mounted I was able to SCP interesting files to a safe location.
|
|||
|
||||
Warning, this procedure might void your warranty. If in doubt, call
|
||||
support first.
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -36,3 +36,5 @@ have on load averages <http://www.smythies.com/~doug/network/load_average/new.ht
|
|||
:target: https://russell.ballestrini.net/high-load-on-web-server-after-updating-from-ubuntu-10-04-to-ubuntu-12-04-lts/high-load-after-updating-ubuntu-from-10-04-lts-to-12-04-lts/
|
||||
.. |image1| image:: /uploads/2012/05/ubuntu.12.04.swap_.year_.png
|
||||
:target: https://russell.ballestrini.net/high-load-on-web-server-after-updating-from-ubuntu-10-04-to-ubuntu-12-04-lts/ubuntu-12-04-swap-year/
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -34,3 +34,5 @@ issues and bought myself some time, for the moment.
|
|||
|
||||
.. |image0| image:: /uploads/2012/06/vertical-scale-marked.png
|
||||
:target: https://russell.ballestrini.net/always-attempt-to-scale-vertically-first/vertical-scale-marked/
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -38,3 +38,5 @@ Then I wrote a cronjob to kill hung programs:
|
|||
::
|
||||
|
||||
* * * * * /usr/local/sbin/killprogs.sh
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -71,3 +71,5 @@ Dedication plays a key role to success.
|
|||
|
||||
.. |image0| image:: /uploads/2012/06/dedication-eye-chemical-burn.jpg
|
||||
:target: /uploads/2012/06/dedication-eye-chemical-burn.jpg
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -25,3 +25,5 @@ If you want to view their source code, look here:
|
|||
* `ago <https://bitbucket.org/russellballestrini/ago>`__
|
||||
|
||||
I hope you enjoy them.
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -39,3 +39,5 @@ coverage and now I understand why. Tests not only help produce better
|
|||
bug-free software but also act as a powerful tool when proving the
|
||||
validity of a patch. I plan to devote the next couple weeks to making
|
||||
test-driven-development a habit.
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -122,3 +122,5 @@ should be cached. I hope this helps clear things up.
|
|||
|2013-03-03-explaining-cache-scaled|
|
||||
|
||||
.. |2013-03-03-explaining-cache-scaled| image:: /uploads/2013/03/2013-03-03-explaining-cache-scaled.png
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -15,3 +15,5 @@ how to drain an iPhone battery without needing passcode
|
|||
|
||||
Extra points if you set the camera to record (just don't record yourself
|
||||
or sounds) which will fill up the iPhone capacity.
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -6,9 +6,6 @@ Tips for getting pull requests approved
|
|||
:slug: tips-for-getting-pull-requests-approved
|
||||
:status: published
|
||||
|
||||
.. contents::
|
||||
|
||||
|
||||
Pull rejection sucks!
|
||||
================================================
|
||||
|
||||
|
|
@ -133,3 +130,5 @@ everybody wins!
|
|||
:target: /uploads/2012/12/ideas-blog-get-heard.xcf_.png
|
||||
.. |pull-request-stay-focused.xcf| image:: /uploads/2012/12/pull-request-stay-focused.xcf_.png
|
||||
:target: /uploads/2012/12/pull-request-stay-focused.xcf_.png
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -28,3 +28,5 @@ Change log:
|
|||
|
||||
We were just shy of 800 downloads on pypi for ago-0.0.3, I hope
|
||||
ago-0.0.4 will perform even better!
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -88,3 +88,5 @@ Here is a working example to show the new lambda function h in action:
|
|||
'in 12 days, 22 hours, 12 minutes from now!'
|
||||
'this happened 14 days, 1 hour, 53 minutes ago!'
|
||||
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -65,3 +65,5 @@ As always thanks for reading!
|
|||
|
||||
.. |2013-03-02-scale-virt-back-domfetcher-scaled| image:: /uploads/2013/03/2013-03-02-scale-virt-back-domfetcher-scaled.png
|
||||
:target: /uploads/2013/03/2013-03-02-scale-virt-back-domfetcher-scaled.png
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -34,3 +34,5 @@ multi-player browser-based-game.
|
|||
|
||||
.. |2013-03-22-tornado-callback-long-polling-event-loop-scaled| image:: /uploads/2013/03/2013-03-22-tornado-callback-long-polling-event-loop-scaled.png
|
||||
:target: /uploads/2013/03/2013-03-22-tornado-callback-long-polling-event-loop-scaled.png
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -38,3 +38,5 @@ Chromium-browser cron example:
|
|||
.. raw:: html
|
||||
|
||||
</p>
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -11,3 +11,5 @@ Survey Baby Monkey
|
|||
|baby-monkey-fxhp|
|
||||
|
||||
.. |baby-monkey-fxhp| image:: /uploads/2013/04/baby-monkey-fxhp.jpg
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -51,3 +51,5 @@ This system will allow me to:
|
|||
#. test disaster recovery procedures before needing them
|
||||
#. provision development and production environments without effort
|
||||
#. have a reproducible blueprint of "how to build a LinkPeek server"
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -23,3 +23,5 @@ minecraft server and started the craftbukkit minecraft server:
|
|||
|
||||
.. |minecraft-vs-craftbukkit| image:: /uploads/2013/06/minecraft-vs-craftbukkit.png
|
||||
:target: /uploads/2013/06/minecraft-vs-craftbukkit.png
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -67,3 +67,5 @@ substitution, for example hosts/hosts:
|
|||
|
||||
I use this same technique to declare most configuration options as
|
||||
parameters, like hostnames, IP addresses, ports, and more.
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -111,3 +111,5 @@ gain access to the following commands::
|
|||
If all goes well you should have a newly provisioned server bootstrapped with salt-minion.
|
||||
The new minion's keys are already added to the salt-master.
|
||||
Now you just need to run highstate!
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -98,3 +98,5 @@ parameterize arguments:
|
|||
|
||||
{% endfor %}
|
||||
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -72,3 +72,5 @@ changes either state or data it should be placed into the configuration
|
|||
management for the reasons mentioned above.
|
||||
|
||||
.. |config-mangement-vs-remote-execution| image:: /uploads/2013/07/config-mangement-vs-remote-execution.png
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -78,3 +78,5 @@ drop the collection before re-importing thus removing stale records.
|
|||
|
||||
We now have a version controlled JSON file in configuration management
|
||||
and the power of MongoDB Document Objects in our application code!
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -178,3 +178,5 @@ update a managed Postfix lookup table.
|
|||
{% endif %}
|
||||
|
||||
.. |postfix-config-management| image:: /uploads/2013/10/mysza.gif
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -75,3 +75,5 @@ embedded below:
|
|||
|
||||
The web application is now daemonized and listening on port 5200 with 4
|
||||
workers. I leave implementing the Nginx front end to the reader.
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -90,3 +90,5 @@ Just make sure the VM doesn't currently exist on the hypervisor.
|
|||
This strategy is great for complete backups of machines which could be
|
||||
used during a manual migration, or if corruption happened to the VM and
|
||||
we wanted to restore to a previous version.
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -488,3 +488,5 @@ I would have liked to test out physical to virtual migrations
|
|||
|
||||
</li>
|
||||
</p>
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -86,3 +86,5 @@ Later when I was done messing with writing checks, I used the following
|
|||
|
||||
salt-cloud --destroy sensu-server
|
||||
salt-cloud --destroy sensu-client1 sensu-client2 sensu-client3 sensu-client4
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -80,3 +80,5 @@ Like magic the data appended to ``input.log`` will appear in
|
|||
|
||||
Heka also has great docs and a number of input and output plugins, but
|
||||
don't take my word for it, try it yourself!
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -28,3 +28,5 @@ and SFML. I plan to use this post to track my progress.
|
|||
push <https://www.youtube.com/watch?v=SsAi00wv0vU>`__
|
||||
- `Power ups and grow and
|
||||
shrink <https://www.youtube.com/watch?v=2-FFMP67atU>`__
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -96,3 +96,5 @@ This machine is a test hypervisor and after reviewing the output from
|
|||
``zpool iostat -v`` over the last couple days, I'm pretty sure adding
|
||||
L2ARC to this box was not needed, but it was a great learning
|
||||
experience.
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -152,3 +152,5 @@ with chassis power for more extreme measures.
|
|||
I run FreeNAS on an HP DL180 G6 and just replaced my p410 controller with an LSI SAS9220-8i (IBM M1015) flashed to IT mode. The stock cables are long enough. I did not have issues with fans running at high RPM.
|
||||
|
||||
(I did the same replacement on an `HP DL160 G6 running SmartOS </how-i-added-two-seagate-240g-ssds-as-smartos-l2arc/>`_ and it didn't have a high fan RPM issues either)
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -34,3 +34,5 @@ document.
|
|||
|
||||
Development Difficulty: HIGH - state aware - must know how to both
|
||||
get and set values and make desicions based on what it finds.
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -37,3 +37,5 @@ This page will act as a hub to each of those solutions.
|
|||
SmartOS hypervisor.
|
||||
|
||||
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -61,3 +61,5 @@ following command:
|
|||
.. raw:: html
|
||||
|
||||
</p>
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -120,3 +120,5 @@ every host.
|
|||
.. raw:: html
|
||||
|
||||
</p>
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -64,3 +64,5 @@ management?
|
|||
like Gentoo and configuration management.
|
||||
| (Joyant SmartOS zone datasets, Docker container images, Vagrant box
|
||||
files, AWS AMI, Digital Ocean Snapshots, etc)
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -265,3 +265,5 @@ us schedule different checks with different frequencies. For example, I
|
|||
might want my load checks and metrics to be collected every 10 secs, but
|
||||
my disk capacity usage checked every 2 minutes. This fine-grain control
|
||||
is super powerful!
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
|
|
@ -99,3 +99,5 @@ Example output:
|
|||
.. raw:: html
|
||||
|
||||
</p>
|
||||
|
||||
.. contents::
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue