Gregory's Blog

Immediate steps after installation

This article discusses the steps that should be taken immediately after a new installation of Gregory's Blog.
After installing a new version of Gregory's Blog using the installer, there are several essential settings that need to be set and other tasks that should be performed.

  1. First off, be sure to delete the 'installer' folder found on your server. The installer disables the installer folder after a successful install, however, for safety, it is best to delete this. If you need to reinstall in the future, you can always upload the installer again or download a new installer from my blog.
  2. Navigate the administrative site. The administrative section is found by removing the 'index.cfm' string and appending /admin/ to your URL. If this looks familiar to you- you probably have noticed that I am using the original BlogCfc interface created by Raymond Camden, but with a lot of new settings.
  3. To log in after a new install, type in admin as the user name and the password.
  4. Click on the 'update password' link in the administrative interface to update your user credentials. Type in admin as the 'old password', and enter your new password twice. Click on the 'update' button once you're done.
  5. Change the default blog user name. Click on the 'users' link to open the user interface and click on the admin link to open the user editor. In the user editor, you can ignore everything other than the 'name' entry. Change the name to the default name that you want displayed when you make an entry and click on the save button. If you don't change the name here, any blog entry that you will make will show the name as 'name'.
  6. Lets make a quick test entry to verify a few things... Click on the 'Add entry' link to open the Entry Editor. Note your local time, type in a quick title, and add a sentence or two in the Body section. Type in anything for the category, and click on the save button. This should create a new test entry. Once complete, go to your home page outside of the administrative section. See if the name next to the entry is the same name that you changed in the previous step. Also, check the time of the post to see if it matches your own local time.

  7. Synchronize server and local time. If the posted time does not match your local time, your hosting provider or server is located in a different time zone. To create an offset value, subtract or add hours in order for the time to match up. If the time on your post is greater than your own local time you need to append a minus (-) sign to the value. If your local time is greater than the posted time, you need to append a plus (+) sign to the figure.

    1. I'll use my own test post to explain. My hosting provider is located two time zones away. I posted this test post at 7:11 PM PST. However, the time stamp on the post indicates 9:11 PM. 9 minus 7 is 2, and my time is less than the hosting servers time, so my offset string will be "-2". Finally, to synchronize the time, click on the settings link, and find the content section. There is an offset entry. Here I changed the offset value from 0 to -2, and clicked on the save button.

The next post will discuss how to modify your themes.

This entry was posted on June 13, 2019 at 8:10 PM and has received 144 views.

There are currently 0 comments.

Installing Gregory's Blog on your own website.

Requirements
You will need to have a hosting provider that supports ColdFusion. I have tested the software on both ColdFusion 2016 and 2018 and the software should work on all recent ColdFusion servers. However, if you want to use captcha to prevent spam, you should be running on ColdFusion 2016. Peter Farrel used sun Java classes which are deprecated in ColdFusion 2018 and Java 7. I will rewrite Peter's logic in a future version.

You will also need to have a database. It is recommended that you use Microsoft SQL Server, or MySql, but this blog should also work with Oracle and Microsoft Access.

Download the installation zip file
The installation package is found near the top right section of Gregory's Blog. Click on the download button, and a new window will open. The content within the window will have a brief installation instructions along with credits and license information. Please read through it and click on the download button at the very bottom of the window. The browser should download the file, be patient, it may take several minutes for the zip file to download.

Once the file has been downloaded, you need to extract the zip package to a directory that you will upload the files to your server using an FTP client.

Decide your blog structure
After downloading and extracting the installation package, you will see the Apache 2.0 license and two folders, blog and install. You now need to step back and make a choice what folder structure you want on your own blog. Do you want the blog in the root directory, or in a different folder? This is an important consideration before you move forward. If you don't plan this correctly and change your mind at a later time, you're going to have to start everything over.

For example, I have two installations of Gregory's Blog, one installation is found under www.gregoryalexander.com where I have other sites. My own personal site takes precedence and is installed in the root directory, and Gregory's Blog is stored in the www.gregoryalexander.com/blog folder. However, my test blog site is installed under the www.gregorysblog.org URL. Here, it makes no sense to create a blog folder- typing in www.gregorysblog.org/blog/ is redundant, so I store the blog in the root directory. When a user navigates to the gregorysblog.org URL, they immediately see the blog without having to type in an extraneous folder.

Once you determine the structure of your blog, rename the blog folder to anything that you would like. If you want to install the blog in your root folder, copy and paste all of the files outside of the blog folder- and then remove the blog folder. You don't need to keep the same structure that was in place that you downloaded. Gregory's Blog will adjust the paths as necessary when running the web based installer.

Upload the files
After you have the structure that you want, upload all of these files to your web server using your preferred ftp client. It is a large package, and it will take some time.

Run the installer
Once the files have been uploaded to your own web server, you need to navigate to the installer. Unless you have renamed or removed the blog folder, the default path would be '/blog/installer/'. If you changed the default structure, navigate to the 'installer' folder on your website.

Once you have navigated to the installer, A 'welcome' screen should appear. Read through it and click on the 'get started' button at the end of the page.

You will be asked whether to continue or cancel. Unless you know what you're doing and have a previously installed version of BlogCfc or Gregory's Blog, click on the continue link inside this page.

After clicking on the continue link, you will be asked to enter the DSN and Crypto settings. You will need to get the database information from your hosting provider, or server administrator. Unless you have a really good reason to change the security algorithms, leave the 'Crypto' settings as is. Once the DSN information is entered, click on the 'Verify and continue' button.

Run scripts
Step 3 will ask you a question. If you have never installed BlogCfc or Gregory's blog, click on the 'set up my database'. If you have a working BlogCfc or Gregory's Blog database, click on the 'move to settings' button.

Settings
The next screen is more complex. Here you will be asked to provide additional settings. The 2nd setting is important. Enter the name of the the exact URL that points to your blog, along with the index.cfm page that is placed by default into the /blog/ folder (domain name + /blog/index.cfm). In my installation on the gregoryalexander.com site, the URL is http://www.gregoryalexander.com/blog/index.cfm. On my test server, where I eliminated the 'blog' folder and put everything in the root directory, the URL is http://www.gregorysblog/index.cfm. If you only allow SSL, replace 'http' with 'https'.

You will have to contact your hosting provider or server administrator in order to enter the email settings. Keep the default settings in the drop down menu's, and click on the 'save settings' button.

After the installation process, you will need to delete the installer folder (the installer disables it once everything is installed, but it is best to delete the installer folder from the server as well) and fine tune the settings using the blog's administrative interface. The default administrative interface is found under /blog/admin/' There are articles on this web site that explains the settings in detail. If you have a problem, please email me, or make a comment on this website, and I will try to help you.

This entry was posted on June 10, 2019 at 12:30 PM and has received 152 views.

There are currently 0 comments.

An open source version of Kendo Core is incorporated in Gregory's Blog

I have incorporated the open source version of Telerik's Kendo UI into Gregory's blog. The reasons for this are numerous. ColdFusion on the server side is great, but in my opinion, relying upon ColdFusion for the UI was a zero sum game- it's outdated, proprietary, and just plain buggy. Several years ago, I ditched using ColdFusion's UI, and moved on using Kendo with jQuery.

I plan on continuing to release new versions of Gregory's Blog that support the open source version of Kendo UI Core. However, the open source version of Kendo does not support all of the HTML5 widgets that I plan on using, such as the adaptive grid. I intend to release multiple versions of Gregory's Blog, one that uses the open source edition of Kendo, and another that uses the full version of Kendo. Both should function just fine, but the open source version will be a bit more limited. The only feature that is currently lacking in the open source version of Gregory's Blog is the HTML5 media player. Everything else that you see on this site is available to you.

Although it is not necessary to include the commercial edition of Kendo, if you have your own license for Kendo, you can incorporate your own Kendo library. In the source code, I have the following argument "application.kendoCommercial"as a Boolean flag that is used to include Kendo's open source core version, or include the full commercial version using your own Kendo library. If you have your own license, you will need to set this flags to true in your code, and set the 'application.kendoSourceLocation' argument to match the path to your own Kendo libraries.

This entry was posted on June 3, 2019 at 2:49 AM and has received 135 views.

There are currently 0 comments.

Gregory's Blog default user name and password after fresh installation

In order to log into the administrative section of the blog after installation, use 'admin' as the user name, and 'admin' as the password. Be sure to change the password after logging in for the first time. In this version, the administrative section is nearly identical to the original BlogCfc administration interface with a lot more settings included. I will likely change this in the next version.

This entry was posted on June 1, 2019 at 7:41 PM and has received 130 views.

There are currently 0 comments.

Social Media Sharing with Gregory's Blog

This post is intended to allow the owner of the blog to incorporate social media using Gregory's Blog. I am using 'addThis' as my library, and there is a 'Add This Social Integration' form in the settings section of the administrative interface. Social media sharing is set up by default in Gregory's Blog, but you need to create your own addThis personal account and register an ID with. This does not require any code changes, you can do this yourself and put in the key that you have created using a web interface. This is easy to do if you follow along.

To set up your own social media share buttons for your own site using your own account, go to the addThis.com website, and set up a new account. Once you're set up, you should see a 'tools' option on their website. Click on 'add a new tool', you should see a new 'select a new tool' interface.

Click on the 'share buttons' icon- it should be the first icon in the list. Once you have selected the inline tool, click on the blue button labeled 'continue' at the bottom of the page.

You should see a new 'sharing services' interface. Select choose 'inline' for the tool type, click continue, and then in the 'sharing services' interface, click on the 'selected by you' radio button. Choose 'facebook', 'twitter', 'pinterest' 'linkedIn' and 'tumblr'. You can sort these options by dragging and dropping the icons underneath 'Selected Sharing Services'. Sort the icons in your own desired order.

I have tested all of these services and they should work. Choose any other services that you want here, but I have not tested anything other than these services. If you want to add more services, they may or may not work, you may have to add more code on your own, your mileage may vary.

Once your services are selected, click on the design icon, and design the addThis buttons to your liking. I chose to round the corners quite a bit, but kept all of the other settings that were shown as default. Once you're satisfied with the look and feel of the buttons, click on the 'activate tool' button. You should now see a 'get the code' button. Click on it, the code should be similar to the following code below.

view plain about
1<!-- Go to www.addthis.com/dashboard to customize your tools -->
2<InvalidTag type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-5cad55abc3dea5c2"></script>

Copy the string between 'pubid=' and the closing tag '">'. The default string that I use is 'ra-5cad55abc3dea5c2'. Enter this string in the 'Add This Social Integration' section in the settings interface in the administrative section of the site (typically found in using the '/blogCfc/client/admin/' URL), click on the 'save settings' button, and you should be good to go.

This entry was posted on May 27, 2019 at 1:53 AM and has received 33 views.

There are currently 0 comments.

Theme Settings in the administrative web interface.

Gregory's Blog has 14 different beautiful default themes that you can choose from. Each theme can be customized using web interfaces. You can have as many themes as you want, or design a single theme, but you should first choose a default theme from which to start with.

All of the default themes can be viewed by clicking on the themes link at the top of each page. Once you choose a theme, you can adjust the settings of the theme, such as changing the header properties, page display settings, changing logo's, etc. After modifying the default theme to your liking, you can further fine tune the look and feel using a web based theme builder interface. I will cover how to use the theme builder in later posts.

Once you have selected your preferred theme, you can disable the other themes by deselecting the 'Use theme?' checkbox under the 'Default Themes' section in the administrative settings interface. Don't worry about losing a theme, you can always enable any theme by checking the checkbox next to the disabled theme.

There are 39 unique theme settings that can be independently applied to each theme. Theme settings are applied using the Settings page in the Blog administrative site. I will briefly go over each new setting here. It it safe to play around with these settings. If you make a mistake, you can always reset the default settings for the particular theme by clicking on the 'reset themes' button at the bottom of the settings administrative page.

  • Notes: this blog is highly optimized for mobile, and some of these settings will not apply. I have indicated what settings are not available to mobile devices in the notes section below.
  • The following three settings are global, and affect all themes.
    1. Parent Site Name and Link: The parent site name and parent site link form elements controls the behavior of the menu found at the top of the header. It allows the user to add an option in the menu that links to their home site.
    2. The 'Parent Site Name' will display the title of the site within the menu. On my site, the text is 'Gregory Alexander - Web Design'. The 'Parent Site Link' can be any link to another site. The link is triggered when a user clicks on the menu option. On this site, the link is www.gregoryalexander.com.
    3. 'Default Font Size' will set the font size for the blog content. You can choose any value between 8 and 26 points. Note: the 'Default Font Size' will not change the size of the text in the header. I manually set the header text to be at 16 point in the menu on desktop devices, and 12 points for mobile devices.

    All of the settings below can be set by theme. Each theme operates independently, and can have its own unique settings. You can modify or create 14 different themes.

    1. The 'Modify Default Themes' checkbox is used when the owner of the blog is ready to modify the default themes. Until this button is checked, the site will operate as it is intended here, with the default settings intact.
    2. The 'Kendo Base Theme' allows the blog owner to review all of the default blog settings. Blog owners can look and see where the current images are stored, what library paths are used, and determine the element properties of the containers on the site. It is recommended that you browse the existing themes, and choose the theme that is closest to the theme that you want to create. In order to modify a theme, click on the default theme that you are interested in, and modify the settings that are displayed in the form.
    3. 'Kendo Theme .css Location' (string): if you want to create your own Kendo less based theme and replace the existing .less based theme, use the Kendo Theme Builder to modify the base theme, upload it, and change the default path and point it to the new .less file that you created using the Kendo theme builder.
    4. 'Kendo Mobile Theme .css location' (string): when you create your own Kendo theme, make sure to also specify the new path of the mobile theme as well.
    5. 'Custom Theme Name' (string): provide the theme name that you want others to see when they look at your own site. This setting has no effect on the 1.1 version, but is a placeholder for the next major release.
    6. 'Dark Theme' (true/false): Gregory's blog has built in logic to pull in different resources depending upon the overall color of the theme. If the theme has a dark background for example, Gregory's blog will pull in a different version of the code highlighter. There are quite a few different adjustments that are made, but it is up to you to determine whether Gregory's Blog should adjust it's logic for to adapt to a light or a darker screen background. You can see this in action by comparing the following two default themes: Blue Wave (a light theme with dark text) and Blue Wave Dark, a dark theme with white text.
    7. 'Blog Content Width' (numeric): The current blog content is set at 66% of the screen and should be left at this setting unless you set it much higher. When you're looking at the blog, you can see that the blog content portion in the center of the screen. The blog content section may contain the header (we will go over this later), the blog content that contains the blog posts, the side bar to the right which contains the links to the various parts of the site (such as the subscribe interface), and the footer. The blog owner can adjust this as they see fit, they can set it to 100% if they don't want any background image at all. However, unless you want to set this quite a bit higher, it is strongly recommended to leave this particular setting at 66%. If this setting is set at 66%, the background width is programmatically optimized and will change depending upon the screen width of the device. Note: this setting has no effect on mobile devices. To illustrate, the blog content width set at 100% is shown below (the 'Main Container' and 'Pod Container' widths were kept at default settings (65% and 35%)).
    8. 'Main Container Width' (numeric): the main container holds all of the blog posts. It is currently set at 65% of the Blog Content Width (see above). If you set this higher, or lower, the side bar (also known as the 'pod width') to the right will also be adjusted accordingly. This setting has no effect on mobile devices. Note: the 'Main Container Width' plus the 'Pod Container' width will always equal 100. The following image has the following settings:
      1. Blog Content Width: 50%
      2. Main Container Width: 50%
      3. Pod Container Width: 50%
    9. 'Pod Container Width (numeric): the pod container is the section to the right of the main container. It contains the subscribe interface, tags, recent posts, etc. The current setting is set to 35%, but you can adjust it as you see fit. Notes: if you change this setting, the Main Container Width will be adjusted accordingly. This setting has no effect on mobile devices. The 'Main Container Width' plus the 'Pod Container' width will always equal 100.
    10. 'Opacity' (numeric): If you look carefully at the site, you can see a faint trace of the background image underneath. I prefer this look as it creates visual interest. The opacity settings are different depending upon the theme, but you can change this setting to your own liking. You can set it at 100% to eliminate the opacity, or set it lower than the current setting if you want the background to bleed through. The image to the left has opacity set at 80%, and the right image is set at 99%.

    11. 'Background Image' (string): enter the absolute path to the image that you want shown as the background image for the desired theme. If you prefer the look of a clean site without any background, or don't want any background at all, leave this blank. Additionally, you can specify an image that will create a background pattern, and use the next variable, 'Background Image Repeat .css', to create a unique pattern as a background. The image below does not have a background image set
    12. 'Background Image Repeat .css' (string): you can use any valid background image repeat .css. This was built into the themes as a blog owner may want to create sophisticated pattern objects for the background. The pattern shown below image has the following settings:
      1. Background Image Repeat: repeat

    13. 'Background Image Position .Css' (string): setting your favorite background 'hero' image using the default 'center center' is not always the best approach. The background image position rule allows you to set the background image to exact coordinates to make sure that it looks good on all screen sizes. See background position for more information.
    14. 'Stretch Header across Page' (true/false): if you want your header to consume the entire width of the page, set this to true. The default setting is false. On mobile devices, this setting is automatically set at 100%. The image below is set to true.
    15. 'Align Header with Content' (true/false): the default setting is true for all of the current default themes, but setting this to false allows the header to be set at the far left or right of the page, or the absolute center. Leaving this to true adjusts the size of the header to fit the width of the content width (see Blog Content Width).
      The image below has the Align Header with Content set at false with menu align center.
      Note: this setting is only relevant if the 'Stretch Header across Page' is set to true.
    16. 'Menu Align' (left, center, right): you can align the header to the left, center, or right. Use this in conjunction with the 'Align Header with Content' and'Stretch Header across Page' properties to create the look that you like.
    17. 'Header Background Image' (string): currently, I use simple images with various gradient fills that are used as the header background. You can set the header background to use any image. You can get creative here, perhaps you want an image that is filled with a pattern, or a header that displays lots of floating bubbles, it is your call.

    18. 'Cover Menu with Menu Background Image' (true/false): this setting is a bit complex. For my personal 'Zion' and 'Orion' themes, I wanted a the color scheme on the menu to match the color scheme of the background images and the .less theme file that controls the forms and widgets. In order to have the selected menu item match the orange color scheme, I 'covered' the Kendo menu with the background image that I used on the header with .css. This setting allows the menu background image to be shown within the Kendo menu itself. All of the other current themes have this setting set at false. Setting this to false should be sufficient in most cases; the menu is already tailored to the .less based theme that is set. However, there are reasons that a blog owner may want to set this to true on occasion. For example, if a blog owner creates a menu image with a lot of little floating bubbles, setting this to true will also allow the menu items to show these little bubbles as well.
    19. 'Mobile Logo Image' (string): You will want your mobile logo image to be much smaller than the logo image for desktop devices. Enter the absolute location of the image.
    20. 'Mobile Logo Image Width' (numeric (pixel width): this typically is set to be 60 pixels or less.
    21. 'Desktop Logo Image (string): enter the absolute path pointing to the location of your logo that will be shown on desktop devices.
    22. 'Logo Padding (top, right, bottom, left)': you can fine tune the logo placement with these settings. The default settings are left at 0px.
    23. 'Blog Name Text Color' (hexadecimal string): this setting controls the text color of all of the items in the menu. Use any valid hexadecimal or valid HTML color value. If using a hexadecimal value, make sure to put a pound in front of the hexadecimal string it as well.
    24. 'Header Divider Image' (string). This is the horizontal image divider that separates the header and the blog content, and the blog content and the footer. Currently, it is a little grey bar, but you can design your own and specify it here using an absolute path.

    This entry was posted on May 22, 2019 at 9:56 PM and has received 82 views.

    There are currently 0 comments.

    Kendo Server Side Validation

    This post describes how to use Kendo's validator for server side validation. There are very few posts showing how to use Kendo's validator with server side validation (none of them are really clear), it took me a bit of time to figure it out, and want to share my approach and will provide extensive comments.

    One of the reasons that there are very few posts concerning server side validation with the Kendo validator is that it is not really built to do this. Unlike the majority of the other Kendo widgets which allow for customization, the validator was meant for simple validation. The built in validation is quite useful for simple client side validation, but it is not an extensive validation library and anytime that you need to extend it you will find yourself wanting more. I felt like I was trying to hammer a square peg into a circle while coding this. However, since one of the main goals of this blog is to share how ColdFusion can use the Kendo UI, I felt the need to dig into the kendo validator.

    I have a captcha form on this blog that is used to verify that the user is an actual user, and it encrypts a token and passes it off to the server side for validation. You can see this in action by making a comment on this post below.

    The meat and potatoes of this function, like most of the other Kendo widgets, lies in the Javascript. This script is heavily commented. Click the more button below to inspect the script.

    This entry was posted on March 1, 2019 at 5:34 PM and has received 68 views.

    There are currently 0 comments.

    Done with the draft version of Gregory's blog

    It is the first day of the New Year, and I am happy to say that I am done incorporating the features that I wanted into the new desk-top oriented blog. After working with Raymond's back-end code, I am quite impressed with the logic that it contains and how he anticipated functional logic, even though the logic was not used within the original BlogCfc UI. For example, the getEntries method allows passing in a string of categories when you are using the search interface, even though the original blogCfc only allowed one category to be selected at a time. With the new interface that I have programmed, I designed the search to use one or more categories with a Kendo multi-select drop down box. I had thought that I would need to revise Raymond's original getEntries method to allow one or more categories, but found out that I can pass more than one category value as a list. This is just how I would have designed this if I had the time, but Raymond already designed his function to be used for multiple arguments, even though the UI did not use that logic in the original interface. I also looked for various functions that I had thought to write, and I found them in Raymond's code-base, often with the same name that I would have used as if I had wrote them myself. I found Raymond's back-end logic both powerful and intuitive. It was a pleasure to use Raymond's back-end logic, and I am glad that I made the choice to use BlogCfc as the back-end when re-writing this application.

    I intend to work on getting my own personal site up, developing the responsive mobile blog, and then go through more testing before launching this new blog software. This is a part-time weekend project. I have a lot of other stuff vying for my attention, as well as being married, having kids, and a working a full time job; this may take several months.

    Gregory

    This entry was posted on January 1, 2019 at 11:04 PM and has received 45 views.

    There are currently 0 comments.




    Your input and contributions are welcomed!

    If you have an idea, BlogCfc based code, or a theme that you have built using this site that you want to share, please contribute by making a post here or share it by contacting us! This community can only thrive if we continue to work together.

    Images and Photography:

    Gregory Alexander either owns the copyright, or has the rights to use, all images and photographs on the site. If an image is not part of the "Gregory's Blog" open sourced distribution package, and instead is part of a personal blog post or a comment, please contact us and the author of the post or comment to obtain permission if you would like to use a personal image or photograph found on this site.

    Credits:

    Portions of Gregory's Blog are powered on the server side by BlogCfc, an open source blog developed by Raymond Camden. Revitalizing BlogCfc was a part of my orginal inspiration that prompted me to design this site. Some of the major open source contributers to BlogCfc include:

    1. Peter Farrell: the author of 'Lyla Captcha' that is used on this blog.
    2. Pete Freitag: the author of the 'ColdFish' code formatter that is also used on this blog.

    Version:

    Gregory's Blog Version 1.01 June 13, 2019 00:49 PST.