Wednesday, December 30, 2009

Suspending AbTLinux project indefinitely

Indefinitely, it sounds like forever but not quite. I have not been able to put any time into this project over the last year (last code commit 380 days ago...) so I need to be realistic.

I have moved on to other things as one does over time. Maybe someone will want to pick up this project and move on, just give me a shout.

Thanks to those that put time in on design, discussions, and reviewing my coding. I will always be hanging out on #abtlinux at irc.freenode.net.

Thursday, December 04, 2008

Moved back to sourceforget.net

The fine people at assemba.com have moved their company forward and implemented a business model that includes payment for using their more advanced features. I don't want to get locked into anything that might require removal of my project, so even though they continue to maintain free hosting for open source projects I have decided to migrate back to the original sourceforge.net infrastructure.

The main website links have been migrated, soon I will be updating the content in the wiki, tracker and such.

Tuesday, December 02, 2008

Return values in Ruby, where are they?

It really bothers me that code can become unclear or obscure by not communicating very simple facts, like what a method is returning. A good practice used in Java is to return a 'results', meaning one keeps the return value of a method stored in a variable named 'results'. It can be a String, Boolean, or whatever.

Ruby is one of my favorite languages right now, but handles return values for methods very differently than languages like Java. Ruby does not require an explicit 'return' statement, but can return the last executed statement results by default. This can be confusing.

Discovering what this return value might be can be more time consuming that is necessary and is immediately taken care of by simply supplying a 'return' statement. Cost is nothing, results are clarity. I provide an example from this project:


##
# Cleans up this packages source build directory.
#
# RETURNS: boolean - True if the completes successfully,
# otherwise false.
##
def remove_build
puts "Removings build..."
if ($REMOVE_BUILD_SOURCES)
buildSourcesLocation = "#{$BUILD_LOCATION}/#{srcDir}"

if (!File.directory?(buildSourcesLocation))
return true
end

if (!FileUtils.rm_rf buildSourcesLocation, :verbose => true )
return false
end
end

return true
end


* This is a cross post.

Thursday, October 30, 2008

AbTLinux infrastructure downtime on Halloween

Assembla servers will be down tomorrow, October 31, starting at 8:00 UTC, for a database upgrade. We expect the outage will last about 40 minutes.

www.assembla.com and subversion services will be off during this time.

Users in North America will not feel much affect, because it will be very early in the morning – 4:00 AM. However, this will affect users in Europe and Asia.

Wednesday, October 08, 2008

AbTLinux has a gcc build!

It is a small thing, but one of the very core packages that will be needed to call this distribution a thing born of GNU Software is GCC. Today I got this package to build using our very immature abt package manager (v0.3)!

I know it is a small victory, but hey, I take them where I can get them. My install list is growing, here is a preview output of the 'show-installed' command:

Installed AbTLinux packages:

Package          Version         Installed
=========================================================
gawk            3.1.6            Sat Sep 27 12:24:27 2008
findutils       4.4.0            Mon Sep 22 21:49:55 2008
sed               4.1.5            Mon Sep 22 20:53:02 2008
tar                1.20             Mon Sep 22 21:20:00 2008
bzip2           1.0.5            Mon Sep 22 21:29:10 2008
grep             2.5.1            Mon Sep 22 21:05:20 2008
fortune         mod9708     Wed Oct 08 19:53:01 2008
ipc                1.4               Sun Oct 05 22:24:32 2008
binutils         2.18             Mon Sep 22 22:41:10 2008
wget             1.11             Mon Sep 22 21:14:44 2008
diffutils         2.8.1            Mon Sep 22 21:32:53 2008
checkinstall    1.6.1            Mon Sep 22 21:10:58 2008
cpio                2.9              Mon Sep 22 22:10:00 2008
gcc                 4.2.4            Wed Oct 08 23:59:38 2008

Now it is time for me to get back to gcc and see if I can get 4.3.2 to compile too. Keep tabs on my progress in the Timeline.

Wednesday, October 01, 2008

AbTLinux is free as in Beer

We all know the statement about being "...free as in beer." Well our PR lady never rests when attempting to show you this applied to AbTLinux as well!

Here she outlines this theory with a graphic image of the elements involved in beer making. The basic ingredients are few and simple, but the results is amazing.

Here at AbTLinux we provide tooling based on Ruby, the Free Software Foundation, GNU, and the GPL license. Throw in a bit of our free time and there you have it.

It is so simple!

Sunday, September 28, 2008

Finding return values from chained pipe commands in the system function

I have already discussed some hints for the usage of the Ruby system method, but encountered another facet of using this system function while passing a bash command using pipes. The problem is that one gets the standard exitcode status back from bash via the $? variable. But when you use pipe to chain more than one command you only get the last command results back from the $? variable.

Enter the PIPEARRAY from bash, which allows you access to the each commands return value in the entire chain. The problem with Ruby is that this is not available after the system function ends. Again, using some  smart Bash you can exit your command chain with the contents of the PIPEARRAY like this:

# a system call that exits with the value of the first command 'make'.
system("make | tee output.log; exit ${PIPESTATUS[0]}")

# examine the returned value of the command 'make'
puts $?.exitstatus