So, we meet again. I have a lot of new information. Since the last newsletter there have been some changes; they should not go unnoticed. The first is that we are changing our release basis to a monthly schedule, instead of the bi-monthly schedule I have tried to stick to. This should mean more robust information included in the newsletter, and better overall quality. Now there is more time for coordination, organization and no procrastination (It just sounded cool, didn't it?).
Another change is the addition of contributed articles, that's right, you are encouraged to write an article, and email it to me. I will put it here in the newsletter so all of our readers can enjoy. Branko Vukelić (foxbunny) took the first shot at contributing an article. Feel free to contribute your own ideas. All of this and more amounts to a good newsletter release, one that we hope you will enjoy.
All of this wouldn't be possible if it weren't for the help of the hard-working newsletter team. I owe you guys so much, you have been supporting this effort in ways I could have not imagined possible. Keep up the awesome work guys!
- Eduardo "kensai" Romero
There's a dangerous dbus update coming up for the testing repository. The package itself isn't so special, as it works fine, but the fact that every dbus-daemon process on your system will crash during the upgrade can lead to unpleasant surprises.
Testing users: please be aware of this and run your upcoming upgrades from a plain text console instead of from X. One of the unpleasant surprises is that xorg-server in testing goes down with dbus while it's upgrading, leading to loss of important work or an interrupted package upgrade process.
The latest release of perl 5.10.0 has been moved to core. This package is built following the Perl Policy document found on the wiki. Pay attention to the upgrade notes because some things have changed and may require some action.
netcfg v2 is a complete rewrite of the netcfg that was previously included within 'initscripts'. netcfg v2 has been moved into a different package 'netcfg'.
netcfg v2 is feature compatible, but not configuration compatible. Configurations need to be rewritten for netcfg v2, and examples are included in /etc/network.d/examples.
For more information on transitioning to netcfg v2, please check the
wiki:
http://wiki.archlinux.org/index.php/Network_Profiles
"Arch Linux is one of the more popular KISS distributions out there. What's it all about? To help us understand what make Arch Linux so great, we've asked the lead-developer - Aaron Griffin - some questions."
Contributed by: Dusty Phillips
Wiki History
Believe it or not, one of the primary complaints about Arch when I started was how little documentation it had. You were expected to know what you were doing. Always. Questions were asked repeatedly on the forum and mailing list and your only resource for documentation was a search of these archives.
Markku (rasat) instantiated the first attempt at a wiki-like system by creating a 'wiki' user account on the forum and publishing the password (its 'wiki' and the account is still active!). The idea was that anyone could edit existing forum posts and howtos and he'd sticky them. It didn't catch on.
Markku and I were primarily responsible for setting up the first phpwiki. I ported many HOWTOs and articles that had been posted to the forum and wrote several new ones. Community involvement steadily increased and we ended up with...
...an incredible mess. Phpwiki didn't scale well. Eliott (cactus) was responsible for porting us over to mediawiki, basically single handedly. We had a big wiki migration day where everyone pitched in to help clean up articles that had been converted to Mediawiki syntax using some automated scripts he had scavanged off the internet and authored himself.
But we still had an incredible mess. The wiki improved slowly after this. It was still disorganized and unprofessional. Branko (foxbunny) was largely responsible for improving the organization and categorization last year with plenty of discussion. The wiki has really come into its own since then, especially with the recent massive improvements Jules (Misfit138) has made to the Beginner's Guide.
"Dozens of network-attached storage (NAS) servers and other consumer appliances are about to gain mainline kernel and Debian GNU/Linux support. The 2.6.25 kernel, currently in the final stages of testing, will support Marvell's Feroceon micro-architecture and "Orion" SoCs, with Debian support close behind, sources say."
"March 26 marks the day that Thessaly became part of Greece again, the occasion of Queen Elizabeth II sending out the first royal e-mail, and country singer Kenny Chesney's birthday. Now, March 26 will also be known as Document Freedom Day, designed to raise awareness about free document formats and Open Standards. According to Document Freedom Day's about page, the day represents 'a global day for document liberation.'"
To be honest, I didn't do as much shopping around as most people do. Arch was the first Linux distribution I installed on my primary computer, and it has been there ever since. I used Linux quite a bit in university, and I decided to install it on my machine because I liked the power and control it gave the user. With that in mind, I went looking for a distribution that would put the power and control in my hands, and something I could do exactly what I wanted with. Arch seemed to fit the bill for most every thought that came in my mind. It was very KISS, but it still had a package manager. It was optimized, but it wasn't source-based requiring time-consuming compiles. And one of the most important things was that it would force me to learn how to do routine tasks from the command line. My initial install experience was not pretty, but it taught me a lot. :)
My primary job would be "Pacman developer", although I have my hands dirty in a lot of other things. When I became a developer, it was because of my contributions to the pacman code rather than maintaining packages, and I've tried to keep doing that. At the time I came into the developers circle, pacman was in a bit of a limbo with regards to development- Judd didn't quite have the time anymore, and Aaron was trying to pick things up and maintain the code. Since the pacman 3.0 release, I've become more of the lead developer for pacman, as Aaron now has to lead the whole Arch team. This means I am in charge of deciding where pacman should head with regards to new features, managing bugs, and reading over patches from those people on the pacman-dev mailing list. And every once in a while, I actually get to do some coding myself.
It is a bit of both. I think balancing the two is key.
When I initially stepped into pacman development, I was doing it purely
because it was enjoyable. I wanted something to hack at besides school
work, and I hadn't done much C coding in a while. Looking at some of the
pacman code and seeing practical applications for the stuff I learned in
algorithms classes was pretty cool. I still have moments like this, but
once you have the official title of developer, a lot more responsibility
falls on your shoulders. If we have a bug in pacman, I do feel like it is
my responsibility to try and fix it, which can be burdensome. But I still
try to spend a lot of my working time doing the stuff I want to do rather
than just fix users bugs or feature requests.
At times (like
when reading an angry bug report) I think users can forget that the
developers are just volunteers that signed up for something they found
fun. Telling us we have a responsibility to fix their problem makes us a
whole lot less willing to work with them to fix their problem. So keep
this in mind, users. :)
To me, it means simple and clean. I want a simple system that does what I say and nothing more. I want tools that don't get in my way. I want a fast system. You'll notice I've used "I want" a few times here- the Arch Way is something that developers have really defined themselves, as far as I can tell. We do what we think is ideal, and we have managed to get quite a following this way.
There are two sets of plans- the realistic ones, and the ones that we
could accomplish with infinite time.
Realistically, my plans
are for steady improvement. Many people may not know this, but pacman
2.9.8 would probably fail close to 50% of the scenarios we now have test
cases for in our codebase with regards to conflict checking, dependency
resolution, and installs slightly more complicated than single packages.
With the help of others on the list, we have made a lot of progress
towards ensuring correctness within pacman. This is one point that we
will continue to improve on.
Other things are also under
development. We recently revamped a lot of the memory allocation within
pacman, meaning it uses less than 50% of the memory it used to during a
base install. A lot of code cleanup work has been done, resulting in
easier development under the hood. We are also looking to make several
efficiency improvements, such as reading tar.gz databases directly rather
than unzipping them to disk, which should address a long-standing
complaint of pacman being slow the first time you use it.
Although I am the lead developer, I can only do so much work on my own.
Other people on the pacman-dev mailing list, notably Xavier and Nagy, have
made great contributions to the development of pacman. Much of the future
plans come from those that have an idea and implement it. I think most
people would agree that pacman is already a pretty good package manager
though, so I'm not too worried we don't have some grand plan of where we
are going.
My second title for Arch is "official taco chef", so you tell me.
I have seen him do this with my own eyes, so I know he can.
Contributed by: Renato Leão
Contributed by: Dusty Phillips
Contributed by: Renato Leão
"PHP V5's object-oriented features give you the ability to implement design patterns to improve your code's design. When you improve your code's design in this way, it becomes more readable, more maintainable, and more robust to absorb changes."
"I've recently been converting a bunch of old spoken-word cassette tapes to digital format. The Audacity audio editor (also available for Windows and Mac users) is the ideal tool. It's built-in effects -- which include normalising and noise removal -- make it even more useful, and it can save files in a variety of formats including WAV, AIFF, FLAC, OGG and MP3. But there's one trick it can't handle..."
by Branko Vukelić
In this article, I'll give you a quick overview of setting up NetBeans for Ruby on Rails development on our beloved Arch Linux. This tutorial is Arch-specific, but parts of it can probably be applied on most distributions, since I basically stole some of the instructions from resources on other distributions. :)
I dedicate this article to my great friend, and the grandmaster of the Arch Linux Newsletter, Eduardo "k3nsai" Romero. Good luck with your programming, man, and don't edit this part out. :)
To Dusty, I know you are Django developer, but hey, you can write about Django next time!
Proofreader Response (Dusty): I know you're a django coder now too! Sorry we couldn't get this published while you were still a rails guy.
So, have you even heard of NetBeans IDE? Sure you have. You haven't? Well, it's one of the best out there, and, naturally, it's also open-source. But if you are Ruby [on Rails] developer, it gets even better. This is *the* best integrated development environment for Ruby on Linux (and I guess there's hardly any match for it elsewhere, too).
Apart from Ruby and the Ruby on Rails framework, the NetBeans website lists the following technologies as supported: AJAX, C/C++, Java, Javascript, Mobile development, XML. I know for a fact it supports PHP as well through a 3rd party plugin, also UML, and a bunch of Java frameworks. Since I mentioned plugins, you should know that NetBeans is *very* extensible through plugins, and sports a nice plugin manager that not only installs the plugins, but keeps track of available updates (it also self-updates, just so you know).
This IDE is a Java application However, I think it boots much faster than Eclipse, which is also developed in Java, especially if you use the Ruby-only version (which is, of course, the same NetBeans IDE with only Ruby and Rails plugins preinstalled).
NetBeans was originally developed by a group of Czech developers. Their goal was to create an IDE written entirely in Java. Since 1996, when development began, they had released a few versions of the IDE, when Sun noticed it. At the time, Sun didn't have any good development tools (http://www.developer.com/java/other/article.php/631131) so they decided to buy two of the leading Java development tools Forte and NetBeans.
Sun didn't have much luck with Forte, so, in June 2000, they decided to roll out NetBeans as open-source application. Since its release, NetBeans has helped Sun create a loyal developer base around Java, but has also allowed many non-Java developers to use an excellent and well-polished IDE.
The current version as of this writing is 6.0.1. However, the version in the Arch Linux [community] repository is 6.0. When obtaining NetBeans, you therefore have a choice of grabbing the Linux installer from NetBeans website (http://download.netbeans.org/netbeans/6.0/final/), or installing the Arch package with pacman. Some people swear by the latter method, so we'll cover that first.
Type this in your console:
# pacman -Sy netbeans
It wasn't hard was it? There you have it. NetBeans is all yours now.
If you want the recent version, or you prefer to have a Ruby-only version (Ruby on Rails included, of course), you'll want to download from NetBeans website.
This procedure is also deceivingly simple. Simply Click the download link (Ruby version is mere 22 MB), and after you've got the netbeans-6.0.1-ml-ruby-linux.sh file, 'chmod +x' on it (that means give it execute permission, silly) and run the file. It will present you with an easy-to-follow installer, and you'll have NetBeans installed in your home directory in no time at all.
I have found that Ruby-only version of the IDE boots a bit faster and consumes less memory than the full version. So, unless you plan to exploit all supported technologies, I suggest you use the Ruby-only version.
And a word of warning. Don't mix the Arch package with .sh files from netbeans.org. Pick a side eary on, and stick to it. If you want to switch in mid-air, you have to remove the preferences (I think these are in ~/.netbeans).
After (or before) you install NetBeans, you need to set up other things for your ruby development needs.
NOTE: NetBeans IDE comes with jRuby. It is a Java implementation of Ruby and it is integrated into NetBeans. However, for many reasons, it is worth your while to set up a 'real' Ruby development environment on your system. One big advantage is that you can use the FastDebugger that way (jRuby doesn't support FastDebugger). Therefore I strongly suggest following the instructions below and creating a proper Ruby setup.
Installing Ruby is pretty straightforward. Nowadays, every distribution on this Planet has a package for Ruby, and Arch Linux is no exception.
# pacman -Sy ruby
That's it. Proceed to the next section.
Ruby uses packages called 'gems' to install plugins and libraries. Most of the available gems can be found at RubyForge (http://rubyforge.org/. The package manager for gems is RubyGems (http://www.rubygems.org/). There are two ways to install RubyGems. But both ways have their pros and cons, and you really need to think about what you want here.
The first way is to simply grab rubygems from the Arch repositories.
# pacman -Sy rubygems
Now, if you do this, you will have a LOT of trouble setting up RubyGems for use with NetBeans. You will be able to install gem packages using the command line, but making RubyGems work with NetBeans' built-in gems manager will be tricky.
The other way is to compile RubyGems yourself. It is a bit involved, but it's not too hard either. I'll show you how to do this here. (I'll assume you will be installing into your home directory.)
First off, grab the source tarball:
$ wget http://rubyforge.org/frs/download.php/29548/rubygems-1.0.1.tgz
Note that the version we are using here is 1.0.1 (you may find this version outdated at the time of reading, but this is the latest as of this writing). If the above command doesn't work for you, you can still go to RubyGems page on RubyForge and grab the source package.
Unpack the source:
$ tar xvf rubygems-1.0.1.tgz
You will now have a rubygems-1.0.1 folder so 'cd' into it and issue the following commands (this will assume you are okay with installing RubyGems into a hidden .rubygems directory inside your home directory):
$ export GEM_HOME=/home/your_real_user_name/.rubygems/gems $ ruby setup.rb config --prefix=/home/your_real_user_name/.rubygems $ ruby setup.rb setup $ ruby setup.rb install
After you are done with compiling RubyGems, edit your .bashrc file and add the follwing lines:
export GEM_HOME="/home/your_real_user_name/.rubygems/gems" export GEM_PATH="$GEM_HOME:/usr/local/lib/ruby/gems/1.8" export PATH="$PATH:/home/your_real_user_name/.rubygems/bin:/home/your_real_user_name/.rubygems/gems/bin"
Save the file, log out, and then back in. There. You installed RubyGems into your home directory, and there was much rejoycing.
You need to install MySQL as well, if you plan on developing Rails application. Well, not exactly. Rails supports many databases, and the default for the latest Rails 2.0 is SQLite (because most Rails developers use Macs and SQLite ships with OSX). We'll also cover SQLite later.
Installing MySQL is pretty easy.
# pacman -Sy mysql
However, in order for Ruby and Rails to work with it, you need to install the MySQL adapter. So, type this command:
# pacman -Sy mysql-ruby
One more detail. MySQL gem for Rails (I am not really sure you need this, but I always install it just in case).
$ gem install mysql
That's it.
We'll set the root password for MySQL now:
# mysqladmin -u root password PASSWORD (I dare you to think of a better password # than 'PASSWORD'!)
If you want MySQL to start when your system boots, add 'mysqld' to your daemons list in /etc/rc.conf.
To start MySQL immediately, type this command:
# /etc/rc.d/mysqld start
If you want MySQL, you may skip this section. However, as we've mentioned before, SQLite is the default database for Rails development. So, when you use the 'rails' command to set up a new project, you will end up with a database configuration file for SQLite, unless, of course, you tell Rails otherwise. On the other hand, when you use NetBeans IDE, MySQL is still the default, because the current version of NetBeans was released before Rails 2.0. Either way, you can easily choose a database during creation of new projects.
Installing SQLite is no more difficult than installing MySQL:
# pacman -Sy sqlite3
As with MySQL, you also need the adaptor for Ruby/Rails:
# pacman -Sy ruby-sqlite3
If you like GUI tools, and would like to use them to view and/or edit your projects' databases, you can install a couple of tools for that as well.
For MySQL there is a package called mysql-gui-tools.
# pacman -Sy mysql-gui-tools
There are, of course, other tools, but those are the ones I use.
DISCLAMER: I haven't really done this too many times, and I've tested even less, so this may not work for you (or at all). I use Mongrel for developing Rails apps, and then go straight to deployment on the host. These instructions are basically adapted from various tutorials on the Internet, so Google around if something doesn't work.
If you plan on testing your Rails applications using Apache, you will also need FastCGI. So, let's install everything you will need.
# pacman -Sy apache fcgi
Now you need to edit your httpd.conf. Open the file /etc/httpd/conf/httpd.conf in your editor.
Make sure the following lines are uncommented:
LoadModule include_module modules/mod_include.so LoadModule rewrite_module modules/mod_rewrite.so LoadModule ssl_module modules/mod_ssl.so LoadModule suexec_module modules/mod_suexec.so
To start Apache immediately, type:
# /etc/rc.d/httpd start
If something goes wrong and Apache doesn't start, try this:
# apachectl start
It should give your more details on what went wrong.
To autostart Apache when your system boots, edit the daemons list in /etc/rc.conf and add httpd there.
Finally, edit your /etc/hosts file and add the following line:
127.0.0.1 localhost.localdomain localhost
Some Rails plugins require you to have Subversion (http://subversion.tigris.org/) installed on your system. Using Subversion with NetBeans, and using Subversion in general is out of this article's scope, so do some Googling if you want to know more.
To install Subversion, do this:
# pacman -Sy subversion
Rails can be installed as a RubyGems gem. This is how we are going to install. Don't bother installing the Arch package. Installing it as a gem is always the best solution.
Before we install the gem, we need to update the RubyGems (if there are updates available).
$ gem update --system
If you've installed any other gems, update those as well, just in case.
$ gem update
Now, there are two ways for installing Rails gems (surprise, surprise!). One is installing using the 'gem' command.
$ gem install rails
The other is using the NetBeans' own gem manager. If you want to use the latter approach, open NetBeans IDE (you didn't see that coming, did you?) and click on the RubyGems item in the Tools menu. The Ruby Gems dialogue is pretty straightforward, so I don't need to tell you how to use it. Just go the New tab, and type 'rails' into the search box. It doesn't do search-as-you-type, so you need to hit [ENTER]. And yeah, click on the Install button *after* you've selected the rails gem, not before... err, sorry, I know you knew that.
Rails comes with its own web server based on Ruby's standard WEBrick library. However, this server is rather limited, and most Rails developer prefer using the production-strength Mongrel. Installing Mongrel is very easy, and using it is even more so.
So, let's install mongrel:
$ gem install mongrel
You can, of course, install it using the NetBeans' gem manager as well.
Image manipulation is one of common tasks for most web applications. Even for simple image uploads with thumbnailing, it helps to use a ready-made plugin such as attachment_fu, and most of the plugins use any of the Ruby image manipulation libraries. RMagick is one such library and it is also one of the most widely used ones.
RMagick provides a Ruby interface for ImageMagick, so we will install them now.
# pacman -S imagemagick $ gem install rmagick
If you installed a classic Ruby development environment as per instruction in previous sections, you can now configure your NetBeans IDE.
Let's start with some plugins.
Go to the Tools menu and select the 'Plugins' item. This will open the NetBeans' plugin manager, very similar to the gem manager. The Ruby-related plugins you will most certainly want to install are the following:
Other interesting plugins are:
Once you are done with installing plugins, go to Tools menu and select 'Options'. Click on the Ruby icon and edit the 'Ruby Interpreter' text field to read '/usr/bin/ruby'.
Now, select the 'Fast Debugger (ruby-debug-ide)' radio button (if you haven't installed it yet, you will have a button for installing Fast Debugger instead).
If you want to (or have to) install Fast Debugger from console using the 'gem' command, type this command:
$ gem install ruby-debug-ide
Now go to the 'Fonts [and] Colors' section and select 'Ruby Dark Pastels' from the list of profiles. This profile has some problems in some cases (like previewing a change since the last revision) readability will be diminished. However, in most cases it is much better than the default color scheme.
When you are done, click OK and restart NetBeans.
Now you have a perfectly (well, that's questionable, but, hey!, nobody's perfect) set up NetBeans + Ruby and Rails environment.
There are some issues though. Well, only one to be precise. In some rare cases, SQLite3 may not act as expected. Rails developers have dismissed such problems as 'local setup issue', so be warned! I have decided to stick with MySQL, and I suggest others to do so as well, or tell us how to solve SQLite3 problems. ;)
Hope you've enjoyed this article.
Disclaimer: After the writing of this article, Branko Vukelić, has become a Django user and says "it was love at first sight".
Contributed by: Ronald van Haren
From the bash manpage, the function of aliases is to 'allow a string to be substituted for a word when it is used as the first word of a simple command'. This basically means that you define an alias for a lengthy command, so next time you type the alias, the command is run.
You can define aliases either from the command line, in ~/.bashrc, or in /etc/profile. The basic syntax is:
alias name=command
in which name is an alias for command.
A good and simple example, which is most likely already present in most users ~/.bashrc is
alias ls='ls --color=auto'
Whenever you want to (temporarily) unset an alias, you can use
unalias name
where name should be substituted by the alias you want to unset.
This should give you enough information to start playing with aliases in bash. More information is of course available in the bash manpage.
Contributed by: Mr. Elendig
-!- mode/#archlinux [+o MrElendig] by ChanServ -!- mode/#archlinux [-b *!n=c858d5d*@*] by MrElendig -!- mode/#archlinux [-o MrElendig] by MrElendig scion: :O scion: +b scion: +b MrElendig: scion: he got his whole isp banned earlier :p scion: ban someone! Xilon: scion: you? scion: even me i dont care scion: as long as you unban me later MrElendig: sets mode +b scion [gtfo :D:D:D:D:D] scion: !insult MrElendig phrik: MrElendig - You are nothing but an it-fowling assload of frothy cat. scion: :0 MrElendig: I know MrElendig: and I'm proud of it! scion: argh scion: :) scion: im leaving on my own then -!- scion [n=scion@85.73.223.56] has quit["leaving"] Xilon: scion: What good is a ban when you can't laff at the person who got it? :( Xilon: aww
boblutz: Is anyone here a Toronto FC supporter? MrElendig: !406 football phrik: Error 406: football Not Acceptable! scion: ss boblutz: wah!! * boblutz runs away -!- boblutz [n=stansmit@d60-65-93-136.col.wideopenwest.com] has left #archlinux ["Leaving"]
We have come to the end, but just for this month, we sincerely hope you
enjoyed reading the newsletter. The Arch Linux Newsletter Team enjoyed making
it for your reading pleasure. Please, feel free to contact us, and let us know
of any opinions and/or suggestions for improvement. Also, we accept
contributions, so feel free to contribute.
The best for all of
you, from the Arch Linux Newsletter Team