I love deadlines. I love the sound they make as they go whooshing by.
--Douglas Adams
There was a funny incident at a recent developer event where some folks had a booth where they where demo-ing a high end industrial strength C compiler and had a benchmark that they had transliterated into Java. They were comparing their compiler to GCC and Java. GCC was running at about 2/3 the performance of this high end compiler; the Java version was running at about 2/3 the performance of the GCC version. Folks were gathered around the booth and someone noticed that the script they were using to run the Java version didn't have optimisation turned on. A few seconds with vi to add the "-server" switch and Java's performance jumped up to match the fancy C compiler. This got the pro-GCC crowd all excited, so a bunch of them started fiddling with its command line switches. They got a bit of improvement, but not much (the original selection had been pretty good).
--James Gosling
Read the rest in Java Urban Performance Legends
As the Israelis have found, if you cause huge queues for security checks you merely create prime targets for terrorists. They just detonate their bombs in the queues.
--Philip Baum
Read the rest in Body scan machines to be used on Tube passengers - Personal Tech
Despite the claims of its critics, Intelligent Design is indeed a scientific theory that can be-- indeed is--contradicted by evidence. Examples are the human appendix and the inverted construction of the human retina—bad design with good evolutionary explanations. The real objection to Intelligent Design is not that it is not a theory, nor that it is a theory that we have reason to reject. The real objection is that its supporters are driven by religious, not scientific, motives. Somewhere in the world there must exist someone who was persuaded of its truth by scientific arguments—but looking at those arguments makes it clear that they were generated by people who knew what conclusion they wanted and were doing their best to fudge up reasons to believe it.
--David Friedman,
Read the rest in Faith Based Science
The classic Sun attitude is, "Hey, we've given you this cool core technology. Now you build the development tools and implementations to make it production strength." Jini/JavaSpaces is an example that springs to mind. This technology was doomed to remain an interesting academic research tool by Sun's own attitude toward it, not through any technological weaknesses.
--Humphrey Sheil
Read the rest in In pursuit of perfection
I'd like to see the war on Iraq ended and the troops brought home. The US has spent half a trillion dollars in the last three years, which has produced as a result more civilian deaths in that time than Saddam Hussein was responsible for in the last twenty years, has inflamed the hatred of millions of otherwise fairly sympathetic Muslims around the world, has come no closer to securing US oil interests in the region, has led to a "democracy at gunpoint" which has still resulted in the election of a government far less sympathetic to US interests and much more tied with a newly militant Iranian government (one that had, less than five years ago, been tending towards a somewhat moderately theocratic democracy in the mold of Turkey), and that has, in general, been a failure on just about every front imaginable.
Additionally, to put this into perspective, half a trillion dollars would pay for twenty million full scholarships at $25,000 a piece, or four times that in the form of low interest loans. If that had been plowed into business development in Iraq, it would have resulted in a country that would be far more prosperous than it is now, would have the middle class infrastructure necessary to support educational and societal reforms, and would have been well on its way to replacing an aging tyrant on its own. Let our leaders see that sometimes the wisest thing that you can do is recognize when you are throwing good money after bad, and the most courageous is to stop when so many corporations have a vested interest in seeing it continue.
--Kurt Cagle
Read the rest in All I want for Christmas ...
I vividly remember during my first college class my fascination with the relational database—an information oasis that guaranteed a constant flow of correct, complete, and consistent information at our disposal. In that class I learned how to build a schema for my information, and I learned that to obtain an accurate schema there must be a priori knowledge of the structure and properties of the information to be modeled. I also learned the ER (entity-relationship) model as a basic tool for all further data modeling, as well as the need for an a priori agreement on both the general structure of the information and the vocabularies used by all communities producing, processing, or consuming this information.
Several years later I was working with an organization whose goal was to create a large repository of food recipes. The intent was to include recipes from around the world and their nutritional information, as well as the historical and cultural aspects of food creation.
I was involved in creating the database schema to hold this information. Suddenly the axioms I had learned in school collapsed. There was no way we could know in advance what kind of schema was necessary to describe French, Chinese, Indian, and Ethiopian recipes. The information that we had to model was practically unbound and unknown. There was no common vocabulary. The available information was contained mostly in natural language descriptions; even with significant effort, modeling it using entities and relationships would have been impossible. Asking a cook to enter the data in tables, rows, objects, or XML elements was unthinkable, and building an entry form for such flexible and unpredictable information structures was difficult, if not impossible. The project stopped. Years later I believe we still do not have such information available to us in the way we envisioned it.
Many projects of this kind are all around us. While the traditional data modeling and management techniques are useful and appropriate for a wide range of applications—as the huge success of relational databases attests—in other cases those traditional techniques do not work. A large volume of information is still unavailable and unexploited because the existing data modeling and management tools are not adapted to the reality of such information.
--Daniela Florescu
Read the rest in ACM Queue - Managing Semi-Structured Data
The conventional view of Santa Claus posits a centralized operation run by a bearded fanatic in an undisclosed Arctic location. His agents are everywhere, and this spy ring provides the raw data that allow him to calculate the details of each year's mission. He then enters America illegally, plants packages in homes around the country, and returns to his base, from which he issues occasional communiqués urging peace, good will, and our presence at various post-Christmas sales.
--Jesse Walker
Read the rest in Reason: Santa Claus Conquers the Martians: The war on Christmas is over. Guess who won?
If you look at Engelbart’s demo, then you see many more ideas about how to boost the collective IQ of groups and help them to work together than you see in the commercial systems today. I think there’s this very long lag between what you might call the best practice in computing research over the years and what is able to leak out and be adapted in the much more expedient and deadline-conscious outside world.
--Alan Kay
Read the rest in ACM Queue - A Conversation with Alan Kay - Big talk with the creator of Smalltalk—and much more.
To be sure, Darwin's theory of evolution is imperfect. However, the fact that a scientific theory cannot yet render an explanation on every point should not be used as a pretext to thrust an untestable alternative hypothesis grounded in religion into the science classroom or to misrepresent well-established scientific propositions.
--Judge John E. Jones III
Read the rest in Judge Rejects Teaching Intelligent Design
You would think, that with all the customer service problems they have been having, Dell would not want another customer out there saying "Dell strung me along for a month and then dumped me on the computer market five days before Christmas." You would think, in fact, that they would be falling all over themselves to fedex me the closest thing they could find to what we ordered at no extra cost to myself. Or maybe you wouldn't think that. Maybe I'm some sort of woeful naif with an outsized sense of entitlement who believes that just because Dell's colossal screwups threaten to leave my family without a present under the tree for my much-put-upon Aunt come Christmas morning, that Dell should try to fix it.
I am currently holding for a supervisor. I have now been on the phone with Dell for well over an hour, and so far all I know is that I should have bought the damn computer somewhere else. I'll know better next time.
--Jane Galt
Read the rest in Asymmetrical Information: Dell hell
The president has stated a doctrine that he can just make up the law and create whatever other powers he wants on his own.
--Senator Russ Feingold
Read the rest in Guardian Unlimited | Special reports | Defiant Bush defends wiretapping powers
We now know that EJB 1 & 2 were based on an entirely flawed set of use cases. Because of the damage this (still slowly dawning) realization has wrought to Sun's reputation, it's hard to know whether EJB3, which probably should have been called something else to disassociate it with the failures of its predecessors, will succeed, despite the fact that EJB3 is like a breath of fresh air. You look at the code and it makes sense; no bizzarre and obscure interfaces and concepts to puzzle over while thinking, "I wonder why I have to do this? Well, these guys are clearly smarter than I am." (I tried to understand EJB1, but when I first heard that entity beans didn't actually work, my brain refused to let me invest any more time, which turned out to be the right choice). As a result of all this, someone said "hey, all I want to do is create a database and use it from the web. Why should I do all that work?" As it turns out, such activities seem to be about 90% of all we ever do in "Enterprise" programming, and EJB 1/2 were solving an entirely different problem, and making the 90% incredibly difficult in the process.
--Bruce Eckel
Read the rest in The departure of the hyper
After 9/11 I heard a lot of people say that we should be ready to sacrifice some freedoms in the interest of national security. I wonder how the heroes who made the ultimate sacrifice to win those freedoms would feel to see us so willingly give them away.
--Paul Conover on the LABIRD-L mailing list, Sunday, Tue, 12 Jul 2005 11:03:26
When writing listeners, you should always be aware of the environment in which they will execute. Not only must you pay attention to thread-safety issues, but you need to remember that a listener can mess things up for its caller in other ways, too. One thing that a listener should not do is block for any perceptible amount of time; it has likely been called from an execution context that is expecting to get control back quickly. If a listener is going to perform a potentially time-consuming operation like processing a large document or doing something that may block, such as performing socket IO, it should arrange to do that work in another thread so it can return to its caller quickly.
--Brian Goetz
Read the rest in Java theory and practice: Be a good (event) listener
For the other disabilities, access is via an assistive technology (AT) that mediates the user experience. This is where our the accessibility challenges lie. The challenges stem from the fact that Microsoft Windows doesn't provide a real accessibility infrastructure - as compared to UNIX systems with GNOME, the Java platform, or Macintosh OS X. In Windows, virtually all of the information needed by assistive technologies has to be obtained by patching the operating system, replacing/chaining video drivers, reverse engineering applications, and/or using proprietary COM interfaces to get at the data within an application. The first accessibility API Microsoft put forth for accessibility - Microsoft Active Accessibility (MSAA) - fails to provide most of the information needed for screen reading and other AT uses, and is being supplanted in future Windows releases. What this means is that for an application to be accessible in Microsoft Windows via a particular assistive technology, that AT vendor has to have made a significant investment in customizing their product to that application. The greater the customization investment, the "more accessible" an application is deemed to be, at least via that particular AT. For example, the Windows screen reader with the largest market share, JAWS, has made a huge investment in customization of their product to Microsoft Office (and in contrast made a much smaller investment in customization for WordPerfect). For this reason blind folks generally feel that Microsoft Office is "accessible" (and that WordPerfect "isn't as accessible") - not because of work done by Microsoft or Corel, but work done (or not done) by Freedom Scientific, the creator of JAWS.
--Peter Korn
Read the rest in Peter Korn's Weblog
JBR's postulate 1. For every testable design that requires exposing elements "just for testing", there exists an equivalent testable design that does not require exposing elements "just for testing".
In other words, if I add a method "just for testing", I can usually find a way to restructure the design so that that method either earns its keep or goes away.
--J. B. Rainsberger on the junit mailing list, Wednesday, 31 Aug 2005 14:50:56
The principles of the common law, standing alone, in my opinion compel the exclusion of third-party torture evidence as unreliable, unfair, offensive to ordinary standards of humanity and decency and incompatible with the principles which should animate a tribunal seeking to administer justice.
--Lord Bingham of Cornhill
Read the rest in Guardian Unlimited Politics | Special Reports | Torture evidence inadmissible in UK courts, Lords rule
there is a bigger problem with dynamic languages in general, and this problem has been completely underestimated so far, which probably explains why dynamic languages are not making fast progress in developer mindshare.
This problem is the lack of IDE support.
Auto-completion in IDE's has become extremely smart these past years. Refactoring is also a practice that modern developers have become completely hooked on, and for good reasons.
IDE's for dynamic languages come nowhere close to this level of functionality, and whenever I program in Ruby or Groovy, having to leave my IDE of choice is not only hard, it sometimes makes me decide against using the dynamic language, even if it's a clear winner on paper.
--Cedric Beust
Read the rest in Vanward Technologies [ Interview with TestNG's Cedric Beust ]
One of the "crossing the Rubicon" moments in learning TDD is when you learn to define the interface of a class inside the unit test. That’s right, use the unit test to define the intended function of a new piece of code, and then write the code to make the unit test compile and pass (ReSharper will very happily create the method stub for you). I still do some paper and pencil work before coding, but by and large I’ve found that I have better results when you are determining a class’s signature while writing the unit tests. Writing unit tests first will inevitably simplify the usage of a class (because you’ll want to minimize the mechanics of creating the unit tests). I certainly don't think that you throw away traditional design techniques when you do TDD, but you can't ever let the code and design get very far ahead of the unit tests.
--Jeremy D. Miller
Read the rest in Jeremy D. Miller -
KISS. Keep it (the design) simple and stupid. Complex systems tend to fail. They are hard to tune. They tend not to scale as well. They require smarter people to keep the wheels on the road. In short, they are a pain in the you-know-what. Conversely, simple systems tend to be easy to tune and debug and tend to fail less and scale better and are usually easier to operate. This isn’t news. As I’ve argued before, spreadsheets and SQL and PHP all succeeded precisely because they are simple and stupid—and forgiving. Interestingly, standards bodies tend to keep working on standards long after they should have been frozen. They forget these lessons and add a million bells and whistles that would, if adopted, undoubtedly cause the systems to fail. Luckily this doesn’t happen because by then there is a large body of installed code (and even hardware) out there that assumes the simpler spec and cannot handle the new bells and whistles. Therefore, no one uses them and we are all protected.
--Adam Bosworth
Read the rest in ACM Queue - Learning from THE WEB
what's the "scripting language mystique" all about? You don't have to run javac? Rubbish--I don't believe that's a big issue. You don't have to write declarations? Bull--writing declarations means (to me) that it's easier to debug misspelled variable names. That's a HUGE time saver. As Brett McLaughlin has often said, "whenever you can get the compiler to do the debugging, it's a win." Is it that scripting languages are better "glue" languages for calling UNIX utilities and other external programs? Well, I don't see why it's so difficult to call Runtime.exec(). The fact is--if you have some documentation, you can use Java to call into the guts of other Java programs, not just their external command-line interfaces. That's some pretty powerful glue. If you understand reflection or have been watching what's going on with lightweight containers like Spring, you've got real computation superglue.
Or is it that this could have been written in fewer lines? I'm sure this program could have been compressed into a single line of Perl, or maybe a dozen lines of Python. Sorry, I just don't see "number of lines" as a good metric of anything. When I was in high school, I loved APL because just about anything could be compressed into a single, inscrutable line. I didn't believe in comments then, either. When I was a child, I thought as a child... I admit to being biased--as an O'Reilly editor, I read much more code than I write. So being readable (and I think Java is very readable) is very valueable to me.
--Mike Loukides
Read the rest in Mike Loukides's Blog: The Problem with Scripting
Exactly two things have made airline travel safer since 9/11: reinforcement of cockpit doors, and passengers who now know that they may have to fight back. Everything else -- Secure Flight and Trusted Traveler included -- is security theater. We would all be a lot safer if, instead, we implemented enhanced baggage security -- both ensuring that a passenger's bags don't fly unless he does, and explosives screening for all baggage -- as well as background checks and increased screening for airport employees.
Then we could take all the money we save and apply it to intelligence, investigation and emergency response. These are security measures that pay dividends regardless of what the terrorists are planning next, whether it's the movie plot threat of the moment, or something entirely different.
--Bruce Schneier
Read the rest in Wired News: Airline Security a Waste of Cash
Sun just came out of this really weird patent case with Kodak, where Kodak admitted that we did not violate their patent. They weren’t accusing us of violating their patent, they were accusing us of building a system that caused other people to violate their patent. So they had an expert who wrote software that violated their patent, and he actually got up in court and said that every program ever written does the following completely stupid stuff, and therefore Java induced people to violate their patent. And the jury made up of housewives bought it. And it’s like, “What is this, you know, Shakespeare with rights? It’s like five hundred years later, why didn't we pay attention and just shoot all the lawyers?”.
--James Gosling
Read the rest in James Gosling Q & A: Builder AU: Program: At Work
Over the years I have come to describe Test Driven Development in terms of three simple rules. They are:
- You are not allowed to write any production code unless it is to make a failing unit test pass.
- You are not allowed to write any more of a unit test than is sufficient to fail; and compilation failures are failures.
- You are not allowed to write any more production code than is sufficient to pass the one failing unit test.
You must begin by writing a unit test for the functionality that you intend to write. But by rule 2, you can't write very much of that unit test. As soon as the unit test code fails to compile, or fails an assertion, you must stop and write production code. But by rule 3 you can only write the production code that makes the test compile or pass, and no more.
If you think about this you will realize that you simply cannot write very much code at all without compiling and executing something. Indeed, this is really the point. In everything we do, whether writing tests, writing production code, or refactoring, we keep the system executing at all times. The time between running tests is on the order of seconds, or minutes. Even 10 minutes is too long.
--Bob Martin
Read the rest in ArticleS.UncleBob.TheThreeRulesOfTdd
One common reason for the proliferation of options in open source software is that (news flash) people often disagree about how things should be done, often violently and vocally in threads that can drag on for weeks on development mailing lists. (It is frustrating for many people that these option flame wars draw more discussion than useful topics or questions.) Few like fighting about things, and project leaders pull the proverbial car to the side of the road and declare “Screw it! We’ll do both!” To satisfy a handful of developers a burden is put on countless users.
--Matthew Mullenweg
Read the rest in Photo Matt » Should We Have Hidden Options?
Both threads and processes are methods of parallelizing an application. However, processes are independent execution units that contain their own state information, use their own address spaces, and only interact with each other via interprocess communication mechanisms (generally managed by the operating system). Applications are typically divided into processes during the design phase, and a master process explicitly spawns sub-processes when it makes sense to logically separate significant application functionality. Processes, in other words, are an architectural construct.
By contrast, a thread is a coding construct that doesn't affect the architecture of an application. A single process might contains multiple threads; all threads within a process share the same state and same memory space, and can communicate with each other directly, because they share the same variables.
Threads typically are spawned for a short-term benefit that is usually visualized as a serial task, but which doesn't have to be performed in a linear manner (such as performing a complex mathematical computation using parallelism, or initializing a large matrix), and then are absorbed when no longer required. The scope of a thread is within a specific code module—which is why we can bolt-on threading without affecting the broader application.
--Alan Zeichick
Read the rest in Ready for Threading: Five Easy Steps for Making Your Code Run Faster
So most folks think Struts is Dead, huh? I've got news for you folks. Struts has been dead since 2002. For that matter, most Java frameworks have been dead for the last year. Most folks think Struts is dead because there won't be any new and whiz-bang features added in future releases. I'm willing to bet the other Java Web Frameworks won't add any whiz-bang features in the next few years either. Sure, WebWork might get a little XMLHttpRequest lovin' for client-side validation, and Tapestry might get pretty URLs - but both of these are features that these frameworks should've had in the first place. So what's the big deal? At least the Struts Developers have the guts to stand up and say "we're in maintenance mode". Shouldn't all framework developer's be able to say this? It's really quite an accomplishment.
--Matt Raible
Read the rest in Raible Designs ~ So Struts is Dead, huh?
The key advantage that TDD gives you is feedback. You write a failing test case, make it pass, and then you formulate the next test case. The wonderful thing is that when you get to that next test case, you have the feedback from getting the first one to pass to draw upon. Often that feedback will lead you to formulate the next test case in a different way. It could even lead you to produce a different interface for the class you were writing.
Now, what I've described might sound bad. It might sound like, well, maybe the decisions that you make during development will drift a bit. Drifting might not sound very good but the fact is it is good in this case. It's good because we control it. We are able to incorporate the things that we learn immediately when we learn them. The alternative is to ignore things that we learn or not learn them at all, and that's not a very clever strategy.
--Michael Feathers
Read the rest in Test Driven Development?!
the guts of the new consoles are geared to make the gaming equivalent of dumb blondes. It has to do with the fact that both the XBox 360 and the PS3's Cell CPU use "in-order" processing, which, to greatly simplify, means they've intentionally crippled the ability to make clever A.I. and dynamic, unpredictable, wide-open games in favor of beautiful water reflections and explosion debris that flies through the air prettily. That means the next generation of games will likely play just like this generation. Only shiny.
--David Wong and Haimoimoi
Read the rest in A Gamers' Manifesto
I think that when a novice asks us a question, it's OK for us to provide a simple, dogmatic-sounding answer. This person is learning, and is therefore not well-informed about the consequences of the choices he has in front of him. As a result, we have a responsibility to suggest the course we think is right and ask him to try it so he can learn the way we did. In this case, a little dogma doesn't hurt. Notice, though, that it's dogma from the learner's perspective, and only due to a lack of experience. For me, at least, it's a heuristic.
--J. B. Rainsberger on the junit mailing list, Monday, 23 May 2005 09:01:54
EVERYWHERE you look, the electronics industry seems to be playing its own mutant variations of limbo. But the question isn't "How low can you go?" At Dell, it's "How cheap can you go?" At Apple, it's "How cool can you go?" And at Microsoft's Windows division, it's "How slow can you go?"
--David Pogue
Read the rest in A Tiny Windows Laptop With a Sense of Fashion
None of the people who are likely to be hit by a terrorist attack voted for Bush. But the heartland people seemed to be saying, "We're not affected by it if there would be another terrorist attack."
--Joseph Zito
Read the rest in The New York Times > New York Region > A Blue City (Disconsolate, Even) Bewildered by a Red America
extreme caution is warranted when designing and building multi-threaded applications, particularly those which have a GUI component. Use of threads can be very deceptive. In many cases they appear to greatly simplify programming by allowing design in terms of simple autonomous entities focused on a single task. In fact in some cases they do simplify design and coding. However, in almost all cases they also make debugging, testing, and maintenance vastly more difficult and sometimes impossible. Neither the training, experience, or actual practices of most programmers, nor the tools we have to help us, are designed to cope with the non-determinism. For example, thorough testing (which is always difficult) becomes nearly impossible when bugs are timing dependent. This is particularly true in Java where one program can run on many different types of machines and OS platforms, and where each program must work under both preemptive or non-preemptive scheduling. As a result of these inherent difficulties, we urge you to think twice about using threads in cases where they are not absolutely necessary.
--Scott E. Hudson and Ian Smith
Read the rest in subArctic User's Manual
if the GPL is a one-way street, then closed-source commercial add-ons are a one-way superhighway. One shouldn't complain about a GPL add-on product, and then distribute a closed-source add-on. Something seems illogical about that combination. The GPL is a lot more open and less viral than proprietary code.
--Paul Everitt
Read the rest in Zope Dispatches
Family-values types often deplore the brutality of today's action titles. But have they ever closely examined who's committing this carnage?
Nine times out of 10, when you're blowing people's chests open with hollow-point bullets, you aren't playing as a terrorist or criminal. No, you're playing as a cop, a soldier or a special-forces agent -- a member of society's forces of law and order.
Consider our gaming history. In Doom, the game that began it all, you were a Marine. Then came a ceaseless parade of patriotic, heart-in-hand World War II games, in which you merrily blow the skulls off Japanese and German soldiers under the explicit authority of the U.S. of A. Yet anti-gaming critics didn't really explode with indignation until Grand Theft Auto 3 came along -- the first massively popular modern game where the tables turned, and you finally played as a cop-killing thug.
Why weren't these detractors equally up in arms about, say, the Rainbow Spear series? Because games lay bare the conservative logic that governs brutal acts. Violence -- even horrible, war-crimes-level stuff -- is perfectly fine as long as you commit it under the aegis of the state. If you're fighting creepy Arabs and urban criminals, go ahead -- dual-wield those Uzis, equip your frag grenades and let fly. Nobody will get much upset.
--Clive Thompson
Read the rest in Wired News: The Bad Lieutenant
I‘d like to say to the good citizens of Dover: if there is a disaster in your area, don‘t turn to God, you just rejected Him from your city,. And don‘t wonder why He hasn‘t helped you when problems begin, if they begin. I‘m not saying they will, but if they do, just remember, you just voted God out of your city. And if that‘s the case, don‘t ask for His help because he might not be there,
--Pat Robertson
Read the rest in Televangelist Robertson warns town of God‘s wrath
Normal users don't use bugzilla. Only power users & developers do. Besides, no one likes spending time to register.
--Eugenia Loli-Queru
Read the rest in Editorial: OSS Software, Deaf Developers & Unsatisfied Users - OSNews.com
Apple tends to be a very difficult company to work with. On the one hand, they do lovely stuff, on the other hand, their corporate secrecy is just mind-numbing, and to have to work with them on an engineering level is very, very difficult. We don’t have like a special relationship with them where we get early access versions of their work. In fact, the current, 1.4, is a lot shakier than it ought to be, and if you join the Apple developer program and you pay them enough money, you start getting early releases of Tiger, which I do. I’m not actually allowed to say anything about the fact that it’s flaking.
--James Gosling
Read the rest in James Gosling Q & A: Builder AU: Program: At Work
I see two main roles for validation:
(a) to protect the system from data that it cannot handle. If the system can only handle 7 values for the "colour" attribute of a car, then it should validate incoming data to check that it has one of those 7 values. It would be better to design the system to handle more colours, but if you can't afford to do that, then you must check that the incoming data fits within the design limits of your system.
(b) to enforce a contract. If you have a contract with the supplier of a news feed that all articles sent will carry either today's or yesterday's date, then you should check that your supplier is keeping to the contract. (You need to be very clear about what you plan to do when validation fails.)
There is also scope for reasonableness checks to catch data input errors. But they belong as close to the user interface level as possible, not at the information management level.
--Michael Kay on the xml-dev mailing list, Monday, 23 Aug 2004
Sun has a long history of innovative operating system work, and it's really great to see them starting to get parts of Solaris out under an open source license. Sun has obviously long depended on and interacted with the open source community, and their ability to work this through Sun Legal is impressive :-). An interesting question for Sun will be whether they can build a community around OpenSolaris that extends beyond Sun-employed developers in the same way that Apple has started to see success in building a community around Darwin.
--Robert N M Watson
Read the rest in Interview: Looking at FreeBSD 6 and Beyond
Program testing can be quite effective for showing the presence of bugs, but is hopelessly inadequate for showing their absence.
--Edsger W. Dijstra
Read the rest in Wired News: Battling Bugs: A Digital Quagmire
If you like eclipse, you'll love IDEA -- once you get accustomed to the keystrokes. All its refactoring and completion is just that bit smarter than Eclipse. The only thing Eclipse does better IMHO is CVS synchronisation (and IDEA is fine, just not as neat)
--Tom Davies on the java-dev mailing list, Wednesday, 4 May 2005 00:33:17
SWT is a good competitive force I think, but they are really having trouble being cross platform.
--Henry Story on the java-dev mailing list, Monday, 6 Jun 2005 11:38:13
While I recognize their value, my experience with coverage tools is that they tend to make you obsessive about things that don't necessarily matter. Coverage tools can be a distraction- you obsess over the last 10% of code that isn't covered and you forget to test some essential functionality that your users depend on every day.
--Cedric Beust
Read the rest in Vanward Technologies [ Interview with TestNG's Cedric Beust ]
There's just one problem: Covering large expanses of real estate with painstakingly processed silicon is expensive. Without what the industry coyly calls "incentives" - government subsidies, rebates, tax credits, and the like - photovoltaic panels wouldn't have much of a market. Even in sunny places like California, the pre-rebate cost of PV-generated electricity is roughly 21 cents per kilowatt-hour. Coal (from 4.74 cents per kilowatt-hour), natural gas (5.15 cents), nukes (5.92 cents), even windmills (5.15 cents) offer cheaper ways to keep the lights on.
But PV's price differential isn't quite as bad as it seems, thanks to one huge advantage: Solar panels are small enough to fit on rooftops, which is darn close to the electricity user. By bringing energy production and consumption together - something coal, nukes, and gas can't do - solar has the potential to cut out the middleman, along with his markup. That is, instead of competing with wholesale power from distant power plants, rooftop solar competes with retail kilowatt-hours delivered by the local electric company, which often are marked up as much as 1,000 percent over their original generating cost. What's more, retail prices typically peak on hot, sunny summer days, when air conditioners suck every last electron from the grid - precisely when solar panels are most productive. Add a final boost from government handouts, and solar can get over the hump, especially with homeowners and other customers whose motives might not be purely economic.
--Spencer Reiss
Read the rest in Wired 13.07: The Dotcom King & the Rooftop Solar Revolution
if you have 50K lines of code in 200 Java files and almost 300 unit tests, you don't want to go over each class over and over again to confirm that nothing important remains untested. So then you need a separate administration for that. Conclusively, it's in some situations much easier and more cost-effective to just reach 100% coverage.
--Ernst de Haan on the cobertura-devel mailing list, Monday, 26 Sep 2005 09:32:15
A key way to encourage this behavior oriented approach is to only use an objects, globally, public interface in the tests. One objection I have heard to this approach is that you will miss bugs because you correctness checks will, inevitably, be made at a higher level. This argument is just wrong. Any bug that is undetectable from the public interface does not matter. Of course, detecting some bugs via the public interface might be a bit more difficult than immediately reaching into the guts of your objects but it will be better because you will be testing the intended behavior of those objects, not their implementations. As a side benefit you will be implicitly documenting the public interface with is a Good Thing.
--Peter Williams
Read the rest in Peter Williams’ Weblog » Blog Archive » Test Anti
Every once in a while, you just have to go down to the native code to really feel like a real programmer. Those garbage collections and bytecode verifications are all great, but it's just not so fun to live in an environment where you can't even shoot yourself.
--Kohsuke Kawaguchi
Read the rest in Kohsuke Kawaguchi's Blog: New version of com4j posted
Unlike the bug database at Sun and bug databases on numerous projects, Apple insists on keeping their Java bug reports locked up tight. This leads to frustration and a sense of pointlessness among those who are spending (unpaid) time to do quality testing for Apple and those people can't even tell (a) if their bug report was helpful, (b) if they're alone in seeing a problem, and (c) if the cluster their problem relates to is fixed internally and just waiting for the next release.
When you run an opaque process but rely on the kindness of strangers, you get frustration and annoyance and drive people to just give up. For a company that's so good at designing user interfaces, this should be a no-brainer. Apparently, they still don't get it.
--Todd O'Bryan on the java-dev mailing list, Sunday, 23 Oct 2005 21:53:24
If ID really were a scientific theory, positive evidence for it, gathered through research, would fill peer-reviewed scientific journals. This doesn't happen. It isn't that editors refuse to publish ID research. There simply isn't any ID research to publish. Its advocates bypass normal scientific due process by appealing directly to the non-scientific public and - with great shrewdness - to the government officials they elect.
The argument the ID advocates put, such as it is, is always of the same character. Never do they offer positive evidence in favour of intelligent design. All we ever get is a list of alleged deficiencies in evolution. We are told of "gaps" in the fossil record. Or organs are stated, by fiat and without supporting evidence, to be "irreducibly complex": too complex to have evolved by natural selection.
In all cases there is a hidden (actually they scarcely even bother to hide it) "default" assumption that if Theory A has some difficulty in explaining Phenomenon X, we must automatically prefer Theory B without even asking whether Theory B (creationism in this case) is any better at explaining it. Note how unbalanced this is, and how it gives the lie to the apparent reasonableness of "let's teach both sides". One side is required to produce evidence, every step of the way. The other side is never required to produce one iota of evidence, but is deemed to have won automatically, the moment the first side encounters a difficulty - the sort of difficulty that all sciences encounter every day, and go to work to solve, with relish.
--Richard Dawkins and Jerry Coyne
Read the rest in Guardian Unlimited | Life | One side can be wrong
Companies do work when it is profitable, either immediately or eventually. There's no sense that you are increasing the general wealth of the locality by working on a Swhahili version. From the perspective of the company, the business case for delivering obscure products to a niche market is a difficult argument to make. And from the niche market's perspective, the gift is a trojan horse, for every purchase of the Swahili version of the product made by company X, which may be located in, say, the USA, represents a loss of local money.
This is arguably a version of colonialism The remote proprietor is the one who's gaining the rent here. It is not benefiting the locality as meaningfully as in the case of the open source example, where the ownership of the code stays local and the developer, the training courses, what have you, benefit the local economy both directly and indirectly, through the production of valuable cultural capital.
We see an understanding of this dynamic in Brazil, where the government is behind OpenOffice.org and open source in general. We see this in India and elsewhere, where governments understand that they can support OpenOffice.org and they can support open source, and the people who are benefiting are the localities. It is a politically inexpensive but valuable logic.
--Luis Suarez-Potts
Read the rest in :: Interviews : OpenOffice.org 2.0: An Office Suite With No Horizons
Neither Intel nor Motorola nor any other chip company understands the first thing about why that architecture was a good idea.
Just as an aside, to give you an interesting benchmark—on roughly the same system, roughly optimized the same way, a benchmark from 1979 at Xerox PARC runs only 50 times faster today. Moore’s law has given us somewhere between 40,000 and 60,000 times improvement in that time. So there’s approximately a factor of 1,000 in efficiency that has been lost by bad CPU architectures.
The myth that it doesn’t matter what your processor architecture is—that Moore’s law will take care of you—is totally false.
--Alan Kay
Read the rest in ACM Queue - A Conversation with Alan Kay - Big talk with the creator of Smalltalk—and much more.
Most variables are rather temporary in nature. Some parts of your program are like little houses. You walk in and they have their own variables. In one house, you may have adad
that represents Archie, a travelling salesman and skeleton collector. In another house,dad
could represent Peter, a lion tamer with a great love for flannel. Each house has its own meaning fordad
-- why the lucky stiff
Read the rest in Why's (Poignant) Guide to Ruby :: 3. A Quick (and Hopefully Painless) Ride Through Ruby (with Cartoon Foxes)
Whenever a new technology has disrupted copyright, we've changed copyright. Copyright isn't an ethical proposition, it's a utlititarian one. There's nothing *moral* about paying a composer tuppence for the piano-roll rights, there's nothing *immoral* about not paying Hollywood for the right to videotape a movie off your TV. They're just the best way of balancing out so that people's physical property rights in their VCRs and phonographs are respected and so that creators get enough of a dangling carrot to go on making shows and music and books and paintings.
Technology that disrupts copyright does so because it simplifies and cheapens creation, reproduction and distribution. The existing copyright businesses exploit inefficiencies in the old production, reproduction and distribution system, and they'll be weakened by the new technology. But new technology always gives us more art with a wider reach: that's what tech is *for*.
Tech gives us bigger pies that more artists can get a bite out of. That's been tacitly acknowledged at every stage of the copyfight since the piano roll. When copyright and technology collide, it's copyright that changes.
Which means that today's copyright -- the thing that DRM nominally props up -- didn't come down off the mountain on two stone tablets. It was created in living memory to accommodate the technical reality created by the inventors of the previous generation. To abandon invention now robs tomorrow's artists of the new businesses and new reach and new audiences that the Internet and the PC can give them.
--Cory Doctorow
Read the rest in Cory Doctorow: Microsoft Research DRM talk
Not all MS employees are evil, but some are. I once had the opportunity to read several MS internal marketing documents (and no, they DIDN'T put me under an NDA, thanks) regarding their Linux strategy. Those people were every bit as evil as the Linux community thinks. Just because you're paranoid, doesn't mean someone is not out to get you.
--Mary E. Tyler on the computer book publishing mailing list, Friday, 30 Sep 2005 14:40:36
You can dress up intelligent design and make it look like science, but it just doesn't pass muster. In science class, you don't say to the students, "Is there gravity, or do you think we have rubber bands on our feet?"
--Steven Stough
Read the rest in A Web of Faith, Law and Science in Evolution Suit
Custom development is that murky world where a customer tells you what to build, and you say, "are you sure?" and they say yes, and you make an absolutely beautiful spec, and say, "is this what you want?" and they say yes, and you make them sign the spec in indelible ink, nay, blood, and they do, and then you build that thing they signed off on, promptly, precisely and exactly, and they see it and they are horrified and shocked, and you spend the rest of the week reading up on whether your E&O insurance is going to cover the legal fees for the lawsuit you've gotten yourself into or merely the settlement cost. Or, if you're really lucky, the customer will smile wanly and put your code in a drawer and never use it again and never call you back.
--Joel Spolsky
Read the rest in Joel on Software
It doesn't take a lot of tests to realize that using package and class names to categorize your tests doesn't scale and quickly leads to very complicated code bases.
There is also the fact that some categories transcend (or should I say cross-cut?) packages and class names, and you give a pretty good example yourself: slow and fast tests. Let's say I have a database and a gui package, and on top of that, each of these categories has slow and fast tests. How do you solve this problem?
This is precisely why we have annotations: to attach additional meaning to Java elements (packages, classes and methods) that cannot easily be conveyed otherwise.
--Cedric Beust on the junit mailing list, Sunday, 4 Aug 2005 14:28:31
Motor vehicles have to be safe, and there are rules and regulations governing their development and production which, by and large, keep the roads safe from exploding cars.
It does not stop accidents caused by driver error or poor maintenance, but it does make us safer.
And if a group of people build their own cars then they have to follow those same rules in order to be allowed to use public roads, even if they gave their cars away.
It should be the same for software, especially in our networked world where other people's insecure computers host spambots and other malware that can cause damage to all network users.
--Bill Thompson
Read the rest in BBC NEWS | Technology | Taking on software liability
Sometime around my early thirties I stumbled upon evolutionary biology, particularly in the form of Richard Dawkins’s books The Selfish Gene and then The Blind Watchmaker and suddenly (on, I think the second reading of The Selfish Gene) it all fell into place. It was a concept of such stunning simplicity, but it gave rise, naturally, to all of the infinite and baffling complexity of life. The awe it inspired in me made the awe that people talk about in respect of religious experience seem, frankly, silly beside it. I'd take the awe of understanding over the awe of ignorance any day.
--Douglas Adams
Read the rest in An Interview with Douglas Adams, Winter 1998
often the program density and comprehensibility are inversely related. It’s always funny to talk to people who are like real Perl freaks, because they love to make these magic pieces of Perl code, and there’s no detectable flaws or anything in there, it’s just randomly assembled characters, or it looks pretty random. It’s a sort of “write once, never look at it again”.
--James Gosling
Read the rest in James Gosling Q & A: Builder AU: Program: At Work
There are two sorts of people in the world: those who believe Joss Whedon is a genius and those who are wrong.
--Connie Ogle
Read the rest in Herald.com | 09/30/2005 | A sci
There is a built-in incentive to demolish. The first instinct after natural disasters is almost always to demolish buildings. It is almost always wrong.
--Richard Moe, president of the National Trust for Historic Preservation
Read the rest in 9th Ward has history, but does it have a future? - washingtonpost.com Highlights
I'm troubled by the use of "better" in this conversation. Would it make more sense to say "optimized for X", where "X" is something a little more specific.
--Nathan Young on the xml-dev mailing list, Monday, 3 Oct 2005 14:48:59
Oh lord the damned NS*ScriptError messages...is there anything that makes me want to lock a dev in a room with 4000 pokemon cards, a bulimic fruit bat, and my son right AFTER he's drank two liters of Mountain Dew to wash down a pound of chocolate covered espresso beans?
I swear, it makes me want to file bug reports that say "Got one of those " NSReceiverEvaluationScriptError: 4" errors again, and when I get the "can you be more informative" emails, reply back with "I don't know, can YOU?"
Why even bother with error messages if they're meaningless? Just pop a dialog that says, "Didn't work, won't tell you why, sucks to be you". At least that's more descriptive.
--John C. Welch on the applescript-users mailing list, Sunday, 02 Oct 2005 11:20:48
There is no issue of democracy here. You don't get to vote on the design of the 757 engine and you don't get to vote on the means and processes of evolution. You can investigate, hypothesise, experiment, observe, record, publish and repeat, but otherwise, take your faith to your church, synagogue, mosque or temple and I am with you, but push it into a science curriculum, and I am here with the carpenter, board in hand to ram it up your collection plates.
--Claude L (Len) Bullard, on the xml-dev mailing list, Friday, 12 Aug 2005 08:27:02
it's hard to create highly reusable frameworks. They become complex, hard to learn, and even harder to maintain. I was on both the framework consumer and the framework producer side, and it can be hard from either perspective. A key challenge in framework development is how to preserve stability over time. The more miles a framework gets the better you understand how you should have built it in the first place. Therefore you would like to tweak and improve it. However, since your framework is heavily used you are highly constrained in what you can change. At this point it is crucial to have well defined APIs and to make it clear to the clients what is published API and what internal code is. For published APIs you should commit to stability and for internal code you have the freedom to change it.
--Erich Gamma
Read the rest in Erich Gamma on Flexibility and Reuse
there are really two things we mean by open source: we mean the licensing/distribution of software, but also the community that is built around it. Key to the success of an open source project is both of these elements, and creating and maintaining that community requires easily as much investment as the software development itself. However, once achieved, the pay-offs for everyone involved can be huge.
--Robert N M Watson
Read the rest in Interview: Looking at FreeBSD 6 and Beyond
Abbot is, like linux, free if your time is worth nothing :-) Abbot has only volunteer support, but is OSS so you may fix whatever you can. Abbot tests only Java applications: its support for AWT/Swing is mature and solid, but its support for SWT is much more {underdeveloped, under development}. It is "pure Java," and thus should work on whatever platform your target window system is supported; in practice there are known problems on Macs due to Apple's Java support (or lack thereof). It is API-oriented (and therefore plays well with JUnit and whatever SCM you wanna use) but also has nice record/edit/play support (Costello) for Swing but not SWT (at least, not yet).
--Thomas L Roche on the java-gui-testing mailing list, Sunday, 28 Aug 2005 13:24:48
XP has some really deep, deep tacit assumptions going on, and I think the deepest tacit assumption is that we have a significant organizational problem, but we can't fix the organization. Essentially, the crap rolls downhill and ends up rolling right into the programmer's lap. When the product or the program turns out to be unsatisfactory, the fingers point to the programmer. XP is very well-intentioned; it's the software-development community beginning to say, "Hey, this is not only unfair to us, but it's not productive as a discipline and we can do a lot better." I applaud that sentiment and I agree with that sentiment, but then XP says, "OK, so, I can't change the organizational failings, so, I'm going to build my own internal defenses." I suppose this is probably better than nothing, but I'm interested in changing the way organizations are constructed. I believe that in order to create quality software, you have to change the organization. We can change the organization, and it strikes me that the assumption underlying XP is that the organization's structure is a given.
--Alan Cooper
Read the rest in Extreme Programming vs. Interaction Design
The truth is, a trade show is not a very cost-effective way to reach potential customers. Given the cost of travel, hotels, the booth, a thousand bucks for nice brochures, and everybody taking a week off of work, it's a really expensive way to get in front of prospects, especially since I can write an article on my website and get in front of 1000 times as many people.
But that's not really the point: the point is to have interactive experiences with your customers. You can try out lots of different pitches and really listen to how people respond to them, which is something you can't do in non-interactive marketing like web sites and magazine ads.
--Joel Spolsky
Read the rest in Joel on Software
science isn't about something being true or not true: that's a humanities graduate parody. It's about the error bar, statistical significance, it's about how reliable and valid the experiment was, it's about coming to a verdict, about a hypothesis, on the back of lots of bits of evidence.
--Ben Goldacre
Read the rest in Guardian Unlimited | Life | Don't dumb me down
President Bush doesn't often find common cause with Cuba, Zimbabwe, Iran, Syria and Venezuela. But this month the Bush administration joined with those countries and others to eviscerate a forthright U.N. statement that nations have an obligation to respond to genocide.
It was our own Axis of Medieval, and it reflected the feckless response of President Bush to genocide in Darfur. It's not that he favors children being tossed onto bonfires or teenage girls being gang-raped and mutilated, but he can't bother himself to try very hard to stop these horrors, either.
--Nicholas D. Kristof
Read the rest in A Wimp on Genocide
I begged him to let me continue. People were dying, and I was the only doctor on the tarmac where scores of nonresponsive patients lay on stretchers. Two patients died in front of me. I showed him my medical credentials. I had tried to get through to FEMA for 12 hours the day before and finally gave up. I asked him to let me stay until I was replaced by another doctor, but he refused. He said he was afraid of being sued. I informed him about the Good Samaritan laws and asked him if he was willing to let people die so the government wouldn't be sued, but he would not back down. I had to leave.
--Dr. Mark N. Perlmutter
Read the rest in 2theadvocate.com: News
It would almost be embarrassing to listen to the JavaOne keynotes from seven, eight or nine years ago. We absolutely underhyped it. We had no clue what this technology was going to do.
--Scott McNealy
Read the rest in Gosling: A closer look at Java | Tech News on ZDNet
We are still in a world where an attack like the slammer worm combined with a PC BIOS eraser or disk locking tool could wipe out half the PCs exposed to the internet in a few hours. In a sense we are fortunate that most attackers want to control and use systems they attack rather than destroy them.
--Alan Cox
Read the rest in O'Reilly Network: The Next 50 Years of Computer Security: An Interview with Alan Cox
I will say there's no shortage of dissent in America - it's just that it's largely impotent. Challenges to the White House narrative continue to be reframed as unpatriotic. And fear-mongering has disabled civil public discourse. Before the last election, our friends abroad could say the problem was Bush, not the American people. No longer.
--Garry Trudeau
Read the rest in Guardian Unlimited | Newsroom | Welcome back, BD
I think if I hear one more “You can give a man a fish, and feed him for one day, or you can teach a man to fish and …” parable from a donor I will puke. Aside from all the evident problems around funding people to fish for fish that are rapidly disappearing because we are funding so many people to fish them, the basic truth is that you need more than knowledge to fish, you need a rod, a boat, a net, a bucket, a knife, and not least of all, a full belly while you try. Aside from that, realistically you need a home to come back to, and a market to trade your fish for clothing, shelter, and vegetables. If you are poor you have to rent these things: its expensive being poor. By and large, in my experience, and I have a lot of experience, people that need help generally have a pretty clear idea of what kind of help they need, and its rarely a new paradigm or puritan work ethic or any other notional thing, its mostly capital, both financial and social
--Rob Bray
Read the rest in Taking a Long View: GAAP: The Leaky Ceiling
the adoption of programming languages has very often been somewhat accidental, and the emphasis has very often been on how easy it is to implement the programming language rather than on its actual merits and features. For instance, Basic would never have surfaced because there was always a language better than Basic for that purpose. That language was Joss, which predated Basic and was beautiful. But Basic happened to be on a GE timesharing system that was done by Dartmouth, and when GE decided to franchise that, it started spreading Basic around just because it was there, not because it had any intrinsic merits whatsoever.
This happens over and over again. The languages of Niklaus Wirth have spread wildly and widely because he has been one of the most conscientious documenters of languages and one of the earlier ones to do algorithmic languages using p-codes (pseudocodes)—the same kinds of things that we use.
--Alan Kay
Read the rest in ACM Queue - A Conversation with Alan Kay - Big talk with the creator of Smalltalk—and much more.
In the 1990s, we learned to grok objects. The revolution in mainstream software development from structured programming to object-oriented programming was the greatest such change in the past 20 years, and arguably in the past 30 years. There have been other changes, including the most recent (and genuinely interesting) naissance of web services, but nothing that most of us have seen during our careers has been as fundamental and as far-reaching a change in the way we write software as the object revolution.
Until now.
Starting today, the performance lunch isn’t free any more. Sure, there will continue to be generally applicable performance gains that everyone can pick up, thanks mainly to cache size improvements. But if you want your application to benefit from the continued exponential throughput advances in new processors, it will need to be a well-written concurrent (usually multithreaded) application. And that’s easier said than done, because not all problems are inherently parallelizable and because concurrent programming is hard.
--Herb Sutter
Read the rest in The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software
If you don't unit test then you aren't a software engineer, you are a typist who understands a programming language.
--Moses Jones
Read the rest in An Early Look at JUnit 4
Mr. President, this job can't be fun for you any more. There's no more money to spend--you used up all of that. You can't start another war because you used up the army. And now, darn the luck, the rest of your term has become the Bush family nightmare: helping poor people. Listen to your Mom. The cupboard's bare, the credit cards maxed out. No one's speaking to you. Mission accomplished. "Now it's time to do what you've always done best: lose interest and walk away. Like you did with your military service and the oil company and the baseball team. It's time. Time to move on and try the next fantasy job. How about cowboy or space man? Now I know what you're saying: there's so many other things that you as President could involve yourself in. Please don't. I know, I know. There's a lot left to do. There's a war with Venezuela. Eliminating the sales tax on yachts. Turning the space program over to the church. And Social Security to Fannie Mae. Giving embryos the vote.
But, Sir, none of that is going to happen now. Why? Because you govern like Billy Joel drives. You've performed so poorly I'm surprised that you haven't given yourself a medal. You're a catastrophe that walks like a man. Herbert Hoover was a shitty president, but even he never conceded an entire city to rising water and snakes.
On your watch, we've lost almost all of our allies, the surplus, four airliners, two trade centers, a piece of the Pentagon and the City of New Orleans. Maybe you're just not lucky. I'm not saying you don't love this country. I'm just wondering how much worse it could be if you were on the other side.
So, yes, God does speak to you. What he is saying is: "Take a hint."
--Bill Maher
If I see only a certification without a general C.S. or Computer Engineering degree, I move on to the next résumé. After we advertise a position there are just too many to go through without quickly culling down the amount of résumés that get a closer look. If you do have a degree from a decent school, why bother with the far less impressive certification? If you have a degree and you feel you still need a certification to prove you can learn Java, I just don't get it. If anything, I look for Java experience (professional or "on your own"), not Java certifications. But normally I don't care much about the language specifics, they are such a small part of the job. The exception is people with VB or JavaScript and "HTML" experience and no other languages mentioned, they go straight to the bin.
--Scott Palmer on the java-dev mailing list, Monday, 5 Sep 2005 23:54:51
Rails is opinionated software. It eschews placing the old ideals of software in a primary position. One of those ideals is flexibility—the notion that we should try to accommodate as many approaches as possible, that we shouldn't pass judgement on one form of development over another. Well, Rails does, and I believe that's why it works.
With Rails, you trade flexibility at the infrastructure level to gain flexibility at the application level. If you are happy to work along the golden path that I've embedded in Rails, you gain an immense reward in terms of productivity that allows you to do more, sooner, and better at the application level.
--David Heinemeier Hansson
Read the rest in O'Reilly Network: Ruby on Rails: An Interview with David Heinemeier Hansson
"Run everywhere" isn't very everywhere, is it? Some days it's just "Windows and maybe Linux or Mac." If J2SE isn't worth running on set-top boxes and game consoles, and if it's always behind or half-baked on Mac and Linux, is it ultimately just a "me too" way to write Windows applications?
--Chris Adamson
Read the rest in Chris Adamson's Blog: New Platforms, No Java
Before Hurricane Katrina breached a levee on the New Orleans Industrial Canal, the Army Corps of Engineers had already launched a $748 million construction project at that very location. But the project had nothing to do with flood control. The Corps was building a huge new lock for the canal, an effort to accommodate steadily increasing barge traffic. Except that barge traffic on the canal has been steadily decreasing.
--Michael Grunwald
Read the rest in Money Flowed to Questionable Projects
If our system did such a poor job when there was no enemy, how would the federal, state and local governments have coped with a terrorist attack that provided no advance warning and that was intent on causing as much death and destruction as possible?
--Senator Susan Collins, R-Maine
Read the rest in Flooding Recedes in New Orleans; U.S. Inquiry Is Set
I'm going home even if it comes down to walking to New Orleans. It's my life, and I prefer to be in Louisiana, period. And it doesn't matter what's left there. I'm going to rebuild even if I have to hold a shovel and a horn at the same time.
--Glen Andrews
Read the rest in Putting Down New Roots on More Solid Ground
What I'm hearing which is sort of scary is they all want to stay in Texas. Everyone is so overwhelmed by the hospitality. And so many of the people in the arena here, you know, were underprivileged anyway, so this is working very well for them.
--Barbara Bush
Read the rest in Guardian Unlimited | Special reports | Cheney called in as Bush says he will lead his own inquiry into Katrina
I took the classic approach to software development:
- encounter a bug
- blame the tool
- post to the mailing list and complain about it
- read the docs
- find own mistake and crawl back into my corner
--Ralph Scheuer on the java-dev mailing list, Tuesday, 30 Aug 2005 15:38:11
The sad bottom line however is that customer service in general is just a lost art. I am dealing with nightmare issues right now with my health insurance company, my cell phone company (Cingular), my car insurance company, my bank, and probably a few others I am forgetting. Everyone is trying to rip you off all the time and they all hire complete morons who have no interest in helping you if it takes longer than 2 minutes. It makes me want to sell my car, put my money under my mattress, disconnect my cable/internet/phone, and just buy a flock of sheep and tend to them.
--Adam Fialkov on the wwwac mailing list, Monday, 29 Aug 2005 16:25:04
Among the controversies that students of evolution commonly face, these are genuinely challenging and of great educational value: neutralism versus selectionism in molecular evolution; adaptationism; group selection; punctuated equilibrium; cladism; "evo-devo"; the "Cambrian Explosion"; mass extinctions; interspecies competition; sympatric speciation; sexual selection; the evolution of sex itself; evolutionary psychology; Darwinian medicine and so on. The point is that all these controversies, and many more, provide fodder for fascinating and lively argument, not just in essays but for student discussions late at night.
Intelligent design is not an argument of the same character as these controversies. It is not a scientific argument at all, but a religious one. It might be worth discussing in a class on the history of ideas, in a philosophy class on popular logical fallacies, or in a comparative religion class on origin myths from around the world. But it no more belongs in a biology class than alchemy belongs in a chemistry class, phlogiston in a physics class or the stork theory in a sex education class. In those cases, the demand for equal time for "both theories" would be ludicrous. Similarly, in a class on 20th-century European history, who would demand equal time for the theory that the Holocaust never happened?
--Richard Dawkins and Jerry Coyne
Read the rest in Guardian Unlimited | Life | One side can be wrong
A year ago the US army corps of engineers proposed to study how New Orleans could be protected from a catastrophic hurricane, but the Bush administration ordered that the research not be undertaken. After a flood killed six people in 1995, the Congress created the Southeast Louisiana Urban Flood Control Project. Operated by the corps of engineers, levees and pumping stations were strengthened and renovated. In 2001, when George Bush became president, the Federal Emergency Management Agency issued a report stating that a hurricane striking New Orleans was one of the three most likely potential disasters - after a terrorist attack on New York City. But by 2003 the federal funding essentially dried up as it was drained into the Iraq war. By 2004, the Bush administration cut the corps of engineers' request for holding back the waters of Lake Pontchartrain by more than 80%. By the beginning of this year, the administration's additional cuts, reduced by 44% since 2001, forced the corps to impose a hiring freeze. The Senate debated adding funds for fixing levees, but it was too late.
--Sidney Blumenthal
Read the rest in Guardian Unlimited | Special reports | Katrina comes home to roost
One thing that scares me about the future of New Orleans is that FEMA and OSHA have gained a reputation in other disasters for single-handedly bulldozing property in order to pave the way for rebuilding and relocation. They're considered extremely high-handed and imperious, and I'm worried that they will simply declare entire neighborhoods "uninhabitable" and bulldoze them, paving the way for "re-development," which would reduce New Orleans to a ranch-style carbon copy of the rest of America -- combine that with the recent Supreme Court decision on eminent domain for commercial viability, and it seems like a likely enough scenario. Such an outcome would be a fate worse than death for a city with the (now waterlogged) beauty of New Orleans. Although it's not a priority YET, I hope soon enough that there's a campaign to prevent FEMA and OSHA from doing such violence to our great city.
--Nabil Al-tikriti
Read the rest in TruthTalkzIRAQ
I always found it irritating if new software required my customers to upgrade their JRE: if you balance the inconvenience of upgrading for several thousand customers against the inconvenience of developing in a slightly older version for a handful of developers, you may come to the conclusion that the customer interest carries more weight.
--Stephen Winnall on the Java Developers mailing list, Saturday, 27 Aug 2005 23:25:08
Sony acquired a relatively tiny entertainment company and it started to massively screw up. When MP3 rolled around and Sony's walkman customers were clamoring for a solid-state MP3 player, Sony let its music business-unit run its show: instead of making a high-capacity MP3 walkman, Sony shipped its Music Clips, low-capacity devices that played brain-damaged DRM formats like Real and OpenAG. They spent good money engineering "features" into these devices that kept their customers from freely moving their music back and forth between their devices. Customers stayed away in droves.
Today, Sony is dead in the water when it comes to walkmen. The market leaders are poky Singaporean outfits like Creative Labs -- the kind of company that Sony used to crush like a bug, back before it got borged by its entertainment unit -- and PC companies like Apple.
That's because Sony shipped a product that there was no market demand for. No Sony customer woke up one morning and said, "Damn, I wish Sony would devote some expensive engineering effort in order that I may do less with my music." Presented with an alternative, Sony's customers enthusiastically jumped ship.
--Cory Doctorow
Read the rest in Cory Doctorow: Microsoft Research DRM talk
Evolution is a robust theory, in the scientific sense, that has been tested and confirmed again and again. Intelligent design is not a theory at all, as scientists understand the word, but a well-financed political and religious campaign to muddy science. Its basic proposition - the intervention of a designer, a k a God - cannot be tested. It has no evidence to offer, and its assumptions that humans were divinely created are the same as its conclusions. Its objections to evolution are based on syllogistic reasoning and a highly selective treatment of the physical evidence.
--Verlyn Klinkenborg
Read the rest in Grasping the Depth of Time as a First Step in Understanding Evolution
More than 825 million Java-enabled smart cards have been issued. Java is also a key player in the mobile space with 579 million Java-enabled mobile devices shipped. On the desktop, Sun claims that there are more than 650 million desktops with Java software. On the development side there are 4.5 million Java developers and 22 Java-compatible application servers.
--Sean Michael Kerner
Read the rest in Java Turns 10
Actually, SWT was largely born of a desire to create decent client- side applications, period. Client-side applications that exhibited standard platform behaviour.
--Bill Hutten on the java-dev mailing list, Sunday, 5 Jun 2005 19:04:23
I think it's pretty obvious that the Java community lacks creativity when it comes to product names. We really should stop naming our products "JSomething" or "Something4j".
--Janek Schwarz
Read the rest in The Wannabe Java Rockstar: Alternatives to Java Native Interface (JNI)
In programming these days, cheaper isn't about price, it's about mental effort.
--Jason Hunter
Read the rest in Servlets.com Weblog: The Innovator's Dilemma: It's Happening to Java
It's my experience that neither users nor customers can articulate what it is they want, nor can they evaluate it when they see it.
Neither the people who buy software nor the people who use it have the capability of visualizing something as complex as the behavior of software. They also don't have the ability to analyze what appropriate behavior is.
Now, I think that there are two sides to software—there's the side that touches the hardware, the central processing unit and peripherals, and it has one type of defining behavior—you know, it's fast and error-free and deterministic. Then on the other side, there's the human side, and humans are slow and error-prone and they're inferential and judgmental and emotional. In my experience, the skills that make you good at one of those things are no help at all on the other thing.
So, what happens is you take professional logicians—programmers—and they will look at the problem from that logical point of view. They'll look at it from, "How do we structure this code? They'll look at, "What is the code that I have to build?" Then when they say, "Let's look at the human issues," they bring those same logical tools to the party.
On the other side, you have the customer and/or user, and they tend to do what we call "automating the pain." They say, "What is it we're doing now? How would that look if we automated it?" Whereas, what the design process should properly be is one of saying, "What are the goals we're trying to accomplish and how can we get rid of all this task crap?"
When you put those two constituencies together, they come up with a solution that is better than not having those two constituencies together, I grant that. But I don't believe that it is a solution for the long term; I believe that defining the behavior of software-based products and services is incredibly difficult. It has to be done from the point of view of understanding and visualizing the behavior of complex systems, not the construction of complex systems.
--Alan Cooper
Read the rest in Extreme Programming vs. Interaction Design
I don’t accept the currently fashionable assertion that any view is automatically as worthy of respect as any equal and opposite view. My view is that the moon is made of rock. If someone says to me “Well, you haven’t been there, have you? You haven’t seen it for yourself, so my view that it is made of Norwegian Beaver Cheese is equally valid” - then I can’t even be bothered to argue. There is such a thing as the burden of proof, and in the case of god, as in the case of the composition of the moon, this has shifted radically. God used to be the best explanation we’d got, and we’ve now got vastly better ones. God is no longer an explanation of anything, but has instead become something that would itself need an insurmountable amount of explaining. So I don’t think that being convinced that there is no god is as irrational or arrogant a point of view as belief that there is. I don’t think the matter calls for even-handedness at all.
--Douglas Adams
Read the rest in An Interview with Douglas Adams, Winter 1998
SLOC is the most misused metric. I understand the desire for managers to be able to measure productivity, but SLOC basically measures typing volume. It doesn't factor in reuse, defects or design quality.
--Brian Sletten
Read the rest in Vanward Technologies [ Interview with Bosatsu Consulting's Brian Sletten ]
A few programmers like to put their public API in one package and their private implementation in another. They attempt to hide the "private" package from the client by not publishing its API. From a security viewpoint, exposing your private package to your public package inherently exposes it to everyone else (including the client). This may fly for application code, but you must hold reusable libraries to a higher standard. Java provides no way to say, "make foo public, but only for this one other package." In addition, splitting your public API and implementation into two different packages confines you to class granularity, whereas package scoping enables you to mix public and package-private members in the same class.
--Bob Lee
Read the rest in Bob Lee's Blog: Package Scoping And Unit Testing
the fact that SWT embraces the operating systems makes it attractive to people who believe that native widgets are essential. Windows programmers who were considering C, C++, MFC, ATL or even C# for their next project are looking at Java and SWT. Open source programmers also like the fact that when they use SWT, they are really leveraging technologies like GTK and their work can be compiled easily to native code using GCJ.
--Steve Northover
Read the rest in Desktop Java with SWT: an interview with Steve Northover
When I was at Microsoft, the prevailing internal assumption was that:
1) Platforms were great because they were "black holes" meaning that the more functionality they had, the more they sucked in users and the more users they had the more functionality they sucked in and so, it was a virtuous cycle.
2) To get this functionality, they had to be as extensible as possible so that extensibility, not ease of development was the priority for the API's.
3) Since the rest of us often found aforesaid API's complex/arcane, and since the rest of us built the "apps" that the corporations used, there needed to be a layer above the API's called a Framework which hid the complexity and provided a kindler simpler gentler programming paradigm. (Think VB or MFC)
4) If everyone who could code could use this Framework, then they would build a plethora of applications locked into the platform and, hey presto, "stickiness". Thus building an IDE and a Framework was the sine qua non of a platform even if it lost tons of money.
--Adam Bosworth
Read the rest in Adam Bosworth's Weblog: What is the platform?
the Java bridge is a wonderous piece of software. Enabling developers to write Cocoa apps in Java was a hard problem, and the programmers who created the bridge are among the best in the world. I think that it was a clever move for Apple to develop it and that it makes a nice bullet-point on a PowerPoint presentation. That said, I would never advise a client to write a Cocoa application in Java. Cocoa is a very elegant framework when used with Objective-C. Everything becomes buggy, slower, larger, and less documented when you write it in Java.
--Aaron Hillegass
Read the rest in Big Nerd Ranch
gratuitous use of HashMaps has always been a sign of a weak design.
--Rick Carson
Read the rest in Ken Arnold's Blog: Generics Considered Harmful
"hi" or "low" ASCII are misleading terms for "not ASCII". When someone says "high ASCII" what they most often meant historically was specifically some character set, such as "the Commodore 64 character set", "the MS-DOS character set", "the Atari character set", or "the MacRoman character set". ie., it is an ambiguous term that can lead to misunderstanding.
Worse, in the case of Mac programming, the speaker often really meant "I'm assuming it's MacRoman" when they in fact were wrong.
Furthermore, most of the interesting modern character sets / encodings do not store all characters in a single byte, yet the term "high ASCII" at least historically almost always implied "the values 128-255, and stored in a single 8-bit byte, which, conveniently, could also store all of the ASCII values".
In this day-and-age we have some really useful and commonly available character sets and encodings with specific names, and it's more useful to know exactly which one is under discussion and to remove room for erroneous assumptions about the encoding or the storage size. Or, at the very least, it's important to say "non-ASCII" when you mean "anything other than ASCII".
--Chris Page on the applescript-users mailing list, Wednesday, 22 Jun 2005 01:32:33
Look for places where the program does the same conceptual thing, in different ways (say, by iterating versus by recursion, or by columns versus by rows, doing steps in different orders, etc). Pick what seems the cleanest way, and change all the other places to use it. Doing the same thing the same way several times, is clearer than doing the same thing different ways multiple times.
--Steven J. DeRose on the xml-dev mailing list, Saturday, 5 Mar 2005 10:11:19
It is amazing and sad that picking between Linuxes is based on something as narrow as support for graphics chips. And it also explains why so many just get Macs.
--Paul Hoffman on the cpb mailing list, Sunday, 8 May 2005 13:51:50
At Atlassian, the policy is that you're allowed to develop using whichever tools you feel work best for you. Everyone in the office ends up using IDEA. Occasionally, someone will start who prefers (and uses) Eclipse, but they usually switch after a few weeks.
--Charles Miller
Read the rest in Smalltalk Tidbits, Industry Rants: Why progress is so slow
The continuing growth in on-die cache sizes is an incredibly important and highly applicable benefit for many applications, simply because space is speed. Accessing main memory is expensive, and you really don’t want to touch RAM if you can help it. On today’s systems, a cache miss that goes out to main memory often costs 10 to 50 times as much getting the information from the cache; this, incidentally, continues to surprise people because we all think of memory as fast, and it is fast compared to disks and networks, but not compared to on-board cache which runs at faster speeds. If an application’s working set fits into cache, we’re golden, and if it doesn’t, we’re not. That is why increased cache sizes will save some existing applications and breathe life into them for a few more years without requiring significant redesign: As existing applications manipulate more and more data, and as they are incrementally updated to include more code for new features, performance-sensitive operations need to continue to fit into cache. As the Depression-era old-timers will be quick to remind you, “Cache is king.”
--Herb Sutter
Read the rest in The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software
With respect to other open source projects -- FreeBSD remains both a large producer and consumer of open source, generating open source foundations for many other open source projects, as well as consuming the output of many other open source projects. In the closed source world, competition is a powerful force for change, as it is in the open source world. However, in open source world, the opportunities for collaboration and cooperation are far greater than in the closed source world, so we have the opportunity to share ideas and code much more easily, and as a result benefit from that exchange. A point that is sometimes lost when the "Open Source Community" and "Open Source Software Stacks" are discussed is the importance of both competition and cooperation in its success. Open source makes possible a market place of ideas and the incarnation of those ideas in source code. We're all better off for the existence of many competing (and cooperating) software projects, and let's hope we never move away from a world where that is the case.
--Robert N M Watson
Read the rest in Interview: Looking at FreeBSD 6 and Beyond
Our goal was really more to create a healthy market for software into which we could sell hardware. And if you go back seven or eight years, the sort of nightmare scenario for us was one where every machine was required to run Windows NT and there was no way that, for a variety of reasons, we could really build Windows NT machines in any sort of competitively useful way. And what Java has done for Sun is really make the market for hardware and the market for software somewhat decoupled so that you can make a software decision independent of a hardware decision. We had many decision points along the road as to whether we should do things that would further direct revenue gain from selling software versus indirect revenue through making the software market healthy. And we tended to predominantly favor making the market healthy because there's the general strategic view, that having a small part of a big pie is better than having a big part of a small pie. And so we tend to do whatever we can to make the pie bigger even if we don't own the whole thing. And I think that that has actually worked well.
--James Gosling
Read the rest in Sun's Gosling On the Java Evolution - VARBusiness.com - 5/8/03 10:22:42 AM
Unfortunately, many people are using JUnit for more than unit testing, and some of JUnit's design decisions (such as not maintaining state between method invocations and not supporting dependent test methods) make it really hard to use JUnit for integration or acceptance testing.
--Cedric Beust on the junit mailing list, Wednesday, 4 May 2005 07:37:19
I was really shocked about Cisco’s patent for their ‘fix’ of the issue. It was a clever idea for a fix but it really broke my trust in them. The vendors (like Cisco) want Security Researchers to notify them about vulnerabilities before going public. But Cisco took advantage of this ‘blackout’ period when they should have been fixing the issue, they decide to issue a patent. It is almost like insider trading on Wall Street and it has bugged me more and more as time goes on.
--Paul Watson
Read the rest in Whitedust: Interview: Paul Watson
The movie opens July 29, in Los Angeles and New York, then in a few other cities. If you have only AMC theaters in your town, you're out of luck, because that chain — soon to become the country's second largest — won't show it. The limited release has less to do with the iron fist of censorship than with mass-market taste and media concentration. AMC and its competitors have done to movies what ConAgra has to farming, dispensing cinematic corn and soybeans to multiplexes across the continent and world. Small, strange films like "The Aristocrats" are shown mostly on America's coasts, at least until it's time for the DVD.
--Lawrence Downes
Read the rest in You'll Laugh. You'll Cry. You'll Look Puzzled.
If you're producing a public API, something for people to extend, you really should make everything final that doesn't have a reason to be non-final: It's a genie you can't put back in the bottle - you can't final something that wasn't final when you first published your API, without risking making people's subclasses uncompilable. You can un-final it if there's a reasonable use-case for overriding a method that was final before. In short, not finaling methods in your API means you may box yourself in later - to the point of needing to do things like check if a subclass overrides a method or not and do something different depending on the result.
--Tim Boudreau on the java-dev mailing list, Friday, 04 Feb 2005 18:16:11
If you give the record companies a DRM scheme that goes from 1 (open) to 10 (unusably locked down), they will start at 14 and lobby Congress to mandate that it can be turned up higher by default.
--Charlie Demerjian
Read the rest in Intel to cut Linux out of the content market
Please remember that the design of a programming language consists not just in a laundry list of features, but also in making judicious choices of what to *omit* and, more importantly, in establishing design principles that are easy to understand.
Java does not support decimal arithmetic well, nor classic coroutines, nor full IEEE 754 floating-point arithmetic, nor computed GOTO, nor Fortran-style (or Common Lisp-style) FORMAT operations, nor automatic backtracking, nor pattern matching, nor unification of PROLOG-style expressions, nor tail calls, nor a host of other features. I've been beat up pretty hard over some of these. Some of them I even argued for myself in the early days of Java (such as tail calls). But others simply aren't needed for the clientele Java is trying to serve.
--Guy Steele
Read the rest in Re: bindings and assignments was: Re: continuations
During the late 1980s and early 1990s we let Solaris get encumbered as we were trying to build features and compete with mainframe OSes. Plus the fact that we did the AT&T Unix System V Release 4 base, which required us to buy our way out of the SCO license. It just occurred to us, probably six or seven years ago, that we can't do what we want to do with the source code here. We spent a long, long time getting the encumbrances out. They kind of spaghettied themselves deeply into the operating environment. The one thing we learned was just don't let the stuff get encumbered again. That was the mistake we made, by going too fast too quick. By going a little slower and letting the community help, we wouldn't have gotten encumbered. We would have been in better shape if we'd kept it open source along the way.
--Scott McNealy
Read the rest in McNealy on message
I've used both SWT and Swing to develop client-side Java applications on and for the Mac - although nothing particularly complicated. Swing is complex as hell for anything other than trivial applications, and has a deserved reputation for bugs, performance problems, and lack of platform fidelity. SWT is much simpler, faster, and has the enormous advantage of actually using native UI widgets. This advantage is less obvious on the Mac, interestingly, because Apple uses native peers in it's Swing implementation.
--Bill Hutten on the java-dev mailing list, Sunday, 5 Jun 2005 19:04:23
I tell you, freedom and human rights in America are doomed. The U.S. government will lead the American people in -- and the West in general -- into an unbearable hell and a choking life.
--Osama bin Laden
Read the rest in CNN.com - Bin Laden's sole post-September 11 TV interview aired - February 5, 2002
The most important aspect of any module is not how it implements the facilities it provides, but the way in which it provides those facilities in the first place. If the module's API is too awkward, or too complex, or too extensive, or too fragmented, or even just poorly named, developers will avoid using it. They'll write their own code instead. In that way, a poorly designed module can actually reduce the overall maintainability of a system.
Designing module interfaces requires both experience and creativity. Perhaps the easiest way to work out how an interface should work is to "play test" it: to write examples of code that will use the module before implementing the module itself. These examples will not be wasted when the design is complete. You can usually recycle them into demos, documentation examples, or the core of a test suite. O'Reilly Open Source Convention 2005.
The key, however, is to write that code as if the module were already available, and write it the way you'd most like the module to work
--Damian Conway
Read the rest in Perl.com: Ten Essential Development Practices
I don't know how to ease into this gently. So I'll just spit it out.
Generics are a mistake.
This is not a problem based on technical disagreements. It's a fundamental language design problem.
Any feature added to any system has to pass a basic test: If it adds complexity, is the benefit worth the cost? The more obscure or minor the benefit, the less complexity its worth. Sometimes this is referred to with the name “complexity budget”. A design should have a complexity budget to keep its overall complexity under control.
Generics are way out of whack. I have just finished (well, nearly) my work in the fourth edition of The Java Programming Language. I am glad to say that David Holmes, not I, was the one who covered generics. Just reviewing it and reading the specifications was enough to put my brain through a cuisinart stuck on “pulse”.
--Ken Arnold
Read the rest in Ken Arnold's Blog: Generics Considered Harmful
one of the fundamental problems that some coders have with scoping declarations actually stems from poor planning of their package hierarchy. In fact, conceptualizing a package system as a hierarchy seems like the start of the problem, because "child" packages have the same relationship to their "parent" packages that any other package has -- in other words, it's not a hierarchy in anything more than name. Classes in com.example.ui.util don't have any special privileged access to classes in com.example.ui that any other class in any other package might have. But because the package naming conventions look like a hierarchy, it can be tempting to just start creating a hierarchy of folders/packages and start throwing classes into them based on where they "feel" like they belong.
--Erik Price
Read the rest in Bob Lee's Blog: Package Scoping And Unit Testing
If ever there was a time to learn Swing, its probably now. Most of the bugs have been cleared up for you, the speed problems are mostly gone (though there are still issues), and things work mostly the way they are advertised to do so. Also the documentation is excellent.
--Henry Story on the java-dev mailing list, Monday, 6 Jun 2005 11:38:13
The best way to start an open source project is with code. Working code. Hack away at home on weekends, maybe get a couple of friends to help you out, and don’t go public until you have something to show people that does something interesting, and that other people can use to build more interesting stuff on top of. You need this for a bunch of different reasons: it establishes the original contributor’s bona fides in the open-source meritocracy, it shortcuts all sorts of damaging debates about coding styles and architecture that can stop a project before it starts, and so on.
Most importantly, though: working code attracts people who want to code. Design documents attract people who want to talk about coding.
--Charles Miller
Read the rest in The Fishbowl: Finding Discord in Harmony
Microsoft really is a fairly interesting vendor in this space. Unlike most proprietary vendors, it's one of the very few ones whose bread and butter comes directly from its commodity market, and even its specialized offerings often sell because of its near dominance of a market that certainly looks to be commoditized over the next decade or so.
So it's no wonder that Microsoft is one of the very few players who really don't seem to like open source. Most other vendors seem to see open source as a platform that they can ride on, while to MS it's a threat to how they do business.
That said, I don't see the MS market going away very fast, and I don't see why MS couldn't continue to function as a software company even if they don't control the commodity market any more. In many ways I think MS is in the same situation that IBM was in two decades ago, losing control of the basic market -- and thus the dominance of the market -- but not necessarily going away or even necessarily shrinking.
I think the really interesting question is what happens to their profit margins. It's almost all profit for them right now. I don't think that's sustainable in any market, and yes, I believe that open source is one of the things that will "correct" the software market.
--Linus Torvalds
Read the rest in Good Morning Silicon Valley: An interview with Linus Torvalds
Java imposes considerable red-tape overhead in the size of each object (up to 32 bytes, depending on the Java VM used). This often yields a tree structure in memory many times larger than the source XML file. For example, the empty element <a/> (four bytes in the source file) could expand to an Element object for the node, a Name object for its name, a String object referenced by the Name object, an empty AttributeList node, an empty NamespaceList node, plus numerous 64-bit object references to link these objects with each other and with the parent, sibling, and child nodes in the tree. A naive implementation could easily generate 200 bytes of tree storage from these four bytes of source. Given that some users are trying to process XML documents whose raw size is 100MB or more, the consequences are predictable and generally fatal.
--Michael Kay
Read the rest in Saxon: Anatomy of an XSLT processor
Probably the greatest cost of concurrency is that concurrency really is hard: The programming model, meaning the model in the programmer’s head that he needs to reason reliably about his program, is much harder than it is for sequential control flow.
Everybody who learns concurrency thinks they understand it, ends up finding mysterious races they thought weren’t possible, and discovers that they didn’t actually understand it yet after all. As the developer learns to reason about concurrency, they find that usually those races can be caught by reasonable in-house testing, and they reach a new plateau of knowledge and comfort. What usually doesn’t get caught in testing, however, except in shops that understand why and how to do real stress testing, is those latent concurrency bugs that surface only on true multiprocessor systems, where the threads aren’t just being switched around on a single processor but where they really do execute truly simultaneously and thus expose new classes of errors. This is the next jolt for people who thought that surely now they know how to write concurrent code: I’ve come across many teams whose application worked fine even under heavy and extended stress testing, and ran perfectly at many customer sites, until the day that a customer actually had a real multiprocessor machine and then deeply mysterious races and corruptions started to manifest intermittently. In the context of today’s CPU landscape, then, redesigning your application to run multithreaded on a multicore machine is a little like learning to swim by jumping into the deep end—going straight to the least forgiving, truly parallel environment that is most likely to expose the things you got wrong. Even when you have a team that can reliably write safe concurrent code, there are other pitfalls; for example, concurrent code that is completely safe but isn’t any faster than it was on a single-core machine, typically because the threads aren’t independent enough and share a dependency on a single resource which re-serializes the program’s execution. This stuff gets pretty subtle.
--Herb Sutter
Read the rest in The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software
A pattern is always a problem-solution pair that can be applied in a particular context. Although the solutions might look similar in different patterns, the problems they are solving are different. In fact from ten thousand meters most patterns solve a problem by adding a level of indirection. What is interesting is how this indirection comes about and in particular why it needs to happen. Therefore if you just look at the solution to the problem, it isn't that enlightening and everything starts to look the same. When we wrote design patterns we often had this feeling—they all started to look like the Strategy pattern.
--Erich Gamma
Read the rest in Patterns and Practice
A group of people, with no regard for law, order or our way of life, came to our city and trashed it. With scant regard for human life or political consequences, employing violence as their sole instrument of persuasion, they slaughtered innocent people indiscriminately. They left us feeling unified in our pain and resolute in our convictions, effectively creating a community where one previously did not exist. With the killers probably still at large there is no civil liberty so vital that some would not surrender it in pursuit of them and no punishment too harsh that some might not sanction if we found them.
The trouble is there is nothing in the last paragraph that could not just as easily be said from Falluja as it could from London. The two should not be equated - with over 1,000 people killed or injured, half its housing wrecked and almost every school and mosque damaged or flattened, what Falluja went through at the hands of the US military, with British support, was more deadly. But they can and should be compared. We do not have a monopoly on pain, suffering, rage or resilience. Our blood is no redder, our backbones are no stiffer, nor our tear ducts more productive than the people in Iraq and Afghanistan. Those whose imagination could not stretch to empathise with the misery we have caused in the Gulf now have something closer to home to identify with. "Collateral damage" always has a human face: its relatives grieve; its communities have memory and demand action.
--Gary Younge
Read the rest in Guardian Unlimited | Special reports | Blair's blowback
Contrary to what many Europeans believe, you can fool some of the Americans all of the time, and all of the Americans some of the time, but you can't fool most Americans most of the time - even with the help of Fox News.
--Timothy Garton Ash
Read the rest in Guardian Unlimited | Special reports | The sobering of America
The GPL is one of the most exciting, innovative capitalist tools ever created. The GPL breaks down walls between vendors and customers while enabling strong competitive differentiation. Unlike the BSD, which strikes me as serving an ever-narrowing slice of the development community that shares code simply for the sake of sharing, the GPL takes a hardheaded look at software development (and human nature) and works to maximize choice, control and a free market.
--Matt Asay
Read the rest in Open
It’s not that people are completely stupid, but if there’s a big idea and you have deadlines and you have expedience and you have competitors, very likely what you’ll do is take a low-pass filter on that idea and implement one part of it and miss what has to be done next. This happens over and over again. If you’re using early-binding languages as most people do, rather than late-binding languages, then you really start getting locked in to stuff that you’ve already done. You can’t reformulate things that easily.
--Alan Kay
Read the rest in ACM Queue - A Conversation with Alan Kay - Big talk with the creator of Smalltalk—and much more.
Software for Windows is generally uninspired, generically cloned, and overwhelmingly wrought with lackluster (read: lousy) user interfaces. There’s too much coal and not enough diamonds within the sphere of downloads. The greatest pieces of software are plagued by unintelligent design, and very few rise to the level of ubiquity. Windows users don’t have a strong sense of belonging; there’s no user community rallying around the platform. We use the computer, certainly, or is the computer using us?
--Chris Pirillo
Read the rest in Computer Power User Article
Freedom and innovation are not opposites; they are intimately connected. Proprietary protocols and the monopolies they spawn prevent innovation. Open standards encourage it.
McVoy is engaging in a rhetorical deception, one he copied from Microsoft. He wants you to believe that innovation will stop if software vendors can't collect secrecy rents. But this is pure, unadulterated bullshit. Is innovation in automobile designs stopped because auto designers can look at each other's engines?
Open source designers think up and deploy more new ways to do things every week than the proprietary industry can manage in six months. The reason is lower process friction--when you want to experiment, you don't have to argue with a boss or risk being shot down because your company thinks it might be too disruptive of their existing product line. You just do it.
Freedom is the oxygen of innovation, not its enemy.
--Eric S. Raymond
Read the rest in ONLamp.com: ESR: "We Don't Need the GPL Anymore"
Although it has been lowering standards, raising bonuses and all but begging on its knees, the Army hasn't reached its recruitment quota in months. There are always plenty of hawks in America. But the hawks want their wars fought with other people's children.
--Bob Herbert
Read the rest in The Army's Hard Sell
If you’re still using Grokster et al to fill up your iPod, a SWAT team of feds and record company trolls should be arriving on your doorstep right … about … now. The Supremes have ruled that the folks who run file-swapping networks can be sued for inducing users to violate copyright law. The RIAA is dancing in the streets, while the tech industry is crying the tears of a clown. I’m no attorney, but shouldn’t somebody be suing the record companies? If charging $17.99 for an Ashlee Simpson CD isn’t an inducement to swap free music, I don’t know what is.
--Robert X. Cringely
Read the rest in Grokster is slapped, rodents get mapped | InfoWorld | Column | 2005-07
Inversion of Control is a key part of what makes a framework different to a library. A library is essentially a set of functions that you can call, these days usually organized into classes. Each call does some work and returns control to the client.
A framework embodies some abstract design, with more behavior built in. In order to use it you need to insert your behavior into various places in the framework either by subclassing or by plugging in your own classes. The framework's code then calls your code at these points.
--Martin Fowler
Read the rest in MF Bliki: InversionOfControl
Any API that is 'rarely used properly' has problems. APIs can encourage good uses, and they can encourage bad uses. When you say "It's really rather great, only, people don't really know how to use it." What you're really saying, at least to my ears, is that the underlying functionality is there, but the API design needs a lot of work.
--Geoffrey Wiseman
Read the rest in Furious Purpose
Having done SWT dev on the Mac, one of the points I never see covered in articles is that after the first time of having something not work and then finding out that it is a piece of the framework that didn't cooperate w/the platfrom reification, all confidence is lost. At least with Swing, you know all the features will work the same no matter where you are running it.
--Rob Williams
Read the rest in Rob Williams' Blog
The crowd at JavaOne would go wild if you told them Sun was embracing communisim and instituting a pure ideology in which all persons with vowels in their name would be executed. The happy masses would then offer themselves. Its important to realize that these events are heavily scripted and Sun is good at it.
--Andrew C. Oliver
Read the rest in Hacking Log 4.0
Don't use CRC! It does not ensure a flat distribution of bits to search (so a CRC will increase the number of "hotspots" in the network). This is because CRC is not cryptographically strong, and its bits are not evenly and independantly distributed... Use MD5 instead (or MD4 if you think it is faster, despite MD4 has some known collision problems), it will be perfect.
--Philippe Verdy on the the_gdf mailing list, Thu, 21 Oct 2004
free software developers are usually driven by churning out code to solve the problems that they face and building tools for their own use whether it be for personal use or work related. End users want a product that solves their needs and those needs are not a subset of a developers needs. Some developers may try to solve needs that they don't have, but they still are not able to solve needs that they don't know exist. :) Companies such as Apple and Microsoft employ more than just software engineers. They also employ folks who understand user interfaces and people who try to determine what problems consumers want solved.
--John Baldwin
Read the rest in Interview: Looking at FreeBSD 6 and Beyond
The concern is that Dell comes in and says they don't want to pay taxes for the next 20 years in a state where other companies are doing their part. We want them to complete their project in North Carolina, but we want them to pay their fair share to the state.
--Robert Orr
Read the rest in Dell's N.C. plant the target of a lawsuit | CNET News.com
When American corporations have lost their way and can't figure out how to improve their market position, a common "solution" is to merge with another similarly befuddled company. This allows both companies to "grow," and permits executives to put off hard decisions for years amid talk of "synergy" and restructuring.
--John Hinderaker
Read the rest in Power Line: Maybe it Meant Something, After All
Any property may now be taken for the benefit of another private party, but the fallout from this decision will not be random. The beneficiaries are likely to be those citizens with disproportionate influence and power in the political process, including large corporations and development firms.
--Sandra Day O'Connor
Read the rest in CNN.com - High court OKs personal property seizures
in the end, people don't usually care how your software is implemented, they just want it to work and be as small and fast as possible.
--Steve Northover
Read the rest in Desktop Java with SWT: an interview with Steve Northover
Part of the challenge before us results from the insane pace of growth of disk and memory capacities, substantially outstripping bandwidth capacity and the current capabilities for minimizing latency. It used to take less than a second to read all of RAM and less than 20 minutes to read everything stored on a disk. Now, a multi-gigabyte RAM scan takes minutes, and a terabyte disk scan can require hours. It’s also becoming painfully obvious that random access is 100 times slower than sequential access—and the gap is widening. Ratios such as these are different from those we grew up with. They demand new algorithms that let multiprocessor systems intelligently share some massive main memory, while optimizing the use of precious disk bandwidth. Database algorithms, meanwhile, need to be overhauled to account for truly massive main memories (as in, able to accommodate billions of pages and trillions of bytes).
--Jim Gray and Mark Compton
Read the rest in ACM Queue - A Call to Arms
The support for native integration in Swing is still very primitive. For example, I configured my Windows desktop to support single-click operations (I never double click). When I open a NetBeans file dialog, I still find myself having to double click, which is a horrible user experience and contributes greatly to making Swing applications feel so different from everything else.
--Cedric Otaku
Read the rest in Otaku, Cedric's weblog: Putting an end to the SWT/Swing nonsense
That 70% of the people at tech conferences (because it ain't just blogging conferences that have that kind of statistic) are using Macs isn't because those people are outliers; it's that those people are early adopters and influencers. Those 95% Wintel users at airports are using those machines because that's what the boss gave them. The 70% of conference-goers that have Macs chose what they want to work with, and made the informed decision not to buy a Wintel machine. If, like Scoble, I worked for Microsoft, the fact that influencers are leaning so strongly Mac-wards would seriously worry me.
--Dori Smith
Read the rest in Backup Brain
Sony is determined to cripple the PSP end-user experience at every opportunity. It only reads a limited selection of music formats, (user-created) video can't run at the system's native resolution, and now the company is obsessed with quashing home-brew development. It's a shame, because the PSP would be so much more compelling if the company would let it live up to its true potential.
--Jeremy Parish
Read the rest in Wired News: PSP Hackers Go Retro
In other words, this insidious and deeply inhumane practice was not the work of a few bad apples. As we have seen from many other investigations, the abuses flowed inexorably from policies promulgated at the highest levels of government.
Warfare, when absolutely unavoidable, is one thing. But it's a little difficult to understand how these kinds of profoundly dehumanizing practices - not to mention the physical torture we've heard so much about - could be enthusiastically embraced by a government headed by men who think all life is sacred. Either I'm missing something, or President Bush, Tom DeLay and their ilk are fashioning whole new zones of hypocrisy for Americans to inhabit.
--Bob Herbert
Read the rest in With the Gloves Off
People have always been quick to announce “the next software development revolution,” usually about their own brand-new technology. Don’t believe it. New technologies are often genuinely interesting and sometimes beneficial, but the biggest revolutions in the way we write software generally come from technologies that have already been around for some years and have already experienced gradual growth before they transition to explosive growth. This is necessary: You can only base a software development revolution on a technology that’s mature enough to build on (including having solid vendor and tool support), and it generally takes any new software technology at least seven years before it’s solid enough to be broadly usable without performance cliffs and other gotchas. As a result, true software development revolutions like OO happen around technologies that have already been undergoing refinement for years, often decades.
--Herb Sutter
Read the rest in The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software
Going back and finding the provenance of every line of code in Solaris was, to put it mildly, hard. Whenever we found code that belonged to someone else, we either had to get their approval to release it as open source (assuming they still existed and we could find them), find an alternative, rewrite it or decide to release it as binary only.
--Glenn Weinberg
Read the rest in Solaris engineers offer personal source
Sun needs to do something to get Wall Street off its back. The company's stock has been a dog. Shares hit a 52-week low of $3.29 on Aug. 12 and are still stuck below four bucks. If Sun's board of directors wasn't on quaaludes, Scott McNealy would have joined Carly Fiorina on the retired CEO rubber chicken circuit long ago.
--Charles Cooper
Read the rest in What was Sun thinking? | Perspectives | CNET News.com
Imagine we hadn't done Java 10 years ago, where do you think Sun would be today?. It would be all Windows. We'd be done. If people aren't writing Java Web services, they're writing to .Net. If they write to .Net, they write to Windows. If they write to Windows, they don't write to Sun equipment.
--Scott McNealy
Read the rest in At 10, Java's wild success, missed chances
The traditional way to determine if Approach A is faster than Approach B is to write a small benchmark program, often called a microbenchmark. This inclination is perfectly sensible. The scientific method demands no less than an independent investigation! Alas, the devil is in the details. Writing -- and interpreting -- benchmarks is far more difficult and complicated for dynamically compiled languages than for statically compiled ones. There's nothing wrong with trying to learn something about the performance of a given construct by writing programs that use it, but in many cases, microbenchmarks written in Java don't tell you what you think they do.
With a C program, you can learn a lot about a program's likely performance characteristics without even running it -- simply look at the compiled machine code. The instructions generated by the compiler are the actual machine instructions that are going to be executed, and their timing characteristics are reasonably well understood in the common cases. (There are pathological examples where performance is far worse than would be expected from looking at the machine code because of persistent branch prediction misses or cache misses, but for the most part, you can learn a lot about the performance of a C program by looking at the machine code.)
If the compiler is going to optimize away a block of code because it reasons the code to be irrelevant (a common situation with benchmarks that don't actually do anything), you can see it in the generated machine code -- the code is not there. And you usually don't have to run C code for very long before you can make some reasonable inferences about its performance.
On the other hand, the HotSpot JIT is continuously recompiling Java bytecode into machine code as your program runs, and recompilation can be triggered at unexpected times by the accumulation of a certain amount of profiling data, the loading of new classes, or the execution of code paths that have not yet been traversed in already-loaded classes. Timing measurements in the face of continuous recompilation can be quite noisy and misleading, and it is often necessary to run Java code for quite a long time (I've seen anecdotes of speedups hours or even days after a program starts running) before obtaining useful performance data.
--Brian Goetz
Read the rest in Java theory and practice: Dynamic compilation and performance measurement
As the briefings went on last week, I began to notice that they were not being delivered in American-accented English. The first project was introduced by a man born in Romania. The second, by a native Pole. The third, by a scientist who had emigrated from Russia. The fourth, by one from Greece. The fifth presenter was from New Zealand, the sixth was another Romanian and only the seventh sounded as if he had been reared in the United States. All the rest had come from around the world to study, in several cases to start companies, and now to lend their skills to this national security effort.
Several of the foreign-born scientists told me afterward that their counterparts at home would have a much harder time following their example, because of post-9/11 visa restrictions to keep America "safe."
--James Fallows
Read the rest in Enough Keyword Searches. Just Answer My Question.
I can't put this more bluntly: Taxpayers should not give a dime to sports owners to build stadiums or arenas. If they want one, let them cover 100 percent of the cost and then charge whatever their football or basketball or hockey nuts will pay.
When the first sports owner offers to pay a percentage of every season ticket-holder's house, I might soften my stance. Until then, understand that the stadium you paid for won't belong to you. And if you ever wanted to inspect the place you helped build, you'd have to surrender a fee. That's not called being a fan. That's called being a sucker.
--Shaun Powell
Read the rest in Newsday.com: No West Side stadium? Fine
What happened to the PowerPC's supposed performance advantage over Intel? This is the Altivec Factor -- PowerPC's dedicated vector processor in the G4 and G5 chips that make them so fast at running applications like Adobe Photoshop and doing that vaunted H.264 video compression. Apple loved to pull Phil Schiller onstage to do side-by-side speed tests showing how much faster in real life the G4s and G5s were than their Pentium equivalents. Was that so much BS? Did Apple not really mean it? And why was the question totally ignored in this week's presentation?
--Robert X. Cringely
Read the rest in PBS | I, Cringely . June 9, 2005
After years of Power PC propaganda from Apple, this switch will certainly be a shock. However, once the shock has worn off, it makes perfect sense. The Power PC was supposed to provide a competitive advantage to Apple and the Macintosh. RISC computers were supposed to scale to higher clock-rates more quickly, and they were supposed to run smaller and cooler. A decade down the line, none of that has panned out. The Power PC is different, but it isn't clearly better. In fact, it is demonstrably worse from several perspectives, including clock-rate (which has a big impact on marketing) and the ability to support new laptops and other low power devices.
--Andrew Shalit
Read the rest in Macs on Intel
The first object-oriented thing they told us was: OO is way cool. You can subclass and customize anything!" These days I consider this the attitude of object exhibitionists. You can go and expose everything, and people can change anything. The original Smalltalks had some of this flavor. The problems start when the next version comes along. If you have exposed everything, you cannot change anything or you break all your clients. That's why the component model, the API focus, designing what's internal and what's published, becomes so critical when it comes to reuse.
--Erich Gamma
Read the rest in Erich Gamma on Flexibility and Reuse
No one is going to know that Intel is inside. It doesn't make a difference.
--Jayson Adams, Circus Ponies Software
Read the rest in Apple developers cautiously upbeat on Intel | CNET News.com
As DRM schemes go, Apple's is, I must say, one of the best for end users. But that's like saying "the handcuffs are mighty comfortable handcuffs."
--FutureProof
Read the rest in JHymn Goes Behind Atoms and Apple To Bring DRM-Free Music :: Open Source, Linux News & Software - OSDir.com :: Linux & Open Source News from Across the Community
When we're on our deathbeds, we're going to wish we could reclaim the time we spent wandering around for save points long after we were done playing every night. Imagine if your word processing program did this, refusing to let you save your progress until you typed six more paragraphs. Or, made you retype your last paragraph six times while zombies tried to shoot your cursor...
The analogy sort of breaks down there, but the point is we shouldn't ever see a "save point" in a game again. Limited saves were invented for consoles that didn't have the memory to let you "quicksave" (where you can save at any time, any where, with one keystroke like on a PC). To keep that physical limitation and pretend it's a gameplay element is like Superman 64 claiming its programmers' inability to render any background scenery was "Kryptonite Fog."
There is not one single reason in the known universe for even one more game where the save point is ten motherfucking minutes away from the boss, forcing me to fight my way down the same hallway each of the 62 attempts it takes me to beat the guy (I'm looking at you, Metroid Prime).
The XBox port of Doom III lets you quicksave. It can be done. Surely the gaming industry will hear our concerns and act accordingly!--David Wong and Haimoimoi
Read the rest in A Gamers' Manifesto
if you look at the SWT architecture, it’s almost exactly the same as AWT. It has all the AWT problems: it’s way simple, it doesn’t port very well. And its API is somewhat different, because essentially what they did was they made the Windows version really easy by making their API pretty much a clone of the Windows API. And then on Linux, they tried to make Motif look like the Windows toolkit. They’ve got those mapping layers that are just like, really horrible, and it only kind of works. And same thing in OS X, their porting problems from platform to platform is a nightmare
--James Gosling
Read the rest in James Gosling Q & A: Builder AU: Program: At Work
These LAFs should have helped delivering a better desktop experience. Unfortunately they completely failed, mainly on Windows. Since Swing does not rely on any native widgets, LAF developers need to recreate them all by themselves. And it is very hard to duplicate the look and behaviour of a widget when you don't have access to its source code. Windows LAFs have always been awkward: they almost look and feel like Windows, but not exactly.
--Romain Guy
Read the rest in The Java Look-and-Feel Debate
The fundamental problem is that configuration options are bad. Be it at runtime or at compile. Ideally there is one configuration which works everywhere. Every new configuration increases complexity. Not linearly but instead exponentially. Each option might influence every other option. This is a disaster not only for users, but also the developers. It means exponential growth of testing. Which of course won't happen and therefore the code is basically untested. For developers this means that often only one or two configurations are really tested. Any us of another configuration is probably doomed to failure in any non-trivial project.
--Ulrich Drepper
Read the rest in udrepper: Dictatorship of the Minorities
We have said it from day one in our reviews, buying guides, and even on the news when possible, spending a considerable amount of money in a good keyboard and mouse is not a waste of your hard earned cash. After all, those are the devices you will be interacting with 90% of time. Be it because of ergonomic reasons or plain comfort, if you are serious about computing, we certainly encourage you to invest in such high-end input devices rather than in the latest quad-GPU graphics board.
--Mikael Hoffman
Read the rest in Mouse round
For a long time, J2SE supporters like myself have said that the big win of J2SE is not only that you "run everywhere" today, but that future Java-capable platforms could pick up and run your software on day one. This would be a great reason to write J2SE applications, and a great reason for platforms to build in Java support.
Well, three new platforms made their public debut last week:
And it's very likely that Java won't be on any of them.
--Chris Adamson
Read the rest in Chris Adamson's Blog: New Platforms, No Java
When the U.S. government calls upon foreign leaders to bring to justice those who commit or authorize human rights violations in their own countries, why should those foreign leaders listen? And if the U.S. government does not abide by the same standards of justice, what shred of moral authority will we retain to pressure other governments to diminish abuses? It's far past time for President Bush to prove that he is not covering up the misdeeds of senior officials and political cronies who designed and authorized these nefarious interrogation policies, so Congress must appoint a truly impartial and independent commission to investigate the masterminds of the atrocious human rights violations at Abu Ghraib and other detention centers, and President Bush should use the power of his office to press Congress to do so.
-- William F. Schulz, Amnesty International USA
Read the rest in U.S. 'Thumbs Its Nose' at Rights, Amnesty Says
I don't think Sun makes enough money from Java. This is potentially the most disturbing weakness of all. What motivation does Sun have to continue to invest in the Java platform? Personally, I would like to see Sun garner greater monetary rewards for its role as "benevolent dictator" presiding over Java's future not from developers or end users but from companies like BEA, IBM, HP, et al. I worry that in any shake-up at Sun initiatives such as Java could suffer. A healthy, strong Sun Microsystems bodes well for Java; a shaken, sickly Sun Microsystems must mean change in how Java is developed and governed, and there's no guarantee in changes for the better.
--Humphrey Sheil
Read the rest in In pursuit of perfection
Many people imagine Java is slow because it generates interpreted bytecode rather than native code. This used to be true, but not any longer with today's just-in-time compilers. Raw code execution speed is usually almost as good as -- sometimes better than -- the equivalent code written in a compiled language such as C.
Where Java can have a problem is with memory allocation. Unlike C and C++, Java takes care of memory itself, using a garbage collector to free unwanted objects. This brings great convenience to the programmer, but it is easy to create programs that are profligate with memory: they thrash due to excessive use of virtual memory, or they place great strain on the garbage collector due to the frequency with which objects are allocated and released.
Some coding techniques minimize the memory-allocation problems. For example the use of StringBuffer objects rather than Strings, use of pools of reusable objects, and so on. Diagnostic tools can help the programmer determine when to use those techniques. Getting the code fast does require a lot of tuning, but that is arguably still much easier than using a language such as C++, in which you must manage all the memory allocation manually.
--Michael Kay
Read the rest in Saxon: Anatomy of an XSLT processor
When I was a wee lass, I had some Legos. Unlike my rich little friends, I didn’t have very many, and it forced me to be very particular about how I chose to allocate Lego resources to any given project.
Where my rich friends could empty their five buckets of Legos on the ground and get to work building a hideous castle-spaceship-dinosaur thing, I had to make do with a much smaller assortment of bricks. My creations, although not as large or flashy, had a lot more class to them.
When George Lucas was a wee lass, he had some money. Unlike his rich little friends, though, he didn’t have a lot, and he had to be very careful about only implementing his stronger ideas.
Where his rich friends could pour bajillions of dollars into a project, George had to make do with a much smaller pile of cash. His creations wound up being a combination of innovative special effects and some halfway-decent stories.
Years later, I have enough money to buy myself huge assloads of Legos, and George has enough money to create whatever movies he’d like.
The difference is that, years later, I still have some taste.
--Rory Blyth
Read the rest in Rory Blyth
In almost all cases I have ever seen, optimizing while writing your first beta of code leads to poor readability and few gains. There are a variety of load testing suites available out there, what I recommend is to hold off on optimization until the majority of the application is complete. Then design some intelligent load tests and figure out where your bottlenecks are. In most cases I have seen, the majority of "slow code" can be tracked down to a few trigger points, generally less than 5% of the code.
On the other hand, if you optimize first, you end up with code that is harder to read and maintain in places where the performance benefit simply isn't worth it.
--Eric Wise
Read the rest in Eric Wise : Optimizing Code
In the old days, when you went out to get IT infrastructure, it was a black box and all you worried about was how much it cost and what its features and UI were like. If you asked how the software worked, or where the data was or what its format was, you were told not to bother your pretty little head.
These days, interoperation and integration are everything. You’d better have open interfaces, open networks, open services; that is, open data. Which in practical terms usually means XML.
Once the world’s IT customers realize that they’ve basically won in their quest for unrestricted visibility into their own data, they’re going to start wondering why they can’t see inside the software they’re betting their business on. Which is to say, exactly the same forces that are driving the world to open data in general and XML in particular are driving us towards open source.
Secret-source software probably isn’t going away, but in an increasingly open world, it looks weirder and weirder.
--Tim Bray
Read the rest in ongoing · Opening Everything
managers are essentially secretaries who can fire you.
--Theophile Escargot
Read the rest in Politics-Oriented Software Development || kuro5hin.org
Without creating pathways to responsible recycling, the paths of least resistance are export, prison labor, landfill, and incineration.
--Gopal Dayaneni
Read the rest in Apple Annual Meeting (April 21, 2005)
You have to be a different kind of person to love C++. It is a really interesting example of how a well-meant idea went wrong, because Bjarne Stroustrup was not trying to do what he has been criticized for. His idea was that first, it might be useful if you did to C what Simula did to Algol, which is basically act as a preprocessor for a different kind of architectural template for programming. It was basically for super-good programmers who are supposed to subclass everything, including the storage allocator, before they did anything serious. The result, of course, was that most programmers did not subclass much. So the people I know who like C++ and have done good things in C++ have been serious iron-men who have basically taken it for what it is, which is a kind of macroprocessor. I grew up with macro systems in the early ’60s, and you have to do a lot of work to make them work for you—otherwise, they kill you.
--Alan Kay
Read the rest in ACM Queue - A Conversation with Alan Kay - Big talk with the creator of Smalltalk—and much more.
Every time a major new version of Mac OS X is released, it behooves developers to profile their applications again. As Apple has warned on many occasions, "What was once cheap may now be expensive and vice versa. Don't assume; measure!" The price of performance is eternal vigilance.
--John Siracusa
Read the rest in Mac OS X 10.4 Tiger : Page 14
What is it that people think they are getting out of 1.5 exactly? Is it the slower loading times that are compelling people to switch or is it the new bugs?
--James Margaris on the java-dev mailing list, Tuesday, 12 Apr 2005 13:26:42
Though the Java and Eclipse forums are littered with "why is Eclipse slow", "why does Eclipse freeze for 25 seconds" , "crashes" and a number of like questions, increasingly it is becoming more obvious that perhaps the problem may not be just Eclipse's architecture but also that SWT is only optimized on Windows and is not the fast performer that its proponents suggest - a number of observers have mentioned this. Has it all been worth it ? SWT development has been a huge, unnecessary cost that Eclipse Foundation members have the burden of sharing. They have managed to implemented about a third of Java2D and have just discovered the merits of deferred layout. With a little push - SWT will be where AWT was 7 years ago.
--Charles Ditzel
Read the rest in Why Eclipse Developers Are Moving To NetBeans (cld.blog
I'm getting so sick and tired of hearing people say "Swing is too slow". I know this is not true because I've been on a Swing project for the past few years. We have HUNDREDS of screens, many tens of thousands (I'm guessing) of lines of code, and our app screams. The only slowdowns occur when we have crappy database designs.
--Eric Burke
Read the rest in ClientJava.com
The best way to get high performance in a multi threaded environment is not to optimise the synchronisation, but to design out the need for it using devices such as data partitioning and immutable objects. Even if an object is not entirely immutable, selective use of final on some fields can reduce the need for synchronisation.
--Rohan Lloyd on the java-dev mailing list, Saturday, 5 Feb 2005 02:01:21
Every language does not have to be EVERYTHING to EVERYONE. It's stupid to insist upon that. I worked in a scientific company for a long time, and while the l33t k1dz may laugh at FORTRAN, for operations on HUGE arrays, a good FORTRAN coder can be down in the tavern having a beer and waiting for their run to finish while the C coder is still dealing with bounds - checking.
--John C. Welch on the applescript-users mailing list, Friday, 06 May 2005 09:21:00
Last night, I watched the returns come in with some friends here in Los Angeles. As the night progressed, people began to talk half-seriously about secession, a red state / blue state split. The reasoning was this: We in blue states produce the vast majority of the wealth in this country and pay the most taxes, and you in the red states receive the majority of the money from those taxes while complaining about 'em. We in the blue states are the only ones who've been attacked by foreign terrorists, yet you in the red states are gung ho to fight a war in our name. We in the blue states produce the entertainment that you consume so greedily each day, while you in the red states show open disdain for us and our values. Blue state civilians are the actual victims and targets of the war on terror, while red state civilians are the ones standing behind us and yelling "Oh, yeah!? Bring it on!"
More than 40% of you Bush voters still believe that Saddam Hussein had something to do with 9/11. I'm impressed by that, truly I am. Your sons and daughters who might die in this war know it's not true, the people in the urban centers where al Qaeda wants to attack know it's not true, but those of you who are at practically no risk believe this easy lie because you can. As part of my concession speech, let me say that I really envy that luxury. I concede that.
Healing? We, the people at risk from terrorists, the people who subsidize you, the people who speak in glowing and respectful terms about the heartland of America while that heartland insults and excoriates us... we wanted some healing. We spoke loud and clear. And you refused to give it to us, largely because of your high moral values. You knew better: America doesn't need its allies, doesn't need to share the burden, doesn't need to unite the world, doesn't need to provide for its future. Hell no. Not when it's got a human shield of pointy-headed, atheistic, unconfrontational breadwinners who are willing to pay the bills and play nice in the vain hope of winning a vote that we can never have. Because we're "morally inferior," I suppose, we are supposed to respect your values while you insult ours.
--Adam Felbers
Read the rest in Fanatical Apathy: Concession Speech
The fact that in the .Net market there is no competition because there is only one supplier means that it is an inherently unhealthy market. If you are a purchasing agent, the thing that you hate the most is to go into a single supplier situation. And the Java world doesn't have that problem. There is competition because there are multiple suppliers.
--James Gosling
Read the rest in Sun's Gosling On the Java Evolution - VARBusiness.com - 5/8/03 10:22:42 AM
Automatic garbage collection sat on the shelf, in terms of mainstream computing, for over 40 years before Java won acceptance of it by the expedient of a syntax that looked a lot like C. Use of the := operator for assignment would probably have killed it.
--Bob Foster on the xml-dev mailing list, Wednesday, 04 May 2005 13:32:27
Progress in software and organizational design is like progress in the Kama Sutra: we've tried all of the positions, some more than once, some we enjoy and some hurt because we aren't flexible enough, and yet we keep the book open next to the night light.
--Claude L (Len) Bullard on the xml-dev mailing list, Wednesday, 4 May 2005 13:32:55 -0500
Apple has more experience at it: they've been going out of business since 1976, while Sun's only been doing it since 1982. Indeed, Apple's excellence in going out of business is so widely recognized that the press regularly reports on it. (Do recall that Apple is the company that paid NeXT to take them over. Brilliant!)
However, it must be admitted that Sun shows more creativity here than Apple. How many companies devote the time, resources, and publicity that Sun does to a product that produces no income? Apple's tried to achieve that--the Cube was a shining moment there--but they lack the daring that Sun has to *keep* the product on the market when it fails to show a profit. Unless Apple follows Sun's lead in such things, Apple might yet disappoint the world and be forever condemned to not going out of business.
--Glen Fisher on the java-dev mailing list, Tuesday, 12 Apr 2005 14:23:07
If I write too much code without tests, I feel physical symptoms, like tightness in my chest. One day it'll be a heart attack, but for now it's garden-variety anxiety. Of course, I'm a bit of a nut.
--J. B. Rainsberger on the junit mailing list, Friday, 29 Apr 2005 08:40:28
Its already apparent that while other platforms release JDK's for free, on Mac, as it is today, it must be purchased. To my knowledge, this doesn't only apply to developers, but also to potential users of 1.5 (something I haven't heard anyone touch on -- buying ADC or the forthcoming Tiger is one thing for a developer, but for a user, its something else). Is the reason for this a technical decision, or a marketing decision? By a technical decision, the question is whether it is impossible to make a JDK 1.5 work on the present version of OS X. I think the answer to this is a resounding no. But if its a marketing decision, the crux of the matter boils down to: is forcing both developer and user purchase of ADC / new OS version the expected status quo going forward for releasing a Java app on Mac?
I love Apple, and the Mac -- I switched my home office to Mac entirely a year and a half ago. I'm also a long-time Java developer, so it pains me to say this. But I think if everyone considers the implications of JDK releases being potentially bound to OS releases, rather than being independent, its a pretty serious blow to both development of your Java apps, and the potential sales of that app to your user base.
--Brad O'Hearne on the JavaDev mailing list, Wednesday, 16 Mar 2005 10:47:13
Apple has developed launchd as an open source project that it hopes will be adopted by the wider Unix community. To the average Unix hacker, launchd probably looks like a reinvention of the wheel. I think it addresses a problem the Unix community doesn't even know that it has. In this way it's much like Mac OS X itself. There was "Unix on the desktop," and then there was Mac OS X. You'd think that alone would have been a big enough wake-up call.
If I were working on a Unix-based operating system, I'd be borrowing ideas and code from Apple like there's no tomorrow. Apple has certainly been smart enough to pull in the opposite direction, basing a huge part of its OS (particular its server OS) on open source Unix projects. Apple has returned the favor by contributing to many of those projects: FreeBSD, gcc, KHTML/KJS, etc. When Apple comes calling with their own open source Unix creations, I think it's foolish not to pay attention.
--John Siracusa
Read the rest in Mac OS X 10.4 Tiger : Page 5
We are seeing massive complaints that LimeWire stopped working after upgrading to 10.3.9. The same thing happens after almost every system update. Quite simply, it's unacceptable that system updates continuously break Java.
--Sam Berlin on the Apple Java Dev mailing list, Monday, 18 Apr 2005 11:06:19
It's almost like there's a sliding scale. The worse a software publisher's terms are, the more it wants to keep them hidden until after you've bought their product.
--Ed Foster
Read the rest in Ed
Foster's Gripelog || Settling With Secret Terms
You should not put JARs in the JDK directories; you must simply add them to your classpath (preferably within your [Ant] build scripts rather than using the environment.
--Phil Weighill Smith on the jdom-interest mailing list, Friday, 22 Apr 2005 09:23:11
Basically the notion that there are only two languages--Java and something Microsoft--is just hogwash. C++ still has a role and dynamic scripting languages, such as PHP and Python, are growing, not shrinking, in importance.
--James Governor, RedMonk
Read the rest in C++ creator upbeat on its future | CNET News.com
If you're not using a bug tracker on a development project, you should really give it a try; and if you're using Bugzilla, please, get help. Bugzilla is browser-based masochism.
--Marc Hedlund
Read the rest in Some notes on the building of CodeZoo
American bishops always have been involved in politics and been very selective. If you are a Republican who is for the death penalty, that is O.K., but if you are a Democrat for choice, that is not O.K.
--Senator Patrick Leahy
Read the rest in The New York Times > International > International Special > Pope May Color Debate in U.S. Over 'Life' Issues Like Abortion
Microsoft's Palladium security initiative will become even less popular as people realize that Palladium is too intrusive and it doesn't really work. A year isn't enough time for Palladium to die, but it eventually will.
Still, security will be a bigger thing than ever, though you'll see a subtle shift from people being worried about viruses to them being furious about spam. There is a key issue here, and it is that spam makes money while viruses do not, so spam is going to get only bigger while more and more people are successfully dealing with viruses. Unsolicited e-mail will be a bigger problem than ever.
--Robert X. Cringely
Read the rest in I, Cringely | The Pulpit
There were others inside Sun who pushed hard for GPL. For a brief two week period, I was also one of the GPL lobbyists, until I realized how important it was for us to allow OpenSolaris kernel source files to be compiled and linked with other open source files and even with proprietary source files in the kernel. GPL would not allow this. On Day 1 of OpenSolaris, because some OpenSolaris IP is encumbered by other companies (example - 3rd party drivers), we're going to have some source files in the kernel that will remain proprietary. Hence GPL was out of the running.
--Claire Giordano
Read the rest in Claire's Alternate Version of Reality
The most natural fit of XP, the least resistance, comes when XP’s values are closely aligned with the organisation’s values. Organisations that value secrecy, complexity, isolation, passivity, and hierarchy have a lot of trouble with XP. No organisation would say they value secrecy, complexity, isolation, passivity, and hierarchy, but by looking at their actions many organisations do hold these values. In such a company, XP requires high-level support, patience, persistence, and iron will.
--Kent Beck
Read the rest in Developer Spotlight: Kent Beck: Builder AU: Program
Sampling is something less obvious. It's a statistical method. If you look at the stack of your running application periodically (say, 10 times a second) for long enough (say for 10 seconds), and you observed that method "foo" was on top of stack 50 times out of the total of 100 "samples" you have taken, you can conclude that the application spent roughly 50 per cent of the time executing this method. Of course, with only 100 samples, taken relatively infrequently, this may prove to be a bad estimate. But generally, with the higher sampling frequency and the application running for long enough, it's accurate, and the overhead is low.
So this may be very useful -- except that it doesn't tell you how many times your bottleneck methods were called. That is, it says that the application spent 5 seconds in "foo". Was it because "foo" was called a million times, or there were just 5 calls for 1 second each? This could be a very important difference. In the first case, you should definitely minimize the number of calls to "foo". In the second, you should look at the code of "foo" itself. But classical sampling doesn't give you this information.
--Misha Dmitriev
Read the rest in Better Profiling through Code Hotswapping: A Conversation with JFluid Project Lead, Misha Dmitriev
While Java provide a useful tool to write reasonably cross platform client-server commercial (new COBOL) applications, the development of Java was shaped by Sun-Microsoft antagonism. MS's attitude was that there was no way they were going to allow Java to take over the Windows programming market in a way that might make Windows irrelevant. And Sun helped Microsoft to eliminate this threat by taking out the fastest JVM implementation from the desktop ;-).
Sun's attitude was that there was no way they were going to allow Java to become "a better way to write Windows apps." They succeeded beyond any dream, especially in view of Microsoft launching of C# as an alternative to Java ;-). As a result, Java now is virtually irrelevant to "pure Windows" client-server application development. Also since Windows is the vast majority of all clients, Java is irrelevant for almost all client programming outside small (but important and growing) niche of Web-based clients. The fact that it is still relevant as a cross platform language for writing client-server applications for Unix, working in a WEB browser environment, and that provides some hope for the future. But is this enough remains to be seen...
--Dr. Nikolai Bezroukov
Read the rest in Softpanorama Java Critique Page
If I write a query, am I guaranteed the database is going to do the right thing? Nope. If it does the right thing today, will it continue to do the right thing tomorrow? All I can do is cross my fingers and hope. If declarative languages/database statistics/intelligent optimizers always do the right thing, why do the vast majority of enterprise databases ship with some sort of query plan analyzer? Why do most of them enable the user to inject the explicit use of indices in the query? Because sometimes, maybe more often than most of us in the database world would like to admit, they do the not-so-right thing.
--Arpan Desai on the xml-dev mailing list, Monday, 27 Dec 2004
Why in the world would you think your phone would work in your house?
-- Ivan Seidenberg, CEO, Verizon
Read the rest in Verizon CEO sounds off on Wi
In the past, the way you had to do it was by reverse engineering, and we got into kind of a pickle, because for open source projects, like Samba and OpenOffice, the only way to get the information is by reverse engineering. And for pretty much all the countries in the world, reverse engineering has been a perfectly fine thing to do. In the United States, this really vile law got passed some years ago called the Digital Millennium Copyright Act. One of the little nasties in the DMCA is that reverse engineering of some Digital Rights Management software is illegal.
So reverse engineering is legal for anything except stuff concerning Digital Rights Management. So what’s been happening is that folks like Microsoft put Digital Rights Management into everything, and Digital Rights Management into places where you wouldn’t have thought that DRM would make a whole lot of sense. So that whole document format was getting wrapped in DRM stuff. And there are moderately plausible arguments you can make for why DRM is useful on some of these things, but under the sheets, the major justification is to make reverse engineering illegal. That’s actually in the DVD case, that’s a big piece of what they care about, the DTSS encryption stuff, and it’s like the world’s sloppiest encryption protocol, it’s really stupid. Its only real purpose in life is to tie-in decoding to contracts you have to sign in order to be legal.
--James Gosling
Read the rest in James Gosling Q & A: Builder AU: Program: At Work
Hackers are perfectly capable of hearing the voice of the customer without a business person to amplify the signal for them. Larry Page and Sergey Brin were grad students in computer science, which presumably makes them "engineers." Do you suppose Google is only good because they had some business guy whispering in their ears what customers wanted? It seems to me the business guys who did the most for Google were the ones who obligingly flew Altavista into a hillside just as Google was getting started.
--Paul Graham
Read the rest in Why Smart People Have Bad Ideas
Automated test are more repeatable than manual tests because they execute exactly the same way every time. They don't forget things after long weekends and vacations. They don't leave to work on other projects. They don't get sick or run over by a bus.
Automated tests take a lot less effort to run than manual tests. As a result, they are more likely to be run often. The more often the better. Fully assimilated agile developers run their tests pretty well every time they save and compile their code. And any time they need a quick vote of confidence! The tests act as a comforting "safety net" that promises to catch the developer's mistakes. This allows them to work more quickly and with less paranoia and that makes them more productive despite the extra effort involved in writing the tests.
--Gerard Meszaros
Read the rest in Patterns of XUnit Test Automation
It's worth remembering that templates in C++ started out as nice, simple things roughly comparable to Java generics. They got complexificated as people said "if I can do *this* with templates, why can't I do *that*?". Much of the obfuscation potential comes from people discovering that templates as currently defined can do amazing things if you poke around in the right dark corners. (You can, for instance, use them to find out *at compile time* whether a class has a particular method defined, or to declare a variable of the same type as the third argument of a function.) There seems to be fairly widespread agreement in the C++ community (including those on the language standard committee) that templates could stand serious revamping; the uncertainty is what form that revamping should take, and how to reconcile that with efforts at taming--or eliminating--the macro preprocessor. Java fans wanting to keep generics clean should take an active interest in how C++ deals with the ! template problems.
--Glen Fisher on the java-dev mailing list, Thu, 28 Oct 2004
the crux of (at least) my belief in open source licensing is that one should be ready to make money on services, not on license sales. Services reserve the right for customers to give you money when they want you, not when they have to. I find it infinitely easier to deal with things people actually want.
--Steven Noels
Read the rest in Outer Web Thought Log: Open Source Whoring
The Soviet Union collapsed not because of communism or central planning, but because of corrupt accounting. They couldn't organize the means of production because everybody was lying about everything. It was a game of fake numbers, and when you do that, you get crap for answers.
--Bill Joy
Read the rest in Fortune.com - Technology - Joy After Sun
setVisible() and setEnabled() on components are on a par with each other, but show() on a top level window does much more. Consider validate() for example. Why isn't it setValid(true)? Perhaps just because you would never call setValid(false), but maybe also because it's more obvious that it does something than simply setting a property.
--Rolf Howarth on the java-dev mailing list, Saturday, 9 Apr 2005 07:32:03
today's Republican Party - increasingly dominated by people who believe truth should be determined by revelation, not research - doesn't respect science, or scholarship in general. It shouldn't be surprising that scholars have returned the favor by losing respect for the Republican Party.
Conservatives should be worried by the alienation of the universities; they should at least wonder if some of the fault lies not in the professors, but in themselves. Instead, they're seeking a Lysenkoist solution that would have politics determine courses' content.
And it wouldn't just be a matter of demanding that historians play down the role of slavery in early America, or that economists give the macroeconomic theories of Friedrich Hayek as much respect as those of John Maynard Keynes. Soon, biology professors who don't give creationism equal time with evolution and geology professors who dismiss the view that the Earth is only 6,000 years old might face lawsuits.
--Paul Krugman
Read the rest in An Academic Question
Fundamentally, the issue is this: is Groovy a language that strongly resembles Java and strives to be compatible with it where it can be? Or is Groovy a completely new language that makes up its own syntax rules without caring about how Java expresses a given construct? Most people who know a little about Groovy have a very quick initial answer to this - they either believe Groovy is Java++, or Groovy is something completely new. But neither camp is correct. In some areas Groovy is stubbornly very Java like. This can be seen in the language structure, and also in the JSR's approach. For example, the official JSR specification is being approached as a delta of the Java Language Specification. And, of course, they are basing the Groovy grammar off of a Java grammar. In fact, they seem concerned enough with Java compatability that they may want to re-do the grammar again to base it off of a 1.5 base.
But that's only one side of the coin. While a great deal of Javaisms and Java compatibility have gone into Groovy, there are many areas where it is gratuitiously incompatible with Java. As a rule, you could never take vanilla Java code and drop it into Groovy. This was always the case in "Groovy classic". However, the JSR work is increasing the areas of incompatiblity. In fact, the committee members seem completely unable to decide whether Groovy should be Java compatible or not, and it shows (desperately) in the lack of cohesion in the language. Some of this is due to the Java compatilility issue - they very much need Groovy code to be able to call into Java code. But in many areas this aim is strongly at odds with the direction the JSR group is pushing the language. The end result is a mess. People looking for a fresh new language will be frustrated with the Javaisms in the language. People looking for Java++ will be outraged by gratuitous incompatibilities and little gotchas. And both camps will be repeatedly bitten by the wishy washy "these constructs are optional, sometimes" rules being adopted.
--Mike Spille
Read the rest in Pyrasun 2.0 - The Spille Blog: How Groovy Lost its Groove Thang
CVS's security model is just awful. To allow a user to commit to a particular directory, you have to give them write permission on the whole directory, so there's nothing to stop them rewriting history: deleting or editing old revisions, altering log messages, etc. Now just occasionally you do actually want to do things like that (suppose you accidentally checked your password file into a repository, for example – you really would want to remove it from your CVS history, perhaps with a marker explaining what you'd done, rather than just checking in a subsequent change that deleted it); but it certainly isn't clear that allowing all users unrestricted access to do things like that is what you want to do. Added to that, there's the question of scripts in CVSROOT (run under each client's UID, so that they can't impose dependable restrictions because hacked clients can bypass them, and conversely if anyone manages to check in a malicious script then all clients will start running it under their own UIDs and propagating malware); and then there's the issue of needing write permission in a directory to read it (although this can be fixed by correct repository administration, i.e. having a separate locks tree).
--Simon Tatham
Read the rest in My Experiences With Subversion
You can cast aList<=<String>
to aList<Integer>
; and then you can insert an Integer into that list. Gotcha!
--Matt Quail
Read the rest in madbean.com: Talking Tiger, generically speaking
both Lisp and Smalltalk were done in by the eight-bit microprocessor—it’s not because they’re eight-bit micros, it’s because the processor architectures were bad, and they just killed the dynamic languages. Today these languages run reasonably because even though the architectures are still bad, the level 2 caches are so large that some fraction of the things that need to work, work reasonably well inside the caches; so both Lisp and Smalltalk can do their things and are viable today. But both of them are quite obsolete, of course.
The stuff that is in vogue today is only about “one- half” of those languages. Sun Microsystems had the right people to make Java into a first-class language, and I believe it was the Sun marketing people who rushed the thing out before it should have gotten out. They made it impossible for the Sun software people to do what needed to be done.
--Alan Kay
Read the rest in ACM Queue - A Conversation with Alan Kay - Big talk with the creator of Smalltalk—and much more.
When those planes smashed into the World Trade Centre with the loss of 2,500 innocent lives, I don't think anybody's first reaction was: 'Well, the sooner we get the mujahideen and the warlords to take over Kabul the better!' No, as I remember, President Bush laid out the policy objectives of his 'War on Terrorism' in measured terms: 'We must catch the evil perpetrators of this cowardly act and bring them to justice.'
Bringing to justice the people who actually perpetrated the crime was out of the question since they were already dead. They'd killed themselves in a typically cowardly fashion. So, as I remember it, President Bush pretty quickly said he would get whoever egged them on to do it and then he would make them pay for it.
Well, many months later, who has paid for it? US taxpayers have stumped up billions of dollars. They've paid for it. So have the British taxpayers, for some reason which hasn't yet been explained to us. Uncounted thousands of innocent Afghan citizens have paid for it too - with their lives. I say 'uncounted' because nobody in the West seems to have been particularly interested in counting them. It's pretty certain more innocent people have died and are still dying in the bombing of Afghanistan than on 11 September, but the New York Times doesn't run daily biographies of them so they don't count.
Oh, I nearly forgot - we've all paid a considerable amount in terms of those precious civil liberties and freedoms that make our way of life in the Free World so much better than everyone else's. Bit of a conundrum that.
--Terry Jones
Read the rest in Guardian Unlimited Observer | Comment | I remain, sir, Haggard of the Hindu Kush
I fully expect the current legal issues around Linux will be eventually resolved and forgotten. Successful technologies are remembered, but few remember the inevitable bumps in the road we all have to resolve
--Irving Wladawksy-Berger, general manager of IBM's e-business on demand group
Read the rest in Wired News
Stuart Feldman, the Bell Labs guy who invented "make", woke up one morning a few weeks after he'd released it, and realized that the syntax basically sucked - all those tabs and colons and weird continuation rules. He started working on something better and was shot down because someone said "Stuart, there are *dozens* of people using this, it's too late to change it."
--Tim Bray on the xml-dev mailing list, Friday, 15 Nov 2002
I've been a Java developer since 1997, and I switched my entire home office from PC to Mac a year and a half ago. It was not only painless (the worst of the change was moving Quicken for PC data to Quicken for Mac), but I've reduced my admin (unwanted) time down to basically nothing. Every Windows box I've ever owned required a complete system reinstall every 8-12 months. From the opinion of someone coming from the PC world, having a Windows box is like owning a pet. If you want to feed it, walk it, give it baths, and take it to the vet regularly, then Windows is for you. As for me, I waited a year prior to switching, watching a critical senior *nix sysadmin friend of mine for a year after he switched. He loved it. I switched a year after him. I feel the same. Its *the* premier UI on top of a rock-solid kernel.
--Brad O'Hearne on the java-dev mailing list, Wednesday, 12 Jan 2005 11:10:57
Most solid production systems do not migrate to the latest and greatest JDK. It takes a lot of regression testing to certify an entire system to run on a major platform change like that. In fact, I cringe when java software toolsets, frameworks, or applications do something which depends on a new JDK. To me, that usually means the developers didn't want to spend much time on keeping backwards compatibility for their customer base.
--Mark F. Murphy on the java-dev mailing list, Sunday, 13 Mar 2005 15:57:23
Our customers are happy that our price point is low but not all of them quite understand the implications. They ask us to fly out to their headquarters to give a demo of the software to their development team. They send us long spreadsheets with lists of features and ask us to check off the features we support. They even send us RFPs (shudder). RFP stands for "Request for Proposal." It's a request by a large company for a custom proposal from a small company. The small company works on the 200 page laser-printed proposal like mad for three weeks and Fedexes it in great expense and at the last minute, where it gets put in the trash because the large company has their favorite vendor who takes them on a helicopter to Atlantic City on junkets involving blackjack and strippers, and who is going to get the contract no matter what, but someone in purchasing for some unexplained reason, maybe he's bucking for a promotion is insisting that the proposal be opened up to "competitive bidding" and the small company has been chosen as a victim to write up a proposal that has no chance of being accepted just to make the process look a little bit less corrupt, and if you're a small company, I would recommend that you don't fall for it and don't spend any time responding to RFPs unless it's already understood that you're going to get the contract.
--Joel Spolsky
Read the rest in Joel on Software
The good news has always been that code compiled for previous versions of Java continues to function under the latest versions of Java. Unless I'm developing for an environment where the OS platform it highly targeted, I tend to see no reason to rush into requiring users to have the absolute latest and greatest JRE. To do so only puts my own software development projects at a disadvantage: it's already difficult to attract users to run Java applications on most platforms. I don't need to make it even harder by telling people that they have to upgrade their JVM to run my software.
--Brad Barclay on the JavaDev mailing list, Wednesday, 16 Mar 2005 11:35:52
I'm saddened by what I feel is the obtuseness and shortsightedness of a good part of the country - the heartland. This kind of redneck, shoot-from-the-hip mentality and a very concrete interpretation of religion is prevalent in Bush country - in the heartland. New Yorkers are more sophisticated and at a level of consciousness where we realize we have to think of globalization, of one mankind, that what's going to injure masses of people is not good for us,
--Joseph Zito
Read the rest in The New York Times > New York Region > A Blue City (Disconsolate, Even) Bewildered by a Red America
Sure, there was a time when smart Java developers worked in Vim and prided themselves on esoteric shortcuts -- but that time ended in January 2001 when IDEA was released (http://www.jetbrains.com/). Eclipse is sharp too, and others have done a good job appropriating the Eclipse work (especially IBM with their WSAD for WebSphere).
--Josh Braun
Read the rest in Smalltalk Tidbits, Industry Rants: Why progress is so slow
OpenOffice.org/StarOffice is a huge code-base comprising millions of lines of code developed over a period of more than 15 years. It is a much larger challenge to work on a single native code-base of this size because logistically it takes a long time to build and test, which impacts not just on releases but on daily and developer builds. Techniques like agile programming and test-first development simply don't scale this far, and developer support tools that check stack and memory access are unable to cope with the code size and number of API symbols. The code-base is very well layered and somewhat modular, but not componentised.
--Colm Smyth
Read the rest in AdityaNag.org › An Interview with the OpenOffice.org Team.
You program for a machine, but you also program for human beings. Never forget that. Even the best performing code can be useless if no human can figure out what it is doing and why it is doing it the way it does.
--Marcus Brinkmann
Read the rest in Interview with Hurd developer Marcus Brinkmann | Wikinerds Portal
Now, you're not supposed to ask about Venezuela. You've already made a mistake. With the USA Patriot Act, you're not supposed to look at anything but Iraq, Iraq, Iraq, which is the Weapon of Mass Distraction. And while you're supposed to be hypnotized by Iraq, don't watch that man behind the screen, Otto Reich in the White House, who is doing his level best to overthrow the elected government in Venezuela. So, I'm trying to write this story, but you can't get the true reports out for nothing. The New York Times runs a front-page picture of thousands of Venezuelans marching against Hugo Chavez. The same day, I'm photographing it myself, more people are marching for Chavez, but they don't show the others. It's more devastating than fabrication, because a picture makes you think, "That must be real." It's terribly sad, because the story of Venezuela is about oil. It is about crushing a dissenter to the new globalization order.
It's hard to tell the real stories because it requires investigation. It requires work. And it requires being able to say that official sources like the State Department are full of shit, that they are fabricating this stuff out whole cloth for the purpose of scrambling your brain, and that our media outlets buy it.
I can't tell you to how many reporters I've said, "Where do you get this stuff?" And they say, "Well, it was in a State Department press release," as if that's an acceptable source.
--Greg Palast
Read the rest in Anybody Using This First Amendment?
Greg Palast interviewed by Eric Bosse for AlterNet
There are a few things that I've come to think are fundamental to how I see software development. If I had to pick one as my key to software development it's that the critical element in a software development effort are the people you have doing the work. The productivity of the best developers is far more than the average, much more than the difference in salaries. Therefore the most important part of getting cost effective software development is to hire the best team you can, even if the individual cost of the developers is much higher than the average. A few high ability (and expensive) people will be much more productive than many low ability (cheap) developers. That productivity difference means that a few high ability people will produce software more cheaply even if they cost more on a daily rate.
--Martin Fowler
Read the rest in MF Bliki: PeopleMatterMost
Most textbooks and methodology guides start with statistics proving that software projects are disastrously prone to failure. I'll take that for granted.
They then propose complicated rules designed for a fantasy business world where cooperative workers idealistically work towards the common goal of maximizing shareholder value.
A couple of weeks in a typical office should disabuse you of that. Real world companies are made up of individuals working for their own goals: career advancement, more money, or just the chance to slack off. Occasionally it may be in someone's interest to build a successful project. Usually it's more useful to sabotage it.
This leads to the real reason for the perpetual software crisis:
1. Most software fails because it is designed to fail
--Theophile Escargot
Read the rest in Politics-Oriented Software Development || kuro5hin.org
Some people criticize the relative transparency of experiments in open source--it's like watching a goose land on a frozen lake, but I like that about Sun--the organic way they try earnestly to get it right, the balance between making a profit and being an open-source company
--Danese Cooper
Read the rest in Sun open-source diva departs for Intel | CNET News.com
Afghanistan is being transformed into an enormous US jail. What we have here is a military strategy that has spawned serious human rights abuses, a system of which Afghanistan is but one part.
--Nader Nadery, Human Rights Commission
Read the rest in Guardian Unlimited | Special reports | 'One huge US jail'
Ten years after we officially launched Java in May 1995, our dream of a ubiquitous software platform to power a networked world has actually come true. Today, some form of Java runs on 1.4 billion devices, and there are more than 4.5 million Java developers worldwide. Mobile applications like Java-based digital wallets generated more than $1.4 billion for the almost 100 mobile carriers who use Java worldwide in 2003. Java was, quite simply, the right technology at the right time.
--Kim Polese
Read the rest in Guest Editorial by Kim Polese: "From Here to Ubiquity" (SYS-CON)
I have a love-hate thing with Aspect J. There are many things I like about it. In particular it is very easy to destroy the invariance that programmers expect when they define an API because it allows a third party to wiggle their way between this relationships between two sides. The way that it allows people to violate that contract I find actually fairly disturbing. It’s got that butter knife problem, you can use it either for good or evil and I have to wonder how often it would be used either way. It’s the kind of tool I’d like to use but would hate for somebody to use at me.
--James Gosling
Read the rest in Developer spotlight: James Gosling: Builder AU: Web Development
This strategy from Sun looks a lot like the one they ran (successfully) during the dot com boom - back then, the expanding number of websites drove a lot of hardware sales to Sun. I wasn't convinced then that their huge investment in Java was helping them a lot - those websites were going to go up regardless, and Sun could have sold a lot of hardware without the huge software investment in Java. Likewise, I'm not at all convinced that the prevalence of Java phones helps them a lot here, either. Even if they do succeed in selling lots of hardware, the simple fact is that said hardware would sell with or without Sun's Java investment - Java's existence is not a pre-requisite for the mobile phone space. The point is - the JavaSoft group is a huge brick weighing down Sun's business, because the hardware sales they hope to make are almost completely independent of its existence. At the same time, other vendors - IBM, for instance - have used Java quite successfully as a shovel to pile money into their maw.
--James Robertson
Read the rest in Smalltalk Tidbits, Industry Rants: Not so fast
In today's context, it is much more important to optimize software design for productivity, code correctness, robustness and possibility of evolution then it is to optimize for performance.
There are very many reasons for that, among which:
(1) Performance ALWAYS comes when a technology achieves a certain critical mass of users.
(2) Productivity, correctness, robustness and possibility of evolution DON'T come after the fact (i.e. after the software is written): it's either there, or or it's not there.
If you need them (and we DO need them), the best one can do later is to rewrite the software, or to add another abstraction layer in top, which we all know how many bad consequences has in long run, both in terms of the complexity of the overall architecture, and also performance.
--Daniela Florescu on the xml-dev mailing list, Wednesday, 29 Dec 2004
Even if you’re designing for professional programmers, in the end your programming language is basically a user-interface design. You will get much better results regardless of what you’re trying to do if you think of it as a user-interface design.
--Alan Kay
Read the rest in ACM Queue - A Conversation with Alan Kay - Big talk with the creator of Smalltalk—and much more.
Tools for measuring structural code coverage have become increasingly easy to use and deploy and have thus deservedly gained greater acceptance in the testing arsenal. A fundamental flaw made by many organizations (especially by management, which measures by numbers) is to presume that because low code-coverage measures indicate poor testing, or that because good sets of tests have high coverage, high coverage therefore implies good testing. Code coverage merely measures that a statement, block, or branch has been exercised. It gives no measure of whether the exercised code behaved correctly. As code gets too big to easily roll up qualitative assessments, people start summarizing code coverage instead of test information. Thus, we know low code coverage is bad, because if we have never exercised the code, it appears impossible to say we have “tested” it. However, while having something that just executes the code may consequently reveal a few possible flaws (e.g., a complete system failure), it doesn’t really indicate if the code has been what most people consider tested.
--Keith Stobie
Read the rest in ACM Queue - Too Darned Big to Test - Testing large systems is a daunting task, but there are steps we can take to ease the pain.
I do in fact have a user-written Saxon extension in this space waiting to be integrated, but like many such contributions it contains code changes only, no documentation or tests or design, so it's not all that useful.
--Michael Kay on the xml-dev mailing list, Friday, 31 Dec 2004
The corporate right and the political right declared class war on working people a quarter of a century ago and they've won. The rich are getting richer, which arguably wouldn't matter if the rising tide lifted all boats. But the inequality gap is the widest it's been since l929; the middle class is besieged and the working poor are barely keeping their heads above water. The corporate and governing elites are helping themselves to the spoils of victory -- politics, when all is said and done, comes down to who gets what and who pays for it -- while the public is distracted by the media circus and news has been neutered or politicized for partisan purposes.
Take the paradox of a Rush Limbaugh, ensconced in a Palm Beach mansion massaging the resentments across the country of white-knuckled wage earners, who are barely making ends meet in no small part because of the very policies of those corporate and ideological forces for whom Rush has been a hero. I recently came across an account of the tabloid era of British journalism in the late 1950s when the Daily Mirror, for one, presented itself as the champion of the working man, fearlessly speaking truth to power, when out of sight its gluttonous and egomaniacal chairman was demanding and extorting favors from frightened or like-minded politicians and generally helping himself to greater portions of privilege like any other press baron. It's the same story for Limbaugh, Murdoch and his minions, and the tycoons of the megamedia conglomerates. They helped create the new Gilded Age to whose largesse they have so generously helped themselves while throwing the populace off the trail with red meat served up in the guise of journalism.
As Eric Alterman reports in his recent book -- a book that I'm proud to have helped make happen -- part of that red meat strategy is to attack mainstream media relentlessly, knowing that if the press is effectively intimidated, either by the accusation of liberal bias or by a reporter's own mistaken belief in the charge's validity, the institutions that conservatives revere -- corporate America, the military, organized religion, and their own ideological bastions of influence -- will be able to escape scrutiny and increase their influence over American public life with relatively no challenge. Eric calls it "working the refs," and it's worked.
--Bill Moyers
Read the rest in Bill Moyers is Insightful, Erudite, Impassioned, Brilliant and the Host of PBS' "NOW" - A BuzzFlash Interview
The U.S. government is considering plans for temporarily disabling the U.S. network of global positioning satellites during a national crisis to prevent terrorists from using the technology.
During a national crisis, GPS technology will help the good guys far more than it will help the bad guys. Disabling the system will almost certainly do much more harm than good.
This reminds me of comments after the Madrid bombings that we should develop ways to shut down the cell phone network after a terrorist attack. (The Madrid bombs were detonated using cell phones, although not by calling cell phones attached to the bombs.) After a terrorist attack, cell phones are critical to both rescue workers and survivors.
All technology has good and bad uses -- automobiles, telephones, cryptography, etc. For the most part, you have to accept the bad uses if you want the good uses. This is okay, because the good guys far outnumber the bad guys, and the good uses far outnumber the bad ones.
--Bruce Schneier on the cryptogram mailing list, Saturday, 15 Jan 2005 02:50:05
A working product, with fewer features, is definitely better than one that promises the moon in two centuries.
--Joseph Ottinger
Read the rest in Pyrasun 2.0 - The Spille Blog: Groovy's A Lost Cause
25 years or so ago, Codd conclusively demonstrated the superiority of the relational model, but the world seems to keep reinventing hierarchical databases, AKA post-relational DBMS, Object-Relational RDBMS with an XML column type, native XML DBMS, even OODBMS (note that Progress has given ObjectStore new life since they bought Excelon, presumably because it has a lucrative niche). This happens because an awful lot of real-world relationships are hierarchical -- "contains / part-of", "parent / descendent", "manages / managed-by" .... -- and it is pragmatic to use tools that natively understand hierarchy to deal with them. Likewise, lots of things are intrinsically ordered (time being the obvious one) and as best I understand it, temporal relationships are one of the weaker aspects of the relational model even in theory, nevermind practice; again, XML treats order as a first-class citizen and is often a pragmatic tool.
--Michael Champion on the xml-dev mailing list, Thu, 20 May 2004
A developer community that creates new frameworks and libraries almost hourly is both a strength and a weakness. Instead of coming together to promote one best-of-breed library, different developers and organizations end up competing against one another—often with almost identical feature sets. Users (developers in this case) get caught up in the arms race and become thoroughly confused. Even Sun engages in this activity. A prime example is the current Java Data Objects (JDO)-EJB debate (debacle?). Surely one should go and one should become/remain the incumbent. The current state of affairs is simply sending the Java community confusing signals. For example, if you're a J2EE architect, are you 100 percent comfortable that the ideal J2EE architecture you hold in your head (or your heart!) is the best available solution at the present time?
--Humphrey Sheil
Read the rest in In pursuit of perfection
I've hung around with many tech zombies in the past, from Wang Laboratories to Prime Computer to Digital Equipment. When I stare into the eyes of the Sun management team, I still see life; this team doesn't look like it's ready to give up or stop trying to compete. Given the strategy and management, I believe that there is a good chance that Sun will be around for a strong third act.
--George Colony, CEO, Forrester Research
Read the rest in Sun's plans...and how they could go wrong - ZDNet UK Comment
Of course, only 64 percent of Texans voted for Bush, and you can’t tar every resident there with the same brush. But the state is populated by enough smarmy, dishonest, arrogant, bullying, jingoistic, homophobic, bigoted people that I’m not going to flagellate myself wondering why they didn’t go for someone as noble, introspective, intelligent, and fair as John Kerry. They went for the arrogant asshole created in their own image. No broader theme, no simpler message, no more quotidian concerns would have ever won those people over - it would have taken an army of psychotherapists, some straitjackets, and a few cattle prods.
And so it really pissed me off tonight when I’m sitting here listening to WAMC, our local NPR station, in hopes of some comfort, and some guy starts lecturing Democrats on how Bush won because he had a “moral vision,” and the Democrats didn’t come up with any “moral vision.” What moral vision? Invading a country that posed no threat, and killing 100,000 people, most of them innocent women and children? Outing Valerie Plame as a CIA agent for revenge on her husband? Sneaking around the Geneva Convention to torture and sexually humiliate Iraqis randomly dragged in off the street? Stripping people of their civil rights to spy on them? Suppressing minority votes? Lying to destroy the reputations of war heroes? Raping the environment? Well, I don’t know if you’d call it a moral vision, but it’s certainly the Baptist Church I recognize from my youth. And while I admittedly wish Kerry were going to be president, I feel better knowing that my liberal friends in New York and I occupied the moral high ground in this election, than if we had sunk to Bush’s level to win. We had our own moral vision, which genocide, election-stealing, and lying played no part in.
--Kyle Gann
Read the rest in ArtsJournal: PostClassic
The Tablet PC is essentially a big fat Apple Newton for the modern age, allowing a whole new generation of modern programs to be functionally inaccessible to their hapless user.
--Garrett Birkel
Read the rest in The Command Line In 2004
The reason for the case-sensitivity is simple: internationalization. English is one of the few languages in the world where it's easy and straightforward to map upper- and lower-case letters together. The majority of the world's population uses languages that don't even have case, and don't see why one class of characters should arbitrarily be regarded as the same as another.
But once you've left the safe bounds of English, you don't have to go all the way to Asia to get in trouble with case-folding. What is the upper-case version of the character "é"? It turns out the answer is sometimes different depending on whether you're in Québec or France. Then there are the problems with the German "ß" and the dotless Turkish "i", and in general... well, you want to stay away from case-folding. So XML does.
--Tim Bray
Read the rest in CaseSensitive
I'll never likely release any new work of substance into BSD/ASL again just because I don't want to see IBM use it in WebSphere, fork it and then tell us how much they love open source.
--Andrew C. Oliver
Read the rest in RANT: Why did the FSF let Ted Kaczynski write their licenses?
When I'm unwilling to forgo static type-safety, I create type-specific classes that do exactly what I want, neither more nor less. The result is almost always much simpler than implementing an all-singing all-dancing interface like Collection or Set. And it works for Java versions before 1.5/5.0, too.
--Greg Guerin on the java-dev mailing list, Friday, 29 Oct 2004
It's great to be able to pop open the code and fix something. But lets face it, modifying code you didn't write is difficult. You need acclimation time. The reason I often choose free software over commercial isn't because of dollar price or because of access to the source, it's because of a low setup cost. I can download it and get going now! No registration. No fluffy documentation. And especially no getting into my car and driving to the store.
--Joshua Marinacci
Read the rest in java.net: My 1 year anniversary at Java.net: the social side of software. [August 21, 2004]
I think, fundamentally, open source does tend to be more stable software. It's the right way to do things. I compare it to science vs. witchcraft. In science, the whole system builds on people looking at other people's results and building on top of them. In witchcraft, somebody had a small secret and guarded it -- but never allowed others to really understand it and build on it.
Traditional software is like witchcraft. In history, witchcraft just died out. The same will happen in software. When problems get serious enough, you can't have one person or one company guarding their secrets. You have to have everybody share in knowledge.
--Linus Torvalds
Read the rest in BW Online | August 18, 2004 | Linus Torvalds' Benevolent Dictatorship
Eclipse is approximating wonderful, but it eats memory like Americans eat corn-syrup-enhanced snacks.
--Ben Last
Read the rest in benlast: Total Eclipse Of The Python
I know how templates and operator overloading work, I just choose not to use them because I know they can result in code that's difficult to understand, to debug, and to modify, even if in the short term they let you come up with (apparently) clever and elegant solutions to certain problems. It's simply not worth the hassle
--Rolf Howarth on the java-dev mailing list, Saturday, 30 Oct 2004
We looked at Java very closely in 1995 when we were starting on a major set of implementations, just because it’s a lot of work to do a viable language kernel. The thing we liked least about Java was the way it was implemented. It had this old idea, which has never worked, of having a set of paper specs, having to implement the VM (virtual machine) to the paper specs, and then having benchmarks that try to validate what you’ve just implemented—and that has never resulted in a completely compatible system.
The technique that we had for Smalltalk was to write the VM in itself, so there’s a Smalltalk simulator of the VM that was essentially the only specification of the VM. You could debug and you could answer any question about what the VM would do by submitting stuff to it, and you made every change that you were going to make to the VM by changing the simulator. After you had gotten everything debugged the way you wanted, you pushed the button and it would generate, without human hands touching it, a mathematically correct version of C that would go on whatever platform you were trying to get onto.
The result is that this system today, called Squeak, runs identically on more than two dozen platforms. Java does not do that. If you think about what the Internet means, it means you have to run identically on everything that is hooked to the Internet. So Java, to me, has always violated one of the prime things about software engineering in the world of the Internet.
Once we realized that Java was likely not to be compatible from platform to platform, we basically said we’ll generate our own system that is absolutely compatible from platform to platform, and that’s what we did.
--Alan Kay
Read the rest in ACM Queue - A Conversation with Alan Kay - Big talk with the creator of Smalltalk—and much more.
Eclipse is approximating wonderful, but it eats memory like Americans eat corn-syrup-enhanced snacks.
--Ben Last
Read the rest in benlast: Total Eclipse Of The Python
You're not always measuring what you think you're measuring. In fact, you're usually not measuring what you think you're measuring. Be very leery of the results of any performance measurement that does not involve a realistic program load over a long period of time.
--Brian Goetz
Read the rest in Java theory and practice: Dynamic compilation and performance measurement
if you look at your cell phones today, you’ve got about as much CPU horsepower as your desktop computer of like six or seven years ago. And actually, if you count the DSP, it’s actually got more, it’s just not usable. If you look at what people have been doing with PDAs and so forth. More and more, what people think of as desktop… we are drifting towards these odd and unusual formats. And the big challenge is how to deal with user experience, if you don’t have a big screen on a telephone. But there are phones that people have made with DLP chips in them, and they actually project a big screen -- you can put your cell phone down on the table and they actually project on the wall. People can build them like that and they work just fine, but the battery’s dead in about five minutes.
--James Gosling
Read the rest in James Gosling Q & A: Builder AU: Program: At Work
TV, has a much smaller share of viewers than at any time in the past, but those viewers get all their information there. They get turned into a very uniform belief block. TV in America created the most coherent reality distortion field that I’ve ever seen. Therein is the problem: People who vote watch TV, and they are hallucinating like a sonofabitch. Basically, what we have in this country is government by hallucinating mob.
--John Perry Barlow
Read the rest in Reason: John Perry Barlow 2.0: The Thomas Jefferson of cyberspace reinvents his body -- and his politics.
we're not trying to kill off or replace anyone. Unlike proprietary software, success with Open Source software is not measured by market-share dominance. GIMP, Scribus, and Inkscape can be quite successful even if they never have more than a fraction of the total userbase, so long as they continue to improve the value of the tools to the users and have fun in doing so.
--Bryce Harrington
Read the rest in Achieving higher consistency between OSS graphics applications - OSNews.com
Despite the vast disparity between SCO's public accusations and its actual evidence--or complete lack thereof--and the resulting temptation to grant IBM's motion, the court has determined that it would be premature to grant summary judgment. Viewed against the backdrop of SCO's plethora of public statements concerning IBM's and others' infringement of SCO's purported copyrights to the Unix software, it is astonishing that SCO has not offered any competent evidence to create a disputed fact regarding whether IBM has infringed SCO's alleged copyrights through IBM's Linux activities.
-- U.S. District Judge Dale Kimball
Read the rest in Judge slams SCO's lack of evidence against IBM | CNET News.com
Of the technologies that exist today, you have to look at what can happen on the worst day. With wind power, you can go bankrupt. With a dam burst, lives can and have been lost, but it's fairly localized. The cost of cleaning up after Chernobyl, though, is greater than all of the benefits of the entire Soviet nuclear power industry combined, and it could have been worse.
--David Lochbaum, Union of Concerned Scientists
Read the rest in The New York Times > International > Asia Pacific > China Promotes Another Boom: Nuclear Power
The GPL makes those freedoms self-perpetuating by requiring that anyone who obtains and redistributes GPLd software to release it under the same terms. This is sometimes referred to in a pejorative sense as its "viral nature." Call it what you will, this feature is what provides the protection for the four freedoms. This is what provides Linus -- and thousands of other free software authors -- the protection they want for their software.
Microsoft, for example, took the BSD-licensed TCP/IP stack from the public and swallowed it up in its proprietary product line. Then sold back to the public what it had taken from them. Legally, of course. The BSD-style license offers no protection against that sort of thing.
They've done the same thing with Kerberos, except worse. They made their version of Kerberos work fully only with their servers. Public pressure forced them to provide documentation for their closed-fisted proprietary pirated version, but they attached a restrictive license to the documentation which made it impossible for it to be used in free software.
Once again, it was piracy of public software. Stolen in order to increase Bill Gates' personal fortune. But it was legal theft. The MIT license covering Kerberos provided no protection against that sort of thing.
I love the GPL because it protects Linux and other great software from falling into the clutches of the real software pirates.
--Joe Barr
Read the rest in NewsForge | Why I love the GPL
Not all open source projects are meritocracies.
--Glen Ezkovich on the JavaDev mailing list, Friday, 26 Nov 2004
While you should actually descope as early as possible, you should admit you've descoped as late as possible.
First, the person who identifies a problem is usually blamed for that problem: kill the bearer of bad news is the principle. Second, admit it too early and people have the chance to add more pointless requirements: it's safer to wait until there's panic in the air. Only propose descoping when the project is already behind schedule.
Also remember that someone who points out a problem early is a troublemaker; someone who fixes a problem at the last minute is a hero.
--Theophile Escargot
Read the rest in Politics-Oriented Software Development || kuro5hin.org
even common sense tells us that what users are able to articulate before they have something is rarely a perfect match for what they say after they've actually experienced it. It's just like most market research... people can't usually tell you in advance exactly how they'll react to something. They just have to try it.
You just have to be there to watch. And listen. And learn. And then take what you learned and go back and refine, which is why the old waterfall model is pretty much the worst thing to happen to users.
--Kathy Sierra
Read the rest in Creating Passionate Users: Users aren't dangerous
Sun is as obsessed with IBM now as they were with Microsoft over the last decade. I suspect that said obsession will be every bit as useful for them.
--James Robertson
Read the rest in Smalltalk Tidbits, Industry Rants: Not so fast
We have to be concerned about...the use of patent WMDs. That will be the last stand of Microsoft," Kapor said. "If totally pushed to the wall--because their business model no longer holds up in an era in which open-source is an economically superior way to produce software, and the customers understand it, and it's cheaper and more robust, and you've got the last monopolist standing--of course they're going to unleash the WMDs. How can they not?
--Mitch Kapor
Read the rest in Open-source honchos trash software patents | CNET News.com
Back to reliability: one way to decrease bugs is testing, but another way is to decrease the amount of code. Code deleted is code debugged. Static typing can decrease the number of bugs, but decreasing the amount of code is a much, much more effective way to decrease bugs. If you can have both -- short code and static typing -- then more power to you. I just haven't seen it myself.
--Ian Bicking
Read the rest in Because Unanswered Problems Are Always Hard
Hollywood gets more misogynist every year. Dialogue you'd see in a 50s film would be unthinkable in a mainstream film today, since it would necessitate the existence of a female who was intelligent yet not evil. Women in their 30s (Angelina Jolie, in Alexander) are cast as mothers to men in their late 20s (Colin Farrell). Men in their 60s are cast as love interests to women in their teens. It is rare to the point of being unthinkable, now, for the heroine of any mainstream romance to be embarking on anything but her first sexual encounter. Hollywood operates according to a virgin-centric moral schema that is about as strict as Shakespeare's.
--Zoe Williams
Read the rest in Guardian Unlimited Film | Features | Hollywood loses the plot
Most textbooks and methodology guides start with statistics proving that software projects are disastrously prone to failure. I'll take that for granted.
They then propose complicated rules designed for a fantasy business world where cooperative workers idealistically work towards the common goal of maximizing shareholder value.
A couple of weeks in a typical office should disabuse you of that. Real world companies are made up of individuals working for their own goals: career advancement, more money, or just the chance to slack off. Occasionally it may be in someone's interest to build a successful project. Usually it's more useful to sabotage it.
This leads to the real reason for the perpetual software crisis:
1. Most software fails because it is designed to fail
--Theophile Escargot
Read the rest in Politics-Oriented Software Development || kuro5hin.org
I prefer the GPL because it was designed to compel corporations to play fair. It's a "no-rape-or-pillage allowed here" license, and that is supremely pragmatic, since, as I have observed, rape and pillage seems to appeal to the nonFOSS corporate mind. It's the only license that tackles that issue head on, and that is partly why people trust it.
--Pamela Jones
Read the rest in GROKLAW
Build software that bends. Think in terms of malleable data and disappearing services. In general, visualize the system as an evolving, changing entity that can not be constrained. Do NOT try to constrain it, if you do you'll just end up with a system that falls over at the smallest inconsistency. Validate what you need, pass through anything you don't need.
--Kimbro Staken
Read the rest in Inspirational Technology: 10 things to change in your thinking when building REST XML Protocols
It is difficult to get a man to understand something when his salary depends on his not understanding it.
--Upton Sinclair
Read the rest in The New York Times > Opinion > Op-Ed Columnist: The Free Lunch Bunch
in C++ I need to care about memory ALL THE TIME (am I leaking memory ? can I safely dispose this object ?), while in Java I only have to care about memory usage (which I also have to care about in C++).
--Eric VERGNAUD on the java-dev mailing list, Saturday, 30 Oct 2004
The principle of federalism has gotten lost in the weeds by a Republican Congress that was elected to uphold it in 1994. Conservatives are as bad as liberals about imposing mandates once they come to Washington.
--Senator Lamar Alexander, R-Tennessee
Read the rest in The New York Times > Week in Review > Rebellion of the States: Red, Blue and Angry All Over
The Mac Mini is, at once, a radical change in direction for Apple Computer Inc. and the quintessential Macintosh. More than two decades ago, the original designers of the Macintosh envisioned a $500 appliance computer that exemplified simplicity. The Mac Mini is just that, at exactly that price. Mac OS X has lost some of the software elegance and consistency of the original system, but the Mac Mini is still the finest example of those principles on the market today.
--Ric Ford
Read the rest in Mac Mini Review
Maybe Linux is shoddy code just hacked together by a college student. However, according to the four-year analysis by five Stanford researchers [6] Linux contains only "0.17 bugs per 1,000 lines of code" and most all of those bugs have been fixed. Given that an earlier study from Reasoning, Inc [7] had already shown that the Linux TCP/IP stack had a 0.013 per 1000 lines of code defect rate back in 2001, it is hardly astonishing that the entire Kernel is also relatively low in defects compared to your average commercial software application To put that in perspective the average code seems to have anywhere from 2 to 30 bugs per 1000 lines of code. That makes the Linux kernel between 11 times and 176 times better than your average product.
--Chris Spencer
Read the rest in Linux Opinion: An Open Letter to a Digital World (LinuxWorld)
Netbeans has potential, but like many IDEs too much time has been spent on advanced features and not enough on the "initial experience." It doesn't matter that I'm not an idiot and I might be able to figure these things out eventually, I still want an IDE that's idiot proof, because
- I don't want to struggle with it; I have other problems that I want to solve and the IDE should be a helper and not something I have to work against.
- When I teach, I don't want seminar attendees to get lost in the IDE, either. That's not the problem we're trying to solve in a seminar.
--Bruce Eckel
Read the rest in On the Thought: NetBeans 4.0 & IDEs
Avoid depending on JavaScript. More people than you might think have JavaScript turned off in their browser, be it for security reasons or to avoid pop-up windows. They may also be using a browser which doesn’t support JavaScript. According to TheCounter.com, 6% of web users have no JavaScript. W3Schools.com reports 8%.
In most cases where JavaScript is being used, it doesn’t actually benefit the visitor. Of course there are cases where JavaScript can be used to provide a better experience. One example is validating form input.
Note that this does not mean that you should avoid using JavaScript. It does mean that you should avoid making a website depend on JavaScript to work.
--Roger Johansson
Read the rest in Developing With Web Standards | 456 Berea Street
President Bush is like a financial adviser who tells you that at the rate you're going, you won't be able to afford retirement - but that you shouldn't do anything mundane like trying to save more. Instead, you should take out a huge loan, put the money in a mutual fund run by his friends (with management fees to be determined later) and place your faith in capital gains.
--Paul Krugman
Read the rest in The New York Times > Opinion > Op-Ed Columnist: The Free Lunch Bunch
I remember reading about Franz Lisp issuing warnings when you got down to 2 or 4 meg free when a big home machine had 96K. These days, we have machines that can run Lisp and Smalltalk comfortably, but people still want to code in tools built for scarce memory and scarce processing power environments.
--Troy Brumley
Read the rest in Smalltalk Tidbits, Industry Rants: Sometimes, it's frustrating
Writing technically new and innovative viruses is like writing exploits for new programs. Coming up with new ideas advances the Internet, since it becomes more prepared against real attacks. I don't see anything wrong with saying, "Hey! This can be abused! There is a bug! You are not prepared for this!" without doing a single cent of real damage.
--Marek Strihavka
Read the rest in He's got the virus-writing bug | Newsmakers | CNET News.com
TDD is faster than test-after and code-n-fix. In Test-Driven Development, testing is part of the design process, it doesn't take much time to write a small test that represents a part of your thinking about a problem. Test-after is slower because the traditional design/code process -- without tests -- takes about the same amount of time as the TDD design/code process, and then the traditional coding time is followed by writing tests that take even more time.
Also, test-driven code is less buggy than the usual results the from code-n-fix approach. Since bug-fixing by itself is a lot longer than the TDD process, code-n-fix with no automated tests is actually slower when you take coding-time + bug-fixing-time into account.
--Keith Ray
Read the rest in MemoRanda
Apple is in a position they've been in a lot of times before. They're like Moses showing the way to the promised land, but they don't actually go there. In a lot of my talks I use iTunes as an example of what Dave Stutz calls "software above the level of a single device." Here is this application designed from the get-go to span the handheld to the server, with the PC a way station. And that's a paradigm for the future. But because Apple ends up with a closed platform, they don't necessarily take that out to the industry. Someone else adopts the ideas and takes them further. I think we're seeing that the wave of innovation that Mac OS X represented has really inspired a lot of people.
--Tim O'Reilly
Read the rest in Read/Write Web: Tim O'Reilly Interview, Part 1: Web 2.0
Every Sunday in church, Christians recite the Nicene Creed. "Who for us and for our salvation came down from heaven. And was incarnate of the Holy Ghost and of the Virgin Mary and was made man; was crucified also for us under Pontius Pilate, suffered and was buried; and the third day rose again according to the Scriptures." It's the official summary of the Christian faith but, astonishingly, it jumps straight from birth to death, apparently indifferent to what happened in between.
Nicene Christianity is the religion of Christmas and Easter, the celebration of a Jesus who is either too young or too much in agony to shock us with his revolutionary rhetoric. The adult Christ who calls his followers to renounce wealth, power and violence is passed over in favour of the gurgling baby and the screaming victim. As such, Nicene Christianity is easily conscripted into a religion of convenience, with believers worshipping a gagged and glorified saviour who has nothing to say about how we use our money or whether or not we go to war.
--Rev. Dr. Giles Fraser, vicar of Putney
Read the rest in Guardian Unlimited | Special reports | Empires prefer a baby and the cross to the adult Jesus
Here's a wrenching fact: If the U.S. had an infant mortality rate as good as Cuba's, we would save an additional 2,212 American babies a year.
Yes, Cuba's. Babies are less likely to survive in America, with a health care system that we think is the best in the world, than in impoverished and autocratic Cuba. According to the latest C.I.A. World Factbook, Cuba is one of 41 countries that have better infant mortality rates than the U.S.
--Nicholas D. Kristof
Read the rest in The New York Times > Opinion > Op-Ed Columnist: Health Care? Ask Cuba
In the past, Apple has said that they care about Java. Alas, the patterns of fact show that to be a very arguable point. Java support on the Apple platform has always been and continues to be a third-class citizen. Heck, developers in general are only, at best, considered second-class citizens by Apple. The fact is that the Mac OS X 10.4 ('Tiger') release is at least 6 months late and that Apple has locked Java v1.5 to the Tiger release. Jobs was extremely vague about the release date for Tiger, saying that it will be out in the first half of 2005. That means that Java v1.5 support on the Apple platform will be about 1 year behind the Sun FCS release. Yeah, sure, that's commitment to Java and Java developers. Various folks have been pestering Apple to release a version that runs under the current Mac OS X 10.3.
--John D. Mitchell
Read the rest in MacWorld 2005: Boom and Bust
The optional bits in the syntax make it too easy to fuck up when you're writing code. Many times I ended up with compiler errors that took me by surprise, or worse - code that compiled but didn't work at all like I expected. Obviously I'm still learning Groovy, and so am prone to this sort of thing, but all the optionality means there are many more surprises than you'll get if you're learning something like Java. Newbies are bound to make mistakes, but many of the syntax short cuts and optional bits are so arbitrary compared to Java, and can have such nasty side effects if used wrong, that learning this language is much more work than it needs to be.
--Mike Spille
Read the rest in Groovy Ambiguities, Optional Elements, and Syntax Shortcuts Considered Sucky
An army of drones marches into a theatre to the harangue of a giant, Big-Brotherish figure on a mammoth screen. Suddenly, a young woman sprints down the aisle and starts to hurl a sledgehammer toward the screen. Before she can release it though, she is surrounded and pummeled by a team of balding, briefcase-wielding men. "That's the Apple legal team in action, enforcing our intellectual property rights," chortles Big Brother Steve Jobs. "Welcome to Macworld, sweetheart."
--Ed Foster
Read the rest in The Gripe Line Weblog by Ed Foster
As well, a program being "open source" guarantees nothing except that the source is open. It doesn't automatically follow that the source code in question is high quality. Apple's sample code is all "open source": the source code is made available to you to do with as you please. Some of it is pretty wretched stuff. SourceForge is chock-full of open-source projects. Some are high-quality programs, some don't even rate being called "amateurish". (And which is which will sometimes be in the eye of the beholder.)
--Glen Fisher on the java-dev mailing list, Monday, 29 Nov 2004
I lived in a country with a system of socialized medicine, and excellent health care for five years. Choose your own doctor? Sure - there's only one plan, and every doctor's on it. Go to the doctor? Show them the card, done. Need medication? Show them the card, done. High taxes? Yeah. And you get what you pay for. Best public transportation in the world - believe me, I saved in not needing a car everything I paid in taxes and then some. I spent 2.5 hours in an "orientation" at Sun U.S. where 50 of us discussed all our myriad health care options, all of which, well, suck in one way or another. Let's just contemplate the cost to the economy of Sun (and every other company in this country) having to pay 50 people for two and a half hours to sit in a room and do Q&A or which way we want to get screwed. It doesn't have to be like this - I've lived the alternative, and while it's not perfect there either, it's a serious improvement. This mess is just silly.
--Tim Boudreau, NetBeans
Read the rest in Tim Boudreau's Blog: Culture shock
if all proprietary software users are totally honest, they wouldn't agree to a license that forced them to promise not to share the software with friends and family, and programmers would not agree to give up the right to study and modify the software. Somehow, though, disregarding a proprietary license's restrictive terms, while technically dishonest, doesn't seem on the same level as cheating on a test or lying to a spouse. It's hard to think of disobeying licensing terms as being dishonest or dishonorable, and the moral need to help your friends and family is a far more powerful force than the least degree of honesty toward a proprietary software corporation. How do you convince someone that they are giving up freedom when in reality they take those freedoms anyway, whether they are granted or not?
--Jem Matzan
Read the rest in NewsForge | Your software rights or the best tools: often a sad choice
And if there is anything I've learnt from Linux, it's that projects have a life of their own, and you should _not_ try to enforce your "vision" too strongly on them. Most often you're wrong anyway, and if you're not flexible and willing to take input from others (and willing to change direction when it turned out your vision was flawed), you'll never get anything good done.
--Linus Torvalds
Read the rest in Linux Times : An Online Linux Magazine - Linus Torvalds: "Desktop Market has already started"
Would you participate in something anti-social just because somebody pays you to? What if the job involves hitting people on the head in the street and taking their wallets? What if it involves spreading the word that Democrats should vote on Wednesday instead of Tuesday? Some people seriously claim that you can't criticize what someone does if it is part of their job. From my point of view, the fact that somebody is being paid to do something wrong is not an excuse.
--Richard M. Stallman
Read the rest in Interview: Richard Stallman
good programmers using good practices write orders of magnitude less bugs than bad programmers following no practices. We may not be able to eliminate 100% of software defects, but we _can_ improve what we are doing by quite a bit.
--Benjamin Franz on the xml-dev mailing list, Friday, 31 Dec 2004
When I ran for the Congress, when I ran for president, I met more discrimination as a woman than for being black. Men are men.
--Shirley Chisholm
Read the rest in The New York Times > Obituaries > Chisholm, 80, Is Dead; 'Unbossed' Pioneer in Congress
As much as I hate to admit it, I'm addicted to Eclipse. I'm hooked on the auto-import and auto-fix stuff that automatically imports the classes I need, adds missing methods needed to implement interfaces, and declares missing variables, fields, and even classes. And I'm hooked on the CVS client that gives me a clear view of every single file I have modified in my workspace, every incoming change, and makes it easy to override-and-commit or override-and-update. Netbeans 4.0 has come a long, long way from the old 3.X series and Creator is just awesome for JSF, but 4.0 is still not good enough to pull me away from Eclipse.
--Dave Johnson
Read the rest in Blogging Roller : See, Scoble is safe
It's sort of a weird thing because when we were starting to think about building this thing that evolved into Java, we wrote up a kind of business plan document and in it we put a whole lot of usage scenarios. And at the time that we were doing that I sort of thought of it as more an exercise in science fiction than planning. And the truly amazing thing for me is that that exercise in science fiction actually came true. People are doing essentially all of the things that we talked about in that document.
--James Gosling
Read the rest in Sun's Gosling On the Java Evolution - VARBusiness.com - 5/8/03 10:22:42 AM
Earlier quotes: