Archive for the ‘PC-BSD’ Category.

PC-BSD 10 now available

PC-BSD 10.0-RELEASE is now available for download!

10.0-RELEASE notable features

  • Includes FreeBSD 10.0-RELEASE
  • Updated KMS / AMD driver support
  • ISO file is a hybrid USB file, and can be “dd“ed to a USB media.
  • New text-based installer
  • Able to select between GRUB/BSD loaders during installation
  • New desktops! Gnome 3, Mate (Replaces Gnome2) and Cinnamon

Read More . . .

PC-BSD 9.2 Beta 2 available for testing – I just installed it

PC-BSD 9.2 Beta 2 is available for testing and I just installed it. This is probably the best desktop OS that is not Windows, Mac, or Linux.

The installer was already a nice easy GUI, so I didn’t expect many changes and it is still nice and easy to use, and just works.

The installer does present new features about PC-BSD 9.2, in that you can choose from a list of Desktop Managers. Before KDE was it during install and if you wanted something else, you could change it later, but now you have a nice list of GNOME, KDE, and others.

I chose KDE because I usually use KDE or Fluxbox and when I have plenty of system power, I go with KDE and this system is on a beefy VM.

I did miss seeing Firefox as an installable application during install? Not a big deal, as I will install it later…but I was used to it being there.

The install went flawlessly.

Setting up the Video Card still is a screen. It would be best to have it just work and not even have the screen at all. But it still prompts me and I still have to do it. I would like it to detect that I am on VMWare and just install the VMWare video driver for me or if I am on hardware, just install the driver I need.

There is a nice “tip” screen post login.

Branding is very important! AppCafe is probably one of the first times I have ever seen PC-BSD really do something that I consider a good brand. I have an opinion that the PC-BSD, which is 5 letters where you just say the letters name like an acronym, is a horrible brand and should be changed as soon as possible. However, AppCafe is great. It goes with the whole App Store idea that is trendy currently. Good move!

I quickly found Firefox and Chrome in the AppCafe. The search feature is great, otherwise they were under the “Web” group. I was curious as to why Firefox was still version 4.0.1 as Firefox is on 6.x now. The one downside is that I would really like Firefox to load a lot faster.

Flash…Yes, it works with a beta note: In previous versions, flash has worked perfectly, and it will in the next release too. However, turns out that this beta has a bug where you have to run a command to enable flash…oops. That is why we have betas. Expect this to work in the final release as Flash has worked out of the box now for multiple releases.

For KDE, After installation, App icons are placed in a desktop folder, that is a transparent box on the screen, giving the system a sense of “flashiness”.

A lot of the default Apps that were installed, such as K3B, a DVD/CD burning software, and a video player and music player are all there.

I am probably going to install a GNOME only version as well and give it a look.

I was the 200th person to like the FreeBSD Foundation Facebook page

I was the 200th person to like the FreeBSD Foundation Facebook page.

The FreeBSD Foundation helps collect donations and fund projects to improve FreeBSD.

If you have the ability to contribute, you should. I realized I hadn’t contributed since last year, so I went ahead and donate a meager sum this year.
http://www.freebsdfoundation.org/donate

The FreeBSD needs a lot more than 200 people liking it and a lot more people donating.

Updating the PC-BSD Ports Jail network settings when the system runs dhclient

I have been running the PB-BSD 8.2 and switching between work and home networks.

I have figured out that I have to run these commands when I want to switch over to use wireless:

$
$
$
sudo wpa_cli reassociate
sudo route flush
dhclient wlan0

When switching back to Ethernet, I have use these two commands:

$
$
sudo route flush
sudo dhclient em0

I thought I was done listing the commands that must be run, until I realized that the above commands didn’t change the /etc/resolv.conf in my Ports Jail.

Question: What network settings need updating in the Ports Jail.
Answer: The Ports Jail uses the systems IP Address and Default Route, so only the /etc/resolv.conf needs updated and it appears to be a copy of the system’s /etc/resolv.conf

So I just have to update /etc/resolv.conf and that is all.

Solution

Well, one solution is to run another command that just copies the system’s /etc/resolv.conf to the Port Jail.

# cp /etc/resolv.conf /usr/jails/portjail/etc/resolv.conf

But a better solution is to get dhclient to run this command for us. This can be done with the dhclient-exit-hooks.

Step 1 – Create the dhclient-exit-hooks file and make it executable

$
$
sudo touch /etc/dhclient-exit-hooks
chmod +x /etc/dhclient-exit-hooks

Step 2 – Enter the function into the /etc/dhclient-exit-hooks to run copy command when dhclient exists

#!/bin/sh
cp /etc/resolv.conf /usr/jails/portjail/etc/resolv.conf

Now when you run dhclient, you will also get a new /etc/resolv.conf in your Ports Jail.

How I’ve been using the PC-BSD Ports Jail

So, when you install using ports, there is a lot of software you may not really want that gets installed. Are you familiar with the term build dependency.  This is software, usually a library or scripting language, that is required for a software to compile from source, but is not needed at run time.  When you always install from ports, your system will eventually have most or all the common build dependencies installed.  Really the only dependencies you need are run-time dependencies.  These dependencies make up the software that must be installed for the desired port to actually function.

Here is what I do:

  1. Install ports both in the jail and on my system pretty much at the same time with the same command, just in the different consoles.
    # portsnap fetch update
  2. Compile the port in the jail.  This will build and install everything in the jail, including the build dependencies and run time dependencies and of course the port itself.
    # cd /usr/ports/<group>/<port>
    # make install
  3. Sync the system’s ports tree with the jail’s ports tree using rsync.
    # rsync -av /usr/jails/portjail/usr/ports/ /usr/ports
  4. Install the port in the regular system.  This only installs the run time dependencies and the port itself.
    # cd /usr/ports/<group>/<port>
    # make reinstall

This seems to work, and I don’t get all the build dependencies installed. Plus the rsync command is pretty quick.

I wonder if this is how the PC-BSD team uses it too?

 

Installing the latest version of Mono on FreeBSD or How to install and use portshaker?

Mono is basically the .NET Framework on FreeBSD or other open source platforms. This allows development in C# on FreeBSD.  C# is an extremely popular language that is not slowing down.  It’s popularity stems from that fact that this language and its features allows for rapid development that is much faster than many other languages.

The version of Mono available in the ports tree is not the latest version available. Just like FreeBSD has a release version and a development version, Mono has a release version and a development version.  The development version is so much newer that it is hard not to recommend it over the release version.

Step 1 – Install the latest ports

This is already documented here:

How to install ports on FreeBSD?

Step 2 – Install portshaker and portshaker-config

The team at BSD# have a tool called portshaker that adds mono ports to the ports tree.  Install it as follows.

#
#
cd /usr/ports/ports-mgmt/portshaker-config
make BATCH=yes install

Note: Notice I didn’t just install portshaker, I installed portshaker-config which has portshaker as a dependency, so you get both installed with one command.

Step 3 – Configure portshaker

The example portshaker.conf.example is configured correctly for default configurations, so all we need to do is copy it.

# cp /usr/local/etc/portshaker.conf.example /usr/local/etc/portshaker.conf

Step 4 – Run portshaker

Yes, it is that easy.  Simply run portshaker.

# portshaker

Note: You may be prompted to merge a few files. I diffed and chose either install or continue each time.

Note: Running portshaker uses subversion to download so if you need to use an HTTP proxy, you have to configure subversion to use an HTTP proxy as it doesn’t use the FreeBSD HTTP_PROXY environment variable.

Your ports tree is now updated by portshaker.

Step 5 – Install mono

The mono port should now be updated to the latest version.

#
#
cd /usr/ports/lang/mono
make BATCH=yes install

Mono is now installed on your system.

There is an example of building a hello world app here:

C# (Mono) on FreeBSD

Getting Java to work in Firefox 3.6 in FreeBSD or PC-BSD 8.2

Firefox 3.6 no longer works with the Java versions in PBIs. Instead the OpenJDK6 must be installed. However, as of writing this document there is not a PBI for OpenJDK6, so we must install it from the ports jail.

  1. Install ports on your system as follows: How to install ports on FreeBSD?
  2. Open the command prompt.
  3. su to root.
    $ su
    Password:
    #
  4. As root, get the latest ports.# portsnap fetch extract
  5. Install openjdk6.Note: There is an openjdk7 but it didn’t appear to have a web option yet, so hold off until it has one, use openjdk6.
    #
    #
    cd /usr/ports/java/openjdk6
    make WITH_WEB=yes BATCH=yes install
  6. Run this link command to link the library for the java plugin to your plugins directory.
    # ln -s /usr/local/openjdk6/jre/lib/IcedTeaPlugin.so ~/.mozilla/plugins/IcedTeaPlugin.so

Testing the Java plugin

You may want to verify that java is working in your Firefox install. You want to know two things:

  1. Is the plugin detected by Firefox?
  2. Does a java application work?
      1. Open Firefox. If Firefox is open already, close it, and re-open it.
      2. In the URL enter: about:pluginsYou should now see the IcedTea-Web Plugin (using IcedTea-Web 1.0.1).
      3. In Firefox, go to the following URL:
        http://www.java.com/en/download/testjava.jsp 
    1. Here are steps to make those two verifications. 

      Note; This is pretty much exactly like the handbook states.
      http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/desktop-browsers.html

What is the FreeBSD plan?

I don’t know what the FreeBSD plan is. Unfortunately, I feel that if there is one, it is not a very well-rounded on. Maybe it only focuses on development and might not have a big focus on also important tasks like advertising and marketing, documentation, and acquiring new committers.  All of which is important because I am not the only that thinks that FreeBSD needs fresh Blood!

Here is a simple step by step plan to make the FreeBSD community bigger. They aren’t all my ideas, many have been mentioned by other people in the forums or elsewhere.

Advertising and Marketing Department

  1. Get one. Get an advertising team, however you have to do it.
    1. Maybe the FreeBSD foundation hire a part time advertising professional (or maybe iXSystems could let one of theirs donate some time) who gets as much help as possible from college students majoring in Advertising and Marketing as unpaid internships.
  2. Give them goals to 1) get more committers, 2) get more users, 3) Get more Enterprise and Small business exposure and usage.
  3. Get a list of companies that use FreeBSD and don’t ask them for donations, ask them to buy feature enhancements. They are more likely to pay more for an enhancement than they are willing to donate.
  4. Get a list of all BSD user’s group email. Start using them and encouraging them to hold meetings, improve the user’s groups, etc…
  5. Get a list of all college’s and their Computer Science staff members and make it standard practice that CS degrees can get internship credit for working on FreeBSD. Same for English Technical writing and FreeBSD Documentation, same for advertising and marketing and FreeBSD advocacy and marketing.

Documentation Department

  1. Make documentation contributions easy.
    1. Make the FreeBSD documentation pages wiki editable. Anyone can edit the page, like Wikipedia. Yes, it would be fine if a page could have an person or team who has to approve the change, because we have to let the localization teams know that a change was submitted.
    2. Make the man pages available as a wiki, and the man page updates are included in the next release.
  2. Make these training videos:
    1. Getting started with FreeBSD – Install and Usage.
    2. Getting started with FreeBSD – Documentation
    3. Getting Started with FreeBSD – User land development and debugging
    4. Getting Started with FreeBSD – Kernel Development and debugging
    5. Getting Started with FreeBSD – Contributing to the KDE on FreeBSD project.
    6. Getting Started with FreeBSD – Contributing to the FreeBSD GNOME project.
    7. Getting Started with FreeBSD – Remote debugging
    8. …continue as needed
  3. Get a community site up. Not just a forum site, but a community site.
    1. Write a link between IRC and the community site so a persons IRC posts are also on the community.
    2. Write a link between the mailing lists and the community so emails are on the community.
    3. Provide FreeBSD User’s groups free sites and mailing lists but encourage them to get $10 a month in contributions each year to sustain it.
  4. Support the Advertising and Marketing team.
  5. Implement Kanban as a process for managing your work.

Development Department

  1. Join the desktop world in a big way. FreeBSD is not just a server. It must have a solid desktop distribution. PC-BSD exists (though the name is not marketing friendly). Get a marketing friendly OS Name, and a marketing friendly logo, and create a desktop distro that has a chance at attracting new users. Let the Advertising an Marketing team determine the name and brand of the new desktop. (I don’t care if the distro is PC-BSD as long as it is re-branded.)
  2. Build a graphical newbie proof installer that can install the server or desktop. (I know, many of us have come to love the simplicity of sysinstall, but I still remember my first year with FreeBSD when I hated it.)
  3. Include Mono in the install of all desktop versions of FreeBSD. Lets face it, C# developers are everywhere and if the user land were C#, it would be much easier to get dev work done.
  4. Support the Advertising and Marketing teams by sponsoring internships, maybe at your Alma mater.
  5. Create a ready-to-dev on Virtual Machine.
  6. Support the documentation team by making docs “Getting Started” easier.
  7. Make the FreeBSD build easy to replicate in a graphical IDE. The new generation has few individuals who want to learn vi and gdb or otherwise work from the command line. They want to build and debug elsewhere.
    1. Get the FreeBSD projects building with a Graphical IDE. Lets leave the ability to build with make but add an a project file. I don’t care what graphical IDE is chosen, Eclipse, KDevelop, Code::Blocks, MonoDevelop, etc…Just pick one and make it happen.
    2. Have a master project file at the root of the build that will do everything, build the entire FreeBSD source, in debug or release.
  8. Update the ready-to-dev on Virtual Machine to be include the graphical IDE and be ready to build and debug.
  9. Maybe there is a reason to make a few different types of ready-to-dev virtual machines.
  10. Implement Kanban as a process for managing your work, I recommend a web site version for open source communities. Each committer can have a view of their work just for them.

Well, that is the plan that has formed in the back of my head the past ten years that I have been involved with FreeBSD. Unfortunately, most of the above is not happening. PC-BSD is helping with #1 and #2 of the development plan, which is great!

Click to read more ideas for improving FreeBSD.

Dual-booting Windows 7 and PC-BSD

Hey all,

I was going to write an article on this, but it was so easy, there is no need for one.

Windows 7 doesn’t know how to deal with PC-BSD, but PC-BSD knows how to deal with Windows 7.

So all I had to do was install Windows 7 first (I chose a 50 GB partition) and then I installed PC-BSD on the remaining space. I did click to install the PC-BSD boot manager as it is not selected by default, and now I can dual boot Windows 7 and PC-BSD.  Which is a must for a guy who’s job is writing C# on windows.

Project ideas for FreeBSD

There is a lot of work to do in this world, and there are plenty of open source projects. However, there are still plenty of projects that need help. There are still plenty of projects that haven’t even been started yet.

I just read this post and I am quite in agreement with it: FreeBSD needs fresh Blood!

Here are a list of projects ideas or projects that need contributors that could really help FreeBSD go to the next level.

Possible new projects

  • FreeBSD Mentoring Project – The primary goal is to get FreeBSD developers developing immediately and maybe have a VirtualBox VM that is ready to download and dev on immediately.
  • A Windows driver for FreeBSD’s UFS, maybe using the Installable File Systems (IFS) Kit
  • A Windows driver for ZFS, maybe using the Installable File Systems (IFS) Kit.
  • A GNOME based FreeBSD Desktop distribution (Note: PC-BSD and/or GhostBSD might fill these need in the future.)
  • Contributors to DesktopBSD.
  • A FreeBSD phone operating system to compete with Android, Windows Phone 7, etc… I think a clever name for phone OS based on FreeBSD would be Angel.
  • A new desktop that isn’t GNOME or KDE but is written using Mono (C#).
  • VirtualBox BootCamp for FreeBSD – Ability to boot to a VirtualBox image, similar to BootCamp on a MAC. So you can boot to a different OS, or while running FreeBSD you can load the OS as a virtual machine.

Projects that could use more Contributors

  • FreeBSD Advocacy and FreeBSD Marketing – We need actual advertising and marketing people here, not coders or techies.
  • FreeBSD ACPI – I would recommend a focus on improving ACPI support for laptops running FreeBSD.  The Sleep and hibernate ability are important.
  • Mono on FreeBSD or BSD#
  • Ports on FreeBSD – There are a lot of unmaintained ports, such as K-3d and you could adopt a port.
  • KDE on FreeBSD – The KDE support is in need of help.  The network manager hasn’t worked in years.
  • GNOME on FreeBSD – There is not an installable FreeBSD desktop distribution that focuses on GNOME.  GhostBSD, a live-CD, is based on GNOME.
  • GhostBSD – They could use some help being not just a live-CD but an installable distribution.

Business ideas based on FreeBSD

While free contributions from the community is nice, for FreeBSD to really thrive, it needs more full-time developers. There is not substitute for actual paid employees who spend their days working on FreeBSD.  The only way get those type of employees is to get some companies out there making money. For this reason, I would recommend that the FreeBSD Foundation looks at helping start new businesses based on FreeBSD.

  • BSD Appliances – Maintain appliances, both hardware and virtual appliances, for all the common server types. This is a hardware and support model, the software is of course free.
    • A complete suite of BSD appliances from Web Servers to Firewalls, to NAS, to backup, to networking, etc…I own the URL and thought about starting this project, but never really had the bandwidth.
    • Also, outsource appliance maintenance so other companies can have their proprietary appliance maintained by this company.  I know my company, LANDesk, has considered outsourcing our Management Gateway appliance. I heard a rumor KACE was too, though that rumor remains unverified.
  • BSD Business – A software company that makes a server and applications for common businesses. This is a hardware and support model, the software is of course free.
    • A Business Server (three version Small Business, Medium Business, Enterprise) that has everything a business needs. (Maybe this server is an appliance maintained by BSD Appliances 🙂
    • Common businesses means businesses that exist in every city, law offices, dental offices, eye-doctors, chiropractors, restaurants, hotels, mechanics, gas stations, etc… There are some applications that are ubiquitous to their fields. To use an example local to me, think of what Dentrix is to the dental field. I have always thought of an ultra-secure desktop for lawyers running an very secure version of FreeBSD.
  • Point of Sale system based on FreeBSD. This is a hardware and support model, the software is of course free. Why let Red Hat and CentOS have this who market.
  • Gaming on FreeBSD – A gaming console based on FreeBSD to compete with XBox, Playstation, etc…Gaming has an amazing power to drive improvement.
  • A support center where companies can get enterprise FreeBSD support, development, etc…
  • Animation on FreeBSD – A film studio that makes animated movies and runs everything on FreeBSD.
  • Feature4Hire – A web site that maintains a list of enhancement requests and people or companies can submit how much they are willing to pay for the feature. Then as soon as the dollar amount is worth it to someone in the world, they develop the feature and get paid, with something like 3% going to Feature4Hire. Even if $10 is attributed to a feature, some one in a 3rd world country might find some small dollar amounts worth it.  Ok, this site might be for all open source projects, but it could run on FreeBSD.

There are a lot more ideas out there and anybody can be a part of them.

Review: GhostBSD 2.0 Beta 2 – A FreeBSD LiveCD

GhostBSD 2.0 – Beta 2 Review

Today I downloaded GhostBSD 2.0.  GhostBSD 2.0 is a live CD that you boot off and your operating system loads to a desktop environment from the CD itself.

It is a CD not a DVD. It was 645.3 MB.  That fits one a single CD.  So it is still small and downloaded rather quickly compared to multi-gigabyte DVD images.

The Good

It didn’t take long to find some good features.

  1. VMWare resolution wasn’t too bad 1280×720.
  2. Decent backgrounds
  3. Thunderbird setup to take your account immediately and the autodetect is cool.
  4. Firefox worked first time.
  5. Has AbiWord and Gnumeric Spreadshet installed.
  6. Has burning software
  7. As a CD ISO, it is still small and downloaded rather quickly compared to multi-gigabyte DVD images.

What Needs works

The first thing that needs work is this review.  I didn’t test much.  I booted, and looked at features, but as I only use a Live CD when something goes terribly wrong and nothing has, I didn’t really do anything too geeky.  So let me just say there is much more to review.  But here are some things I noticed in just my short time clicking away at this.

There wasn’t much bad to speak of that was bad. I had to get nit picky.

  1. There was a problem that delays boot related to the hostname.
  2. No Flash 10 in Firefox, though the linux kernel was there.
  3. Thunderbird is not configured to open links with Firefox by default.
  4. pkg_info shows the pages but says that the package info is corrupt for every package installed.

Other FreeBSD Live CDs

  • Frenzy – A much smaller CD. Here is a quote from the home page: Frenzy is a “portable system administrator toolkit,” LiveCD based on FreeBSD. It generally contains software for hardware tests, file system check, security check and network setup and analysis. Size of ISO-image is 200 MBytes (3″ CD)
  • FreeSBIE – No longer maintained

I didn’t install Frenzy and I have never used it, so I cannot compare it.  However, it is supposedly only 200 MB, which leaves me wondering what it has.

FreeSBIE has been useful in the past, but is no longer maintained.

The Conclusion

GhostBSD 2.0 is the FreeBSD live CD that I currently recommend. I first came across it when it was 1.5, and 2.0 shows it moving forward quite nicely.

Hopes for the future

I do believe there is a place for them to hook into pc-sysinstall and create an installer.  There is not a GNOME-based FreeBSD distribution that I know about, though PC-BSD might add GNOME as an option, but many of the GNOME users would probably jump on this if an installer was built. They may even convert me from KDE to GNOME.

Debian one step closer to making the kernel optional

You have heard of options during install, but have you ever thought of swapping out the Kernel? Maybe, for a similar kernel with a different configuration, but what about a completely different kernel, say a Linux or FreeBSD kernel? Well, Debian has thought about this for quite some time, and with their new release of Debian 6, they now have a

Quote on Slashdot: “After two years of work, the Debian Project has announced the release of Debian 6.0. ‘There are many goodies in Debian 6.0 GNU/Linux, not the least of which is the new completely free-as-in-freedom Linux kernel, which no longer contains firmware modules that Debian developers found troublesome,’ says blogger Brian Proffitt. And in addition to Debian GNU/Linux, Debian GNU/kFreeBSD is introduced as a technology preview. ‘Debian GNU/kFreeBSD will port both a 32- and 64-bit PC version of the FreeBSD kernel into the Debian userspace, making them the first Debian release without a Linux kernel,’ says Proffitt. ‘The Debian Project is serious about the technology preview label, though: these FreeBSD-based versions will have limited advanced desktop features.’ The release notes and installation manual have been posted, and installation images may be downloaded right now via bittorrent, jigdo, or HTTP.”

Since FreeBSD is my platform of choice, this idea sounds pretty good to me.

This isn’t hte first time I have commented on this Debian GNU/kFreeBSD release. However, it is in the new again and it is interesting to say the least.

Getting the Microphone to work in FreeBSD on a Lenovo T61p

Hey all,

I am trying to get my Microphone to work on my Lenovo T61p.

Problem

If I talk into my microphone while capturing sound, when I play back, I cannot hear my voice.

Troubleshooting

Let me answer some questions for you:

Does the sound work?
Yes. The sound card works great.

Does the hardware work?
The Microphone works well if I boot to windows 7. I have a hard drive with Windows 7 that used to be in this laptop.

What tools am I using to capture sound?
audacity
xvidcap

Can I get any sound to record?
Yes. If I tap hard with my finger on the microphone, the taps are caught, though faint, by both audacity and xvidcap.

What have I done?

Read the Handbook.
Read the man pages for mixer and snd_hda

  1. Loaded and unloaded snd_hda.ko and sound.ko
  2. Changed every mixer setting there is.
  3. Tested tapping and yelling into the mic, tapping barely registers.
  4. Test hardware on Windows 7, works.
  5. Checked systctl -a |grep snd and sysctl -a |grep hda
  6. Changed the mixer to use monitor instead of mic.

Resolution

Well, it was the last step. Once I changed the mixer to use monitor instead of mic, it worked like a charm.

mixer -rec monitor

mixer monitor 35:35

Installing and testing PC-BSD 8.2 RC2

I am installing PC-BSD 8.2 RC2.

I really love that I can just choose ZFS as the file system and I don’t have to really make a huge effort to get it to work.

I found polish issues, but nothing serious yet.

Take a moment to install and share your experience here:

http://forums.pcbsd.org/showthread.php?p=85374&posted=1#post85374

Russian Government going Open Source…and the future

Well, I have seen governments claim they are going to open source before, but not from Russia, and not with such a realistic plan to migrate over a few years.

Here is a link to the article via Google translate:

Putin ordered the transfer of power on Linux

The now

Business drives software development.  Open Source communities help, but even today much of the ongoing development for Linux is driven by businesses such as Red Hat and Novell and others.  If you think your Linux code is being written by unpaid developers in their spare time, you are somewhat correct but only partially.  Most changes are made by developers who are paid.

While communities are nice, they can’t match the hours or output of experienced developers working forty to sixty hours a week.

Looking Ahead…the Apps…and C# (Mono)

The more open source is used in business, the more development power it will have.  But it is not the open source Operatings Systems that prevent people from moving to Linux or BSD.  Ubuntu, SUSE, Fedora, CentOS, PC-BSD, and numerous others are all very usable desktops that are user friendly.  It is the software that runs on them that everyone is waiting for.

The market is already there to make millions extra if you application runs cross platform, one Windows, MAC, Linux, and BSD.

But most the applications written for Windows, the business desktop of today, are using .NET Framework. So naturally those companies are going to want to make their code cross platform.  And they are going to find it is easier than they thought to move their applications between platforms using C#.  I have recently decided that C# is the future of applications on all platforms.

Some MAC and Linux users don’t like Microsoft and will fight off the idea of a Microsoft provided development platform such as C# (Mono) on their systems.  But when a corporation decides that you must run software X, and software X requires .NET, and you have to either give up your MAC or Linux box for a Windows box, or use C# (Mono), then users will come around.

If you are a company writing software for Windows only today and using C#, you need to take a look at Mono. Even if the return on investment of developing a C# (Mono) based version of your product is a slight loss to break even, it is an investment in the future.  Once written, maintenance costs will be less than the original development costs and that slight loss to break even margin will turn to a small profit.  And with the experience, you next app will migrate to C# (Mono) that much easier and soon, all you apps will run anywhere that C# (Mono) can run.

This is going to take off in a way Java hasn’t because developers for windows prefer and will continue to prefer .NET over Java.  And when it comes to business apps, Java just isn’t the language of choice.  Business applications are written in C#.