Archive | September, 2009

yLife: Open database for Yu-Gi-Oh duels proprietary alternatives

Raphael Rigaud is a math teacher by day, but since 2003 he has also been webmaster for Kingyugi, a French community devoted to Yu-Gi-Oh. For those who’ve managed to avoid it, Yu-Gi-Oh is a trading card game similar to Magic: The Gathering, but targeted at younger people. While there are many online communities devoted to the game, Rigaud found it “stupid” that they all had their own databases, which they all had to maintain. “I wanted to create a very complete database, with an open license, that could power every website and software that would want to use it.” That’s what he has accomplished with the release of yLife.

Rigaud says yLife aims to be all-in-one software for Yu-Gi-Oh players and card collecters. It includes severals modules, including a card explorer; a deck builder, which can export decklists for tournaments, or print proxies – that is, training cards not allowed in official dates; and Yu-Gi-Oh Card Database, an open database with management software that lets users add and modify cards in the database.

Rigaud began coding the application in PHP, but soon moved to XUL using the Mozilla XULRunner platform, which, he says, has several things going for it:

– It’s multiplatform (Windows, Mac, and Linux).
– It’s multilingual.
– It’s multi-skin (but totally integrated by defaut with GTK or Win32).
– It lets you take advantage of the power of Firefox addons.

The last point is key. “yLife is totally ’empty,'” Rigaud says – “two lines of code now. It’s powered by add-ons: ylifecore, xmpp4moz, ycd. With add-ons, every platform can update yLife because the Firefox profile is placed into ‘/home,’ so there’s no need to use apt, yum, or pacman.” Right now, Rigaud is coding an add-on to play Yu-Gi-Oh through XMPP/Jabber, using the xmpp4moz add-on. The idea is to let any user with a Jabber ID talk and play with anyone else – no server dependence, no centralization. “I hope that will help the MSN Generation discover Jabber.”

The software also features a cool template system to export decks to printers, forums (BBCode), and wikis, along with a very reactive realtime filter (no need to press Enter).

Once he had the software, Rigaud looked for a free forge where young users could easily download files, and which was easy enough to use that “young Yu-Gi-Oh developers could help me if they found the project interesting.” He chose in part because it “was famous and provided a mini website. I liked that.” He then began promoting the software on the Kingyugi website.

Rigaud says he welcomes help from other developers. “When I launched the project, I was thinking that a year later, some developers would have joined the project so I could give the baby to another person to maintain. But it’s hard to find developers in the French Yu-Gi-Oh community.” Some tasks he could use help with include verifying the database, adding cards, finding card pictures, posting bugs “… and if they can help me with code, they’re welcome ;-)”

The Birth of Webacula

Yuri Timofeev has taken advantage of one of the key strengths of open source software – he took one application and made it better. In his case, the original application was the enterprise backup package Bacula. His improvement was to write a web interface – and so was born Webacula.

In his job as a system administrator, Timofeev is responsible for, among other things, backup. A few years ago he put a number of backup applications to the test, and chose Bacula for his own network. The open source software allows you to back up and restore Unix, Linux, and Windows servers and workstations. In everyday use on a CentOS 5 backup server on his network, Timofeev says Bacula is reliable and stable.

In late 2006 Timofeev began to write a web interface for Bacula for his own site, to implement the functions that he as an administrator used most often. The following July he moved it to when he realized it might be useful to others.

Webacula lets you view important backup information and run backup and restore jobs. Recent releases have added support for MySQL, PostgreSQL, and SQLite databases, new functions for running restore jobs, and an improved design based on JQuery. “I also got rid of many annoying bugs,” Timofeev says. “I want to thank all the people who helped by writing bug reports, translating, and sending patches. I credited them in the AUTHORS file.”

However, Timofeev says there’s a lot of room for enhancements. In future releases he plans to expand the functionality. Right now he’s working on revising the internal structure and code. For example, earlier versions of Zend Framework did not have Zend_Layout; now that it’s available, he wants to use it to provide things like customizable skins.

Timofeev chose Zend Framework as his development tool when it was still early in development. He says he is not a professional programmer, and he doesn’t like the old school of programming in PHP. Authentication in Webacula implemented on the basis of the standard for Apache (AuthType Basic), which is described in detail in the project’s INSTALL file. “For many admins that should be enough,” he says.

Timofeev says he doesn’t work on the project continuously, but goes back to it as time permits. At that rate he expects to make releases at least once a year. However, “I would not mind if there were more contributors. Write bug reports, attach a patch. Or send me an email, or a message in the bacula-users mailing list. Or make a fork with Git. I describe how people can help in the file 4CONTRIBUTORS in source distribution.”

As a part-time developer, Timofeev is proud to have crafted one small feature that’s not in Bacula. Logbook is a simple electronic journal of backups or other notes. You can use it to keep records, for example, about jobs, equipment failures, and unusual situations. “For example, I write in the logbook a description of the backup – ‘JobId = 12345 – is the X information for the Y business period’ – or describe any faults. A backup operator can manually insert, modify, and delete records in the logbook. Records can contain clickable links to Bacula jobs or to other records in the logbook.”

Tweet of the day: coburn64: SourceForge, you’re really getting on my nerves with your gay mirror system. Just hate your mirror system. Argh.

(No, these aren’t generated automatically. I have to pore over recent tweets and find the best ones. It’s a dirty job.)

Solid Solitaire for the Mac

You can find a ton of solitaire apps out there, but surprisingly few that are native to the Mac and free. If those are your criteria, turn to Solitaire Greatest Hits, which came out in version 2.0 just this month.

The idea for SGH came to developer Daniel Fontaine about about a year ago. “I had recently purchased a Mac and I was looking for a good project to try out some of Apple’s native libraries, particularly Core Animation, which seemed interesting. At the same time, I knew a few people switching over to Mac from a Windows background and, interestingly, their biggest complaint was that they couldn’t find a quality native solitaire implementation that they didn’t have to pay for. So SGH seemed to make a lot of sense – it wasn’t a large project, it seemed to be a good fit for learning Core Animation, and it seemed to fill a hole in many Mac users’ desktop experience. I started the project and wrote most of version 1.0 over a year ago, but I was fairly busy and lost interest in tracking down bugs, so the project just sat around on my computer until this summer, when I decided to clean it up a bit and put it up on

“Originally the Greatest Hits were just going to be Klondike, Free Cell, and Spider, since these games ship with Windows and people have just come to expect that they have these games on their computer. However, the new version expands the number of games to 12, because once the basic game infrastructure is in place, it’s easy to add new games. The new version also features unlimited undo/redo, scoring, save/load games, the ability to peek at how many cards are left in the deck, the option to restart the current game from the beginning, auto complete games, and help pages with detailed instructions for all games.”

Fontaine says that in future versions he plans to add a score and stats board that records a player’s all-time best scores and fastest games. But he doesn’t expect to add a lot more different games. “I intend to limit the number of games that are included to less than 15 or so. Many solitaire applications ship with hundreds of different games. I always found it frustrating to open up a new game menu and find myself presented with 300 choices, most of which I had never heard of. I personally prefer to restrict the games to popular classics that people have heard of and can be confident will be fun if they take a few minutes to learn them. Of course, the source code is available, so people are free to add more games if they really want them.”

Fontaine says he tried to imagine what Windows Solitaire might look like if Apple wrote the analogous games and shipped them with the Mac. He wrote the application using XCode and the standard Apple tools.

The next release is likely to fix a small performance issue. “Currently the game’s animation can become a bit choppy on Macs that don’t have particularly powerful graphics cards. A number of people have been justifiably unhappy about this. These performance problems seem to be largely because of the use of Core Animation drop shadows for every card. I expect to address this concern by adding an option to turn off shadows if the animation is choppy.”

Fontaine isn’t sure when that next release will come. “The release schedule will likely be irregular in the future. I work on the project on my own time, and I make releases when I feel the software is ready, so the release schedule will be dependent on how busy I am. I try to fix major bugs within a few days of becoming aware of them, however.”

Speaking of bugs, Fontaine needs more people to do bug testing, and he wouldn’t mind some help with translations into languages other than English. If you want to contribute your time, you can email him.

What Do You Want from Us?

For the last few weeks, we’ve been highlighting interesting projects hosted on that have had recent releases. How does that work for you? What else would you like to see on this community blog?

The thing is, we love you all like brothers and sisters, but you never write, you never call, so we don’t know what to get you for your birthday. Forget about the birthday – we don’t know what you want to read about. We want to get you something entertaining, something useful, something compelling, but we need some feedback.

Do you want more photos? More behind-the-scenes info about what goes on at SourceForge? Programming tips and hints? Sex? Drugs? Violence? Don’t be shy – open up and share your innermost thoughts. Well, at least your thoughts about this blog.

When Google Calls, Googsystray Answers

Plenty of applets will check your Gmail status and pop up a notification if you have mail. But if you use Google’s other web-based services – Calendar, Reader, and especially Voice – you could wind up keeping three additional browser tabs open all the time and checking them far too often. That’s what prompted developer Jim Duchek to create googsystray, an applet that provides system tray notifications and an easy-access interface to Google Voice, Google Calendar, Google Reader, and soon Gmail.

On top of notification, the software offers some intelligent features. For instance, googsystray’s Voice support allows you to reply to SMS messages or check voicemail without opening the browser, so it doesn’t interrupt your workflow. Reader support allows you to pick a threshold number of accumulated articles for notification, so you don’t waste all day checking it, but you can still keep items from getting out of hand.

Duchek wrote the program in Python, using no special tools beyond his favorite editor, joe. “I’m a device driver/firmware guy by trade, so my decision to write it in Python was basically just to learn something new.”

At the moment, the software is in beta, and the next releases will add “prettification and bug testing. Gmail support is on the way,” Duchek says. “And it could definitely use more testing by users.” Eventually, he says, he’ll be looking for translators to help on the project.

Given that it’s a Google-related project, why did Duchek choose to host it? “I’ve been on forever (note the four-digit userid), so a lot of it is familiarity. To some extent though, I don’t like the ‘vibe’ of A lot of the projects seem to attempt to do the minimum by whatever ‘open source’ license they’ve chosen, and rarely attempt to make truly free software, or really involve the community in the work.”

Duchek says he hasn’t done anything to popularize the software, other than putting it on freshmeat. “Being the head guy on a very popular piece of OSS is a double-edged sword (especially one that allows people to get instantly in touch with you!). I’d much rather googsystray just be a quiet little piece of software that serves some people’s needs.”

Tweet of the Day: @jimic79:Why did sourceforge actively make it’s site into a huge hunk of crap? #sourceforge #bandwidthwhore