Rich: This is Rich Bowen. I’m speaking with Liraz Siri. Liraz is involved in the TurnKey Linux project.
If the embedded player below doesn’t work for you, you can download the audio in mp3 or ogg format.
You can subscribe to this, and future podcasts, in iTunes or elsewhere, at http://feeds.feedburner.com/sourceforge/podcasts, and it’s also listed in the iTunes store The music at the beginning and end of this recording is used by the generous permission of the Arianne project.
Rich: Can you tell us what this project is about and how it got started, and what sort of images the TurnKey Linux project offers?
Liraz: A few years ago … three years ago, we noticed that there was increasing proliferation of Linux-based open source software - really great stuff - that most people we worked with had no idea even existed. And those that did … if we mentioned that, well, there’s a great piece of software for that, a lot of people will talk about, well, it’s going to be difficult to set up, or we tried that, and there was an issue, and I gave up.
Now, experts didn’t have this problem. They had a lot of experience. Even though you might be expert with one application and then you run into issues with another, and it’s just not worth the bother so you never evaluate it. And it might be perfect for the solution your’re trying to resolve.
So we were back then developing development infrastructure to put together pre-integrated Linux solutions for something else - an entirely different commercial application. We thought, wouldn’t it be neat if we took this, and used the development infrastructures to start creating pre-packaged Linux solutions for the most popular software. That was how it started - basically trying to take the expertise that would go into putting together really good Linux systems by someone who knows their doing, and glue together components that make it easier for someone who doesn’t necessarily know a lot about Linux system administration, to get things done - to get on the ground running very quickly.
Our first appliances were very basic. We did three solutions: LAMP stack, Drupal and Joomla, which are management systems. They’re very popular. And it turned out that people like the concept, and they started giving us feedback and a community started forming around the project. And we gradually introduced more solutions and updated, added new features. And eventually we got to the point where we have a library of 45 solutions which we’re now working on expanding to over 100 solutions for the next release.
That’s pretty much how the project got to the point where it is today in terms of the virtual appliance library.
There’s also some innovation on the side of … how do you … let’s say you want to start an online shop. The first step is deciding what sort of online shops software is right for you. There’s various solutions, and what we’d like to do is be able to take you from the very first stages, where you don’t necessarily know what sort of software to use, so you can evaluate the different solutions, and when you find something that’s right for you then you can very easily deploy it to the cloud. We have some features to make that much more easy than it would be with a conventional Linux system. It’s called Turnkey Backup and Migration, and it allows you to do completely automated backups and then completely automated restores, to pretty much anywhere. So you can back up a system that’s running in a virtual machine, and you can restore it a server running on real hardware, or a server running in the cloud or on the other side of the world.
That’s pretty much TurnKey in a nutshell.
Rich: I noticed that there appears to be a commercial venture that’s attached to this as well. Can you tell me something about that?
Liraz: About a year and a half ago people started talking about deploying TurnKey in the cloud. They wanted to see support for TurnKey at their favorite VPS providers, or cloud platforms. It used to be pretty difficult to do that. So we started working to see … well, it’s great if you can install a Linux system just locally, but that sort of limits your options, because most people don’t really run server software at their home. If you really want to move it into production then you’re going to want to host it somewhere. And you want to have support for hosting platform for the solution.
So we started looking for options and it turns out that Amazon, at the time, had a really good cloud infrastructure service. That made it very easy for us to plug into their system, and start offering our users the ability to deploy these solutions on Amazon. Initially we created Amazon machine images and tried letting users deploy them themselves, through the regular Amazon Web service tools. That turned out to be difficult. There were all sorts of issues.
If you’re setting up a machine on the Amazon cloud and you have to set up firewall rules and have to … you can’t have a default root password because the system is very insecure, so you’re using SSH key authentication … there are all these small issues, that, again, aren’t problematic for an expert, but somebody who isn’t an expert gets entangled in that.
So we created the TurnKey Hub, which streamlines the whole operation, and makes it very easy for you to get started using Amazon cloud - things that would’ve previously been rather difficult. As part of doing that, we also created a business model for TurnKey.
Most of the things that the TurnKey Hub provides are basically free. The service provides backup and migration - that’s completely free. We don’t make any money off of that. Dynamic DNS services, free monitoring. All that is part of the free service. But right now, it’s only cloud deployment. Say you want to deploy a server in the cloud, then we have basically two options where you you can decide if you want to pay a 10% remium to deploy your server. You pay 10% extra on top of regular Amazon Web services fee. Alternatively, we have a different plan allows you to pay a fixed rate monthly fee and then there are no premiums on usage fees.
We also provide a higher-end version of that plan that also includes support for businesses that want that kind of commitment.
That’s basically the first commercial offering that TurnKey is offering. In future we might expand that.
Right now we’d like to focus on expanding the number of solutions we provide. Also doing things like supporting Debian and supporting 64-bit which has been on the list for a while. There have been some infrastructure issues with that, but we’re finally going to solve in the next version so people can use this for higher-end applications as well. Even though that really hasn’t been a big problem up until now because most of TurnKey users have been on the low end, but once you start getting serious you want 64-bit support. That’s something we’re going to be releasing in the next version.
For an Open Source project, the community is, maybe, if not the most important aspect, one of the most important, because if you don’t have a community, then, why not be a proprietary project and have all the advantages of being able to sell your software? Why give stuff away and not have people participate, and feel they’re involved, and that this is something that they can contribute back to?
It’s really important, in our belief structure, to have people involved, and have people feel that TurnKey is something they can contribute back to. There are a few ways that users contribute right now. The easiest way is to participate in the community forums. We have community edited documentation, and our bug-tracker, and a blueprint for people to suggest features and discuss what they’d like to see in the next version, which is great.
The next level of contribution after that, which requires a bit more involvement and actual development: Right now we have a software development kit called TurnKey Linux Patch - tklpatch - we made it very easy for users to take any appliance and customize it to their kneeds. We have a core appliance that is the lowest common denominator of all our appliances. It has the basic features. The web interface. The backup and migration capability. It’s actually one of our most popular appliances, because a lot of users are taking that, and they’re just tweaking that fit their needs. Some of them are going a step further and posting their contribution back on the website, so we can discuss them. Most contributions are going to make it into the next release as new appliances, and from then on Turnkey Linux maintains that as an additional appliance.
There’s a big benefit. This is basically the advantage of Open Source in general. If you contribute back to the community, then you have to do less work in the future for yourself, because you have people who with you, and making your specific use case better, because that’s also something that are interested in.
One of our goals for this year is to take the development infrastructure that is powering Turnkey and make it public, and make it very accessible. Right now there’s the software development kit, but we want to make it possible for people to develop TurnKey appliances basically the same way we do, so this project doesn’t rely so much on our core development team, and anybody can contribute at any level.
Right now, the of source code to the appliance is public, but the fabrication system that takes that source code and assembles appliances from various package repositories - that’s something that right now we’re cleaning up, and we’d like to build an interface so people can roll their own, at the same level of the same tools, with the same power, that we have.
We’re hoping that once we do that, then can really release the labor bottleneck that has been limiting what we can do. When you depend on a small core development team everything have to go through us. We can expand to many a hundred or a hundred and fifty appliances, but there’s potential for so much more. Especially when you get to client-side applications.
There’s a ton of good client-side applications. Right now we’re only doing server-side applications, but in the next release will be releasing TurnKey client side appliance. Sort of a TurnKey appliance core, which we’d like to see as a basis for then a whole range of client-side applications. We don’t even know, necessarily, what sort of applications are going to be eventually successful. People are going to be really interested in, even though there are few that are probably obvious, such as rescue disks, kiosks, stuff like that, and maybe privacy distributions. Who knows? Once you get the tools out there, and people can use them freely then you can just let innovation happen. And then things that people are interested in, they’ll flock towards.
We want to create an ecosystem. An infrastructure that is completely open-source, where people can feel that they belong and contribute back to. TurnKey can get to the point where it really lives up to the potential we think this approach has.
Rich: Thanks so much for talking with me. I wish you a whole bunch of success with your project.
Liraz: We’re really excited. It’s been a lot of fun so far. Thanks for having me. I hope your listeners check out our website and maybe try one of appliances, then tell us what they think.
Rich: Thanks so much.
Liraz: Bye bye.
[[Today's guest post is by Rojitha Goonesekere, the author of WinLock Pro. Rojitha is in Sri Lanka, making it very difficult to schedule a time to speak with him when we're both awake.]]
WinLock Pro was inspired by Windows 8. After the release of the Developers preview, I was immediately drawn towards its simplicity and beauty. The new and improved metro interface to all the minor changes caught my attention. Something that really won me over was the excellent Lock Screen and login interface that Windows 8 provided the home user, a simple and easy way to access your PC at any time without any trouble. I was browsing online one day and realized that there were a countless number of blogs and forums dedicated towards this topic. And I immediately thought of bringing this experience all the way to Windows 7.
WinLock Pro was initially created as a “theme”, a way to enjoy a different look. I was not targeting the software to provide any “security” to the PC but merely just make it look good. But after releasing a few versions of the software I realized I could not only provide a different look to the usual operating system but also provide good security in the process. The first security modules were added in Version 4 and I kept developing these modules over the next versions of the software. The modules created did not provide “top class” security but it did stop intruders from accessing your personal files anytime soon.
Since security and privacy is something that everyone is concerned now, the main target is about developing these security features and providing the user with a safer experience. I am looking for developers who are experienced in this field to help me out with this project and hopefully make WinLock Pro an essential utility on any computer. I am also hoping that when the project is more stable; I could be able to replace the entire Login screen of Windows 7 with WinLock Pro.
If any developers conversant in VB.NET are interested in the project, they could contact me at any time, engage in discussions on SourceForge.net and start working on it. I hope that together we can create a more secure environment for everyone to use and enjoy.
One of our featured projects this week is Stuff Organizer, a catalog application for organizing anything - books, movies, your pet rock collection - whatever you have that needs organizing.
I asked the developer of this project, Norbert Mereg, if he would tell us a little about his project.
[[ If you'd like to write a short piece about your project and have it published here, please let me know. ]]
Tell us what the “Stuff Organizer” project does, and why you got started developing it.
“Stuff Organizer” is a file catalog software for Microsoft Windows which helps people to organize videos, games, music files and eBooks stored on the computer. I use the internet regularly for downloading stuff I’m interested in. A few years ago I noticed that I have a lot of unorganized stuff stored in a single folder and I can’t find anything. This motivated me to write an application which can help me to organize these contents into categories and subcategories and allowing to tag them with labels.
I also wanted to attach descriptions, pictures and other contents to the movies from the internet. So I created a plug-in framework which allows third party developers to write extensions for the program. At that time I had another problem with the downloaded files. Those were often packed into multiple rar and zip archives. So I wanted to let the application do the unpacking for me automatically, and after that, - with the help of the ICS (Intelligent Category selector) - classify the files into categories.
At that time, I didn’t know how useful will be this for other people. I started developing it as an open source application.
What is planned for future versions of “Stuff Organizer”?
There are lot of features to be implemented. For example:
- Scripting based plug-in system, which would make plug-in development even easier.
- HTML-based description for each item. This would allow to include trailers for movies.
- Monitoring a directory for changes and organize the downloaded files automatically, without needing to start the application manually.
I develop Stuff Organizer in my free time, which makes progress of developing new features a bit slow. But I happy to hear feedbacks and feature requests from the users. Recently I’ve started working on an other project (also Open Source and hosted by sourceforge.net), which makes possible to collect anonymous usage statistics data and display
it on a webpage. This would allow me to turn Stuff Organizer into a more user friendly application.
How can someone get involved in the “Stuff Organizer” community?
Currently I’m the only one who maintains this project. I think the user base is not large enough to draw the attention of other developers. But I would kindly appreciate any contribution for other people, either in development of plugins or the core program.
TL;DR: Vote for the March Project Of The Month at http://twtpoll.com/zr8t18.
The time has come to cast your vote for the March Project Of The Month. The POTM honors an exciting project that has grown significantly over the last month, and you have a chance to participate in selecting that project.
This month, the candidates are, in no particular order:
winPenPack is a project that aims at collecting the most frequently used and most popular open source applications made portable, so that they can be executed without installation from any USB Flash Drive or Hard Disk. The winPenPack suites offer a wide range of portable applications like office tools, internet tools, multimedia tools, development tools, security applications and other frequently used utilities. Everything you need, completely free!
This is a project aimed at producing a file sharing client using the ADC protocol. It also supports connecting to the Direct Connect network.
FreeNAS is an Open Source Storage Platform and supports sharing across Windows, Apple, and UNIX-like systems. It includes ZFS (high storage capacities and integrates file systems and volume management into a single piece of software)
Edit your avi, mpeg and nuv. Process audio and video. Cut.
UltraDefrag is a disk defragmenter for Windows, which supports defragmentation of locked system files by running during the boot process. It is easy to use without any complicated scripting or a huge load of configuration settings. You can filter the files processed by size, number of fragments, file name and path.
Scribus is an open-source program that brings professional page layout to Linux/Unix, MacOS X, OS/2 and Windows. Scribus supports professional features, such as CMYK color, spot color, separations, ICC color and robust commercial grade PDF.
GnuCash is a personal and small-business finance manager with a check-book like register GUI to enter and track bank accounts, stocks, income and expenses. GnuCash is designed to be simple and easy to use but still based on formal accounting principles.
Elastix is an appliance software that integrates the best tools available for Asterisk-based PBXs into a easy-to-use interface. It also adds its own set of utilities to make it the best software package available for open source telephony.
Famous scientific plotting package.
Cast your vote at http://twtpoll.com/zr8t18.
Today’s post is a guest post by Bill la Forge, from the JActor project. The original post is here. I asked Bill to expand on something he’d written earlier, because I was struck by the simple yet deep truth that sometimes one change in your code has a cascading effect on other parts of the code - sometimes for good, and sometimes not. And when it’s for good, and unexpected, it’s delightful.
If you’d like to have any of your project blog entries republished on the SF blog, please let me know.
–Rich
Release 2.0.0 of JActor will be characterized as providing classifications of requests: constrained and initialization. Constrained requests can be invoked by the Internals.call or Actor.acceptCall methods, while “unconstrained” requests must be invoked by the Internals.send, Internals.sendEvent or Actor.acceptRequest methods. The big advantage of initialization and constrained requests (and events) being that we are free from having to deal with callbacks to handle responses. The call and acceptCall methods directly return the results (the results from sending an event being ignored).
There are two basic types of constrained request: synchronous (new) and concurrent. Synchronous requests can only be passed using a call or acceptCall method when the sender and receiver use the same mailbox; concurrent requests must be thread safe and can only access concurrent data structures.
Initialization requests (new) can only be passed during the initialization phase of an actor, and the initialization phase ends when an actor receives a “non-initialization” request. Initialization requests are processed on the same thread as the sender under the assumption that initialization requests are sent one-at-a-time, so thread safety is not an issue.
The result of classifying requests as constrained or initialization is that we can then classify more requests as constrained or initialization. This is a cascading effect that, in many cases, frees us from the mess inherent in using anonymous callback classes. It is also faster, as GC no longer needs to collect all those callback instances.
I have seen such cascading effects a number of times. They are always delightful, as the code ends up being ever so much simpler. Such cascades occur when you can identify constraints that simplify processing. A rich API that supports a number of constraints makes simple things fast and easy to use. This contrasts nicely with API that are rich in features, i.e. unconstrained.
Bill la Forge, JActor project