Announcing the release of Fedora 14 and upgrade procedure.

Before you read the release announcement, you can update/upgrade to F14 with :

 sudo yum upgrade --releasever=14

Note : You might get some un-resolvable dependencies, you can remove those pakages and continue and it should be a smooth migration.

It’s here! It’s here! It’s really here! Fedora 14 has been officially released! Fedora is a leading edge, free and open source operating system that continues to deliver innovative features to many users, with a new release approximately every six months.

Fedora 14, codename Laughlin, is now available for download. Join us and share the joy of free software and the community with friends and family.

We know you can’t wait to get started with Fedora 14, so simply follow this link to download it today:

If you want a quick tour of highlights in this release, check out:

For more information including common and known bugs, and tips on how to report bugs, please refer to the release notes:

You can also find this announcement text at:

=== What’s New in Fedora 14? ===

==== For desktop users ==== A universe of new features for end users:

* libjpeg-turbo: Users can load and save images faster in Fedora 14 than in previous releases. * Spice: Spice (Simple Protocol for Independent Computing Environments) provides users with an enhanced remote desktop experience. Currently, it provides the rudimentary foundation to take advantage of things like Accelerated 2D graphics, encryption, and hardware cursor support.

==== For developers ==== For developers there are all sorts of additional goodies:

* D: Fedora 14 introduces support for D, a systems programming language combining the power and high performance of C and C++ with the programmer productivity of modern languages such as Ruby and Python. * Python 2 upgrade: The system python 2 stack has been upgraded to 2.7. * GNUStep: A GUI framework based of the Objective-C programming language which is part of the gcc. * Memory Debugging Tools: The new “gdb-heap” package adds a new “heap” command to /usr/bin/gdb which allows you to get a breakdown of how a process is using dynamic memory. * Rakudo Star: An implementation of Perl version 6, based on the Parrot VM. * Support for Milkymist: Developers can enjoy developing for Milkymist, an open hardware embedded board, on Fedora 14. Thanks to the Fedora Electronic Lab for their work in this regard.

==== For system administrators ==== And don’t think we forgot about the system administrators:

* Fedora is now available for users of the Amazon Elastic Computing Cloud service, released concurrently with the traditional release. * virt-v2v assists in the easy migration of Xen virtual machines to KVM virtual machines. * A Virtualization Technology Preview Repo allows users to test the very latest developments in virtualization related packages. * Varnish has been updated and includes improved scalability and a new log function. * Apache has been updated and includes a number of module and security fixes.

And that’s only the beginning. Updated versions of many packages, as usual, will be available in Fedora 14. A more complete list with more details of the new features on board Fedora 14 is available at:

OK, so what are you waiting for? Go download it! You know you can’t wait.

If you are upgrading from a previous release of Fedora, refer to

In particular, Fedora has made preupgrade a more robust solution and pushed several bug fixes to older releases of Fedora to enable an easy upgrade to Fedora 14.

Fedora 14 full release notes and guides for several languages are available at:

Fedora 14 common bugs are documented at:

=== Fedora Spins ===

Fedora spins are alternate version of Fedora, tailored for various types of users via hand-picked application set or customizations. They can be found at:

== Contributing Back to Fedora ==

There are many ways to contribute beyond bug reporting. You can help translate software and content, test and give feedback on software updates, write and edit documentation, design and do artwork, help with all sorts of promotional activities, and package free software for use by millions of Fedora users worldwide. To get started, visit today!

== Fedora 15 ==

Even as we continue to provide updates with enhancements and bug fixes to improve the Fedora 14 experience, our next release, Fedora 15, is already being developed in parallel, and has been open for active development for several months already. We have an early schedule for an end of April 2011 release:


== Contact information ==

If you are a journalist or reporter, you can find additional information at:

Enhanced by Zemanta

How To Install Ailurus On Fedora

For those who have not yet heard about ailurus:

\"\"What is Ailurus?

Ailurus is cross-Linux-distribution GPL software, which aims at making Linux easier to use, for newcomers.

\"\"What does Ailurus hope to do?

Ailurus hopes to reduce the difficulty which newcomers encounter when they are using Linux.

Ailurus hopes to promote popular open-source software.

Ailurus hopes to promote open-source software which is elegant but has not entered official repository.

\"\"What can Ailurus do?

Ailurus can …

  • display Linux skills
  • install popular software
  • change GNOME settings
  • display hardware information
  • enable some third party repositories#
  • clean apt/yum cache#
  • backup and recover apt/yum status#

the features marked with \”#\” support Ubuntu/Fedora only

You can go here to get more details. Now here is a link to installing it on Fedora. For those of you who don\’t need to know how to install a package, you should still visit the link to get details on how to install the ailurus plugin to allow installing non free softwares on Fedora 🙂

If you would not want to keep checking for the updates then you can add the ailurus repo and enable it so that as soon as  a new version is available, it is updated when you run your regular updates.

Here is what is required :

name=Ailurus Experimental Release

Put this in a repo file in /etc/yum.repos.d and you are done….


String and Array Creation

Image via Wikipedia

\"PerlThis is the fourth part of a nine-part article on famous Perl one-liners. In this part I will create various one-liners for string and array creation. See part one for introduction of the series.

Famous Perl one-liners is my attempt to create “perl1line.txt” that is similar to “awk1line.txt” and “sed1line.txt” that have been so popular among Awk and Sed programmers.

The article on famous Perl one-liners will consist of nine parts:

I decided that there will be two new parts in this series. The most powerful feature in Perl is its regular expressions, therefore I will write a part on “Handy Perl regular expressions.” I also decided to publish an e-book after I am done with the series, so that will be the last part of this series. Everyone who’s subscribed to my blog will get a free copy! Subscribe to my blog now!

I also updated the previous part on calculations with 14 new one-liners on finding values of constants pi and e, doing date calculations, finding factorial, greatest common divisor, least common multiple, generating random numbers, generating permutations, finding power sets and doing some IP address conversions.

Here are today’s one-liners:

String Creation and Array Creation

49. Generate and print the alphabet.

 perl -le \'print a..z\'

This one-liner prints all the letters from a to z as abcdefghijklmnopqrstuvwxyz. The letters are generated by the range operator ... The range operator, when used in the list context (which is forced here by print) on strings, uses the magical auto-increment algorithm that advances the string to the next character. So in this one-liner the auto-increment algorithm on the range a..z produces all the letters from a to z.

I really golfed this one-liner. If you used strict it would not work because of barewords a and z. Semantically more correct version is this:

 perl -le \'print (\"a\"..\"z\")\'

Remember that the range operator .. produced a list of values. If you wish, you may print them comma separated by setting the $, special variable:

 perl -le \'$, = \",\"; print (\"a\"..\"z\")\'

There are many more special variables. Take a look at my special variable cheat sheet for a complete listing.

50. Generate and print all the strings from “a” to “zz”.

 perl -le \'print (\"a\"..\"zz\")\'

Here the range operator .. is used again. This time it does not stop at “z” as in the previous one-liner, but advances z by one-character producing “aa”, then it keeps going, producing “ab”, “ac”, …, until it hits “az”. At this point it advances the string to “ba”, continues with “bb”, “bc”, …, until it reaches “zz”.

Similarly you may generate all strings from “aa” to “zz” by:

 perl -le \'print \"aa\"..\"zz\"\'

Here it goes like “aa”, “ab”, …, “az”, “ba”, “bb”, …, “bz”, “ca”, … “zz”.

51. Create a hex lookup table.

 @hex = (0..9, \"a\"..\"f\")

Here the array @hex gets filled with values 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 and letters a, b, c, d, e, f.

You may use this array to convert a number (in variable $num) from decimal to hex using base conversion formula:

 perl -le \'$num = 255; @hex = (0..9, \"a\"..\"f\"); while ($num) { $s = $hex[($num%16)&15].$s; $num = int $num/16 } print $s\'

52. Generate a random 8 character password.

 perl -le \'print map { (\"a\"..\"z\")[rand 26] } 1..8\'

Here the map function executes (\"a\"..\"z\")[rand 26] code 8 times (because it iterates over the dummy range 1..8). In each iteration the code chooses a random letter from the alphabet. When map is done iterating, it returns the generated list of characters and print function prints it out by concatenating all the characters together.

If you also wish to include numbers in the password, add 0..9 to the list of characters to choose from and change 26 to 36 as there are 36 different characters to choose from:

 perl -le \'print map { (\"a\"..\"z\", 0..9)[rand 36] } 1..8\'

If you need a longer password, change 1..8 to 1..20 to generate a 20 character long password.

53. Create a string of specific length.

 perl -le \'print \"a\"x50\'

Operator x is the repetition operator. This one-liner creates a string of 50 letters “a” and prints it.

If the repetition operator is used in list context, it creates a list (instead of scalar) with the given elements repeated:

 perl -le \'@list = (1,2)x20; print \"@list\"\'

This one liner creates a list of twenty repetitions of (1, 2) (it looks like (1, 2, 1, 2, 1, 2, …)).

54. Create an array from a string.

 @months = split \' \', \"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec\"

Here the @months gets filled with values from the string containing month names. As each month name is separated by a space, the split function splits them and puts them in @months. This way $months[0] contains “Jan”, $months[1] contains “Feb”, …, and $months[11] contains “Dec”.

55. Create a string from an array.

 @stuff = (\"hello\", 0..9, \"world\"); $string = join \'-\', @stuff

Here the values in array @stuff get turned in a string $string that has them separated by a hyphen. Turning an array in a string was done by the join function that takes a separator and a list, and concatenates the items in the list in a single string, separated by the separator.

56. Find the numeric values for characters in the string.

 perl -le \'print join \", \", map { ord } split //, \"hello world\"\'

This one-liner takes the string “hello world”, splits it into a list of characters by split //, \"hello world\", then it maps the ord function onto each of the characters, which returns the numeric, native 8-bit encoding (like ASCII or EBCDIC) of the character. Finally all the numeric values get joined together by a comma and get printed out.

Another way to do the same is use the unpack function and specify C* as the unpacking template (C means unsigned character and * means as many characters there are):

 perl -le \'print join \", \", unpack(\"C*\", \"hello world\")\'

57. Convert a list of numeric ASCII values into a string.

 perl -le \'@ascii = (99, 111, 100, 105, 110, 103); print pack(\"C*\", @ascii)\'

Just as we unpacked a string into a list of values with the C* template in the one-liner above, we can pack them back into a string.

Another way to do the same is use the chr function that takes the code point value and returns the corresponding character:

 perl -le \'@ascii = (99, 111, 100, 105, 110, 103); print map { chr } @ascii\'

Similar to one-liner #55 above, function chr gets mapped onto each value in the @ascii producing the characters.

58. Generate an array with odd numbers from 1 to 100.

 perl -le \'@odd = grep {$_ % 2 == 1} 1..100; print \"@odd\"\'

This one-liner generates an array of odd numbers from 1 to 99 (as 1, 3, 5, 7, 9, 11, …, 99). It uses the grep function that evaluates the given code $_ % 2 == 1 for each element in the given list 1..100 and returns only the elements that had the code evaluate to true. In this case the code tests if the reminder of the number is 1. If it is, the number is odd and it has to be put in the @odd array.

59. Generate an array with even numbers from 1 to 100.

 perl -le \'@even = grep {$_ % 2 == 0} 1..100; print \"@even\"\'

This is almost the same as the previous one-liner, except the condition grep tests for is “is the number even (reminder dividing by 2 is zero)?”

60. Find the length of the string.

 perl -le \'print length \"one-liners are great\"\'

Just for completeness, the length subroutine finds the length of the string.

61. Find the number of elements in an array.

 perl -le \'@array = (\"a\"..\"z\"); print scalar @array\'

Evaluating an array in a scalar context returns the number of elements in it.

Have Fun!

Have fun with these one-liners for now. The next part is going to be about text conversion and substitution.

Can you think of other string creating and array creation one-liners that I didn’t include here?

\"\" \"\" \"\" \"\" \"\"