Thursday, October 8, 2009

Utah Open Source Conference 2009 day one

Today was the first day. Setup went fairly smoothly. I set up wired network with the switch and two boxes Ian Geiser sent me to use, but the wired network was not working (I later connected their wired network just into one machine and it worked fine, so dunno). Luckily they had wireless in those little boxen, so that got them online to demo kde 4.3 kubuntu. I realized how important web access is to kde during that time though, the microblogging, comic, weather, etc. applets all need web access obviously. But so did ghns to get providers of comics for the plasmoid, etc. etc. I think I take web access for granted most of the time.

There was some good feedback at the conference. I heard lots of people saying they used to love kde but haven't used it since 4.0 came out. I left all those people with hope in 4.3 that they hadn't tried besides there on the demo boxen. I met a few kde fans which was pretty cool. Showed amarok, kde-edu apps (kstars, kig, kgeography, klettres to some guys that mentioned they had kids), kmahjongg, and plasma of course. I also showed kwin present windows and it's ability to filter by typing, so many people don't know about that useful feature! I can definitely see where promotion can get us many many more users testing, using, playing with and enjoying the wonderful stuff we contribute our efforts to. Tomorrow should be fun, will give more report tomorrow probably.

I think the only downer about the day was that there was a huge window right behind our row of tables, which gave so much glare the screens were barely visible. That and irc was blocked, hehe.

Sunday, October 4, 2009

ghns meeting

Yesterday morning we had another meeting in #ghns on freenode. It went very well, there was a much better turn out than last week, and since we had been hacking on things this week a lot more thought was brought into it I think. The plan on techbase got some ui features added to it based on feedback from users, and some developers. Josef was at the meeting and will be adding some things to HotStuff (the implementation of dxs running on to support paging which will be good. Especially since Eugene and some others thought of a way to do paging that's transparent to the user. We'll load two pages of data, show it in the list, and when the user scrolls to the second page of data, we'll load the third page and so on. Hope that will turn out feeling natural and cool =) We've also decided to leave the filter box in for local filtering (but rename it to Filter) and make server-side search available via a search button. Some complaints about the current method of "sorting" were raised also, since it doesn't really sort anything, just grabs 3 different feeds from the server (highest rated, latest, and most downloads). I'm thinking of making those tabs, but that's not optimal either. If anyone has a good idea how to represent that with the ui we have, that would be cool. Anyway, all in all it was a great meeting, and though there's lots more to do, we are all optimistic.

Hopefully in the next couple days I'll have some real stuff to show, so stay tuned.

Wednesday, September 30, 2009


In the past couple days I've been playing with the code, and have reached a couple conclusions. First, KNS::Engine isn't an engine, it's an interface the apps use to interact with the engine. Apps don't need to know anything about the engine though (and currently don't/can't anyway). Also this interface class has no signaling mechanism, so it would be good to derive it from QObject so it can send out signals and apps can connect to them. In other words some binary incompatible changes will be necessary and I'm on the way to make them happen by creating knewstuff3. Because of this decision we have the chance to make some binary incompatible changes in the library itself which I believe will help keep the design cleaner and make it easier to maintain as a whole.

I had a discussion on irc today about what to name the interface class, and after a few suggestions settled on the name KNS::Client. I'll be getting that going this week, and hope to have something basic working by next week. We'll see.

This coming saturday we'll have another meeting on #ghns on freenode if anyone else wants to come along and share their 2c with the rest of us. As I blogged last time, last weekends meeting was productive. We've got a plan and are on the road to better things.

Saturday, September 26, 2009

KNewStuff2 Future

Time again to think about the future. This morning in #ghns on freenode we had a meeting about KNewStuff2 and ghns (Get Hot New Stuff) in general. There are a lot of cool things coming our way with Open Desktop ( and it's use in Plasma (OCS Widget) and KNewStuff2. Before the meeting I wrote down a plan for making KNewStuff2 better prepared for these coming changes and documented it here: KNewStuff2Plan and will be working to achieve that end for KDE 4.4. Frederik will be working on the RESTProvider which will provide better access to the functionality on etc. sites. I'll be revamping a bunch of the KNewStuff2 library to make this easier and better also. Plus documenting my promise to do so here gives me more motivation/pressure to actually get it done =)

Want a taste of what's to come? How about the ability to rate/comment on a wallpaper from the KNewStuff2 dialog itself (something I promised back at the 4.0 release event but never got in ;) . How about the ability to see multiple pages of "latest uploaded" and "highest rated"? How about the ability to see all color schemes uploaded by that master color schemer Joe Colormakerman? I'm hoping we can get there and much further in the not so distant future. Anyone with me? =)

Thursday, September 10, 2009

Utah Open Source Conference

Hey everyone,

Time has come again for the third annual Utah Open Source Conference (I missed the first two, but will be going to this one). I'll be bringing stuff to demo KDE to people and set up a booth there, so if anyone wants to come by and say hi, or see the coolness that is KDE, well, you know where I'll be anyway.

This is also a call for help. If anyone is going to be in the area and would like to help me represent KDE and man the booth that would be awesome. I've never actually run a booth like this before, so will be my first time, but should be fun I think.

Anyway, hope to see ya there, and let me know if you'd like to help with the booth either on irc (jpwhiting) or via e-mail (

Monday, July 13, 2009

The Future of Kttsd

As you may or may not know, Kttsd is in the middle of some changes. Before Gary Cramblitt (aka phantomsdad) left the project, he made (and documented very well) a design to make kttsd basically just wrap speech-dispatcher. This design has many advantages, it simplifies kttsd code quite a bit, adds new functuonality, and makes kttsd better able to focus on what it does well, which I see as being the voice for KDE applications/desktop/platform. Kttsd has always been very good at filtering things like notifications (I use it to listen to irc and have for ages), and at providing an interface to an otherwise obscure sub-system (speech). However I also think there is definitely room for improvement =) And here's where you come in dear blog reader.

I'm considering changing up the ui a bit, to try to bring it into this century. The job list/control tab is somewhat dated, and it has always seemed a bit cumbersome to me. I'm considering making the job list more of a log of what has come in from what apps, with an easy to see view of what the filters did to the text for easy tweaking of filters (I seem to spend a bit of time each week trying to tweak the filters in one way or another). Other requests that have come on have been the ability to dynamically switch the current voice being used. So I'm thinking what if we make the jobs tab be more of a log and add a new tab for real-time speech control (change the current voice to male/female, language, pitch, speed, etc. all in realtime. Opinions anyone?

If we do the above we could also easily have a menu in kttsmgr's system tray icon to choose the voice, adjust speed/pitch, etc. on the fly also. So from you I'd like some feedback about which features you currently use in kttsd (talker chooser filter?, string replacer filter? easy (or not) access to festival/espeak/other speech system?) and what you'd like to see kttsd allow you to do in the future.

Thanks for reading and I hope next time to have some pretty pictures of a nice interface =)

Friday, June 12, 2009

KTTSD using speech-dispatcher

Hey all, lately I've been working a bit on porting kttsd to use speech-dispatcher as per Gary Cramblitt (previous kttsd maintainer)'s design from back in 2005. Anyway, I thought I'd give a bit of a progress report on the effort here.

First a quick summary of Gary's design though. The idea is that speech-dispatcher will do most of the work previously done by kttsd (job management, synthesizer communication, etc.) which is simplifying kttsd's codebase quite a bit. The reason to switch to using speech-dispatcher is that it's a system app, so console apps can use it to synthesize text, kde apps (directly or via kttsd) can use it also, and it will do all job management, so apps wont be trying to talk at the same time, etc. Also gnome is switching to use speech-dispatcher exclusively for 3.0 release.

So status, I've got two machines both running speech-dispatcher 0.6.7 (configured with festival and espeak) and kttsd notifications are going there directly and working fine. There's still some work to do to get the job manager in kttsd to show all jobs from speech-dispatcher, and figure out how to represent all the voices speech-dispatcher has configured in the kttsd talker tab, but it is functional. I've got all the plugins for synthesizers removed from my branch, and took out the sentence boundary detector plugin also, as all that is done by speech-dispatcher. I'll be working closely soon with speech-dispatcher itself, adding some missing functionality to fill in the gaps of what kttsd used to be able to do and speech-dispatcher currently can't do yet (basic stuff like which job is currently being spoken, repeating jobs, etc.).

I've also removed the output methods (alsa and phonon) from the branch, as speech-dispatcher sends the output to the speakers itself. This avoids a bug we've had since 4.0 where when using phonon and the xine backend, speech got cut off quite often.

I hope to have kttsd using speech-dispatcher exclusively by 4.4 and have it provide a gui to set up speech-dispatcher also (besides prioritizing the available talkers that speech-dispatcher provides). My end goal is to have a setup where I can set apps like kopete and konversation to send new message notifications to kttsd, have it filter the notifications, and speak them. Obviously much more will be possible, but that's my itch anyway =)

P.S. if you want to try the branch, it's at

Wednesday, May 13, 2009

KNewStuff bug fixed (finally), and accessibility

Talked to aseigo on irc this morning and was asked to fix a bug with kns. Previously there were two methods in the KNS::Engine class, downloadDialogModal() and downloadDialog(), the latter's documentation saying it's asynchronous and uses signals to tell the app of activity in the non-modal dialog. Since plasma's dialogs are all non-modal so it can update, etc. it needs kns to show a non-modal dialog for it's purposes. Easy fix, right? just send a signal saying what entries were changed when the dialog closes. Problem is KNS::Engine isn't a QObject (I can't remember why, but will remedy that with the next BIC fix), so a bit of tom-foolery was needed. I added a new downloadDialog(QObject * reciever, const char * slot); method that will connect the private object's signal to your slot for you. It's ugly, but it works for now. So now apps can actually use the non-modal version of the method to get new stuff, yay!

On another note I've been investigating the state of kde-accessibility lately, and have learned a lot with the help of some folks from gnome-accessibility, and other places. It seems we are a bit behind the curve, but can probably catch up easily. A couple things are on our list:
1. kttsd has a redesign that phantomsdad designed before he left that should simplify things a great deal by using speech-dispatcher rather than plugins for each synthesizer. This also has the effect that speech-dispatcher will be doing all the synthesizing, and all the output to the speakers as well, and may make kttsmgr a gui component to control parts of speechd (or at least speechd as kttsd interacts with it).
2. some gnome? devs are working on a bridge between AT-SPI and dbus, once this is done, existing Qt accessibility functionality should be usable right after Qt's x11 implementation is using the dbus from that bridge (I'm a bit unclear on this, but it sounds like it will work).
3. At this point I believe the only step to make Qt/KDE apps usable with the orca screen reader will be to turn on accessibility in qt QT-ACCESSIBILITY=1, and add accessible names and descriptions to widgets in our apps (and maybe in our kde libraries also? i.e. default name/description for kpushbutton)

I believe these steps will go a great deal towards making kde a more accessible desktop solution. (which incidentally makes us an option for government workers, etc. who are required to have accessible software from what I gather).

Saturday, January 31, 2009

Anyone want any hot new stuff?

Hi all,

In talking with Roger (DaSkreech) lately, we've been wondering what apps in KDE haven't been using KNewStuff to distribute data for their applications. KNewStuff is very well used in kde-edu apps, and in many of the kdegames for distributing game themes, levels, etc. It's also very well used in the desktop to distribute wallpapers, colorschemes, plasma themes, etc. I'd like to see it used more in apps like KRecipe, to get more recipe's, in any app that has support for scripting to distribute scripts, and so forth.

I am aware there are some missing features in KNewStuff, and woild like to know what developers have found when they've tried to use it. Any missing features that hindered it's use, or just lack of know-how of how to use it and set it up?

Some things I've been considering lately have been setting up a ghns provider at home to provide access to family pictures in wallpaper size, and making a windows port of khotnewstuff4 those family members stuck on windows could use to fetch the images. A bit over the top, but definitely possible. Many more ideas for ghns, and ODC (Open Desktop Collaboration) can be found in Frank's Keynote from last years akademy, a great presentation full of ideas for bringing our technology further along.

Anyway, if you have any ideas for how ghns could be used in more apps, or improvements for it, don't hesitate to leave comments here, or e-mail us on the ghns list or come join #ghns in irc.

Tuesday, January 20, 2009

I must be doing something wrong =)

Hey all, I've been hanging out in irc and such lately, and am excited to get working on stuff again (poke me if you see me not working on stuff, I really need to get some things working better). Anyway, just wanted to throw something out there real fast and see if anyone else has hit it. For about the past year when I build qt-copy I've proceeded to move or delete the qt-copy/include/phonon folder in order for kdebase to not find those headers and find the installed ones from kdesupport/phonon. This last week I've been trying to not do that and build things straight as they come, but haven't had much luck, sort of. The other day I copied the .bashrc directly from techbase, and used it to build qt-copy, kdesupport, kdelibs, kdepimlibs, and kdebase without a hitch. Only problem was that it installed to $HOME/kde instead of /usr/local where I like it. So after that finished I tweaked the .bashrc to install to /usr/local and wouldn't you know it, kdebase/runtime/phonon/kcm didn't build again, same issue... That was a long story, but I'm just wondering if anyone out there that builds qt-copy and installs kde to /usr/local has it building somehow =)

In other news, there are a few things I need to work on (bugs in ghns mostly) and a few things I could work on and wanted to get some feedback about what people think would be most worthwhile. Just an informal leave a comment if you like one/a few of these ideas and let me know what you'd like to see.

1. KHotNewStuff updateable category - show all installed items that have updates, possibly with an update all button/action of some kind.

2. KHotNewStuff installed category - show all installed items so user can remove ones not wanted anymore, this makes the most sence for wallpapers, etc. that move off of the "Latest" list pretty quickly as new wallpapers come available.

3. KHotNewStuff upload - often asked for, some spamming issues to work out to make it work right, but should be doable, and would simplify distribution of data a great deal. (Think sharing guitar hero songs with your friends, only sharing with the world and not guitar hero songs, but kgoldrunner levels, etc. =)

4. KHotNewStuff ui tweaks - I'd like to add a hover for the preview that shows a larger image of the preview, fix up a lot of other things I left hanging when I left last summer, etc.

I'll probably be trying to work in all of the above, but just wonder what people would like to see first/most and if anyone has any ideas/feedback I'll welcome it all =)