Category: About HYCW

  • Spring Cleaning 2017

    As if anyone follows this nearly abandoned blog anymore, here’s what I’m up to:

    First, I’m mostly blogging about product management in a Lean and Agile context over at DeanOnDelivery.com with the same sprinkling of technical goodness and wacky humor y’all enjoyed here for about 10 years.

    So you can catch up with me there, or perhaps at my twitter feed @deanpeters. Think of these as placces you boss me around with  your great ideas. It doesn’t cost to give it a try.

    Second, it’s time for …

    Spring Cleaning 2017
    Let’s either reboot, or retire this blog.
    • I’ve already made private close to 775 out of 1050 blog posts I feel are no longer relevant.
    • The privatized blog posts will eventually be removed altogether and put into a deep freeze reference somewhere.
    • I’ll continue to chip-away at the content until I get things down to about 200 relevant posts.
    • Move any code snippets over to github, linking to them from here.
    • Expect a significant change in formatting, probably a parallax-ish.
    • Likely implement some sort of slack invite call-to-action button thingy here.
    • I’m doing alot with elasticsearch and azure search these days. Natural language processing too. Need to figure out how to perhaps introduce a little machine language fun as part of this blog. Dunno yet. Depends on what y’all say in the slack channel.

    Apologies in advance to all those visiting this blog in hopes of updates on XP, Movable Type, dhtml, and other acts of obsoletism.

  • Spring Cleaning, or time for a HealYourChurchWebsite do-over.

    Time for Heal Your Church Website to upgrade her browsing experience.The birds are singing, the flowers are blooming and WordPress 2.5 has been ‘in the wild’ for a couple of weeks. These factors, and the fact that my own blog is getting a bit crufty has me thinking it is time for yet another Heal Your Church Website do-over. That and I’ve been getting some ‘love notes’ that either fall into the category “how do I get started” or “you reviewed my site, so here is why your blog sucks.” I figure success is the best response, so here’s my initial game plan – thinking out loud as some of you may be in a similar situation of having to freshen up your church and/or charity website.

    1. Research

      I’ve already got a good idea of what I want to say, so mostly in this case I need study what resonates via the results I’ve been collecting via Google Analytics and FeedBurner, including:

      • keywords,
      • popular pages,
      • unusual usages of feeds,
      • any patterns in exit pages,
      • any patterns in entry pages,
      • and any patterns in people navigating into the site.

      I’ll couple this with looking over my error logs to see where people are stumbling the most. I think looking over some of the nicer ‘love notes’ may also be useful as they’re often requests for information I’ve published before.

    2. Plan and ‘objectifry’

      Meaning, based on the research above – along with day-to-day experiences, enumerate a set of requirements and objectives mostly based on needs, though since it is a personal blog, some wants too.

    3. Backup everything

      I need to not only save everything, but also insure I have an effective restoration/rollback plan in the off-chance things go horribly wrong (like I don’t have the right version of PHP or MySQL, etc …).

    4. Re-factor my categories

      Some of these old categories are crufty and unintelligible. They need my healin’ sooner than later and I’m thinking probably better to do it before the upgrade than after – though the new version of WordPress may have some features and/or plug-ins that make such a migration less painful. I’ll have to research that.

    5. Draw out a new template

      First on paper, then later using PhotoShop or PhotoImpact. Don’t get me wrong, I still like the whole Byzantine Cross on the blue domes of Orthodox Churches at Santorini, and may have an opportunity soon to be there – but overall the current theme is beginning to wear. That and it’s just too darn dark.

    6. Upgrade to WordPress 2.5

      Knowing already that this step will likely include the following plugins:

      I already use some of the above, I also know others come ‘bundled’ with the WordPress 2.5 release. Also a word of warning to WordPress “n00bz” – I’ve got a very good idea of what I’m delivering here content-wise, so any and/or all of the selections above are based upon those needs; rather than those ‘neato-keen‘ inspirations.

    7. Update the Theme

      Either generate from scratch and/or adopt and/or modify an existing WordPress theme that is

      • A wider fixed or fluid width
      • Widget ready
      • Has an options page
      • 2 or 3 columns
      • Right sidebar
      • Brighter colors

      I also need to code the theme (or write a plugin) so the last 2 or 3 posts display in full, the next 8 or 10 as excerpts.

    8. Test the site

      • first for functional soundness (technical testing)
      • then to see if it meets my goals/objectives (use cases)
    9. Clean up crufty content

      Go through older articles, eliminating/archiving stuff that’s no longer relevant and cleaning-up some that got hammered by moving from MT 1.0 through 3.0 then to WP 1.5 through to 2.5.

    10. Sit back and enjoy

      Create numerous annoying posts about what pains I suffered executing on the above game plan.

    So here’s your chance kids – got something you’d like to see done differently here? Speak up, now’s your chance.

    Oh and if I get enough love notes and/or comments on this topic, I’ll discuss answers in a fun follow-up post. So be sure to make your notes to me pithy and quotable (and don’t forget the link to your site !-).

  • Messin’ with Petra or my Google Maps of Jordan

    For the two or three of you wondering why I haven’t been writing with as great a frequency as I should, it is because I’ve been busy preparing for my blog-tour of Jordan.

    This includes quite a bit of time preparing Google maps of some of the locations – and their associated history and Biblical citations – I’ll be blogging about. For example, below is an annotated map of Petra that includes links to my über-secretive wiki no one else is supposed to know about until the trip:

    Remember, blogJordan.com is supposed to be a secret, so if I catch you linking it … well let’s just say … I might have to return the volume with a hit generating reciprocal link.

    You’ve been warned. I mean it, I’ll put the car over right here!

  • Sermonizer::Scripturizer

    UPDATE * 30-mar-03,  UPDATE2 * 14-Feb-04 this code has been modified and updated (twice). Please refer to the article entitled “Scripturizer 1.2, now with MT Plugin-ability” for a new and improved version that also includes a MovableType plugin.

    I’ve been working on a tool that will take sermons from my pastor and format and post them to my church web site. The first and biggest step was “scripturizing” – that is, hyperlinking Scripture References to the BibleGateway. Which we did in my article entitled “Scripturizer – core engine.”

    One of the excellent comments I recieved (from Jonathan Fox) mentioned that my original implementation was a bit too “greedy” … meaning that phrases such as “my new job will start if john acts up” would have “Scripturized” job, john and acts even though they were not scripture references. Moreover, the BibleGateway link would not validate due to not encoding the & sign. So I wrote a subroutine that would make sure we were dealing with verse/references and would encode properly.

    Once this was done, the next step was to convert it into a Perl module so it could be reused in any variety of situations. Please to not breeze past this point. Regardless of the language you prefer, abtracting your work into modules and classes is an important time saver downline as are common practices in the world of software resuability and reliability. If you don’t believe me, just check out the CPAN – which is the primary reason I still prefer Perl for many projects.

    You can find some pretty good how-to information regarding Perl Modules over at the Perl Circus for as long as that site lasts. The end product is something that looks like this (sans comments):

     package Sermonizer::Scripturizer;
     #############################################################
     # Sermonizer::Scripturizer             (c) 2002 Dean Peters #
     #                      http://www.healyourchurchwebsite.com #
     #############################################################
     #   This package hyperlinks Scripture references in text    #
     #############################################################
     require Exporter;
     @ISA = qw(Exporter);
     @EXPORT = qw(addLinks encodePassage);
    
    sub addLinks {
        my @data = @_;
        my @output;
    
       my $volumes = "I+|1st|2nd|3rd|First|Second|Third|1|2|3";
        my $books = "Genesis|Exodus|Leviticus|Numbers|Deuteronomy|Joshua|Judges|Ruth|Samuel|Kings|Chronicles|Ezra|Nehemiah|Esther|Job|Psalm|Proverbs|Ecclesiastes|Song of Solomon|Isaiah|Jeremiah|Lamentations|Ezekiel|Daniel|Hosea|Joel|Amos|Obadiah|Jonah|Micah|Nahum|Habakkuk|Zephaniah|Haggai|Zechariah|Malachi|Matthew|Mark|Luke|John|Acts|Romans|Corinthians|Galatians|Ephesians|Philippians|Colossians|Thessalonians|Timothy|Titus|Philemon|Hebrews|James|Peter|Jude|Revelation";
        my $link  = "http://biblegateway.com/cgi-bin/bible?language=english&version=NIV&passage=";
    
       foreach (@data) {
           # include instances of James 2:1-13, 14 - 16, 17 & 18
           my $verses = qr{ \d+ (: \d+)* \s* (?: [-&] \s* \d+)*    }x;
           my $passage;
    
          # don't just match, replace
           s/
              (?:($volumes)\s*)*         # any number of vols.
              \s*
              ($books)                               # the book
              \s*
              ( $verses (?: \s* , \s* $verses)* )
           /$passage = ($1 ? "$1 ":"").($2 ? $2:"").($3 ? " $3":"");
           "<a>$passage"
           /gcex;
    
          push (@output, $_);
        }
        return @output;
    
    }
    
    sub encodePassage {
    
       my ($vol, $bk, $ver) = @_;
        $ver =~ s/:/%3A/gi;          # convert to encoded colon
        $ver =~ s/[,&;]/%2C/gi;       # convert to encoded comma
        $ver =~ s/\s*//gi;
        my $passage = ($vol ? "$vol+":"").($bk ? "$bk+":"").($ver ? "$ver":"");
        return $passage;
     }
    
    1;
     __END__
    
    =head1 NAME
    
    Sermonizer::Scripturizer - hyperlink Scripture references in text
    
    =head1 SYNOPSIS
    
    use Sermonizer::Scripturizer;
     foreach (addLinks()) { print $_; }; 
    
    =head1 DESCRIPTION
    
    Sermonizer::Scripturizer searches a text stream and replaces any
     instances of a Scripture reference with a hyperlink to the to the
     Bible Gateway online Bible.
    
    =head1 BUGS
    
    Need to allow user to define which online Bible to use
     Need to not link up Scripture already linked
     It's probably make sense to create instance variables global to the scope of the module to contain the book volumes, etc.
    
    =head1 AUTHOR
    
    Copyright Dean Peters 2002, 
    
    =head1 EXAMPLE
    
    BEGIN { push(@INC, "C:/Inetpub/wwwroot/perl/lib/"); }
     use Sermonizer::Scripturizer;
    
    my $filename = "sermon01.txt";
     open(FILE, $filename ) or die "Couldn't open the file '$filename'. \n$!";
    
    foreach (addLinks()) {
        print $_;
     }
     close FILE;
    
    =cut

    Installation and Use

    I suspect a number of you will have some problems with your scripts not finding “Sermonizer::Scripturizer” … an error that reads “Can’t locate Sermonizer/Scripturizer.pm in @INC (@INC contains: /perl/lib /perl/sit
    e/lib .)
    “. This is because the @INC array contains a list of directories that are use to search for all external files/modules that are used by the perl script – and Scripturizer.pm ain’t in that path. Since the @INC array tells the Perl interpreter where to look for the files/modules/external scripts you need to create as subdirectory named “Sermonizer.” Then you copy Scripturizer.pm into that directory. Then atop perl program that needs ‘Scripturizing’, you write ‘BEGIN { push(@INC, “C:/Inetpub/wwwroot/lib/”); }‘. In the end, your test script may look like this:

    BEGIN { push(@INC, “C:/Inetpub/wwwroot/perl/lib/”); }
    use Sermonizer::Scripturizer;

    my $filename = “sermon01.txt”;
    open(FILE, $filename ) or die “Couldn’t open the file ‘$filename’. \n$!”;

    foreach (addLinks(<FILE>)) {
    print $_;
    }
    close FILE;

    As always, your mileage may vary

  • Does Dean have a New Slogan?

    I was minding my own business when someone I know pointed me to Joshua Claybourn’s Home Page, which had a link to my site and a wonderful quote that describes THIS site as a place “where a computer geek collides with religious zealotry.” The ony thing I could possibly resent from that description is that I didn’t think of it first!

    (more…)

  • Terms of Use

    Legal and Privacy Notice

    All contents copyright @ 2002-2015 Dean Peters. All rights reserved.

    WEB SITE TERMS AND CONDITIONS OF USE

    The HealYourChurchWebsite.com Web Site (the “Site”) is an online information service provided by Dean Peters the (“Owner”), and is subject to your compliance with the terms and conditions set forth below. PLEASE READ THIS DOCUMENT CAREFULLY BEFORE ACCESSING OR USING THE SITE.

    Please read this page carefully. IF YOU DO NOT ACCEPT THE TERMS AND CONDITIONS STATED HERE, DO NOT USE THE WEB SITE.

    This page states the terms and conditions under which you may use The Site and any other product or service offered for sale by The Owner through The Site. The right to use products or services by The Owner is personal to you and is not transferable to any other person or The Owner.

    The Owner reserves the right to change terms and conditions applicable to The Site, or to impose new terms and conditions. Such modifications or additions shall be effective immediately upon notice to each client. Notice may be given by any reasonable means including, but not limited to, posting a revised version of this Agreement on the Internet or notification by electronic mail. Any use of The Site after such notice shall conclusively be deemed to constitute acceptance by you of such modifications, additions, or deletions. You have the responsibility to periodically review the posted terms and conditions to be aware of such revisions.

    Section 1. Use of Material, Copyright

    The Owner authorizes you to view, copy, and print a single copy of material on this Site solely for your personal, non-commercial use. Special rules may apply to the use of certain software and other items provided on The Site.

    As a user, you agree to use the services offered by The Owner in a manner consistent with all applicable local, state and federal laws and regulations. No material shall be stored or transmitted which infringes or violates the rights of others, which is unlawful, obscene, indecent or otherwise objectionable, threatening, defamatory, or invasive of privacy or publicity rights. The Owner prohibits conduct that might constitute a criminal offense, gives rise to civil liability or otherwise violates any law. Any activity that restricts or inhibits any other user from using the services of The Owner is also prohibited. Unless allowed by a written agreement, you may not post or transmit advertising or commercial solicitation on The Site.

    The contents of The Site, such as text, graphics, images and other material (“Material”), are protected by US and foreign copyright and trademark law. Unauthorized use of the Material may violate copyright, trademark, and other laws. You must retain all copyright and other proprietary notices contained in the original Material on any copy you make of the Material. You may not sell or modify the Material or reproduce, display, publicly perform, distribute, aggregate, re-syndicate, or otherwise use the Material in any way for any public or commercial purpose. The use of the Material on any other Web site or in a networked computer environment for any purpose is prohibited.

    If you violate any of the terms or conditions, your permission to use the Material automatically terminates and you must immediately destroy any copies you have made of the Material.

    Section 2. The Owner’s Liability

    The Material may contain inaccuracies or typographical errors. The Owner makes no representations about the accuracy, reliability, completeness, or timeliness of the Material or about the results to be obtained from using The Site or the Material. Use of The Site and the Material is at your own risk. Changes are periodically made to The Site, and may be made at any time.

    THE OWNER DOES NOT WARRANT THAT THE SITE WILL OPERATE ERROR-FREE OR THAT THE SITE AND ITS SERVER ARE FREE OF COMPUTER VIRUSES AND OTHER HARMFUL GOODS OR CONDITIONS. IF YOUR USE OF THE SITE OR THE MATERIAL RESULTS IN THE NEED FOR SERVICING OR REPLACING EQUIPMENT OR DATA, THE OWNER IS NOT RESPONSIBLE FOR THOSE COSTS.

    THE SITE AND MATERIAL ARE PROVIDED ON AN ‘AS IS’ BASIS WITHOUT ANY WARRANTIES OF ANY KIND. The Owner AND ITS SUPPLIERS, TO THE FULLEST EXTENT PERMITTED BY LAW, DISCLAIM ALL WARRANTIES, INCLUDING THE WARRANTY OF MERCHANTABILITY, NON-INFRINGEMENT OF THIRD PARTIES RIGHTS, AND THE WARRANTY OF FITNESS FOR PARTICULAR PURPOSE. THE OWNER AND ITS SUPPLIERS MAKE NO WARRANTIES ABOUT THE ACCURACY, RELIABILITY, COMPLETENESS, OR TIMELINESS OF THE MATERIAL, SERVICES, SOFTWARE TEXT, GRAPHICS, AND LINKS.

    Section 3. Disclaimer of Consequential Damages.

    IN NO EVENT SHALL THE OWNER, ITS SUPPLIERS, OR ANY THIRD PARTIES MENTIONED AT THE SITE BE LIABLE FOR ANY DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, INCIDENTAL AND CONSEQUENTIAL DAMAGES, LOST PROFITS, OR DAMAGES RESULTING FROM LOST DATA OR BUSINESS INTERRUPTION) RESULTING FROM THE USE OR INABILITY TO USE THE SITE AND THE MATERIAL, WHETHER BASED ON WARRANTY, CONTRACT, TORT, OR ANY OTHER LEGAL THEORY, AND WHETHER OR NOT THE OWNER IS ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

    Section 4. User Submissions.

    Any communication which you post to The Site or transmit to The Owner or to The Site by e-mail or other medium can be used by The Owner on a royalty-free, perpetual, irrevocable, nonexclusive license with the right to reproduce, modify, publish, edit, translate, distribute, perform, and display the communication alone or as part of other works in any form, media, or technology whether now known or hereafter developed, and to sub-license such rights through multiple tiers of sub-licenses. The Owner may use the information it obtains relating to you, including your IP address, name, mailing address, email address and use of The Site, for its internal business and marketing purposes.

    As a user of The Site, you are responsible for your own communications and are responsible for the consequences of their posting. You must not do the following things: post material that is copyrighted, unless you are the copyright owner or have the permission of the copyright owner to post it; post material that reveals trade secrets, unless you own them or have the permission of the owner; post material that infringes on any other intellectual property rights of others or on the privacy or publicity rights of others; post material that is obscene, defamatory, threatening, harassing, abusive hateful, or embarrassing to another user of The Site or any other person or entity; post a sexually-explicit image; post advertisements or solicitations of business; post chain letters or pyramid schemes; or impersonate another person.

    The Owner does not represent or guarantee the truthfulness, accuracy, or reliability of any communications posted by other users of The Site or endorse any opinions expressed by users of The Site. You acknowledge that any reliance on material posted by other users of The Site will be at your own risk.

    The Owner does not screen communications in advance and is not responsible for screening or monitoring material posted by users of The Site. If notified by a user of communications which allegedly do not conform to this agreement, The Owner may investigate the allegation and determine in good faith and its sole discretion whether to remove or request the removal of the communication. The Owner has no liability or responsibility to users of The Site for performance or nonperformance of such activities. The Owner reserves the right to expel users of The Site and prevent their further access to The Site for violating this agreement or any law or regulation, and also reserves the right to remove communications which are abusive, illegal, or disruptive.

    Section 5. Links to Other Sites.

    The Site contains links to third party Web sites. These links are provided solely as a convenience to you and not as an endorsement by The Owner of the contents on such third-party Web sites. The Owner is not responsible for the content of linked third-party Web sites and does not make any representations regarding the content or accuracy of material on such third party Web sites. If you decide to access linked third-party Web sites, you do so at your own risk.

    Section 6. Software Licenses.

    All software that is made available for downloading from The Site (“Software”) is protected by copyright and may be protected by other rights. The use of such software is governed by the terms of the software license agreement or designated “Legal Notice” accompanying such Software (“License Agreement”). The downloading and use of such Software is conditioned on your agreement to be bound by the terms of the License Agreement.

    Section 7. Limitation of Liability

    Unless otherwise expressly provided in a Software License or Legal Notice, the aggregate liability for The Owner to you for all claims arising from the use of the Materials (including Software) is limited to $1.00 USD.

    Section 8. Indemnity.

    You agree to defend, indemnify, and hold harmless The Owner, its officers, directors, employees and agents, from and against any claims, actions or demands, including without limitation, reasonable legal and accounting fees, alleging or resulting from your use of the Material (including Software) or your violation of the terms or conditions of this agreement.

    Section 9. Export Control.

    The United States controls the export of products and information. You agree to comply with such restrictions and not to export or re-export the Materials (including Software) to countries or persons prohibited under the export control laws. By downloading the Materials (including Software), you are agreeing that you are not in a country where such export is prohibited or are a person or entity to which such export is prohibited. You are responsible for compliance with the laws of your local jurisdiction regarding the import, export, or re-export of the Materials (including Software).

    Section 10. User Information.

    The Owner may use the information it obtains relating to you, including your IP address, name, mailing address, email address and use of The Site, for its internal business and marketing purposes.

    Section 11. General

    The Site is based in Raleigh, NC. The Owner makes no claims that the Materials are appropriate or may be downloadable outside of the United States. Access to the Materials (including Software) may not be legal by certain persons in certain countries. If you access The Site from outside of the United States, you do so at your own risk and are responsible for compliance with the laws of your jurisdiction. This agreement is governed by internal substantive laws of the State of North Carolina, without respect to its conflict of laws principles. If any provision of this agreement is found invalid by any court having competent jurisdiction, the invalidity of such provision shall not affect the validity of the remaining provisions of this agreement, which shall remain in full force and effect. No waiver of any term of this agreement, which shall remain in full force and effect. No waiver of any term of this agreement shall be deemed a further or continuing waiver of such term or any other term. Except as expressly provided in a particular “Legal Notice” or Software License or Material on particular pages of The Site, this agreement constitutes the entire agreement between you and The Owner with respect to the use of The Site. Any changes to this agreement must be made in writing, signed by an authorized representative of The Owner.

    All contents copyright @ 2002-2015 Dean Peters. All rights reserved.

  • For Immediate Release:

    CONTACT:
    Dean Peters
    HealYourChurchWebsite.org

    inquiry -at- healyourchurchwebsite -dot- com
    http://HealYourChurchWebsite.org

    Webmaster, Heal Your Church Website

    Rockville, MD, May 11, 2002 (updated 01-Mar-2015) – Tired and frustrated with church and para-church websites that look like visual vestiges from the dark ages, Dean Peters, contributing author to “Son of Web Pages That Suck“, posts his own virtual 95 Thesis to the door of the Internet at http://www.HealYourChurchWebsite.com.

    Armed a liberal arts degree in one hand, and a masters in computer science in the other, Dean takes his 25+ years professional experience, and takes the Church to task; or as he likes to say with some help from 2 Timothy 3:16: “Teaching, rebuking, correcting & training in righteous web design.”

    Having seen the sometimes ugly underbelly that one can only see from being  a volunteer teacher, webmaster, soloist, and van driver, Dean understands both the technical and the political issues that face designers of church, para-church, and secular charity organizations. HealYourChurchWebsite.com addresses these issues with practical advice, links, resources and examples in Dean hopes that the quality of church websites improves by bringing errant webmasters to repentance.

    As Dean likes to tell anyone who will listen, “We have hundreds of years of beautiful sacred songs, art and literature as the result of the artistry that was once the Church — why can’t we have the same for websites?”

    That said, all of the opinions expressed here are Dean’s personal views and do not reflect his employer, his church, nor any other non-Dean Peters entity in any way shape nor form.

    Currently, Dean’s most pressing project is raising his daughter,serving his wife, and trying to get his home music studio back up and running. For everything else, his recommends visiting his Twitter and LinkedIn accounts.

    # # #