Redesigned blog to mirror business site

- DJS Consulting becomes Bit Badger Solutions
- DJS Consulting Tech Blog becomes The Bit Badger Blog
This commit is contained in:
Daniel J. Summers 2017-10-07 17:52:58 -05:00
parent 7690b4bfd2
commit 3f67de9bfc
78 changed files with 576 additions and 3279 deletions

View File

@ -1,5 +1,5 @@
# techblog.djs-consulting.com
# blog.bitbadger.solutions
Why are you here? [The blog is over there!](https://techblog.djs-consulting.com) :)
Why are you here? [The blog is over there!](https://blog.bitbadger.solutions) :)
_(This is the source code repository for the Hexo version of the blog.)_

View File

@ -3,8 +3,8 @@
## Source: https://github.com/hexojs/hexo/
# Site
title: DJS Consulting Tech Blog
subtitle: Technical Information from DJS Consulting
title: The Bit Badger Blog
subtitle: Technical Information from Bit Badger Solutions
description:
author: Daniel J. Summers
language: en
@ -12,7 +12,7 @@ timezone: UTC
# URL
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
url: https://techblog.djs-consulting.com
url: https://blog.bitbadger.solutions
root: /
permalink: :year/:title.html
permalink_defaults:
@ -83,7 +83,7 @@ pagination_dir: page
# Extensions
## Plugins: https://hexo.io/plugins/
## Themes: https://hexo.io/themes/
theme: mantraish
theme: bit-badger
# Feed
feed:

View File

@ -56,4 +56,4 @@ _These RPMs were built on White Box Enterprise Linux 4 running kernel version 2.
[www.xine-project.org]: //www.xine-project.org "xine Home"
[RSS feed]: /category/hosted-64-bit-software/xine-rpms/feed "Xine RPMs (RSS) • DJS Consulting Tech Blog"
[RSS feed]: /category/hosted-64-bit-software/xine-rpms/feed "Xine RPMs (RSS) • The Bit Badger Blog"

View File

@ -17,5 +17,5 @@ You'll also need a user interface - as of this release, the most current release
(To save disk space, only the current release and two prior releases will be maintained.)
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs • DJS Consulting Tech Blog"
[ui]: /2005/xine-ui-0-99-3-rpm.html
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs • The Bit Badger Blog"
[ui]: /2005/xine-ui-0-99-3-rpm.html "xine-ui 0.99.3 RPM • The Bit Badger Blog"

View File

@ -17,6 +17,6 @@ You'll also need a user interface - as of this release, the most current release
(To save disk space, only the current release and two [prior releases][pri] will be maintained.)
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs • DJS Consulting Tech Blog"
[ui]: /2005/xine-ui-0-99-4-rpm.html
[pri]: /2005/xine-lib-1-0-1-rpm.html
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs • The Bit Badger Blog"
[ui]: /2005/xine-ui-0-99-4-rpm.html "xine-ui 0.99.4 RPM • The Bit Badger Blog"
[pri]: /2005/xine-lib-1-0-1-rpm.html "xine-lib 1.0.1 RPM • The Bit Badger Blog"

View File

@ -17,6 +17,6 @@ You'll also need a user interface - as of this release, the most current release
(To save disk space, only the current release and two [prior releases][pri] will be maintained.)
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs • DJS Consulting Tech Blog"
[ui]: /2005/xine-ui-0-99-4-rpm.html
[pri]: /2005/xine-lib-1-1-0-rpm.html
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs • The Bit Badger Blog"
[ui]: /2005/xine-ui-0-99-4-rpm.html "xine-ui 0.99.4 RPM • The Bit Badger Blog"
[pri]: /2005/xine-lib-1-1-0-rpm.html "xine-lib 1.1.0 RPM • The Bit Badger Blog"

View File

@ -16,5 +16,5 @@ To use this, you'll also need xine-lib - as of this release, the most recent rel
(To save disk space, only the current release and two prior releases will be maintained.)
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs • DJS Consulting Tech Blog"
[lib]: /2005/xine-lib-1-0-1-rpm.html
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs • The Bit Badger Blog"
[lib]: /2005/xine-lib-1-0-1-rpm.html "xine-lib 1.0.1 RPM • The Bit Badger Blog"

View File

@ -16,6 +16,6 @@ To use this, you'll also need xine-lib - as of this release, the most recent rel
(To save disk space, only the current release and two [prior releases][pri] will be maintained.)
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs • DJS Consulting Tech Blog"
[lib]: /2005/xine-lib-1-1-0-rpm.html
[pri]: /2005/xine-ui-0-99-3-rpm.html
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs • The Bit Badger Blog"
[lib]: /2005/xine-lib-1-1-0-rpm.html "xine-lib 1.1.0 RPM • The Bit Badger Blog"
[pri]: /2005/xine-ui-0-99-3-rpm.html "xine-ui 0.99.3 RPM • The Bit Badger Blog"

View File

@ -26,5 +26,5 @@ This works for both "pretty" and standard links, as it uses the template tag [ge
[template]: //codex.wordpress.org/Template_Tags "Template Tags - WordPress Codex"
[cat]: //codex.wordpress.org/Template_Tags/wp_dropdown_categories "wp_dropdown_categories - WordPress Codex"
[personal]: //daniel.summershome.org "Daniel J. Summers"
[this post]: /2007/posting-source-code-in-wordpress-take-2.html "Posting Source Code in WordPress, Take 2 • DJS Consulting Tech Blog"
[this post]: /2007/posting-source-code-in-wordpress-take-2.html "Posting Source Code in WordPress, Take 2 • The Bit Badger Blog"
[link]: //codex.wordpress.org/Function_Reference/get_category_link "get_category_link - WordPress Codex"

View File

@ -27,4 +27,4 @@ Since I have just started using it, I haven't wrung it out, or tested all the op
[Mozilla Sunbird]: //www.mozilla.org/projects/calendar/sunbird/ "Mozilla Sunbird Calendar Project"
[Lightning]: //www.mozilla.org/projects/calendar/lightning/ "Lightning Plug-in for Thunderbird"
[this post]: /2007/mozilla-now-hosting-lightning-64-bit-plug-in.html "Mozilla Now Hosting Lightning 64-bit Plug-In • DJS Consulting Tech Blog"
[this post]: /2007/mozilla-now-hosting-lightning-64-bit-plug-in.html "Mozilla Now Hosting Lightning 64-bit Plug-In • The Bit Badger Blog"

View File

@ -10,10 +10,10 @@ tags:
- category
- lightning
- xine
summary: How to track releases of pre-built open source software hosted by DJS Consulting
summary: How to track releases of pre-built open source software hosted by Bit Badger Solutions
---
At DJS Consulting, we maintain 64-bit builds for two software products - xine and the Lightning plug-in for Thunderbird. These are now shown under "Hosted 64-Bit Software" in the sidebar. You can also view links for each of the categories.
At Bit Badger Solutions, we maintain 64-bit builds for two software products - xine and the Lightning plug-in for Thunderbird. These are now shown under "Hosted 64-Bit Software" in the sidebar. You can also view links for each of the categories.
<del>**Lightning Plug-In**</del> _(UPDATE: See [this post][].)_
@ -26,6 +26,6 @@ At DJS Consulting, we maintain 64-bit builds for two software products - xine an
Along these lines, there will hopefully be a new xine (1.1.7) coming soon - stay tuned!
[this post]: /2007/mozilla-now-hosting-lightning-64-bit-plug-in.html "Mozilla Now Hosting Lightning 64-bit Plug-In &bull; DJS Consulting Tech Blog"
[this post]: /2007/mozilla-now-hosting-lightning-64-bit-plug-in.html "Mozilla Now Hosting Lightning 64-bit Plug-In &bull; The Bit Badger Blog"
[xine-cat]: /category/xine-rpms
[xine-rss]: /xine-rpms.xml

View File

@ -10,7 +10,7 @@ tags:
- welcome
---
Welcome to the DJS Consulting Tech Blog. This blog is a place where I plan to posts tips and other information regarding technology (AKA "geek stuff"). This will allow me to keep [my personal blog][pers] non-technical.
Welcome to The Bit Badger Blog. This blog is a place where I plan to posts tips and other information regarding technology (AKA "geek stuff"). This will allow me to keep [my personal blog][pers] non-technical.
I have imported my old "My Linux Adventure" posts from 2004 here, to allow the to be indexed and searchable. I noticed, in the process, that some of the information is somewhat dated - take it for what it's worth, which is twice what you paid for it!

View File

@ -20,6 +20,6 @@ You'll also need a user interface - as of this release, the most current release
(To save disk space, only the current release and two [prior releases][pri] will be maintained.)
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; DJS Consulting Tech Blog"
[ui]: /2007/xine-ui-0-99-5-rpm.html
[pri]: /2005/xine-lib-1-1-1-rpm.html
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; The Bit Badger Blog"
[ui]: /2007/xine-ui-0-99-5-rpm.html "xine-ui 0.99.5 RPM &bull; The Bit Badger Blog"
[pri]: /2005/xine-lib-1-1-1-rpm.html "xine-lib 1.1.1 RPM &bull; The Bit Badger Blog"

View File

@ -19,6 +19,6 @@ To use this, you'll also need xine-lib - as of this release, the most recent rel
(To save disk space, only the current release and two [prior releases][pri] will be maintained.)
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; DJS Consulting Tech Blog"
[lib]: /2007/xine-lib-1-1-7-rpm.html
[pri]: /2005/xine-ui-0-99-4-rpm.html
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; The Bit Badger Blog"
[lib]: /2007/xine-lib-1-1-7-rpm.html "xine-lib 1.1.7 RPM &bull; The Bit Badger Blog"
[pri]: /2005/xine-ui-0-99-4-rpm.html "xine-ui 0.99.4 RPM &bull; The Bit Badger Blog"

View File

@ -134,5 +134,5 @@ foreach($_POST["area"] as $iArea) {
I think you'll agree that this is much better than spinning through a loop, doing a count on each ID to see if it exists, then either doing an update or an insert based on the count. And, while the implementation here is PHP, it could easily be implemented in any language that supports arrays and database access.
[nsx]: //djs-consulting.com/applications/nsx "Not So Extreme Makeover: Community Edition &bull; DJS Consulting"
[nsx]: //bitbadger.solutions/solutions/nsx "Not So Extreme Makeover: Community Edition &bull; Bit Badger Solutions"
[pdo]: //us.php.net/pdo "PHP Data Objects (PDO)"

View File

@ -17,5 +17,5 @@ Sorry for the lack of new content (although I did download and build the latest
Happy Easter - see you in April!
[nsx]: //djs-consulting.com/applications/nsx "Not So Extreme Makeover: Community Edition &bull; DJS Consulting"
[nsx]: //bitbadger.solutions/solutions/nsx "Not So Extreme Makeover: Community Edition &bull; Bit Badger Solutions"
[pg]: //www.postgresql.org

View File

@ -31,4 +31,4 @@ I haven't tested it with gcj, but using Sun's Java 6 update 7 from the Ubuntu re
[sd]: //www.oracle.com/technology/products/database/sql_developer/index.html "Oracle SQL Developer &bull; Oracle"
[Toad]: //www.toadsoft.com
[alien]: //kitenet.net/~joey/code/alien/
[deb]: //djs-consulting.com/linux/software/sqldeveloper/sqldeveloper_1.5.54.40-2_all.deb "SQL Developer 1.5.1 Debian Package &bull; DJS Consulting Linux Software Repository"
[deb]: //djs-consulting.com/linux/software/sqldeveloper/sqldeveloper_1.5.54.40-2_all.deb "SQL Developer 1.5.1 Debian Package &bull; Bit Badger Solutions Linux Software Repository"

View File

@ -1,6 +1,6 @@
---
layout: post
title: The DJS Consulting Linux Software Repository
title: The Bit Badger Solutions Linux Software Repository
author: Daniel
date: 2008-06-24 21:05:18
categories:
@ -25,7 +25,7 @@ We have created a software repository, where users can browse files that may be
Enjoy!
[repo]: //hosted.djs-consulting.com/software "DJS Consulting Linux Software Repository"
[repo]: //hosted.djs-consulting.com/software "Bit Badger Solutions Linux Software Repository"
[/sled]: //hosted.djs-consulting.com/software/sled "SUSE Linux Enterprise Desktop Add-On Images"
[/opensuse]: //hosted.djs-consulting.com/software/opensuse "openSUSE Add-On Images"
[pcc]: //www.pcc-services.com "PCC Services"

View File

@ -20,6 +20,6 @@ You'll also need a user interface - as of this release, the most current release
(To save disk space, only the current release and two [prior releases][pri] will be maintained.)
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; DJS Consulting Tech Blog"
[ui]: /2007/xine-ui-0-99-5-rpm.html
[pri]: /2008/xine-lib-1-1-9-1-rpm.html
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; The Bit Badger Blog"
[ui]: /2007/xine-ui-0-99-5-rpm.html "xine-ui 0.99.5 RPM &bull; The Bit Badger Blog"
[pri]: /2008/xine-lib-1-1-9-1-rpm.html "xine-lib 1.1.9.1 RPM &bull; The Bit Badger Blog"

View File

@ -20,6 +20,6 @@ You'll also need a user interface - as of this release, the most current release
(To save disk space, only the current release and two [prior releases][pri] will be maintained.)
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; DJS Consulting Tech Blog"
[ui]: /2007/xine-ui-0-99-5-rpm.html
[pri]: /2008/xine-lib-1-1-10-1-rpm.html
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; The Bit Badger Blog"
[ui]: /2007/xine-ui-0-99-5-rpm.html "xine-ui 0.99.5 RPM &bull; The Bit Badger Blog"
[pri]: /2008/xine-lib-1-1-10-1-rpm.html "xine-lib 1.1.10.1 RPM &bull; The Bit Badger Blog"

View File

@ -20,6 +20,6 @@ You'll also need a user interface - as of this release, the most current release
(To save disk space, only the current release and two [prior releases][pri] will be maintained.)
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; DJS Consulting Tech Blog"
[ui]: /2007/xine-ui-0-99-5-rpm.html
[pri]: /2008/xine-lib-1-1-13-rpm.html
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; The Bit Badger Blog"
[ui]: /2007/xine-ui-0-99-5-rpm.html "xine-ui 0.99.5 RPM &bull; The Bit Badger Blog"
[pri]: /2008/xine-lib-1-1-13-rpm.html "xine-lib 1.1.13 RPM &bull; The Bit Badger Blog"

View File

@ -19,6 +19,6 @@ You'll also need a user interface - as of this release, the most current release
(To save disk space, only the current release and two [prior releases][pri] will be maintained.)
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; DJS Consulting Tech Blog"
[ui]: /2007/xine-ui-0-99-5-rpm.html
[pri]: /2007/xine-lib-1-1-7-rpm.html
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; The Bit Badger Blog"
[ui]: /2007/xine-ui-0-99-5-rpm.html "xine-ui 0.99.5 RPM &bull; The Bit Badger Blog"
[pri]: /2007/xine-lib-1-1-7-rpm.html "xine-lib 1.1.7 RPM &bull; The Bit Badger Blog"

View File

@ -21,6 +21,6 @@ You'll also need a user interface - as of this release, the most current release
(To save disk space, only the current release and two [prior releases][pri] will be maintained.)
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; DJS Consulting Tech Blog"
[ui]: /2007/xine-ui-0-99-5-rpm.html
[pri]: /2008/xine-lib-1-1-14-rpm.html
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; The Bit Badger Blog"
[ui]: /2007/xine-ui-0-99-5-rpm.html "xine-ui 0.99.5 RPM &bull; The Bit Badger Blog"
[pri]: /2008/xine-lib-1-1-14-rpm.html "xine-lib 1.1.14 RPM &bull; The Bit Badger Blog"

View File

@ -21,6 +21,6 @@ You'll also need a user interface - as of this release, the most current release
(To save disk space, only the current release and two [prior releases][pri] will be maintained.)
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; DJS Consulting Tech Blog"
[ui]: /2007/xine-ui-0-99-5-rpm.html
[pri]: /2009/xine-lib-1-1-16-1-rpm.html
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; The Bit Badger Blog"
[ui]: /2007/xine-ui-0-99-5-rpm.html "xine-ui 0.99.5 RPM &bull; The Bit Badger Blog"
[pri]: /2009/xine-lib-1-1-16-1-rpm.html "xine-lib 1.1.16.1 RPM &bull; The Bit Badger Blog"

View File

@ -21,6 +21,6 @@ You'll also need a user interface - as of this release, the most current release
(To save disk space, only the current release and two [prior releases][pri] will be maintained.)
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; DJS Consulting Tech Blog"
[ui]: /2007/xine-ui-0-99-5-rpm.html
[pri]: /2009/xine-lib-1-1-16-2-rpm.html
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; The Bit Badger Blog"
[ui]: /2007/xine-ui-0-99-5-rpm.html "xine-ui 0.99.5 RPM &bull; The Bit Badger Blog"
[pri]: /2009/xine-lib-1-1-16-2-rpm.html "xine-lib 1.1.16.2 RPM &bull; The Bit Badger Blog"

View File

@ -16,7 +16,7 @@ tags:
summary: A script that allows Mono web applications to be defined and started the way Apache and nginx enable and disable their sites
---
We've begun running Mono on some DJS Consulting servers to enable us to support the .NET environment, in addition to the PHP environment most of our other applications use. While Ubuntu has nice packages (and Badgerports even <del>brings</del> brought them up to the latest release), one thing that we were missing was a "conf.d"-type of configuration; my "/applications=" clause of the command was getting really, really long. We decided to see if we could create something similar to Apache / Nginx's sites-available/sites-enabled paradigm, and we have succeeded!
We've begun running Mono on some Bit Badger Solutions servers to enable us to support the .NET environment, in addition to the PHP environment most of our other applications use. While Ubuntu has nice packages (and Badgerports even <del>brings</del> brought them up to the latest release), one thing that we were missing was a "conf.d"-type of configuration; my "/applications=" clause of the command was getting really, really long. We decided to see if we could create something similar to Apache / Nginx's sites-available/sites-enabled paradigm, and we have succeeded!
To begin, you'll need to create the directories `/etc/mono/fcgi/apps-available` and `/etc/mono/fcgi/apps-enabled`. These directories will hold files that will be used define applications. The intent of these directories is to put the actual files in `apps-available`, then symlink the ones that are enabled from `apps-enabled`. These files have no name restrictions, but do not put an extra newline character in them. The script will concatenate the contents of that file to create the [MONO_FCGI_APPLICATIONS environment variable][env], which tells the server what applications exist. (The syntax is the same as that for the "/applications=" clause - `[domain]:[URL path]:[filesystem path]`.) Here's how the site you're reading now is configured (from the file `djs-consulting.com.techblog.conf`)...

View File

@ -12,11 +12,11 @@ tags:
summary: A newer version of SQL Developer is available
---
It had been a while since I had updated SQL Developer. It turns out that version 2.1 was released March 1st of this year. I've downloaded it and created a Debian package. It can be [downloaded][deb] from the [DJS Consulting Linux Software Repository][repo].
It had been a while since I had updated SQL Developer. It turns out that version 2.1 was released March 1st of this year. I've downloaded it and created a Debian package. It can be [downloaded][deb] from the [Bit Badger Solutions Linux Software Repository][repo].
I've used it with Sun's Java 6 Update 18; I have not tested it with OpenJDK. If you have problems getting it to work, you may want to check the [previous post][post] on this topic.
[deb]: //hosted.djs-consulting.com/software/sqldeveloper/sqldeveloper_2.1.1.64.39-2_all.deb "Download SQL Developer 2.1 Debian Package"
[repo]: //hosted.djs-consulting.com/software "DJS Consulting Linux Software Repository"
[post]: /2008/oracle-sql-developer-debian-package.html "Oracle SQL Developer Debian Package &bull; DJS Consulting Tech Blog"
[repo]: //hosted.djs-consulting.com/software "Bit Badger Solutions Linux Software Repository"
[post]: /2008/oracle-sql-developer-debian-package.html "Oracle SQL Developer Debian Package &bull; The Bit Badger Blog"

View File

@ -15,14 +15,14 @@ tags:
- wordpress
---
After three years on [WordPress][], the DJS Consulting Tech Blog has moved to [BlogEngine.NET][]. There are several reasons for this change, some technical and some not.
After three years on [WordPress][], The Bit Badger Blog has moved to [BlogEngine.NET][]. There are several reasons for this change, some technical and some not.
* PHP's Fast CGI processor has a problem where, if all of the processes are busy, the server will simply time out. While this hasn't afflicted my server as much as others, it has caused problems; when this problem occurred, none of the PHP sites were accessible.
* Through experience with a very heavily-used site, I became less enamored of WordPress's "read from the database every time" way of doing business. I also found that various caching plug-ins for WordPress, on this particular site, did very little to ease the load.
* Since I first looked at Mono (Linux's implementation of the .NET framework), it has matured significantly. It supports most of C# 4.0 already, which was released earlier this year.
* BlogEngine.NET is a rapidly-maturing blog platform, and the project has a stated goal of 100% compatibility with Mono. This is good, because you can mention Mono problems to the team, and you're not dismissed because you're running Linux.
As part of the move, the URL has changed; the new link is <https://techblog.djs-consulting.com>. I have implemented redirection for each post, the category and category feed links, and the main blog feed and home page from the old URL, so you may not have even realized that you're looking at the new site. The DJS Consulting Software Repository remains at <https://hosted.djs-consulting.com/software/>.
As part of the move, the URL has changed; the new link is <https://blog.bitbadger.solutions>. I have implemented redirection for each post, the category and category feed links, and the main blog feed and home page from the old URL, so you may not have even realized that you're looking at the new site. The Bit Badger Solutions Software Repository remains at <https://hosted.djs-consulting.com/software/>.
I'm looking forward to this new setup!

View File

@ -21,6 +21,6 @@ You'll also need a user interface - as of this release, the most current release
(To save disk space, only the current release and two [prior releases][pri] will be maintained.)
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; DJS Consulting Tech Blog"
[ui]: /2010/xine-ui-0-99-6-rpm.html
[pri]: /2009/xine-lib-1-1-16-3-rpm.html
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; The Bit Badger Blog"
[ui]: /2010/xine-ui-0-99-6-rpm.html "xine-ui 0.99.6 RPM &bull; The Bit Badger Blog"
[pri]: /2009/xine-lib-1-1-16-3-rpm.html "xine-lib 1.1.16.3 RPM &bull; The Bit Badger Blog"

View File

@ -19,6 +19,6 @@ To use this, you'll also need xine-lib - as of this release, the most recent rel
(To save disk space, only the current release and two [prior releases][pri] will be maintained.)
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; DJS Consulting Tech Blog"
[lib]: /2010/xine-lib-1-1-19-rpm.html
[pri]: /2007/xine-ui-0-99-5-rpm.html
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; The Bit Badger Blog"
[lib]: /2010/xine-lib-1-1-19-rpm.html "xine-lib 1.1.19 RPM &bull; The Bit Badger Blog"
[pri]: /2007/xine-ui-0-99-5-rpm.html "xine-ui 0.99.5 RPM &bull; The Bit Badger Blog"

View File

@ -29,16 +29,14 @@ When we began developing C# web applications, we found ourselves in the position
With our PHP applications, we had written a database service that read queries from XML files. Then, queries were accessed by name, with parameters passed via arrays. The one thing that ADO.NET has that was useful was the fact that it is based on interfaces. This means that if we wrote something that exposed, manipulated, and depended on `IDataConnection` (instead of `SqlConnection`, the SQL Server implementation of that interface), we could support any implementation of database. The `SqlDataReader` implements `IDataReader` as well. Our solution was becoming apparent.
Over time, we developed what is now the [Database Abstraction][proj] project hosted on <del>CodePlex</del> _(UPDATE: migrated project to [GitHub][])_. On Thursday, we released the first public release (although the DLLs are in the repository, and are usually current at every commit). If you are looking for a way to separate your data access from the rest of your code, or want a solution that's database-agnostic, check it out. It supports SQL Server, MySQL, PostgreSQL, SQLite, and ODBC connections *, using the data provider name to derive the proper connection to implement. There is also a Mock implementation to support unit tests; this mock can provide data, providing a useful way to test methods. Finally, there is a membership and role provider based on Database Abstraction; simply configure the connection string, create the database tables, and away you go! **
Over time, we developed what is now the Database Abstraction project hosted on <del>CodePlex</del> _(UPDATE: migrated project to [GitHub][])_. On Thursday, we released the first public release (although the DLLs are in the repository, and are usually current at every commit). If you are looking for a way to separate your data access from the rest of your code, or want a solution that's database-agnostic, check it out. It supports SQL Server, MySQL, PostgreSQL, SQLite, and ODBC connections *, using the data provider name to derive the proper connection to implement. There is also a Mock implementation to support unit tests; this mock can provide data, providing a useful way to test methods. Finally, there is a membership and role provider based on Database Abstraction; simply configure the connection string, create the database tables, and away you go! **
A pre-released version is already in production use in our [PrayerTracker][] application, and others are being built around it. If this sounds like something that could help your project, certainly feel free to [check it out][rel]!
A pre-release version is already in production use in our [PrayerTracker][] application, and others are being built around it. If this sounds like something that could help your project, certainly feel free to check it out!
<small>_\* Oracle is omitted from this list, as their DLL had redistribution restrictions; this meant that the source code repository, upon check-out, would have build errors. There may be an Oracle implementation in the future (it would be trivial), but there is not one now._
<small>_\** The membership and role providers are untested; they will be tested and tweaked by version 0.9._</small>
[proj]: //dbabstraction.codeplex.com "Database Abstraction &bull; CodePlex"
[PrayerTracker]: //prayer.djs-consulting.com "PrayerTracker"
[rel]: //dbabstraction.codeplex.com/releases/view/75241 "Database Abstaction v0.8 &bull; Database Abstraction"
[GitHub]: //github.com/danieljsummers/DatabaseAbstraction

View File

@ -41,6 +41,6 @@ Finally, with this update, the blog has received its first new theme. It's a cle
So, there you have it. Enjoy!
[Tech Blog 2.0]: /2010/tech-blog-2-0.html "Tech Blog 2.0 &bull; DJS Consulting Tech Blog"
[Tech Blog 2.0]: /2010/tech-blog-2-0.html "Tech Blog 2.0 &bull; The Bit Badger Blog"
[WordPress]: //wordpress.org "WordPress"
[BlogEngine]: http://dnbe.net/docs/ "BlogEngine.NET"

View File

@ -21,9 +21,9 @@ You'll also need a user interface - as of this release, the most current release
(To save disk space, only the current release and two [prior releases][pri] will be maintained.)
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; DJS Consulting Tech Blog"
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; The Bit Badger Blog"
[xine-lib]: //hosted.djs-consulting.com/software/xine/xine-lib/libxine1-1.1.20-2.x86_64.rpm
[xine-lib-dev]: //hosted.djs-consulting.com/software/xine/xine-lib/libxine-dev-1.1.20-2.x86_64.rpm
[xine-lib-doc]: //hosted.djs-consulting.com/software/xine/xine-lib/libxine1-doc-1.1.20-2.noarch.rpm
[ui]: /2010/xine-ui-0-99-6-rpm.html
[pri]: /2010/xine-lib-1-1-19-rpm.html
[ui]: /2010/xine-ui-0-99-6-rpm.html "xine-ui 0.99.6 RPM &bull; The Bit Badger Blog"
[pri]: /2010/xine-lib-1-1-19-rpm.html "xine-lib 1.1.19 RPM &bull; The Bit Badger Blog"

View File

@ -32,7 +32,7 @@ The REST API start page is <del>at this URL</del> no longer active. The prayer g
There will be a WordPress plug-in shortly that will utilize this to display the current day or hour's prayer guide directly on your blog; we'll make another post when that is available. Also, starting September 26th (the first day of the vigil), it will be available for display with no login required at the Hoffmantown Prayer and [PrayerTracker][pt] websites. Developers, the service is available now; if you want to write code to utilize the service, you've got 3 months to make it work!
[post]: /2010/4040-web-service.html "40/40 Web Service &bull; DJS Consulting Tech Blog"
[post]: /2010/4040-web-service.html "40/40 Web Service &bull; The Bit Badger Blog"
[4040]: //4040prayer.wordpress.com "40/40 Prayer Vigil"
[erlc]: http://erlc.com "Ethics and Religious Liberty Commission"
[pt]: //prayer.djs-consulting.com "PrayerTracker"

View File

@ -17,4 +17,4 @@ Version 2012.0 is the version that's up there now. The Spanish translations of t
[pi]: //wordpress.org/plugins/4040-prayer-vigil/ "40/40 Prayer Vigil &bull; WordPress Plugin Directory"
[post]: /2012/4040-web-service-for-2012.html "40/40 Web Service for 2012 &bull; DJS Consulting Tech Blog"
[post]: /2012/4040-web-service-for-2012.html "40/40 Web Service for 2012 &bull; The Bit Badger Blog"

View File

@ -13,7 +13,7 @@ tags:
Below are the library and development RPMs for xine-lib version 1.1.20.1. These were built on Ubuntu Linux and converted to RPM using alien. Be sure to check out the [About the xine RPMs][abt] post for more information.
[xine-lib][] - The main xine library
[xine-lib-dev][] - The development xine library (needed if you&rsquo;re building an interface against xine-lib)
[xine-lib-dev][] - The development xine library (needed if you're building an interface against xine-lib)
[xine-lib-doc][] - Documentation
You'll also need a user interface - as of this release, the most current release of [xine-ui is 0.99.6][ui].
@ -21,9 +21,9 @@ You'll also need a user interface - as of this release, the most current release
(To save disk space, only the current release and two [prior releases][pri] will be maintained.)
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; DJS Consulting Tech Blog"
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; The Bit Badger Blog"
[xine-lib]: //hosted.djs-consulting.com/software/xine/xine-lib/libxine1-1.1.20.1-2.x86_64.rpm
[xine-lib-dev]: //hosted.djs-consulting.com/software/xine/xine-lib/libxine-dev-1.1.20.1-2.x86_64.rpm
[xine-lib-doc]: //hosted.djs-consulting.com/software/xine/xine-lib/libxine1-doc-1.1.20.1-2.noarch.rpm
[ui]: /2010/xine-ui-0-99-6-rpm.html
[pri]: /2011/xine-lib-1-1-20-rpm.html
[ui]: /2010/xine-ui-0-99-6-rpm.html "xine-ui 0.99.6 RPM &bull; The Bit Badger Blog"
[pri]: /2011/xine-lib-1-1-20-rpm.html "xine-lib 1.1.20 RPM &bull; The Bit Badger Blog"

View File

@ -21,9 +21,9 @@ You'll also need a user interface - as of this release, the most current release
(To save disk space, only the current release and two [prior releases][pri] will be maintained.)
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; DJS Consulting Tech Blog"
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; The Bit Badger Blog"
[xine-lib]: //hosted.djs-consulting.com/software/xine/xine-lib/libxine1-1.1.21-2.x86_64.rpm
[xine-lib-dev]: //hosted.djs-consulting.com/software/xine/xine-lib/libxine-dev-1.1.21-2.x86_64.rpm
[xine-lib-doc]: //hosted.djs-consulting.com/software/xine/xine-lib/libxine1-doc-1.1.21-2.noarch.rpm
[ui]: /2012/xine-ui-0-99-7-rpm.html
[pri]: /2012/xine-lib-1-1-20-1-rpm.html
[ui]: /2012/xine-ui-0-99-7-rpm.html "xine-ui 0.99.7 RPM &bull; The Bit Badger Blog"
[pri]: /2012/xine-lib-1-1-20-1-rpm.html "xine-lib 1.1.20.1 RPM &bull; The Bit Badger Blog"

View File

@ -19,7 +19,7 @@ To use this, you'll also need xine-lib - as of this release, the most recent rel
(To save disk space, only the current release and two [prior releases][pri] will be maintained.)
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; DJS Consulting Tech Blog"
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; The Bit Badger Blog"
[xine-ui]: //hosted.djs-consulting.com/software/xine/xine-ui/xine-ui-0.99.7-2.x86_64.rpm
[lib]: /2012/xine-lib-1-1-21-rpm.html
[pri]: /2010/xine-ui-0-99-6-rpm.html
[lib]: /2012/xine-lib-1-1-21-rpm.html "xine-lib 1.1.21 RPM &bull; The Bit Badger Blog"
[pri]: /2010/xine-ui-0-99-6-rpm.html "xine-ui 0.99.6 RPM &bull; The Bit Badger Blog"

View File

@ -16,9 +16,9 @@ summary: A new version of Oracle's SQL Developer
Oracle has released version 3.2 (.20.09) of their SQL Developer tool. They're still releasing RPMs, so developers on Debian-based systems need to use alien to install it on their machines. We have done that, and have made this available for others to use as well. What makes this particular release of SQL Developer so great is that [it now runs reliably under Java 1.7][java7] - no more keeping a 1.6 JDK floating around just for SQL Developer!
The .deb package [can be downloaded here][deb], or you can browse current and previously posted packages [in the "SQL Developer" directory][dir] of the DJS Consulting Software Repository.
The .deb package [can be downloaded here][deb], or you can browse current and previously posted packages [in the "SQL Developer" directory][dir] of the Bit Badger Solutions Software Repository.
[java7]: //www.thatjeffsmith.com/archive/2013/06/oracle-sql-developer-and-java-7/ "Oracle SQL Developer and Java 7 &bull; That Jeff Smith"
[deb]: //hosted.djs-consulting.com/software/sqldeveloper/sqldeveloper_3.2.20.09.87-2_all.deb "SQL Developer 3.2.20.09 Debian Package"
[dir]: //hosted.djs-consulting.com/software/sqldeveloper/ "SQL Developer &bull; DJS Consulting Linux Software Repository"
[dir]: //hosted.djs-consulting.com/software/sqldeveloper/ "SQL Developer &bull; Bit Badger Solutions Linux Software Repository"

View File

@ -21,8 +21,8 @@ To use this, you'll also need xine-lib - as of this release, the most recent rel
(To save disk space, only the current release and two prior releases will be maintained.)
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; DJS Consulting Tech Blog"
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; The Bit Badger Blog"
[gxine]: //hosted.djs-consulting.com/software/xine/gxine/gxine-0.5.908-2.x86_64.rpm
[gxineplugin]: //hosted.djs-consulting.com/software/xine/gxine/gxineplugin-0.5.908-2.x86_64.rpm
[lib]: /2014/xine-lib-1-2-6-rpm.html
[lib1]: /2012/xine-lib-1-1-21-rpm.html
[lib]: /2014/xine-lib-1-2-6-rpm.html "xine-lib 1.2.6 RPM &bull; The Bit Badger Blog"
[lib1]: /2012/xine-lib-1-1-21-rpm.html "xine-lib 1.1.21 RPM &bull; The Bit Badger Blog"

View File

@ -23,9 +23,9 @@ You'll also need a user interface - as of this release, the most current release
(To save disk space, only the current release and two prior releases in the 1.2-series will be maintained.)
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; DJS Consulting Tech Blog"
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; The Bit Badger Blog"
[xine-lib]: //hosted.djs-consulting.com/software/xine/xine-lib/libxine2-1.2.6-2.x86_64.rpm
[xine-lib-dev]: //hosted.djs-consulting.com/software/xine/xine-lib/libxine2-dev-1.2.6-2.x86_64.rpm
[xine-lib-doc]: //hosted.djs-consulting.com/software/xine/xine-lib/libxine2-doc-1.2.6-2.noarch.rpm
[ui]: /2014/xine-ui-0-99-9-rpm.html "xine-ui 0.99.9 RPM &bull; DJS Consulting Tech Blog"
[gxine]: /2014/gxine-0-5-908-rpm.html "gxine 0.5.908 RPM &bull; DJS Consulting Tech Blog"
[ui]: /2014/xine-ui-0-99-9-rpm.html "xine-ui 0.99.9 RPM &bull; The Bit Badger Blog"
[gxine]: /2014/gxine-0-5-908-rpm.html "gxine 0.5.908 RPM &bull; The Bit Badger Blog"

View File

@ -19,7 +19,7 @@ To use this, you'll also need xine-lib - as of this release, the most recent rel
(To save disk space, only the current release and two [prior releases][pri] will be maintained.)
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; DJS Consulting Tech Blog"
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; The Bit Badger Blog"
[xine-ui]: //hosted.djs-consulting.com/software/xine/xine-ui/xine-ui-0.99.8-2.x86_64.rpm
[lib]: /2012/xine-lib-1-1-21-rpm.html
[pri]: /2012/xine-ui-0-99-7-rpm.html
[lib]: /2012/xine-lib-1-1-21-rpm.html "xine-lib 1.1.21 RPM &bull; The Bit Badger Blog"
[pri]: /2012/xine-ui-0-99-7-rpm.html "xine-ui 0.99.7 RPM &bull; The Bit Badger Blog"

View File

@ -19,8 +19,8 @@ To use this, you'll also need xine-lib - as of this release, the most recent rel
(To save disk space, only the current release and two [prior releases][pri] will be maintained.)
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; DJS Consulting Tech Blog"
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; The Bit Badger Blog"
[xine-ui]: //hosted.djs-consulting.com/software/xine/xine-ui/xine-ui-0.99.9-2.x86_64.rpm
[lib]: /2014/xine-lib-1-2-6-rpm.html
[lib1]: /2012/xine-lib-1-1-21-rpm.html
[pri]: /2014/xine-ui-0-99-8-rpm.html "xine-lib 0.99.8 RPM &bull; DJS Consulting Tech Blog"
[lib]: /2014/xine-lib-1-2-6-rpm.html "xine-lib 1.2.6 RPM &bull; The Bit Badger Blog"
[lib1]: /2012/xine-lib-1-1-21-rpm.html "xine-lib 1.1.21 RPM &bull; The Bit Badger Blog"
[pri]: /2014/xine-ui-0-99-8-rpm.html "xine-lib 0.99.8 RPM &bull; The Bit Badger Blog"

View File

@ -22,13 +22,13 @@ summary: The process we use to regenerate Jekyll sites when a push occurs to a p
As we mentioned in [our last post][v4], we plan to share aspects of how we moved to [Jekyll][]. This is the first of these posts.
# Background
## Background
With a database-based solution, updating is easy; when the user updates content through the user interface, the new content is served when the page or post is requested. However, with a static site, an "update" is technically any change to the underlying files from which the site is generated. Typically, though, this is marked by source control commit and push to a master repository. [GitHub Pages][ghp], the product for which Jekyll was developed, uses this as a flag to regenerate the site. We weren't using GitHub*, though - we were using [Mercurial][hg] (Hg) for our source code control, with the master repository on a different server than the one from which the site is served.
_\* There were a few reasons we did not wish to host our sites using GitHub, none of which are pertinent to how this works._
# Options
## Options
With the need to regenerate the site after each site's master repository receives a push, there were a few different options we considered.
@ -40,7 +40,7 @@ The first option has the potential to run afoul of SSH rate limits, plus has the
Eventually, we decided to go with option 3.
# Script All the Things
## Script All the Things
On the Hg server, in the master repository for each site, we put the following in `.hg/hgrc` _(the following examples are for this site)_:
@ -102,14 +102,14 @@ Finally, each script needs to be run to check for the presence of the semaphore
*/4 * * * * /opt/jobs/jekyll/tech-blog.sh > /dev/null
{% endcodeblock %}
# Conclusion
## Conclusion
Overall, we're pleased with the results. The inter-server communication is light, only requiring one initiated `ssh` connection from each server, so we won't run afoul of rate limits. With the work being done on the destination server, the amount of time where there are no files in the directory (between the `rm -r $DEST/*` and the time the `cp -r * $DEST` finishes) is very short; it would have been much longer if the directory were being repopulated across the network, or more complex if we added a staging area on the web server. Each piece can be run separately, and if we've committed a post with a future date, we can run the same `touch` command to make that post appear.
Next time, we'll discuss our experiences converting a non-WordPress site.
[v4]: /2017/tech-blog-v4.html "Tech Blog v4 &bull; DJS Consulting Tech Blog"
[v4]: /2017/tech-blog-v4.html "Tech Blog v4 &bull; The Bit Badger Blog"
[Jekyll]: //jekyllrb.com "Jekyll"
[ghp]: //pages.github.com "GitHub Pages"
[hg]: //www.mercurial-scm.org "Mercurial (Hg)"

View File

@ -31,6 +31,6 @@ As you can see by hovering over the links in the sidebar, "Programming > .NET >
[Jekyll]: //jekyllrb.com "Jekyll"
[Hexo]: //hexo.io "Hexo"
[gh]: //github.com/danieljsummers/techblog.djs-consulting.com "DJS Consulting Tech Blog &bull; GitHub"
[gh]: //github.com/danieljsummers/blog.bitbadger.solutions "The Bit Badger Blog &bull; GitHub"
[Gitter]: //gitter.im "Gitter"
[iss]: //github.com/hexojs/hexo/issues/908#issuecomment-62913729 "Hexo category_map Issue"

View File

@ -21,6 +21,6 @@ From [August 2011][v3] until today, this site has been running under WordPress.
There will be more to come on Jekyll; there are at least two posts to be written, one on automating the build process and another on the migration from WordPress. Until then, though, there are redirects that ensure the RSS feeds for both the main blog and the xine RPMs require no changes, and the category pages have redirects as well. If something does not look right, let us know via either of the social media accounts linked above.
[v3]: /2011/tech-blog-3-0.html "Tech Blog 3.0 &bull; DJS Consulting Tech Blog"
[v3]: /2011/tech-blog-3-0.html "Tech Blog 3.0 &bull; The Bit Badger Blog"
[Jekyll]: //jekyllrb.com "Jekyll"
[nginx]: //nginx.com "nginx"

View File

@ -2,6 +2,7 @@
layout: post
title: Writing a Hexo Tag Plugin
date: 2017-09-09 23:45:17
author: Daniel
categories:
- [ Programming, JavaScript, Hexo ]
tags:

View File

@ -3,11 +3,11 @@ layout: page
title: Linux Resources
date: 2005-09-01 00:00:00
---
We at DJS Consulting love Linux! Below are the resources we provide.
We at Bit Badger Solutions love Linux! Below are the resources we provide.
* [Installing Linux on an Averatec 6200 Laptop][averatec]
* [xine RPMs for the x86_64 EL Architecture][xine]
* [DJS Consulting Software Repository][repo]
* [Bit Badger Solutions Software Repository][repo]
* [Linux posts][posts] on this blog
[averatec]: /linux/installing-wbel4-rhel4-on-an-averatec-6200-laptop/

View File

@ -8,6 +8,6 @@ The xine RPMs are now distributed through this blog. Information about the RPMs
You can also [view the list of available RPMs][list] or simply [browse the available xine files][browse].
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; DJS Consulting Tech Blog"
[list]: /category/hosted-64-bit-software/xine-rpms/ "&ldquo;xine RPMs&rdquo; Category &bull; DJS Consulting Tech Blog"
[browse]: //hosted.djs-consulting.com/software/xine "xine RPMs &bull; DJS Consulting Software Repository"
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs &bull; The Bit Badger Blog"
[list]: /category/hosted-64-bit-software/xine-rpms/ "&ldquo;xine RPMs&rdquo; Category &bull; The Bit Badger Blog"
[browse]: //hosted.djs-consulting.com/software/xine "xine RPMs &bull; Bit Badger Solutions Software Repository"

View File

@ -0,0 +1,9 @@
footer
span.
A production of #[a(href='https://bitbadger.solutions' title='Bit Badger Solutions') Bit Badger Solutions]
span.
Generated by #[a(href='//hexo.io' title='Hexo') Hexo]
span.
Served by #[a(href='//www.nginx.com' title='nginx') nginx]
span.
Secured by #[a(href='https://letsencrypt.org' title!='Let&rsquo;s Encrypt') Let&rsquo;s Encrypt]

View File

@ -0,0 +1,17 @@
header
.header-logo
a(href='/')
img(src='/img/bitbadger.png'
alt='A cartoon badger looking at a computer screen, with his paw on a mouse'
title='Bit Badger Solutions')
.header-title: a(href='/') The Bit Badger Blog
.header-spacer &nbsp;
.header-social
a(href='/feed.xml' title='Subscribe to The Bit Badger Blog via RSS')
img(src='/img/rss.png' alt='RSS')
| &nbsp; &nbsp;
a(href='https://twitter.com/DJS_Consulting' title='DJS_Consulting on Twitter')
img(src='/img/twitter.png' alt='Twitter' )
| &nbsp; &nbsp;
a(href='https://www.facebook.com/pages/DJS-Consulting/262368048575' title='DJS Consulting on Facebook')
img(src='/img/facebook.png' alt='Facebook')

View File

@ -0,0 +1,9 @@
- var it = post || page
if it.tags && it.tags.length > 0
small
= 'Tagged '
- var tags = it.tags.toArray().sort((a, b) => a.name < b.name ? -1 : a.name > b.name ? 1 : 0)
for tag in tags
a(href=url_for(tag.path) title='Posts tagged "' + tag.name + '"' rel='tag')= tag.name
if tags.indexOf(tag) < (tags.length - 1)
= ', '

View File

@ -0,0 +1,7 @@
.blog-sidebar
div
.sidebar-head Linux Resources
ul: li: a(href='/linux') Browse Resources
div
.sidebar-head Categories
!= list_categories({ class: 'cat' })

View File

@ -0,0 +1,9 @@
doctype html
html(lang=config.language)
include _partial/head.pug
body
include _partial/header.pug
.content-wrapper
#content(role='main'): block content
include _partial/sidebar.pug
include _partial/footer.pug

View File

@ -0,0 +1,53 @@
extends base
block title
if page.category
= page.category
!= ' &laquo; '
= config.title
else
if page.tag
!= '&ldquo;'
= page.tag
!= '&rdquo; Tag &laquo; '
= config.title
else
if config.subtitle
= config.title + ' | ' + config.subtitle
else
= config.title
block content
if page.tag || page.category
h1
if page.category
| Posts categorized &ldquo;
= page.category
| &rdquo;
else
| Posts tagged &ldquo;
= page.tag
| &rdquo;
hr.home-break
for post in page.posts.toArray()
article.auto
div
h1.home-title.
#[small.home-lead= post.date.format('MMMM D, YYYY')]#[br]
&nbsp; #[a(href=url_for(post.path) title='Permalink to ' + post.title)!= post.title]
.entry-content!= post.content
small
= 'Categorized under '
include _partial/post-categories.pug
br
include _partial/post-tags.pug
br
hr.home-break
.bottom-nav(role='navigation')
.nav-previous
if page.prev
a(href=url_for(page.prev_link)) &laquo; Newer Posts
.nav-next
if page.next
a(href=url_for(page.next_link)) Older Posts &raquo;

View File

@ -6,6 +6,6 @@ block title
= config.title
block content
.post.single.hentry
article.auto
h1.entry-title= page.title
.entry-content!= page.content

View File

@ -6,30 +6,27 @@ block title
= config.title
block content
.post.single.hentry
article.auto
h1.entry-title= page.title
.entry-meta
| &nbsp;
span.author.vcard.
By #[= page.author] #[span.bl_sep= '| ']
span.ondate: span.entry-date.
#[= page.date.format('MMMM D, YYYY')] at #[= page.date.format('h:mm a')] #[span.bl_sep= '| ']
span.bl_categ
br
span.entry-meta
= 'Posted by ' + page.author + ' on ' + page.date.format('MMMM D, YYYY') + ' at '+ page.date.format('h:mm a')
br
= 'Categorized under '
include _partial/post-categories.pug
.entry-content!= page.content
.entry-utility
span.bl_posted
include _partial/post-tags.pug
.entry-footer
include _partial/post-tags.pug
if page.tags && page.tags.length > 0
span.bl_sep= ' | '
span.bl_bookmark.
small!= ' &bull; '
small.
Bookmark the #[a(title='Permanent link to ' + page.title href=url_for(page.path) rel='bookmark') permalink].
#nav-below.navigation
.bottom-nav(role='navigation')
.nav-previous
if page.prev
a(href=url_for(page.prev_link ? page.prev_link : page.prev.path) title='Previous Post - ' + page.prev.title).
#[span.meta-nav &laquo;] #[= page.prev.title]
&laquo; #[= page.prev.title]
.nav-next
if page.next
a(href=url_for(page.next_link ? page.next_link : page.next.path) title='Next Post - ' + page.next.title).
#[= page.next.title] #[span.meta-name &raquo;]
#[= page.next.title] &raquo;

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -0,0 +1,342 @@
@import url('https://fonts.googleapis.com/css?family=Oswald|Raleway');
html {
background-color: lightgray;
}
body, .entry-meta {
font-family: "Raleway", "Segoe UI", Ubuntu, Tahoma, "DejaVu Sans", "Liberation Sans", Arial, sans-serif;
}
body {
margin: 0px;
background-color: #FFFAFA;
}
a {
color: navy;
text-decoration: none;
}
a:hover {
border-bottom: dotted 1px navy;
}
a img {
border:0;
}
acronym {
border-bottom:dotted 1px black;
}
header, h1, h2, h3, footer a, .home-lead a, .highlight {
font-family: "Oswald", "Segoe UI", Ubuntu, "DejaVu Sans", "Liberation Sans", Arial, sans-serif;
}
h1 {
text-align: center;
margin: 1.4rem 0;
font-size: 2rem;
}
h2 {
margin: 1.2rem 0;
}
h3 {
margin: 1rem 0;
}
h2, h3 {
width: 80%;
border-bottom: solid 2px navy;
}
p {
margin: 1rem 0;
}
.hdr {
font-size: 14pt;
font-weight: bold;
}
header {
height: 100px;
display: flex;
flex-direction: row;
justify-content: space-between;
background-image: -webkit-gradient(linear, left top, left bottom, from(lightgray), to(#FFFAFA));
background-image: -webkit-linear-gradient(top, lightgray, #FFFAFA);
background-image: -moz-linear-gradient(top, lightgray, #FFFAFA);
background-image: linear-gradient(to bottom, lightgray, #FFFAFA);
}
header a:link, header a:visited {
color: black;
}
header a:hover {
border-bottom:none;
}
.content-item {
padding-left: 5px;
padding-right: 5px;
font-size: 1rem;
}
article.page .metadata {
display: none;
}
.strike {
text-decoration: line-through;
}
footer {
padding: 20px 15px 10px 15px;
display: flex;
flex-direction: row;
justify-content: space-between;
font-size: 1rem;
color: black;
clear: both;
background-image: -webkit-gradient(linear, left top, left bottom, from(#FFFAFA), to(lightgray));
background-image: -webkit-linear-gradient(top, #FFFAFA, lightgray);
background-image: -moz-linear-gradient(top, #FFFAFA, lightgray);
background-image: linear-gradient(to bottom, #FFFAFA, lightgray);
}
footer a:link, footer a:visited {
color: black;
}
.alignleft {
float:left;
padding-right: 5px;
}
ul {
padding-left: 40px;
}
li {
list-style-type: disc;
}
.header-title {
font-size: 3rem;
font-weight: bold;
line-height: 100px;
}
.header-spacer {
flex-grow: 3;
}
.header-social {
padding: 25px .8rem 0 0;
}
.header-social img {
width: 50px;
height: 50px;
}
.content-wrapper {
margin: 0 1rem;
}
@media all and (min-width: 80rem) {
.content-wrapper {
margin: 0;
display: flex;
flex-flow: row;
align-items: flex-start;
justify-content: space-around;
}
}
.home-title {
text-align: left;
line-height: 2rem;
}
.home-lead {
font-family: "Raleway", "Segoe UI", Ubuntu, Tahoma, "DejaVu Sans", "Liberation Sans", Arial, sans-serif;
font-size: 1.2rem;
}
.home-break {
width: 80%;
border: dotted 1px lightgray;
border-bottom: 0;
}
.blog-sidebar {
border-top: dotted 1px lightgray;
padding-top: 1rem;
font-size: 1rem;
display: flex;
flex-flow: row wrap;
justify-content: space-around;
}
.blog-sidebar ul {
padding-left: 1rem;
}
.blog-sidebar > ul {
padding: 0;
margin: 0;
}
.blog-sidebar li {
list-style: none;
}
.blog-sidebar li:before {
content: '» ';
}
@media all and (min-width: 68rem) {
.blog-sidebar {
width: 66rem;
margin: auto;
}
}
@media all and (min-width: 80rem) {
.blog-sidebar {
width: 12rem;
border-top: none;
border-left: dotted 1px lightgray;
padding-top: 0;
padding-left: 2rem;
margin: 0;
flex-direction: column;
}
}
.blog-sidebar a {
font-size: 10pt;
font-family: sans-serif;
}
.sidebar-head {
text-align: center;
font-family: "Oswald", "Segoe UI", Ubuntu, "DejaVu Sans", "Liberation Sans", Arial, sans-serif;
font-weight: bold;
color: maroon;
margin-bottom: .8rem;
padding: 3px 12px;
border-bottom: solid 2px lightgray;
font-size: 1rem;
}
.app-sidebar-name, .app-sidebar-description {
margin: 0;
padding: 0;
}
.app-sidebar-description {
font-style: italic;
color: #555555;
padding-bottom: .6rem;
}
.content {
font-size: 1.1rem;
}
.auto {
margin: 0 auto;
}
.auto > div {
max-width: 66rem;
}
@media all and (min-width: 68rem) {
.content {
width: 66rem;
}
}
.entry-title {
line-height: 1.5rem;
}
.entry-meta {
font-size: 1rem;
}
.cat-list-count {
padding-left: .3rem;
font-size: .8rem;
}
.cat-list-count:before {
content: '(';
}
.cat-list-count:after {
content: ')';
}
.bottom-nav {
display: flex;
flex-flow: row wrap;
justify-content: space-between;
padding-top: 1.5rem;
}
figure.highlight {
background-color: #F8F8F8;
}
figure.highlight table {
background-color: #002b36;
width: 100%;
}
figure.highlight td.gutter,
figure.highlight td.code,
figure.highlight pre {
padding: 0;
border: 0;
background-color: #002b36;
color: #839496;
}
figure.highlight td.gutter {
text-align:right;
padding-right: .4rem;
}
figure.highlight td.gutter div.line:after {
content: ':';
color: #586e75;
}
figure.highlight td.code pre div.line:after {
content: '.';
visibility: hidden;
}
figure.highlight pre div.line,
figure.highlight pre div.line > * {
font-family: Consolas,"Courier New",Courier,monospace !important;
}
figure.highlight {
display: block;
overflow-x: auto;
padding: 0.5em;
color: #839496;
border:1px dashed #ddd;
}
figure.highlight .comment,
figure.highlight .quote {
color: #586e75;
}
/* Solarized Green */
figure.highlight .keyword,
figure.highlight .selector-tag,
figure.highlight .addition {
color: #859900;
}
/* Solarized Cyan */
figure.highlight .number,
figure.highlight .string,
figure.highlight .meta .meta-string,
figure.highlight .literal,
figure.highlight .doctag,
figure.highlight .regexp {
color: #2aa198;
}
/* Solarized Blue */
figure.highlight .title,
figure.highlight .section,
figure.highlight .name,
figure.highlight .selector-id,
figure.highlight .selector-class {
color: #268bd2;
}
/* Solarized Yellow */
figure.highlight .attribute,
figure.highlight .attr,
figure.highlight .variable,
figure.highlight .template-variable,
figure.highlight .class .title,
figure.highlight .type {
color: #b58900;
}
/* Solarized Orange */
figure.highlight .symbol,
figure.highlight .bullet,
figure.highlight .subst,
figure.highlight .meta,
figure.highlight .meta .keyword,
figure.highlight .selector-attr,
figure.highlight .selector-pseudo,
figure.highlight .link {
color: #cb4b16;
}
/* Solarized Red */
figure.highlight .built_in,
figure.highlight .deletion {
color: #dc322f;
}
figure.highlight .formula {
background: #eee8d5;
}
figure.highlight .emphasis {
font-style: italic;
}
figure.highlight .strong {
font-weight: bold;
}

View File

@ -1,13 +0,0 @@
footer#footer(role='contentinfo')
#footer2
#site-copyright.
A production of #[a(href='//djs-consulting.com' title='Your Web Design and Application Solution Source') DJS Consulting]
| Design Inspired by #[a(target='_blank' href='//www.cryoutcreations.eu' title='Mantra Theme by Cryout Creations') Mantra]
div(style='text-align:center;clear:both;padding-top:4px;').
#[a(href='/' title='DJS Consulting Tech Blog' rel='home') DJS Consulting Tech Blog] | Generated by
#[a(href='//hexo.io' title='Hexo') Hexo] | Served by #[a(href='//www.nginx.com' title='nginx') nginx] | Secured by
#[a(href='//letsencrypt.org') Let's Encrypt]
#sfooter.socials
a(target='_blank' rel='nofollow' href='/feed.xml' class='socialicons social-RSS' title='RSS'): img(alt='RSS' src='/img/social-rss.png')
a(target='_blank' rel='nofollow' href='//twitter.com/DJS_Consulting' class='socialicons social-Twitter' title='Twitter'): img(alt='Twitter' src='/img/social-twitter.png')
a(target='_blank' rel='nofollow' href='//www.facebook.com/pages/DJS-Consulting/262368048575' class='socialicons social-Facebook' title='Facebook'): img(alt='Facebook' src='/img/social-facebook.png')

View File

@ -1,18 +0,0 @@
header#header
#masthead
#branding(role='banner')
#header-container
div(style='margin-top:0;')
h1#site-title: a(href='/' title=site.title rel='home')= config.title
#site-description= config.subtitle
#sheader.socials
a(target='_blank' rel='nofollow' href='/feed.xml' class='socialicons social-RSS' title='RSS'): img(alt='RSS' src='/img/social-rss.png')
a(target='_blank' rel='nofollow' href='//twitter.com/DJS_Consulting' class='socialicons social-Twitter' title='Twitter'): img(alt='Twitter' src='/img/social-twitter.png')
a(target='_blank' rel='nofollow' href='//www.facebook.com/pages/DJS-Consulting/262368048575' class='socialicons social-Facebook' title='Facebook'): img(alt='Facebook' src='/img/social-facebook.png')
div(style='clear:both;')
nav#access.jssafe(role='navigation')
.skip-link.screen-reader-text: a(href='#content' title='Skip to content') Skip to content
#prime_nav.menu: ul
li: a(href='/') Home
li: a(href='/linux/') Linux Resources
div(style='clear:both;')

View File

@ -1,8 +0,0 @@
- var it = post || page
if it.tags && it.tags.length > 0
= 'Tagged '
- var tags = it.tags.toArray().sort((a, b) => a.name < b.name ? -1 : a.name > b.name ? 1 : 0)
for tag in tags
a(href=url_for(tag.path) title='Posts tagged "' + tag.name + '"' rel='tag')= tag.name
if tags.indexOf(tag) < (tags.length - 1)
= ', '

View File

@ -1,5 +0,0 @@
#primary.widget-area(role='complementary')
ul.xoxo
li.widget-container.widget_categories
h3.widget-title Categories
!= list_categories({ class: 'cat' })

View File

@ -1,13 +0,0 @@
doctype html
html(lang=config.language)
include _partial/head.pug
body
#toTop
#wrapper.hfeed
include _partial/header.pug
#main
#forbottom
section#container
#content(role='main'): block content
include _partial/sidebar.pug
include _partial/footer.pug

View File

@ -1,65 +0,0 @@
extends base
block title
if page.category
= page.category
!= ' &laquo; '
= config.title
else
if page.tag
!= '&ldquo;'
= page.tag
!= '&rdquo; Tag &laquo; '
= config.title
else
if config.subtitle
= config.title + ' | ' + config.subtitle
else
= config.title
block content
if page.tag || page.category
h1
if page.category
| Posts categorized &ldquo;
= page.category
| &rdquo;
else
| Posts tagged &ldquo;
= page.tag
| &rdquo;
hr
for post in page.posts.toArray()
article.post
header.entry-header
hgroup: h2.entry-title: a(href=url_for(post.path) title='Permalink to ' + post.title)!= post.title
.entry-meta
| &nbsp;&nbsp;
span.author.vcard
| By&nbsp;
= post.author
span.bl_sep &nbsp;|&nbsp;
span.ondate
span.entry-date.
#[= post.date.format('MMMM D, YYYY')] at #[= post.date.format('h:mm a')]
#[span.bl_sep |]
span.bl_categ
= ' '
include _partial/post-categories.pug
.entry-content!= post.content
footer.entry-meta2
span.bl_tagg
include _partial/post-tags.pug
br
#nav-below.navigation
.nav-previous
if page.prev
a(href=url_for(page.prev_link))
span.meta-nav &laquo;
| &nbsp;Newer Posts
.nav-next
if page.next
a(href=url_for(page.next_link))
| Older Posts&nbsp;
span.meta-nav &raquo;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 280 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 390 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 501 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

File diff suppressed because it is too large Load Diff