Wednesday, July 9, 2014

Plasma Next is pretty darn stable

Today I wanted to share some of my experiences with using Plasma Next for the past couple of weeks. Since I had been working on some frameworks development (just a small bit here and there), I thought I'd try running Plasma Next a couple of weeks ago to see how things were coming along and to be able to work on and test some things I helped with back in KDE 4.0 days.

I have to say I'm very impressed with the stability.  I hit two issues since then, and one of the issues has been fixed. The issue I hit that has already been fixed was a crash in yakuake or konsole when closing a tab that caused the whole application to crash. I looked into the Konsole codebase with Eike Hein's guidance, but Argonel ultimately found the best patch to fix the problem.
The second issue I hit with Plasma Next has to do with disconnecting and reconnecting an external monitor. I don't do that very often at all, but when I tried last weekend I got a variety of issues. For example sometimes when disconnecting Plasma (or maybe KSmServer?) crashes and I am taken back to the sddm login screen. Other times when connecting my external screen my panel ends up floating on the external monitor but nothing on it is clickable.

I just realized this post probably sounds like a rant or complaining about Plasma Next, but that's not what I intended at all. The main point I wanted to get across is that I haven't used Plasma more than once in the past 2 weeks since Plasma Next is stable enough for my usage.

Now for the obligatory desktop screenshot:

So good job to all the people that have worked on this new iteration of the Plasma Desktop.

P.S. One other minor thing I miss from plasma is the ability to show multiple timezone's times in the clock's tooltip. I'll see if I can get that fixed though. :)

Tuesday, July 8, 2014

Qt5/KDE Frameworks porting steps

As I said in my last post I would elaborate about how porting of libkeduvocdocument (name pending currently) from Qt4 and kdelibs4 to Qt5 and KDE Frameworks happened.

Commits can be seen here but it went like this:
1. Change CMakeLists.txt to look for frameworks and Qt5 packages.
2. Try to build, fix any errors. All while checking the Porting Notes.
3. Port away from deprecated methods.
4. Port away from kdelibs4support.

I forget which part of the above involved each of these, but this is what was changed:
Ported from KUrl to QUrl.
Ported from KStandardDirs to QStandardPaths
Ported from KGlobal::locale() to QLocale
Ported away from other deprecated methods and classes.

So rinse and repeat until it's in a state where you are happy with it.
Note that step 4 above isn't strictly necessary, and is similar to porting Qt4 applications away from Qt3Support (Some kde4 applicationss never were ported away from Qt3Support sadly...) Yes KMouth, I'm looking at you.

Sunday, July 6, 2014

Libkeduvocdocument Qt5/KDE Frameworks port

Hello all. Yes I'm still alive. Yes I'm still doing KDE stuff as I find time or make time. I'll report in the next few posts about what is happening and where we are going.
One of the things that happened recently was the port of libkeduvocdocument to Qt5 and frameworks. Vishesh started the effort, and I completed it with some review by Aleix Pol. It was decided as documented here that since libkdeedu only contains libkeduvocdocument it should be split up. Upon further investigation we realized that the other parts of libkdeedu are not used anymore. Besides the icons subfolder that are still looking for a home, the rest of the git repo is only libkeduvocdocument related, so we decided to just rename the git repository for the frameworks and going forward release. So the libkdeedu git repository holds the kde sc 4 codebase, while the libkeduvocdocument git repo holds the qt5 and frameworks based code. Both contain the history so all history is preserved. 

I'll write next time about the steps taken to port the library to Qt5 and KDE Frameworks.

Tuesday, September 18, 2012

Remember for N9 (0.0.4)

Announcing the latest (0.0.4) release of "Remember" for your Nokia N9.

By a rough estimate about 50% of you that read this have an N9 device.  If you don't already have a task list system in place, or if you already use Remember The Milk, "Remember" for your N9 is the perfect, and free, way to use your task list from your phone itself.  Current features include:
  • Reading your tasks and task lists including smart lists
  • Showing your lists in the same sort order you see on the web interface
  • Support for marking tasks as complete
  • Editing tasks (name, priority, due date (tags and list coming soon)
  • Add a new task
  • Add a new list (regular lists only, smart list adding will come later)
Download it here.
Plan for 0.0.5 and beyond
My plan for the upcoming 0.0.5 release is tag editing and changing a task's list.  Then we'll get going with some fun useful features like search and storing the tasks and lists on your device for offline use.

Technical details

Under the hood "Remember" 0.0.2 was using libqrtm which was found on github and improved to provide a TasksModel and ListsModel for the QML interface to display.  With 0.0.3 I changed it to use librtm which comes from KDE (and was developed for the rememberthemilk plasma applet) with some improvements and bug fixes.  Because I use librtm to do the work of talking to Remember The Milk service adding storage and sync capabilities will be added to librtm itself, the KDE plasmoid will get those same features.

If you have any ideas for features you'd like to see added, drop me a comment or e-mail and I'll get to it at some point.

P.S. This application is completely open source, the code can be grabbed from and instructions for building it are included.  I didn't commit my rtm apikey however, so if you want to build it yourself you'll need one of those.

Sunday, September 4, 2011

Improving the user experience in Kiten, guest post

Note: Today's guest post brought to you by Daniel Moctezuma.

Improving the user experience in Kiten

As part of Google Summer of Code 2011 I worked on improving Kiten in various aspects:
1. Write a better deinflection system
2. Add more filtering options
3. Update EDICT and KANJIDIC dictionaries
4. Write a Kanji Browser tool to help users learn kanji
5. Bugfixes and code polishing

Before going deep in each point, I would like to tell you what Kiten is (in case you haven't heard about it).
Kiten is a Japanese Reference Tool that consists mainly of a Dictionary and a Radical Selector, it uses the EDICT (for vocabulary) and KANJIDIC (for kanji) dictionaries.
The Dictionary lets you translate from japanese to english and from english to japanese, this means you can write in english, hiragana, katakana or kanji to search in the dictionaries.
The Radical Selector lets you to search for a kanji by filtering its radicals, this way you can find a kanji without knowing anything about its readings or meanings.

With this GSoC project, Kiten is now more than that.

1. Deinflection system
Kiten now has a better deinflection system that deconjugates a verb/adjective and gives you the result of it. Example: 笑った is the past tense form of 笑う (to laugh), but (like in any language) if you search a past tense verb in a dictionary you will not find it. So Kiten can deconjugate the input and search for it.
You might wonder, "but why is this necessary?", the truth is that some japanese language learners can be confused of some verb tenses, so they might not know the dictionary form of a verb. Kiten can help you with that and give you feedback about your input, so next time you will know if you entered a verb in past tense or so.
2. Add more filtering options
This improvement helps users to filter results that "start/end with" or "contain" what the user entered to be searched. Also it shows the results in a better order:
  • exact match
  • words starting with the user's input
  • words ending with the user's input
  • words containing (anywhere/in the middle) the user's input
It helps a lot to have order in what we see, most of the time the user wants to know the meaning for a exact match, but also it is good to know if a word is used different, as at the end of an expression or somehow in the middle.

3. Update EDICT and KANJIDIC dictionaries
For some years Kiten was not being maintained regarding dictionaries, now that has changed with this improvement. These dictionary files are the core of Kiten and having the latest updates of them is a must. As part of the project, the user is now able to update the dictionaries at any time (if an update is available).
4. Write a Kanji Browser tool to help users learn kanji
You can browse all the kanji available in the KANJIDIC dictionary and be able to search by Grade and Number Strokes. Just click on the kanji and you can access detailed information such as stroke order, onyomi/kunyomi readings, meanings, grade, etc.
This tool helps you to learn Kanji by Jouyou Grade, in other words, KanjiBrowser can filter kanji by grade difficulty so you will only see those in the current grade you are interested in learning.
5. Bugfixes and code polishing
This includes various areas of Kiten like libkiten maintenance, bugs in the dictionary, etc.
Just to name a few:
  • You can add more dictionaries (EDICT/KANJIDIC format), as well as having deinflection system compatibility with them.
  • Libkiten can be considered mature now.
  • Fixed memory leaks.
  • Code simplification (for better performance and readability).
  • Clear separation between common/uncommon entries.
  • and more.
So, now we can say Kiten is not only a Japanese Reference Tool, but a Set of Tools:
  1. Dictionary (Japanese <---> English)
  2. Radical Selector
  3. Kanji Browser

Also I am proud to say this contribution is now merged on the master branch and expected to be released in KDE 4.8 along with other contributions from the KDE community.

Finally I would like to thank the following people:
  • Jeremy Whiting, for being my mentor in this project.
  • Anne-Marie Mahfouf, for her support since the beginning.
  • Joseph Kerian (previous Kiten developer/maintainer), for his support on some questions I had about the code base.
  • KDE, for choosing my proposal and for letting me have this amazing experience.
  • Google, for Free Software Development promotion by paying to students and encouraging them to learn and contribute to our world.
Thanks a lot!

Daniel E. Moctezuma

Friday, April 22, 2011

Kontact with google calendar

Hey all, with the help of some friendly folks in #kontact I was able to get mail/calendar set up and working in kontact today. I previously had some bad settings in akonadi from my last attempt a few months (maybe a year?) back. and clearing .config/akonadi helped alleviate that problem.

Since I've been using an android phone lately much of my calendar and mail stuff is on google services, so naturally I wanted to sync my calendar, contacts, and mail with google. Fortunately this is all possible, unfortunately it's not all that clear how to set it up. So here's a quick walkthrough for future reference.

Lets look at the tricky one, calendars. To add a google calendar to your korganizer you just need the caldav address which you can get from the calendar's settings like this.

Then you'll need the google calendar url to plug your calendar's address into which can be found in the help section, here for convenience:

Then you can open korganizer (or kontact) and right click the calendar manager and choose Add Calendar. It will give you a list of resources like this:

Since google calendars support CalDav choose the Dav groupware resource. Here's where the ui could use some update and/or simplification. The next thing you will see is a list of calendar providers, of which google is not a part like this:

The trick (thanks Leo) here is to click cancel since google is not on the list. Strangely (most cancel buttons close instead of continuing) this continues to a dialog to let you add your calendar by url that looks like this:

You can finally put in your url (combine the google calendar url with your calendar's address) and enter your username ( and hit the fetch button. After entering your username again (not sure why it doesn't take the one you already set) and password you are able to choose your calendar and add it to korganizer.

Anyone that votes we simplify this process raise your hand :) o/

Sunday, April 3, 2011

School's out

KDE-Edu is out of subversion and now in git. Take a look. And not a moment too soon. This coming week there will be a KDE Edu sprint in Bilbao Spain. What better place to learn how to use git than a sprint with peers eh?  Anyway this message is brought to you by the hard work of Ian Monroe and Nicolas Alvarez who worked very hard to get the conversion rules set up. (And fixed a few bugs in svn2git in the process).