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.
|
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
|
.. |four2go! logo| image:: /uploads/2010/12/four2go.png
|
||||||
|
|
||||||
.. |gumyum logo| image:: /uploads/2010/12/gumyumgameslogo.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>`_
|
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>`__
|
You should follow me on twitter `here <https://twitter.com/russellbal>`__
|
||||||
|
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
|
|
||||||
|
|
@ -55,3 +55,5 @@ software!
|
||||||
:target: /uploads/2011/01/treeman1.png
|
:target: /uploads/2011/01/treeman1.png
|
||||||
:class: wordwrap-right
|
:class: wordwrap-right
|
||||||
:width: 300
|
:width: 300
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
|
|
||||||
|
|
@ -44,3 +44,5 @@ You should follow me on twitter
|
||||||
`here <https://twitter.com/russellbal>`__.
|
`here <https://twitter.com/russellbal>`__.
|
||||||
|
|
||||||
.. |china-food| image:: /uploads/2011/01/food1.jpg
|
.. |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
|
.. |dream-solving| image:: /uploads/2011/01/dream.jpg
|
||||||
:target: /uploads/2011/01/dream.jpg
|
:target: /uploads/2011/01/dream.jpg
|
||||||
:class: wordwrap-left
|
:class: wordwrap-left
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
|
|
||||||
|
|
@ -10,8 +10,6 @@ virt-back: a python libvirt backup utility for kvm xen virtualbox
|
||||||
|
|
||||||
|image0|
|
|image0|
|
||||||
|
|
||||||
.. contents::
|
|
||||||
|
|
||||||
**Over the weekend I wrote virt-back, a backup utility for QEMU, KVM,
|
**Over the weekend I wrote virt-back, a backup utility for QEMU, KVM,
|
||||||
XEN, or Virtualbox guests.**
|
XEN, or Virtualbox guests.**
|
||||||
|
|
||||||
|
|
@ -108,4 +106,4 @@ Restoring
|
||||||
|
|
||||||
.. |image0| image:: /uploads/2011/03/virt-back.png
|
.. |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
|
You should also give Pylowiki a try. Pylowiki has futuristic, live
|
||||||
preview, same page, section edit functionality.
|
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
|
@reboot /opt/teamspeak/ts3server_startscript.sh start
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
|
|
||||||
|
|
@ -57,3 +57,5 @@ You should follow me on twitter
|
||||||
`here <https://twitter.com/russellbal>`_
|
`here <https://twitter.com/russellbal>`_
|
||||||
|
|
||||||
.. |onion| image:: /uploads/2011/04/onion.png
|
.. |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.
|
- This smells like double taxation.
|
||||||
- One more reason to move out of Connecticut when looking for Tech or
|
- One more reason to move out of Connecticut when looking for Tech or
|
||||||
IT jobs.
|
IT jobs.
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
|
|
||||||
|
|
@ -64,3 +64,5 @@ the faulty splitter.
|
||||||
.. |uverse link errors| image:: /uploads/2011/06/uverse-dsl-link-errors.jpg
|
.. |uverse link errors| image:: /uploads/2011/06/uverse-dsl-link-errors.jpg
|
||||||
.. |old uverse splitter| image:: /uploads/2011/06/old-splitter.jpg
|
.. |old uverse splitter| image:: /uploads/2011/06/old-splitter.jpg
|
||||||
.. |new uverse splitter| image:: /uploads/2011/06/new-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
|
.. |school.yohdah.com.graph| image:: /uploads/2011/06/school.yohdah.com_.graph_.png
|
||||||
:target: /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:
|
% for link in request.bread.links:
|
||||||
${ link | n } /
|
${ link | n } /
|
||||||
% endfor
|
% endfor
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
|
|
||||||
|
|
@ -48,3 +48,5 @@ only my name was shorter... LOL
|
||||||
You should follow me on twitter `here <https://twitter.com/russellbal>`_
|
You should follow me on twitter `here <https://twitter.com/russellbal>`_
|
||||||
|
|
||||||
.. |image0| image:: /uploads/2011/07/80-percent-github-hack.png
|
.. |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
|
At the peak of the scrape I had 14 threads running of the script, using
|
||||||
approximately 580Kbps (I used iftop).
|
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
|
.. |time-travelling-wizard-alchemists| image:: /uploads/2011/08/time-travelling-wizard-alchemists.jpg
|
||||||
:alt: time traveling wizard alchemist
|
:alt: time traveling wizard alchemist
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
|
|
||||||
|
|
@ -108,3 +108,5 @@ commands start guest DOMs, virsh create will also register the DOM into
|
||||||
the hypervisor.
|
the hypervisor.
|
||||||
|
|
||||||
|
|
|
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
|
|
||||||
|
|
@ -65,3 +65,5 @@ nonsensical rules and procedures.
|
||||||
|https://xkcd.com/936/|
|
|https://xkcd.com/936/|
|
||||||
|
|
||||||
.. |https://xkcd.com/936/| image:: /uploads/2011/08/password-strength.png
|
.. |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
|
.. |pig.py| image:: /uploads/2011/08/pig1-color1.png
|
||||||
:class: wordwrap-left
|
: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>`_
|
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
|
.. |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
|
:slug: a-system-administrators-guide-to-installing-and-maintaining-multiple-python-environments
|
||||||
:status: published
|
:status: published
|
||||||
|
|
||||||
.. contents::
|
|
||||||
|
|
||||||
Some operating systems depend on a specific version of python to
|
Some operating systems depend on a specific version of python to
|
||||||
function properly. For example, Yum on Redhat Enterprise Linux 5 (RHEL5)
|
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
|
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.
|
Now you can run easy_install to install packages into virtpy/lib/python2.7/site-packages.
|
||||||
|
|
||||||
**Thanks for reading, that's all for now.**
|
**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"]
|
[gallery link="file"]
|
||||||
|
|
||||||
.. |image0| image:: /uploads/2011/09/hacker-olive-oil-lamp.jpg
|
.. |image0| image:: /uploads/2011/09/hacker-olive-oil-lamp.jpg
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
|
|
||||||
|
|
@ -10,3 +10,5 @@ New Baby Homecoming
|
||||||
|image0|
|
|image0|
|
||||||
|
|
||||||
.. |image0| image:: /uploads/2011/09/RJ-and-Carter.jpg
|
.. |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.
|
think of LinkPeek as Gravatar for web addresses.
|
||||||
|
|
||||||
Have I missed any other market segments?
|
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
|
LinkPeek is a website screenshot service. Convert any webpage to an
|
||||||
image. No software, no downloading and absolutely no waiting! Unlimited
|
image. No software, no downloading and absolutely no waiting! Unlimited
|
||||||
free 140 pixel thumbnails!
|
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.
|
This doctype tag forces the broswer into standards mode which allows the pages to render properly.
|
||||||
|
|
||||||
Thanks!
|
Thanks!
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
|
|
||||||
|
|
@ -19,3 +19,5 @@ to gather an improved representation of backlinks.
|
||||||
|
|
||||||
`Click here to try
|
`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>`__
|
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
|
6 am to 10 pm Pacific Time
|
||||||
|
|
||||||
.. |image0| image:: /uploads/2011/10/microsoft-resells-free-internet-services.png
|
.. |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-
|
KEXT := $(shell echo $(KVER) | sed -ne 's/^[23]\.[1-9]\..*/k/p')o-
|
||||||
|
|
||||||
**Now you should follow the rest of the guide.**
|
**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
|
.. |image0| image:: /uploads/2011/10/smile-guy.jpg
|
||||||
.. |image1| image:: /uploads/2011/10/skull.jpg
|
.. |image1| image:: /uploads/2011/10/skull.jpg
|
||||||
.. |image2| image:: /uploads/2011/10/wind.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"
|
#. *Enable* "Inserting images - by Kent T"
|
||||||
|
|
||||||
**Welcome!**
|
**Welcome!**
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
|
|
||||||
|
|
@ -29,3 +29,5 @@ line.
|
||||||
| |image0|
|
| |image0|
|
||||||
|
|
||||||
.. |image0| image:: /uploads/2011/10/stack-vs-queue.png
|
.. |image0| image:: /uploads/2011/10/stack-vs-queue.png
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
|
|
||||||
|
|
@ -48,3 +48,5 @@ boot.
|
||||||
|
|
||||||
.. |image0| image:: /uploads/2011/10/df_inode-year.png
|
.. |image0| image:: /uploads/2011/10/df_inode-year.png
|
||||||
.. |image1| image:: /uploads/2011/10/df_inode-day.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.
|
failure.
|
||||||
|
|
||||||
**Now that I got that out of my system please check out https://linkpeek.com**
|
**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?**
|
**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/>`_
|
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.
|
Now you can use ``${google_analytics_key}`` anywhere in your template.
|
||||||
|
|
||||||
**Thank you for reading, and feel free to leave comments**
|
**Thank you for reading, and feel free to leave comments**
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
|
|
||||||
|
|
@ -13,3 +13,5 @@ LinkPeek.com Number One on Hacker News
|
||||||
| |image0|
|
| |image0|
|
||||||
|
|
||||||
.. |image0| image:: /uploads/2011/12/linkpeek-number-1-on-hacker-news.png
|
.. |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
|
**Other names:** *Flash Meeting*, *Flash Mob Meeting*, *Flash Office
|
||||||
Meeting*
|
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
|
**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
|
look at all possible by-products. Don't miss the hidden gem in a
|
||||||
project's slag!**
|
project's slag!**
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
|
|
||||||
|
|
@ -35,3 +35,5 @@ charged.
|
||||||
Always make sure to extensively test payment and sign up code. Try all
|
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
|
the edge cases. Try to make your software break. Don't inflict friction
|
||||||
on your potential customers.
|
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,
|
Since then we have new DNSSEC extensions which allow for origin authentication of DNS data,
|
||||||
authenticated denial of existence, and data integrity.
|
authenticated denial of existence, and data integrity.
|
||||||
DNSSEC does not attempt to solve availability and confidentiality.
|
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
|
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
|
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.
|
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.
|
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.
|
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
|
:slug: monoalphabetic-cipher-and-inverse-written-in-python
|
||||||
:status: published
|
:status: published
|
||||||
|
|
||||||
.. contents::
|
|
||||||
|
|
||||||
introduction and background
|
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)
|
>>> mc.encrypt_with_monoalpha('Hello all you hackers out there!', cipher)
|
||||||
'sXGGt SGG Nt0 HSrLXFC t0U UHXFX!'
|
'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)
|
>>> mc.decrypt_with_monoalpha('sXGGt SGG Nt0 HSrLXFC t0U UHXFX!', cipher)
|
||||||
'Hello all you hackers out there!'
|
'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
|
If group N had 50 members, it would need to generate and maintain 100
|
||||||
Public/Private Keys.
|
Public/Private Keys.
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
|
|
||||||
|
|
@ -137,3 +137,5 @@ The above code would have produced the following invalid hash:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
**You should follow me on twitter:** `@russellbal <https://twitter.com/russellbal>`__
|
**You should follow me on twitter:** `@russellbal <https://twitter.com/russellbal>`__
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
|
|
||||||
|
|
@ -71,3 +71,5 @@ Block cipher lab
|
||||||
input = "1010000010100000101000001010000010100000101000001010000010100001"
|
input = "1010000010100000101000001010000010100000101000001010000010100001"
|
||||||
print cipher2( input )
|
print cipher2( input )
|
||||||
# output: 1010000110100000101000001010000010100000101000001010000010100000
|
# 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/
|
: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
|
.. |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/
|
: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
|
:alt: I drew lumpy princess from Adventure Time
|
||||||
.. |image5| image:: /uploads/2012/02/sad-jake.png
|
.. |image5| image:: /uploads/2012/02/sad-jake.png
|
||||||
:alt: I drew sad Jake from Adventure Time
|
: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
|
print "HTTP Critical:", r.status, r.reason
|
||||||
|
|
||||||
exit( 2 )
|
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
|
.. |image3| image:: /uploads/2012/02/wireshark-packets.png
|
||||||
.. |image4| image:: /uploads/2012/02/wireshark-stop-capture.png
|
.. |image4| image:: /uploads/2012/02/wireshark-stop-capture.png
|
||||||
.. |image5| image:: /uploads/2012/02/wireshark-filter.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/
|
: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
|
.. |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/
|
: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
|
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.
|
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
|
**EDIT:** changed "originator of the quote" to "originator of this
|
||||||
version of this quote".
|
version of this quote".
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
|
|
||||||
|
|
@ -32,3 +32,5 @@ nosslsearch cname is a bad idea and solution
|
||||||
|
|
|
|
||||||
| Reference:
|
| Reference:
|
||||||
https://support.google.com/websearch/bin/answer.py?hl=en&answer=186669
|
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 attach-disk`` is to ``mount`` as
|
||||||
| ``virsh edit`` is to ``vim /etc/fstab``
|
| ``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
|
**I just purchased Instagram for 1B and all I got was this lousy
|
||||||
image filter.**
|
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
|
**If you liked this post, you should follow me on twitter
|
||||||
`here <https://twitter.com/RussellBal>`__.**
|
`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
|
Warning, this procedure might void your warranty. If in doubt, call
|
||||||
support first.
|
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/
|
: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
|
.. |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/
|
: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
|
.. |image0| image:: /uploads/2012/06/vertical-scale-marked.png
|
||||||
:target: https://russell.ballestrini.net/always-attempt-to-scale-vertically-first/vertical-scale-marked/
|
: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
|
* * * * * /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
|
.. |image0| image:: /uploads/2012/06/dedication-eye-chemical-burn.jpg
|
||||||
:target: /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>`__
|
* `ago <https://bitbucket.org/russellballestrini/ago>`__
|
||||||
|
|
||||||
I hope you enjoy them.
|
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
|
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
|
validity of a patch. I plan to devote the next couple weeks to making
|
||||||
test-driven-development a habit.
|
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|
|
||||||
|
|
||||||
.. |2013-03-03-explaining-cache-scaled| image:: /uploads/2013/03/2013-03-03-explaining-cache-scaled.png
|
.. |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
|
Extra points if you set the camera to record (just don't record yourself
|
||||||
or sounds) which will fill up the iPhone capacity.
|
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
|
:slug: tips-for-getting-pull-requests-approved
|
||||||
:status: published
|
:status: published
|
||||||
|
|
||||||
.. contents::
|
|
||||||
|
|
||||||
|
|
||||||
Pull rejection sucks!
|
Pull rejection sucks!
|
||||||
================================================
|
================================================
|
||||||
|
|
||||||
|
|
@ -133,3 +130,5 @@ everybody wins!
|
||||||
:target: /uploads/2012/12/ideas-blog-get-heard.xcf_.png
|
: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
|
.. |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
|
: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
|
We were just shy of 800 downloads on pypi for ago-0.0.3, I hope
|
||||||
ago-0.0.4 will perform even better!
|
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!'
|
'in 12 days, 22 hours, 12 minutes from now!'
|
||||||
'this happened 14 days, 1 hour, 53 minutes ago!'
|
'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
|
.. |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
|
: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
|
.. |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
|
: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
|
.. raw:: html
|
||||||
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
|
|
||||||
|
|
@ -11,3 +11,5 @@ Survey Baby Monkey
|
||||||
|baby-monkey-fxhp|
|
|baby-monkey-fxhp|
|
||||||
|
|
||||||
.. |baby-monkey-fxhp| image:: /uploads/2013/04/baby-monkey-fxhp.jpg
|
.. |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
|
#. test disaster recovery procedures before needing them
|
||||||
#. provision development and production environments without effort
|
#. provision development and production environments without effort
|
||||||
#. have a reproducible blueprint of "how to build a LinkPeek server"
|
#. 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
|
.. |minecraft-vs-craftbukkit| image:: /uploads/2013/06/minecraft-vs-craftbukkit.png
|
||||||
:target: /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
|
I use this same technique to declare most configuration options as
|
||||||
parameters, like hostnames, IP addresses, ports, and more.
|
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.
|
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.
|
The new minion's keys are already added to the salt-master.
|
||||||
Now you just need to run highstate!
|
Now you just need to run highstate!
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
|
|
||||||
|
|
@ -98,3 +98,5 @@ parameterize arguments:
|
||||||
|
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
|
|
||||||
|
|
@ -72,3 +72,5 @@ changes either state or data it should be placed into the configuration
|
||||||
management for the reasons mentioned above.
|
management for the reasons mentioned above.
|
||||||
|
|
||||||
.. |config-mangement-vs-remote-execution| image:: /uploads/2013/07/config-mangement-vs-remote-execution.png
|
.. |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
|
We now have a version controlled JSON file in configuration management
|
||||||
and the power of MongoDB Document Objects in our application code!
|
and the power of MongoDB Document Objects in our application code!
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
|
|
||||||
|
|
@ -178,3 +178,5 @@ update a managed Postfix lookup table.
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
.. |postfix-config-management| image:: /uploads/2013/10/mysza.gif
|
.. |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
|
The web application is now daemonized and listening on port 5200 with 4
|
||||||
workers. I leave implementing the Nginx front end to the reader.
|
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
|
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
|
used during a manual migration, or if corruption happened to the VM and
|
||||||
we wanted to restore to a previous version.
|
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>
|
</li>
|
||||||
</p>
|
</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-server
|
||||||
salt-cloud --destroy sensu-client1 sensu-client2 sensu-client3 sensu-client4
|
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
|
Heka also has great docs and a number of input and output plugins, but
|
||||||
don't take my word for it, try it yourself!
|
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>`__
|
push <https://www.youtube.com/watch?v=SsAi00wv0vU>`__
|
||||||
- `Power ups and grow and
|
- `Power ups and grow and
|
||||||
shrink <https://www.youtube.com/watch?v=2-FFMP67atU>`__
|
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
|
``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
|
L2ARC to this box was not needed, but it was a great learning
|
||||||
experience.
|
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 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)
|
(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
|
Development Difficulty: HIGH - state aware - must know how to both
|
||||||
get and set values and make desicions based on what it finds.
|
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.
|
SmartOS hypervisor.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
|
|
||||||
|
|
@ -61,3 +61,5 @@ following command:
|
||||||
.. raw:: html
|
.. raw:: html
|
||||||
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
|
|
||||||
|
|
@ -120,3 +120,5 @@ every host.
|
||||||
.. raw:: html
|
.. raw:: html
|
||||||
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
|
|
||||||
|
|
@ -64,3 +64,5 @@ management?
|
||||||
like Gentoo and configuration management.
|
like Gentoo and configuration management.
|
||||||
| (Joyant SmartOS zone datasets, Docker container images, Vagrant box
|
| (Joyant SmartOS zone datasets, Docker container images, Vagrant box
|
||||||
files, AWS AMI, Digital Ocean Snapshots, etc)
|
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
|
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
|
my disk capacity usage checked every 2 minutes. This fine-grain control
|
||||||
is super powerful!
|
is super powerful!
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
|
|
||||||
|
|
@ -99,3 +99,5 @@ Example output:
|
||||||
.. raw:: html
|
.. raw:: html
|
||||||
|
|
||||||
</p>
|
</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