Microsoft has stated that its Windows Phone 7 marketplace will reject any apps that use the GPL (GNU General Public License) and similar licenses.

…

“The Windows Phone Marketplace supports several open source licenses, including BSD, MIT, Apache Software License 2.0, MS-PL and other similar permissive licenses. We revise our Application Provider Agreement from time to time based on customer and developer feedback, and we are exploring the possibility of modifying it to accommodate additional open source-based applications in upcoming revisions.”

Microsoft is doing the right thing and cannot be blamed in the slightest. The GPL is often termed a viral license and for good reason. Once you use it in your code everything is infected by it. Others say it is a spiderweb license, that once you are in the spider’s web, you can’t get out. The BSD license instead of the GPL is probably the single biggest reason to use FreeBSD over Linux, especially for enterprise business such as Microsoft, Apple, and others.

I don’t like the entrapment of the GPL. Students often first encounter the GPL in college, where they hear that the GPL is free and start using it. Only later do they realize they are trapped. Some don’t mind, wish they would have understood the license better.

Here is a simple rhyme to remember which license to use:

If you want your software to really be free, license it with BSD. If you want your software to be in license hell, use the GPL.

This post shows that Microsoft feels the same as many of us who are anti-GPL.

Obviously they don’t want to have those who write their apps ever accidental depend on another app, only to find out the app they depended on is GPL, so their entire work must be GPL as well. They are doing what humanity tries to do with any virus, eradicating it and prevent infection by eliminating the virus, just as we have done with small pox, from the world.

Variables are used at the top of the script that are easily modifiable.

It backs up all databases without having to list the databases, so you don’t have to update the list with every new database.

It does compress using gzip the databases, so uses as little space as possible.

Here are some ideas for future enhancements to the script

The gzip compression level as a variable up top. The default gzip compression level is 6 and 9 could make the file significantly smaller with large databases, while 1 would be faster for machines with weaker processors.

Database to exclude from the backup. I like the idea to get them all by default, but sometimes you have a test database you just don’t care about and you don’t want a nightly backup of it.

I don’t see the password in the script, and I am not sure how it is authenticating without it, maybe a password feature needs to be added.

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.

VMWare resolution wasn’t too bad 1280×720.

Decent backgrounds

Thunderbird setup to take your account immediately and the autodetect is cool.

Firefox worked first time.

Has AbiWord and Gnumeric Spreadshet installed.

Has burning software

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.

There was a problem that delays boot related to the hostname.

No Flash 10 in Firefox, though the linux kernel was there.

Thunderbird is not configured to open links with Firefox by default.

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)

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.

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.

So my networking on my host has been extremely slow and choppy on my VM guests. I read somewhere to not use NAT but when I tried to turn off NAT, I could never get and IP address. Turns out that was the fault of lagg.

I have disabled lagg and configured my VMs to use bridging mode and suddenly my host is extremely fast.

Also, when I accidently configured my VM to use iwn0 instead of wlan0, the system hung, followed by a reboot.

So lets sum up the three tips for using VirtualBox on FreeBSD:

Don’t use lagg on the host.

Don’t use NAT.

Don’t configure the guest to use your wireless device using iwn0, but make sure to use wlan0.

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#.

I wanted to watch a TiVo recording on my laptop…running FreeBSD. I had never done this, so I wasn’t sure if it was going to happen.

Gratefully, I succeeded. Here is what I had to do.

Step 1 – Find my media access key.

You can find this on your TiVo, but since I didn’t have a remote, I couldn’t look on my TiVo. So I went to http://www.Tivo.com, logged in, and sure enough under My Account, there was a link to see my Media Access Key.

Step 2 – Download a video recording from your Tivo

Connect to you Tivo using your favorite web browser using https. Note: I wasn’t sure of my Tivo’s IP Address so I had to connect to my Wireless router and look at its DHCP leases.

Login using these credentials: User: tivo Password: [your media access key]Once in, you will see a list of recordings in a table and you can download them as you desire.

Download your recording. Your recordings are .tivo files.

Step 3 – Install tivodecode

When I tried to play the .TiVo file with mplayer, it failed. So I looked at how to convert it.

FreeBSD Wireless

FreeBSD has strong support for wireless devices. Here is a quick overview of how to manage wireless interfaces on FreeBSD.

Prerequisites

For Wireless access requires the following:

A wireless interface card

wpa_supplicant

An Access Point

Note: In later of versions of FreeBSD, since 2008, wpa_supplicant was included in base. If you are running an older version of FreeBSD, then wpa_supplicant was a port. So if you are on FreeBSD 8, you have wpa_supplicant.

To complete this guide, we will also use:

A FreeBSD desktop environment.

wpa_gui

Note: wpa_gui is not included in the base system but is found in ports.

Step 1 – Determine what wireless interface card you have

Some wireless cards are built into the kernel, and may already be loaded. If you know what card you have, skip this step.

Most wireless cards are PCI devices. Run pciconf to look for your wireless network card type. This outputs a lot of information, I have snipped my output to isolate only the information about the wireless PCI card.

Step 2 – Make sure the kernel module is loading

Read the man page for your wireless kernel module, there is a link to it in the hardware notes, to see any special information about loading the kernel module for your kernel module.

Configure the /boot/loader.conf to load the kernel module and make any other required settings to use the kernel module.Example 1 – The Intel iwn kernel module requires a line to load the kernel module and a second line to load the firmware.

Now you can either reboot, or you can use kldload to load the kernel modules without rebooting.

Step 3 – Configure the wireless settings in /etc/rc.conf

The rc.conf is where the wireless network card is configured.

In FreeBSD 8 and later, all wireless interfaces should be configured to use the generic wlan device. Then to enable wpa_supplicant, the wlan should be configured to use WPA. To make these configurations, add these lines to the /etc/rc.conf.

Now add a network entry for the desired wireless device. Examples are below:

Open or no authentication

network={
ssid="MyWifi"
key_mgmt=NONE
}

WPA or WPA2

network={
ssid="MyWPA"
psk="SomeP@sswd!"
}

More examples

For more examples, read the man page for wpa_supplicant.conf.

$ man wpa_supplicant.conf

Once the SSID is configured properly in the /etc/wpa_supplicant.conf, then an automatic connection to this AP will occur whenever the device is within range.

Step 5 – Install wpa_gui from ports

Often you don’t always know what wireless you are going to connect to and also often you don’t care to store the SSID configuration permanently in the /etc/wpa_supplicant.conf. This is common if you are getting online at an airport, coffee shop, or any hotspot that you don’t frequent. It would be nice to have a graphical interface that shows you the SSIDs available, allows you to connect, but doesn’t store the information. wpa_gui is this tool.

Install wpa_gui from ports

# cd /usr/ports/net/wpa_giu
# make install

Add the following two lines to the top of the /etc/wpa_supplicant.conf.

Resources

Copyright ® Rhyous.com – Linking to this page is allowed without permission and as many as ten lines of this page can be used along with this link. Any other use of this page is allowed only by permission of Rhyous.com.

Ok, so if you have been on my site, you know that I started with Red Hat and never really got into it, and then, settles on FreeBSD. Why would I choose FreeBSD over Linux? It fit me better.

I actually think that everybody needs to use what suits them.

This is NOT a FreeBSD versus Linux post. It is a site to help others who are trying to decide whether to use FreeBSD or Linux see some pros and cons and get my recommendation.

FreeBSD

FreeBSD is not Linux or Unix exactly. It is BSD. It has its own bsd kernel and an is surrounded by a base system.

Here are a list of positives about FreeBSD

It is open to proprietary code that just can’t be used in Linux, such as Sun’s ZFS.

It is easy to get a small install of just the base system with minimal to no features installed. (Security! Attach surface area is minimized when less software is included.)

Jails

The ports tree for compiling from source is unmatched by any Linux operating system, but if you prefer binaries, yes, it has them too.

Installing software has less problems as you compile it on the system, with the settings you need (rather than get binaries that may have been compiled for a different system or without the settings you need).

The documentation is far better than most other open source projects and better than most projects commercial or open source for that matter!

OS X chose to use much of FreeBSD in its underlying operating system and so when combining the OS X and FreeBSD market share, FreeBSD code is actually used on more systems than any operating system other than Windows.

There are not that many BSD distributions, and the ones that exist have clear focusses different than the others, that later they share. FreeBSD is a solid server. PC-BSD is a desktop focussed on avoiding dependency problems with its software. OpenBSD is extremely securee. NetBSD is extremely compatible with lots of hardware. They contribute back to each other often.

The License is free and gives everyone who uses it true freedom.

The License is free for commercial use.

Easy Editor. Newbies can actually use this editor included in the FreeBSD base system. Don’t forget to learn vi though.

Patching is as simple as running freebsd-update.

Here are a list of negatives about FreeBSD

Hardware companies tend to make drivers for Windows and Linux first and often don’t include FreeBSD, though most hardware is soon supported.

There is not a native Flash Player in FreeBSD, instead the Linux version of Flash must be used.

There Desktop options for FreeBSD are not as rich as those for Linux (Example: KDE network settings doesn’t work on FreeBSD, but PC-BSD has their own settings now.)

IT/Developers forFreeBSD are harder to come by.

Linux

Linux was originally just a kernel. The userland was separate. Now there are plenty of projects that make a nice complete operating system using the Linux kernel and a nice base system surrounding it.

Here are a list of positives about Linux

It has a large user base.

Free to use.

There are plenty of distros to choose from.

It is no longer just a kernel but many different groups put out an actual system: Red Hat/Fedora, Debian/Ubuntu, CentOS, SUSE, Arch, Gentoo, etc…

A lot of work is going into the desktop environment

Development for any Linux platform could benefit all Linux platforms.

More and more hardware companies are including Linux drivers

Some Software companies make Linux software as well, and the number is increasing

Strong commercial backing (which doesn’t make sense for software licensed under the GPL)

Here are some negatives

There is often a lot of binary packages that just don’t work.

Lack of consolidation. There are a lot of distributions of Linux and they are not the same. Which one do you choose.

Many Linuxes (not all) are now installing desktop software by default, and no longer are minimalistic. (Security! Attach surface area is increased when more software is included.)

The inability to write and distribute software that touches GPL software, without having to release your software as GPL too.

If you hope to do anything other than use the software or help the community, you need a lawyer to figure out how to interact with the various versions of GPL.

The security settings are usually not easy to use and are result in users just turning them off (i.e. SELinux)

Are Red Hat and SUSE open source or commercial, they sell support but the software is free, except you can’t get updates without buying support…confusing!

IT guys who claim to know Linux usually have done little more than run Ubuntu for a few days.

This is not a flame post and any responses that appear to be trolls will be deleted.

My recommendations

Ok, so what would I recommend if I were paid by a company for consulting?

Server (LAMP)

Commerical Appliance

If you work for a company and you need a commercial appliance. Stay away from the dangers of the GPL, just don’t go there.

Recommended OS: FreeBSD

Open Source Desktop

For a quick desktop for a home user that has PC hardware but doesn’t have a license for Windows and doesn’t want to buy one.

Recommended OS: Ubuntu

Note: Sorry PC-BSD friends. Keep working on it.

Commerical Desktop for Employees

If you want a good commercial desktop, you should go with one of the following depending on certain factors, the primary being that some software you may need to use only runs on these two platforms.

Recommended OS: Windows 7 or OS X

However, Ubuntu, Red Hat, SUSE, Fedora, PC-BSD, are all very usable replacements depending on the situation.

Point of Sale (POS) Device

If you need to have to have a POS device for handling sales.

Recommended OS: Depends on needs

Share your thoughts

Hey, please comment. No flame wars though. I repeat, this is not a FreeBSD versus Linux post, but a FreeBSD or Linux post, with just some information from my experience. I appreciate all technology and any rude comments will be deleted. However, feel free to challenge and provide facts, demand facts, etc…

Creating a password protected zip file

There are a couple of different ways you may want to create a zip file. You may want to zip a sing file, or two or more files, or and entire directory and all its contents. You may also want to add a file to an existing zip file.

This is very similar to Example 1. The -e parameter is to encrypt with a password. Always put the zip file first and the files to be zipped last separated by a space.

# zip -e myarchive.zip myfile1 myfile2 myfile3

Example 4 – Creating a password protected zip file containing a directory and all is contents.

The -r parameter is to do a recursive zip (recursive means to include the folder and all its contents). The -e parameter is to encrypt with a password. Always put the zip file first and then the directory name.

# zip -r -e myarchive.zip mydirectory

Example 5 – Delete a file from the zip

This is easier than you think. Because you are not actually reading the contents of a file in the archive, the password is not needed to delete a file inside the zip file.

# zip -d myarchive.zip myfile1

Opening a password protected zip file

The syntax for unzipping a file is a lot easier. It uses a different binary file called unzip.

# unzip myarchive.zip

The above prompts for the password automatically and unzips the files, assuming the correct password is provided.

Some times is it the simple things that people don’t know. For example, I have always just installed software from ports. Every now and then I would use pkg_add -r to pull a pre-made package from a FreeBSD package server. But I have never actually made a package myself. I have been using FreeBSD for 10 years and many consider me an expert in some areas. Well, like I always say, it is possible to be an expert in many areas and still be a newbie in some areas.

Recently, I am looking into steps to make a BSD appliance and so I want to keep the system as minimal as possible. So I want to build packages on on a separate build box. So I suddenly realized that I have never made a package myself and I wasn’t exactly sure how.

So is it hard to convert a port into a package? Of course not. If you want to make a package from a port, and you are familiar with ports already, then all you have to do is run make package, and you may want to make the dependent packages as well.

If you need some more granular steps, I will provide them. You just need to follow some simple steps:

Look at the R-Deps. R is short for Run and deps is short for dependencies. If you want a package for lighttpd, it requires pcre-8.10 to run, so you will need a package for pcre-8.10 as well. Note: B-deps are not need. B is for Build. These dependencies are only need to build the package. Once the package is built, they are not needed, so you don’t need to create packages for them.

Make the lighttpd package:

# #

cd /usr/ports/www/lighttpd make package

This creates the file in the /usr/ports/www/lightpd. You may have a directory or share where you store your packages, and you can copy it there if you want. Especially if this is a build machine in a vm that you plan to revert, you need to copy this off the machine or you will lose it when you revert.

Make the pcre package.

# #

cd /usr/ports/devel/pcre make package

This creates the file in the /usr/ports/www/lightpd. You may have a directory or share where you store your packages, and you can copy it there if you want. Especially if this is a build machine in a vm that you plan to revert, you need to copy this off the machine or you will lose it when you revert.

Hopefully this helps you if you ever need to make your packages on one box.

This is also something great to do before an install fest so you can have the latest packages available. Lets say you want to do an install fest for a FreeBSD desktop, you could have all the latest Xorg and Fluxbox or KDE or GNOME packages already built.

Build machine notes On your build machine “make package” will actually install the package in the process of building the package. However, that is not really a concern as this is a build machine. My recommendation is that you create a build machine in VirtualBox and snapshot it after you download ports. Usually you just continue making packages. When you decide it is time to go back to a clean system, 1) revert your snapshot, 2) update your ports tree, 3) make your new packages.

My other blogs

Entries (RSS) and Comments (RSS). Copyright ® Rhyous.com Linking to content on this site is allowed without permission and as many as ten lines of any article can be used along with such link. Any other use of the content is allowed only by permission of Rhyous.com.