Redesigned blog to mirror business site
- DJS Consulting becomes Bit Badger Solutions - DJS Consulting Tech Blog becomes The Bit Badger Blog
|
@ -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.)_
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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 • 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"
|
||||
[xine-cat]: /category/xine-rpms
|
||||
[xine-rss]: /xine-rpms.xml
|
||||
|
|
|
@ -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!
|
||||
|
||||
|
|
|
@ -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 • 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 • The Bit Badger Blog"
|
||||
[ui]: /2007/xine-ui-0-99-5-rpm.html "xine-ui 0.99.5 RPM • The Bit Badger Blog"
|
||||
[pri]: /2005/xine-lib-1-1-1-rpm.html "xine-lib 1.1.1 RPM • The Bit Badger Blog"
|
||||
|
|
|
@ -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 • 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 • The Bit Badger Blog"
|
||||
[lib]: /2007/xine-lib-1-1-7-rpm.html "xine-lib 1.1.7 RPM • The Bit Badger Blog"
|
||||
[pri]: /2005/xine-ui-0-99-4-rpm.html "xine-ui 0.99.4 RPM • The Bit Badger Blog"
|
||||
|
|
|
@ -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 • DJS Consulting"
|
||||
[nsx]: //bitbadger.solutions/solutions/nsx "Not So Extreme Makeover: Community Edition • Bit Badger Solutions"
|
||||
[pdo]: //us.php.net/pdo "PHP Data Objects (PDO)"
|
||||
|
|
|
@ -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 • DJS Consulting"
|
||||
[nsx]: //bitbadger.solutions/solutions/nsx "Not So Extreme Makeover: Community Edition • Bit Badger Solutions"
|
||||
[pg]: //www.postgresql.org
|
||||
|
|
|
@ -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 • 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 • 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 • Bit Badger Solutions Linux Software Repository"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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 • 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 • The Bit Badger Blog"
|
||||
[ui]: /2007/xine-ui-0-99-5-rpm.html "xine-ui 0.99.5 RPM • The Bit Badger Blog"
|
||||
[pri]: /2008/xine-lib-1-1-9-1-rpm.html "xine-lib 1.1.9.1 RPM • The Bit Badger Blog"
|
||||
|
|
|
@ -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 • 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 • The Bit Badger Blog"
|
||||
[ui]: /2007/xine-ui-0-99-5-rpm.html "xine-ui 0.99.5 RPM • The Bit Badger Blog"
|
||||
[pri]: /2008/xine-lib-1-1-10-1-rpm.html "xine-lib 1.1.10.1 RPM • The Bit Badger Blog"
|
||||
|
|
|
@ -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 • 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 • The Bit Badger Blog"
|
||||
[ui]: /2007/xine-ui-0-99-5-rpm.html "xine-ui 0.99.5 RPM • The Bit Badger Blog"
|
||||
[pri]: /2008/xine-lib-1-1-13-rpm.html "xine-lib 1.1.13 RPM • The Bit Badger Blog"
|
||||
|
|
|
@ -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 • 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 • The Bit Badger Blog"
|
||||
[ui]: /2007/xine-ui-0-99-5-rpm.html "xine-ui 0.99.5 RPM • The Bit Badger Blog"
|
||||
[pri]: /2007/xine-lib-1-1-7-rpm.html "xine-lib 1.1.7 RPM • The Bit Badger Blog"
|
||||
|
|
|
@ -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 • 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 • The Bit Badger Blog"
|
||||
[ui]: /2007/xine-ui-0-99-5-rpm.html "xine-ui 0.99.5 RPM • The Bit Badger Blog"
|
||||
[pri]: /2008/xine-lib-1-1-14-rpm.html "xine-lib 1.1.14 RPM • The Bit Badger Blog"
|
||||
|
|
|
@ -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 • 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 • The Bit Badger Blog"
|
||||
[ui]: /2007/xine-ui-0-99-5-rpm.html "xine-ui 0.99.5 RPM • The Bit Badger Blog"
|
||||
[pri]: /2009/xine-lib-1-1-16-1-rpm.html "xine-lib 1.1.16.1 RPM • The Bit Badger Blog"
|
||||
|
|
|
@ -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 • 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 • The Bit Badger Blog"
|
||||
[ui]: /2007/xine-ui-0-99-5-rpm.html "xine-ui 0.99.5 RPM • The Bit Badger Blog"
|
||||
[pri]: /2009/xine-lib-1-1-16-2-rpm.html "xine-lib 1.1.16.2 RPM • The Bit Badger Blog"
|
||||
|
|
|
@ -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`)...
|
||||
|
||||
|
|
|
@ -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 • 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 • The Bit Badger Blog"
|
||||
|
|
|
@ -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!
|
||||
|
||||
|
|
|
@ -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 • 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 • The Bit Badger Blog"
|
||||
[ui]: /2010/xine-ui-0-99-6-rpm.html "xine-ui 0.99.6 RPM • The Bit Badger Blog"
|
||||
[pri]: /2009/xine-lib-1-1-16-3-rpm.html "xine-lib 1.1.16.3 RPM • The Bit Badger Blog"
|
||||
|
|
|
@ -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 • 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 • The Bit Badger Blog"
|
||||
[lib]: /2010/xine-lib-1-1-19-rpm.html "xine-lib 1.1.19 RPM • The Bit Badger Blog"
|
||||
[pri]: /2007/xine-ui-0-99-5-rpm.html "xine-ui 0.99.5 RPM • The Bit Badger Blog"
|
||||
|
|
|
@ -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 • CodePlex"
|
||||
[PrayerTracker]: //prayer.djs-consulting.com "PrayerTracker"
|
||||
[rel]: //dbabstraction.codeplex.com/releases/view/75241 "Database Abstaction v0.8 • Database Abstraction"
|
||||
[GitHub]: //github.com/danieljsummers/DatabaseAbstraction
|
||||
|
|
|
@ -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 • DJS Consulting Tech Blog"
|
||||
[Tech Blog 2.0]: /2010/tech-blog-2-0.html "Tech Blog 2.0 • The Bit Badger Blog"
|
||||
[WordPress]: //wordpress.org "WordPress"
|
||||
[BlogEngine]: http://dnbe.net/docs/ "BlogEngine.NET"
|
||||
|
|
|
@ -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 • DJS Consulting Tech Blog"
|
||||
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs • 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 • The Bit Badger Blog"
|
||||
[pri]: /2010/xine-lib-1-1-19-rpm.html "xine-lib 1.1.19 RPM • The Bit Badger Blog"
|
||||
|
|
|
@ -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 • DJS Consulting Tech Blog"
|
||||
[post]: /2010/4040-web-service.html "40/40 Web Service • 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"
|
||||
|
|
|
@ -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 • WordPress Plugin Directory"
|
||||
[post]: /2012/4040-web-service-for-2012.html "40/40 Web Service for 2012 • DJS Consulting Tech Blog"
|
||||
[post]: /2012/4040-web-service-for-2012.html "40/40 Web Service for 2012 • The Bit Badger Blog"
|
||||
|
|
|
@ -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’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 • DJS Consulting Tech Blog"
|
||||
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs • 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 • The Bit Badger Blog"
|
||||
[pri]: /2011/xine-lib-1-1-20-rpm.html "xine-lib 1.1.20 RPM • The Bit Badger Blog"
|
||||
|
|
|
@ -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 • DJS Consulting Tech Blog"
|
||||
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs • 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 • The Bit Badger Blog"
|
||||
[pri]: /2012/xine-lib-1-1-20-1-rpm.html "xine-lib 1.1.20.1 RPM • The Bit Badger Blog"
|
||||
|
|
|
@ -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 • DJS Consulting Tech Blog"
|
||||
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs • 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 • The Bit Badger Blog"
|
||||
[pri]: /2010/xine-ui-0-99-6-rpm.html "xine-ui 0.99.6 RPM • The Bit Badger Blog"
|
||||
|
|
|
@ -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 • 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 • DJS Consulting Linux Software Repository"
|
||||
[dir]: //hosted.djs-consulting.com/software/sqldeveloper/ "SQL Developer • Bit Badger Solutions Linux Software Repository"
|
||||
|
|
|
@ -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 • DJS Consulting Tech Blog"
|
||||
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs • 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 • The Bit Badger Blog"
|
||||
[lib1]: /2012/xine-lib-1-1-21-rpm.html "xine-lib 1.1.21 RPM • The Bit Badger Blog"
|
||||
|
|
|
@ -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 • DJS Consulting Tech Blog"
|
||||
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs • 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 • DJS Consulting Tech Blog"
|
||||
[gxine]: /2014/gxine-0-5-908-rpm.html "gxine 0.5.908 RPM • DJS Consulting Tech Blog"
|
||||
[ui]: /2014/xine-ui-0-99-9-rpm.html "xine-ui 0.99.9 RPM • The Bit Badger Blog"
|
||||
[gxine]: /2014/gxine-0-5-908-rpm.html "gxine 0.5.908 RPM • The Bit Badger Blog"
|
||||
|
|
|
@ -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 • DJS Consulting Tech Blog"
|
||||
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs • 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 • The Bit Badger Blog"
|
||||
[pri]: /2012/xine-ui-0-99-7-rpm.html "xine-ui 0.99.7 RPM • The Bit Badger Blog"
|
||||
|
|
|
@ -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 • DJS Consulting Tech Blog"
|
||||
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs • 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 • DJS Consulting Tech Blog"
|
||||
[lib]: /2014/xine-lib-1-2-6-rpm.html "xine-lib 1.2.6 RPM • The Bit Badger Blog"
|
||||
[lib1]: /2012/xine-lib-1-1-21-rpm.html "xine-lib 1.1.21 RPM • The Bit Badger Blog"
|
||||
[pri]: /2014/xine-ui-0-99-8-rpm.html "xine-lib 0.99.8 RPM • The Bit Badger Blog"
|
||||
|
|
|
@ -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 • DJS Consulting Tech Blog"
|
||||
[v4]: /2017/tech-blog-v4.html "Tech Blog v4 • The Bit Badger Blog"
|
||||
[Jekyll]: //jekyllrb.com "Jekyll"
|
||||
[ghp]: //pages.github.com "GitHub Pages"
|
||||
[hg]: //www.mercurial-scm.org "Mercurial (Hg)"
|
||||
|
|
|
@ -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 • GitHub"
|
||||
[gh]: //github.com/danieljsummers/blog.bitbadger.solutions "The Bit Badger Blog • GitHub"
|
||||
[Gitter]: //gitter.im "Gitter"
|
||||
[iss]: //github.com/hexojs/hexo/issues/908#issuecomment-62913729 "Hexo category_map Issue"
|
||||
|
|
|
@ -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 • DJS Consulting Tech Blog"
|
||||
[v3]: /2011/tech-blog-3-0.html "Tech Blog 3.0 • The Bit Badger Blog"
|
||||
[Jekyll]: //jekyllrb.com "Jekyll"
|
||||
[nginx]: //nginx.com "nginx"
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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/
|
||||
|
|
|
@ -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 • DJS Consulting Tech Blog"
|
||||
[list]: /category/hosted-64-bit-software/xine-rpms/ "“xine RPMs” Category • DJS Consulting Tech Blog"
|
||||
[browse]: //hosted.djs-consulting.com/software/xine "xine RPMs • DJS Consulting Software Repository"
|
||||
[abt]: /2005/about-the-xine-rpms.html "About the xine RPMs • The Bit Badger Blog"
|
||||
[list]: /category/hosted-64-bit-software/xine-rpms/ "“xine RPMs” Category • The Bit Badger Blog"
|
||||
[browse]: //hosted.djs-consulting.com/software/xine "xine RPMs • Bit Badger Solutions Software Repository"
|
||||
|
|
9
themes/bit-badger/layout/_partial/footer.pug
Normal 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’s Encrypt') Let’s Encrypt]
|
17
themes/bit-badger/layout/_partial/header.pug
Normal 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
|
||||
.header-social
|
||||
a(href='/feed.xml' title='Subscribe to The Bit Badger Blog via RSS')
|
||||
img(src='/img/rss.png' alt='RSS')
|
||||
|
|
||||
a(href='https://twitter.com/DJS_Consulting' title='DJS_Consulting on Twitter')
|
||||
img(src='/img/twitter.png' alt='Twitter' )
|
||||
|
|
||||
a(href='https://www.facebook.com/pages/DJS-Consulting/262368048575' title='DJS Consulting on Facebook')
|
||||
img(src='/img/facebook.png' alt='Facebook')
|
9
themes/bit-badger/layout/_partial/post-tags.pug
Normal 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)
|
||||
= ', '
|
7
themes/bit-badger/layout/_partial/sidebar.pug
Normal 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' })
|
9
themes/bit-badger/layout/base.pug
Normal 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
|
53
themes/bit-badger/layout/index.pug
Normal file
|
@ -0,0 +1,53 @@
|
|||
extends base
|
||||
|
||||
block title
|
||||
if page.category
|
||||
= page.category
|
||||
!= ' « '
|
||||
= config.title
|
||||
else
|
||||
if page.tag
|
||||
!= '“'
|
||||
= page.tag
|
||||
!= '” Tag « '
|
||||
= 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 “
|
||||
= page.category
|
||||
| ”
|
||||
else
|
||||
| Posts tagged “
|
||||
= page.tag
|
||||
| ”
|
||||
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]
|
||||
#[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)) « Newer Posts
|
||||
.nav-next
|
||||
if page.next
|
||||
a(href=url_for(page.next_link)) Older Posts »
|
|
@ -6,6 +6,6 @@ block title
|
|||
= config.title
|
||||
|
||||
block content
|
||||
.post.single.hentry
|
||||
article.auto
|
||||
h1.entry-title= page.title
|
||||
.entry-content!= page.content
|
|
@ -6,30 +6,27 @@ block title
|
|||
= config.title
|
||||
|
||||
block content
|
||||
.post.single.hentry
|
||||
article.auto
|
||||
h1.entry-title= page.title
|
||||
.entry-meta
|
||||
|
|
||||
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!= ' • '
|
||||
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 «] #[= page.prev.title]
|
||||
« #[= 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 »]
|
||||
#[= page.next.title] »
|
BIN
themes/bit-badger/source/img/bitbadger.png
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
themes/bit-badger/source/img/facebook.png
Normal file
After Width: | Height: | Size: 6.4 KiB |
BIN
themes/bit-badger/source/img/rss.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
themes/bit-badger/source/img/twitter.png
Normal file
After Width: | Height: | Size: 10 KiB |
342
themes/bit-badger/source/style.css
Normal 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;
|
||||
}
|
|
@ -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')
|
|
@ -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;')
|
|
@ -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)
|
||||
= ', '
|
|
@ -1,5 +0,0 @@
|
|||
#primary.widget-area(role='complementary')
|
||||
ul.xoxo
|
||||
li.widget-container.widget_categories
|
||||
h3.widget-title Categories
|
||||
!= list_categories({ class: 'cat' })
|
|
@ -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
|
|
@ -1,65 +0,0 @@
|
|||
extends base
|
||||
|
||||
block title
|
||||
if page.category
|
||||
= page.category
|
||||
!= ' « '
|
||||
= config.title
|
||||
else
|
||||
if page.tag
|
||||
!= '“'
|
||||
= page.tag
|
||||
!= '” Tag « '
|
||||
= 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 “
|
||||
= page.category
|
||||
| ”
|
||||
else
|
||||
| Posts tagged “
|
||||
= page.tag
|
||||
| ”
|
||||
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
|
||||
|
|
||||
span.author.vcard
|
||||
| By
|
||||
= post.author
|
||||
span.bl_sep |
|
||||
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 «
|
||||
| Newer Posts
|
||||
.nav-next
|
||||
if page.next
|
||||
a(href=url_for(page.next_link))
|
||||
| Older Posts
|
||||
span.meta-nav »
|
Before Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 280 B |
Before Width: | Height: | Size: 390 B |
Before Width: | Height: | Size: 501 B |
Before Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 2.1 KiB |