25 Mar 2017

feedPlanet KDE

foss-north speaker line-up

I am extremely pleased to have confirmed the entire speaker line-up for foss north 2017. This will be a really good year!

Trying to put together something like this is really hard - you want the best speakers, but you also want a mix of local and international, various technologies, various viewpoints and much, much more. For 2017 we will have open hardware and open software, KDE and Gnome, web and embedded, tech talks and processes, and so on.

The foss north conference is a great excuse to come visit Gothenburg in the spring. Apparently, Sweden's wildest city!

25 Mar 2017 9:35pm GMT

Packaging Ishiiruka-Dolphin (GameCube/Wii Emulator)

You may have heard about Dolphin, not our file manager but the GameCube and Wii emulator of the same name. What you may not have heard of is Ishiiruka, a fork of Dolphin that prioritizes performance over emulation accuracy - and clean code if comments by an upstream Dolphin author on Reddit are to be believed.

Although Ishiiruka began as a reaction to remove the Direct3D 9 renderer in the Windows version of Dolphin (which is probably why the Linux community ignored it for the most part), it also began to tackle other performance issues such as "micro stuttering".

Recently the Git master branch of Ishiiruka shipped compilation fixes for Linux, so I decided to dust off my old dolphin-emu.spec file and give it a try (I'm hardly an expert packager). So after some dabbling I succeeded. For now only Fedora 24, Fedora 25, and openSUSE Tumbleweed are supported. The packages are available from https://software.opensuse.org/package/ishiiruka-dolphin-unstable.

openSUSE Leap requires some workaround because it defaults to GCC 4. I plan to look into it at a later time. Once Tino creates a new Stable branch that incorporates the Linux fixes, I'll post it under https://software.opensuse.org/package/ishiiruka-dolphin.

If anyone of you is interested in Arch, Debian, Ubuntu,… packages (anything supported by OBS), I'll gladly accept Submit Requests for PKGBUILD etc. files at https://build.opensuse.org/project/show/home:KAMiKAZOW:Emulators.


25 Mar 2017 4:50pm GMT

24 Mar 2017

feedPlanet KDE

Laptop freezing -- figuring out the issues

Hi all, I have an awesome laptop I bought from my son, a hardcore gamer. So used, but also very beefy and well-cared-for. Lately, however, it has begun to freeze, by which I mean: the screen is not updated, and no keyboard inputs are accepted. So I can't even REISUB; the only cure is the power button.

I like to leave my laptop running overnight for a few reasons -- to get IRC posts while I sleep, to serve *ubuntu ISO torrents, and to run Folding@Home.

Attempting to cure the freezing, I've updated my graphics driver, rolled back to an older kernel, removed my beloved Folding@Home application, turned on the fan overnight, all to no avail. After adding lm-sensors and such, it didn't seem likely to be overheating, but I'd like to be sure about that.

Lately I turned off screen dimming at night and left a konsole window on the desktop running `top`. This morning I found a freeze again, with nothing apparent in the top readout:


So I went looking on the internet and found this super post: Using KSysGuard: System monitor tool for KDE. The first problem was that when I hit Control+Escape, I could not see the System Load tab he mentioned or any way to create a custom tab. However, when I started Ksysguard from the commandline, it matches the screenshots in the blog.

Here is my custom tab:


So tonight I'll leave that on my screen along with konsole running `top` and see if there is any more useful information.

24 Mar 2017 9:55pm GMT

KDE.org and Drupal

KDE.org quite possibly has one of the largest open-source websites compared to any other desktop-oriented project, extending beyond into applications, wikis, guides, and much more. The amount of content is dizzying and indeed a huge chunk of that content is about as old as the mascot Kandalf - figuratively and literally.

KandalfI personally believe he's ripped under that cloak.

The KDE.org user-facing design "Aether" is live and various kinks have been worked out, but one fact is glaringly obvious; we've made the layers of age and look better by adding another layer. Ultimately the real fix is migrating the site to Drupal, so I figured this post would cover some of the thoughts and progress behind the ongoing work.

Right now work is on porting the Aether theme to Drupal 8, ideally it'll be "better than perfect port" with Drupal optimizations, making better use of Bootstrap 4, and refinements. Additionally, I'm preparing a "Neverland-style" template for those planning to use Aether on their KDE-related project sites, but it's more of a side-project until the Drupal theme lands. Recently the theme was changed to use Bootsraps' Barrio base theme, which has been a very pleasant decision as we get much more "out of the box". It does require a Bootstrap library module which will allow local or CDN-based Bootstrap installations, and while at first I was asking "why can't a theme just be self-contained?", now I'm understanding the logic - Bootstrap is popular, multiple themes use it, this will keep it all up-to-date and can be updated itself. I do think maybe one thing Drupal should do is have some rudimentary package management that says "hey, we also need to download this", but it's easy enough to install separately.

If you have a project website looking to port to Aether, I would first advise you simply waiting until you can consider moving your page to the main Drupal installation when it eventually goes live; in my perfect world I imagine Drupal unifying a great amount of disparate content, thus getting free updates. Additionally, consider hitting up the KDE-www mailing list and ask to help out on content, or place feature requests for front-end UI elements. While I'm currently lurking the mailing list, I'll try to provide whatever info I can. On an aside, I had some Telegram confusion with some people looking to contribute and concerns from administrators, so please simply defer to the mailing list.

In terms of the Aether theme, I will be posting the basic theme on our git repo; when it goes up if you have Bootstrap and Twig experience (any at all is more than I had when I started), please consider contributing, especially if you maintain a page and would migrate to Drupal if it had the appropriate featureset. I will post a tiny follow-up when the repo is up.


24 Mar 2017 8:26pm GMT

A typical day in bugs.kde.org

Me:

I'm sorry that $feature behaves differently to how you expect it. But it's the way it is and that's by design. The feature work exactly as it's supposed to work. I'm sorry, this won't be changed.

User:

With decisions like that, no wonder KDE is still a broken mess.

I wonder why the hell I even bother reporting issues. Bugs are by design these days.

Never again.

Have a nice life.

24 Mar 2017 4:32pm GMT

WebGL streaming in a Raspberry PI Zero W

A week ago I received my Raspberry Pi Zero W to play a bit with some IoT device. The specs of this small device computer are the following:

But the interesting part comes with the connectivity:

And especially from one of the hidden features that allows one to use the device as a headless device and connect using SSH over USB adding the following line to config.txt:
dtoverlay=dwc2
And modifying the file cmdline.txt to add:
modules-load=dwc2,g_ether

remember to create a file called ssh to enable SSH access to your Raspberry Pi. There are plenty tutorials over the Internet showing this!

To build a Qt version for the device you can follow this guide.
In the following screen shot, we can see the calqlatr example running directly on the Raspberry Pi:

clocks_pi_zero

One of the use cases which comes to my mind using this device and this feature is being able to create portable presentations and show them on any computer without the need of installing new software.

presentation_pi_zero

For the presentation, I used the qml-presentation-system (link).

More use cases could be:

Please comment if you have other ideas or use cases.

The post WebGL streaming in a Raspberry PI Zero W appeared first on Qt Blog.

24 Mar 2017 1:06pm GMT

23 Mar 2017

feedPlanet KDE

Kubuntu 17.04 Beta 2 released for testers

Today the Kubuntu team is happy to announce that Kubuntu Zesty Zapus (17.04) Beta 2 is released . With this Beta 2 pre-release, you can see and test what we are preparing for 17.04, which we will be releasing April 13, 2017.

Kubuntu 17.04 Beta 2

NOTE: This is Beta 2 Release. Kubuntu Beta Releases are NOT recommended for:

* Regular users who are not aware of pre-release issues
* Anyone who needs a stable system
* Anyone uncomfortable running a possibly frequently broken system
* Anyone in a production environment with data or work-flows that need to be reliable

Getting Kubuntu 17.04 Beta 2:
* Upgrade from 16.10: run `do-release-upgrade -d` from a command line.
* Download a bootable image (ISO) and put it onto a DVD or USB Drive : http://cdimage.ubuntu.com/kubuntu/releases/zesty/beta-2/

Release notes: https://wiki.ubuntu.com/ZestyZapus/Beta2/Kubuntu

23 Mar 2017 11:46pm GMT

Boosting performance with shader binary caching in Qt 5.9

Now that Qt 5.9 is getting closer, let's take a look at a minor but immensely useful improvement to the basic OpenGL enablers that form the foundation of Qt Quick and the optional OpenGL-based rendering path of QPainter.

Those looking at the documentation snapshots for 5.9 may have already come across some new functions in the venerable QOpenGLShaderProgram. What is more, most internal usages in Qt have been switched over to the new API. What does this mean in practice?

As explained here, such shader programs will attempt to cache the program binaries on disk using GL_ARB_get_program_binary or the standard equivalents in OpenGL ES 3.0. When no support is provided by the driver, the behavior is equivalent to the non-cached case. The files are stored in the global or per-process cache location, whichever is writable. The result is a nice boost in performance when a program is created with the same shader sources next time.

How big is the improvement? It varies. Some drivers have already been doing some sort of caching for the past couple of years, while some others have similar features in the pipeline. However, the gains turn out to be quite significant in practice on devices that are out in the field right now:

image2016-11-21-152420

Do not read too much into the actual numbers. What is important is the difference between Qt 5.8 and 5.9. Also, a simple Qt Quick or GL-backed QPainter scene will definitely not use 10 programs, but as complexity grows, with Qt Graphical Effects and custom ShaderEffect items entering the picture, getting similar improvements does not look far fetched anymore.

In fact we gain something even on systems that employ shader caching already. Therefore every application's startup and view switching times are expected to benefit with Qt 5.9 - without having to change anything.

Applications that use QOpenGLShaderProgram on their own can usually switch to the cacheable function variants by just changing the name in the function call. The change have to be a conscious decision, though, since some of the APIs change semantics when program binaries are used. Most notably, QOpenGLShader, addShader(), and removeShader() are incompatible with the program-level caching since they rely on individual shader compilation.

That's it for now, stay tuned for more posts about exciting upcoming Qt 5.9 and 5.10 features.

The post Boosting performance with shader binary caching in Qt 5.9 appeared first on Qt Blog.

23 Mar 2017 1:02pm GMT

KStars 2.7.6 for Windows & OSX released

I am glad to announce the release of KStars 2.7.6 release for Windows & OSX. Linux users using the official PPA can install the latest release as well.

In this release, we introduce the Ekos Mount Modelling tool developed by Robert Lancaster. It's currently in Beta now and we would appreciate any feedback. The tool enables you to build a comprehensive mount model if supported by your mount. Any mount that improves its internal pointing model after a SYNC command is applicable. Furthermore, INDI mounts that supports INDI Alignment Subsystem (EQMod, Nexstarevo, Synscan..etc) are also applicable.


Along with the advanced mount modelling tool comes the new Solution Results plot in the Align Module. It displays the quality of your GOTO after each solve and it can help you to identify if there are issues with your mount or the quality of the image..etc.


You can zoom, pan, and drag to explore the plot in details. Annotation for the quality of each GOTO is available on mouse over.

Ekos Polar Alignment Assistant tool also received a few bug fixes from the community feedback. Most users were able to achieve impressive results using the this easy to use Polar Alignment tool.

While Ekos is designed for ease of use, it can be intimidating for new users unfamiliar with the architecture of Ekos/INDI on several operation systems. Therefore, a new Ekos Profile Wizard is now available to guide the users to setting up their equipment for the first time in Ekos across several operating systems and connection topologies.


With INDI v1.4.1+, figuring out which port to use for your mount & focuser is now trivial across Linux & OSX. INDI automatically scans ports on your system and can even automatically connect to all potential available ports as well until a successful connection is established.


Last, but not least, KStars' NEO (Near-Earth-Object) data query from NASA's JPL is now properly working again thanks to our newest KStars developer Valentin Boettcher. Valentin (aka Hiro) is only 18 years old but is quite brilliant and experienced with KDE/Qt development environment. Welcome abroad!

23 Mar 2017 8:25am GMT

22 Mar 2017

feedPlanet KDE

C++ Concepts TS for getting functions as arguments, and the book discount

One of my pet peeves with teaching FP in C++ is that if we want to have efficient code, we need to catch functions and other callable objects as template arguments.

Because of this, we do not have function signatures that are self-documenting. Consider a function that outputs items that satisfy a predicate to the standard output:

template <typename Predicate>
void write_if(const std::vector<int> &xs, Predicate p) {
    std::copy_if(begin(xs),
                 end(xs),
                 std::ostream_iterator<int>(std::cout, " "));
                 p);
}

We see that the template parameter is named Predicate, so we can imply that it needs to return a bool (or something convertible to bool), and we can deduce from the function name and the type of the first argument that it should be a function that takes an int.

This is a lot of reasoning just to be able to tell what we can pass to the function.

For this reason, Bartosz uses std::function in his blog posts - it tells us exactly which functions we can pass in. But std::function is slow.

So, we either need to have a bad API or a slow API.

With concepts, the things will change.

We will be able to define a really short (and a bit dirty) concept that will check whether the functions we get are of the right signature:

Edit: Changed the concept name to Callable to fit the naming in the standard [func.def] since it supports any callable, not just function objects

template <typename F, typename CallableSignature>
concept bool Callable =
    std::is_convertible<F, std::function<CallableSignature>>::value;

void foo(Callable<int(int)> f)
   // or Callable<auto (int) -> int>
{
        std::cout << std::invoke(f, 42) << std::endl;
}

We will be able to call foo with any callable that looks like a int-to-int function. And we will get an error 'constraint Callable<int(int)> is not satisfied' for those that do not have the matching signature.

An alternative approach is to use std::is_invocable type trait (thanks Agustín Bergé for writing the original proposal and pointing me to it). It will provide us with a cleaner definition for the concept, though the usage syntax will have to be a bit different if we want to keep the concept definition short and succulent.

template <typename F, typename R, typename ...Args>
concept bool Callable =
    std::is_invocable<R, F, Args...>::value;

void foo(Callable<int, int> f)
{
    std::cout << std::invoke(f, 42) << std::endl;
}

When we get concepts (C++20, hopefully), we will have the best of both worlds - we will have an optimal way to accept callable objects as function arguments, and not sacrificing the API to do it.

Book discount

Today, Functional Programming in C++ is again the Deal of the Day - you get half off if you use the code dotd032317au at cukic.co/to/manning-dotd


Read more...

22 Mar 2017 11:06pm GMT

Looking for a job ?

KDE Project:

Are you looking for a C++/Qt/Linux developer job in Germany ?
Then maybe this is something for you: Sharp Reflections

I'm looking forward to hear from you. :-)
Alex

22 Mar 2017 8:40pm GMT

Reading old stuff

A few months ago, Helio blogged about building KDE 1 (again) on modern systems. So recently while cleaning up some boxes of old books, I found the corresponding books - which shows that there was a time that there was a market for writing books about the Linux desktop.

Particularly the top book, "Using KDE" by Nicholas Wells, is interesting. The first page I opened it up to was a pointer to the KDE Translation teams, and information on how to contribute, how to get in touch with the translation teams, etc. You can still find the translation info online, although the location has changed since 2000.

There's also tips and tricks on getting your .xinitrc right, and how to safely fall back to twm. I find this amusing, because I still use the same techniques when testing new Plasma 5 packages in a FreeBSD VM. It's good that the old standalone twm is still there, but it would be much more amusing to fall back to KDE 1.1.2 if Plasma 5 doesn't start right, I think.

22 Mar 2017 4:18pm GMT

Chef Intermediate Training

I did a day's training at the FLOSS UK conference in Manchester on Chef. Anthony Hodson came from Chef (a company with over 200 employees) to provide this intermediate training which covered writing receipes using test driven development. Thanks to Chef and Anthony and FLOSS UK for providing it cheap. Here's some notes for my own interest and anyone else who cares.

Using chef generate we started a new cookbook called http.

This cookbook contains a .kitchen.yml file. Test Kitchen is a chef tool to run tests on chef recipes. 'kitchen list' will show the machines it's configured to run. Default uses Virtualbox and centos/ubuntu. Can be changed to Docker or whatever. 'kitchen create' will make them. 'kitchen converge to deploy. 'kitchen login' to log into v-machine. 'kitchen verify' run tests. 'kitchen test' will destroy then setup and verify, takes a bit longer.

Write the test first. If you're not sure what the test should be write stub/placeholder statements for what you do know then work out the code.

ChefSpec (an RSpec language) is the in memory unit tests for receipes, it's quicker and does finer grained tests than the Kitchen tests (which use InSpec and do black box tests on the final result). Run with chef exec rspec ../default-spec.rb rspec shows a * for a stub.

Beware if a test passes first time, it might be a false positive.

ohai is a standalone or chef client tool which detects the node attributes and passes to the chef client. We didn't get onto this as it was for a follow on day.

Pry is a Ruby debugger. It's a Gem and part of chefdk.

To debug recipes use pry in the receipe, drops you into a debug prompt for checking the values are what you think they are.

I still find deploying chef a nightmare, it won't install in the normal way on my preferred Scaleway server because they're ARM, by default it needs a Chef server but you can just use chef-client with -local-mode and then there's chef solo, chef zero and knife solo which all do things that I haven't quite got my head round. All interesting to learn anyway.

Facebooktwittergoogle_pluslinkedinby feather

22 Mar 2017 3:57pm GMT

Interview with Ito Ryou-ichi

Ryou is the amazing artist from Japan who made the Kiki plastic model. Thanks to Tyson Tan, we now have an interview with him!

Can you tell us something about yourself?

I'm Ito Ryou-ichi (Ryou), a Japanese professional modeler and figure sculptor. I work for the model hobby magazine 月刊モデルグラフィックス (Model Graphics Monthly), writing columns, building guides as well as making model samples.

When did you begin making models like this?

Building plastic models has been my hobby since I was a kid. Back then I liked building robot models from anime titles like the Gundam series. When I grew up, I once worked as a manga artist, but the job didn't work out for me, so I became a modeler/sculptor around my 30s (in the 2000s). That said, I still love drawing pictures and manga!

How do you design them?

Being a former manga artist, I like to articulate my figure design from a manga character design perspective. First I determine the character's general impression, then collect information like clothing style and other stuff to match that impression. Using those references, I draw several iterations until I feel comfortable with the whole result.

Although I like human and robot characters in general, my favorite has to be kemono (Japanese style furry characters). A niche genre indeed, especially in the modeling scene - you don't see many of those figures around. But to me, it feels like a challenge in which I can make the best use of my taste and skills.

How do you make the prototypes? And how were they produced?

There are many ways of prototyping a figure. I have been using epoxy putty sculpting most of the time. First I make the figure's skeleton using metallic wires, then put epoxy putty around the skeleton to make a crude shape for the body. I then use art knives and other tools to do the sculpting work, slowly making all the details according to the design arts. A trusty old "analogue approach" if you will. In contrast, I have been trying the digital approach with ZBrushCore as well. Although I'm still learning, I can now make something like a head out of it.

In case of Kiki's figure (and most of my figures), the final product is known as a "Garage Kit" - a box of unassembled, unpainted resin parts. The buyer builds and paints the figure by themselves. To turn the prototype into a garage kit, the finished prototype must first be broken into a few individual parts, make sure they have casting friendly shapes. Silicon-based rubber is then used to make molds out of those parts. Finally, flowing synthetic resin is injected into the molds and parts are harvested after the injected resin settled. This method is called "resin casting". Although I can cast them at home by myself, I often commission a professional workshop to do it for me. It costs more that way, but they can produce parts of higher quality in large quantity.

How did you learn about Krita?

Some time ago I came across Tyson Tan's character designs on Pixiv.net and immediately became a big fan of his work. His Kiki pictures caught my attention and I did some research out of curiosity, leading me to Krita. I haven't yet learned how to use Krita, but I'll do that eventually.

Why did you decide to make a Kiki statuette?

Ryou: Before making Kiki, I had already collaborated with a few other artists, turning their characters into figures. Tyson has a unique way of mixing the beauty of living beings and futuristic robotic mechanism that I really liked, so I contacted him on Twitter. I picked a few characters from his creations as candidates, one of them was Kiki. Although more "glamorous" would have been great too, after some discussion we finally decided to make Kiki.

Tyson: During the discussions, we looked into many of my original characters, some cute, some sexy. We did realize the market prefer figures with glamorous bodies, but we really wanted to make something special. Kiki being Krita's mascot, a mascot of a free and open source art software, has one more layer of meaning than "just someone's OC". It was very courageous for Ryou to agree on a plan like that, since producing such a figure is very expensive and he would be the one to bear the monetary risk. I really admire his decision.

Where can people order them?

The Kiki figure kit can be ordered from my personal website. I send them worldwide: http://bmwweb3.nobody.jp/mail2.html

Anything else you want to share with us?

I plan to collaborate with other artists in the future to make more furry figures like Kiki. I will contact the artist if I like their work, but you may also commission me to make a figure for a specific character.

I hope through making this Kiki figure I can connect with more people!

Ryou's Personal Website: http://bmwweb3.nobody.jp/

22 Mar 2017 12:15pm GMT

21 Mar 2017

feedPlanet KDE

WireGuard in Google Summer of Code

WireGuard is participating in Google Summer of Code 2017. If you're a student who would like to be funded this summer for writing interesting kernel code, studying cryptography, building networks, or working on a wide variety of interesting problems, then this might be appealing. The program opened to students on March 20th. If you're applying for WireGuard, choose "Linux Foundation" and state in your proposal that you'd like to work on WireGuard with "Jason Donenfeld" as your mentor.

21 Mar 2017 6:52pm GMT

Kdenlive café #15 tonight

Kdenlive development might look a bit slow these last months, but we are very busy behind the scene. You can join us tonight on our monthly café to get an insight of the current developments, follow the discussions or ask your questions.

Café will be at 21pm, european time, on irc.freenode.net, channel #kdenlive

More news on the next releases will follow soon, so keep tuned.

21 Mar 2017 12:46pm GMT