Programming


SUSE Linux Enterprise is designed for the enterprise. Part of what it means to be “Enterprise-ready” is to have “rock solid” components in the distribution which have been fully tested and can be supported. Unstable and unsupportable components/packages just won’t do. BUT… Every now and then, it’s necessary to run “the latest” version of a component of the distribution. Perhaps you have a new application which requires the latest java, or a new development library, etc. So you don’t want to have to wait until that “latest version” of the package gets fully tested and “officially supported”. You’ve got to have that new version now!

You could go to the source and compile your own package for SUSE Linux Enterprise – and while not difficult, it is still kind of a pain – and certainly a turn-off for many a new Linux user. A much better option is to simply visit the openSUSE Build Service and see if your desired package is already being built for SUSE Linux Enterprise. You’ll find builds for SUSE Linux Enterprise, openSUSE, -plus- several other Linux distributions as well… Fedora, Debian, Ubuntu, … So save some time, and check to see if the package you need has already been built by looking here.

Want more info on the openSUSE Build Service, check out this good overview article and this blog entry. and of course the project site which includes other great info.

Advertisements

Why Worry About It?

Backups are essential, and so is the reducing the time needed to perform those backups. Many’s the time I have sat waiting for a backup to complete only to remember that I had a link to a large set of files, or a bunch of ISO files in the ./download directory, and had to migrate those over to somewhere else and restart the backup.

If you are like me, data = “files that contain data of original or irreplaceable content”. I don’t want to backup ISO files, large sets of files that can be gotten from an install DVD or things that are easy to download from a site somewhere.

I use a simple (yeah, it really is), script before every backup to find all the files over a particular size, which I then can so anything I want with. If I find anything that’s too large and expendable, I either use an -exclude statement (usually in the case of all ISO’s) or even move the files elsewhere quickly by re-running the script and tacking on a -exec statement.

The Script

Here is the script I use, it’s from a bunch of different sources, and uses a couple of useful tools to do it’s work:

#!/bin/bash

echo "Enter the fully-qualified start path"
read start_path
echo "Enter the lower size limit in Megabytes"
read lower_size
find $start_path \( -size +"$lower_size"M -fprintf ~/Desktop/bigfiles.txt '%kk %p\n' \)

Fables of the Deconstruction

#!/bin/bash

The first line is where you declare what shell you want to run this script with. This string is known as the “shebang”, not absolutely necessary since it defaults to the bash shell anyway, but it’s certainly good form.

echo "Enter the fully-qualified start path"
read start_path

Lines 3 and 4 work together, prompting you to enter the fully-qualified start path and then storing what you enter in the newly-created variable named start_path. This is expanded in Line 7 by referring to it’s name $start_path.

echo "Enter the lower size limit in Megabytes"
read lower_size

The same arrangement occurs with lines 5 and 6, you’re prompted to enter the smallest size in Megabytes you want to report on, which stores that in the newly-created variable named lower_size. This too is expanded in Line 7 with the name $lower_size.

All Together Now

Line 7 is where all the fun stuff happens. First you are using the find command, not the easiest thing for newcomers, but well worth, ahem, “finding” out more about. Find requires several things, shown below:

find (path) (-option) (expression)

We’re using the start_path variable as the (path), then we include a function (sort of a macro) that looks for files of a size that is at least the value of the lower_size variable we set and populated earlier. Then when it finds each file over that size, it will print out the file size in 1K blocks, followed by the LETTER k, so it’s obvious, and then the full path and name of the file that has been found. This will all then be output to a file named bigfiles.txt in the current user’s Desktop folder.

Note: The use of the tilde (technical name: squiggle 8-> ) character in a command means to expand the current user’s $HOME variable from the executing shell, so the full path of the bigfiles.txt file if rossb is running the script is:

/home/rossb/Desktop/bigfiles.txt

Running the Script

Executing scripts that aren’t in your path (the variable, not the physical directory) is different on Linux/Unix, either you’ll use this script as a parameter to the bash shell:

# /bin/bash findbigfiles.sh

Or you’ll use the following command to set the script to be executable:

# chmod +x findbigfiles.sh

Then when it’s set to executable, you’ll either need to put it in your path, (try /usr/local/bin) or execute it by preceding it with the characters “./”, which is necessary to execute something in the local directory if it’s not in the path:

# ./findbigfiles.sh

Summary

There are so many other things you can do with find, such as tack on a -exec statement and execute a command on each and every file found, or find and act on files that meet a particular permission set, the possibilities are nearly endless.

Of particular help in my work over the years with the find command has been the find man page, with it’s useful examples and Chapter 14 “Finding Files with Find” of the Unix Power Tools 2nd Edition from O’Reilly and Associates. (I know the 2nd Edition is out of print, but I don’t care much for the 3rd Edition’s updates).

Let us know in the comments what cool find scripts you have come up with, the randomly drawn winner will get a very cool Novell-Candy-Apple-Red 9 LED flashlight. (Sorry, Continental U.S. only).

Enjoy,

RossB

Adobe Flex is a platform for creating rich internet applications – and an alpha version of Adobe Flex Builder for Linux is now available to the public and runs on SUSE Linux Enterprise. Adobe has traditionally been staunch supporters of Windows and Mac – with a much more limited amount of attention paid to Linux.  Adobe PhotoShop was even named as one of the most requested applications for Linux in a customer survey Novell held last year.  Perhaps Adobe is starting to change their attitude towards Linux — perhaps…

Thanks to this ZDnet blog entry, which points to this Adobe Flex developer’s blog, which points to the official Adobe page.

If you’re starting to look at Adobe Flex, and starting to build some applications, check out this alpha code and be sure to give Adobe your feedback!

Yes, it’s time for another installment of my very popular “Ross gets this question a lot lately, time for a blog post!” type of posting.

Who’s Asking?

Let’s put this into perspective, why would current Novell and prospective customers be asking us all of a sudden in large numbers what applications/services run on SLES? I’ve asked and the majority are not current SLES customers, they are a mix of traditional Novell (Red) customers (about 40%) and new to SUSE prospective customers (about 50%) and the rest (10%) won’t come out with why, they’re just looking around, thank you very much…

I’ve sent out the links to and shown the following site and it’s children a lot lately, so I wanted to get everyone used to how to find what applications/partners/services etc. are available for SLE 10.  The vast majority of what I am talking about are application services like Oracle and Websphere, not OpenOffice.org.  I just love having someone ask me a complex question and to know we’ve already documented it and I can show them quickly by using the blog posting!

The Goods

The Novell Product Partner Guide is the main landing page for all these solutions, it has options for you to browse the available apps by:

  • product
  • hardware
  • software
  • industry
  • architecture

There’s also an alphabetical list of Partners you can quickly look through, such as if you want to know what Oracle apps or IBM hardware and apps are certified and with what version/patch level of SLES.

The Market Start program is a way to get small to medium businesses quickly into an application service that solves specific needs. There are a number of these, including Alfresco, BlackDuck and Pentaho.

Another very popular section of the site is the Yes Bulletin Search page, either by the bulletin number (which I never know, so it’s not useful to me) and the Yes Bulletin Advanced Search, which lets you search by any keyword you can remember, even if you haven’t had enough coffee this morning…

Yes, it’s even possible to request a Linux Application to be certified, or to let the program managers know of something that you think we should be looking at or someone to be partnering with, we get a number of these, and they are very helpful. Submit away!

Summary

All in all, that ought to keep everyone busy for a while, if you have questions or suggestions, please put them in a comment and we’ll get right on it!

Enjoy,

RossB

Fresh off the news wire this morning 😉

Novell and Microsoft are teaming up to deliver support for Microsoft’s “Silverlight” technology on Linux Desktops! Silverlight is a cross-browser, cross-platform plugin for delivering rich user experiences on the web.

The name of the Linux version will be called “Moonlight” and is based on a project already underway at:
http://www.mono-project.com/Moonlight

Here is the official press release:

http://www.prnewswire.com/cgi-bin/stories.pl?ACCT=104&STORY=/www/story/09-05-2007/0004656397&EDATE=

Good evening and happy browsing!


	
	

It’s Not What You Say, it’s What You Do

We all know (or are about to find out) that the world of Open Source Software isn’t the same world as proprietary developers live in. OSS coders may or may not be paid to develop the projects they work on, regardless, it’s all about your contributions, how good you are and how well you’re perceived in the OSS community.

One’s reputation in the community is a valuable item. When everything you code or produce is freely available for the world to see and especially your peers to review and (ahem, constructively) criticize, the stakes are pretty high.

Automating the Process

An engine (not just) for the management of your reputation as a developer is Ohloh.net. As a collector and processor of what’s being written, committed and credit being given for in the Open Source develoopment world, what they do is catalogue code, do statistics on and report on the individual contributors to Open Source Projects. This is a fascinating use of technology to attempt to give credit where credit is due for Open Source coding.

The process can be summed up in these steps:

  1. Project leader/administrator sets up project to be tracked by Ohloh
  2. Individual contributor submits code to the public code repository
  3. Ohloh connects regularly to the public repository and downloads the updated code
  4. Ohloh analyzes the code changes, authorship, languages and licensing
  5. Ohloh posts updated report data on their site
  6. You query the Ohloh reports to see relevant reports about individuals, projects etc.

Decisions Require Data, So Get Some

Are you responsible for developers?  Want to have your people contribute to the community, but also you want to know how that time is being spent?  You can easily track who’s writing how much and contributing to what projects, as long as the project has given access to their code repository.  Ohloh makes it easy to track and report on things like:

  • Project Name and Description
  • Licensing Details, including compatibility with other licenses
  • Tags to help searching
  • User Reviews and Ratings
  • Related projects and other software used by project users
  • Calculated project cost in hours of development, configurable
  • Activity map for contributor locations

For example, when I looked at the various media projects, such as VLC, Mplayer and Audacious, I was able to get all the salient facts about them on their individual pages, but even more interesting was the ability to compare the projects, showing the relative number of lines of code in each project, the number of commits ongoing and the total number of contributors.

Think about it, if you’re just getting started in the world of OSS development, and you want a smaller or nearly abandoned project to cut your teeth on, you should be able to find something quickly, as well as do some research to see who the really prolific developers are, so maybe you can hire someone, or contract with someone for similar work.

Spread the Word

The next time someone asks you if a project is an abandoned strip-mall or a thriving metropolis, don’t just tell them what you think, lead them over to a browser and show them exactly what’s going on, they’ll be amazed at the wealth of information Ohloh collects and processes, in a very pleasing visual manner, if I do say so. Ohloh is only truly useful if everyone enables tracking, so if you’re a contributor or lead for any OSS projects, consider the benefits of participating in Ohloh’s process.

Enjoy,

RossB

openSUSE is celebrating its 2 year birthday — yea!!  (insert singing etc. here).  Here’s a related press release from Linux World.  If you haven’t been to the openSUSE website lately, it’s been given a new look (love it!) and some new features as well… including the Build Service.

What’s the build service?  In a nutshell… if you’re a developer of an application, you can upload your code into the Build Service and let the Build Service automagically build packages for your app various Linux distros (openSUSE, Fedora, Ubuntu, Mandriva, etc.).  This is an oversimplification, but it’s still a SUPER COOL community offering!  Get more details here.

If you’d like to see what other packages (for various Linux distributions) are already in the Build Service, take a look here.

Next Page »