Gregory's Blog
long meetins stink

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 928 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 246 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 283 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 321 views.

Introducing the Galaxie Blog Administrative Site

A Brief Introduction to the Galaxie Blog Administrative Site

Galaxie Blog is a very powerful HTML5 blogging platform and it contains all of the essential tools to create a beautiful and compelling site.

The Galaxie Blog Administration site is used to securely manage your blog and can be accessed by clicking on the user icon near the top of the blog page or by appending '/admin' to the blog URL.

You must have the proper login credentials to access the administrative website. Passwords are encrypted using the highest available encryption standard and plain text passwords are never stored in the database.  

There are over fifty different administrative interfaces, and each interface is carefully designed for both mobile and desktop clients. You can administrate your blog using a mobile or desktop device. There is also native phone functionality, for example, when you are uploading media, can take a picture or use a picture previously taken from your phone.

We have taken great care to intuitively organize the different interfaces. These interfaces are simple and unobtrusive and typically only become available when you need them. 

Galaxie Blog uses a windowing system, similar to Windows or the Macintosh, to open up an interface. The windows have minimize, refresh and close icons at the top right hand of the screen. The minimize icon allows the user to minimize the window to navigate around or open up a new interface. Refreshing the window is handy if you want to set the interface back to its default state, for example, to clear up the filters that you may have applied to an HTML5 grid. 

The site is forgiving and invites exploration. If you erroneously click on a delete button, you will be prompted to confirm the deletion. A new user should be at ease while investigating the interfaces without worrying that something will go wrong.

If you are a site administrator, there are a dozen or so different major interface categories. There are multiple user roles and capabilities, if a user does not have permission or role they will not see the icon to launch the interface. 

Many of the interfaces initially open up an HTML5 grid with links to detail interfaces. Nearly every column in the grid is searchable and sortable. When editing a post, you can search for a partial title to find and open a particular post. We are covering these grids in more detail below.

There are scores of different advanced WYSIWYG Galaxie Blog editors. Each editor has a certain purpose, such as editing a post or uploading an icon for your site. All of the editors are WYSIWYG and offer a real-time preview. We will cover these interfaces in future posts.

This entry was posted on May 20, 2022 at 12:35 AM and has received 302 views.