Archive | May, 2012

Project spotlight: xVideoServiceThief

I recently spoke with the developer of the xVideoServiceThief project about his project.

Rich: What does your project do? What video formats/sites does it work with?

Xesk: xVideoServiceThief is a tool for downloading videos from video services sites. At this moment the xVST can download any kind of file. If this file is a video, then you can convert it automatically to another common format using the FFMPEG library (bundled with the application, except for Linux version).

Rich: Is that legal? Have you received any legal challenges to what you’re doing?

Xesk: I never did received any legal challenge (crossing fingers hehehe). The xVST acts like a browser, the only difference is that the video is not played, but rather is saved directly to disk.

Rich: How long have you been working on this project? How did you get started doing this? Why do you continue to work on it?

This project has been developed in my free time (which is not much currently, my life changed a lot since 2007). The first version of this project was coded using Delphi, then due to the impossibility to port it to Linux (and later to Mac OS X) I decided to change the framework platform, and was replaced for Qt4 (this was my first Qt4 project).

Today, I’m mainly maintaining the xVST plugins, but I must say that a new update will be released soon (I hope!!).

Rich: What’s in the future for xVideoServiceThief? Is there some way that someone might get involved?

Xesk: How can people get involved? Helping me in the process of maintaining and writing the new plugins :) It would be a great help.

Featured projects, week of May 28

This week we feature another exciting and interesting group of projects, spanning a large range of problem domains. I encourage you to take a look at all of them.

  • Greenshot

    Screenshot tool optimized for productivity. Save a screenshot or a part of the screen to a file within a second. Apply text and shapes to the screenshot. Offers capture of window, region or full screenshot. Supports several image format

  • Waterfox

    Waterfox is a high performance browser based on the Mozilla Firefox source code. Made specifically for 64-Bit systems, Waterfox has one thing in mind: speed.

  • iReport-Designer for JasperReports

    iReport is the most popular visual designer tool for JasperReports Library and JasperReports Server (Business Intelligence). Supports all the most important output formats and virtually any data source.

  • MeshLab

    MeshLab, a mesh processing system, for user assisted editing, cleaning, filtering and rendering of large unstructured 3D triangular meshes (typical 3D scanning meshes). The system relies for mesh processing tasks on the gpl VCG library (

  • Game Downloader

    Game Downloader is a portable and open source download client, which interacts with a server side library for downloading numerous games. With the help of this utility, you can download more than 200 games, by simply selecting a game category then selecting any game from the available list. This makes it easy to obtain games, without having to manually search and download the game via a browser.

  • MPlayer WW

    MPlayer modified by william0wang

  • Scrabble3D

    Scrabble3D is a highly customizable Scrabble game that not only supports Classic Scrabble and Superscrabble but also 3D games and own boards. You can play local against the computer or connect to a game server to find other players.

  • UFO:Alien Invasion

    It is the year 2084. You control a secret organisation charged with defending Earth from a brutal alien enemy. Build up your bases, prepare your team, and dive head-first into the fast and flowing turn-based combat.

  • Torrent Episode Downloader

    Meet ted! Your new way of downloading tv shows from the web. Add your favourite tv shows to ted and ted will automatically download torrents of new episodes! Ted checks feeds from the major torrent sites for new episodes of tv shows.

Again, half as long

One of my favorite movies is “A River Runs Through It“, which tells a story of two brothers growing up in Montana. Their father, a preacher, conducts their schooling at home. In one scene, one of the boys is writing an essay, and each time he brings it to his father, his father tells him to do it again, and this time make it half as long.

I think of this quote often while trying to wrangle project descriptions into the miserly 140 characters that Twitter allows me. I want to tell each of you to rewrite your project summary, and this time make it half as long.

Here’s a few tips in shortening your project summary. (These are not absolute rules, of course – just suggestions you might consider in updating your project summary.) I’ve discussed this before, but I think it’s important enough to talk about again.

* Skip the “this project is an attempt to write software designed to …” bit. These are just extra words, and don’t convey anything about your software. Rather than saying that it’s designed to, or hopes to, or might some day, give me action words.

Before: “This project proposes to write software designed to edit audio recordings.”

After: “Edit audio recordings!”

Same meaning, but without the padding.

* Don’t tell me that it’s free and Open Source. This is SourceForge. Everything here is free, Open Source. It’s assumed. I always edit this part out when posting tweets.

Before: “This software is a free, Open Source podcast catcher.”

After: “Catch podcasts!”

Same meaning, but gets right to the point and doesn’t tell me something I already know.

* Skip words and phrases like “fast”, “easy to use”, “user-friendly”, “feature-rich”, and so on. You don’t have to tell me that your software is good. You have to tell me what it does, and then I can make that judgement on my own. Fast compared to what? Feature-rich? What features? Robust? As measured how? These things don’t add to my understanding of what your project does, and so just get in the way.

Before: This is a fast, robust, full-featured, user friendly birdsong identifier with a lovely blue user interface.

After: Identify birds by their songs!

Takes less time to get to the actual message, and tells me what I can do with it, rather than how happy I’ll be while doing it.

* I probably don’t care what language it’s written in. The “written in Java”, “written in PHP”, “written in objective C++” belongs in the detailed project description, not in the summary statement. I realize that this is a major selling point for some people, but it’s really not what your product *is*. I don’t care that my table was made with a Craftsman reciprocating saw, I care that it doesn’t collapse.

Before: Fast, robust full-featured wine database software, written in php with a mysql back-end.

After: Track your wine cellar on your website!

Tells me what it actually does. You can list your install requirements later.

As always, I’d be happy to advise you personally on how I would rewrite your project summary statement, if it were my project. Not that my answer is always the right one, but having read hundreds of project summaries, I know what catches my attention, and what makes me move on to the next project.

Project Feature: QSMM State Machine Model

Last week I had a conversation with Oleg Volkov about the QSMM project, which is a framework for development of intelligent state models. Here’s my conversation with Oleg.

Rich: What does QSMM do? What are “non-deterministic intelligent state models”?

Oleg: QSMM is a framework for development of intelligent systems. Yes, that sounds somewhat pretentiously, but I really consider the framework will help people, who are interested in the area of artificial intelligence, to solve tasks for which they did not have an instrument before.

One can hardly predict how the field of information technology will be developing during next decades. An accepted viewpoint is that cloud and parallel computations will play more and more important parts in the field. I have a suggestion that a new kind of computer programs will also be developing: programs that could adapt their own behavior to solve raised problems more efficiently. That is, after a time, there will come an era of non-deterministic intelligent computer programs, which behavior was only partially specified by a developer.

I think of computer programs, as they are means to put part of one’s soul into an inanimate object–the computer. That process can be understood as transferring a state model from human mind to the computer (and it is applicable not only to a computer program, but to any creative work). At present, computers are typically performing operations in a deterministic way–exactly as a developer programmed them. QSMM is an aid to put a state model into the computer in such a way that the state model will behave non-deterministically and intelligently.

Rich: How did you become interested in this field? What problem were you trying to solve with this software?

Oleg: When I was younger, there became popular the concept of artificial neural nets. That concept was interesting for me as well as for many other people. Soon I made a conclusion for myself that proposed methods of building the nets, training them, and obtaining results of their operation often require considerable amount of computations, somehow resemble numerical alchemy and attempts to do magic using computers.

I wondered if there could be algorithms for training and using neural nets, which efficiently perform on a single-core low speed CPU, and which give results that can be easily interpreted. After several years of thinking and experimenting, I have developed such an algorithm, which provides moderate efficiency of solving certain sort of tasks, and published it as QSMM project.

In contrast to many existing types of artificial neural nets, a kind of neural net used in QSMM produces discrete, not analog output. This makes possible to associate blocks of code, which perform application-specific actions, with every distinct output signal of the net. The process of choosing output signals by the net is controlled by changing numeric quantity called spur or incentive. That is, the net operates as an optimization engine that produces a discrete output based on the discrete input and current value of spur the engine is normally trying to maximize.

Rich: What is the audience for this software? That is, who would use software like this?

Oleg: Primary audience for QSMM are scientists, who work in the field of artificial intelligence, and non-scientists, who are interested in that field and wishing to create something intelligent, but do not know what to start with. I believe that acquaintance with QSMM of the latter group of people will give them an incentive in the right direction.

Rich: What do you have planned for the next version of this software?

Oleg: The next version of QSMM will probably be a bug fix release. Future versions will be based on feedback I will receive from package users. At present, I have no specific plans what to include in future versions of the package. There are several possible directions of improving the package, and I am going to understand from the feedback whether those improvements are worth of implementing.

Rich: How can I (or anyone) get involved in your project?

Oleg: Improving QSMM is not a routine task, and it requires understanding of how QSMM operates. People who came to that understanding would possibly make substantial improvements to algorithms used in the framework. Developing the package alone for several years has a reverse side that sometimes I cannot see obvious things that might be done to improve it.

I will be very glad to receive feedback on the project. At first, I expect to obtain a lot of bug reports and complaints that something does not work as expected. The feedback generally should be posted to a mailing list for QSMM users. Information on the real examples of using the framework is especially important for me. If you permit that, then good examples of using the framework could be included in its future distributions.

The general rule for QSMM: if you have ideas how to improve the package, then write that to the mailing list, and it will be seen what to do next.

The Anvil Podcast: Mentoring Apache OpenOffice

Rich: I’m speaking with Ross Gardler, who is one of the mentors on the Apache OpenOffice Incubator project.

If the embedded audio player below doesn’t work for you, you can download the audio in mp3 and ogg formats.

You can subscribe to this, and future podcasts, in iTunes or elsewhere, at, and it’s also listed in the iTunes store.

Ross: Hi, Rich, good to speak to you.

Rich: The last time that we spoke was at ApacheCon, and things were at a much earlier stage then. Tell me what’s happened since then with the community so far as getting them on board with the Apache Way.

Ross: Probably the biggest change since then – which would be back in November – I think the biggest change since then would be that the community has accepted the fact that there isn’t an owning influence who is just going to make things happen for them. So, in the early days, it was, well, who’s going to do our marketing for us, who’s going to do our conferences for us, who’s going to do this, who’s going to do that. And the Apache Software Foundation isn’t set up to do that kind of thing. It doesn’t do that kind of thing. The individual projects have to do it. So I think that’s probably the biggest thing. The project community has recognized that if we want something doing, we’ve got to find a way of doing it ourselves. Once they figured that out, well, they started moving pretty quick. And of course we culminated last week in the release.

Rich: So, when a project enters the Apache Software Foundation, “them” sort of becomes “us”, in a sense?

Ross: Yeah, very much so. The Foundation only exists to provide a legal entity in which the project can exist. It doesn’t exist to control the project, or babysit the project, or make sure the project succeeds. That’s entirely up to the community. So the community does have to become part of the Apache Software Foundation in order to get the most from it.

Rich: What’s the next step? Now that there’s a release out there, and the release is fully under the Apache software license, what’s the next step to getting out of the Incubator?

Ross: Probably each of the mentors has a different opinion on that, so I’ll give you my opinion. I think that there are still some IP issues that needs to be addressed with code that isn’t in the release. The release is IP-clean, and is under an Apache license. But there are still some questions over some of the items that are in the repository as to whether or not they can remain in the repository as it becomes a top-level project. But they’re quite minor, compared to what the team have been working on in order to get the release out there. There is no real issue in terms of diversity. Certainly there is no question about the fact that there is one specific employer who is providing a great deal of input to it. But there are a significant number of people who are independent, and working for other organizations, that are active and showing leadership within the project. So I don’t have any concerns about diversity. So that one’s pretty sorted. And that’s about it, really. It’s just the final cleanup of the items that are used in building the OpenOffice code base, which should take really a matter of weeks, and as far as I’m concerned, I’d be happy to talk about graduation at that point.

Rich: What’s the relationship between the Apache OpenOffice community and the Templates and Extensions communities? Is there a lot of overlap there, or are they just kind of far flung?

Ross: There is some overlap. The Extensions and Templates communities are able to release their software and their plugins and so on, under whatever license they want. And what that means is that they can’t be hosted – or some of them, at least, can’t be hosted within the Apache Software Foundation’s infrastructure, because we only release code under the Apache software license. In those cases, it’s difficult to say that they’re part of the same community. They obviously would be part of the testing community, making sure that their extensions work within OpenOffice. But they maintain their own software, their own extensions, and so on, externally. We’ve had SourceForge step forward to help resolve that problem of, where do these people host stuff. Previously that was owned and hosted by Sun/Oracle. As I said, we can’t host non-Apache licenses, and the project team felt it wasn’t appropriate to demand that all of the extensions became Apache licensed. So SourceForge stepped in. SourceForge are now providing the hosting site for all of those. I’m sure SourceForge would be quite happy to provide development tools for those extensions, since that’s what SourceForge do. And of course the OpenOffice community is welcoming to anybody who wants to come in and help us improve the extension mechanisms within OpenOffice. So there’s overlap, but there’s certainly no requirement for extensions developers to become part of the Apache community.

Rich: Jürgen told me a little bit about where he expects the project to go in the future. As a mentor of an incubating project, what’s your thing going forward? Do you remain part of the project once it graduates, or is that the end of the road for your involvement?

Ross: As a mentor, that’s the end of the road for my involvement. Once the project graduates, they’ve shown that they understand the Apache Way and that they’re operating according to the way that we expect projects to operate. I would step down as a mentor. I may or may not choose to remain a member of the community. I’m not an OpenOffice developer. I’ve never been an OpenOffice developer. And I don’t expect to become one. So it’s not likely that I myself would remain a committer. But I think some of the other mentors will stay around, will go with the project. They would then become just normal members of the Project Management Committee with equal rights to everybody else in the community. If I wanted to regain those rights, as it were, after stepping down, then I would have to start from scratch, just like anybody else who would be joining the project fresh.

Rich: So, to be a mentor of an incubating project, you don’t actually have to be a developer on that project, or even familiar with the code base?

Ross: Absolutely not. No, our job is not a technical one at all. We have no opinion … as mentors, we have no opinion on where the project should be going technically. We’re only there to help the project community find their way in the Apache Software Foundation, understand how to get things done on our infrastructure, understand the processes behind our I.P. due diligence, release, etc., understand where to ask questions when they don’t know how to do something, all that kind of thing. We give them a leg up, if you like, into doing things the Apache Way. But we absolutely don’t need to be part of the technical team. And in many ways, it’s best if we’re not part of the technical team, because it’s good for the project to feel … good for the project community to feel that they are in control of the technical aspects of their project. They don’t come to Apache in order to get technical guidance, so it’s a good idea, as far as I’m concerned, if the mentors are not technically engaged with the project.

Rich: How has it been working with the OpenOffice community?

Ross: Something needs to be said about the strength of the community around Apache Open Office. It’s come here in a very difficult situation. There are certain tensions within the community – the original community, that have absolutely nothing to do with the current community members within the Apache OpenOffice project. And whilst it’s been a rocky road along the way sometimes, there’s been some rather messy things said in public, I think we’re beginning to see real collaboration between the other ODF projects in the community and the environment, and the OpenOffice community. We’ve seen it in a number of security issues that have come up during incubation. We’ve seen it in some of the code enhancements that are going on in there. We’ve seen it in some of the documentation work that’s happening. And I think now with the release of the Apache OpenOffice project, that can only increase. So, anybody who’s been sitting on the fence, waiting to see what happens with respect to these communities, please come along. Don’t sit on the fence. Do participate. We do want to build a stronger Open Documentation Format Foundation. And we want to be able to collaborate where appropriate on the code that works with those documents. So, having people like SourceForge step up, IBM, SugarCRM, and the hundreds of independents who are out there who are getting involved in various ways – we need to see more of that happening. We need to see more and more people come in and working under the Apache OpenOffice banner, and contributing back to the ecosystem as a whole, as a result.

Rich: Thanks a lot for taking the time to speak with me.

Ross: No problem. It’s always a pleasure, Rich.