Linux doesn’t have Photoshop.

One common rant I get to hear when I try to help someone to switch to Linux. It is almost 2020 and say what? people still agree with this statement. Of course, they are right, cause Adobe didn’t port Photoshop to Linux. But are we as open-source software developers so incompetent that we can’t even put together an image editing solution that people can look up to? Let’s try to dig that a little bit.

A little bit of disclaimer first, I have been associated with Krita Development for the last year or so, nothing much just a volunteer developer who drops a random patch every now and then. So the post is obviously all about Krita and how it differs from the so-called “industry standard”.

I started using Photoshop when I was in High School and obviously it was a ——- copy. Used to do little catalogs and textual illustrations for the art gallery of the school. After a couple of years of usage I switched to Linux, tried out GIMP for a while and Krita but at that moment I didn’t like any of them. I was using the same ——- copy over wine. As far as I remember it worked better than the Windows version at the time, though had a bunch of quirks of its own too. Fast forward by the time I was leaving school, I was more of a developer than a designer. And as a developer, I tried to make my own Photoshop which I later ditched and decided to hack on Krita instead.

In the last year, I have come across a lot of complaints regarding Krita. For which I didn’t have the answers at that time. So I will try to answer some of them here now.

Why don’t you folks copy the PS’s interface, it would be much better, you know right?

Krita doesn’t actually have the same UX as Photoshop so, copying that is impossible. Krita offers many more options when it comes to creating stuff from scratch and a UI like Photoshop would just hide a lot of stuff. If you have any suggestion, please feel free to open an issue on the bug tracker and discuss with the developers.

Krita is so unstable, it just crashes, I just can’t use it, shitty software.

You know right, Krita doesn’t have a budget like Adobe to do thorough testing. So please report a bug on the bug tracker. If you take a look at the team which makes Procreate, they have 17 employees. 17 people for a digital painting app that is available for a single platform. Now imagine how underpowered Krita team is, considering there are only 5 paid developers and Krita is available for Windows, Mac, Linux & now even Android.

Krita doesn’t work with my tablet, bad Krita.

There is a lot of possibilities, try checking the FAQs. If still after applying the suggestions it does not work, it is just a bad tablet manufacturer. Krita adheres to the standard APIs provided by the Operating System. Unfortunately, your tablet manufacturer is a stupid one, who just checked whether the tablet works with Photoshop or not to save costs.

The text tool is horrible, how could you even ship it?

Yes, all of us know the text tool is horrible but at least it is a bit better than the last one which was just pure shit. I am trying to look into it, but at the moment, I am just going through the SVG2 text specification and trying some experiments so I won’t promise anything.

That is such a basic thing how can they miss it, the developers are idiots.

We have a bunch of artists whom we ask before implementing a new feature or altering an existing one. If you still think we are doing wrong, you free to open an issue on the bug tracker and have a discussion, please.

There is no clone, smudge, burn, dodge, blur or eraser tool, what a piece of trash, meh.

Ahh, just check the brush presets, Krita’s brush engine is so powerful that all of them can be shipped as brushes. By the way, that reminds me, how Adobe copied our Erase mode into Photoshop, lol.

You folks talk about non-destructive editing, but you don’t even have smart objects.

Actually, we have them, they are called file layers and for non-destructive transforms use the Transform Masks.

Krita has all the bases covered, you only need to add these things and I can ditch GIMP/Photoshop.

The feature you are requesting is probably for Photo editing or manipulating images that are currently not in our focus. Though we don’t mind accepting patches regarding them. For example, I worked on Magnetic Lasso this summer, which is coming under image manipulation stuff and it did land in the master. So you need to do that yourself or need to find someone to do it for you.

There were some more, but I can’t remember them at the moment so I would keep them as the content for future posts. Krita has assistants and reference images which Photoshop doesn’t have, at least I didn’t find one. And as far as I know, it just got the stabilizer last year along with the Erase mode for brushes. That mandala brush which they got recently, meh, we had that for years. So definitely Krita offers more when it comes to creating stuff from scratch. On the other hand, Krita also misses a lot of Photoshop features, while most of them aren’t relevant for Digital Painting, some are. We would definitely like to have some of them which are related of course. But at the moment the focus is on bug fixing.

On another note I did Krita Weeklies every week and I still do, it is that this is holiday season and 2 of the main developers are spending a little bit of time with their families, so I gave Krita Weeklies a small rest.

Oh, in the post I told everyone to open issues on the bug tracker but most of the people don’t find the KDE’s Bugzilla instance to be user-friendly. For those folks, we have a brand new discourse forum for the same thing, do pay a visit to the Krita Artists.

Bugzilla: https://bugs.kde.org

Krita Artists: https://krita-artists.org

You can also drop a message to any of my social media handles below, I would be happy to assist. :wq for now.

P.S: This post got longer than I imagined, so being lazy, sorry for any typos and mistakes.

less-data-doesn’t-mean-a-lesser-experience

After yesterday’s post, someone on Twitter expressed concern about providing a “degraded experience” to users who have Save-Data enabled.

It’s far from the first time I’ve heard this concern expressed. A user sees “Save Data” as an option and says, “Yeah, of course!” but they may not want a lesser experience as a result.

It’s a fair concern, I think. We make a lot of decisions on people’s behalf online and certainly deciding to provide a degraded experience in this situation would be a questionable one.

But it’s also an avoidable one. One of the things I think is so great about the Save-Data feature is that it gives companies some sort of control over how their brand is experienced in data-constrained environments. They’re not relying on a proxy service to do a bunch of manipulation on their behalf, hoping it turns out alright. Instead, they have an opportunity to be proactive and careful consider how they can provide a low-data experience that still reflects their brand in a positive light.

There are endless ways you could do this without causing your the experience to feel lesser in any way. Here are a few ideas.

Lower resolution images

Often we serve high-resolution images to high-resolution screens. When the Save-Data header is enabled, we could instead serve up a lower resolution image by default.

That’s exactly what Shopify is doing now. If I open the homepage with Save-Data off on my phone, the site weights 906kb. 292kb of that are images.

If I pass the Save-Data header and reload the page, the site weighs 791kb, with 176kb of that being images. That’s a 12% drop in page weight. And visually, I frankly can’t tell the difference.

This may not be the most significant change you could make, but it’s also one of the least intrusive. After yesterday’s post, Gatsby was super quick to get an issue filed for adding support to their gatsby-image plugin, and it looks like someone already submitted a PR for review to handle it.

This is also something browsers could do by default, though it sounds like that isn’t the case so far.

Fewer images

Taking it a step farther, you could serve fewer images (something Jeremy Wagner recommends in his excellent article on Save-Data).

One of my favorite examples to use here is a news site. I don’t know of one that does this currently, but it’s easy enough to imagine what it would look like.

Take, for example, the BBC site. Like many news sites, you have some major stories with larger hero images, and then you have supporting stories with thumbnails for each. On my desktop, that’s 1.5MB of images.

The CNN home page, with a hero image for the main story and thumbnails for each of the supporting stories.

I went through and removed the thumbnails for the supporting stories and got that total down to 966kb of images. I was pretty conservative too. I didn’t touch any of the thumbnails used as backgrounds and didn’t touch any of the thumbnails related to videos. There’s plenty more that could have been shaved.

The CNN home page, with a hero image for the main story and thumbnails removed from each of the supporting stories.

As it is, the experience looks different, sure, but I would argue not in the least bit degraded. It’s still very clean and reflects nicely on the BBC brand.

Remove web fonts

Another example from Jeremy’s post (he’s smart, that guy) is to remove web fonts if Save-Data is turned on.

Now, depending on the site and font in question, this may be a more controversial change to make. As always, your mileage may vary, you certainly don’t want to start implementing every optimization here without first considering if it’s right for your situation.

But I would argue that more sites than not could get away with this, provided they took the time to have a solid fallback font stack in place.

Take, for example, the CNN site. On the home page, CNN loads 6 different files for their CNN Sans font, totaling 251kb. (Let’s just ignore for a moment that they could probably cut a few out or do some subsetting to help reduce that a bit.)

Falling back to Helvetica Neue, as they currently do, is a bit too jarring even for me. But falling back to Helvetica or Arial isn’t. There’s a difference, sure, and I do think the CNN font looks a bit better. But 251kb better when I need to save data? Probably not. Again, nothing here looks broken.

You could probably do even better than this in most cases. I’ve had a lot of success using Monica’s Font style matcher tool to tweak different CSS properties to create fallback font stacks that are nearly indistinguishable from the original web font (often with similar results to what Harry has seen).

Cut back on the ads and tracking

Ok, I’ll be the first to admit this is a broader discussion around the business implications, but I promise you none of your visitors will complain if you decide to scale back a bit on the ads and tracking in a data-constrained situation.

Some companies are already doing something similar when GDPR applies. USA Today is a notable example. Someone profiled their page soon after GDPR and found that while their site originally loads 5.2MB of data, the GDPR version only loads 500kb. That’s a massive data saving right there, and again, the site doesn’t feel broken in any way.

Progressive enhancement without the enhancement

If you build using progressive enhancement, Save-Data is a chance to consider maybe skipping a few of the enhancements. That’s not that far from the “cutting mustard” approach that was popularized by the BBC.

Maybe leave the carousel out in place of a single image

Maybe don’t load that extra JavaScript file that turns some of the static content into more dynamic interfaces.

With progressive enhancment in place, not only would the change be pretty simple to implement, but you would also know that the experience you provide would work and look just fine. Because building with progressive enhancement means you’ve already considered what happens without those extra resources showing up.

Less doesn’t mean broken

That’s just a small set of ideas. The possibilities are endless. If you treat data as a constraint in your design and development process, you’ll likely be able to brainstorm a large number of different ways to keep data usage to a minimum while still providing an excellent experience. Doing less doesn’t mean it has to feel broken.

You may even end up finding opportunities to apply those same considerations to your site, no matter if Save-Data is enabled or not.

If you carefully consider the experience and treat data as a valuable resource not to be wasted, I don’t think anyone is going to be complaining.