GuestNo new alerts

0.2 Released

- Announcements75
 
Ever since September 14th, I've been working on version 0.2, or rather, a number of little updates which collectively could be considered v0.2.

There are perhaps over a thousand changes in v0.2, so I can't really go in depth about everything here or even cover a good portion of the changes, but I can put a spotlight on some big things that I've done.

Significantly reduced boilerplate. - I've significantly reduced the amount of boilerplate in the software to help make things easier to maintain and developer for.

Significantly more test cases. - I've added a number of test cases to the test suite to automatically detect regressions and bugs which pop-up every-time a new commit is made.

Pluggability - A number of hooks, pseudo-hooks and other things have been added to make the software a fair bit more palatable, so that it's easier to write plugins to extend it's behaviour or to outright replace portions of it.

Better Unicode support - Unicode support has been improved in word counters (it was particularly bad for languages which don't use spaces) and a number of other places.

Expanded upon documentation - You might not consider this part of 0.2, but I've expanded upon the documentation to try to help people administer the software, restore lost knowledge from the config.go to config.json transition, and more.

Topic view counters for Cosora - Topic view counters are a contentious feature... Particularly, as they can be a little tricky to actually implement in every theme, but they've snaked their way into Cosora to try to give users a bit more context as to what is going on.

Order topics by most viewed. - You can now order topics in the topic list by the one which has had the most recent post or by the one with the most views.

Many new phrases. - To try to make the software more approachable to any international users out there, you can localise more of the software than ever before.

Search & Filter Widget. - The Search & Filter Widget is a handy little widget which allows you to quickly look-up a topic and to even filter down your search before doing so.

Widget Manager. - The Widget Manager has been added to help you manage the various widgets you might have on your site like the Search & Filter Widget.

You can add widgets to pages, remove them, reorder them, etc.

Online Users Widget. - The Online Users Widget shows you which users are online at this very moment.

Online Users Context Widget. - The Online Users Context Widget shows you which users are currently viewing the topic you're currently on.

Level List Page. - The level list page has been added to show your current level, your score and the score requirements for both levels you haven't unlocked and ones you have.

Level Bars. - Levels bars are shown in a few places like the Level List, Account Manager and Profiles to give users an idea of how far they are from the next level.

Better no-JS support. - I've done a few things to help improve Gosora for users who don't have JavaScript disabled or who do have it enabled, but have it broken by some sort of extension (E.g. Adblock) or just happen to be running a browser so old that it doesn't work properly.

For a complete no-JS experience, you might want to disable the JS anti-spam via config.json. configuration.md might help you with this.

Go 1.11 - The minimum requirement was bumped up to Go 1.11, so we could take advantage of the modules feature which was released.

More benchmarks. - A few new benchmarks were added to help me find deficits in Gosora's performance.

MicroAvatar. - Smaller noavatars will be served now to help reduce data usage on mobile and to help reduce the resources spent processing images there as-well.

Refactoring - A significant portion of the code-base has been refactored to make it more maintainable and easier to develop for. Refactoring generally means rewriting a small bit of code without breaking it's existing behaviour.

Simple admin performance stats. - Very simple and rudimentary performance statistics now appear in the footer for administrators to help developers to discover abnormal behaviour during development.

Better security. - I've done a number of things to improve Gosora security like starting to roll out Content Security Policy Headers, to try to reduce the probability of plugin developer oversights and fixing genuine security vulnerabilities.

Favicons. - You can now use favicons by dropping them in /public/ with the other static files. A favicon is a small icon which appears on the tab for a page.

SMTP TLS. - For improved email security, you can now connect to a SMTP server over TLS.

Removed the Tempra Conflux Theme. - I'm sad to say... With a heavy heart, that the Tempra Conflux Theme has been removed from Gosora...

It has served us well over the years, but it gotten harder to maintain and it's been falling behind bit by bit, so I ended up deciding to cut it loose.

It will live forever in the Gosora Git Repository.

Better pagination. - I've improved the paginators by allowing you to jump to the first page, last page, etc. I've also added full paginators to some spots which didn't have any both and only had simplified next / previous pagination.

Login Logs. - I've added login logs, so you can tell who has logged into your account, from what IP, and when.

Nox UI and UX. - I've greatly improved the user interface and experience for Nox in too many ways to count and I plan to continue doing so in the future.

Faster templates. - Through a number of optimisations including transpiling separate templates for members / guests, reducing the number of function calls, temporary variables, etc, I have significantly improved server-side template rendering performance.

More transpiled template features. - I've been doing some work here and there to help to make transpiled templates more compatible with the text/template templates they're based on.

They stick lack a number of a features, but they're a bit closer now.

dyntmpl. - dyntmpl is a small feature so that we can have pages which use both transpiled and compiled templates. This helps to make them a bit faster while not having to emit fifty giant function frivolously.

Better SEO. - I've done a number of things to help SEO like improving performance, canonicals, etc. Like most SEO related things, this likely won't have a huge impact, but every little helps.

Social Network SEO. - This isn't quite SEO per say, but I've added a number of things like open graph tags to make posts show up as little rich snippets on social networks rather than as just a link.

Post Attachment Manager. - This likely should have gone in the original v0.1 attachment implementation, but you can now manage the attachments on a post.

You can add new ones, remove them, copy the URLs, etc.

AJAX Pagination. - As much as I would love that I've replaced every paginator with AJAX paginators, only a few select areas have it so far.

Still, AJAX Pagination is a nice little feature where topics on the topic list and a few other areas are loaded in without having to reload the entire page.

This helps reduce the amount of resources used making the page load faster and reduces the amount of data sent back and forth between the user and the server.

More reliable WebSockets. - I've done a few things to try to improve the reliability of the WebSockets connections, as I noticed them getting stuck a lot before.

Better support for mobile. - I've improved support for mobile in a few places the menu where things which traditionally overflow on occasion and particularly in Nox.

Bigger caches. - The size of the server side caches has been increased which means that Gosora can serve more requests out of memory rather than having to go to the database for them.

Fewer queries. - I've aggressively cut down the number of queries in a few spots to help reduce the load on the database and to help things get done faster.

Password Resets. - Better late than never, but you can now reset your password, if you forget it. Please take good care of your email accounts and use 2FA for your Gosora account, if you particularly care about security.

More template features. - I've added a number of convienience features like reltime, abstime, etc. to run certain tasks on demand rather than wasting resources pointlessly and to make it easier for theme designers to customise their themes.

Database Indices. - I've added a few database indices to make a few queries faster.

Google Site Verification. - You can now set your Webmaster Tools Site Verification Tokens via the Settings Manager rather than having to fiddle with the header to add a meta tag.

Per-theme Template Overrides. - Themes can now override templates.

Quote button and better quotes. - You can now quote other users with the press of a button. Also, quotes can now be considered a core feature rather than a bundled plugin level feature.

Watchdog Resource Manager Goroutine. - The Watchdog Goroutine helps to manage data in the cache, it evicts low priority data during times of churn and high activity and helps to keep things in order.

Far better client caching. - Client caching is far more efficient and effective now.

Asynchronous JS Loading. - Scripts are now loaded asynchronously when possible to avoid stopping everything from being loaded and run just so one thing can be.

Misc Performance Improvements. - The performance of a number of little bits and pieces has been improved.

More bots tracked. - More bots are tracked by analytics now, so you can have a better idea of which machines are hitting your site and how frequently. This includes Semrush, Facebook's Bot and a few others.

Better Noavatar Caching. - The same URLs are used for noavatars across Gosora installation to increase the probability of one getting served out of the CDN's cache or browser's cache.

Backslash escaping. - You can use backslash escaping in more posts now to stop bits of HTML or Markdown from being interpreted as oode rather than text. To use this, all you have to do is put a backslash in-front of it.

Better non-standard port support. - Support for non-standard ports has been improved to make it easier for users to setup development installations and maybe even exotic ones.

Better localhost support. - If you set your host to localhost, then requests to 127.0.0.1 or ::1 which could be considered equivalent will be redirected to localhost rather than whitescreening.

The same is true if you set the host to ::1 and a user navigates to localhost or 127.0.0.1.

UX Improvements. - A number of UX improvements have been made, too many to count, to make the software easier for everyone to use.

More graphs and larger time ranges for analytics. - More graphs have been added to the analytics pages to make the data easier to visualise.

You can also view data from the past three months and year rather than being limited to the past month.

More flexible parsers. - More flexible parsers have been added in a number of places for language headers, posts, etc. to reduce the number of edge cases and strange bugs.

Return of Server Push. - Server push is back. This is a feature which resources are pushed immediately by the server rather than waiting for the client to ask for them, something that may or may not take a while to occur, particularly if there is a blocking script.

There are a number of other changes too and you will have to check the Updates Forum and commits to see all of them.