FreeSoftware to the fullest!

Category: KAlgebra (Page 1 of 3)

Mathematics that you can touch

These last months have been intense, so intense I needed a bit of a distraction. I’ve always felt some kind of curiosity for the world of 3D printing and, as I’ve said in different occasions, I always push KAlgebra to the limit when I have the occasion.

I had been researching, I’ve never had a 3D printer and I probably won’t have one in years, but I still wanted to figure out how to get do something there. First, I went through many 3D printing services and looked through the different supported formats. To be honest, I implemented the one that looked the simplest, it happened to work quite similar to how OpenGL works internally, so it seemed like a safe bet.

Once I had a working export algorithm, I chose an extremely good looking plot (thanks Percy ;-)) and then I uploaded it over to one of those 3D printing services. The website showed me a preview, it seemed like their software understood the format, so it looked like my job was done. I fiddled with it to get it printed in a reasonable size and submitted it to print and send. For the curious, here’s the formula I used:

piecewise { x^2+y^2+z^2<35 ? 2-(cos(x+(1+5^0.5)/2*y)+cos(x-(1+5^0.5)/2*y)+cos(y+(1+5^0.5)/2*z)+cos(y-(1+5^0.5)/2*z)+cos(z-(1+5^0.5)/2*x)+cos(z+(1+5^0.5)/2*x)), ? 1 } = 0

A couple of weeks later a box arrived to our office. To be honest, it was a bit weird. I was very excited, but then nobody else was when I showed it. Because it's math I guess, and it's boring. I felt a bit like when I used to spend my nights hacking KAlgebra around then show it around. Anyway, I'll say it. A 3D plot, in my hands, to play with them. How cool is that? :D

** crickets **


Now I'm sure you're excited and willing to try it. It will be available in the next version of KAlgebra, that will be released in the KDE Applications 2014.12, which by the way will be the first KAlgebra release based on Qt5 and KF5, and will be featuring many other new features.
And of course, it's free software developed in an open community! If you're feeling adventurous or you just know how to build KDE software, feel free to pull analitza and kalgebra repositories and give it a try! :)

KDE Software on Android

Despite my involvement in KDE and free software operating systems, one of the features I’ve always loved from Qt is how we can use it to develop an application that can be used on any platform. Since I got my first /programmable/ phone, I’ve wanted to get my projects to work there, especially through all Nokia approaches to the issue, and I’ve managed to do so with relative success.

At some point last year I got to the conclusion that, if I wanted to remain somewhat sane, the best approach was to start focusing Android by caring about the CMake side of the issue and let QtQuick get into place, which is not in place yet, but admittedly in a much better state than a couples of years ago.

My KDE on Android approach is that any KDE project should be able to be built and bundled for Android from the sources, that is with an apk file as a result, without having to change the project sources: c++ or cmake.

I started working on this longtime ago on Qt4, but the fact that kdelibs was about to change and the poor direction of the port drove me away from bothering. Also if we want portable interfaces we want QtQuick Controls. I don’t think there’s much doubt there.

I restarted the project last November. I compiled a full Qt5 installation and started to get it to build, my intention was to use android.toolchain.cmake again, but I then decided that it would be better to create a new cmake toolchain file to have all the control I needed over how it’s being compiled. Some things need to be treated with special love like how executables are built and especially being able to create apks.

At the moment it seems to be working reasonably well, I’ve been using KAlgebra as a test. I get to easily deploy the Analitza framework which is a dependency and then consume it from KAlgebra which bundles all dependencies into a nice publishable APK.

Enough back-story, let’s see how we’d build KAlgebra (or any traditional KDE project for that matter).

To get all the features going we need:
* Qt 5.4 built for Android (currently in dev branch)
* CMake 3.0
* Android NDK
* Android Development Kit
* the ToolChain file I created (still to find a proper place, can be found here)
* Extra-CMake-Modules
* The project’s source code, because the power is in the source!

Here’s an example on how to get it done [1], but that’s the expanded version. As an attempt not to scare you here I used a simplified version, by having a cmakeandroid macro defined, passing cmake all the needed information.

mkdir build-analitza build-kalgebra
cd build-analitza && cmakeandroid ~/src/analitza && make && make install
cd build-kalgebra && cmakeandroid ~/src/kalgebra -DQTANDROID_EXPORTED_TARGET=kalgebramobile && make && make create-apk-kalgebramobile

Which I think it’s readable enough.

To conclude, we are able to consider Android as a candidate for KDE projects to adopt. There’s much more to do both on KDE, Qt and cmake sides, but we can get to discuss it when you’ve ported your application.

For the moment, I’d like to know if there’s any application that is interested in being built for Android, I’d like to give it a try, especially if it’s already been ported to QtQuick and Qt5/KF5.
Furthermore, in case anybody is interested, I’ll open a wiki page with this information, in case anybody wants to use it, for the moment my cmake toolchain and manifest can be found here:

Continue reading

KDE SDK Next, how will we develop in a year?

Since the beginning of my involvement in KDE and, more specifically, my involvement with KDevelop, many people have come to me and said that what we “actually need” is an SDK. So far, I never gave this much thought. Especially given that for me, the SDK was the system I’m running on and, by extension, the packaging system of my GNU/Linux distribution.

After all this time and given one of KDE Frameworks goals is to broaden our portability, I started wondering about the subject again. Some of the pieces are starting to come together already, but I still think we need to actually glue them together in a clear and pragmatic approach.

Premise: we want to build an SDK on top of the tools we generally use:
CMake, Qt, KDE Frameworks 5, Plasma, QML and C++.

For starters, we have two different major scopes: Integration with Plasma and Cross-platform facilities.

KDE Applications should be as distributable and portable as possible. On the other hand, we should be providing the tools to specifically integrate to the Plasma Workspaces.

Applications have different use-cases than the Plasma Workspaces. While applications need to be as easily distributable as possible, Plasma will want to have as much control on the system as needed to work accurately. Therefore, we want applications interacting with Qt5+KF5 and integrating through Qt abstractions, while Plasma will want to interact random components in the system regardless without fear.

What I propose:

  • Figure out which frameworks are portable and which are Plasma Platform integration frameworks. (e.g. KDED modules, KNotifications, Solid: are they portable? do we want to support the different platforms?)
  • Figure out what do we mean by supported platform (both in the case of Plasma and Applications).

Once we get there, we will be able to think about developers and:

  • Offer a sensible set of tools to support the development and ease testing.
  • Figure out a packaging plan for the libraries and tools for developers, so they can start using them for their development.
  • Figure out a deployment plan for the frameworks on the different platforms, so that deployed applications know how to rely on the needed dependencies.

So this are mostly thoughts, I would like to know if you’d be interested in the project. I think it makes a lot of sense to figure this out and then gather this year’s Randa meeting to make sure we’re coming up with a coherent next development platform.

You’re welcome to KDevelop!

Sometimes it’s hard to get started using a tool, some people call it white page syndrome, in KDevelop we had the gray page syndrome:

kdevelop the gray

I guess you see what I mean.

To solve this problem we discussed many times about creating some way to Kickstart a KDevelop session properly, this is what I came up with. It’s nothing very different from what others do, but it’s ours, so that makes it immensely awesome. I guess you’ll understand about it easy by putting a video, looking forward to your feedback!

KAlgebra on Android

Since I started blogging I’ve talked many times about KAlgebra. Usually it’s not to display it’s awesome features but to discuss its portability. I’ve always considered that it’s important for KDE not to lock down its applications to a platform. That’s why I’ve put my efforts into ensuring KAlgebra will work properly on different platforms so far, like the N9 and Plasma Active.

— TL;DR: you can jump to the video 🙂 —

I think we’ve done a great job so far. It hasn’t been easy and we are not there yet, but I think that being able to do things like this is an awesome opportunity for projects like KDE Edu where we want to target the widest audience possible.

Android offers this, a widespread audience where we will be able to put our things. That’s why I put my interest in it, anyway.

Regarding the actual implementation, it’s far from perfect. It’s using KAlgebra Mobile, which has different backends. I created a new one that doesn’t require any components present. QtQuick components are lacking for Android at the moment, so I came up with this UI that besides not being properly integrated it works good enough and keeps me from frustration. Things are looking good on that regard, apparently I’m not the only one needing those, so I hope we’ll get some proper UX eventually.

A lot is left to be done still: Integration with the system, integration in the Market, etc. Ideas welcome.

Oh, and last but not least, big thank you for Marijn Kruisselbrink who put up with my questions and opened the path by adapting kdelibs.

And now, the video.

Almost forgot, if anybody wants to try it, you can download the installer here. Remember, it eats easter bunnies.

Akademy-fr FTW!

It’s been a good day today!

First of all I arrived to Toulouse where Akademy-fr is going to happen. I’m really happy of being part of this first (I hope of many) Akademy-fr edition. 🙂

Secondly, KAlgebra has been accepted to the OVI store. As far as I know, it’s the first (I hope of many, again :)) application bundling kde libs in it. So all N9* users can install it without ugly tricks! \o/

Proof: KAlgebra at OVI store.

Salutations dès Toulouse!!

KAlgebra Mobile and QtQuick

Some years ago I’ve been talking, whining maybe, about how KAlgebra is more flexible than it looks, the proof is this post from 2009. A lot of time has passed since then, not as much work on KAlgebra as I’d have wanted, but we are much further. Having an N900 gived me the confidence to work on a KAlgebraMobile that probably nobody tried but most of you have installed on your system, yay! It was quite a disaster, bad timing (end of N900 era) and kdecore didn’t make it to the main repositories for some reason I can’t understand, so I that version will stay in our hearts and vcs logs but not much further.

I have this little flaw, whenever I find a new cool technology I fantasize about porting KAlgebra to it. Same happened with QtQuick (QML back then), it made sense: I always wanted to have KAlgebra working on a handheld device and there we had some good opportunity. The big problem was that I didn’t want to make KAlgebra Mobile a Harmattan application, or a Fremantle, or build the GUI from scratch, since most of you will know I’m no designer. The whole QtQuick application development process looked fuzzy to me (and still does, but less).

The whole thing changed when I was asked to try QtDesktop Components, mostly because I had to try it on something and I finally could invoke something like “Button {}”. Once I had it working, I created separate implementations for harmattan and desktop, so right now it’s quite easy to extend to different sets of components quite easily as long as they are a little API-equivalent.

In short, right now we have a KAlgebraMobile applications that can be tested and used on desktop and also used on Harmattan. It’s far more interesting the second case, mostly because on the desktop we’ve had a version of KAlgebra since many years and I didn’t have to blog about it. Anyway, as always, it’s on kde’s KAlgebra master branch, feel free to test it. If you don’t feel like, enjoy some pretty pictures!

And last but not least, big thanks to Laszlo Papp for working for KDE in Harmattan, without his work this wouldn’t have been possible. Also big thanks to Jens Bache-Wiig who is caring about desktop even if he can do mobile UI’s :). This kind of people make this community alive and prosper!!

April of KDE

Some intensive days are coming let’s talk about it a little :).

Next week I’ll be going to San Francisco because I’ll be attending to Camp KDE. It’s specially interesting to go there because it’s a very nice opportunity to get in touch with a KDE community that is not usually around in the events I’ve been going (it’s going to be my first KDE meeting outside of Europe). There I will be talking about KDevelop and KDE Edu (no wonder), two beautiful projects from a beautiful community like KDE, can’t be more proud of it :).

I'm going to Camp KDE!

The day after I come back I’ll be going to Bilbao where we’re celebrating this year’s KDE Edu sprint. I feel like it’s an important step for KDE Edu because it will be the first time where we are celebrating it in an education context and because we will be gathering some important people from this country who is interested in education. Hopefully we will be able to take our project to the next level, so yay us! (again :)).

I'm going to the KDE Edu Sprint!

And last but not least, I’ll be going to Vigo the week after that, where I will give the KDE talks in the Free Software master by the Universidad Rey Juan Carlos and Igalia. I’m happy to see these initiatives happening here and proud to help to take it to the next level. (yay us! bis bis).

Universidad Rey Juan Carlos

And last but not least, thanks to all the sponsors the KDE eV board and, in the end, all the people who makes this kind of things possible :). See you soon!

Social KDE

In barely 5 hours I’ll be taking my plane to Bruxelles, on my way to FOSDEM, where I’m going to meet a bunch of people interested on a lot of things like I do, mainly Free Software (and chocolate :D, but that’s off topic I guess). Also there I’ll be talking about KDE in Education at the Cross Desktop devroom. I’d like to tell anyone interested on education to come and share with us their opinion and thoughts regarding Free and Open Education.

I’d also like to remind you all that we’ll be celebrating the KDE 4.6 dinner in Barcelona (well, this time Badalona, but it’s still close 🙂 the next 19th february, if you want to come, please just follow these instructions:

Last but not least, it would be good that anyone interested in coming to this year’s KDE Edu sprint says so on KDE Edu mailing list so that we have a correct appreciation about how much people is interested in coming. There will be hacking, talks to the local community and lots of fun with the local folks in Bilbao :).

See you soon!

KDE on the Mobile

Hi fellow KDE enthusiasts!
I know this may sound like a rant but I think that if I don’t say that I’m going to explode.

First of all, it’s great that since we’re based on Qt as a development environment we have the opportunity to get in the mobile sector. It’s not great, it’s awesome. I’ve been willing to develop there for many years and with the new Nokia platforms I will be able to use my projects there. After getting the N900, I have developed 3 applications in Maemo, just one of them has been released in the open. For Qt projects, it just works.

Let’s focus on KDE now.
– Everybody tells me that we should develop for Meego: for Meego we don’t have any KDE packages whatsoever (or at least I couldn’t find them) and AFAIK there’s no device that ships it and there won’t be any until 2011, I can put it but not even Nokia supports it. Yes, it’s a great target.
– I have Maemo, it’s an awesome Debian and there’s even some packaging already done in These packages are good for testing, I could compile KAlgebra in my scratchbox. My problem with these packages is that they depend of some Qt4.7 experimental, so kdelibs in Maemo depend on something huge that I don’t need . Additionally we don’t have kdelibs packages in Maemo repositories (there are -devel repositories, it’s not like we have to stuff anything on Maemo systems), that means that if I wanted to release KAlgebra in Maemo I should add them? Doesn’t sound very community friendly.
– Why does KDE people keep telling me to trim KDELibs usage? KDELibs is useful, it makes no sense to not use it just because we don’t have packages for it. We want to share code! It’s what has made KDE great since I’ve been around at least, why do we forget that as soon as we don’t find KDE packages on some system?
– Why isn’t there people interested on packaging KDE on these systems? Probably because these distributions aren’t community-friendly enough, or because these don’t have enough users. Personally, I like to focus on development, do we really expect to push these platforms if not even developers can’t have their applications on their devices to be able to test them.
– Is it that creating packages for these platforms is just technically hard? Maybe we should address that first.

Going back to my experience, it was such straight forward with Qt apps that I convinced myself to port KAlgebra, now i have a version that just uses kdecore and kdeui (according to KDAB packages kdecore+kdeui+kalgebra, this should be less than 2MB, instead of the >10MB if I use their packages with their dependencies).
I guess that KDE development on mobile devices is kind of stale because the only applications that have been ported are huge (like Plasma or Kontact) or they just don’t use KDE (like Marble or Qthello which forked KReversi somehow, AFAIK). What would happen if we consider KDE a project and work together a little? I’m pretty sure we could bring KDE Edu or KDE Games all together into Maemo with little amount of work, why do we have people who would contribute these stopped because the lack of packaging in Maemo?

Maybe I should just consider that KDE is not supported on these devices and spend my time somewhere else.

PS: I didn’t mean to despise anybody’s work. It’s not hatred, just frustration.

« Older posts

© 2024 TheBlindCow

Theme by Anders NorenUp ↑