Gregory's Blog

Galaxie Blog 3 is Now Released  


I am proud to announce that Galaxie Blog 3 is finally released. It was our goal to build one of the most comprehensive HTML5-based blogging platforms that meets or exceeds the out-of-the-box core blogging functionality of major platforms like WordPress. Take a look and see- with Galaxie Blog 3, I think that you will also agree that we delivered on that goal. 

What is Galaxie Blog?

Galaxie Blog is one of the most full-featured out-of-the-box blogging platforms in the world. 

Galaxie Blog was developed with a mobile-first priority. We have put great emphasis on perfecting your mobile experience where you can manage the blog and create a stunning blog post with just a tablet or a phone. 

It is a beautiful HTML5 web application that has extensive media support and will take the media that you upload and create new media formatted to the major social media platforms like Facebook and Twitter. Galaxie Blog has scores of WYSIWYG editors. You don't need to know any HTML in order to create a beautiful blog post. These interfaces will allow you to upload images, videos, and image galleries, and even create maps and map routes. Galaxie Blog is also perfect for the travel blogger- it offers comprehensive tools to generate and share various types of maps that are free of charge. 

Galaxie Blog is eminently themeable. The blog has nearly 30 different pre-built themes and you can develop your own theme within a few minutes and unique fonts can be applied to any theme. 

Galaxie Blog has extensive SEO features to improve your ranking with the search engines. It also automatically structures your blog data for the search engines using the most modern version of JSON-LD. Galaxie Blog also automatically generates RSS that allows other applications to access your blog posts and create real-time feeds.

Galaxie Blog supports multiple users and user capabilities. There are 9 different user roles and dozens of unique capabilities. You can create new custom roles with unique capabilities. For example, you may assign one user to moderate the blog comments, and another to edit the contents of a post. 

Galaxie Blog supports more databases than any other major blog software and can be used with any modern database

Galaxie Blog can be hosted on any ColdFusion-based server and has an automatic installer that will guide you through the installation process. Typical ColdFusion hosting plans start at 11 per month. 

Why Galaxie Blog?

The other blog software, such as WordPress, offers a vast array of features. However, the choices that you have to make to set up a blog are often quite bewildering. 

The majority of the other blogging systems have what is called a freemium business model. This model provides basic blogging features at no cost but charges a premium for additional or advanced features. Every advanced feature set needs to be researched and purchased separately. Often, you may not be aware that these features are missing until they are needed and you may have to resort to making multiple complex ad-hoc purchases. There are also tens of thousands of proprietary themes, each one produced by different developers, and not all of them are safe or legitimate. Without trial and error, it is impossible to determine if the desired plugins that you have chosen will seamlessly work with your themes.

Galaxie Blog is different. This blog can't offer the breadth of choice that other blogging systems such as WordPress offer, however, everything is tightly integrated and everything will seamlessly work together. Galaxie Blog already has most of these freemium features that require additional purchases built-in. For example, Galaxie Blog has nearly every TinyMCE open-source plugin built-in. There are hundreds of features here from embedding programmatic code to having hundreds of silly emoticons that you can embed in a post. We also have added TinyMCE freemium features.  Galaxie Blog also supports rich image and media support along with the ability to auto-generate a table of contents which now requires an $80 TinyDrive subscription. Additionally, we have added other advanced features such as embedding static maps, maps that display the route between two or more locations, and rich gallery support. Other major freemium features include rendering your images for a perfect social media preview, advanced SEO tools that generate JSON to include rich Google media snippets to your google search results, and branded emails that go out to your user subscription base, and more. All of these freemium features are included for free.

Galaxie Blog has scores of open-source libraries, however, each library has been carefully integrated into Galaxie Blog and will work with all of our themes. For example, the buttons on your videos will take on the primary color of your selected theme. If you embed a map route, the route shown will also take on the primary color of the theme. in fact, nearly every Galaxie Blog widget will is tailored to your selected theme! You're not going to find this tight level of integration in a different blogging system.

Experience Galaxie Blog Yourself

If you want to experience Galaxie Blog yourself, please contact me, provide your full name and email address, and I will set up a free account for you.  I won't give you a sales pitch or bug you, but you can investigate the blog's administrative interfaces yourself. I am requiring an initial contact as I don't want to manage spam and adult content. 

Contact me if you're having any issues with the Galaxie Blog installation. I will try to help you free of charge. I may not be able to help you in all situations, but I will try to respond to you as soon as possible. It is important for me to try to support you.

If you are impressed with this blog, please consider going to my GitHub site and starring this repository. I have spent thousands of hours developing this over the last four years, and it means a lot to me to know that you appreciate my contribution to the open-source community.

Happy Blogging!

This entry was posted on June 9, 2022 at 1:12 PM and has received 249 views.

Galaxie Blog Custom Window Interface


Galaxie Blog allows you to create custom windows that can be used with either a ColdFusion dynamic cfinclude, or you may create custom content using Galaxie Blogs Post Editor. You can configure the window and button properties using a WYSIWYG editor. Additionally, you can set the window size, title, and button labels when creating a window.

You can use these custom windows for anything that you would like. The custom windows can be used as a popup to show the location of your business, alert your users with an announcement, or allow your users to purchase something. The window may contain a full-fledged ColdFusion-based e-commerce application with a dynamic include, or you can use a WYSIWYG editor to embed maps, images or video content. The interface automatically creates the button the launch the custom windows and you can use these buttons and place them anywhere you want to open your custom window. Additionally, Galaxie Blog also automatically creates an SEO-friendly URL link that you can use to open your custom window. 

Sample Galaxie Blog Custom Windows

The examples shown below are not comprehensive. You can include any content in a custom window that you can create in a post. The main difference between a post and a custom window is that you can place custom windows anywhere on the site. However, there is no SEO handling for search engines or RSS provided for these custom windows.

Note: I will be using content from the Into the Box conference this year. I am not affiliated with the company associated with this convention or the convention itself in any way, however, many of the ColdFusion community may find this relevant and interesting. For a full list of Into the Box information, please see the IntoTheBox site at https://www.intothebox.org/

Custom Window with a map generated by the Custom Window Editor

The following button will open up a dynamic map showing the Into the Box conference location for 2022.

Custom Window with a route

Window with a map route showing an easy but beautiful road trip idea around Dallas if you're attending the Into the Box convention. This is route is auto-generated from the Custom Window Editor.

Custom Window with a ColdFusion-based Ajax application

The following contains a full-featured ColdFusion HTML5-based application to show an example of how to use server-side processing to convert dates across time zones. This uses a cfinclude.

Introducing the Galaxie Blog Custom Window Interface

The examples above were all generated using the Custom Window Interface found in the Post Editor. The interface is quite simple, it prompts you for a window title, window height and width, and you need to put in a path for the cfinclude or use the Custom Window Editor to provide the content, which is identical to the Edit Post Interface. If you have any existing custom windows for a given post, an interface editor will allow you to edit an existing custom window. After submitting the form a button will be placed where the cursor resides in the Edit Post Interface. 

The Custom Window Interface is available on the Edit Post Interface. You can launch this editor by clicking on the Custom Window Interface button that looks like a box with an upward arrow, or by clicking on Insert - Create Custom Window

  1. If you already have an existing custom window for the post, the application will ask you if you want to edit an existing custom window or create a new one

  2. Enter the window width, height, and button label. You also must enter either the path for an existing ColdFusion template or use the Custom Window Editor to create the content for the custom window
  3. Once you are done, click on the submit button. Once the custom window has been created a message will be shown displaying the optional URL

That's all it takes to create a dynamic custom window!

Happy Blogging

Note: this is the first version of the new Custom Window Interface. In the next version, I hope to add better mobile handling of the generated content and add more window configuration options.

 

 

 

This entry was posted on July 6, 2022 at 11:34 AM and has received 20 views.

A note about this documentation

Note regarding this documentation

The next 40 or so posts provide extensive documentation of Galaxie Blogs Administrative Interface and can be searched using the search engine near the top of the page. However, it is not necessary to read all of this documentation. Galaxie Blog is intuitive and most of this information is already found in the Administrative Interface.

This entry was posted on June 1, 2022 at 7:33 PM and has received 57 views.

Installing Galaxie Blog 3.0 RC


Getting the software

  1. Galaxie Blog can be downloaded from the Galaxie Blog Git Hub Repository.

  2. You must have a ColdFusion installed on a server.

    • Your web server must have ColdFusion installed. Galaxie Blog has been tested on ColdFusion 2016, 2018, and 2021.
    • Theoretically, the blog may support any ColdFusion edition starting from ColdFusion 9, however, your mileage may vary.
    • We have successfully tested against Apache, TomCat and IIS.
    • We have not yet tested the blog on Lucee, an open-source version of Adobe ColdFusion. We intend on supporting Lucee in the future.
    • There are many ISPs that offer ColdFusion servers for as low as 12 dollars a month. Search the web for ColdFusion hosting to find out more.

  3. Once downloaded, upload the entire contents into your desired location on a web server

    • You can install the contents in the root, or in a folder in the root directory of your server.
    • We have tested the blog in the root, and in the 'blog' and 'galaxie' folders.

  4. You must have a database that is accessible to the webserver. The blog was should support the following databases, however, we have only tested the blog using MySql and SQL Server:

    • Microsoft SQL Server
    • DB2
    • DB2AS400
    • DB2OS390
    • Derby
    • Informix
    • MySQL
    • MySQLwithInnoDB
    • MySQLwithMyISAM
    • Oracle8i
    • Oracle9i
    • Oracle10g
    • PostgreSQL
    • Sybase
    • SybaseAnywhere

  5. Create the database to install Galaxie Blog in.

    • You may install Galaxie Blog using your current database, however, you need to make sure that there are no table name conflicts. We will document the database schema in later blog posts.
    • We have tested Galaxie Blog using our original BlogCFC database with no conflicts.

  6. Create a ColdFusion DSN for the database that you intend to install Galaxie Blog in.

Enable Woff and Woff2 Font Support on the Webserver

Galaxie Blog uses web fonts for typography and needs web font mime types set up on the webserver. Most modern web servers already support these web font mime types, but you may need to set the following mime types need to be set up on some servers. If the server does not support these mime types certain textual elements will not be displayed. 

  1. .woff (use font/woff as the mime type).
  2. .woff2 (use font/woff2 as the mime type).

Installing the software

  1. Migrate to the URL of your uploaded blog and the blog should automatically open the installer.
  2. The installer will guide you and ask you to enter information, such as your URL, blog name, and other information. 
  3. The installer is a 7 step process. Each screen has may provide information and ask you to hit the next button or have multiple questions. It should not take more than 5 minutes to fill out.
  4. Be sure to write down your chosen user name and password. You will need to retain this information. Galaxie Blog does not retain passwords- the passwords are hashed using the strongest publicly available encryption process and they cannot be recovered.
  5. Once you are done, the installer will automatically create the database and import the needed data. In the final step, it may take a while for the software to be installed. If there is a time-out error, refresh the browser and the installation should continue.
  6. Once installed, you should see your new blog with a 'No Entries' message on the front page. You will not see any blog posts until you make them using the administrative site, see below.

This entry was posted on June 1, 2022 at 3:16 PM and has received 52 views.

Brief Technical Overview of the Galaxie Blog Installation Process


This article is meant for developers that want to understand or debug the Galaxie Blog Installation process. 

First, if you are having any issues installing this software- please use the 'Menu - Contact' form at the top of the page to contact me. If you have time- also create an issue on the GitHub site. I can't guarantee that I can resolve every issue, but I will do everything I can to personally respond to you!

I may not be able to help you on some issues, such as installing this with Lucee or recommending a hosting provider, but t is important for me to try to enlist your help and notify me when things go awry.

Now to the technical details...

Where the site variable data are stored

The root Application.cfc variables, such as the site URL, are stored in two locations.

  • The blog.ini.cfm file stored in the org/camden/blog/ directory
  • In the Galaxie database

We need to use the .ini file to store variables as the database will not be set up prior to the blog installation. We are also storing the variables in the database after the initial installation as it is more efficient to capture the variables from the database rather than to read from the ini file. Once everything is installed we are also storing the variables in the ColdFusion application scope in order to have them available throughout the application. 

How the installation process works to set and extract these variables

When the blog URL is entered, the root Application.cfc template will determine if the blog is installed by reading the installed argument in the blog.ini file. The default value in the blog.ini file is set to installed=false, and once the Application encounters this it will try to include the 'installer/initial/index.cfm?notInstalled' template. This interface asks the user to fill out the site URL and user information. The interfaces save information that the user provides in the blog.ini file are all in the 'installer/initial/' directory. 

If your installation goes awry and you need to reinstall the application you can manually run this file by commenting out the logic surrounding the cfinclude or appending 'or 1 eq 1' at the end of the conditional logic. 

Once the initial installer is run the application will include the 'installer/insertData.cfm' template to configure the database and install the data. This process may take several minutes to complete as it is building the initial database objects, saves the data entered by the user, reads the text files stored in the /installer/dataFiles/ directory, and populates the initial data in the database. Depending upon memory and server settings this process may time out, potentially during a parseUri loop. If this occurs, refresh your browser. The application contains logic to make sure that the data is not duplicated and the application should resume the installation where it failed.

If you're manually reinstalling the database by forcing the initial installer to run, be sure to remove the code that you used to run the initial installer and force the insertData.cfm template to be run, again by either commenting out the code or by appending a 'or 1 eq 1' statement around the insertData.cfm template.

Why are we are sometimes requiring two manual changes to the file structure?

In two steps during the installation process, we are requiring the user to modify the ApplicationProxy.cfc template in the admin folder (if they are not installing the blog into the blog folder) and requiring the user to substitute 4 files (if they are not using SQL Server). It is an easy process as the installer guides you through the process and provides the exact string to enter into the application proxy template and shows the locations of the substituted files. However, I want to briefly explain the rationale for this manual process. 

First, we need to extend the application template in the admin folder. I have tried many different approaches, some work with CF2016 and fail with CF2021. I can't find a sure-fire way to extend the base application that works with all servers so I am asking the user to change the string within the extends argument in the application proxy. 

We are also asking the user to substitute the persistent ORM-related cfc's as we can't attach dynamic variables in the persistent cfcs. Certain database columns require a very long string, such as the Post.Body column. We are using database-specific language to set a max length and the database vendors have different data types for a long string (for example varchar(max) in SQL Server). We have added logic for many databases, but we have not had the time (nor the resources) to test every database server. If you are encountering problems please see the database vendor documentation for a long string (varchar(max), long text, text, etc).

If you have an idea to make this a fully automated process, please feel free to suggest any potential solutions. 

If you run into problems...

If you're running into an issue while installing the blog software, there are some tools built in the Application.cfc template that may also be used to debug your issues. There is a debug = false statement near the top of the root Application.cfc template. Set this argument to debug = true to print out all of the system variables.

Follow these steps if you want to start over with the reinstall:

  1. Locate the ini file that in the files that you downloaded at /org/camden/blog/blog.ini.cfm and re-upload the file. This file may have changed during an aborted installation attempt.
  2. Open the Application.cfc in the root directory and change the following lines near the very top of the template to true like so:
<cfset debug = true> 
        
<!--- Used for testing purposes. Setting these vars to true will allow you to re-run the installer --->
<cfset reinstallIni = true>
<cfset reinstallDb = true>
  1. Upload the Application.cfm file and try again.
  2. You should see the core application variables printed on the page along with the progress of the installer.

After everything is installed, you may run into a problem when the ColdFusion database logic, ORM, has a hiccup and there is an 'ORM is not configured' error. If this occurs, append /?reinit=1 at the end of the URL and refresh the page. You may run into one more 'uriPartNames' bug when this happens, simply run the /reinit=1 argument again and this problem should clear.

If there are other errors, please annotate the bug on the GitHub site, or make a comment on this site.

This is a final release candidate so I am sure that there are going to be a few bugs. However, please reach out to me or document the issue on the git hub site. I prefer that you document the issue so that others can also see what is going on. I spent a great deal of time developing this for the community and would like to be aware when something goes wrong. 

This entry was posted on June 1, 2022 at 12:30 PM and has received 43 views.




Footer Logo

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 "Galaxie 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 Galaxie 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.

Version:

Galaxie Blog Version 3.0 (Toby's Edition) June 14th 2022 Blue Wave theme