Today's News

29th Jul 2007
28th Jul 2007
27th Jul 2007

Get Linux in South Africa Pretoria on DVD or CD, SUSE, OpenSuse, Fedora, Mandriva, Knoppix, Mandrake, Debian, DamnSmall, DSL, Gentoo, Slackware, SimplyMepis, Monoppix, FreeBSD, Trustix, Comodo, Smoothwall, Gibraltar, IPCop, OpenCD, Ubuntu, Kubuntu, Redhat, CentOS, Whitebox, PCLinuxOS, Xandros, Vector, Scientific, OpenOffice, Vector, Foresight, Asterisk
 
News Alert


Linux and Open Source News for 28th July 2007

Linux ZA

previous    Distro Watch    next


  popularitypopularitypopularitypopularity

Source: LinuxTracker.org

Category: PCLinuxOS Size: 702.95 MB Status: 1 seeders and 7 leechers Added: 2007-07-28 13:25:38


  popularitypopularity

Source: LinuxTracker.org

Category: Open Source Software Size: 51.42 MB Status: 1 seeders and 1 leechers Added: 2007-07-28 10:07:27


  popularitypopularity

Source: LinuxTracker.org

Category: Open Source Software Size: 19.26 MB Status: 1 seeders and no leecher Added: 2007-07-28 08:47:29


  popularitypopularitypopularity

Source: LinuxTracker.org

Category: Open Source Software Size: 28.04 MB Status: 2 seeders and 1 leechers Added: 2007-07-28 08:28:35


  popularitypopularitypopularity

Source: 64studio

The second stable release of 64 Studio, a Debian-based distribution with a collection of software for digital content creation, is now available: "64 Studio 2.0 is designed to retain compatibility with Debian Etch, to create a long-lived and stable creative desktop. We combine the stability and quality of .



previous    Linux Today News Service    next


  popularitypopularitypopularitypopularitypopularity

Source: Linux Today

Ubuntu Geek: "Gnome-schedule is a graphical user interface to 'crontab' and 'at', both used to schedule tasks. It supports periodical tasks and tasks that happens once in the future "


  popularitypopularitypopularitypopularitypopularitypopularity

Source: Linux Today

Thoughts About Technology: "So, why can't Linux be a desktop OS? Simply put, because it doesn't have the features of a modern day desktop OS "


  popularitypopularitypopularity

Source: Linux Today

mitchell's blog: "There has been some interpretation of my Thunderbird /mail post as saying that Thunderbird doesn't fit into the mission of the Mozilla Foundation "


  popularitypopularitypopularitypopularity

Source: Linux Today

KernelTrap: "'People who think SD was 'perfect' were simply ignoring reality,' Linus Torvalds began in a succinct explanation as to why he chose the CFS scheduler written by Ingo Molnar instead of the SD scheduler written by Con Kolivas "


  popularitypopularitypopularitypopularitypopularity

Source: Linux Today

XYZ Computing: "Until recently, small form factor computers were mostly restricted to people who were able to build their own system "


  popularitypopularitypopularitypopularitypopularitypopularity

Source: Linux Today

Linux.com: "Three months ago, former sponsor Bank of America dropped the affinity credit card of the Linux Fund, the 'public charity' with a stated mission to support free and open source software "


  popularitypopularitypopularitypopularity

Source: Linux Today

KernelTrap: "'This is a free minix-like kernel for i386(+) based AT-machines,' began the Linux version 0.01 release notes in September of 1991 for the first release of the Linux kernel "


  popularitypopularitypopularity

Source: Linux Today

InformationWeek: "In my last blog post about the real-world cost of Linux, I was struck by the contrast between my words and fellow InformationWeek blogger Alexander Wolfe's take on all this "



previous    News for nerds, stuff that matters    next


  popularitypopularitypopularitypopularity

Source: Slashdot: Linux

kripkenstein notes an analysis up on TechRepublic detailing how Microsoft beat Linux in China, and the consequences of that victory: "With the soon-to-be largest economy standardized on Windows desktops, desktop Linux does seem to have an uphill battle ahead of it." "Linux has turned out to be little more than a key bargaining chip in a high stakes game of commerce between the Chinese government and the world's largest software maker The fact that Linux failed to gain a major foothold in China is yet another blow to desktop Linux. After nearly eight years of being on the verge of a breakthrough, Linux seems more destined than ever to be a force in the server room but little more than a narrow niche and an anomaly on the desktop."Read more of this story at Slashdot.


  popularitypopularitypopularity

Source: Slashdot: Linux

Firedog writes "There's been a lot of recent debate over why Linus Torvalds chose the new CFS process scheduler written by Ingo Molnar over the SD process scheduler written by Con Kolivas, ranging from discussing the quality of the code to favoritism and outright conspiracy theories. KernelTrap is now reporting Linus Torvalds' official stance as to why he chose the code that he did. 'People who think SD was "perfect" were simply ignoring reality,' Linus is quoted as saying. He goes on to explain that he selected the Completely Fair Scheduler because it had a maintainer who has proven himself willing and able to address problems as they are discovered. In the end, the relevance to normal Linux users is twofold: one is the question as to whether or not the Linux development model is working, and the other is the question as to whether the recently released 2.6.23 kernel will deliver an improved desktop experience."Read more of this story at Slashdot.



previous    The O'Reilly Network ONLamp Articles and Weblogs    next


  popularitypopularitypopularitypopularitypopularitypopularity

Source: ONLamp.com

When a test case calls methods that write new records to a
database, sometimes the test needs to fetch those records back and
inspect them. This post develops assert_latest, an
assertion that detects newly created records.



The following methods use
Ruby on Rails, and
its exquisite persistence layer,
ActiveRecord.
The techniques apply to developer tests on any platform.

We start with a trivial method that accepts an Array of
prop names, and creates a prop record
for each one:

def create_props(props)
props.each{|u| Prop.create!(:name = u) }
end


And here’s an incomplete test case that doesn’t know if the method
worked:

def test_might_create_props
create_props(%w[hip hop dont stop])
end


When we design code for testing, our code should not have too
many extra lines. If only test cases need a line of code, we should
work to take it out.

Sometimes Ruby makes design-for-testing very easy. If we change
.each to .map, our tests get more bang
for very little buck, and our fictitious method gets a better interface:

def return_created_props(props)
return props.map{|u| Prop.create!(:name = u) }
end

def test_return_created_props
names = %w[hip hop dont stop]
props = return_created_props(names)
assert_equal names, props.map(&:name)
# more assertions here
end


Sometimes code that creates new database records grows
more complex than our simple example. Specifically, when
a Rails test case simulates a Controller responding to a
web page, any new data records might not come back in the
assigns() system.


We need an assertion that detects new items, to write
our test like this:

def test_find_created_props
names = %w[hip hop dont stop]

props = assert_latest Prop do
create_props(names)
end

assert_equal names, props.map(&:name)
end


That decouples the test from the tested code. Here’s
how it works.

assert_latest calls get_latest,
which inspects the
record’s maximum id key before its block,
and returns all the records created after the block.


def assert_latest(model, message = nil, &block)
return get_latest(model, &block) ||
flunk_latest(model, message, true)
end


If the method returns nil,
we flunk the assertion.

Every assert_ needs a
deny_; we just reverse the polarity:

def deny_latest(model, message = nil, &block)
get_latest(model, &block) and
flunk_latest(model, message, false)
end


That fails when your production code accidentally
creates new records that it should not.

get_latest fetches the maximum id,
if any. Then it calls your block, allowing it
to attempt to write records.


def get_latest(model, &block)
max_id = model.maximum(:id) || 0
block.call
all = model.find( :all,
:conditions = "id #{max_id}",
:order = "id asc" )
return *all #
# one object for [x],
# or an array with more than one item
end

After your block returns, we find all records
with an id greater than our “high water mark”. This technique
depends on databases that increment their id keys monotonically
and eternally; if your database is configured to perform some other way,
you’ll need a better technique.

The little star * converts the array into
a kind of “inline expression”, as if all = [1,2,3]
were instead all = 1,2,3. That trick permits us
to return nil, one new record, or an array of records.

And, finally, any assertion failure should provide complete
diagnostics, to help rapidly determine how to revert or debug
the code:


def flunk_latest(model, message, polarity)
flunk build_message( message,
"new #{model.name.pluralize} should " +
"#{'not' unless polarity} be created" )
end


The best persistence layers operate as records in databases
when you want them to, and as objects in memory when you
don’t. assert_latest decouples your tests
from your production code, using
ActiveRecord’s
powerful techniques that decouple your objects from
your database.



Updated: Sun Jul 29 23:55:04 2007


OrderWeb Software CC
Contact Us