Wednesday, June 22, 2016

Peruse 1.0 "The Birthday Release"

One day, about half a year or so ago, it came up in a discussion that while we in KDE have a lovely document viewer named Okular, we don't have something that is well suited to actually reading things, comic books in particular. So, a project was hatched to fix this. I've blogged about it before, and made a few tweets on the topic, but today is special. Today, 1.0 happens.
(Alright, so it technically happened yesterday. But it's still special. At least, i think it's kind of special - it's called the birthday release for a reason, donchaknow ;) )

Meet the Peruse comic book reader. This little application is based on KDE Frameworks 5, and is designed with the same principles as Plasma in mind: It should get out of your way and let you read your comics, comfortably. The user interface was designed and built using the Kirigami components, which the famous diving tool Subsurface also uses, and which is being developed by KDE's Plasma and VDG teams.

The welcome page, where you can pick up reading where you left off last time, or navigate your way through your library in a range of different ways. Or, just open a file the way you might do it in other applications, if you've not got the thing you want in the library locations.

The navigation sidebar you have available when reading your comic. In full screen (click the button in the middle), with the controls hidden (tap the comic view), you can show this by swiping in from the side, or with a hook gesture by swiping up from the bottom (because Windows eats the sideways swipes).

When you reach either end of the comic and tap to try and continue past the end (by tapping the sides of the view), this drawer shows up to let you switch to other books in the same series. Because you don't want to be stuck on that cliffhanger ending, right?

What Lies Ahead

So, what is next for Peruse? Well, apart from fixing bugs which have made their way into the release, and pushing various bits of code upstream that need to be upstream (such as the karchive rar support, which i discussed with the karchive maintainer last week; more on that in a different blog post), there are some big things that need doing (and some not so big things, obviously, as well).

The things which are already planned can all be seen on the Peruse work board, but i feel that i should highlight the task entitled "Get Comics Online". Right now, the way you get comics is that you open your web browser and point it at some website where you happen to know comics can be found, such as's Comic Books and Graphic Novels site, and then download things from there, which you then open Peruse to read. Now, that's all well and good, and that, basically, works. However, it just isn't good enough. The experience is jarring, and it really is just a bit silly when there are ways of making that much more pleasant.

Enter KNewStuff, a library created back in the olden days when the K in KDE still stood for Kool, and KDE was a bunch of software rather than a bunch of people who make software. The library was built to make it possible to get new stuff, specifically Get Hot New Stuff, into your applications, and to do so in a semi-social manner. Fast forward some ten, fifteen years, and we have a framework which, while it certainly functions (every tried getting new wallpapers using that little button in your desktop settings?), has a design which doesn't quite fit with how software tends to be built today. So, the next couple of months is going to be spent turning the functional framework into a modern, modular one which will work for a wider range of use cases and workflows. The work has already begun, and a plan was hatched at the Randa Meetings 2016 for how to proceed.

What does KNewStuff have to do with, though? Well, honestly not a great deal. However, the plan for Peruse is to have a system which will allow you to have both KNewStuff capable sources (such as, which things like Parley and KStars use in various forms), and non-ocs based ones, which will require more intervention in code form by yours truly.'s archive as linked above gives us a nice target for that: Lots of content to get, with licenses that means we can actually suggest people use it (read: it's not illegal content), and it is well structured, but not ocs based. So, having Peruse able to use those two types of sources means we should cover a fairly nice amount ground.

Ideas and Bugs

What if you have more ideas than those on the work board? Well, i would love to hear from you in that case! No idea is too crazy or far out. No, really, they're not - they may just not happen immediately ;) Anything that isn't small should likely not go on the bugtracker, though, but rather directly to me. If you want to catch me, either comment here, or get a hold of me on any number of various platforms, such as freenode irc (where i'm leinir and hang in a fair few channels), or twitter or, or, or... Basically, if you run into someone called leinir out there, it's fairly likely it'll be me.

As with all such first releases, Peruse 1.0 is a bit rough around the edges and there are plenty of features that would be great to have in there - for example, there are no visual clues to suggest you can tap on the sides of the viewport to change pages when reading, and pdf and epub support feels very different to cbr support (and much less comfortable). If you come across any of those issues, please make sure to tell me about them - submit a ticket on the bugtracker for anything you run into that isn't right (though, please, and this goes for reporting on other products as well: check and make sure it hasn't been reported before. Help us help you :) )

Even More Awesomer!

On the note of helping us help you: The final sprint towards the release happened in part at the Randa Meetings 2016, and many other amazing things were achieved there. Not only that, but other sprints that KDE has through the year consistently yield both some heavy, intense coding sessions, and a lot of decisions which are just too difficult to make when you are not face to face with the people you need to talk with. So, if you want us to keep going and make more amazing stuff, click the banner below and donate what you can. If you can't donate, spread the word instead, help us raise enough to have the sprints we need to make KDE's software even better!

The word of the day is: solstice - because this is the longest day of the year and that's pretty neat :)

Labels: ,

Thursday, June 16, 2016

Perusing Progress at Randa Meetings 2016

Over the last couple of days, the 40 or so people here in Randa have been, amongst other things, been learning how to pronounce the name of the village correctly, treated to some lovely food and chocolate, and most importantly, been very, very busy learning from each other and producing great amounts of both code and plans, and as you can see from the picture below, smiles.

One of those who have been learning new things is Chris, aka Makenshi or chaz6, my better half, who has gained KDE developer access, and is now hard at work on adding GDAL support to Marble. As you can see below, it is coming along very nicely! Not only that, the initial version of the plugin has been submitted as a review request.

For my own part, i have been hard at work getting Peruse whipped into shape for release, which has meant the getting the series navigation done more pleasantly, and the addition of translation contexts to all strings in the application. As you can see below, the drawer with book information isn't that pretty, but it works, and it pops up when you try and move past either end of the book you are reading, just like you might recognise it from your ebook reader.

It has also meant building packages for a distribution i have very little experience with. While i may be a fairly proficient user of the open build service, which i have used a great deal for rpm packages over recent years, the creation of deb packages has always been something of a dark art to me. Over the last couple of days, however, that has become much more clear. A painful sort of clarity, certainly, but clarity none the less.

The end result is that i now have, on the Peruse website, a repository of deb packages for Peruse, and for Kirigami and the Okular frameworks branch both of which it depends on, all still built on obs, which means that updating the packages is very, very simple for me, and they're shipped to the users moments after they are built. In the words of Jazz Show host Louis Balfour: Nice.

The word of the day is: peruse - because i'm a silly person who likes that word, and thinks that perusing is the most sensible way of describing the experience of consuming comic books and graphic novels :)

Labels: ,

Monday, June 13, 2016

Randa Meetings 2016 is go!

After a nice, mostly uneventful trip to Randa, which involved picking up David on the way to the airport and then a long train trip on the very pleasant Swiss trains, we are now settled into the computer room and ready to get on with this year's meeting.

So, what will i be doing this year? Well, a few things, really:
  1. Hopefully we (that is myself and my better half Chris Hills, who has come with me this year) will succeed in getting him embedded in one of the teams, which is something we've wanted to do for ages, and this year it just seemed the time to get it under way for reals yo(tm). This is already well under way as i write these words, and that's pretty neat :) Thank you for being such a welcoming community! :D
  2. Get the first real release version done of the Peruse comic book reader app, which is based on KDE Frameworks 5 and the Kirigami Qt Quick 2 UX components
  3. Begin work on the content store support in Peruse.
  4. Hopefully get the Gemini microframework whipped into some semblance of usable shape (it would be nice to be able to use Calligra Gemini 3.0 for writing). This, however, is less critical than the others, for reasons which will become clear in the hopefully not too distant future. Very positive reasons. Keep your eyes peeled ;)
Points 3 and 4 above are... well, if you have followed me since i left university, and in part even during, you will know i've been involved with a fair few of the odd supporting fringe bits of the KDE community, and... it seems like i am going to be able to tie a few of those together into something coherent and functional. So, yes, watch this spot ;)

Now, do you like what we do at these sprints? Help us keep going! Sponsor it with any amount you can, or if you can't spare any funds, spread the word :)

The word of the day is: tea. Because that is totally a thing we can have here :)

Labels: , ,