Domain: gnu.org
Stories and comments across the archive that link to gnu.org.
Stories · 596
-
The Semantics of Free Software vs. Open Source
An anonymous reader writes "As the end-of-year technology round-ups begin, LinuxWorld's Kevin Bedell notes that in his opinion no useful distinction is served any longer by preserving the two separate terms 'open source software' and 'free software'. One interesting sidelight: Bedell says that 'one of the leaders of the open source movement' wrote to him in an exchange they had on this topic: 'The distinction between 'open source' and 'free software' is not technical; it's the same code and licenses. Nor is it social; it's the same developers. It's strictly one of attitude - are we focused on moralism and changing peoples' thoughts (free software) or on results and changing peoples' behavior (open source)?'" -
OpenBSD Project Will Release OpenCVS
thequbemaster writes "The OpenBSD project, responsible for OpenSSH, OpenBGPD, and OpenNTPD, has created OpenCVS, a BSD licensed implementation of CVS client and server. From the site: 'It aims to be as compatible as possible with other CVS implementations, except when particular features reduce the overall security of the system. The OpenCVS project was started after discussions regarding the latest GNU CVS vulnerabilities that came out. Although CVS is widely used, its development has been mostly stagnant in the last years and many security issues have popped up, both in the implementation and in the mechanisms.' No releases are available yet. The README in the OpenCVS CVS repository states that the server is not ready yet, but looks like the client is usable." Update: 12/15 20:18 GMT by T : This project was mentioned briefly the other day, too. -
Warzone 2100 Source Liberated
jvm writes "The former game developer Pumpkin Studios has released the source for their 3D real-time strategy game Warzone 2100 under the GNU General Public License. (Direct link to the source archive.) Previously released just for Microsoft Windows and Sony PlayStation, this source release permits this 1999 game to be ported to other platforms, such at GNU/Linux and MacOS. You can join in the developer discussion at the RealTimeStrategies Warzone 2100 Redevelopment Project forum. Note that only the source has been released; an original copy of the game is required to obtain the other parts of the game (graphics, sounds, etc.)" -
Best Go Resources for a Beginner?
wrinkledshirt asks: "So, as an English teacher stranded in the middle of South Korea, I've learned that Go (or Baduk, as it's called here) is a really popular game with the locals. Unfortunately, it's really difficult to learn how to play it when most people who are good at it don't speak English very well. So, I've turned to the web. There are some okay teaching sites, but often the learning curve beyond simple rules explanation is pretty steep... 'This is a white stone. This is a black stone. They take turns. These are eyes. Ready? Okay, now observe how abandoning the joseki here leads to a gote which needlessly gives white sente...' (Me: 'WTF?!?'). What are the best Go resources for a beginner?" "I've been playing Go on yahoo, but the beginner rooms there don't have all that many beginners. Sensai's Library is pretty good, but laid out a little confusingly. The Go Teaching Ladder has a decent list of commented games, but it's hard to know which ones are instructive for beginners. I've also tried playing both GnuGo and Igowin (playing them against each other head to head seems to suggest that GnuGo has the better engine, although my version has a horrid scoring system), but in the end I'm worried that computers are the wrong way to learn this game. Books in English are hard to come by in my part of the country, but I'm considering ordering them or making the trip up to Seoul if there are titles worth buying." -
Green Party Candidate David Cobb Answers Your Questions
Last Thursday you got to Ask Questions of the Green Party's US Presidential nominee, David Cobb He answered 12 of the most highly rated comments. A thanks goes to Mr.Cobb for taking the time to explain some of his positions to us. Read on to see what he has to say.Switching (Score:5, Interesting) by MikeMack (788889)
If I was a Republican or Democrat, what would you say to me to make me switch to the Green Party?
The Green Party offers both Republicans and Democrats the true essence of what each of their parties should be. For Republicans, the Greens offer true conservatism, which means keeping the government out of your personal business, out of your bedroom and out of your library. A true conservative would never support the so-called "Patriot Act;" nor would a true patriot for that matter. A true political conservative would recognize that public resources, such as forests, parks and oceans, should be conserved for use and enjoyment by future generations.
For Democrats, Greens are the party which champions what Democrats used to: support for working people and people of color and protection of the environment.
Both Democrats and Republicans don't represent the people of this country, they represent the transnational corporations who line their pockets and make their election to public office possible.
How do you avoid corruption? (Score:5, Interesting) by kwiqsilver (585008)
It's commonly accepted that power corrupts politicians. The Greens are always speaking out against politicians who sell favors to their corporate buddies or other special interests. But the Green party also espouses a system where the government strictly regulates most industry. How do you propose to have such strong government controlled regulation, without falling victim to the corruption inherent in a bureaucratic system?
The bureaucratic system may well be corrupt but what we really need to address is the corruption in the White House and in Congress-that's who makes the laws and the decisions which support the transnational corporate empire. The halls of Congress are filled with lobbyists representing the international profiteers who play Congress like puppets on strings. Although, I suppose, instead of strings it's campaign contributions which make the puppets dance.
If we take the private money out of our public elections and away from our public officials, we'll go a long way in addressing corruption and ensuring that we truly have a government by the people. We also need to strengthen public meeting laws so Dick Cheney and Enron can never again meet in private to determine the energy needs of this country. We also have to stop the revolving door between industry, Congress and the White House. There have to be much tighter restrictions on public servants going over to private industry.
Here goes again (Score:5, Insightful) by MORTAR_COMBAT! (589963)
I'll ask the same questions I posed to the Libertarian candidate:
Would you approve of, and what would you think would be the results of, the following election reforms:
1. Abolition of electoral college, president is elected by simple popular vote.
The Electoral College is an historical, anti-democratic and racist anachronism which needs to be abolished. If you're wondering why it is racist, remember that when it was created, slaves were counted as three-fifths of a person to determine representation, yet they couldn't vote. Therefore, slave states had greater representation in the Electoral College-as if counting any human being as a portion of person wasn't insulting enough.
However, replacing the Electoral College with what you call a "simple popular vote" really doesn't go far enough. We need to replace it with Instant Runoff Voting to ensure that the winner of the popular vote wins with a majority of that vote. Instant Runoff Voting is a voting system, used to elect the mayor of London, the president of Ireland and many office-holders in Australia, which allows you to rank candidates in order of preference. If someone wins a majority of first choice votes, the election is over. If no one wins in the first round, the candidate with the fewest first choice votes is eliminated and a runoff is held instantly taking into account the second choice votes of people who voted for the eliminated candidates.
Instant Runoff Voting will be used in San Francisco this November and a number of other cities and counties have approved of using it or are considering doing so. Instant Runoff Voting, or IRV, solves the perceived "spoiler" problem because you can vote for all the candidates you like; you don't have to make a lesser-evil choice. I encourage people to learn more about IRV at Center for Voting and Democracy.
2. Federal mandate that electoral votes from a state be split proportional to the popular vote within that state. (e.g. if California splits 60-40 Kerry-Bush, then their electoral votes are split 60-40 as well). This helps move away from the very brittle "all or nothing" electoral system, where as few as 1 fraudulent or defrauded vote can change the outcome of the national election for president.
I believe we should move rapidly towards Instant Runoff Voting, as outlined above, rather than tinker with an anachronistic relic.
3. Constitutional amendment granting naturalised citizens the eligibility to run for president or vice president. This would allow for the 2008 ticket for the new political party, C.O.P. (Cast Of Predator) to field Arnold Schwartzeneggar and Jesse Venutra as their presidential ticket.
Democracy should be as inclusive as possible. While I don't necessarily find myself opposed to this proposed amendment, I believe there are much more profound and necessary reforms, such as Instant Runoff Voting and proportional representation, where we should focus our energy and attention.
Our country is made up of immigrants. Your place of birth should not disqualify someone from serving as president or vice president.
Lastly a question: is the democratic system as instituted in the United States hopelessly mired in a two-party stranglehold, leaving corporate interest in defacto charge of the discussion? Is legal election reform necessary, or even possible?
Election reform is absolutely necessary, it is possible and we are being successful in changing our system for the better. Instant Runoff Voting is part of the equation. So are open and unrestricted debates, free media for candidates on the public airwaves which we own, less burdensome access to the ballot, proportional representation and public financing of campaigns. A number of states, including Maine, Massachusetts and Arizona, have been successful in implementing campaign finance reform.
We also have to strike right at the heart of the corporate empire and rescind the human rights which have mistakenly been conferred on corporations.
Voting Rights for Noncitizens? (Score:5, Interesting)by anzha (138288)
Thank you for your time. Recently in San Francisco, Matt Gonzalez, a popular local Green Party politico, has been pushing for the ability for noncitizens to vote in some of the local elections. While there are other places that offer this long before SF, it seems as though this erodes the differences between having citizenship or not. Rather than expanding the franchise this way, why not work to streamline the process for getting citizenship and encourage people to seek it?
Can you expound and explain a bit on your stance on this?
Matt Gonzalez has championed the ability of non-citizens who have kids in school to be able to vote in School Board elections. This makes sense and we should support it.
I would like to see the process streamlined so that undocumented workers, who are here and are paying taxes and contributing to our society, can obtain citizenship more simply and easily. We have to remember that we are all immigrants or the children of immigrants, with, of course, the exception of the Native people of this continent.
Mainstream Perception (Score:5, Interesting) by Locky (608008)
The Green Party is best known for its progressive policies on the environment, however its other policies are often shrouded by this, most people not knowing where the Green Party stands on issues like abortion and same-sex marriage.
What do you think might be the best approach to educate the masses about the rest of Green Party polices?
Greens work both within and outside of the electoral system for genuine democracy, social and racial justice, a healthy environment and for peace and non-violence. We have to march both in the streets and into the ballot box. If we do one and not the other, we won't be successful. All great social movements have used this approach.
Greens believe in freedom and privacy. We support same-sex marriage and reproductive choice.
Copyright and Digital Law (Score:5, Interesting) by Nick Fury (624480)
Obviously we here at slashdot are a bit on the techie side. I know that I have personally watched my rights being taken away from me over the past few years. Mainly my right to fair use. Under current law it is illegal to watch CSS encoded DVDs under Linux or any other Open Source operating system. What are you and your party's feelings on loosening certain restrictions to make the act of fair use a right again.
Also, on the concept of intellectual property and copyright laws. What are your party's and your feelings on the current trend of extending the length of copyright terms? Do you have any plans to reverse the current trend or perhaps to set the lengths back to their original terms?
Nick, first let's look at what the Green Party's platform says about open source: copyrights:
"10. The Green Party supports protection of software (free or proprietary) by means of the copyright. We strongly oppose granting of software patents. Mathematical algorithms are discovered, not invented, by humans; therefore, they are not patentable. The overwhelming majority of software patents cover algorithms and should never have been awarded, or they cover message formats of some kind, which are essentially arbitrary. Format patents only exist to restrain competition, and the harm falls disproportionately on programmers who work independently or for the smallest employers."
Greens favor information flows that come from the grassroots and empower the grassroots. Excellent examples include free/open-source software, open document formats, and the Creative Commons Licenses. We recognize that creativity and productiveness do not exist in a vacuum. Rather, most innovations build on earlier innovations. Creators and producers should be entitled to seek financial compensation for their work - or not, as they choose - but to wall their work off from public access for unreasonable lengths of time is, well, unreasonable.
For most of the history of the US Patents and Copyrights Office, most patent applications were denied. Most "inventions" didn't meet the triple test of being novel, useful/valuable, and not obvious to "someone skilled in the art." Patents that were granted lasted 12 years which was considered to be a third of an invention's useful life. Today, the patent office rubber stamps just about anything. We don't need a new policy, we need the old policy. Let's give standing to all stakeholders to challenge and strike down mistaken or overly broad patents, or patents granted despite the existence of prior art. (Besides genetic patents being a particularly vile abuse of corporate power, genes are, by definition, prior art. We oppose the genetic modification of organisms, as well, but that's another topic.) There's also a place for an eminent domain process for striking down a patent when there is an overriding public interest, as in the case of absurdly overpriced life-saving drugs.
In copyrights, as in patents, we favor not a new policy, but a return to the original, which provided for protection for 20 years.
If we get the general principle right, we won't need a special policy for protecting proprietary digital artworks or people's right to make fair use copies of them. But we do need a prohibition on abusive license agreements. The case law striking down "shrink wrap licenses" should be legislated. A valid contract provides an equal exchange of value: It's not all prohibitions on one party while the other party has no obligations and retains all rights. It shouldn't be legal for Microsoft, for example, to license its OS for use on only one particular CPU. That is, you shouldn't have to buy a new copy of XP when you upgrade your motherboard. When you buy a movie on DVD you should be allowed to play it on any DVD player, and when you buy a copy of an OS you should be allowed to run it on all your computers. This should be a natural result of a more general prohibition on unfair contracts.
I am happy to say that our website is open source (Plone/Zope, running on BSD).
Three Contentious Technologies (Score:5, Interesting) by rumblin'rabbit (711865)
Here are three technologies which environmental groups have generally been opposed to, but which have undergone major advancements in recent years: * Nuclear energy. * High-temperature garbage incineration. * Genetically modified foods.
All of these technologies have drawbacks, but they also have many advantages over the alternatives. Nuclear energy does not produce greenhouse gases, incineration destroys toxic chemicals and does not require land fill, and GM foods can greatly reduce the amounts of pesticide, herbicide, fertilizer, or water needed to grow food.
What is the Green Parties' stance on these, and do you see them changing their stance in the near future?
Greens have moved beyond a lesser-evil approach to politics as well as to the issues you describe above. I cannot under any circumstances accept nuclear power and genetically modified foods as a healthy alternative. There are such simpler and more sensible ways to approach these issues. We could easily eliminate the need for nuclear power by conserving more energy. We could replace nuclear power-and coal and other dirty forms of producing power-with the abundance of solar energy which shines on our country. Wind turbines, like the one I visited in Nebraska recently, are also part of the solution.
Food was grown by humankind for an awfully long time and rather successfully before the advent of pesticides and herbicides. We don't need that poison on our foods, on our soil or in our water supplies. And we don't need Frankenfood either.
As to our shortage of landfill space, we need to increase recycling and require manufacturers to take material back if it is not completely recyclable or biodegradable.
Drug Reform (Score:5, Interesting) by L3on (610722)
What is your stance on the use of medical-marijana? What do you think can be done to change the way in which the war on drugs in America is being fought, either legalizing/decriminalizing and taxing or otherwise?
Furthermore, How will you deal with our budget deficit and reform the GOP's relentless tax cuts and the Democratic Party's exorbanent spending?
Marijuana has been declared by an Administrative Judge for the FDA as one of the safest therapeutic substances known. I fully support the right of physicians and patients to use what they deem best for treatment.
The "war on drugs" is racist and an insult to all Americans. This "war" has incarcerated people of color at a much higher rate than white people. It has resulted in senseless attacks on innocent people and on our Constitution. We have to treat drug addiction as a health problem, not as a crime.
The main contributing factor to our national deficit is the world's largest military budget. The Green Party supports closing overseas military bases and reducing the military budget by 50% over ten years.
Single Payer Healthcare (Score:4, Interesting) by Coryoth (254751)
You often point out that pretty much every developed western country except the US has some form of single payer healthcare, and I think it is a valid issue, worth dicussing. However, having lived in a few countries that operate such a system I have generally found the governments involved to be having difficulties sustaining the system.
"The dilemma amounts to this: as medical science continues to advance, and as we in general live longer and longer, the amount of things that can be done continues to expand, along with the costs involved with any new technologically advanced treatments. Because of this, the costs of providing complete healthcare continue to expand at a rate faster than we can pay for. With healthcare, if something is possible, people tend to demand that it be done, even if we do not have the resources to do it.
Complete provision of healthcare simply isn't a sustainable practice as the costs are not proportionally bound by population (and hence very roughly speaking, government income), but instead by the ever expanding limits of medical science.
How do you intend to deal with this dilemma? Do you only plan to provide single payer healthcare for core and emergency services only? Do you intend to allow a parallel private health system to provide the more expensive treatments?
The basic point of single payer is that it is cheaper to administer and also that the cost of pharmaceuticals are lower as a result of bulk purchase. It is true what you say, the costs of medical care will increase in all countries as a result of innovation. However, empirical evidence shows that they will increase far less in countries that employ single payer. The best example is that of Canada and the U.S. When Canada enacted single payer their health care costs were the same percent of GDP as the U.S. Now, some 30 years later, they spend 8.9% while we spend close to15% of GDP. They spend much less in Canada on health care while treatment outcomes are similar overall in both countries.
Besides, we could pay for lifelong health care for every citizen in this country, along with college tuition for everyone who wanted to attend universities, if we stopped waging war in Iraq and Afghanistan and cut 50% from the biggest and most bloated military budget in the history of our planet. We could also do a much better job of focusing on preventative measures and take special care of infants and pregnant women, thereby ensuring a healthier start to life and reducing costs later on.
We are not opposed to allowing a private system to offer services not covered by a public system, such as Canada does. However, it is our intention to offer a comprehensive health care system which includes outpatient, inpatient, medication, dental, mental health and long term care, as research shows that this is both the most efficient and effective means for delivering health care to our population.
Viable Third-parties (Score:5, Interesting) by thewiz (24994)
Mr. Cobb, What do you believe is necessary for your party or any other to become a viable third party in American elections? Even though George Washington warned against having a partisan political system in his farewell speech, America seems to have developed a two-party system that forces third-parties out of the political process.
Also, what do you think of the Democratic and Republican parties shift away from what's good for America toward what is good for their respective parties and the businesses / people that support them while leaving the majority of Americans out?.
The need for a viable third party-or a second one, given the similarities between the two old establishment parties-is obvious and dire. We need a viable political alternative because thousands of innocent civilians and hundreds of young American kids have been killed in Iraq and Afghanistan. We need a viable political alternative because we are the only industrialized nation which doesn't provide health care for its citizens. We need a viable political alternative because our country is addicted to fossil fuel and will literally kill to sustain this addiction. We need an alternative because both of the old parties support the expensive and failed "war on drugs." We need an alternative because they are more intent on building prisons than schools; because they conspired to pass the unconstitutional civil liberty-threatening "Patriot" Act and because we need to develop a solar-based economy and create family wage jobs.
We need a viable political alternative because we need to manufacture democracy here at home before we can export it.
We don't have a "two party system" so much as we have an electoral system which favors two center-right political parties. And those two parties have done everything in their power to maintain their power and eliminate, ridicule and harass the competition.
To establish viable political alternatives, we first have to create a genuine democracy. Let's remember that this country was founded by rich, white landowners for their benefit. Our founders did not create a democracy. "The people" did not-and still don't-elect the president or the judiciary. Only the House of Representatives was elected by the people when this country was founded and those people were not women or people of color or the poor.
Our democracy is evolving and we still have a long ways to go. We need to get private money out of public elections and public policy. We can't have Enron and Dick Cheney's friends writing our energy policies in secret. We need to open up the whole process including how we make decisions on who will represent us. We need to have presidential debates open to all candidates on enough ballots to win the presidency. We need to address our voter participation rates which are among the lowest of any democracy.
I'm glad to see that we are making inroads with Instant Runoff Voting which will be used this fall in San Francisco's city elections. Instant Runoff Voting is a voting method which eliminates the perceived "spoiler" problem and ensures that the winner of an election has the support of a majority of voters. Our last three presidential elections were won with less than a majority vote. Instant Runoff Voting solves this problem and allows you to vote your hopes instead of your fears.
Most democracies use proportional representation to elect their legislatures. Countries which use proportional representation have a much broader representation of political parties and also have greater representation by women and higher voter turnout.
Of course, first a party has to get on the ballot in the first place and here again, the U.S. is light years behind the rest of the world. The United States is the only country where someone has to comply with 51 different and separate requirements to run for national office.
We also have to address the corporate control of the media. It's gotten to the point where, literally, a handful of companies control everything most people see and hear on the radio, on television and in the movies. We, the people, need to reclaim our public airwaves and we need to support our local, grassroots broadcasters.
Green activists are working on all these issues and, with San Francisco as just one example, we are succeeding, even if success is often incremental and not as quick as we would like. These issues also provide an opportunity to work in coalition with other political parties, concerned citizens and "good government" organizations.
To address your other question, I'm not sure that the two old parties actually ever represented the people. As long as there have been powerful, monied interests in this country, they have had their servants in Washington, D.C.
The Green Party is beholden to no one except the people. That, above all else, is what makes us unique.
All politics is local (Score:5, Insightful) by Quixote (154172)
In the words of Tip O'Neill, "All politics is local".
What is this desire to aim directly for the Whitehouse? Why not pool resources and fight the local battles? By aiming for the presidency (and ignoring the local politics), you are setting yourselves up for a fall. We all know that in a 2-party system, rigged the way it is, your chances of winning the Whitehouse are somewhere between 0.00 and 0.000. Then why waste the resources on this race?
How many members of Congress do you have? How many locally elected officials does the Green Party have? How many judicial appointees do you have? See the pattern here?
Maybe this isn't a question as much as a rant, but if you feel like, please answer why you are wasting the time and effort on a run for the Whitehouse, when the same resources, applied at local levels, would yield immensely more benefit.
I'm glad you asked this question because many people are not aware of the fact that the Greens have elected hundreds of local officials all across this country, including Green judges. We have elected city and county councilors, school board members, soil and water conservation board members, mayors and members of state legislatures. And that's just in this country. The Green Party is an international movement and around the world we have elected members to over two dozen national legislatures and parliaments. We haven't yet elected a member of congress in this country but we will. We are getting bigger, stronger and better organized in each election cycle. We are the fastest growing political party in America.
One of the reasons why we are the fastest growing party in America is because we participate in presidential elections. Like it or not, much of the nation-indeed the world-focuses on our presidential election. One of the main reasons I'm running is to continue to build the Green Party; to register more Green voters and especially to support local candidates. Running a national and a multitude of local races are not mutually exclusive endeavors. They are actually symbiotic and each enforces and supports the other.
Obvious answer (Score:5, Funny) by RickyRay (73033)
Obviously with the current unpopularity of Bush and Kerry the final vote is down to either you or Ralph Nader. What decisive advantages do you feel you have over Nader that make you more likely to win the presidency? ;-)
Thank you for the vote of confidence, but I am a realist and realize that until there are some significant changes in this country-especially how we conduct presidential elections, including campaign finance reform, Instant Runoff Voting and free use of the public airwaves, the chances of a Green winning the presidency are somewhat remote. I do believe, however, that we will be successful in time.
In this election, the Cobb-LaMarche campaign is the only campaign which supports a genuine, progressive agenda for change and which will continue building a movement beyond Election Day. Greens are in this for the long haul. What we are trying to accomplish is greater than any one candidate or any single election. People who want to invest in a long-term movement for peace, for social and racial justice, for grassroots democracy and for a sustainable economy and environment should vote Green.
We are the party of peace, we are the party of hope and we are the party of America's future.
-
Mono: A Developer's Handbook
vertigo writes "I am reasonably proficient in C and C++ as well as the more common scripting languages, but i always felt the lack of a sweet spot between the hard and fast low-level programming languages and the loosely typed scripting languages. Lately, my interest in the Mono project has been growing. The C# language appears to offer just that sweet spot between power and productivity I've been looking for, and its class libraries like Gtk# seem to provide the programmer with a very clean and intuitive API." Read on for vertigo's review of Mono: A Developer's Handbook from O'Reilly. Mono: A Developer's Handbook author Edd Dumbill and Niel M. Bornstein pages 278 publisher O'Reilly Media, Inc. rating 8 reviewer vertigo ISBN 0596007922 summary An introduction to programming with MonoWhen learning a new language such as C#, or working with a new development environment such as Mono, it usually takes some time before you get up to speed in developing programs. Wading through the reference documentation and reading other people's source code often provides much-needed information on how to do certain things. Both, however, are very time consuming and tedious.
Enter Mono: A Developer's Notebook. This book provides a series of task-driven chapters which are thin on theory, but rich on practical content and example code. The featured code snippets are, in contrast to ones in books that teach theory and concepts, not solely designed to illustrate a specific theoretical aspect of programming. Each one is designed to perform a useful task that is essential in day-to-day application programming. What sets this book apart from the multitude of .NET books already available on the market? In order to answer this question it is neccesary to provide a short introduction on Mono.
Mono is essentially an open source cross-platform implementation of Microsoft's .NET development framework and implements the API's which are standardized by ECMA. It is, however, not an exact clone. Besides providing a (partially implemented) stack that provides compatibility with Microsoft's .NET API's, Mono adds a whole new API-stack of its own, consisting of open source technologies such as the Gtk+ toolkit and the Gecko HTML rendering engine. This makes it possible to develop cross-platform applications based on open source technology while (mostly) compiling from a single code-base. In contrast to most .NET books available on the market, which focus primarily on Microsoft's API's in the context of Visual Studio.NET, this book concentrates on the basic ECMA API's and Mono's own open source stack. A complete coverage of .NET and the Mono architecture is outside of this review's scope, so for more information you are advised to check the Mono Project's website.
Before we dive deeper into the content of the book, a short introduction on the Developer's Notebook series by O'Reilly may be useful. The books in this series are styled to resemble the kind of notebooks college students carry around during their classes in which to take notes or, more commonly, draw caricatures of their teachers. The 'notebook' theme persists throughout the look-and-feel of the book. The 278-page thick paperback has a glossy blue cover, complete with faux post-it note and coffee-stains. Inside, the pages are not clean white but lined like the pages found in math notebooks. In the margin, useful comments are scribbled in a font that resembles handwriting. At first I suspected that the 'busy' look would distract from the content, but in practice this was no problem, thanks to the thick black typewriter font in which the bulk of the text is printed.
The chapters in this book are referred to as labs. Each of them focuses on a specific set of tasks and/or features and is divided into several paragraphs. Most paragraphs consist of a number of standard sections following a rigid formula that help you understand a certain aspect of working with Mono. The most common sections are:
- How do I do that?: Often using a liberal amount of practical code, this section shows how to accomplish the task at hand, for example working with files.
- How it works: In this section, the code and concepts involved in the previous section are explained more in depth, step by step.
- What about...: Offers a short focus on more advanced topics or pitfalls.
- Where to learn more: If you are craving more information after reading the previous sections, you are often offered a helping hand on where to find more information, providing url's to relevant documentation such as MSDN and other websites.
The first chapter, Getting Mono Running, describes how to get Mono up and running on Linux, Windows or Mac OS X, and how to compile from source on other platforms. The installation instructions for Windows only describe how to install Mono and Gtk#. Integration of Gtk# only in an existing Visual Studio.Net installation falls outside of the scope of the book, but a recent blog entry offers some hints on how to accomplish this. Besides installation, the first chapter offers a short description of the individual tools that make up the mono development. After installation, you will want some kind of editor or IDE to work with. Both the MonoDevelop IDE and several other ways of integrating Mono into your existing environment as a Java or Windows developer are covered. Finally, the community is an important aspect of every open source project. Ways of interacting with the community as well as a guide on how to submit bugs and links to some working Mono/C# applications are part of this chapter.
The C# introduction in the second chapter, Getting Started with C#, is tailored towards people who have at least some proficiency in using an object-oriented language such as C++ or Java. Some differences between C#, Java and C++ are discussed, as well as the differences between value- and reference types, the basics of error handling, working with assemblies and more. Concepts such as classes, methods, inheritance and namespaces are assumed to be known territory. If you have no previous programming experience, Mono: A Developer's Notebook is only useful in combination with a book that teaches programming with C# such as The C# Programming Language by Anders Hejlsberg.
An important part of any modern language is its class libraries. The third chapter, Core .NET, provides an introduction to the standard Framework Library Classes, which describes essential everyday tasks that are part of every program, such as working with files, strings, searching for text patterns and handling collections of data. Besides those basic functions, the chapter also dives deeper into the internals of a compiled assembly, the handling of processes and easy multitasking using threads. Finally, the last paragraph explains how to use a .NET version of the JUnit Java Unit testing framework, Nunit, to test your code.
Developing Gtk-applications with Mono and C# is remarkably easy. Chapter 4, Gtk#, describes the basics of writing Gtk# applications. First, it's neccesary to remark that Gtk# might be a bit of a misnomer. Besides the raw Gtk+ toolkit functionality, Gtk# also includes most of the Gnome libraries like gconf, the gnome canvas, libglade and more. Chapter 4 describes functionality available in the Gtk namespace, the basic Gtk+ toolkit. Gtk+ is a constraints-based toolkit, which means that widgets are not positioned using absolute pixel coordinates but rather on basis of their logical relation to each other. This can be a bit confusing for novices, but this chapter provides a good introduction to the basic principles of writing layouts using Gtk#. The authors provide descriptions of essential operations that almost every application needs, such as creating menus and drawing pixmaps (or more advanced things like using the treeview widget and drag-and-drop), assisted by easy-to-read code snippets.
While chapter 4 introduces basic Gtk# functionality, chapter 5, Advanced Gtk#, delves deeper into more advanced features of the Gtk# library which also include functionality outside of the basic Gtk-namespace, such as the Gnome libraries. Working with Gnome button toolbars, the Glade user interface designer, storing your application settings in Gconf, setting up some preferences through the use of a wizard/druid, asynchronous operations and threading to increase responsiveness of your application while performing background tasks, rendering HTML in your application using the Gecko rendering engine and internationalisation and translation of applications are all described in this chapter.
The use of XML is tightly integrated throughout the Mono framework. It is, for example, the underlying format of the messages that web services use to communicate using the SOAP and XML-RPC protocols. The 6th chapter, Processing XML, describes the XML functionality available in Mono. It starts off by simple operations, reading and writing to an XML-file using relevant examples such as RSS and Dashboard clue-packets. It then proceeds to describe how to modify XML in memory, how to navigate and transform XML using Xpath and XSLT, how to constrain XML in several ways and how to serialize and deserialize objects into and from their XML representation. As in previous chapters, the information density is very high so it might take several reads to grok everything explained. The code examples and accompanying text however are very clear and concise.
The 7th chapter called Networking, Remoting, and Web Services describes the networking functionality available in Mono. The chapter starts off with ASP.NET. Mono's stand-alone XSP webserver and Apache integration with mod_mono are discussed, as well as the basics of writing a web application using ASP.NET's code-behind functionality which enables web applications to completely seperate presentation from the underlying code. Communication using plain tcp/ip, remoting using binary serialized objects and invoking remote procedures using XML-RPC as an alternative to SOAP are also described in this chapter. You might want to encrypt the data you send over the network, so a basic description of the Mono cryptographic API is provided. Finally, a short introduction to database handling using ADO.NET concludes chapter 7.
The 8th and last chapter titled Cutting Edge Mono starts off with an introduction on how to use the GNU Automake, Autoconf and the pkg-config tools to create an easy to build source package of your project. It then proceeds to describe various pitfalls and considerations in case you want to write cross-platform applications using Mono, such as filesystem layout, configuration storage and the calling of native code using p/invoke. A particularly cool project is IKVM, which translates Java bytecode into the Common Intermediate Language bytecode Mono uses. This enables Mono to run Java applications and allows Java and Mono code to inter-operate. A short introduction on the use of IKVM is provided, as well as some code examples on how to call Mono assemblies from Java and use the Java class libraries from within Mono applications. The chapter ends with some other cutting-edge functionality, like how to run a development version of Mono, a preview of the Generics (templates in c++) implementation available as featured in C# 2.0 and how to write Mono programs in Basic.
What is missing? The book doesn't contain a reference section on any of the described API's. If you need detailed information on the C# language specification or an API reference you will need to consult external resources such as the documentation provided with Mono, MSDN, or a separate book covering the topic to make optimal use of the information contained in this book. Fortunately, the book kindly provides pointers on where to find those. The information-density is much higher than you would expect from a book this size. This means the information contained in it is terse. Many topics are treated in a only a couple of pages and the book doesn't take time to explain a lot of programming concepts. The information gets you 'on the road' quickly however, which is exactly what this book is supposed to do.
The strength of this book is that it fills the gap between the earlier-mentioned reference documentation and the need to go out and try to read sourcecode to find out how a particular thing is done. The writing style is clear, concise and neutral. Some topics are clarified by the use of screenshots, which is especially useful in the chapters dealing with Gtk# widgets. All in all, if you are a developer with previous experience in object-oriented programming, Mono: A Developer's Notebook will provide you with an excellent introduction into many of the aspects of working with Mono, its associated libraries and programs.
More information and a sample chapter can be found at the book's homepage.
You can purchase Mono: A Developer's Handbook from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Mono: A Developer's Handbook
vertigo writes "I am reasonably proficient in C and C++ as well as the more common scripting languages, but i always felt the lack of a sweet spot between the hard and fast low-level programming languages and the loosely typed scripting languages. Lately, my interest in the Mono project has been growing. The C# language appears to offer just that sweet spot between power and productivity I've been looking for, and its class libraries like Gtk# seem to provide the programmer with a very clean and intuitive API." Read on for vertigo's review of Mono: A Developer's Handbook from O'Reilly. Mono: A Developer's Handbook author Edd Dumbill and Niel M. Bornstein pages 278 publisher O'Reilly Media, Inc. rating 8 reviewer vertigo ISBN 0596007922 summary An introduction to programming with MonoWhen learning a new language such as C#, or working with a new development environment such as Mono, it usually takes some time before you get up to speed in developing programs. Wading through the reference documentation and reading other people's source code often provides much-needed information on how to do certain things. Both, however, are very time consuming and tedious.
Enter Mono: A Developer's Notebook. This book provides a series of task-driven chapters which are thin on theory, but rich on practical content and example code. The featured code snippets are, in contrast to ones in books that teach theory and concepts, not solely designed to illustrate a specific theoretical aspect of programming. Each one is designed to perform a useful task that is essential in day-to-day application programming. What sets this book apart from the multitude of .NET books already available on the market? In order to answer this question it is neccesary to provide a short introduction on Mono.
Mono is essentially an open source cross-platform implementation of Microsoft's .NET development framework and implements the API's which are standardized by ECMA. It is, however, not an exact clone. Besides providing a (partially implemented) stack that provides compatibility with Microsoft's .NET API's, Mono adds a whole new API-stack of its own, consisting of open source technologies such as the Gtk+ toolkit and the Gecko HTML rendering engine. This makes it possible to develop cross-platform applications based on open source technology while (mostly) compiling from a single code-base. In contrast to most .NET books available on the market, which focus primarily on Microsoft's API's in the context of Visual Studio.NET, this book concentrates on the basic ECMA API's and Mono's own open source stack. A complete coverage of .NET and the Mono architecture is outside of this review's scope, so for more information you are advised to check the Mono Project's website.
Before we dive deeper into the content of the book, a short introduction on the Developer's Notebook series by O'Reilly may be useful. The books in this series are styled to resemble the kind of notebooks college students carry around during their classes in which to take notes or, more commonly, draw caricatures of their teachers. The 'notebook' theme persists throughout the look-and-feel of the book. The 278-page thick paperback has a glossy blue cover, complete with faux post-it note and coffee-stains. Inside, the pages are not clean white but lined like the pages found in math notebooks. In the margin, useful comments are scribbled in a font that resembles handwriting. At first I suspected that the 'busy' look would distract from the content, but in practice this was no problem, thanks to the thick black typewriter font in which the bulk of the text is printed.
The chapters in this book are referred to as labs. Each of them focuses on a specific set of tasks and/or features and is divided into several paragraphs. Most paragraphs consist of a number of standard sections following a rigid formula that help you understand a certain aspect of working with Mono. The most common sections are:
- How do I do that?: Often using a liberal amount of practical code, this section shows how to accomplish the task at hand, for example working with files.
- How it works: In this section, the code and concepts involved in the previous section are explained more in depth, step by step.
- What about...: Offers a short focus on more advanced topics or pitfalls.
- Where to learn more: If you are craving more information after reading the previous sections, you are often offered a helping hand on where to find more information, providing url's to relevant documentation such as MSDN and other websites.
The first chapter, Getting Mono Running, describes how to get Mono up and running on Linux, Windows or Mac OS X, and how to compile from source on other platforms. The installation instructions for Windows only describe how to install Mono and Gtk#. Integration of Gtk# only in an existing Visual Studio.Net installation falls outside of the scope of the book, but a recent blog entry offers some hints on how to accomplish this. Besides installation, the first chapter offers a short description of the individual tools that make up the mono development. After installation, you will want some kind of editor or IDE to work with. Both the MonoDevelop IDE and several other ways of integrating Mono into your existing environment as a Java or Windows developer are covered. Finally, the community is an important aspect of every open source project. Ways of interacting with the community as well as a guide on how to submit bugs and links to some working Mono/C# applications are part of this chapter.
The C# introduction in the second chapter, Getting Started with C#, is tailored towards people who have at least some proficiency in using an object-oriented language such as C++ or Java. Some differences between C#, Java and C++ are discussed, as well as the differences between value- and reference types, the basics of error handling, working with assemblies and more. Concepts such as classes, methods, inheritance and namespaces are assumed to be known territory. If you have no previous programming experience, Mono: A Developer's Notebook is only useful in combination with a book that teaches programming with C# such as The C# Programming Language by Anders Hejlsberg.
An important part of any modern language is its class libraries. The third chapter, Core .NET, provides an introduction to the standard Framework Library Classes, which describes essential everyday tasks that are part of every program, such as working with files, strings, searching for text patterns and handling collections of data. Besides those basic functions, the chapter also dives deeper into the internals of a compiled assembly, the handling of processes and easy multitasking using threads. Finally, the last paragraph explains how to use a .NET version of the JUnit Java Unit testing framework, Nunit, to test your code.
Developing Gtk-applications with Mono and C# is remarkably easy. Chapter 4, Gtk#, describes the basics of writing Gtk# applications. First, it's neccesary to remark that Gtk# might be a bit of a misnomer. Besides the raw Gtk+ toolkit functionality, Gtk# also includes most of the Gnome libraries like gconf, the gnome canvas, libglade and more. Chapter 4 describes functionality available in the Gtk namespace, the basic Gtk+ toolkit. Gtk+ is a constraints-based toolkit, which means that widgets are not positioned using absolute pixel coordinates but rather on basis of their logical relation to each other. This can be a bit confusing for novices, but this chapter provides a good introduction to the basic principles of writing layouts using Gtk#. The authors provide descriptions of essential operations that almost every application needs, such as creating menus and drawing pixmaps (or more advanced things like using the treeview widget and drag-and-drop), assisted by easy-to-read code snippets.
While chapter 4 introduces basic Gtk# functionality, chapter 5, Advanced Gtk#, delves deeper into more advanced features of the Gtk# library which also include functionality outside of the basic Gtk-namespace, such as the Gnome libraries. Working with Gnome button toolbars, the Glade user interface designer, storing your application settings in Gconf, setting up some preferences through the use of a wizard/druid, asynchronous operations and threading to increase responsiveness of your application while performing background tasks, rendering HTML in your application using the Gecko rendering engine and internationalisation and translation of applications are all described in this chapter.
The use of XML is tightly integrated throughout the Mono framework. It is, for example, the underlying format of the messages that web services use to communicate using the SOAP and XML-RPC protocols. The 6th chapter, Processing XML, describes the XML functionality available in Mono. It starts off by simple operations, reading and writing to an XML-file using relevant examples such as RSS and Dashboard clue-packets. It then proceeds to describe how to modify XML in memory, how to navigate and transform XML using Xpath and XSLT, how to constrain XML in several ways and how to serialize and deserialize objects into and from their XML representation. As in previous chapters, the information density is very high so it might take several reads to grok everything explained. The code examples and accompanying text however are very clear and concise.
The 7th chapter called Networking, Remoting, and Web Services describes the networking functionality available in Mono. The chapter starts off with ASP.NET. Mono's stand-alone XSP webserver and Apache integration with mod_mono are discussed, as well as the basics of writing a web application using ASP.NET's code-behind functionality which enables web applications to completely seperate presentation from the underlying code. Communication using plain tcp/ip, remoting using binary serialized objects and invoking remote procedures using XML-RPC as an alternative to SOAP are also described in this chapter. You might want to encrypt the data you send over the network, so a basic description of the Mono cryptographic API is provided. Finally, a short introduction to database handling using ADO.NET concludes chapter 7.
The 8th and last chapter titled Cutting Edge Mono starts off with an introduction on how to use the GNU Automake, Autoconf and the pkg-config tools to create an easy to build source package of your project. It then proceeds to describe various pitfalls and considerations in case you want to write cross-platform applications using Mono, such as filesystem layout, configuration storage and the calling of native code using p/invoke. A particularly cool project is IKVM, which translates Java bytecode into the Common Intermediate Language bytecode Mono uses. This enables Mono to run Java applications and allows Java and Mono code to inter-operate. A short introduction on the use of IKVM is provided, as well as some code examples on how to call Mono assemblies from Java and use the Java class libraries from within Mono applications. The chapter ends with some other cutting-edge functionality, like how to run a development version of Mono, a preview of the Generics (templates in c++) implementation available as featured in C# 2.0 and how to write Mono programs in Basic.
What is missing? The book doesn't contain a reference section on any of the described API's. If you need detailed information on the C# language specification or an API reference you will need to consult external resources such as the documentation provided with Mono, MSDN, or a separate book covering the topic to make optimal use of the information contained in this book. Fortunately, the book kindly provides pointers on where to find those. The information-density is much higher than you would expect from a book this size. This means the information contained in it is terse. Many topics are treated in a only a couple of pages and the book doesn't take time to explain a lot of programming concepts. The information gets you 'on the road' quickly however, which is exactly what this book is supposed to do.
The strength of this book is that it fills the gap between the earlier-mentioned reference documentation and the need to go out and try to read sourcecode to find out how a particular thing is done. The writing style is clear, concise and neutral. Some topics are clarified by the use of screenshots, which is especially useful in the chapters dealing with Gtk# widgets. All in all, if you are a developer with previous experience in object-oriented programming, Mono: A Developer's Notebook will provide you with an excellent introduction into many of the aspects of working with Mono, its associated libraries and programs.
More information and a sample chapter can be found at the book's homepage.
You can purchase Mono: A Developer's Handbook from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Mono: A Developer's Handbook
vertigo writes "I am reasonably proficient in C and C++ as well as the more common scripting languages, but i always felt the lack of a sweet spot between the hard and fast low-level programming languages and the loosely typed scripting languages. Lately, my interest in the Mono project has been growing. The C# language appears to offer just that sweet spot between power and productivity I've been looking for, and its class libraries like Gtk# seem to provide the programmer with a very clean and intuitive API." Read on for vertigo's review of Mono: A Developer's Handbook from O'Reilly. Mono: A Developer's Handbook author Edd Dumbill and Niel M. Bornstein pages 278 publisher O'Reilly Media, Inc. rating 8 reviewer vertigo ISBN 0596007922 summary An introduction to programming with MonoWhen learning a new language such as C#, or working with a new development environment such as Mono, it usually takes some time before you get up to speed in developing programs. Wading through the reference documentation and reading other people's source code often provides much-needed information on how to do certain things. Both, however, are very time consuming and tedious.
Enter Mono: A Developer's Notebook. This book provides a series of task-driven chapters which are thin on theory, but rich on practical content and example code. The featured code snippets are, in contrast to ones in books that teach theory and concepts, not solely designed to illustrate a specific theoretical aspect of programming. Each one is designed to perform a useful task that is essential in day-to-day application programming. What sets this book apart from the multitude of .NET books already available on the market? In order to answer this question it is neccesary to provide a short introduction on Mono.
Mono is essentially an open source cross-platform implementation of Microsoft's .NET development framework and implements the API's which are standardized by ECMA. It is, however, not an exact clone. Besides providing a (partially implemented) stack that provides compatibility with Microsoft's .NET API's, Mono adds a whole new API-stack of its own, consisting of open source technologies such as the Gtk+ toolkit and the Gecko HTML rendering engine. This makes it possible to develop cross-platform applications based on open source technology while (mostly) compiling from a single code-base. In contrast to most .NET books available on the market, which focus primarily on Microsoft's API's in the context of Visual Studio.NET, this book concentrates on the basic ECMA API's and Mono's own open source stack. A complete coverage of .NET and the Mono architecture is outside of this review's scope, so for more information you are advised to check the Mono Project's website.
Before we dive deeper into the content of the book, a short introduction on the Developer's Notebook series by O'Reilly may be useful. The books in this series are styled to resemble the kind of notebooks college students carry around during their classes in which to take notes or, more commonly, draw caricatures of their teachers. The 'notebook' theme persists throughout the look-and-feel of the book. The 278-page thick paperback has a glossy blue cover, complete with faux post-it note and coffee-stains. Inside, the pages are not clean white but lined like the pages found in math notebooks. In the margin, useful comments are scribbled in a font that resembles handwriting. At first I suspected that the 'busy' look would distract from the content, but in practice this was no problem, thanks to the thick black typewriter font in which the bulk of the text is printed.
The chapters in this book are referred to as labs. Each of them focuses on a specific set of tasks and/or features and is divided into several paragraphs. Most paragraphs consist of a number of standard sections following a rigid formula that help you understand a certain aspect of working with Mono. The most common sections are:
- How do I do that?: Often using a liberal amount of practical code, this section shows how to accomplish the task at hand, for example working with files.
- How it works: In this section, the code and concepts involved in the previous section are explained more in depth, step by step.
- What about...: Offers a short focus on more advanced topics or pitfalls.
- Where to learn more: If you are craving more information after reading the previous sections, you are often offered a helping hand on where to find more information, providing url's to relevant documentation such as MSDN and other websites.
The first chapter, Getting Mono Running, describes how to get Mono up and running on Linux, Windows or Mac OS X, and how to compile from source on other platforms. The installation instructions for Windows only describe how to install Mono and Gtk#. Integration of Gtk# only in an existing Visual Studio.Net installation falls outside of the scope of the book, but a recent blog entry offers some hints on how to accomplish this. Besides installation, the first chapter offers a short description of the individual tools that make up the mono development. After installation, you will want some kind of editor or IDE to work with. Both the MonoDevelop IDE and several other ways of integrating Mono into your existing environment as a Java or Windows developer are covered. Finally, the community is an important aspect of every open source project. Ways of interacting with the community as well as a guide on how to submit bugs and links to some working Mono/C# applications are part of this chapter.
The C# introduction in the second chapter, Getting Started with C#, is tailored towards people who have at least some proficiency in using an object-oriented language such as C++ or Java. Some differences between C#, Java and C++ are discussed, as well as the differences between value- and reference types, the basics of error handling, working with assemblies and more. Concepts such as classes, methods, inheritance and namespaces are assumed to be known territory. If you have no previous programming experience, Mono: A Developer's Notebook is only useful in combination with a book that teaches programming with C# such as The C# Programming Language by Anders Hejlsberg.
An important part of any modern language is its class libraries. The third chapter, Core .NET, provides an introduction to the standard Framework Library Classes, which describes essential everyday tasks that are part of every program, such as working with files, strings, searching for text patterns and handling collections of data. Besides those basic functions, the chapter also dives deeper into the internals of a compiled assembly, the handling of processes and easy multitasking using threads. Finally, the last paragraph explains how to use a .NET version of the JUnit Java Unit testing framework, Nunit, to test your code.
Developing Gtk-applications with Mono and C# is remarkably easy. Chapter 4, Gtk#, describes the basics of writing Gtk# applications. First, it's neccesary to remark that Gtk# might be a bit of a misnomer. Besides the raw Gtk+ toolkit functionality, Gtk# also includes most of the Gnome libraries like gconf, the gnome canvas, libglade and more. Chapter 4 describes functionality available in the Gtk namespace, the basic Gtk+ toolkit. Gtk+ is a constraints-based toolkit, which means that widgets are not positioned using absolute pixel coordinates but rather on basis of their logical relation to each other. This can be a bit confusing for novices, but this chapter provides a good introduction to the basic principles of writing layouts using Gtk#. The authors provide descriptions of essential operations that almost every application needs, such as creating menus and drawing pixmaps (or more advanced things like using the treeview widget and drag-and-drop), assisted by easy-to-read code snippets.
While chapter 4 introduces basic Gtk# functionality, chapter 5, Advanced Gtk#, delves deeper into more advanced features of the Gtk# library which also include functionality outside of the basic Gtk-namespace, such as the Gnome libraries. Working with Gnome button toolbars, the Glade user interface designer, storing your application settings in Gconf, setting up some preferences through the use of a wizard/druid, asynchronous operations and threading to increase responsiveness of your application while performing background tasks, rendering HTML in your application using the Gecko rendering engine and internationalisation and translation of applications are all described in this chapter.
The use of XML is tightly integrated throughout the Mono framework. It is, for example, the underlying format of the messages that web services use to communicate using the SOAP and XML-RPC protocols. The 6th chapter, Processing XML, describes the XML functionality available in Mono. It starts off by simple operations, reading and writing to an XML-file using relevant examples such as RSS and Dashboard clue-packets. It then proceeds to describe how to modify XML in memory, how to navigate and transform XML using Xpath and XSLT, how to constrain XML in several ways and how to serialize and deserialize objects into and from their XML representation. As in previous chapters, the information density is very high so it might take several reads to grok everything explained. The code examples and accompanying text however are very clear and concise.
The 7th chapter called Networking, Remoting, and Web Services describes the networking functionality available in Mono. The chapter starts off with ASP.NET. Mono's stand-alone XSP webserver and Apache integration with mod_mono are discussed, as well as the basics of writing a web application using ASP.NET's code-behind functionality which enables web applications to completely seperate presentation from the underlying code. Communication using plain tcp/ip, remoting using binary serialized objects and invoking remote procedures using XML-RPC as an alternative to SOAP are also described in this chapter. You might want to encrypt the data you send over the network, so a basic description of the Mono cryptographic API is provided. Finally, a short introduction to database handling using ADO.NET concludes chapter 7.
The 8th and last chapter titled Cutting Edge Mono starts off with an introduction on how to use the GNU Automake, Autoconf and the pkg-config tools to create an easy to build source package of your project. It then proceeds to describe various pitfalls and considerations in case you want to write cross-platform applications using Mono, such as filesystem layout, configuration storage and the calling of native code using p/invoke. A particularly cool project is IKVM, which translates Java bytecode into the Common Intermediate Language bytecode Mono uses. This enables Mono to run Java applications and allows Java and Mono code to inter-operate. A short introduction on the use of IKVM is provided, as well as some code examples on how to call Mono assemblies from Java and use the Java class libraries from within Mono applications. The chapter ends with some other cutting-edge functionality, like how to run a development version of Mono, a preview of the Generics (templates in c++) implementation available as featured in C# 2.0 and how to write Mono programs in Basic.
What is missing? The book doesn't contain a reference section on any of the described API's. If you need detailed information on the C# language specification or an API reference you will need to consult external resources such as the documentation provided with Mono, MSDN, or a separate book covering the topic to make optimal use of the information contained in this book. Fortunately, the book kindly provides pointers on where to find those. The information-density is much higher than you would expect from a book this size. This means the information contained in it is terse. Many topics are treated in a only a couple of pages and the book doesn't take time to explain a lot of programming concepts. The information gets you 'on the road' quickly however, which is exactly what this book is supposed to do.
The strength of this book is that it fills the gap between the earlier-mentioned reference documentation and the need to go out and try to read sourcecode to find out how a particular thing is done. The writing style is clear, concise and neutral. Some topics are clarified by the use of screenshots, which is especially useful in the chapters dealing with Gtk# widgets. All in all, if you are a developer with previous experience in object-oriented programming, Mono: A Developer's Notebook will provide you with an excellent introduction into many of the aspects of working with Mono, its associated libraries and programs.
More information and a sample chapter can be found at the book's homepage.
You can purchase Mono: A Developer's Handbook from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Dive Into Python
AccordionGuy writes "If you've ever spent an afternoon in the "Computers" section of a bookstore going through the programming language books, you've probably noticed that most of them seem to exist only to boost a publishing company's fortunes by capitalizing on the hot new programming language of the moment. These books -- essentially glorified bookends -- seem to follow the same format, cover the same subjects and aside from the tiny flourishes that are part of each author's particular writing style, are indistinguishable from each other. Reading them, one gets the feeling that its primary purpose is to allow the author to make some payments on a car or mortgage. I have a few of these books and they're gathering dust on the bookshelf farthest away from my desk." For deVilla's review of Dive Into Python, a book that inhabits a completely different category, read on below. Dive Into Python author Mark Pilgrim pages 432 publisher Apress rating 9 reviewer Joey deVilla ISBN 1590593561 summary The "desert island" Python bookHowever, from time to time, you can find a programming language book that stands apart. You can tell from the way the author writes, the topics s/he covers, the unique presentation style and insight that s/he brings that the book is a labor of love. These books enjoy placement on the shelf closest to my desk -- that is, if they're not propped open beside my computer. Dive Into Python is such a book.
One thing that sets Dive Into Python apart from many other programming language books is that its author, Mark Pilgrim, didn't originally plan to make any money from it. As we often say in Open Source circles, he simply had an itch and decided to scratch it. Mark explains this in a story on his weblog in the form of a dialog between him and his manager after showing him a rough 20-page draft:
Manager: "This is really good. You could probably make some money off this someday."
Mark: "Maybe, but I'm not going to. I'm giving it away for free."
Manager: "Why would you do that?"
Mark: "Because this is the way I want the world to work."
Manager: "But the world doesn't work that way."
Mark: "Mine does."
First released in late October 2000 and published in online and downloadable forms under the GNU Free Documentation License, Dive Into Python had grown in fits and starts until 2003, when Mark declared the project closed. Even as an unfinished work, it was held in such high regard by the Python community that developers consistently recommended it; it was also included with ActiveState's Python and FreeBSD's ports distributions. When Mark announced that Apress had decided to pay him to finish the book and publish it, it became the most-anticipated book on Python ever. Even better, Apress has been gracious enough to allow Mark's world to work way it always has: Dive Into Python is still available for free download and is still under the GNU FDL.
What's in Dive Into Python
Many programming language books follow what I like to call the "Computer Science 101 Format", with the first few chapters devoted to covering basic concepts that any moderately experienced programmer already knows. Whenever I leaf through such a book and encounter a chapter that tries to reintroduce me to data types, looping or branching, I feel cheated; I'm essentially paying for a big chunk of book that I'll never read. If you've ever been annoyed by such filler, you'll find Dive Into Python a refreshing change. Rather than wasting time and trees devoting whole chapters to rehashing Computer Science 101, Mark chose to build each chapter after the first around a program that illustrates a number of Python features and programming techniques.
The programs upon which Dive Into Python's chapters are based strike a carefully-maintained balance. They are rich enough to illustrate a number of points and be the basis for some "real world" code, yet small enough to be comprehensible tutorials. For example, chapters 2 and 3 are based on "Your First Python Program", which is a mere six lines of code. However, in those six lines, you are introduced to function declarations, documentation strings, objects and their attributes, importing modules, Python's indentation rules, the "if __name__" idiom, dictionaries, lists, tuples, string formatting and list comprehensions. Within the first hundred pages, a point where many books are re-acquainting you with the "else" keyword, Dive Into Python covers the aforementioned topics as well as Python's reflection capabilities, list filtering, the "and-or trick", lambda functions, OOP and exception handling, all with enough thoroughness to be useful. After reading Dive Into Python, you may have trouble reading other programming language books because they'll seem glacially slow and fluff-laden in comparison.
For the first two-thirds of the book, Mark continues with this approach, presenting a program and then analyzing it to see what makes it tick, teaching Python and oftentimes a programming technique along the way. Each program covers useful tasks that you're likely to run into while programming and does so in an interesting way. At the same time, concepts are introduced in a way that makes sense. For instance, chapter 4 covers two topics that mesh together quite well -- exceptions and file handling -- and it does this by exploring an interesting application: a program that displays the ID3 tag information about each file in your MP3 collection. Later chapters explore regular expressions, HTML and XML processing and Web services. By the time you've finished the first two-thirds of Dive Into Python, you'll have been introduced to enough Python to start writing a wide array of "real world" applications. The book might have benefited from having a chapter covering database access, a task that's at least as common or as useful as accessing Web services, but that's a minor complaint.
While the first two-thirds of the book concerns itself with helping the reader become a Python programmer, the final third is about elevating Python programmers above mere competence. It covers useful topics (albeit rarely-covered in language books) such as refactoring and performance optimization as well as ones that may be new to even some experienced programmers: unit testing, functional programming and dynamic functions. Each chapter in this section is still based on an example program, but rather than analyzing a completed program, its evolution is traced. Although you can get by as a Python programmer without ever reading the material in this section, you'll be a much better one for having done so.
In keeping with the spirit of Python, Mark writes the chapters to present the material as completely and clearly as possible without extra clutter. If there's any additional material that doesn't apply directly to what he's trying to explain, he provides references or links to that material rather than attempting to "fatten up" the book.
The book's long gestation period, assisted by years of reader feedback and James Cox's editing has paid off. It doesn't have the rushed feel that many language-of-the-moment books have (especially the ones written by an army of authors, each one taking a chapter). As far as I know, there isn't any of the sloppiness that pervades many programming books these days, save one instance of the popular typo "teh" (and really, what truly 1337 book doesn't have one of these?).
Mark is aware that Python is likely not to be the reader's first programming language; it's more likely to be some descendant of ALGOL (or more precisely, a language that borrows heavily from either C or BASIC). He also knows that many programmers tend to misapply techniques from the languages with which they're familiar to the language they're learning. With these in mind, he's taken great care to introduce Python idioms as soon as possible. If you follow his advice, you'll be writing "real" Python and taking advantage of what the language has to offer rather than just writing Python-flavored version of whatever programming language you're most comfortable with.
Dive Into Python's Audience
The "user level" specified on the back cover of this book says "Beginner - Intermediate", which I feel is a little misleading. As I mentioned earlier, the book takes great care not to rehash topics with which programmers with some experience are already familiar and is written with the assumption that the reader is proficient in at least one object-oriented programming language. I think many programming novices would be overwhelmed with the speed with which Python features are introduced.
Experienced programmers, whether they are new to Python or are fluent with the language will benefit the most from the book. One programmer I know works with Python daily and and even submitted a patch to wxPython; even he said that Dive Into Python showed him things about Python that he never knew. If you're tired of books aimed at "Introduction to Computer Science" students, you're going to love this book. This doesn't mean that people who don't normally program can't benefit from the book: Joi Ito, who is a tech entrepreneur and not a programmer, learned enough from Dive Into Python to put together jibot, a bot for the IRC channel that bears his name. If you're new to programming, you might want to make Dive Into Python your second book or supplement it with an introductory text such as Apress' own Practical Python, O'Reilly's Learning Python or the free online book How To Think Like a Computer Scientist (the Python edition).
ConclusionDive Into Python may be one of the thinnest programming language books on my shelf, but it's also one of the best. Whether you're an experienced programmer looking to get into Python or grizzled Python veteran who remembers the days when you had to import the string module, Dive Into Python is your "desert island" Python book. If you're new to programming but have heard all the wonderful things about Python, make sure that this is the second programming book you read. My congratulations to Mark Pilgrim on an excellent book and authorial debut!
(Remember, you don't have to just listen to my effusive praise. Dive Into Python is available for free at diveintopython.org. Read it for yourself and if you like it, vote with your dollar!)
You can purchase Dive Into Python from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Software w/ Source for Sale?
frambooz asks: "As the GNU public license (amongst others) describes, you can make software that is free (as in freedom), but you don't have to make it *free* (as in free beer). I'm wondering if industry officials are aware of this fact, however. Do you know of any software packages that are Open Source, but still require you to purchase them? Did you ever work on such a project as a programmer yourself? If so, how did the development differ from a free(dom)/free(beer) Open Source application?" -
Open Xchange Server Source-code Released
d3vi1 writes "Netline, the main developer of Open-Xchange, has just released the GPL licenced version to the masses. The product is mostly known by users because of SuSE's Open-Xchange Server, a product started from "comFire Groupware". Open-Xchange is a groupware suite with WebDAV interface (XML), LDAP, iCal and HTTP(S) support. An Evolution plugin is on the way." -
Reiser4 Filesystem Released
trixie_czech writes "It's finally arrived. Go to namesys for reasons to use reiser4 as a filesystem and benchmarks. Go here to download. Enjoy!" The Namesys homepage in its current stage reminds me of a cross between The Secret Guide to Computers and the GNU Manifesto -- which is to say, there is a lot to read here, not just a bullet-pointed feature list. -
Businessweek Recommends License Switch for Linux
MadFarmAnimalz writes "BusinessWeek has an article about the perceived threat of patents to linux, citing the SCO case, the opening of OSRM, and the Munich situation as evidence for the veracity of their conclusion that Linux isn't safe. Their solution? Relicense to the BSD license or the Mozilla license. On a positive note, the article's author does link to RMS' article Why Software Should Not Have Owners; good to see Stallman being quoted and linked to in a publication Like BusinessWeek." -
GPS Toolkit (GPSTk) 1.0 Released
rmach writes "Based on many years of work performed at ARL:UT, we have release GPSTk under the GNU LGPL. GPSTk is a cross platform library and set of applications that provides both fundamental and advanced GPS processing algorithms to the GPS and open source community. A wide array of functions are provided by the GPSTk library, including: RINEX I/O, ephemeris calculation, P-code generation, atmospheric refraction models, and positioning algorithms. GPSTk applications provided more concrete benefits to the user, including: cycle slip detection and removal, calculation of the Total Electron Content (TEC) of the ionosphere, position residual computation, and RINEX file manipulation. The library is about 41,000 SLOC with a COCOMO estimated cost to develop of about $1.3 million. You can also read more about it in the current issue (September '04) of Linux Journal." -
The Business Value of Open Source Examined
jg21 writes "'Open source developers have the opportunity to influence technology that is being used by companies and do it on a global scale in a way that cannot occur with any other type of software,' contends Bill Claybrook, writing in the current issue of LinuxWorld. The article is a historical overview of the open source revolution, starting in the 80s with the GNU Project, BSD, and TCP/IP and then moving into the 90s with Red Hat, StarOffice, and coming right into the 21st century with the Ximian Desktop and Sun's Linux-based Sun Java Desktop System." -
Real Networks Hacks iPod; .rm & Real Store for iPod
alphakappa writes "According to Cnet, Real Networks is expected to announce on Monday that it has found a way to make its songs play on the iPod. Now songs bought from the RealPlayer Music Store can be played on the iPod. Earlier Real had made it possible for songs bought from iTunes to be played on RealPlayer by transparently starting the iTunes authentication in the background. However since Apple has not licensed the technology to make file formats playable on the iPod, the latest Real initiative could be construed as reverse engineering. How would this fare under the DMCA? Or is it just for the tiny ones?" -
CeCILL: La Licence Francaise Du Logiciel Libre
News for nerds writes "Researchers at three French government-funded research organizations revealed the new Open-Source license, known as CeCILL (English .pdf here), which they say is compatible with the FSF's GPL. CeCILL is intended to make free software more compatible with French law in two areas where it differs significantly from U.S. law: copyright and product liability. I, for one, welcome our nouvelle overlord of freedom." -
CeCILL: La Licence Francaise Du Logiciel Libre
News for nerds writes "Researchers at three French government-funded research organizations revealed the new Open-Source license, known as CeCILL (English .pdf here), which they say is compatible with the FSF's GPL. CeCILL is intended to make free software more compatible with French law in two areas where it differs significantly from U.S. law: copyright and product liability. I, for one, welcome our nouvelle overlord of freedom." -
GIF Slips Away From Unisys; Your Move, IBM
Twenty years ago, Terry Welch's improvement on Lempel-Ziv compression appeared in IEEE Computer magazine. The authors of unix 'compress' and the GIF standard incorporated that algorithm without realizing it was patent-pending. When the submarine patent surfaced ten years later, its new owner Unisys intimidated developers and web authors into moving away from GIFs, inspiring the creation of a better standard, though sadly still a less popular one. Today, July 7, 2004, Unisys's last LZW patent (in Canada) expires, leaving GIF once again free... almost. See, there's the small matter of IBM's patent, granted on the same algorithm, which is valid for another two years. That still has a chilling effect on GIF development, though the consensus seems to be that IBM would lose any court action it tried to bring. So how about it, IBM? You've got nothing to lose! Want to make a lot of geeks happy and release that final patent into the public domain? -
Wikipedia Hits 300,000 Articles
Raul654 writes "Today Wikipedia reached the 300,000 article mark. Wikipedia is a 3-year-old non-profit project to build an encyclopedia using WikiWiki software. All text is licensed under the GFDL. It has everything that a traditional encyclopedia would, but also many things that would never get written about, such as Crushing by elephant and the GNU/Linux naming controversy. For size comparisons, the English Wikipedia has 90.1 million words across 300,000 articles, compared to Britannica's 55 million words across 85,000 articles. (All the languages combined together reach 790,000 articles.) For much of the first half of 2004, Wikipedia's growth has outstripped server capacity - however, the shortage of PHP/MySQL developers is probably the biggest long term problem facing the project. Slashdot had previously reported when Wikipedia reached the 200,000 mark." -
Sun to GPL Project Looking Glass
elleomea writes "According to The Register, Sun is releasing Project Looking Glass, their new GNU/Linux based 3D window managing system, under the GPL during their JavaOne conference (beginning today)." The screenshots of Looking Glass make it out to be very pretty. I'm not sure if I have the spare CPU cycles to power such an environment, but it's sure nice to drool over. -
GCC Gets Its Own News Site
Marcel Cox writes "In an effort to promote the development of GCC, Mathieu Lacage created a GCC news page similar to the idea of Kernel Traffic. While we are on the topic of GCC, it might be worthwhile recalling two major events that occured during the last month: 1. The tree-ssa branch has been merged into mainline, which among others means the end of G77 and the addition of GFORTRAN, the new GNU Fortran 95 compiler. 2. The second annual GCC Developer's summit took place some 10 days ago in Ottawa." -
GCC Gets Its Own News Site
Marcel Cox writes "In an effort to promote the development of GCC, Mathieu Lacage created a GCC news page similar to the idea of Kernel Traffic. While we are on the topic of GCC, it might be worthwhile recalling two major events that occured during the last month: 1. The tree-ssa branch has been merged into mainline, which among others means the end of G77 and the addition of GFORTRAN, the new GNU Fortran 95 compiler. 2. The second annual GCC Developer's summit took place some 10 days ago in Ottawa." -
GCC Gets Its Own News Site
Marcel Cox writes "In an effort to promote the development of GCC, Mathieu Lacage created a GCC news page similar to the idea of Kernel Traffic. While we are on the topic of GCC, it might be worthwhile recalling two major events that occured during the last month: 1. The tree-ssa branch has been merged into mainline, which among others means the end of G77 and the addition of GFORTRAN, the new GNU Fortran 95 compiler. 2. The second annual GCC Developer's summit took place some 10 days ago in Ottawa." -
GCC Gets Its Own News Site
Marcel Cox writes "In an effort to promote the development of GCC, Mathieu Lacage created a GCC news page similar to the idea of Kernel Traffic. While we are on the topic of GCC, it might be worthwhile recalling two major events that occured during the last month: 1. The tree-ssa branch has been merged into mainline, which among others means the end of G77 and the addition of GFORTRAN, the new GNU Fortran 95 compiler. 2. The second annual GCC Developer's summit took place some 10 days ago in Ottawa." -
DotGNU Ported to PocketPC
t3rmin4t0r writes "The Pocket PC# group has ported DotGNU Portable.net to PocketPC. This is a significant step because the .NET Compact Framework SDK is heavily licensed, unlike the .NET SDK available for free from MSDN. Thanks to PocketPC#, now you can build Window.Forms C# applications for PocketPC without submitting to Microsoft's exhorbitant SDK licensing fees. Portability to embedded/low-end hardware is one of Portable.net's stated goals. DotGNU Portable.net also works on 9 major CPU architectures according to gentoo's portage. The Darwin-ports features a cool package with Windows.Forms for Mac OS X. Handhelds like iPAQ or Zaurus have also ports (the iPAQ one features Windows.Forms). Esoteric hardware like the Sony Playstation 2 or the Microsoft XBox can also run Portable.net." -
DotGNU Ported to PocketPC
t3rmin4t0r writes "The Pocket PC# group has ported DotGNU Portable.net to PocketPC. This is a significant step because the .NET Compact Framework SDK is heavily licensed, unlike the .NET SDK available for free from MSDN. Thanks to PocketPC#, now you can build Window.Forms C# applications for PocketPC without submitting to Microsoft's exhorbitant SDK licensing fees. Portability to embedded/low-end hardware is one of Portable.net's stated goals. DotGNU Portable.net also works on 9 major CPU architectures according to gentoo's portage. The Darwin-ports features a cool package with Windows.Forms for Mac OS X. Handhelds like iPAQ or Zaurus have also ports (the iPAQ one features Windows.Forms). Esoteric hardware like the Sony Playstation 2 or the Microsoft XBox can also run Portable.net." -
Look Inside A PC-killing WIPO Treaty
mouthbeef writes "The Broadcast Treaty is a proposal from a WIPO Subcommittee that's supposedly about stopping 'signal theft.' But along the way, this proposal has turned into a huge, convoluted hairball that threatens to make the PC illegal, trash the public domain, break copyleft and put a Broadcast Flag on the Internet. The treaty negotiation process is unbelievably convoluted and hard-to-follow, and they've just wrapped up the latest round in Geneva. But for the first time, a really large group of "civil society" orgs were accredited to attend. Me and another EFF staffer and the Coordinator of the Union for the Public Domain created a heavily editorialized impressionistic transcript of the meeting (EFF mirror, UPD mirror), trying to untie the knots in the negotiation. This is the first time that a really exhaustive peek inside a WIPO treaty negotiation has ever been published -- get it while it's legal!" -
Do You Really Want to Meet People on the Web?
Wolfspelz writes "Do you want to meet people on Web pages? The Jabber Virtual Presence project makes people aware of each other on the Web. Just like you are aware of other people in the real world anywhere you go, the virtual presence makes you aware of others on the same virtual locations. The project uses Jabber/XMPP as the transport protocol for virtual presence. Jabber conference components serve as presence servers. The code is GPL/LGPL. The Virtual Presence Protocol extensions are open and documented. The virtual presence system including the LLuna2 client is designed to protect the privacy and prohibit any indecent use, be it commercial use, advertising, or profiling. But: do you want to meet people on the Web at all?" -
Cartoon Guide to Federal Spectrum Policy
js7a writes "The New America Foundation has published The Cartoon Guide to Federal Spectrum Policy (pdf). An excellent 14 page guide that everyone should print a few copies of to have handy in the backpack or car. Learn what would happen if the government regulated speech the same way they regulate airwaves. Learn the truth about microbroadcasting, smart radio, and so-called intererence (all previously covered on Slashdot.) Learn more creative ways to tell Congress to stop giving away public resources to private corporations. Make the most of your rights to use unlicensed wireless, before it's too late." -
Linux Programming by Example
Simon P. Chappell writes "Linux programming is the C Programming Language. Elaborating a little, Linux programming is C, with the GLIBC library and the POSIX standard API. Even a language as powerful as C needs libraries and to get the Holy Grail of cross-platform portability, it's necessary to have them standardised. The POSIX API is that standardisation and Linux adheres to it very well (opinions from those litigious folks in Utah aside). For those of us who already know C, Linux Programming by Example sets out to teach you the rest in a step by step, helpful, relaxed and incremental manner." Linux Programming by Example author Arnold Robbins pages 687 (21 page index) publisher Prentice Hall rating 10 reviewer Simon P. Chappell ISBN 0131429647 summary An exellent tutorial for real-world Linux software development
What's To Like There are many things to like about this book (over and above the fact that page 118 has my all-time favourite UserFriendly cartoon on it :-). Linux Programming by Example (LinuxPbE hereafter) takes a steady, incremental path through the concepts required to write software that can effectively interact with the Linux environment.It is a truism many of us have proven multiple times in our lives that one of the finest learning tools available to programmers is to read and grok good, working code, written in the language that we are learning. LinuxPbE takes this philosophy and walks you through actual example code from various Unixes and Linux. The first part of the book, specifically chapters one through six, covers all of the aspects of Linux programming necessary to understand the Unix V7 ls program in its full glory in chapter seven. I feel that this approach works very well.
Part two dives into processes, walking us through creating them, managing them, communicating with them by using pipes and sending them signals. A few other general topics are included for completeness. Part three then covers the art and tools of debugging in fairly substantial detail.
All the code in the book is very well laid out, with line numbers provided to the left, and comments (in a small sans-serif font) on the right-hand side of the code. This is a very readable combination that is enhanced further by the fact that at each logical division, an explanation is given of the design and implementation used by that section.
I can't resist admiring the addition of the essay "Teach Yourself Programming in Ten Years" by Peter Norvig. This is a classic exploration of the effort needed to attain mastery of any skill, concluding that the minimum length of time required is ten years. The inclusion of this article, to me, speaks well of the author and his understanding of the learning process. One can only hope that those learning from this book will come to the same understanding and realise that the book is the start of their journey to mastering Linux programming.
What's To ConsiderNothing notable.
Summary If you want to learn how to do this stuff for real, then this book will get you started. As "Teach Yourself Programming in Ten Years" explains, no book is going to cause you to become an expert in 24 hours, 24 days or even, perhaps, 24 months. That said, this book will be useful for many of those ten years, so run or surf to your favourite bookstore and purchase it now.
You can purchase Linux Programming by Example from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
GCC 3.4.0 Released
AaronW writes "While checking the GCC website I saw that GCC version 3.4 was officially released on April 18th. Version 3.4 includes numerous changes and enhancements, including better optimization, and the ability to build a profiled version of gcc which is 7.5-11% faster on i386 hardware. Be kind and please use one of the mirror sites." -
GCC 3.4.0 Released
AaronW writes "While checking the GCC website I saw that GCC version 3.4 was officially released on April 18th. Version 3.4 includes numerous changes and enhancements, including better optimization, and the ability to build a profiled version of gcc which is 7.5-11% faster on i386 hardware. Be kind and please use one of the mirror sites." -
GCC 3.4.0 Released
AaronW writes "While checking the GCC website I saw that GCC version 3.4 was officially released on April 18th. Version 3.4 includes numerous changes and enhancements, including better optimization, and the ability to build a profiled version of gcc which is 7.5-11% faster on i386 hardware. Be kind and please use one of the mirror sites." -
GCC 3.4.0 Released
AaronW writes "While checking the GCC website I saw that GCC version 3.4 was officially released on April 18th. Version 3.4 includes numerous changes and enhancements, including better optimization, and the ability to build a profiled version of gcc which is 7.5-11% faster on i386 hardware. Be kind and please use one of the mirror sites." -
FSF Migrating From Savannah to Gforge
bluestrain writes "It's been almost 4 months since Savannah was hacked. The site is still not completely functional, no new projects have been accepted since December 2003. Now it seems that the FSF is abandoning Savannah in favor of Gforge. RMS himself has confirmed the plans. A few developers are questioning the change. Hopefully the dust will settle and savannah can start accepting projects again." -
FSF Migrating From Savannah to Gforge
bluestrain writes "It's been almost 4 months since Savannah was hacked. The site is still not completely functional, no new projects have been accepted since December 2003. Now it seems that the FSF is abandoning Savannah in favor of Gforge. RMS himself has confirmed the plans. A few developers are questioning the change. Hopefully the dust will settle and savannah can start accepting projects again." -
FSF Migrating From Savannah to Gforge
bluestrain writes "It's been almost 4 months since Savannah was hacked. The site is still not completely functional, no new projects have been accepted since December 2003. Now it seems that the FSF is abandoning Savannah in favor of Gforge. RMS himself has confirmed the plans. A few developers are questioning the change. Hopefully the dust will settle and savannah can start accepting projects again." -
FSF Migrating From Savannah to Gforge
bluestrain writes "It's been almost 4 months since Savannah was hacked. The site is still not completely functional, no new projects have been accepted since December 2003. Now it seems that the FSF is abandoning Savannah in favor of Gforge. RMS himself has confirmed the plans. A few developers are questioning the change. Hopefully the dust will settle and savannah can start accepting projects again." -
Demonstration Against Software Patents in Europe
bram.be writes "On April 14, FFII is organising a walking demonstration in Brussels against the legalisation of software patents in Europe, as well as a legislation benchmarking conference. Like in August last year, these events will be accompanied by an online demonstration whereby webmasters are asked to close their websites in protest. The reason for the renewed protest is that after the European Parliament voted for a great directive, it is now the Council of Minister's turn, whose working party proposes as 'compromise' to simply discard all good amendments and on top of that to even make program publication an infringement. Already more then 1300 sites participate in the online demonstration. Among them are some big sites like KDE, the GNU Project and the Gimp. Also, on April 15 the European Greens/EFA group is organising a Euro-LUG party inside the European Parliament, 'with a view to enhance the networking among the free software community in Europe [...], to inform the EP about what free software is, how it works and which ideas lie behind.' Speakers will include Gwen Hinze (EFF), Jon Lech Johansen (DeCSS), Georg Greve (FSF Europe and Alan Cox. Prior registration is mandatory for this event." -
Draft of 'Broadcast Flag' Treaty Now Available
The Importance of writes "If you liked the broadcast flag, you're going to love WIPO's proposed 'broadcast flag' treaty (PDF link). The draft treaty will give copyright-like rights to broadcasters, cablecasters and, if the US gets its way, webcasters. As a broadcaster, you wouldn't have to own the copyright in what you broadcast, but you could still stop people from recording your broadcast, reproducing it or distributing it. The treaty also includes DMCA-like protections, in case you try to circumvent the broadcast flag. The treaty is going to be discussed in Geneva, June 7-9. The draft is discussed over on Corante.com and late last year on the DMCA activists list." -
Microsoft FUD Machine Aims at OpenOffice.org
Roblimo writes "If you're using Microsoft Office and considering a switch to (free) OpenOffice.org, Microsoft would like you to read their Open Office Competitive Guide first, in which they tell you how much better/faster/cheaper MS Office is than OOo. Taran Rampepersad, an IT consultant in Trinidad, believes this "Competitive Guide" is nothing but FUD, so he wrote a detailed rebuttal to it -- and released his article under the FDL so you can feel free to republish his piece or share it with anyone you like, however you like." A followup to this story. Newsforge and Slashdot are both part of OSDN. -
Linuxmusician.com Interviews LilyPond Authors
jcn writes "Chris Cannam talks to the authors of one of the best-known and most ambitious music programs for Linux, the LilyPond score engraving system. Unlike other typesetting software like Finale or Sibelius, LilyPond is not a score editor, it aims to use simple textual description of the music and turn it into the highest possible quality output, automatically. Han-Wen says: In my opinion, any file format that claims to be universal should have two properties: it should have an expressive structure, so other formats can be expressed in it, and it should be as lean as possible, so that converting from other formats amounts to removing information. I think that MusicXML fits neither. Ouch." -
Heavy-Duty System Administration Utilities?
leandrod asks: "I am in the process of helping a small software company define the infrastructure for their major client's new system. It is a big country, and it is a medium-sized client planning on going big. We are planning to standardize on Debian GNU/Linux. I am aware I can have IBM Tivoli Maestro for GNU/Linux for production scheduling, and BEA's Tuxedo TP monitor, but they are unsupported under Debian. I am also aware of one or two free TP monitors, but they are either incipient or stagnating. I couldn't find a production scheduler. I know I can do lots with the standard tools, but keep in mind I am targeting a transaction-processing bureau for a big operation with hundreds of thousands of terminals and millions of users, something like a poor man's Wal-Mart, or even Visa. Are there vendors out there willing to support Debian or just GNU/Linux in general? If not, are there free software projects that accomplish the same thing?" -
Creative Commons Includes GPL And LGPL Metadata
TrentC writes "I was looking at the Creative Commons site this weekend, and was surprised to find, on their license generation page, entries (translated into Portuguese) in a sidebar for the GNU General Public License and GNU Lesser General Public License, including RDF blocks. Since CC is pushing for projects that can generate, validate, display and search for CC license metadata, how cool would it be to be able to do a Google search for GPL-licensed material, or a P2P network for MP3s released under the CC Attribution-ShareAlike license? As an example, Nathan Yergler has released mozCC, a plugin for Mozilla and Firebird that allows you to view CC license information embedded in a webpage, and provides icons on the status bar displaying the CC license options." -
Creative Commons Includes GPL And LGPL Metadata
TrentC writes "I was looking at the Creative Commons site this weekend, and was surprised to find, on their license generation page, entries (translated into Portuguese) in a sidebar for the GNU General Public License and GNU Lesser General Public License, including RDF blocks. Since CC is pushing for projects that can generate, validate, display and search for CC license metadata, how cool would it be to be able to do a Google search for GPL-licensed material, or a P2P network for MP3s released under the CC Attribution-ShareAlike license? As an example, Nathan Yergler has released mozCC, a plugin for Mozilla and Firebird that allows you to view CC license information embedded in a webpage, and provides icons on the status bar displaying the CC license options." -
XFree86 Alters License
kinema writes "According to the XFree86 announcement starting with XFree86 v4.4.0-RC3 there will be a new license. There are some worries that these changes might be incompatible with the GPL." The FSF has a good page about the problems with BSD-style advertising clauses, which ironically uses XFree86's old license as an example of one to emulate. -
Check Who Signed Off On Your Software
An anonymous reader submits "The Software Sig Page encourages software maintainers to publish verifiable signatures for released software and to build the web of trust among software maintainers and software users. If you're afraid of downloading a trojaned OpenSSH, being 0wned while capturing packets, compiling an MTA as well as a backdoor on your system, not being able to trust tools you use every day, or never having a chance from the moment your OS boots, then you want some level of assurance that the software you use is everything the mainatainers expected you to have and no more. Look and check the MD5 and PGP signatures that come with software you download." -
What is the Best Way to Handle a GPL Violation?
DeadSea queries: "When you find that somebody is violating the GPL by distributing your code or a derivative of your code as a closed source product, how do you go about handling it? I have found two violations of the GPL for my Java Utilities, in the last month. The Free Software Foundation says that the copyright holder is the only person empowered to act. If you are the copyright holder, how do you communicate with the offenders? I know folks here must have dealt with this before: Linksys, SCO, Castle Technology, United Linux, and others. Personally, I would like to believe that with a little nudging (and without lawyers), I can resolve the things. As such, I would especially appreciate any example letters or other documents that might be effective." -
CodeCon, FOSDEM Both Around The Corner
An anonymous reader writes "The program for CodeCon was quietly announced a few days ago. The third edition of this groundbreaking programmer's conference, which adheres to a strict set of rules geared to providing a high-content event (such as requiring working demos of projects presented, and all presentations to be given by an active developer) is well stocked with interesting p2p, crypto, coding, and open source projects. Some of the highlights of this year's con include Audacity, Bram and Ross Cohen's Codeville, The U.S. Navy's Onion Router, and PGP Universal. Other notable applications, like Bittorrent, the Invisible IRC project, GNU Radio, and Mixminion all made their public debuts at past CodeCons. Produced by cypherpunk Len Sassaman and BitTorrent programmer Bram Cohen, this grass-roots conference is a must-see." CodeCon runs Feb. 20-22 in San Francisco, while FOSDEM (the Free and Open Source Software Developers' European Meeting) is taking place in Brussels on Feb 20-21.