Пропустить навигацию

Good Times Roll Blog

Опубликовано: kfarnham 31.01.2007

Can you make a viral video about Java ME?

The latest Java-related contest doesn't require you to write any code to be eligible for some of its prizes. Instead, the Java Mobile Application Video Contest is looking for 1-3 minute videos that show off Java ME or phoneME applications.

No, you don't have to write app yourself. Just show off why it's cool, how it works, how it was built, whatever. Read the rules, make your video, post it to YouTube and you're good. Makers of the best videos win PlayStation 3's. You can also win a PS3 by creating an app in the java.net Mobile & Embedded Community, and the creator of a Java ME app who snags the Most Creative Video prize will get a PS3, a Blu-Ray player, a Sony Ericsson K800 phone, and an Amazon.com gift certificate. You need to post your video and register with the contest by April 27, 2007, with winners announced on the contest page and at JavaOne 2007.

Sounds like all you need is a mobile phone and a camcorder... good luck!

Also in Java Today, a new early-access version of the Java Pet Store 2.0 Demo has been announced by the Blueprints project. New features include an Ajax UI, user-driven content, tagging, RSS news bar, search, and more.

There are only a few days left to propose a session for the 2007 O'Reilly Open Source Convention. The Call for Papers closes on Monday, February 5. "Java as open-source" is listed as one of the "hot topics" in the CFP, and the conference offers a way to present your open-source Java project to a wider audience.

In today's Weblogs, Hans Muller announces the long-awaited JSR-296 implementation in Application Framework Prototype Bows: "A prototype implementation of the fledgling Swing Application Framework (JSR-296) API is now available. That's all I really wanted to say. I don't want to make too much of a commotion about this version of the design because there's still quite a bit that remains to be done."



Just What I Needed Blog

Опубликовано: kfarnham 30.01.2007

Giving your objects the functionality they need

I was a little hesitant to reuse our "Aspect-Oriented Programming" series tile on today's Feature Article, because while its approaches are in the spirit of providing "advice" to address cross-cutting concerns throughout a program, author Eric Batzdorff found AOP an unneccessaily invasive mechanism for his needs. Still, though, the motivation is similar to that of AOP developers, and the approach of developing runtime proxy objects is an interesting alternative that should be considered by anyone inclined to go down the AOP road.

The gist of his article, though, is that what works for one object in sample code may not be a suitable approach for many objects in your business logic. In the conclusion to Separating Concerns and Advising Domain Objects, he writes:

Advising objects to separate concerns is an extremely powerful pattern. Spring-like approaches to AOP are fantastic choices if few instances of the advised class need to be created. However, many domain objects do not fall in this category. AspectJ is a full-featured AOP implementation that is designed to advise both singletons and domain objects. However, AspectJ is not a trivial technology to bring into a development environment, so knowing alternatives is a good thing. For advising domain objects, we explored object pooling, class extension, and using the Decorator pattern, and there are undoubtedly others. Depending on the scenario, each approach enables a separation of concerns that object-oriented programming and aspect-oriented programming advocate.

Take a look at the approaches and see what you think -- do the AOP alternatives suit your needs to decouple your objects, and are they maintainable?

In Java Today, the PORTIONSproject, short for PORTlet actIONS, is a framework that can be used to create JSR-168 portlets in a manner similar to the development of Web applications with Struts. PORTIONS tries to offer, combining the JSR-168 specification and the JSP Model 2 Architecture, a development framework that allows to create complex portlets.

Need to go native? The NetBeans page continues its tutorial withBeginning JNI with NetBeans C/C++ Pack 5.5, Part II. "The tutorial will take you through the creation of a sample application which uses JNI to execute some native code written in the C programming language. For the Java part of the application you will use NetBeans IDE 5.5; for the C part - NetBeans C/C++ Pack 5.5. You will start off by creating a simple Java project, adding a native method to it and then implementing this method in C using NetBeans C/C++ Pack 5.5"

Author Elliotte Rusty Harold has joined the properties debate with his explanation of What Properties in Java Should Have Looked Like: "All the proposals are vastly too complex for what little benefit they offer. They need new keywords, operators, rules, and best practices. Could we have done better? Yes. Can we still do better? Maybe. Let's find out. The proper design of properties was invented in Eiffel over a decade ago, (or possibly some other language, but Eiffel is where I first saw it) and it's really simple and obvious. All you need are public fields."



You Might Think Blog

Опубликовано: kfarnham 29.01.2007

Debunking widely-held programming beliefs

Light a candle or curse the darkness? The internet seems highly optimized for the latter, with the further spread of ignorance always just a single Digg away. Java programmers have long been on the bad end of some of the most popular misbeliefs: "Java is slow" and "Swing is ugly" have an entrenched truthiness that's well suited to mindless repetition in forums and blogs.

Of course, does the truth matter? Because if it does, then a lot of us believe some fundamentally wrong things.

Take recursion. It's widely assumed to be inefficient to keep piling states onto the stack to permit subsequent calls back into a method / function / procedure, whatever. There's something of an attitude that recursion is fine for academics, but real-world development requires less formal, less attractive approaches. In other words, recursion is assumed to be slow: fine for Professor Genius and his LISP project, impractical for you and me. We need to unravel our recursion into iterative method calls.

But what if it's not true? What if recursion is faster? The article Quantifying Recursion on the Java Platform, featured in the Java Today section, offers five algorithms (two recursive and three iterative) and assesses their relative performance. The results? "Most surprising is that recursive performance blows iterative performance out of the water. The fast recursive solution is roughly 3 times faster than the fast iterative one."

While we're all in a debunking mood, Artima blogger Arash Barirani reconsiders one of OO's most cherished beliefs in Software Reusability: Myth Or Reality? "Every Java project is designed for reusability. Yet when time comes to do a new project in the same domain we always opt for building from scratch. Is software reusability, especially in the J2EE realm, just a myth?"

Also in Java Today, John O'Conner's new tutorial on SDN teaches you how to Improve Application Performance With SwingWorker in Java SE 6: "This article describes how to avoid slow, sluggish, or unresponsive UIs by using the SwingWorker class to create and manage worker threads in a demo application called Image Search. This application demonstrates how to correctly use the SwingWorker application programming interface (API) by interacting with the popular Flickr web site to search and download images. "

You might have seen the story in Slashdot, and Cay


Dust in the Wind Blog

Опубликовано: kfarnham 25.01.2007

Why did it take Steve Jobs to get people talking about desktop Java?

It's been a long time since desktop Java got as much notice around the blogosphere as it has in the last few weeks. Not that that's a good thing; it's just true.

Largely, this has been kicked off by comments by Apple CEO Steve Jobs in David Pogue's New York Times blog, in which Jobs defends the decision to leave Java off the iPhone by saying "Java's not worth building in. Nobody uses Java anymore. It's this big heavyweight ball and chain."

That prompted Daniel Steinberg, in Java to the iPhone: Can you hear me now?, to trace the evolution (or devolution?) of Apple's Java strategy, from vowing "to make Mac the best Java delivery vehicle on the planet", to converting WebObjects to use Java (and remember, WebObjects powers the iTunes Store, so it's no disposable vanity project), to leaving it off the iPhone.

If you detect a sense of melancholy or resignation in Daniel's blog, you're not alone. The incoming links to it are not filled with outrage, but more of bittersweet agreement. Joe Heck's Rhonabwy blog iPhone, Java, and Flash says:

I don't think there's any real epiphany here, more like a "yeah, that's right" sort of forgone conclusion in my head that just makes sense. While I think Daniel has a bit of nostalgia for the old bird (that would be programming language Java, in case you're not following), the truth of the matter is that Java never did s*** on the desktop.

James Duncan Davidson eventually produced three blogs on the topic (1,2,3), noting that Desktop Java has had plenty of time to succeed.

"Ten years ago, we all had so much hope for Java on the desktop. We really did. Everyone did. At least it seemed that everyone did. Java is good stuff, especially on paper. Safer languages sound great. And anything to rid the world of pointer errors has to be a good thing, right? You should be able to build killer desktop applications with Java. [...]

If I were an executive at Apple and over the last 10 years I haven't really seen a compelling end product come out of all that work on Java, not to mention haggling with Sun over licensing terms the whole time, I'd be casting a skeptical eye as well."

The other thing you see in this thread throughout the blogosphere is that there aren't a lot of people strongly disagreeing. If you're looking for a profound defense of Desktop Java in Jonathan Schwartz's blog, you're not going to find it (unless it's buried in that 40-minute video, and who has that much time?). It's always bothered me that Sun people who work with Java will instinctively send me a Star Office document, rather than pointing me to a shared file on the web-hosted Java-based office suite ThinkFree Online, despite the fact that ComputerWorld recently named ThinkFree the best online office suite. A Java app is best of breed in this space, and people who should be supporting Java instead send around docs in a format that can only be read by a non-Java application (and whose Mac version is dreadful). Not a good sign.

Duncan points out "developers are the passionate party advocating for Java on the Mac." It sure seems like they're -- or I should say "we're", because I've personally been developing Desktop Java apps on the Mac since MacJDK 1.0 and System 7.6 -- getting the cold shoulder, and that's reflected by a lot of these blogs, from those who've given up, and those who wonder if they should.

What do you think? What's going to turn it around for Desktop Java, if anything will? This has been a longer and more opinionated editor's blog than usual, and I'd very much like to hear your opinions on the matter. Visit the comments section below and join the discussion...

In Java Today,GlassFish, the open-source Java EE application server, has just released version2, beta 33 which serves as both the fourth milestone and the first beta candidate. Jean-Francois Arcand has a summary of features in his blog GlassFish v2 hit beta candidate: What's new in the WebContainer, including Grizzly support for Comet processing, improved virtual server support, JSP compilation with JSR 199, JRuby on Rails support via Grizzly, and more.

Author Drew Varner lays down some Guidelines for Writing JSR-168 Portlets in a new article for dev2dev. "Sticking to these guidelines will keep your portlets in line with the JSR-168 specification. Adhering to the specification makes it easier to move your portlets among Java portal servers. It also makes it easier to federate your portal's content using WSRP."

Ed Ort has published a Introduction to Ajax for Page Authors on SDN, offering guidance in choosing an appropriate approach for your project. "You can add Ajax functionality to a web page in many ways. In general, these approaches vary in the amount of JavaScript code you need to incorporate into the page. Some approaches, such as using Ajax-enabled JavaServer Faces components, encapsulate the JavaScript code in the component, so you don't have to do any JavaScript coding. Other approaches, such as using widgets from the Dojo toolkit, provide some of the JavaScript code. In still other approaches, you do most or all of the JavaScript coding. Choose the approach or combination of approaches that best fits the functional requirements of your web application and with which you're most comfortable."

The latest java.net Poll asks "What non-Java language are you most interested in running on the JVM?" Cast your vote on the front page, then check the results pagefor current tallies and discussion.

In today's Forums,paulby offers a roadmap for Project Looking Glass, whats next.... "Over the last couple of years, as we have been building Project Looking Glass, we have had a number of discussions about adding collaboration services to the framework. More recently we have been in intense discussion with some other groups within Sun that have some key technologies (more of that later) and we think it's time to start exploring this space. What we propose is the development of a new SceneManager for Project Looking Glass which is completely focused around collaboration with others. We have created a new subproject of lg3d called Project Wonderland to host this work."

jlehrbaum explains ME project naming in Re: CDC, CLDC, ARM, and OI vs. RI licensing, and OS choice: "Our apologies for any confusion associated with our phoneME Feature and phoneME Advanced naming. These stacks include much more than simply a configuration, and as such, we felt it was appropriate to come up with a name that covered the entire bundle. Additionally, there are a number of branding restrictions that can further complicate naming. To prevent confusion in the market around compatibility and/or compliance of Java implementations, there is a requirement to pass certain compatibility tests prior to using any of the Java trademarks or claim (or imply) compatibility to any of the associated specifications."

Swing developer os2baba says there's a need for aTable with a billion rows: "I'm building a pivot table which can have millions of rows. I have created my own table class which is not derived from JTable. The model loads only the visible cells. It's very fast and responsive. I know that the first thing popping in your mind is that a table that large is not usable. But it's very useful, very usable, very fast and I don't have memory problems. When you stack tiles on a pivot table, the total number of rows is the cartesian product of the elements in the tiles. So if I want to see sales of 10000 items in 1000 stores for the last 100 days, I get a billion rows. But since I'm only viewing a fraction of those, I don't run into memory issues. I'd really like to show billions of rows, but since all the swing components are based on integer calculations, that's not possible unless I write my own JScrollbar. But I'd like to at least show 2 billion rows (Integer.MAX_VALUE). The problem I'm running into is that I can only show 126 million rows since the units of JScrollPane is in pixels. Integer.MAX/rowHeight works to about 125 million for a row height of 16 pixels."



Hold On Blog

Опубликовано: kfarnham 25.01.2007

The Java podcasts that keep going and going...

For every podcast that succeed, lots fail. Or, more accurately, they "podfade" -- the novelty wears off for the creators, they find other things to do, the audience never shows up, whatever, and over time, new episodes stop appearing. One metric I heard in a session on conference session on podcasting is that while most podcasters have a half-dozen episodes in them, few make it to 20. And it's a rare thing to hit triple digits.

So it's worth tipping our collective hat to one of the most consistent and widely-enjoyed technical podcasts, the JavaPosse, which recorded their 100th episode in a special event before a live audience earlier this week, and posted the episode last night. Befitting the community, the four members have different corporate allegiances -- Sun, Apple, and Google, though all worked for Sun at one point and most worked on Borland's JBuilder back in the day -- so there's a genuine voice of independence in their commentary. This makes their interest in Java all the more persuasive, and more than a little contagious. In the new episode, they field a question about listenership and note that episodes generally have a listenership in the 7,000+ range, with some approaching 10,000. The point is made that their audience is nearly the half the size of JavaOne.

Another Java podcast that's cracked the no-podfading-here benchmark of 20 is Roumen Strobl's NetBeans Podcast, whose original appearance marked an evolution of sorts in that it was the first to focus on a specific Java topic, the NetBeans IDE, rather than Java as a whole (or programming, or just technology). In the newly-released 22nd episode, Roumen is joined by Brian Leonard to discuss the advantages of using the Seam framework, how it fits with the rest of Java EE, what kinds of problems it solves, and if it's ready for commercial use.

Podcasting isn't easy -- it requires understanding many aspects of art and craft to make something truly interesting and to do it well, particularly given the fact that each podcast competes with thousands of others, many produced by professionals with high-end gear. To stick with it, and do it well, Roumen and the Posse deserve a round of applause from the Java community.

Also in Java Today, does the multi-core era mean the end of traditional approaches to concurrency? In Threads Considered Harmful, Nat Torkington discsses Professor Edward A. Lee's paper on The Trouble With Threads. "In it, he observes that threads remove determinism and open the door to subtle yet deadly bugs, and that while the problems were to some extent manageable on single core systems, threads on multicore systems will magnify the problems out of control. He suggests the only solution is to stop bolting parallelism onto languages and components--instead design new deterministically-composable components and languages."



Carry On Wayward Son Blog

Опубликовано: kfarnham 24.01.2007

Hani's case against pointer JSR's

Many Java programmers know Hani Suleiman from the brutally critical and often obscene Bile Blog, one of the most popular blogs on JRoller. Fewer are aware of his role as a founder of the Open Symphonyproject, which has produced a number of projects in widespread use, and probably fewer still recall that he was elected to the JCP executive committee in 2005.

So it's interesting to see him joining with Sun in voting against JSR 291, Dynamic Component Support for Java SE. While the JSR passed, Hani and Sun's "no" votes raise similar exceptions, questioning the value of JSR's that are effectively pointers to standards codified elsewhere. Hani lays out his objections in his "no" vote:

The expert group seems to have done no work here, and the 'specification' as it stands seems to be one paragraph pointing to an external OSGi document. While the specification is technically sound, I do not believe a JSR should exist merely to rubber stamp an external effort, and I fail to see the benefit to the Java community at large by assigning JSR numbers to external specifications.

Interestingly, Sun made pretty much identical comments in its "no" vote:

However, our understanding is that, in producing this public review draft, the expert group's role has been to gather some yet not all of the requirements it meets, and that the design work and decision making took place exclusively outside the expert group and instead within the OSGi working group.

We believe this approach for developing technology is inconsistent with the goals of the JCP to create expert groups empowered to evolve technologies, with the freedom to make design choices and technical decisions based on the needs of the Java Community.

So here's a question to consider. What's the proper relationship between the JCP and external standards bodies? I mean, it's not like there are JSR's to codify commonly-used standards like HTTP, JPEG, or SOAP, even if many Java API's touch those standards. But on the other hand, one of the purposes of JSR 306 is to develop a new vision of the JCP that better suits having relationships with other standards bodies. Should JSR 306 explicitly support, or forbid, "pointer" JSR's like 291? What do you think? Talk about it here, or check out the InfoQ article JSR 291 (OSGi) passes Public Review ballot, which has more details and a comments section of its own.

In Java Today, Sun has announced that it is releasing its Sun Java System Content Delivery Server to the open source community. Content Delivery Server is a mobile content delivery and management platform that enables mobile operators to launch and sustain content services more cost-effectively. The source code is available today under the the Common Development and Distribution License (CDDL) at http://opencds.dev.java.net/.

The RoboticsCommunity's new productionplanning project is being built around the "Routing, Sequencing, and Scheduling of jobs for Production planning to incorporate new functionality's into the existing software. The purpose of this project to find the Optimal job sequence when some machines of same type work in parallel and job can follow any Arbitrary path along the machines and different types machines with Optimal or near optimal Sequence."



Point of Know Return Blog

Опубликовано: kfarnham 23.01.2007

Making the switch to EJB 3.0

You've no doubt seen a couple articles over the years about the latest, greatest library, framework, or tool, one which directly addresses your current development needs, and in a way far more elegant or effective than what you're currently doing... and wished you could actually use it. Once you're deeply into a project, there's rarely an opportunity to rework its underlying design decisions to use a different library, even if that's what you would have chosen to use at the start if it had been available. Sometimes, you have to make a mental note of cool stuff that you'll use "next time".

Maybe you feel this way about EJB 3.0. After all, if you've developed an EJB 2.x application, subclassing everything the way you're supposed to and setting up lots of deployment descriptors, EJB 3.0 would seem to not help you solve the problem you've already worked through yourself. But what about maintainability? If EJB 3.0 is so much easier to work with, wouldn't you like to enjoy its benefits going forward?

In our Feature Article, Sangeetha S. and Subrahmanya S. V. lay out a roadmap for Migrating from EJB 2.x to EJB 3.0: "This article discusses possible migration strategies for moving applications written using EJB 2.x or earlier versions to the new EJB 3.0 programming model. With this in mind, this article discusses the changes in the new specification in the context of each of the different bean types."

In today's Forums,karthi_acb announces a New ETL Integrator tool available for download in Glassfish wiki.: "This is a Java based ETL (Extract-Transform-Load) tool which can be used to orchestrate ETL Process. It supports many features like Java operators, SQL Operators, custom operators in Transformation phase. It also supports defining conditional extraction, source join and target join. It can extract data from a wide range of databases including Flatfiles and similarly load data to a wide range of databases including Flatfiles. It supports insert, delete and insert/update as the loading type at the target table. [...] This tool is available for free download at http://www.glassfishwiki.org/jbiwiki/Wiki.jsp?page=ETLSE."

osbald discusses Swing data binding in Re: a question about basic libraries and "cosmestic" ones ... (OT ?) "I'd very much like to see Binding.. like last week ;) . JSR 296 looks pretty interesting as a bunch of common utility methods although it dosnt tackle the wider architecture & pattern issues. The injection should save some typing, but I'm not sure how the action annotations will pan out.. suspect they might emcourage that old school code style all over again. Action Management and knowing where to put the EDT/Swingworker code are two of my constant irritations. Currently I'm putting EDT (remote method calls/jdbc mostly) stuff in my view components, because my models shouldn't need to know about Swing - maybe I need another wrapping model layer that does?."

Finally, ylzhao would like help finding some Desktop Java demos for learning: "After some time learning Swing basics like layout design, painting and event handling, when I want to write a more actual and better GUI app with Swing, I also do not know how to start. JDK bundled demos and Swing tutorial are fundamental, and do not describe how to write a good Swing app. Are there some good desktop Java demos written in Swing which I can learning: 1. How to design and implement a modern GUI? 2. How to separate GUI with code? 3. How to handle GUI events with delegates? 4. How to implement a hign responsive GUI which may use SwingWorker? 5. How to use design patterns(like MVC, MVP, Command etc) in Swing GUI?"

In Java Today, Kohsuke Kawaguchi's blog announces the release of JAXB RI 2.1.1 and 2.0.5. "2.1.1 is a bug fix release to 2.1 (see changes). This is the main development thread of the JAXB RI, and implements the latest and greatest JAXB 2.1 specification." As for the other version, "2.0.5 is a bug fix release of the JAXB RI 2.0 line, which implements the JAXB 2.0 specification. The only folks who'd want to use this is those who that are already running JAXB RI 2.0.x in production, and experiencing issues that are fixed in 2.0.5."

The Sun Java System Application Server 9.0 Error Message Reference guide is now available in an interactive, editable Wiki format. "The most significant shortcoming of the current Error Message Reference is that it does not contain enough information -- it pretty much contains just the error message IDs and message strings, with little or no explanatory text. The challenge is that it takes a lot of time to develop meaningful descriptions and solutions/workarounds for the problems indicated by the error messages, more time than either the developers or doc writers can currently afford. Moreover, meaningful solutions are really only available after the product has been in 'the wild' for some time." The hope is that you'll add your comments, descriptions, solutions and/or workarounds to the problems indicated by the error messages.

A recent ComputerWorld review of online office suites declared the Java-based ThinkFree Office the best, and that has ONJava blogger Hari K. Gottipati asking Is Java more efficient than Ajax for advanced web apps? Noting that Google is in talks to acquire ThinkFree, he concludes that "if your web app is going to have much advanced features such as image handling etc. definitely Java is more efficient than Ajax."



Miracles Out of Nowhere Blog

Опубликовано: kfarnham 22.01.2007

Success stories from open-source

Pardon a moment of preaching to the converted, but a few of today's bloggers have noted the power and effectiveness of open-source development, and it seemed to make sense to put these together on the page today.



Follow Your Bliss Blog

Опубликовано: kfarnham 19.01.2007

Loving and hating IDE's

It's hard sometimes to understand the devotion some developers have to their favorite tools, especially IDE's. But the serious user will tell you that they are severely impaired without their IDE of choice. A poll from last year, How dependent are you on your IDE?, showed that only 20% thought they'd be fine without it. So what's the big deal? Two blogs today speak to the benefits of modern tools, and their absence in old ones.



Good Stuff Blog

Опубликовано: kfarnham 17.01.2007

Copy and paste for ME, finally!

How much do you do with the Java support on your phone? If you've tried to use productivity apps like GMail for Mobile, or Opera Mini, then there's a good chance you've needed to do copy-and-paste at some point, to save you from repetitive text entry on the keypad that was never really meant for text entry in the first place.

Of course, the question then becomes: how do you do it? ME apps don't have a default "Edit" menu with built-in copy-and-paste functionality, nor does the design of the typical phone permit drag-and-drop style gestures. No, this is something you're going to have to build for yourself.

Fortunately, author Biswajit Sarkar has been there, and offers a solution in today's Feature Article,Implementing Copy and Paste for the Java ME TextBox . In the article, he shows how to work around surprising problems like inaccurate reporting of the caret position within an ME TextBox, and provides a solution that uses the ME record store to allow data copied from one application to be pasted into another.

In Java Today, NetBeans 6.0 Milestone 6 is now available for download. Some of the new features added and tested in Milestone 6 include: most Java EE features re-added to the build, a UI Gestures Collector that logs users' activities in the IDE, and memory profiling Improvements. Review the Milestone 6 Report for a complete overview of what's new.

Each year at JavaOne, the most innovative and most impressive Java projects are celebrated with the Duke's Choice Awards. The search is on for this year's most creative uses of Java, and nominations for the awards are now open. Nominations will be accepted through March 15, with winners selected by James Gosling and the Java technology leadership team. A list of last year's winners is also available.

Nigel Hughes was inspired by the latest Apple UI and has adopted its ideas to create a Carousel Menu (a la Apple TV) in Swing. "While everyone was wrapped up in Steve's reality distortion field during his recent keynote, I was ogling the Apple TV interface. What a fantastic product (I'm getting one of those, just what I need). Anyhow, one of the interface features that I noticed was that they had re-used a carousel to produce a funky menu. Well, I have a carousel component how hard can it be to re-use it to create.... a carousel menu?"

The constantly active Kohsuke


Dance this Mess Around Blog

Опубликовано: kfarnham 17.01.2007

Taking new language ideas out for a spin

Remember a few months ago when we linked to Elliotte Rusty Harold's blog RatJava, in which he suggested taking the open-source javac compiler and using it to support whatever new language features you like? Well consider the same idea with a different name and James Gosling and Peter von der Ahé behind it. That would be the Kitchen Sink Language project on java.net.

But what is the kitchen sink, beyond the obvious metaphor? The Artima interview Peter von der Ahé on the Kitchen Sink Language Projectgets at some of the ideas behind creating the project:

It was originally James [Gosling]'s idea, and is something he mentioned a while ago when we started talking about open-sourcing the compiler. He wanted to be able to create a place where you could experiment easily with adding various language features. [That way], we can evaluate those features before we decide to propose them for inclusion in the standard through the JCP. When we decide to do something in the JCP, it's almost a done deal, and is often fully developed. So where is the room to experiment? That's exactly what we can do now that the compiler is open-source. We decided to set up a project so that anyone can join in.

As the community discusses JDK 7 proposals like closures and a new properties syntax, it's reassuring to know that these ideas can now be tested out before they get turned into formal JSR's (after all, James and Peter are the authors of the current closures proposal). Will that result in more practical JSR's, or in better support up-front for major syntax changes? There are a lot of reasons to like this idea and watch where it's going.

Also in Java Today, authors Ali-Reza Adl-Tabatabai, Christos Kozyrakis, and, Bratin Saha take on the implications of multicore programming with a new concurrency model in the ACM Queue article Unlocking Concurrency: Multicore programming with transactional memory. "TM (transactional memory) provides a new concurrency-control construct that avoids the pitfalls of locks and significantly eases concurrent programming. It brings to mainstream parallel programming proven concurrency-control concepts used for decades by the database community. Transactional-language constructs are easy to use and can lead to programs that scale."

ZDNet blogger Ed Burnette argues against the iPhone's anti-Java stance in Jobs: No Java for you. "It will be a few months before the Apple iPhone is available to customers, and a lot can change between now and then. [...] But for now, it looks like application development on the iPhone will all be done in-house and it won't be done in Java. That would be a real shame."



Roam Blog

Опубликовано: kfarnham 15.01.2007

Taking your data(base) with you

The eternal gotcha with webapp is that "you can't use them on a plane". Connected as we might be much of the time, there are times you're offline, and therefore out of luck.

Or are you? There are plenty of tasks where you should be able to keep working and reconnect at some later time, when you have connectivity. Any developer worth his or her salt knows that this is how source-code management systems like CVS and Subversion work: you need a network connection to check out or update code from the repository, but until you're ready to commit or do a new update, you don't need access to the server. You save your changes locally, queue up svn adds and their associated comments, and then synchronize with the repository in one fell swoop when you're ready to svn commit.

So, if it works for you and your code, why shouldn't it work for your users and their data? David Van Couvering takes on this challenge in today's Feature Article,Synchronizing a Web Client Database: LocalCalendar and Google Calendar , in which he uses Java DB to keep a local copy of a calendar that syncs with an online Google Calendar.

To build a disconnected or offline web application, there are three main requirements: local storage, synchronization, and your application logic needs to be available offline. The concepts around synchronization are fairly straight-forward once you understand them. Building and delivering this kind of application is possible and achievable, and can provide great value to your customers.

In Java Today, Java Unlimited's annual Java 4K Programming Contest is underway again. The contest challenges developers to create an entire Java SE game using less than 4096 bytes in the final executable -- the games must be entirely self-contained, pure Java, and use only JRE-supplied classes. Sound challenging? Last year, there were 55 entries, and in 2005, 50 games were entered. The top five entries win a free copy of the Java-based Tribal Trouble.

The 2007 O'Reilly Open Source Convention has opened its call for papers. A track has been set aside for Java -- with "Java as open-source" identified as one of the CFP's "hot topics" -- and Java presenters might also consider proposing sessions for the database, desktop applications, web applications, security, and emerging topics tracks. The CFP closes on February 5. The conference takes place July 23-27 in Portland, and expects to feature 400+ sessions and 40 tutorials for the expected audience of 2,500.

Saying it's part of "maturing and playing a more active part in the broader community", the Eclipse Foundation is in the process ofjoining the Java Community Process (JCP), as well as the Object Management Group (OMG) and Open Services Gateway initiative Alliance (OSGi). In a blog, Eclipse's Mike Milinkovich says "Sun has always acknowledged that Eclipse is part of the larger Java ecosystem, and we've always used JCP specifications. It's simply time to recognize that."

The iPhone's not the only device with a touch screen, and that has some wondering about ME support for that kind of input method. In today's Forums,hallenberg kicks off a Touch screen thread: "I recently got new hardware to try with phoneME. This one has a touch screen and very few keys. Since the touch screen does not work in phoneME it would be nice to know if there is support for pointing devices at all, and if so, what's needed to get it working."

mac_systems wonders about browsing fonts in Re: Any plans for JXFontChooser? "I might be mistaken here with newer versions of Java2D but at least in past versions loading a Font was really expensive. Won't it be more efficient to have something like a font fetcher interface rather than a filter interface? Or is the performance of Font object creation not a problem (or no longer a problem)?"

stezak posts a Mobicents update in Mobicents Management Console - New features: "Together with the update of resource adaptor management in mobicents, MMC has been enriched [with new] features, which now let an administrator handle: - display of all information about resource adaptors and resource adaptor entities - creation and removal of resource adaptor entities - activation and deactivation of resource adaptor entities - editing of resource adaptor entity configuration properties - creation and removal of entity links"



Channel Z Blog

Опубликовано: kfarnham 15.01.2007

Tuned in to some Java podcasts

There's a bit of a theme going atop the page today, as we kick off with recent episodes of two of the better known podcasts. The funny thing about Java podcasts is that you might expect developers who work with Java all day to want to take a break and listen to something (anything!) else while at work or travelling to and from work. Yet the Java Posse is probably the one podcast I listen to most consistently. Maybe it's because it's got a good mix of personalities and broad interests that even for a topic as wide-ranging as Java, the guys can talk with equal interest and aplomb about language issues, enterprise frameworks, and the state of the Java Desktop. On this latter point, they're holding a conferencein March, and while it's an open-space conference (meaning the participants can make it be about whatever they like), the initial announcements indicated they hoped to focus on "Java off the server", which speaks to a lot of interesting topic areas.

Of course, the other reason to put them on the page today is to keep up with the ongoing discussion of adding a new properties syntax to the Java language in JDK 7. It's one of the major topics of episode 99of the Java Posse podcast, with the posse dedicating nearly 20 minutes in the middle of the show to dig into the issue, its pros and cons, and what people on the web are saying about the idea. This episode also discusses plans for the Java Posse Roundup conference, the Java-ness (or lack thereof) of Groovy 1.0, and a Java website, applet, and application of the week.

Also in Java Today, the 21st episode of the NetBeans Podcast is up, focusing on the Java SE 6 release, the final release of NetBeans Visual Web Pack 5.5 and NetBeans C/C++ Pack 5.5, project jMaki Beta2, year-end awards for NetBeans, a webinar on the NetBeans Visual Web Pack, a portlet container plugin tutorial, a NetBeans puzzler, and more.

Joshua Marinacci recently contributed a pair of Java Tech Tips to the SDN site. In Java Web Start Persistence and JList Striping, he has tips for both Java Web Start and Swing programmers. First, he shines a light on the little-understood PersistenceService API provided by Java Web Start, showing how to use it to create a click-through license screen. Then he turns his attention to Swing rendering, showing how to create colored background stripes on alternating rows of JLists.

This week's Spotlightis on the latest SDN Ask the Experts session, which addresses the topic of Open-Source Java. From Tuesday, January 16 to Friday, January 19, you can submit your questions on the open-sourcing of Sun's Java implementations, and have those questions answered by Richard Sands, Kenneth Drachnik, and Vivek Mody, the Community Marketing Managers for the SE, EE, and ME platforms respectively. You may also want to visit the Free and Open-Source Java FAQ in advance, or ask the experts a follow-up question about a topic from the FAQ.

Michael Nascimento


Plan B Blog

Опубликовано: kfarnham 12.01.2007

Whew, let's not do that again anytime soon

As you can see, the java.net front page is back to normal after a two-day outage. Thanks to Ben, Greg, Dave, and Sarah for working through the issues of Tuesday night's upgrade and getting the publishing buckets working again. This also means you can look forward to new content on the various community pages again.

As a sort of catch-up, we've jam-packed the front page with a super-size edition, including extra items in the major content sections.

One unexpected side-effect of the multi-day downtime is that over the last two days, there were enough weblogs published on the topic of properties support and syntax that they can basically be their own section for today.

Accordingly, today's Weblogs starts off with Pie in the Sky Properties, in which Cay


Scatterbrain Blog

Опубликовано: kfarnham 11.01.2007

We apologize for the inconvenience...

A software upgrade Tuesday night has proven to be quite troublesome, as it has led to a number of backend problems that have temporarily broken some of our publishing services. Specifically, our systems for pushing content onto the front page and the community pages are currently down.

Of course, the problem is being worked on and we hope to have things working again as soon as possible.

Most of the site is unaffected. Projects, blogs, and forums are still working as usual.

For those of you who use this blog as an RSS view of the site, here are a few recent items of interest:


Evan Summers - Gotcha Property Descriptor
Property Descriptors are well important, and as Richard Bair suggests, should be easier to get at. I do hope to see something like Person@surname in the Java language at some point eg. to reference properties for beans binding, as first class citizens.
Kohsuke Kawaguchi - Hudson 1.72 and new remoting infrastructure
I posted version 1.72 of Hudson, an extensible continuous integration engine. In this release is the new remoting infrastructure that allows Hudson to handle a large build machine cluster.
Edgar Silva - Ajax, but without JavaScript : AWESOME!
This post shows a solution to create an ajax solution using pure Java language and some components, enabling a real easy RIA.

Forum postings

mthornton - Reserved words
A common feature of many recent language proposals is the use of symbols merely to avoid the disruptive effect of designating a new reserved word. Most of us will remember the irritations caused by the addition of assert and enum. Adding something like property would be far worse --- how would you call a method called property in existing code that you could not change?
oakidoaki - Re: Java7 anti-features
The whole point of properties is to make the developers life easier by cleaning up the code and ridding him of repetitive typing. I see nothing wrong with that. I hate writing getters and setters. My IDE generates them for me, sure, but I even hate seeing them inside my classes or even thinking about them. Some variables are just made for getters and setters. Knowing this, why not just declare them "properties" and forget about them?
damnhandy - Re: Java on the Mac
Java is supported on Mac OS X. However, it is supported by Apple, not Sun. Apple has made thir own JDKs under a license from Sun. The releases are generally a few maintence versions behind the current Sun release. Java 6 is still only available as a preview release while Java 5 is based on 1.5.0_06-68. The developer releases are freely available at connect.apple.com, but are still under an NDA. Don't expect Java 6 to run on Mac OS X until Mac OS X 10.5 Leopard.
Chris B - Capturing stack trace
Is there any way to catch the stack trace from a thrown exception? I was reading JSR-139 - Public Review Comments - class Throwable (alt System). Was this ever sorted? How am I going to debug a generalised nullpointerexception: 0 which I'm getting on the phone without seeing the stack?

Again, sorry for the interruption; we will resume our usual content as soon as possible.

Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.

Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.

We apologize for the inconvenience...  

Suspension Blog

Опубликовано: kfarnham 09.01.2007

Freezing state for later use

Achieving state management in web apps, in seeming defiance of the statelessness of HTTP, has long been one of the core challenges of web application development. Without statefulness, your online shopping cart empties everytime you change pages. Not that there aren't answers; there are just a lot of them, some better than others. To the servlet developer, a lot of the solutions involve working intimately with the HttpSession. But is that necessarily the ideal approach?

In our Feature Article, Transparent State Management Using the Decorator Pattern, Sharfudeen Ashraf goes a different direction, putting state management in a servlet filter to a achieve a "transparent" state management system. "If such a mechanism is in place, then web applications can acquire statefulness without having to explicitly deal with state management APIs such as HttpSession. In many scenarios, this would provide a better alternative to the traditional way of explicitly handling session management APIs. The article explains where transparent state management would be useful, and discusses a reusable solution to implement transparent state management. "

James Gosling reports on having some Compiler fun in today's Weblogs. "For years I've wanted to set up a "Kitchen Sink Language" website for experimentation. A place where people could throw language features, no matter how absurd, just so that folks could play around. Now that javac has been open-sourced, it's easy."



People, Get, Ready Blog

Опубликовано: kfarnham 08.01.2007

Getters, setters, dot-operators, arrows, and other property offenses

With the closure proposal lying low recently, and the early draft of the Java Module System (JSR 277) having come and gone from its public comment period, another topic has taken center stage in the JDK 7 language debate: properties. Well, not the properties themselves, per se, but the getting and setting of them. Handled well, a consistent approach could be both human-readable and machine-readable, reducing the boilerplate typing of the current JavaBeans conventions while allowing (but hopefully not requiring?) IDEs, visual GUI builders, and similar tools to set up everything for the programmer.

Devil's in the details, of course. Various proposals are bouncing around the blogosphere, bringing plaudits and hackles about syntactic sugar, C# envy, featuritis and other code smells. Not that that's a bad thing -- it's ideal that the Java community is having this argument now, not after JDK 7 comes out and lots of developers suddenly get buyer's remorse over the final implementation (which is how a lot of people feel about the way that generics went down).

The properties puzzle tops today's Weblogs, as Rémi


Five things (yes, another) Blog

Опубликовано: kfarnham 05.01.2007

Vanity, thy name is the "five things you wouldn't know about me" tagging game. But Joshua thinks I'm due. I will try to make this interesting for the passing observer... not easy when blogging is already part of my job description

  1. One of my freshman roommates was PayPal co-founder Peter Thiel - We weren't very close and haven't spoken in 20 years, so it's pretty much just an interesting coincidence. Still, it's funny we both consider ourselves "libertarians" today, because we rarely saw eye-to-eye on political matters back then.

  2. Speaking of freshman year I threw a copy of Dune out my freshman dorm window - I had a sudden epiphany that it was the Bible according to Frank Herbert, and we have too many bibles as it is. Still, recent years have made me more receptive to things like the litany against fear ("I will not fear. Fear is the mind killer, etc."), so maybe I'll give it another shot someday. Still, don't tell Tim (he likes Herbert a lot).

  3. That's not a double chin or a cleft chin, it's a scar -When I was 5 or 6, I went sledding face first into either Karen Rynne's boot or the toboggan she was towing behind her. Either way, I shattered my jaw and it had to be wired back together. Ow, but not the worst "ow" I've ever managed.

  4. Joshua Marinacci, Michael Ivey, and Robert Cooper and I all worked together at the same company - Josh left, but Cooper, Ivey and I were also at its post-merger successor for a short while before they laid off all the engineers. For legal reasons (management threatened to sue me when I blogged about the layoff), I consistently refer to the firms only as "Worthless Piece of Crap Wireless Company No. 1" and "Worthless Piece of Crap Wireless Company No. 2". Both companies have long since ceased to exist in any meaningful form.

  5. I'm also The Annotated Alchemist

OK, hope that was duly unexpected. I'd like to push this meme out to non-programming types, but all my college friends in entertainment and medicine don't blog. Still, I'll try to mix it up a little: Michael Ivey, Dave Hyatt, Dave Hornik, Tammy Frederick, and Mike Brodhead, you are now on the clock.


Can't Get It Out of My Head Blog

Опубликовано: kfarnham 05.01.2007

Do other languages fit your needs too?

Java has long been a popular means of running other languages, by providing interpreters in Java or compiling other languages to Java bytecode when possible, and with Java SE 6's support for scripting languages offering more potential for integration with Java code, it's a safe bet we'll see more and more Java developers wearing multiple hats. Java isn't an "either-or" proposition anymore -- if it makes sense to pull in some other language because it handles regular expressions or text processing or rule evaluation particularly well, or if you want to use some non-Java technology on your client side (like JavaScript for Ajax), go for it.

Liking and using other languages shouldn't be interpreted as a knock against Java. The Java language can't be all things to all people, and it's possible that an unintended consequence of the support for scripting languages will be to slow the momentum for adding other languages' best features to Java, now that you can simply use those other languages directly.

With that in mind, the latest java.net Poll asks "What non-Java language do you use most frequently?" Cast your vote on the front page, then check out theresults page for current tallies and discussion.

Scripting languages are in the spotlight because after a long and tumultuous development, Groovy has reached a final version 1.0. "Groovy is a dynamic language for the JVM that integrates seamlessly with the Java platform. It offers a Java-like syntax, with language features inspired by Smalltalk, Python or Ruby, and lets your reuse all your Java libraries and protect the investment you made in Java skills, tools or application servers. Groovy can be used for various purposes, from adhoc shell scripting leveraging Java APIs, to full-blown web applications built on Spring and Hibernate through the Grails web framework."

Also in the Java Today section, the Java Desktop community home page is linking to a tutorial on how to create a FrontRow-like Carousel Component for Java: "Desktop Java is more powerful than most people believe, it can make the seemingly difficult easy. With this is mind, armed with the impressive work being done by the likes of Romain Guy and the SwingX team I thought it would be good to look at how one might re-create the Carosel used in Apple's Front Row application."

A new SDN article The JVM Tool Interface (JVM TI): How VM Agents Work gets deep inside the JVM: "The JVM tool interface (JVM TI) is a standard native API that allows for native libraries to capture events and control a Java Virtual Machine (JVM) for the Java platform. These native libraries are sometimes called agent libraries and are often used as a basis for the Java technology-level tool APIs, such as the Java Debugger Interface (JDI) that comes with the Java Development Kit (JDK).[...] This article explores some basics of writing a JVM TI agent library by walking through the heapTracker demo agent available in the JDK downloads."



Livin' Thing Blog

Опубликовано: kfarnham 04.01.2007

Jini to live on as Apache "River"

It's been a long time getting there, but Jini has finally been accepted as an Apache Incubator project, an implementation dubbed "River". The effort to get to this point has been a long one, and the move to Apache may get this interesting technology in front of more eyes than was possible when it was seen as being a Sun-controlled effort.

Artima has posted the news as It's Official: Jini = Apache River, and snagged an interview with committer Dan Creswell, who comments on the goals of the move and the way forward:

While road map might be too strong a term, certain areas of interests or targets I can certainly see. The trouble with Jini is that it's an infrastructure component. It's very deep down in the hierarchies. It's similar to the question of "What's the road map for J2EE?" Simpler and easier to use, and more functionality, [are goals] at the strategic level. Jini has a mixture of both of those. How you knit all of those into a road map, is still to be decided. You can use Jini in the enterprise, in utility computing, or even on devices


Do Ya Blog

Опубликовано: kfarnham 03.01.2007

Who is "me" and "you" in computer terminology?

During the break, I took a QuickTime example written in C and ported it to Java (and then posted it). Touring the Apple code reminded me how annoying C can be (native QuickTime usually reserves return values for error codes since C doesn't have exceptions, so if you want something returned, you have to pass in an address where you'll receive a pointer... yuck). The other thing that was striking was the constant use of "my" variables in Apple's sample code...mySndTrack, myMedia,myInputMap, myTweenData, etc.

I don't fully understand the idea behind the "my" variables. I guess it does help to distinguish between the sample's variables and constants versus those inherited from imports (another thing that makes C less readable to me... I'd rather see something likeScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS so I know where a value is coming from), but if that's the case, then it's just a coping mechanism against a C code smell. Sure, maybe they're "my" variables in the context of an example, to remind me of what the sample code is responsible for managing versus what's coming from a library, but I can't help but think that this will lead to bad programming practices among newer programmers. I would hate to see a 100,000-line enterprise program with a naming scheme so ambiguous as to use myAccount,myDbConnection, etc.



Hold On Tight Blog

Опубликовано: kfarnham 02.01.2007

Welcome to 2007

OK, how is it that the kids could get me up at 4:30, and I'm only doing the blog at 1 in the afternoon? Come to think it, why am I not already done for the day?

Anyways, be that as it may, welcome to 2007, welcome back from your vacation (those of you that aren't still away from work or school), and welcome back to the front page. If you took some time away, hopefully it was time well spent. Looking at my own list of stuff to do, I got through some of it (clearing off my desk, setting up the Mac Mini as a new Subversion server, banging on tweens in QTJ), but not all of it (still haven't gotten to my podcast editor design doc, or a Java-to-QTKit experiment). But I did have time with the kids to play some Guitar Hero II andKaraoke Revolution 3, so that was time well spent.

Speaking of music, there's something I've held in my back pocket for a while. I'd planned to show it off in the last blog of 2006, but that ended up being a special edition for the holiday pictures. So, it's getting bumped to today, and what "it" is, is the game I've been playing on the blog for the last year and a half.

Every now and then, someone will notice it for the first time and send me an e-mail saying "hey, are all of this week's blog titles songs by King Crimson," or "hey, these are all Chicago song titles", or (most frequently), "Rush, man, awesome!"

For those of you who haven't noticed, since I started editing the site full-time in July, 2005, I've used musical themes for the blog titles. For a given week, all the titles will be songs by one performer or group (or will have some other relationship, like being from a soundtrack). Ideally, each title should relate to the blog contents, though sometimes I have to sell the association pretty hard with the strapline to pull it off.

At first, I had a tendency to indulge my own tastes, but having pretty much played through all the artists I really like (viz., my last.fm page), and not wanting to be hopelessly obscure to those of you playing at home (I know, who the heck is Janet Panic, and why isn't her page up?), I've been making more of an effort to meet popular tastes half-way even if artists like Prince or The Doors aren't really my thing. I do want to keep playing at home, guessing what artist is up this week, to be within the realm of possibility. Though I still reserve the right to deal out something crazy like Be Bop Deluxe every now and then.

Anyways, here's the list of all the themes since July 2005. How many of these did you notice?

7/1/05"Final Fantasy" soundtracks
7/11/05Roxy Music
7/18/05The Tubes
7/25/06The Who
8/1/05Elvis Costello
8/8/05The Rolling Stones
8/15/05David Bowie
8/22/05Holly Cole
8/29/05The Beatles
9/5/05Joe Jackson
9/12/05Oingo Boingo
9/19/05The Offspring
9/26/05Green Day
10/3/05The Kinks
10/17/05Frank Zappa
10/31/05Anime theme songs
11/7/05The Moody Blues
11/14/05Boz Scaggs
11/21/05Steely Dan
11/28/05The Alan Parsons Project
12/12/05"Dance Dance Revolution" soundtracks
12/19/06Little Feat
1/9/06Roxy Music
1/16/06Elton John
1/23/06Todd Rundgren
2/6/06Dire Straits
2/13/06Talking Heads
2/27/06Greg Kihn
3/6/06Jools Holland Big Band
3/20/06Disney feature animation soundtracks
4/3/06Van Morrison
4/10/06The Residents
4/24/06The Clash
5/1/06David Bowie
5/23/06"Final Fantasy" soundtracks
5/29/06Sly and the Family Stone
6/5/06They Might Be Giants
6/12/06Billy Joel
6/19/06Pink Floyd
6/26/06Tom Petty
7/3/06The Who
7/10/06The Who
7/24/06The Pretenders
8/7/06Matthew Sweet
8/14/06Stevie Wonder
8/21/06Tower of Power
9/4/06Be Bop Deluxe
9/11/06Thelonious Monk
9/18/06Level 42
9/25/06Janet Panic
10/2/06Warren Zevon
10/9/06King Crimson
10/16/06The Offspring
10/23/06The New Pornographers
10/30/06Nellie McKay
11/6/06Peter Gabriel
11/27/06Robert Palmer
12/4/06Adam & the Ants
12/11/06The Doors
12/18/06Rod Stewart

Thanks for reading and for being part of our community. Best wishes for 2007, and if you're lucky, maybe I'll pick your favorite band one of these weeks.

A significant announcemnt in Java Today, as after more than a year of intensive development, the SIP Communicator project team is proud to announce a very first alpha1 release which is now available fordownload. The release offers support for instant messaging and presence for the Jabber, MSN and ICQ protocols, as well as support for one-to-one phone calls with SIP. The application is available in packages for Windows, Linux (Fedora, Debian and others), and Mac OS X.

The Java Web Services and XML Community is linking to what blogger Pankaj Kumar calls The real lesson from Google's SOAP Search API saga: "By now everyone has read about Google deprecating the SOAP Search API in favor of its AJAX Search API. As has been pointed out, this is not about the technology war, ie; SOAP vs. REST and REST winning the day, but about a business decision by a vendor on eliminating multiple ways of doing the same thing from its product/service portfolio"

Frank Kelly's The Art and Craft of Great Software blog looks at the Java community and wonders aloud: Are We Worrying About the Wrong Things? "As I come across blogs and articles online, I invariably hit upon people debating and arguing over various topics in Java and Software engineering. At first glance one would believe, based on the often heated debate and ensuing comments, that the issues in play are very important, but in this blog entry I'll try to elucidate that, for each of these "hot topics" there is a related topic that I think is even more important but getting no press."


Фильтр по блогу

По дате: