E-mail: See it here, see it there, with Sync Mail Dir

You may not be able to be in two places at once, but there’s no reason your e-mail can’t be. The Sync Mail Dir tools let you synchronize a pair of mailboxes in maildir format across a network over a Secure Shell (SSH) link, so you can have all your messages available in two places. It’s similar to the Maildirsync utility in design and requirements, but more efficient, and while that program hasn’t been updated in more than five years, Sync Mail Dir’s newest version was released just last week.

To use Sync Mail Dir, you must install the software on both a remote host and a local client, and have access to SSH on both. You won’t have any use for this software if you use a browser-based mail client, and you can’t use it with a web-based message service such as Gmail. But if you want to synchronize your laptop mailbox with your desktop’s, or your workstation with the remove server to which your mail is delivered, Sync Mail Dir can synchronize a 1GB maildir in just a few seconds. The latest version adds a persistent-ssh-connection hook that allows you to reuse an existing SSH connection to the host you are synchronizing with.

In building the software, Italian developer Enrico Tassi says, “I wanted to choose the right tools for the right tasks. Some mechanisms need to be fast, so I wrote them in C, trying to benefit from POSIX/Linux features directly. Other components are just policies, so I wanted them to be written in simple languages. I chose Lua because I’m fluent in it, and because it has a light installation requirement. (Yes, Python and Perl are by default installed in almost every Unix system nowadays, and I could have used them, but I like Lua more.) Other components just glue the others together, and since all the pieces are designed to communicate using standard input/output, the language of choice to bring them together was shell script. To obtain a flexible and secure connection between the hosts, SSH was the obvious choice.

“Finally, I created an eye-candy GNOME applet using Vala. Though it’s a new language, Vala works smoothly with all the GNOME stack, gives you an object-oriented API over GTK+, and has handy constructs for callbacks. It has other nice features, but they are not relevant for my usage. I decided to use Git as the version control system mainly to get used to it. Now I really appreciate the choice, but the size of the project is not going to stress any VCS.”

Tassi says the software is pretty feature-complete, but “I’d love people to test it and tell me about bugs, inefficiencies, or other shortcomings in their setups that may not be visible in mine.” Until he hears from users, he just has some housekeeping tasks on his to-do list, including reviewing the documentation.

Dirty girls, clean software

If you want to launch a career in adult modeling, you don’t start by knocking on the door of the Playboy Mansion. Since porn is a visual medium, one way to get started is by building a web site. And one good way to do that is with the Web-based Adult Content Server (WACS), an application that brings hot nude teens to open source software. [Ed. Note: Am I using provocative keywords in a blatant attempt to gain page hits? You bet I am!]

WACS is a many-layered application. At its heart is a database schema for storing information about performers, image sets, video clips, and the attributes of surroundings, costume, and actions. On top of that is an application programming interface (API) for both Perl and PHP that’s designed to make it easy to manage, update, and use the database. Above the API are a couple of user interface layers. One is a sample or template adult web site written in PHP that’s ready to run after a little styling. The other is a more sophisticated set of collection-browsing tools that incorporate dynamic selection and search facilities.

Finally, WACS includes a suite of collection management applications that allow you to maintain and update the database through a web interface, and a collection of scripts that give you automatic download and unattended polling of subscription sites to seek new content by known models.

The application’s creator, British developer Beaky King, says WACS is uniquely suited to its intended purpose. “WACS doesn’t try to handle single images; there are generic applications that do that well. Rather, it understands photo stories – a sequence of images that shown together in a predetermined order convey a narrative – and video clips. It also includes a flexible keyword and attribute system. If for instance you want to find photo stories that feature an attractive young lady in her nightwear in the back garden playing with a sex toy, you can do that because each of those attributes is clear and defined. Matching the customer with the content that most suits their mood and interest is key to customer satisfaction.

“One of our very best features,” King says, “is the ability of a user to do a search and have it saved on the system. They can then pick their way through the results at their leisure, deleting sets that don’t appeal so much, and then watch a slide show or download a selection of those that really capture what they are seeking. We hope that web site owners will expose that functionality of WACS to their users, as well as it being available to the hobbyists who run their own servers.”

WACS lets users be inventive when specifying search criteria. “You can combine selecting from the attribute icons with keyword searches that aren’t specifically marked up. For instance, you could combine a search for the ‘No Panties’ attribute with an free text search for ‘Stockings’ and a clothing type of ‘Glamourous’ to get some evening wear outfits with hot revelations to follow!”

Built with love

King began WACS as a personal project to organize his own collection back in 2004. He gradually expanded it to share items with friends, leading to a web-based implementation. Upon further thought, he realized that there wasn’t much difference between the needs of private collectors and those serving users on a commercial web site. “Both seek to find the content they desire quickly and efficiently,” he says. He began hosting the code on SourceForge in 2006.

In its first versions, WACS relied on the Oracle RDBMS, Apache web server, Perl and the Perl DBI interface module, and Fedora Linux. Support for MySQL and XML configuration files were added for the public release, with the PHP version of the API following in 2007.

“We provided a version for Mac OS X for a while,” King says, “but the overheads of finding and installing all of the dependencies, coupled with having to return the loaned MacBook development machine, brought that to an end. It’s always a trade-off between whether we write that next cool feature or spend time on supporting another platform.”

WACS gives individual entrepreneurs a way into a market where the big players have massive IT budgets to spend on building sophisticated search engines. The powerhouses also charge an arm and a leg, if not other body parts, for their software. “One place was asking thousands of euros for a license for an application that apparently merely produced HTML index pages of thumbnails,” King says.

With the potential to charge comparable prices, why make WACS free software, licensed under the GPL? “I’m a passionate believer in open source,” King says. “The adult content industry is a huge player on the Internet, but no open source project had tried to cater to its needs until WACS came along. We were filling a gap, and we were trying to put the sophistication of the top-of-the-line web sites in the hands of the people.

“But our ambitions for WACS go way beyond that. We have the chance to build up a data resource that can make a real difference to a collector. If you particularly admire one model’s work, it would be wonderful to be able to find out about all the places her work can be found, along with information on what is to be found there. To subscribe to a for-pay site and then find only one set of photos, for instance, would be very disappointing. Although some forums and web indices exist that provide a few clues, without a framework of markup and cross-reference the quality of that information is very limited. With WACS we can express and exchange that kind of information in a systematic and concise way. I would love to see other developers embrace the WACS schema and XML file exchange system and use it as a way to really enhance the experiences of the Internet community.”

One problem King has in publicizing his software is that “none of the WACS users that contact us for support or just to say thanks ever disclose the URLs of the sites that they’re working on.” That makes it hard to provide referrals, or even gauge the number of deployed systems.

The current 0.8.5 release is something of a milestone. “We’ve now produced a working template web site that can be visited and used on our free demonstration site (NSFW). The more sophisticated WACS internal system is also exposed to public view as the Advanced Users Area, but of course the collection management tools are not, because we don’t want people renaming sets all over the place!”

King and the other project developers have ambitious plans for the application. “We see WACS developing in two ways: one is as a collection management tool for hobbyists to use and to share of data about content; the other is as a true free software application to deliver real value to the vertical marketplace that is one of the biggest industries on the Internet. That kind of development will only happen if people feel confident with the package and get decent results from their first experiences of it. This is why we have the free web site to demonstrate the capabilities – we want people to know what this software can do before they have to go through the installation process.”

They also see documentation as a key to their success. “Due to the code’s complexity, and the likelihood that people will be less willing than usual to ask for help due to its nature, we’ve really focused on trying to answer questions through the documentation. Each and every release we look through the documentation and ask what needs updating, what can we do better, and what are we not being clear enough about in our descriptions.

“We also plan to offer commercial support, training, and consultancy services based on the WACS system as our route to financial gain. And who knows – we might also run a commercial site ourselves one day.”

What about upcoming features in the application itself? “I love the idea of expressing a model’s collection of sets in the form of a three-dimensional walkthrough of a house,” King says. “As you enter each room, you see a fan of icons representing the sets that take place in that room. You enter the bedroom and you see the sets there, the kitchen and see those there, and so on. In the corner maybe a wardrobe appears with a selection of clothing items; click on the uniform icon and just the sets featuring a uniform remain, click on the pajamas and only the nightwear sets appear. All of these selections can be done already using the pull-down menus of the main WACS model pages, but integrating them into a graphical world would be wonderful.

“In the nearer term, we’re going to be doing quite a bit more with the handling of duplicate sets and those that develop a scene over multiple sets or video clips. We’re also going to expand our abilities in the model biographies area and try to come up with a random browsing tool that allows you to just explore a collection, following threads and themes as you go along.”

The project has been releasing new versions twice per year for about three years. “That gives us a comfortable balance between new features and stability. In the second three months of any development cycle, we tend not to make drastic changes; those tend to get held over to the start of the next release cycle.”

WACS would be happy to have help in several areas. “We’d love budding web designers to show off their skills by designing new template web sites or individual web apps, or just giving some of our existing ones a makeover. We’re happy to mentor people in using the underlying technologies for web/database integration if they’re producing a web app for inclusion in the package.

“We would also like to attract maintainers for WACS for different platforms – people who can sort out the details of how to make things like SELinux and AppArmour work right in the packaged versions, or take on making a Mac OS X package that works. We’d even run on Windows if someone had the experience in WAMP to make it happen.

“Beyond that we have a long-term goal of exchanging information about sets and models. If someone has an interest in developing that aspect into a deliverable solution, we’d love to hear from them.

“And of course there’s nothing like just hearing feedback on the whole experience – documentation, installation, usage, and the like – so we can make the package better.”

You can get in touch with WACS using the SourceForge.net mailing lists, or email the developers directly – and confidentially.

To tone down HDR images, try CVLTonemap

If you’re not familiar with high dynamic range (HDR) images, check out this showcase. HDR images are often strikingly beautiful – but they don’t accurately reflect the real world, and they’re not appropriate for use everywhere.

Tone mapping is the process of converting HDR images into normal, low dynamic range JPEG images for display or further use in other applications. Many sophisticated tone mapping methods can be used to preserve as much of the original image quality as possible, and all of the methods have different parameters to tweak, which makes it difficult to find the optimal method and parameter set for any particular image. CVLTonemap uses today’s programmable graphics processing units (GPU) to accelerate the tone mapping process. On modern GPUs it can tone map even large images in real time, so you can tweak parameters via sliders and immediately see the effect, instead of pushing a button and having to wait for an image to be redrawn, only to find that the parameters were wrong and you have to start over.

German developer Martin Lambers created CVLTonemap as a byproduct of his Ph.D. research. “I originally wanted interactive dynamic range reduction for Synthetic Aperture Radar (SAR) images,” he says. “I knew that this had to be done on the GPU to be fast enough. Since the general idea was somewhat similar to tone mapping for optical images, I first had a look at the state of tone mapping research. Then I tried to find ideas and concepts that could be applied to SAR images. I realized that to fully understand the various tone mapping methods, I had to implement them.

“I started to work on CVLTonemap in 2007. I was able to implement the basic algorithms quickly because I already had CVL, a library for image and data processing on the GPU, so all the infrastructure was already in place.

“CVL and CVLTonemap are based on OpenGL. Nowadays, one would probably use OpenCL for general computations on GPUs (or CUDA if one is only interested in Nvidia hardware). On the other hand, tone mapping maps directly to the OpenGL fragment shader, so using OpenGL is not a disadvantage for this task – in fact, it improves compatibility.”

Lambers says he likes to release as much of his software as he can under an open source license. “If someone likes it and uses it, that’s a win; if nobody is interested in it, I did not lose anything. Also, it’s a great way to learn, and I’m happy about the feedback from all over the world.”

One thing Lambers knows needs work is CVLTonemap’s user interface. “The application was created as a research tool and not as a tool for HDR photographers, and that shows. I definitely need help with that, because I’m not sure what interface a photographer would like to have, and because I lack the time to rewrite the GUI. Anyone who is interested in helping can contact me directly or use the mailing list on the project site.”

WordPress Themes