Jay Little
PEngine.core beta is live!

10/02/2017 03:28:37

Let me start this off by saying: It's been a hell of a journey. The last time I ported this app to a new platform was back in late 2012 when I ported it to ASP.NET MVC. I honestly forgot how much work it was. But it was worth it. So worth it.

Why? Because for the first time I can run my own website using my own software on my operating system of preference: Linux. Anybody who knows me knows that I've been committed to moving away from Microsoft platforms for awhile now. That may strike you as ironic given that this new port is written in C# and utilizing Microsoft's ASP.NET Core 2.0 platform, but I can assure you that it is not. When software is truly free (in terms of freedom not beer), it doesn't really matter whose name is attached to it. That's because the users have been empowered. .NET Core is free software in the only sense of the word that matters. The users are free to use it, change it and dissect it as they please.

In any event Presentation Engine Version 5.0 beta is here. I have transitioned both of my websites to it and in the process transitioned to use linode as my primary hosting provider. I've had a good run with Host Gator for a long time and I really appreciate the good service they've given me. If you are interested in Windows hosting, I can think of no better provider to recommend. However rather than transitioning to their Linux hosting, I decided to move to a full blown VPS solution as I wanted more control than a typical shared hosting plan was likely going to provide me.

It's worth keeping in mind: This version of Presentation Engine constitutes a MVP (i.e. minimally viable product). A few features are missing from this release, namely Forums. Honestly though, I really don't care about forums. It only gets added to the site as a feature (which has happened twice now over the years) when I want to work on the site but lack any good ideas regarding useful features to add. Let me promise you all here and now: I will never fall into that trap again. In addition, features like clippy and l33t speak have also hit the cutting room floor. Neither of those features will be returning anytime soon, mostly due to my decision to allow for largely javascript free browsing experience.

Take heart though because I've got good news to share as well. Here are the major highlights:

  • The old article/post syntax is dead. We now use markdown with extensions.
  • The uploader is much, much improved. Lots of new features and UX tweaks that make things a lot easier.
  • Support has been added for twitter cards (because that's my primary social network)
  • SQL Server Embedded, abomination that it was, is dead (everywhere), buried and gone. PEngine now uses sqlite as its primary data store.
  • The cache busting system for application resources is now totally transparent and awesome
  • All hashed passwords are now seeded with a randomly generated value produced during the first run of the application
  • We now support noscripting end users. In the event that javascript is enabled, the end user experience is slightly enhanced.
  • Admin interfaces have all been rewritten as vue.js components. Dependencies are minimal.
  • Publish process for the app automatically runs npm and webpack so you don't have to
  • All code is available on github @ https://github.com/jaylittle/presentation-engine

Here are some caveats:

  • Converting from SQL Server Embedded DBs from 4.x requires use of custom utilities that can only be run in Windows. The utility exports to XML and our process then imports it into sqlite
  • The XML import process will auto convert the old syntax into markdown compatible content.
  • The DAL layer has been designed so that other data stores might be relatively easily added in the future.

That's all there is to say for now. Once my two websites hit battle tested status, I'll be officially publishing downloads for the new version. Until then, feel free to cruise on over to github if you want to check it out, contribute to the project or even setup your own instance.

[Top] [Rss] [Email]