Skip to content

Commit

Permalink
switch around header levels
Browse files Browse the repository at this point in the history
  • Loading branch information
dpb587 committed Mar 15, 2014
1 parent 7fbb953 commit 8c2cd52
Show file tree
Hide file tree
Showing 24 changed files with 95 additions and 95 deletions.
4 changes: 2 additions & 2 deletions _includes/header.html
Expand Up @@ -56,9 +56,9 @@
<li>{{ page.print_blurb }}</li>
</ul>
{% endif %}
<h1>
<div class="site-title">
<strong><a href="/">Danny Berger</a></strong>
</h1>
</div>
<div class="meta screen-only">
<a class="subtle" href="http://dpb587.me/">dpb587</a>
&middot;
Expand Down
4 changes: 2 additions & 2 deletions _layouts/post.html
Expand Up @@ -13,10 +13,10 @@
<div class="social screen-only">

</div>
<h2>
<h1>
{{ page.title }}
<small class="print-only">{{ page.date|date:'%A, %B %d, %Y' }}</small>
</h2>
</h1>
</header>
<section class="post-content">
{{ content }}
Expand Down
10 changes: 5 additions & 5 deletions about.html
Expand Up @@ -6,7 +6,7 @@
---

<section>
<h2 class="screen-only">About</h2>
<h1 class="screen-only">About</h1>

<p>
I am a <em>software engineer</em> who enjoys pushing the limits of <em>web technology</em> and applying them to
Expand All @@ -16,7 +16,7 @@ <h2 class="screen-only">About</h2>
improved</em>.
</p>

<h3>Skill Set</h3>
<h2>Skill Set</h2>

<p>
I am especially familiar with 'cloud' concepts, e-commerce, server administration, and web applications. When
Expand Down Expand Up @@ -89,7 +89,7 @@ <h3>Skill Set</h3>
</dd>
</dl>

<h3>Experience</h3>
<h2>Experience</h2>

<p style="page-break-inside:avoid;">
<strong>Software Developer</strong> &nbsp;&middot;&nbsp; August '13 &ndash; present, contractor<br />
Expand Down Expand Up @@ -251,7 +251,7 @@ <h3>Experience</h3>
</p>


<h3>Open-Source Contributions</h3>
<h2>Open-Source Contributions</h2>

<ul>
<li><a href="https://github.com/logstash/logstash/commits?author=dpb587">logstash/logstash</a> &ndash; small enhancements</li>
Expand All @@ -262,7 +262,7 @@ <h3>Open-Source Contributions</h3>
</ul>


<h3>Education</h3>
<h2>Education</h2>

<ul>
<li><a href="http://www.taylor.edu/">Taylor University</a> &ndash; Bachelor of Science (2005 - 2009) &ndash; Computer Science, Systems (Business Information Systems)</li>
Expand Down
8 changes: 4 additions & 4 deletions blog/_posts/2013-01-07-secure-git-repositories.md
Expand Up @@ -15,7 +15,7 @@ files through `openssl` for decryption and encryption. The result is `git`'s ind
contents in base64. Soon I found [`shadowhand/git-encrypt`][3].


### Initial Setup
## Initial Setup

First, I did a one-time install of `shadowhand/git-encrypt` on my machine:

Expand Down Expand Up @@ -51,7 +51,7 @@ Now I just have to be sure to securely keep the salt and pass elsewhere for the
that, it's ready for me to use like any other `git` repository.


### A Practical Bit
## A Practical Bit

Since I won't frequently be setting up this repository, it'd probably be best if I could keep a reminder about what I'll
need to do. So I update `.gitattributes` to exclude itself and `README` from encryption:
Expand Down Expand Up @@ -87,7 +87,7 @@ $ git commit -m 'initial commit'
{% endhighlight %}


### Under the Hood
## Under the Hood

Originally I was a bit curious and wanted to verify that it's doing what I thought. So I created a simple test file:

Expand Down Expand Up @@ -128,7 +128,7 @@ Mon Jan 7 15:11:22 MST 2013
{% endhighlight %}


### Summary
## Summary

With `gitcrypt` I can work with a repository and enjoy extra security on top of the redundancy and version control that
`git` provides. The only difference from my regular repos is I can't really view my files from [github.com][1] (with the
Expand Down
8 changes: 4 additions & 4 deletions blog/_posts/2013-01-14-terminating-gearman-workers-in-php.md
Expand Up @@ -25,7 +25,7 @@ developed solution. So, I took an afternoon to figure things out, with the worki
and some of the background below.


### Graceful Termination
## Graceful Termination

For the first part, it was simply a matter of handling a `SIGTERM` signal with PHP's [pcntl module][3] and setting a
termination flag. The main worker loop could then check the flag every time it finished a job and cleanly exit. The
Expand Down Expand Up @@ -65,7 +65,7 @@ $ kill -s TERM 25244
{% endraw %}{% endhighlight %}


### Remote Termination
## Remote Termination

Sometimes it's easier to remotely terminate workers when they need new code or configuration (and allowing a process
manager to restart them). Since Gearman doesn't support sending a job to every single worker, an alternative is to have
Expand Down Expand Up @@ -94,7 +94,7 @@ $ php queue.php _worker_test1 terminate
{% endraw %}{% endhighlight %}


### Batch Remote Termination
## Batch Remote Termination

So now I can remotely terminate workers as needed. However, during deploys it's much more common to ask all the workers
to restart. Using Gearman's [protocol][4] to find running workers I can distribute the termination job and then wait
Expand Down Expand Up @@ -134,7 +134,7 @@ $ php terminate.php
{% endraw %}{% endhighlight %}


### Summary
## Summary

The result is an extra bit of code, but it makes automating tasks, especially around deploys, much easier. This really
just demonstrates one method of creating an internal workers API - termination is just one possibility. Other more
Expand Down
4 changes: 2 additions & 2 deletions blog/_posts/2013-01-21-opengrok-cli.md
Expand Up @@ -12,7 +12,7 @@ search results from the command line (particularly for automated tasks). Since I
command to load and parse results using [symfony/console][3] and [xpath][4].


### Usage
## Usage

It's straightforward to use, just provide the OpenGrok server, project to search, and the query. Mimicking grep, the
output format should look familiar:
Expand All @@ -39,7 +39,7 @@ $ vim $(opengrok-cli --list refs:PHP_MODE_PROCESS_STDIN)
{% endhighlight %}


### Open Source
## Open Source

I published the code to [dpb587/opengrok-cli][5]. Check the `README`, but it's easy to get started:

Expand Down
Expand Up @@ -11,7 +11,7 @@ it, but one annoyance had been to regularly open it up and add postage since it
happen to forget, it ends up blocking things until we notice. I finally got around to scripting that, too.


### Scripted
## Scripted

In real life, whenever the balance gets too low it throws up an alert and you need to click through a few menus, select
a purchase amount, and confirm the selection before the application will continue. Using [System Events][2], it can all
Expand All @@ -26,7 +26,7 @@ With that step automated, it can be tied in with the `endiciatool` output -- whe
automatically kick off the script to buy more postage.


### Summary
## Summary

So now that's one less manual step everybody has to worry about, saving some time and hassle. If you happen to be new to
[Endicia][3], you should check them out (and use the promotional code <code>599888</code>). Their software has been a
Expand Down
8 changes: 4 additions & 4 deletions blog/_posts/2013-02-08-automating-backups-to-the-cloud.md
Expand Up @@ -10,7 +10,7 @@ on maintaining data integrity, security, and availability. One of my current met
secure storage and object versioning to ensure backup data can't undesirably be overwritten.


### Encryption Keys
## Encryption Keys

For encryption and decryption I'm using asymmetric keys via [`gpg`][1]. This way, any server can generate and encrypt
the data, but only administrators who have the private key could actually decrypt the data. Generating the
Expand Down Expand Up @@ -80,7 +80,7 @@ Command> quit
{% endraw %}{% endhighlight %}


### Amazon S3
## Amazon S3

In my case, I wanted to regularly send the encrypted backups offsite and [S3][2] seemed like a flexible, effective
storage place. This involved a couple steps:
Expand Down Expand Up @@ -131,7 +131,7 @@ policy via the [sample][3] policy builder for a particular backup type. My simpl
{% endhighlight %}


### All Together
## All Together

Putting everything together, a single command could be used to backup the database, compress, encrypt, and upload:

Expand Down Expand Up @@ -162,7 +162,7 @@ The only task remaining is creating a cleanup script using the S3 API to monitor
delete them as they expire.


### Summary
## Summary

While it has a bit of overhead to get things set up properly, using `gpg` makes secure backups trivial and S3 provides
the flexible storage strategy to ensure data is safe.
Expand Down
6 changes: 3 additions & 3 deletions blog/_posts/2013-02-19-using-facter-in-ant-scripts.md
Expand Up @@ -9,7 +9,7 @@ After using [puppet][1] for a while I have become use to some of the facts that
working with [ant][3] build scripts, I started wishing I didn't have to generate similar facts myself through various
`exec` calls.

### One Fact
## One Fact

Instead of fragile lookups like...

Expand All @@ -29,7 +29,7 @@ I can simplify it with...
{% endhighlight %}


### In Bulk
## In Bulk

Or I can load all facts with...

Expand All @@ -51,7 +51,7 @@ And reference a fact in my task...
</exec>
{% endhighlight %}

### Summary
## Summary

So now it's much easier to reference environment information from property files (via interpolation), make targets more
conditional, and, of course, within actual tasks.
Expand Down
10 changes: 5 additions & 5 deletions blog/_posts/2013-03-01-a-generic-storage-interface.md
Expand Up @@ -14,7 +14,7 @@ some extensions don't yet support custom wrappers for file access. An alternativ
service-oriented approach to keep my application code independent from the storage configuration.


### Interface
## Interface

At the core of my design, is the asset storage interface which looks something like:

Expand All @@ -37,7 +37,7 @@ The storage engine is responsible for generating a reusable token that can be us
simply have it generate a UUID as the token, however tokens could have storage-specific meaning.
### Sample Storage Engines
## Sample Storage Engines
I've used several base implementations:
Expand All @@ -63,7 +63,7 @@ And since `CachedStorageEngine` is just another implementation of `StorageEngine
interchangeably within the application with performance being the only difference.
### Application Usage
## Application Usage
Using dependency injection, each of the storage backends becomes an independent service, configured depending on the
application requirements. The application then has no storage-specific calls like `copy`, `file_get_contents`, `fopen`,
Expand Down Expand Up @@ -95,7 +95,7 @@ Since `retrieve` will always return a [`SplFileInfo`][5] instance, it can be ref
(as demonstrated by the `open` call in the example.


### Complicating Things
## Complicating Things

The asset storage interface itself is fairly primitive, but it allows for some more complex configurations:

Expand All @@ -109,7 +109,7 @@ The asset storage interface itself is fairly primitive, but it allows for some m
upload time, write it locally and create a job to upload it in the background)


### Summary
## Summary

By abstracting storage logic outside of my application code, it makes my life much more easier as a developer and as a
systems administrator when trying to manage where files are located and any relocations, as necessary.
Expand Down
Expand Up @@ -22,7 +22,7 @@ more detailed review...
<img alt="symfony/console example" height="343" src="/blog-data/2013-03-07-comparing-php-application-definitions/console-diff.png" width="536" />


### Usage
## Usage

If I were upgrading my application with a [`symfony/Console`][1] dependency from `v2.0.22` to `v2.2.0`, I could generate
the diff of definitions with:
Expand All @@ -42,7 +42,7 @@ Take a look at several other reports using the default stylesheet:
* [`zendframework/zf2`][5] (`release-2.0.0` &rarr; `release-2.1.3`)


### Behind the Scenes
## Behind the Scenes

The logic behind the command looks like:

Expand Down Expand Up @@ -134,7 +134,7 @@ And after the initial and final commit are compared, the resulting structured di
{% endhighlight %}


### Going Further
## Going Further

Being able to parse files and have their differences stored in static, semi-agnostic format allows for some interesting
usages:
Expand All @@ -159,7 +159,7 @@ And unlike some of the other tools I ran into, the static representation is not
stylesheet to make it human-friendly. This makes the results potentially reusable for multiple different reports.


### Summary
## Summary

I've published this work-in-progress code to [dpb587/diff-defn.php][13] in case you want to try it out with your own PHP
repositories. It's certainly not a replacement of reading changelogs and understanding what upstream changes are being
Expand Down

0 comments on commit 8c2cd52

Please sign in to comment.