NOTE: As of February 2013 I am no longer the editor for Linux and Open Source on developerWorks. Don't worry! I didn't get fired or anything. I got rolled into a new team which draws upon all the skills I applied on developerWorks as well as exercising some of my other capabilities. It's an exciting challenge. As a result, this wish list is not necessarily the most current guide of what you should be writing. I'm going to leave it up, though, as a snapshot in time. I'll keep blogging and sharing. It actually may be easier to do now in my new role!
People ask me what kind of articles I'm looking for in the Linux Zone on developerWorks. This is meant to be a permanent home for my thoughts on what I'm seeking in the way of articles with a little better explanation than I can offer on the basic
For the Open Source zone I decided that rather than just a bullet list, I would try to get you inside my head rather than just give you a list of bullets. It worked well there and so I'm going to try it again here. Consider this your guide for what I'm seeking. I'll update here when I have new information. I recommend that you subscribe to the feed for this article so that you keep up to date. When you know you're ready to write, review the guidelines in the developerWorks Author Resources and then submit your content.
First, you should know that I am a full-time Linux user. I have some servers that I deal with and I use it on every computer in my house. Yes, I am a desktop Linux user! This gives me a fairly broad view of what kind of information might be interesting to my audience. My experience has been that Linux fits well into just about anything I've wanted to do with it provided that I don't have a specific business reason for using something else. My experience has been that people are unaware of Linux or that their vision of Linux is several years out of date. Linux five years ago is a very different Linux! I find that many are just unaware of the tools and techniques that Linux offers and that they are concerned about a huge time investment in learning something new.
I'm also fascinated by the spectrum of platforms where Linux runs. Of course it runs on x86 PCs, servers, laptops, etc. It also runs on IBM's POWER and mainframe systems, offering a level of scalability that few people consider. everyone has gotten so used to the disposable commodity system approach that a building full of computers seems the obvious way to go. In fact, a strong Linux environment could probably move to bigger and more robust hardware without all the real estate (and power consumption, and cooling systems, etc.). Likewise, Linux is behind the scenes in many "smart" televisions and other devices. This creates some interesting opportunities for integration and interaction which is not really being tapped.
I'm also really intrigued by the possibilities for Linux in virtualization. The architecture of Linux makes it very suitable for connecting to virtualized resource. It's file-driven configuration also provides a number of opportunities for automation and customization on-they-fly. In a cloud-like future I like the idea of being able to set a few parameters and having a fresh operating environment building iteslf with my requested software stack.
I'm also interested in demonstrating techniques for working with Linux as a desktop environment. I know... I know... I've heard all the angst and arguments against talking about this sort of thing, but the fact is that some people actually want to run Linux on their desktops and when they are looking for best practices "You should be using Windows or Mac" is just not a reasonable answer. Furthermore, I think that people who do a lot of development and administration of Linux environments benefit from using it all the time. We create all of the same problems (if not worse) on our desktop machines that we do on a server, so dealing with our everyday computer messes help build and maintain skills for the bigger issues. I want to help people overcome technical obstacles to choosing their environment.
I'm not devoted to any particular distribution of Linux and I will tend to reject items that are specific to one flavor of Linux or another unless they speak to specific IBM hardware. Red Hat, Suse, Ubuntu, and all the others have their own article resources. I'm much more interested in technologies that move across the distributions, to help demystify the elements that can be obscured by tooling and convention. For example, boot loaders, application packaging, kerenel modules, etc. I think that if someone truly understands the technologies of Linux then they are not bound to any specific distribution, they choose the right one for the job and change them out when required. That applies to writing applications as well. I want everyone to have equal comfort across the entire Linux spectrum.
Here is a bullet list of things that I know would be of interest. These will change as my needs change.
Linux System Administration techniques
- What are the best practices, tools and techniques to keep your Linux environment running trouble-free?
- What techniques can help automate and customize an environment?
- How do you deal with Linux in mixed environments? How can you adapt your Linux systems to play more nicely with others? Are there tools for other environments to help them play better with your Linux facilities?
Linux does that?
Linux doesn't usually have a lot of fancy commercials showing you the experience that you are meant to have. As a result, there are many things that can be done in Linux that people know nothing about. I'd love to highlight ways in which Linux was applied to a task with information that will allow others to duplicate that success. It may seem obvious to you that Linux can do those things, but your success story might be what pushes someone through the threshold of using Linux.
What tools and techniques will help Linux users overcome obstacles in a mixed workplace envrionment? How do we help them blend?
Linux as a development environment
- Linux can be an attractive environment to develop. If you are running Linux on the server then it's ideal because you can create your own test environment using the same tools. Virtualization and emulation gives you access to other environments for the first level of testing and debugging. Share practices and techniques that make Linux work for writing code.
- Of course, coding isn't the only development that is done. What about art work, media-creation and other elements of what goes into making products today? How can one use Linux to reduce expense and increase productivity in any department?
Developing for Linux
I've seen a number of commercial applications fail in the Linux space. One observation is that some who develop for Linux don't seem to understand the moving parts in Linux. They ignore the packaging system and have their own installation wizard. They have their own bundles of libraries rather than using ones that are there. They don't follow Linux conventions for where files are located and how they are used. If people are going to develop more commercially with Linux they will need to understand how to avoid the common pitfalls.
- Multimedia in Linux - Linux is a truly capable platform for doing all kinds of media, but it's not exploited nearly as well as it should be
- Pulseaudio - the pulseaudio system has some really intriguing capabilities which should be leveraged, but I think it needs clarification.
Linux across the hardware spectrum
We say "Linux is Linux" across hardware platforms. This is true... but before you can experience that you have to get it functional on that platform. If one has grown up in the x86 world there are aspects of running anything on another piece of hardware that have to be rethought.
- How does one install Linux in a different (preferably IBM) platform? How does the terminology and technique change with the hardware? What considerations might move someone up or down the hardware scale?
- Linux on POWER - This is a robust environment for running Linux that just has not received the attention it deserves. How do we help the x86 admin overcome what he or she sees as obstacles to make this a choice for their environment?
- Linux on Mainframe - The last time I checked, a typical mainframe could run 20 thousand instances of Linux. In an environment like that, the virtual servers can communicate with each other at bus speed (near instantaneous). This will not be the right solution for everyone, but could be an excellent solution for many. I would like to see material that helps to demystify this world and help get people into this real Linux playground!
- Embedded Linux - Have you read the GPL information for your TV? your MP3 player? Linux is showing up more and more on "smart" devices. It offers a lot of flexibility and stability so that you can focus on the features of your application. However, this spreading of Linux means that these devices could probably interface together more easily and combine for a much more interesting experience. It would be interesting to explore a little hacking (that preferably doesn't void your warranty) and demonstrate the value of taking advantage of openness in these devices. Who knows? Eventually your TV manual might include a little API guide showing how you can get it to do things from your laptop using Python or something!
- Raspberry Pi
There's more... tell me what you're thinking!