libsexy v0.1.11 released

We just put out a new bugfix release of libsexy. A number of important SexyUrlLabel changes went in, so please upgrade, as notification-daemon and xchat-gnome both use this.

As always, the latest version is available on the libsexy page or in the download directory.

Release notes:

  • Fix a typo in SexyUrlLabel that was causing the widget to never be marked as unmapped, which prevented it from re-mapping the event window when the widget was shown again. (Bugs #364030 and #353946)
  • Fixed the cursors to properly indicate whether the text was selectable.
  • Get rid of the unused SexyTooltipPriv structure to fix building on Solaris. (Bug #378066)
  • Remove some debug output from SexyIconEntry and SexyTreeView. (Bug #355129)

Pipe into your netlife

Yahoo is doing a lot of interesting things these days. While Google gains a lot of the attention when it comes to search and web applications, Yahoo should not be ignored. del.icio.us and Flickr are of course two widely popular services, but they have a few useful utilities floating around their developer site.

There’s one tool in particular that I found tonight that has already proven useful. Pipes. Pipes allows a user to quickly put together a simple set of pipeline filters for turning various forms of data into an RSS feed and accompanying JSON file.

Such forms of data include user input (validated as a date, geographical location, number, text or URL) and web-based input (Flickr pictures, RSS2/Atom feeds, JSON/XML data, Google Base listings, Yahoo! Local searches, and Yahoo! search results). This data can be fed through several layers of pipes (including back into another Flickr pipeline and such as query input). The pipes can transform the data, walk through each feed item and modify or extract data, combine data together, sort, remove duplicates, apply regexes, translate languages, and so on.

This can be pretty powerful. While still a young project, many users have already published pipes, myself included. With the increase in API-enabled web services, I can only expect this to become more powerful, with work. It’s just a little tricky coming up with actual useful applications.

So I played around a bit and started to experiment with what could be done. I ended up with a couple of simple, but very useful pipes. One thing I have wanted for the longest time was a way to see feeds from several Planets in one listing (for Netvibes, since space is precious), without having to deal with duplicate entries. Pipes made this all too simple.

Unique Planets Pipe

I’m feeding several feeds into a Unique operator, saying to filter based on the title. I then output that. That’s all it takes. You can see the results and even add the RSS feed.

I then took this one step further and decided to write a quick pipe for searching through the planets. Now, pipes are reusable, so I was able to incorporate the Unique Planets pipe into this. This was fed into a Filter, using a couple of text inputs (for a text string and a name) as parameters to the filter. The screenshot below will clarify this. The result is the ability to quickly search four planets by name or content.

Planet Search Pipe

You can play with the results. Go ahead, give it a try.

Pipes can be published for other people to use, or they can be used privately. Private pipes are great when you want to deal with data that can’t easily be queried, such as your Twitter feed or your own Flickr feed.

Pipes are also quite useful when you have a small web application that needs to deal with several other feeds, filtering results or combining data from multiple sources. Sure, you could write this all yourself, but it’s far easier to change and maintain a Pipe than a whole bunch of code.

If you want to play with pipes, I recommend just jumping in and playing. Also take a look at some other people’s pipes, and you may want to browse the tutorials. For some starter ideas, try making a pipe that searches your local area for sales or singles or something using Google Base and Craigslist, or one that searches all your favorite blogs for a certain keyword, or maybe something that keeps track of your friends’ blogs and Flickr posts.

Now, pipelines are hardly a new concept. Several programs offer them, including some development environments that rely solely on pipelines for development in order to quickly produce simple programs. What makes Yahoo!’s Pipes interesting is that they make it very easy for almost anybody to quickly build a pipe to modify or search all kinds of data on the web that people actually use. This makes them more immediately useful to many people, and of course Yahoo makes it dead simple to start out.

What would be useful in the future, aside from adding native support for more services, would be to output data in other formats or somehow easily lay out information onto a page from one or more feeds. The project seems pretty young though, so I’m sure in time, this will mature into a much more useful project, both to developers and (certain) end users.

Watching you watching me watching you

We live in a new, very public age. While most of us didn’t quite grow up with the Internet, it’s been a major part of our lives. To these new generations of kids, a world without the Internet belongs only in the history books. It’s made the world closer and more open in many ways. This comes at a price of course.

Ever since the book “1984” was published, many people have been strongly concerned about their privacy and keeping “Big Brother” from knowing every detail of their lives. “Big Brother” is typically thought of as being the government, but that’s not necessarily true these days. While it’s quite possible that our lives are being monitored more closely by government agencies, “Big Brother” is really closer to you than you think. It could be your friend, your parents, somebody across the world. And is this really a bad thing?

We put out so much personal information these days, often times without really thinking about it. A lot of us seem to have a need to share our lives with the world.

Blog posts about the recent developments in your life or in that of someone close to you. Pictures uploaded to Flickr, complete with timestamps and information showing exactly where the picture was taken. Discussions on a public forum. Presence information on IM accounts showing when you’re at your computer, your mobile phone, how long you’ve been idle, and what your current away state is. Twitter updates saying what you’re doing right now and what you have been doing over the past several days. Complete social relations maps showing who you know and how. Online videos showing you and your family at a gathering. Nearly all of this indexed and easily searched by anybody anywhere in the world at any time.

There’s all kinds of information about us out there, and a lot of people are watching, probably more than you’d suspect. Some guy 500 miles away may know you better than your neighbor does. Now, this is all information we choose to put out there. You’d don’t have to have a blog, or use IM, or put your pictures up somewhere, but you probably do, and your kids most certainly will.

Is this bad? I don’t think most people involved see it as a negative thing, and hopefully most are aware of how much personal information they’re leaking. People usually just consider it as a normal part of being in a wider net community. Posters on LiveJournal or Planet GNOME know they’re not only talking to specific communities but to the world. It brings people from all over closer together. Friendships develop, ideas are born, knowledge is spread. These are all good things. On the flip side, some people you’d rather avoid are going to pay close attention to you. You may never know and you may never be impacted, or you may end up needing a restraining order. It’s all part of being in a community, right?

If we’ve come to accept this, should we really be worrying so much anymore about “Big Brother?” Afterall, aren’t we all playing that part to some degree? Do you think a government is really more of a personal threat to you than some random guy that reads your blog and watches your Flickr gallery, or is it really a higher authority that you should worry about? In the end, is this more of a benefit to people, bringing us all just a bit closer together, or a danger?

Discuss.

VMware Tango Icons รขโ„ขยฅ Creative Commons

The VMware Workstation 6 betas have been out for a while now, so I’m sure those using it have noticed that we’ve been trying to make our icon theme fit in with the Tango icon style (well, to the best of my current abilities). So far this has proven to be a dramatic improvement over our older icon style used in Workstation 5.x, and it really fits in a lot better on modern GNOME desktops. The overall look feels clean and polished, mostly thanks to the hard work of the Tango project.

We’ve been lucky in that the Tango project has provided such a good variety of high-quality icons. I haven’t had to do nearly as much work as I expected in designing these icons. There were several existing VMware icons that we needed to move to the Tango style still, such as power icons, USB, serial port, message log, etc. Just a handful, but while many of them may be somewhat VMware-specific, there are some that we felt could be useful to other software projects, icon designers, and, perhaps, to Tango itself.

So we’re releasing our non-trademarked icons (everything the lawyers are okay with) under the Creative Commons Attribution-ShareAlike 2.5 license. It’s only fair that we give back, afterall. There will be a dedicated page for this later, but for now, you can download it directly from here:

Download: vmware-tango-icons-0.5.tar.gz

You can see what we currently have available in the image below. I’ll put out updates as we come up with new icons and tidy up some of the remaining ones that we still want to release.

Thanks again to the Tango project for all your work in making the Linux desktop a more beautiful place, and if any of these icons look at all useful to the project, please feel free to use them, modify them, or have me tweak them.

VMware Tango Icons

libsexy is not libegg

I’ve been meaning to post this for a long time, and finally decided that maybe now would be a good time to do it.

I’m really pleased that a lot of projects are now using libsexy. This is awesome stuff, and I want to thank people for making use of this library.

However, the one thing that bothers me is that everybody seems to think libsexy is like libegg. I’m seeing projects bundle libsexy directly in their apps or taking a piece of libsexy, renaming it, and sticking it in their tree. Guys, this lib is not meant to be used like this. It’s a formal library, and it’s pretty standard. Every distribution that ships notification-daemon or xchat-gnome also ships libsexy, so you can pretty much guarantee it’ll be there. I know it’s not part of the GNOME desktop, but given that so many apps are using it, I’d rather see it become a blessed dependency or a configure-time option than bundled.

Shipping a copy or fork of libsexy into your apps has the following problems:

  • Upgrades to libsexy proper won’t fix bugs or enhance the applications that are using it.
  • People end up modifying their forks and never send patches upstream.
  • Some projects end up copying from other projects and never even realize they’re using libsexy in the first place.

It also confuses me that some projects end up rewriting their own versions of some of these widgets instead of using libsexy’s. For example, Evolution has EIconEntry, which is like SexyIconEntry except that it uses an HBox and some style tricks instead of being an actual GtkEntry. Let’s standardize! ๐Ÿ™‚

So this is a call-out to the developers of Rhythmbox, Last-exit, xchat, gedit, and any other projects in any way making use of libsexy incorrectly. Please fix your apps so we can have an actual shared library that can be properly upgraded.

And to the Epiphany and Evolution projects, is there any reason anymore to not use SexyIconEntry instead of a custom HBox-based solution? A while back, I was told that the motivation was due to some rendering and usability bugs in SexyIconEntry that have since been fixed, so this is a good time to find out if there’s anything more that I could do to get you guys to use it.

Thanks.

Update: Last-exit now links against the system’s libsexy. Thanks to Brandon Hale for his work on this ๐Ÿ™‚