Today's News

21st Jun 2007
20th Jun 2007
19th Jun 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 20th June 2007

Linux South Africa

previous    Distro Watch    next


  popularitypopularitypopularitypopularitypopularitypopularitypopularity

Source: LinuxTracker.org

Category: LinuxGamers Size: 2.37 GB Status: 72 seeders and 105 leechers Added: 2007-06-20 19:39:50


  popularitypopularitypopularitypopularitypopularitypopularity

Source: LinuxTracker.org

Category: UbuntuCE Size: 699.91 MB Status: 6 seeders and 7 leechers Added: 2007-06-20 17:50:39


  popularitypopularitypopularitypopularitypopularitypopularity

Source: LinuxTracker.org

Category: Damn Small Size: 49.73 MB Status: 11 seeders and 2 leechers Added: 2007-06-20 14:30:09


  popularitypopularitypopularitypopularitypopularitypopularitypopularity

Source: LinuxTracker.org

Category: Debian Size: 515.74 MB Status: no seeders and no leecher Added: 2007-06-20 02:49:09


  popularitypopularitypopularitypopularitypopularitypopularity

Source: slax

The fourth release candidate of SLAX 6.0.0, a Slackware-based mini live CD, is available for download and testing: "This is SLAX 6 release candidate 4, including a few modules and 27 languages. SLAX 6 rc4 includes Linux Kernel 2.6.21.5, KDE 3.5.7 and the newest technologies from Linux-Live, Squashfs .



previous    Linux Today News Service    next


  popularity

Source: Linux Today

Linux.com: "Poster presentations are a common way of presenting results, proposing strategies, and explaining concepts and methods. You can create nifty poster presentations with Scribus, the free desktop publishing tool "


  popularitypopularitypopularitypopularitypopularitypopularitypopularity

Source: Linux Today

OSWeekly: "Since starting on my quest for a flawless wireless support with Ubuntu Dapper, and then finally understanding the level of support to be expected with the Ubuntu distro itself, I've come to the following conclusions "


  popularity

Source: Linux Today

SearchEnterpriseLinux: "Intrusion detection and intrusion prevention systems (IDS and IPS, respectively) provide the ability to inspect and analyze network traffic and either generate alerts or drop traffic "


  popularitypopularitypopularitypopularitypopularitypopularitypopularity

Source: Linux Today

ZDNet: "Do you know what NexentaOS is? It's an example of things to come, things that scare IBM and Red Hat "


  popularitypopularitypopularitypopularitypopularitypopularity

Source: Linux Today

iTWire: "Need a new app? Looking for inspiration? Want to know what the next trend might be ?"


  popularitypopularity

Source: Linux Today

Open Source Initiative: " 'When is the OSI going to stand up to companies who are flagrantly abusing the term 'open source'?' The answer is: starting today "


  popularitypopularitypopularitypopularitypopularitypopularity

Source: Linux Today

Mad Penguin: "Do you think you are safe with Firefox? In general, I would agree with you "


  popularitypopularitypopularitypopularitypopularitypopularity

Source: Linux Today

Community: "I'm leaving on an extended trip and decided that I wanted to leave my computer behind and bring only my USB drive and a LiveCD distro "


  popularitypopularitypopularitypopularitypopularitypopularitypopularity

Source: Linux Today

(parent . thesis): "This news got me thinking about the potential child abuse risks inherent in the One Laptop Per Child initiative and other '$100 laptop' projects "


  popularitypopularity

Source: Linux Today

InfoWorld: "The DoD SoftwareTech News June 2007 (subscription required) is devoted to use of Open Source Software in DoD "


  popularitypopularitypopularitypopularitypopularitypopularitypopularity

Source: Linux Today

LinuxWorld: "But this patent thing this is me saying 'What the hell are you doing ?'"


  popularitypopularitypopularitypopularitypopularitypopularity

Source: Linux Today

ZDNet Education: "Sorry, my students' steady stream of 'your mom' jokes brings out my inner 14-year old. However, this is the first in my series this summer of training for the masses "


  popularitypopularitypopularitypopularitypopularitypopularitypopularity

Source: Linux Today

PC Magazine/Yahoo!: "Microsoft has decided to take up the hobby of saber-rattling by threatening the open-source community itself rather than using proxies or stooges "


  popularitypopularitypopularitypopularitypopularitypopularitypopularity

Source: Linux Today

kahvipapu: "Even Linux games are a niche market, Linux gaming has got a pretty colorful history so far. So what's the state of Linux gaming ?"


  popularitypopularitypopularitypopularitypopularitypopularity

Source: Linux Today

iTWire: "There are exactly nine days left for Microsoft to get other Linux companies to sign up for patent cross-licensing deals "


  popularitypopularity

Source: Linux Today

ZDNet: "'Open Office needs to worry less about duplicating features of Office and more about 'selling' itself as a viable piece of software in its own right '"


  popularity

Source: Linux Today

dot.KDE: "KDE has a number of sub-projects that have blossomed into enormous projects of their own "


  popularitypopularity

Source: Linux Today

InfoWorld: "Hopefully, this is just one person's experience, but a would-be Ubuntu buyer was denied by Dell when he informed Dell that he wanted to buy his Ubuntu-on-Dell machine for (gasp!) a business


  popularitypopularitypopularitypopularitypopularitypopularitypopularity

Source: Linux Today

vnunet: "The big three of Oracle, IBM and Microsoft continue to dominate the relational database sector but market researchers are being forced to change the way they study the market by the rise of open-source and hosted products "


  popularitypopularity

Source: Linux Today

Slate/A Blog of Gentoo and Other Stuff: An article from Slate speculates that the recently announced Google Gears toolset may not bode well for Redmond. One Gentoo blogger wonders just how this would really fly.


  popularitypopularitypopularitypopularitypopularitypopularity

Source: Linux Today

LinuxWorld: "ThinkFree Inc. added offline support to its online application suite Tuesday and launched it as a US$7-a-month alternative to Microsoft Office "


  popularitypopularity

Source: Linux Today

CNET News: "The open-source Mono project will show off an early version of Microsoft's Silverlight browser plug-in running on Linux later this week "


  popularity

Source: Linux Today

ConsortiumInfo: "Open source summits seem to be all the rage these days, so I'm blogging from another one this week. In this case, it's the third somewhat similar event staged by the Massachusetts Technology Leadership Council "


  popularitypopularitypopularitypopularitypopularitypopularity

Source: Linux Today

Computer Business Review: "Specsavers has announced that it has overhauled most of its infrastructure software in a move to open source with Red Hat, Scalix, and UK services firm Sirius "


  popularitypopularitypopularitypopularitypopularitypopularitypopularity

Source: Linux Today

linux kernel monkey log: "I've been hearing from a lot of different companies and users about how the current 'enterprise' Linux distros manage their kernels and the current problems they are having with them "


  popularitypopularity

Source: Linux Today

Linux.com: "That's why, after two years of allowing proprietary plugins for the open source CMS, the group has decided to ask third-party developers for voluntary compliance with the terms of the GNU General Public License, under which Joomla! is licensed "


  popularitypopularity

Source: Linux Today

Heise Online: "German companies are world leaders in the use of Open Source software "


  popularitypopularitypopularitypopularitypopularitypopularitypopularity

Source: Linux Today

Tectonic: "The Ubuntu team yesterday released details of plans for its next release, Ubuntu Gutsy "


  popularity

Source: Linux Today

LinuxDevices: "Virtualizing microkernel vendor Open Kernel Labs (OK) has joined the partner ecosystems of ARM and MontaVista "


  popularitypopularitypopularitypopularitypopularitypopularitypopularity

Source: Linux Today

Linux.com: "WordNet is one of the best English language references available, but its command-line and rather primitive graphical interfaces don't really do it justice "


  popularitypopularitypopularitypopularitypopularitypopularitypopularity

Source: Linux Today

developerWorks: "This article demonstrates how to add new files to an existing Eclipse projects using a wizard "


  popularitypopularity

Source: Linux Today

SearchEnterpriseLinux: "In OpenOffice 2.0 Reports, it's easy to do the simple stuff, like just printing the contents of a table or query "



previous    News for nerds, stuff that matters    next


  popularitypopularitypopularitypopularitypopularitypopularitypopularity

Source: Slashdot: Linux

An anonymous reader writes "I had a surreal experience with Dell today. My boss asked me to order a new computer for our small, non-profit business. Wanting to support Dell in their decision to sell computers with Ubuntu installed, I decided to order one. First, I talked to a small business representative, who informed me that I could not order one of the Ubuntu-based computers through the small business department. I had to go through the "home and home office" department. I called the Home office department. I asked the representative if I could buy one of the ubuntu computers for my company. She said (and I quote), "these Dell computers are designed for personal use only, as long as you use it for personal use, you can purchase one." So I lied and said I would . Next, I tried to buy it on our business credit card. They would have none of that. She told me that I had to buy it through a personal card. Now, as a non-profit, our business does not pay sales tax (10% in Tennessee). Had I bought it with my own card, I would have had to pay tax (~$90), which my company would not have reimbursed me for. So ..no Dell today."Read more of this story at Slashdot.



previous    News, reviews and commentary on all aspects of Linux and open-source software, including application servers, communications and database servers.    next


  popularitypopularity

Source: eWEEK Linux

Opinion: When I first saw the list for the eWEEK slide show, Ten Reasons Not to Buy Open Source, I couldn't believe what I was reading. So here are my answers to these "reasons."


  popularity

Source: eWEEK Linux

The group is working out ways to better collaborate on improving Linux and the software, hardware and businesses that depend upon it.



previous    The O'Reilly Network ONLamp Articles and Weblogs    next


  popularitypopularity

Source: ONLamp.com

If you read up on the Model-View-Controller (MVC) design pattern, you might find yourself a bit confused. In fact, I found myself confused by it when I first started reading about it, because there are plenty of resources out there to describe it, but so many of them seem to have different flavors of MVC and different diagrams explaining how data flows that it’s no wonder that programmers are bewildered about it. Fully believing that I don’t want perfect to be the enemy of the good, I’ll show a few practical implementation details of one way of looking at MVC, primarily focused on the Web needs.

The primary thing you need to know about MVC is how logic can be distributed:


Model
Business logic goes here
View
Presentation logic goes here
Controller
Application logic goes here


Just like HTML is moving to a separation of structure (semantic XHTML) and presentation (CSS), so should your applications be geared to understanding the different problem domains and separating out their functionality. The details of this separation can vary widely based on technical needs and developer opinions, but it should happen. With MVC, we have one form of separation which is fairly clear. Your view roughly corresponds to what people see (but it might be an RSS feed that a client is reading). Your model is your data model and the business rules. Your controller only contains application logic and tends to act a bit like a mediator between the the model and the view (different implementations can vary widely on this).

The view is the simplest bit as far as the Web is concerned. You typically build HTML pages and the user can fill in forms or click on links and stuff happens. The HTML is what your end user usually sees and there should be little to know application or business logic there. In fact, that’s one of the reasons AJAX is so popular. When done properly, that logic isn’t duplicated in the view layer. When done improperly, it can become a maintenance nightmare. How many times have you written Javascript form validation only to have to rewrite in your back end code? More than once I’ve found that my front end and back end validation didn’t synch. AJAX is a great way of alleviating some of this pain.

Getting back to the presentation layer, imagine the following HTML template (written with Template Toolkit syntax. The rules of the template are that users can win “points” and choose prizes based on those points. Further, they should only see the items they have the points to purchase. However, if you’re an administrator of the site, you should see all prizes when you’re administering things.


[% FOREACH prize IN prize_category %]
[% IF user.points prize.points %]
[% display(prize).as_html %]
[% END %]
[% END %]


The above template seems nice, but you see that conditional in there? What happens when you want to reuse this template? The administrator won’t be able to see all prizes unless they have enough points! You could give administrators an arbitrarily large number of points, but that’s an ugly hack and not truly reflective of what you’re trying to do. It would be better to having something like this in your controller code (Perl psuedo-code):

my @prizes = $category-fetch_prizes($user);
$view-display( prize_category = \@prizes );

Assuming that the fetch_prizes() method understands the difference between regular users and administrators, your template then becomes reusable:


[% FOREACH prize IN prize_category %]
[% display(prize).as_html %]
[% END %]


Now why do we have as_html at the end of that? Well, what if you want to send data in plain text, as a GIF image, or in PDF format? Your display() function should know how to render your objects in various different ways so that you have a flexible system which can render things any way your end-user wants it. We used a similar system with one company where we resold data and customers could view the data as HTML, PDF, or Microsoft Excel spreadsheets. Because we kept our views very generic and only included presentation logic, we didn’t have to worry about needlessly duplicating a bunch of logic in our presentation layer.

A more direct problem, though, is something I see all the time in novice’s Perl code. You need to fix a bug in their code which adds products to a shopping cart and you look at the function which contains this:

sub add_product_to_order {
my ( $dbh, $p_id, $o_id ) = @_;
unless ( $o_id && $o_id =~ /^\d+$/ ) {
dienice("Bad order number $o_id");
}
my $o_sql = 'SELECT * FROM orders WHERE id = ?';
my $p_sql = 'SELECT * FROM products WHERE id = ?';

my $order = $dbh-selectrow_hashref($o_sql, {}, $o_id);
my $product = $dbh-selectrow_hashref($p_sql, {}, $p_id);

# snip

my $html =

}

This is an absolute nightmare to work with, but it’s all too common (particularly the hateful SELECT *, but that’s a rant for another day). When you’re working with Web code, you don’t want to see database handles or HTML. If you’ve done that, you’ve failed. Now let’s clean it up a little bit.

sub add_product_to_order {
my ( $self, $o_id, $p_id ) = @_;

my $order = Order-new($o_id) or $self-add_error(Order-error);
my $product = Product-new($p_id) or $self-add_error(Product-error);
$self-handle_errors; # doesn't return if errors

$order-add_to_basket($product);
$self-show_basket($order);
}

Now that code isn’t perfect (I can see several things I’d probably want to change in it), but it’s one heck of a lot better. You can see that it pretty much only contains application logic, not business rules, knowledge of the data store or anything other than application logic (think “control flow”). Further, because we’ve cleanly separated the model, view, and controller code, when we need to go in and clean this up, you can proceed easier knowing that you’re less likely to violate business rules or break the presentation layer.

Now you might wonder where that order came from? Here’s the beauty of it: you don’t care. If at first you store all orders in a database, you can use that code. Later, if you decide that you want to use memcached or some Web service to store the orders, you can just change your Order code and keep your interface the same. Imagine trying to do that with all of the responsibilities jumbled up as in the first example!

Another question which regularly arises is how to distinguish between business and application logic. Admittedly much of this is dependent on your needs, but a good rule of thumb is that universal logic, that is to say, logic that must always be triggered, should be pushed into the model. For example, if “anonymous” users should never see prizes but they can still get to the page which has the prize list (presumably because there are other things to see), then you don’t want your controller code to be determining this. Your code would be similar to what I showed above.

my @prizes = $category-fetch_prizes($user);
$view-display( prize_category = \@prizes );

However, if on some pages they can see the prizes, then your controller code should handle this:

my @prizes = $view-for_everyone ? $category-fetch_prizes($user) : ();
$view-display( prize_category = \@prizes );

You may have noticed that I didn’t really explain MVC itself. That’s because there are several flavors of it and I’m less interested in the particular implementation details as I am with properly keeping different parts of the system separated. Also, it’s OK to only have it only partially implemented. When you’re reworking a large system, you take small steps. Maybe you pull your HTML out into templates to start with. That’s OK. By slowly working towards a proper separation of concerns, you’ll build more maintainable systems that become a joy to work on.


  popularitypopularity

Source: ONLamp.com

On Thursday, June 14, 2007, the Python Atlanta Group met and had an eventful time. There were two presentations by Google and one by a company named Racemi.
The first presentation was an introduction to the Twisted network application framework by Cary Hull of Google. It was a very informative introduction. He used Twisted itself as the presentation engine for the talk. Nice touch. I’m hoping for Mr. Hull to present in the future either a more in-depth presentation on Twisted or an overview of Zope interfaces (hint hint, Cary :-). Or both.
The next presentation was by Luis Caamano of Racemi. I’ll only gloss over this presentation now because I plan to get more detailed with them soon. But their product is pretty amazing. Basically, you can move operating systems from machine to machine in a data center. Yes, it sort of sounds like what you can do with VmWare, but it really is very different. And it’s written in Python. Something over 200,000 lines of it (and something over 100,000 of test code) if memory serves me correctly.
The final presentation was on cross site scripting by Dan Peterson of Google. It was an interesting talk emphasizing the necessity of sanitizing user input. This was an interesting talk for a few reasons. First (and in increasing order of interestingness), he used the BaseHTTPServer and CGIServer from the Python standard library. Second, several of us are perpetually working on projects using Django or TurboGears, so topics of this sort are always interesting. (As a side-note, Mark Ramm was there and mentioned that Genshi and Kid automatically escape data that you pass into a template, so should be nearly non-susceptible to javascript-injection-type attacks.) Third, he pointed out projects which Google is working on such as Gears and the Google Web Toolkit. Again, these types of projects are always of interest as some of us are constantly working on things which could benefit from Google code goodness.
Interestingly, and as already mentioned, Mark Ramm showed up for the meeting. He mentioned some collaborative effort which was beginning with TurboGears and Pylons. I’m still waiting on details on this, but it sounds promising. I’ll post back here as I learn more.
The meeting was packed (not surprisingly given Google’s presence). Tons of new faces were there. I hope there was enough interesting material to bring some of those folks back. It’s always a good time to hang out with folks with similar interests.


  popularitypopularity

Source: ONLamp.com

Somehow I missed James Carr’s TDD Anti-Patterns late last year. I’ve perpetuated almost every one at least once. If you’re new to testing, browse the list, think about each entry, and watch for it in your own code.



Updated: Thu Jun 21 23:55:03 2007


OrderWeb Software CC
Contact Us