Open Source

Pretty new notifications… And a release!

I’ve been inspired by the December GNOME mockups. A lot of them are quite nice, and in the area of notifications, it had some good ideas on sprucing up the look and feel. So I present to you, notification-daemon v0.3.4!

Along with the usual assortment of bug fixes, I’ve improved the style quite a bit. There’s now a countdown timer on notifications with actions, a close button, themed urgency-based stripes, and actual buttons.

Before After
Old urgency stripesOld icons and actions New urgency stripesNew icons and actions

A few project updates

I’ve been putting off several posts for a few days now, due to just being busy with things. So, here we go.

Notification Framework

I just put out a couple of good releases of notification-daemon and libnotify. A few days ago, I released version 0.3.2 of both components, and tonight I put out notification-daemon v0.3.3, which contains a few nice bug fixes such as a fix to prevent notifications when the screen saver is active or when something is running full-screen. The style of the notifications has been changed to resemble the look from notification-daemon v0.2.x. It now supports theme engines, so that other looks can be developed. The protocol has improved and stabilised a bit, and the API and general code of both components have been cleaned up, thanks to J5’s work.

Galago

Galago’s been on hold lately due to work and trying to get the new notification-daemon and libnotify ready for distros. Development has picked up again, and I’m hoping I have very little to do before I can put out the 0.5.0 releases of all the components. Finally, libgalago will be GLib/GObject-based, and the API will be a lot more sane. Plus, Python bindings! Yay!

Oh, and I’m moving to Trac for our bug tracking (see trac.galago-project.org). This is real nice, because I can now reference bugs in commit messages and they’ll close automatically with the commit message. It’s also quite clean and easy to use. I’m slowly moving some bugs over, but I’ll continue to monitor the bugzilla for a while.

Leaftag

Remember those screenshots of our tag integration I posted? It too has been on hold, but it’s far from vaporware. We’re calling it leaftag, and I think our logo is somewhat cute :). I have very little left to do before the library is released, and I should be able to redo the Nautilus support quickly. I’ve been using the tagging almost every day. Now I just need to find the time to get this ready. Maybe at one of these upcoming hackfests I’ve been doing (and really hope to do more) with friends.

VMware

Busy busy busy, but good. I’m working on some pretty exciting stuff. More about this later 🙂

Oh, and someone needs to remind me to put up a picture of our cool new Workstation 5.5 sweaters featuring Mario!

Tux Paint for the Nokia 770

Tux Paint is one of those Linux applications that just makes me smile. It’s cute, fun, and great for kids. My little sister of five years old loves it and has been playing it since she was two. Also, Bill Kendrick, Tux Paint’s creator and lead developer, is a friend of mine, but I’m not biased at all!

So recently, Bill has been talking about finding somebody to port Tux Paint to the Nokia 770. Since I have one, and since my sister loves playing with both the 770 and Tux Paint, I figured I would take up the challenge. While not perfect, and somewhat slow in loading, the end result turned out pretty good.

Tux Paint on the Nokia 770

Work will continue on this. Some optimizations need to be made in areas, and hopefully other users of both Tux Paint and the 770 will want to contribute.

Releases will be posted soonish.

20 Ways to be a Good User

I don’t expect anybody who should read this to actually read it. A couple of users the past few days have inspired me to write this little guide.

  1. If you request support in a channel and nobody is around to answer within two minutes, make sure to voice your frustration and leave immediately. Make sure that you stay for no longer than four minutes in total.
  2. If a developer tells you the answer you’re searching for is in a piece of documentation easily accessible, refuse to read it, perhaps citing an inability to read. Your time is important, and the developer should know the answer.
  3. Don’t read instructions or information in detail. Glancing over it should be enough. If glancing isn’t good enough, repeat your question. Don’t add any additional information to this question, or it might confuse the situation.
  4. Remember, you use this software. You have rights. The developer’s personal life, work life, or stress level is completely irrelevant. If they don’t provide the level of help you expect, remember that this is not your fault, but theirs. They owe you support, and be sure to complain loudly in as many forums as possible.
  5. NEVER thank someone for their support. They’re working for your needs, and don’t deserve any gratification. Besides, thanking them gives them a sense of control, which you should attempt to keep for yourself.
  6. Your problem is the most important. The developer may have other people they are trying to help, but it’s unlikely that their problems are more important to yours. Be sure to explain this, loudly if necessary.
  7. If you are influential at all, your opinion matters more than anybody’s. Follow the previous rule, as it will definitely produce a positive outcome. Be sure to relate the developers in question to members of organized totalitarian political parties.
  8. The more supportive you are of a developer’s software, the more support you deserve.
  9. Don’t use punctuation or bother with the spell checking. This slows down the communication between you and the developer.
  10. Insult the developer. This establishes control which, as previously mentioned, is important. Support should be thought of as a battle. Popular insults include “asshole,” “mother f**ker,” “dipshit,” and “newb.” Insulting their mother is another good way of establishing control.
  11. If your problem is very important, make sure to complain loudly about the software in general on several popular forums. The louder you complain, the more likely it is that the developers will fix your problem.
  12. If you’re confused by the “support” that the developer is giving you, don’t feel bad, as this isn’t your fault. This is the developer’s fault. Developers live in a different world. They’re nerdy, geeky, socially inept people who aren’t able to clearly get points across. Tell them this, as they probably don’t realize it. It is sure to ease the communication.
  13. As a user, you’ve come to know this software, probably better than the developer. If the developer says something about the software, take it with a grain of salt. They’re only the creators. You’re the one that uses it.
  14. Don’t waste time by upgrading to a recent version of the software. The bugs you have are important, and upgrading may introduce new bugs. It’s best to get the current bug resolved. If necessary, inform the developer that they need to create a patch release. This is especially important if the software is several years old.
  15. You represent the majority of users. Your feature request is everybody’s feature request, and it isn’t a hard to implement, really. The developer should be able to do it RIGHT NOW. Drill this in to the developer when they start stating bullshit like “that feature requires a rewrite of our codebase,” or “that feature conflicts with this other feature,” or “we’ve never heard of anybody wanting this feature before.” They’re just lazy.
  16. If you have a family member or close friend that tells you a fact about a piece of software, and the developers try to tell you that your family member or close friend is wrong, they’re just jealous. They don’t want to acknowledge your family member or friend’s expertise, especially if your family member or friend can “program” Microsoft Office onto your computer.
  17. Documentation is essential to a program. Many developers will claim they have not had the time to produce extensive documentation, citing work or personal life or other bullshit as “reasons” for not spending time on this. Often, they will ask you to do it. Have no part in this, as it’s a trap. If nothing else, they will try to take credit for your hard work.
  18. It is your responsibility to fill out as many feature requests and bug reports as possible. Do not check for duplicates in the bug tracker, as the more redundant bugs that exist, the more likely the developer will notice and fix these bugs, or implement the features.
  19. Sometimes you just have to switch to a competitor’s program. Your problem may be trivial, according to the developer, but it’s still a problem, and if there is one problem, there may be many. What are the chances that the competing program would cause problems?
  20. If the program is open source, fork it. You can do it better. To gain press coverage, post on all the forums and popular news sites. You’ll gain more respect and developers this way.

I hope this has helped all the users out there.

NOTE: For the sarcastically-impaired (if you live somewhere in the vicinity of Betelguese, this includes you) do not actually take this advice.

Tagging and the GNOME Desktop

Just a little preview. It’s not done yet, but will be shortly. What you see below is a small python module, a useful command line utility (well, that’s not shown, but if you check the gallery these are in there will be a full-size screenshot showing one), and plugins for Nautilus, GNOME-VFS, and Deskbar. There are plans for Beagle support in the near future, and to make the system more robust.

Stay tuned. There should be a release soon.

Tags in Nautilus lists

Tags in Nautilus lists

tags URI

Deskbar Integration 1

Deskbar Integration 2

libview 0.5.5 released!

Another release to talk about. As promised, libview 0.5.5 was released. It’s mainly a bug fix release with a couple of API additions. The highlights are as follows:

Release Notes:

  • Fixed a bug in UIGroup where Merge wouldn’t call Unmerge if the group was already merged.
  • Fixed a bug where deactivating the AutoDrawer while it was moving would not do the right thing.
  • Added support for keeping the AutoDrawer open while the focus is inside it.
  • Added support for setting an alignment in the Header widget.
  • WrapLabel now wraps properly when being passed text in its constructor.

There comes a time…

I read this blog entry from a hard-working former Gaim developer today. It’s sad, yet so familiar…

I’ve been holding back this blog entry for a long time, but given that I’m not the only one who has been mistreated, now might be a good time to describe what happened to me in what used to be an awesome project. It’s also a way to hopefully clear my name, so to speak, as some have been told some very negative things about me as of late.

As many know, I was a developer on Gaim for many years and wrote a bulk of the framework that it’s made of today. At least for a time, I was respected, and my work was appreciated. At one point, a number of users started messaging me asking why the lead developer or other senior developers were saying such negative things about me behind my back. I wasn’t sure I believed it at first until a trusted friend told me what was said to her about me. It was after that that things took a sharp turn downhill, and while I won’t go into details, it was enough to make me never want to contribute a line of code to the project again. I’ve been informed since that my name is synonymous with crap code, according to a couple senior developers. It was really hard to hear this.

Now, I know this has happened to other people. Users and developers. A number of people in the past who have wanted to contribute to the project have been strongly rejected. I hope I was never the cause of any of that, as I tried to work with most people and help them along. My apologies to everyone out there who has had a bad experience with the Gaim project.

I don’t know what Gaim’s future holds, but in the past year I’ve learned not to care. My work on Gaim has helped me to establish connections in the open source community, and for that I am grateful. It has also helped me to get a job that I absolutely love.

I’ll forever miss the project as it used to be, and hope someday it’ll reach that stage again.

libsexy 0.1.4 released

I just put out a release of libsexy 0.1.4 tonight. It’s a bugfix release that fixes some UTF-8 problems in SexySpellEntry, and also a compile issue some people have had regarding sexy-marshal.h.

Also, libsexy now has a webpage set up! Woot! About time, really. A little directory containing tarballs and a few blog entries just wasn’t enough, as I’ve quickly come to learn by the number of packagers linking to my blog entries 🙂

SexyIconEntry is now 67% sexier

The original GTK+ IconEntry widget has just gotten sexier!

I was in need of SexyIconEntry today for some work, and decided now was a good time to fix some of the problems I haven’t taken the time to fix in this widget, and add some features at the same time. To start with, SexyIconEntry now works correctly in all themes I have tested. Clearlooks’s GtkEntry border is no longer cut off, for instance. Also, the ability to put an icon on both sides has been added. See the sexy screenshot!

Such a sexy screenshot

And remember, this is an actual GtkEntry! Anything you can do to a GtkEntry, you can do to this.

I’m adding more features, like the ability to add a clear button with one API call, and icon drag-and-drop support, to the widget. It will be in an upcoming release (possibly tonight or tomorrow morning), along with some other nifty features in other widgets.

By the way, isn’t it about time we replace the asterisk in masked entries with that unicode character for the round filled circle (“●”)? The asterisk is so 1980s.

Scroll to Top