A new blogs.perl.org or die trying

TL;DR: 1,600 ranting words including F-bombs abound. I am testing out a new theme for this site. Also I am trying to port some content to a new CMS and put up a public test site to get feedback.

Where to begin... how about the latest problem I had. I tried to post a comment saying I fixed a mistake in my last post and it tells me I am not signed in. After logging out and in then trying it a few times with no success I looked to the github issue list. I find the following issues that seem to match my problem #100, #196, and #222. Seeing that this is a known problem I decide to see if I can fix it. I decide to start by setting up a local copy of Movable Type (MT) to experiment with. So beings my tale of woe.

Is Movable Type actually open source?

I go to movabletype.org and click on "Getting Started" and it takes me to a page where it says I need to purchase a license to "get" it.

orly_luigi.jpg

Next stop GitHub. I find movabletype/movabletype which appears to be the canonical source. Browsing the Readmes I find no information about the license and there is no documentation directory either. I grep the code for license information and find the following message:

# Movable Type (r) (C) 2001-2013 Six Apart, Ltd. All Rights Reserved.
# This code cannot be redistributed without permission from www.sixapart.com.
# For more information, consult your Movable Type license.

83218351.gif

So nothing about being open source so far. I bust out the search engine and am led to the MT wikipedia page which states MT is under the GPL. I check the citation links to find this OSS version and I get 404s and pages with no content on them.

funk_me.jpg

Dark Pattern: Shit documentation

MT has no documentation that comes with the code and the stuff on their website is piecemeal. I wish I could say this was uncommon but I fucking see it with every project like this. A seemingly useful program that is “open source” and yet to get real support and docs you need to pay a company for it. I started to get this feeling as soon as I saw how flimsy their Readme.md was. I find this practice just revolting and I have never recommended a program that employed this technique to get money out of the users.

82300944.gif

MT's default settings

You know what makes an application great? Sane defaults and MT does not have that. First lets look at saving an entry. If I start work on a post and click the save button by default it publishes it. Who thought it was a good idea to have a content management system (CMS) default to publishing entries upon clicking save? I thought hit save meant just saving the damn thing. How many times have people created an entry, saved it, and then realized their half formed ideas were now public? That does not sound sane at all.

Next is the date handling for when an article is published. When you create an entry it populates the “Publish Date” fields with your local date and time. Local date and time... timezones anyone? You see the results of this idiotic design decision on the front page of the site all the time, hell right now it is happening. My last post was at 2:42 AM local time, burnersk did a post at 9:40 AM his time and if I were to do another post that was before 9:40 AM my time the front page would still show his at the top instead of the actual newest post made.

baseketball.gif

That shit is insane. I could game the publish time to guarantee my posts stay on the front page of the site longer and in a more prominent position, above the fold. This is a terrible default setting.

More popular CMS products do not allow normal users to edit publish times by default. This feature is usually reserved for admin users. Another way to set it up is to allow the users to set a publish window and have it approved by an editor before going live. Online news sites use this technique to make sure they always have new content coming up to feed the 24/7 news cycle.

Usability

Oh there are so many UX issues, lets just roll with one anyone who has used MT knows about. Body vs Extended. WTF is this? Body means body of the article right? And extended means footnotes and the like? Wrong. Body really means article teaser or abstract and Extended means the article body. MT stacks the Body on top of the Extended in the full article view so you have to split off the initial content into the Body. This is just dumb and the terminology does not help. Issue #194 is about educating users on how to properly use MT's extended feature. Instead why not have the CMS generate the abstract based on a set number of words? Because that would be like all the other CMSes and we cannot have that. Looking at the definitions in the Creating and Publishing Entries only makes me bang my head against my desk. Who the fuck do they think their audience is exactly?

Tags and Keywords. Two fields that can mean the same thing in certain contexts. The docs say tags are for tagging and keywords are to insert keyword metadata into the page's header and can be displayed and used for navigation. So tags + metadata = keywords. We don't need both. The audience who uses this site is interested in posting content and that is it. All these other features are just getting in the way. The default create an entry page could easily be stripped down feature wise and it would be a better fit for the majority of users. I am not saying get rid of features all together just don't show most of them by default.

I almost forgot there are categories too.

american_psycho.gif

Adding assets is inconsistent. If you add an asset via the list on the bottom right you get the “Insert Asset” page and then upload the image. Then you click “Insert Image” in the WYSIWYG, select the image and click continue. You fill in some File Options and click finish. You now have a generated bit of html for displaying your image. If you start the process by clicking “Insert Image” and then uploading an image when you click continue you get the File Options screen. A File Options screen with two more editable fields that were not present when the File Options screen was displayed in the first workflow.

bzkhdgi.gif

Rage based development

I had been tossing around the idea for a new theme for a while. I contacted the site maintainers and back in July Dave Cross emailed me back and said there was interest in these ideas. Since then I have been playing around with different pieces of the site to build a quality look and feel. This latest series of annoyances with MT caused me to dig up a blogs.perl.org scraper I had written at the end of 2011.

I was so pissed off then about MT that I was going to try something else. I forget who it was but someone suggested I just didn't have the hang of MT yet and I needed to use it more. Once my comfort level increased I would find MT usable. So I set aside my plan to try created a new site. 27 posts and a slew of comments later I still think MT sucks and here I am again.

A new theme

This theme I have is missing one key ingredient before I unleash it unto all of you for review and comment. Testing it on Apple products or rather fuck Apple. Testing a website on Firefox, Chromium, or Opera/Opera mobile is easy. Microsoft provides free virtual machines for different versions of IE. The Android SDK is free and runs on Windows, Linux, Mac OSX. Apple provides nothing outside of their ecosystem. You have to run the iOS emulator on Mac OSX. Apple is the only major player who I would have to buy some piece of their equipment in order to test for their other equipment.

I don't fucking think so. Normally when I do website design for clients they can provide an Apple product for testing. I make sure to mention this upfront and it never turns out to be a problem. I currently have no prolonged access to an Apple desktop to do testing. This is where I am at with the theme. The online iPhone/iPad emulators are junk, it is just a cut down frame, not an actual native environment. I am working on getting access to an Apple desktop but I have no ETA on that or even if I can. Most of the people I know use either Windows or Linux.

A new CMS

My plan for this is pretty straight forward. Use my scraper to grab a series of articles and profile pages. Take that sample data and input it into another CMS. Setup said CMS with the new theme, test, and put a beta up for public consumption.

The next post I put up on this site will say one of two things. The ideal post will be announcing the beta CMS is up online and ready for people to try parts of it out. The less ideal post will have the new theme setup as a static version of the current site for people to try out. Either way there ain't no gettin' offa this train we on!

choo_choo.jpg

22 Comments

Because some of the problems you mentioned I actually was always just happy when I finally managed to get some plain ascii chars displayed on the frontpage. I completely dropped any undertaking of formatting or adding images or whatever. :-)

Btw: I always thought I would like to write my stuff in POD!!!

Boris, my current workflow is to write in pod, convert to HTML, then paste it in.

+100, this blog is unreliable as hell

Movable Type changed their license from GPL to 'open source with source on github' https://twitter.com/michielbeijen/status/354889439174082561

Compared to PerlMonks.org the usability of blogs.perl.org is marvelous. Thanks for the rant, anyway. Personally I'd like to see a blogging platform that fully separates article content and software - think of your articles as perl module releases that one can get from different sources and the CMS as (meta)cpan.

Are you serious? I've never seen a single bug on perlmonks, I believe. And it's usability is fine for me.

Jakob: +1 for the comment on perlmonks.
And +N to Kirk for a smashing rant.

A righteous, justified rant! The comment system here seems to basically work now, and doesn't log me out too often. The journal-posting part is another story, being basically useless. In any case, I have long since learned to defensively copy-paste any text I have entered before submitting a form, as I can never be sure I won't be logged out and have whatever I wrote thrown away.

Whatever complaints you may have about Perlmonks' appearance, at least it lets you compose posts, and doesn't log you out.

This post was worth reading just for the memes. Well done sir.

You know, you don’t have to write a screen scraper. It’s not like we use Movable Type because we’re terribly happy about it.

Did you realise issue #194 is actually fixed? (I updated it now to reflect that.) Do you know how it was fixed? By writing a self-contained Dancer app that does nothing other than render the front page, straight from the database, entirely outside the Movable Type codebase.

We’re on Movable Type because Six Apart, when they still existed, graciously donated a large amount of developer time to build an installation and theme for us that would work for the needs of blogs.perl.org – it was, though, essentially thrown over the wall, since none of us really knew anything about MT. We had two options: use that and get the site running without being able to maintain it ourselves, or don’t use it and wait to find the time to build our own system… someday. (Plus, I was the only one who was already wary of MT at the time – the others hadn’t had any experience with it to warn them.) So we made the pragmatic choice – I was unhappy but I relented because better something than nothing. And as long as Six Apart existed and they were willing to carry out our coding, that worked. But they got bought out not long afterwards and the amount of donated time took a noise dive. Ever since, very little has gotten fixed, and there is so much to fix. But for us to do that, there are two problems – first, getting familiar enough with MT, which is a large and complicated system; secondly, doing so in spite of the knowledge that it’s most likely a sunk effort, an investment without a future. A recent MT update broke this commenting/session interaction, and we have no idea why – it seems likely due to b.p.o customisations rather than something in stock MT.

What we have fixed, we have fixed by subverting MT, mostly. (E.g. automatic post truncation.)

So if you have the time and inclination to write a multi-user blogging platform that we can replace MT with, don’t think you have to find ways to bypass blogs.perl.org: we’re all ears ourselves. We’d be happy to have something to replace MT with. And no need to screen-scrape – you’d get to suck it straight out of the database. No need to do this the hard way.

Come talk to us.

Another weirdness with bpo/MT is the formatting. I don't understand why pre + code are both needed to format code snippet instead of just pre or code (and MT does the hard work of guessing the language of the snippet, since it's not always Perl anyway).

Over the years I've come to tolerate MT, but one wishlist I still like to see is comment reply notification by email. Does MT have that?

As for perlmonks, they have their own sets of WTFs, but understandably the codebase is much older and it targetted HTML 3.2 or something. One particular UI weirdness: to clear reply notifications, you have to press [Talk] but does not say anything in the input box. Perhaps they should've added another button or checkbox isntead.

I don't understand why pre + code are both needed to format code snippet instead of just pre or code

Because you’re writing HTML and in HTML the <code> is for saying that something is code while <pre> is for saying that whitespace is significant. The syntax highlighting is then done separately in the browser, using Javascript code.

If you don’t want to be writing in HTML, then don’t write in HTML – you can use Markdown instead. (For your own entries anyway. In the comment section of another user’s blog, unfortunately, you are reduced to conforming with whatever formatting options the blog’s owner chose for you, which is likely to be the default plain HTML only. (Remember that MT is a (single-user in spirit) blogging system, not originally a community engine.))

@vsespb @educated_foo Yes, perlmonks works, but comparing it with StackExchange it scores even less then Movable Type compared to WordPress (in my personal subjective measure ;-). Nevertheless, I think it's worth to consider joining forces by making blogs.perl.org a nice looking view to all nodes in the (to be created) "blog" category at perlmonks.org. I guess one could make perlmonks a nice looking and usable site with some CSS and JavaScript - the current state looks like the webdesign was frozen in the early 1990s.

Sorry, I just realized that perlmonks is also driven by an outdated, not-quite-open-source platform (everything engine). My applause to anyone who helps freeing blogs.perl.org, perlmonks.org and all these other gated perl community sites. A counter example is metacpan.org because: first it is easy to contribute to the source code, second it provides an open API, and third one can login via GitHub/Twitter/Facebook/Google.

Hi Kimmel.

As one in MT development team, I'm sorry for your experience with MT. a bit of clarification:

The current license is not open source. it was, but recently we changed the license and the wikipedia article wasn't updated yet. (I just edited it)
Now it is close source, with the source available at github. There is still a lot of confusion in the community what is free and needs commercial license, but it will be resolved over time.

As for the documentation, I don't think that we have a layman guide to MT, only more specialized role-based documentation. (see http://movabletype.org/documentation/)

About timezones - everything have a timezone attached. a user have one and a website have one. so when you view times inside MT's screens, you see it in your local timezone. When the data is published to the website, time is displayed in the website's timezone.

Body vs Extended - sounds like a theme-specific customization. In general we have excerpt - a field that can be filled to set a specific excerpt, or if it is empty, uses the first X words from the body. Extended is not used by default.

tags, categories and keywords - here too, keywords are by default not used.
tags and categories are two ways to arrange and manage entries. both have pros and cons, and MT supports both.

Summery: yes, the usability of MT is not very good, but some of your grips are caused by this specific site customization. which is unfortunate.

I guess Melody, the open source fork, is dead too.

Preach on, Brother Kimmel. We here in the choir have but one thing to add:

Hallelujah! Amen.

(Okay, maybe two things to add ...)

The OpenMelody project could have really used your enthusiasm a year ago. MT4 remains open source, as is the Melody project. However neither is actively maintained. And they are damn good blog engines, even with their faults. The template tags rock, and the static publishing engine is extremely flexible and stable. However the code base is large, mature, and most of it was written pre-modern perl. I would love to see a modern perl blog, I just hope that you can see beyond the flaws of MT to appreciate the things that it did very well.

Oh, and check out the ConfigAssistant addon for Melody/MT4 developed by the OpenMelody group. A very fine piece of work. Too bad SAKK chose not to adapt it for MT5/6, I might have stayed on...

Yeah, I'm not fond of it either. I can't help thinking "wouldn't a simpler solution be better here?"

Heck, an FTP server with logins would be a better blogging platform. Or a free Wordpress account -- perl.wordpress.com is still free.

please, no *.wordpress.com, it's banned in Russia.

Leave a comment

About Kimmel

user-pic I like writing Perl code and since most of it is open source I might as well talk about it too. @KirkKimmel on twitter