- The Rise and Fall of Dynamic Languages | Ruby Zone – In this interview, Ruby programmer and consultant Rick DeNatale provides his perspective on the fall and rise of dynamic languages, including Smalltalk and Ruby. Rick#039;s work through the years has given him a unique and low-level perspective of what works and why.
- DRY CRUD DAOs with iBatis – Gregg Bolinger – I blogged before about writing DRY CRUD DAOs using JPA. I was able to improve on that thanks to many comments from other users. So thanks for the tips. On a recent project we decided to go with iBatis and I wanted to see if it was possible to use the same methods that I use for JPA based DAOs.
- 12 CSS Tools and Tutorials for Beautiful Web Typography | Web Design Ledger – Achieving beautiful typography with CSS on the web is no easy feat, and there are many limitations to what can done with type on the web. However, there are generous people out there that have taken the time to build tools and write tutorials to help you overcome these limitations and create websites with beautiful typography.
- Strategies – The Index Funds Win Again – NYTimes.com – THERE’S yet more evidence that it makes sense to invest in simple, plain-vanilla index funds, whose low fees often lead to better net returns than hedge funds and actively managed mutual funds with more impressive performance numbers.
- Red Hat debuts virtualization software – Red Hat Inc. today introduced an entire line of virtualization software aimed at disrupting current market leader VMware Inc.#039;s position by giving customers an open-source option for virtualizing their data centers.
- State of the Art – Amazon.com’s Kindle Goes From Good to Better – NYTimes.com – With those caveats, the new Kindle edges even closer to the ideal of an e-book reader. The reading experience is immersive, natural and pleasant; the book catalog, while not yet complete, is growing and delivered instantaneously; and apart from the clicky keyboard (an unnecessary appendage 99.9 percent of the time), the design feels right.
- Citrix to offer free XenServer; Takes shot at VMware | Between the Lines | ZDNet.com – Citrix on Feb. 23 will detail plans to offer free licenses to its XenServer virtualization application and team with Microsoft to swap support. Citrix and Microsoft will also extend their 20-year partnership into the virtualization market.
In a nutshell, Citrix will work with Microsoft to provide system management, Citrix Essentials for Hyper-V. Microsoft’s System Center will support XenServer.
- It’s official: Citrix aims to blow up enterprise virtualization pricing | Between the Lines | ZDNet.com – Citrix officially launched a free version of its XenServer and Essentials virtualization software in a move that is designed to take aim at VMware. Separately, Citrix extended its long-running partnership with Microsoft to cover virtualization.
- 9 Must-Try Adobe AIR Apps for Better Productivity – With this new age of “application neutrality,” I wanted to take a brief look into some Adobe AIR apps you have to at least try. Each one is focused on increasing an area of productivity.
- Application Development Trends – Sun Expands GlassFish into Web Platform – Sun Microsystems last week announced a new bundle of open source projects assembled around the GlassFish application server to create a quot;high-performance Web platform.quot;
- Wikis and Wall Street: A Perfect Match? – By focusing on improving productivity and supporting mission-critical apps (but not touching customer and transaction data), wikis can be used to deliver major ROI without requiring integration with legacy systems or storing customer data outside the firewall.
- The storage solution Sun should have built | unixville – The HP MediaSmart Server EX485 is a diminutive low-power device that provides backup and storage service for all your home computers. It runs Windows Home Server, uses commodity hardware and supports Mac & iTunes, all while providing space for 4 internal drives
- ThinkUI SQL Client – SQL Query and Code Generation Tool for Java Developers – ThinkUI SQL Client is designed for Java™ developers who needs to work with multiple databases and would like to a tool with features that will improve their productivity and help reduce the tedious nature of software development.
- Granite Data Services (Free, Open Source, Flex & J2EE) – Confluence – Granite Data Services (GDS) is a free, open source (LGPL'd) alternative to Adobe® LiveCycle® (Flex™ 2+) Data Services for J2EE application servers. The primary goal of this project is to provide a framework for Flex 2+/EJB 3/Seam/Spring/Guice/POJO application development with full AMF3/RemoteObject benefits.
- Raible Designs | Choosing an Ajax Framework – For #1, we chose Ext JS, Dojo, YUI and GWT because we feel these Ajax libraries offer the most UI widgets. We also considered Prototype/Scriptaculous, jQuery and MooTools, but decided against them because of their lack of UI widgets
- Morningstar – Business Wire: Artisan Funds Portfolio Managers David Samra and Daniel O’Keefe Named Morningstar’s 2008 International-Stock Fund Manager of the Year – Artisan Partners, investment adviser to the Artisan Funds, announced that Morningstar has named David Samra and Daniel O’Keefe, Portfolio Co-Managers of the Artisan International Value Fund (ARTKX) and Artisan Global Value Fund (ARTGX), its International-Stock Fund Manager of the Year for 2008
- patterns & practices: Application Architecture Guide 2.0 (The Book) – Home – Welcome to the patterns & practices Application Architecture Guide 2.0 project site! provides design-level guidance for the architecture and design of applications built on the .NET Framework. It focuses on the most common types of applications, partitioning application functionality into layers, components, and services, and walks through their key design characteristics.This guide is a collaborative effort between patterns & practices, product teams, and industry experts
- Kilim: Fast, lightweight, cheap message passing in Java | Java™ Software Development Videos and Tutorials Directory – The message passing (MP) paradigm is often seen as a superior alternative to the typical mix of idioms in concurrent (shared-memory, locks) and distributed programming (CORBA/RMI). This talk describes a Java framework called “Kilim” to fix this state of affairs.
- Unison File Synchronizer – Unison is a file-synchronization tool for Unix and Windows. It allows two replicas of a collection of files and directories to be stored on different hosts (or different disks on the same host), modified separately, and then brought up to date by propagating the changes in each replica to the other
- Public Object: Always use jarjar to package implementation dependencies – jarjar is a sweet Java packaging tool that allows you to embed one .jar file in another. But rather than just smashing the jars together in one big archive, jarjar renames the embedded .jar's classes so that they live in the main jar's namespace
- The busy Java developer’s guide to Scala: Scala and servlets – In this article in the The busy Java developer's guide to Scala series, Ted Neward begins a tour of Scala in the real world by examining how Scala can interact with the core Servlet API and perhaps even improve it a little.
- FrontPage – Dropbox Wiki – The Dropbox Wiki is your designated resource for the more advanced features (and creative uses) that Dropbox has to offer. Like all wikis, this will be constantly changing, and we welcome any contributions you make.
- Red Hat 3Q up 20 pct, but revenue below estimate – BusinessWeek – Red Hat Inc. on Monday reported a 20 percent increase in profit for the third quarter as budget-conscious companies opted for the software provider's open-source Linux operating system over more expensive proprietary systems.
- Asia’s wounded giants | Suddenly vulnerable | The Economist – Asia’s two big beasts are shivering. India’s economy is weaker, but China’s leaders have more to fear
- Management guru: Warren Buffett | Warren Buffett | The Economist – Buffett is known as “the Sage of Omaha”, after the town where he was born and where he has spent most of his life, and much is made of his small-town homespun values. He likes to play the ukulele and he plays bridge (with Bill Gates, among others) in his modest home in Omaha
- JavaLobby’s Top 10 Articles of 2008 | Javalobby – As a way of looking back at how the year has been on JavaLobby, we've collected the top 10 most read articles. It paints a clear picture about what is important to you, and gives us some hints as to what we should be covering in 2009
- Dustin’s Software Development Cogitations and Speculations: 2008: Year of the Java Persistence API – It appears that one of the most popular themes in Java development in 2008 has been the Java Persistence API (JPA). I base this statement on the recent announcements that JPA-focused articles appeared in the Top Ten lists of articles for both Oracle Technology Network (OTN) and JavaLobby.
- Data Platform Insider : Ultimate guide for upgrading to SQL Server 2008 – Last week, our SQL Server engineering team in association with Solid Quality Mentors released an unprecedented 490-page free whitepaper called SQL Server 2008 Upgrade Technical Reference Guide that provides in-depth information on how to upgrade to SQL Server 2008
- Scrum in under 10 minutes video | Agile Software Development – Hamid Shojaee from Axosoft published an excellent and funny video on the basics of Scrum. In under 8 minutes of animation Hamid describes most of the basic concepts. I don’t agree with everything (in particular I I would like to see the release burndown chart described), but you can only explain so much in under 10 minutes and every Scrum installation is different anyway. Have a look and enjoy!
- Stax Networks Launches: Google App Engine For Java – Stax is built on top of Amazon EC2 and allows developers to create, text and deploy Java applications without having to build out their own physical infrastructure.
- Database Normalisation :: BlackWasp Software Development – The sixteenth part of the SQL Server Programming Fundamentals tutorial discusses the concept of database normalisation. Normalisation is a database design technique that minimises duplication of information, reducing the risk of introducing data errors.
- 10 Steps to Learn a New Coding Language Fast – NETTUTS – Learning a new language can seem like a daunting task. However, as it is with all types of learning, there are certain techniques and practices that will help you learn the language faster and more efficiently. Here are 10 of the best practices that aspiring programmers can use to quickly start programming in a new language
- Kill Your Database – Rather, save your database with Terracotta. Relational database are valuable for many things, but serving as the cost-effective scalability backbone of high-load web applications isn't one of them. Is your database suffering under the weight of your application?
- YouTube – Top Gear Tesla review – Top Gear reviews Tesla, smokes Lotus Elise
- vmcNetFlix – Official Site – vmcNetflix is an add-in for Microsoft Windows Vista Media Center which allows you to manage your NetFlix subscription, stream NetFlix "WatchNow" movies directly to the Media Center player, or download the movies for playback later from a "WatchLater" ga
- The LinkedIn Blog: LinkedIn is 99% Java but 100% Mac – The post is titled LinkedIn Is Written in 99% Java, so to complete the picture I responded to the community with a message about how LinkedIn is 99% Java but 100% Mac.
- Mercedes to Cut Petroleum Out of Lineup by 2015 | EcoGeek – In less than 7 years, Mercedes-Benz plans to ditch petroleum-powered vehicles from its lineup. Focusing on electric, fuel cell, and biofuels, the company is revving up research in alternative fuel sources and efficiency.
- Jericho HTML Parser – Jericho HTML Parser is a powerful java library allowing analysis and manipulation of parts of an HTML document, including server-side tags, while reproducing verbatim any unrecognised or invalid HTML. It also provides high-level HTML form manipulation fun
- Software Sensation Inc. – jWebApp Web Application Framework, Install&Update, MemSL – Memory Structures Library – jPersist is an extremely powerful object-relational persistence API that is based on the Active-Record and Data-Mapper patterns. jPersist wraps JDBC functionality and can work with any relational database, and any type of connection resource
- Java Entrepreneur: We screwed up on open source, says Sun Chief Open Source Officer – Open source developers have been much more skeptical of Sun; a lot of open source developers don't remember the fact that Sun was pretty much the first open source start-up in 1982. All they can remember is what happened in 2001/2002 when, to be quite fra
- InfoQ: Liferay Portal 5.0 Released, Sun Joins the Team – Last month at JavaOne, Liferay, Inc. announced the release of the 5.0 version of their Liferay Portal product. The Liferay press release highlights a handful of the key tools and uses in the portal product:
- How Hard Could it Be?: Glory Days – Bill Gates – working for Microsoft – Bill Gates was amazingly technical, and he knew more about the details of his company's software than most of the people who worked on those details day in and day out.
- Unit testing with JUnit and EasyMock – Michael Minella – I hope this gives you a more in depth view into JUnit and EasyMock. Unit testing is something that once you get used to it, makes you code better, provides you with a safety net for future refactoring and protects you from being burned by API changes
- Unit Testing With TestNG and JMockit | Javalobby – TestNG is a testing framework for unit test development. JMockit is a framework for mock objects that provides mock object functionality using the java.lang.instrument package of jdk 1.5. Together, these frameworks can provide the tools to create very rob
- Firefox 3 for developers – MDC – If you're a developer trying to get a handle on all the new features in Firefox 3, this is the perfect place to start. This article provides a list of the new articles covering features added to Firefox 3
- InfoQ: Is Google Gears Positioned to Add Features to the Web? – There is no doubt that Rich Internet Applications remain a major battleground for the industry along with and complementary to Ad-based revenue models and cloud-computing. Will Gears take a similar path as Flash and become as much adopted by Web sites and
- Official Google Blog: At long last, real-time stock quotes are here – We're very excited to tell you that real-time quotes on NASDAQ securities are now available on Google Finance. This is an important (and way overdue) development for everyone who consumes financial information.
- InfoQ: Erlang – software for a concurrent world – How do you program a multicore computer? Easy – do it in Erlang. Erlang is a concurrent functional programming language designed for programming fault-tolerant systems. With share-nothing semantics and pure message passing, Erlang programs scales on multi
- Design Stencils – Yahoo! Design Pattern Library – Yahoo! Design Stencil Kit version 1.0 is available for OmniGraffle, Visio (XML), Adobe Illustrator (PDF and SVG), and Adobe Photoshop (PNG), and covers the following topics:
- DBSight: Instant Scalable Full-text database search platform/engine – Instead of weeks or even months to develop a full-text search for your data, if you know how to use DBSight, you can easily create the full-text search literally in minutes.
- Brain Freeze » Storing JasperReports in a database using iBATIS and Oracle 10g – This article shows how I solved the file system issue by storing JasperReports report definitions in a database. I’ll assume familiarity with the iBATIS “ORM” database framework since I am not showing a full iBATIS setup here.
- JetBrains’ Dmitry Jemerov on IntelliJ 8, Flex, and Scala – Dmitry Jemerov is a lead developer on JetBrains' IntelliJ IDEA. In this wide-ranging interview with Artima, Jemerov discusses the main focus areas for the upcoming IntelliJ 8 release, as well as his views on IntelliJ's support for Flex and Scala.
- » HOW TO: Use JDBC Batching for 7-8X throughput gains – Using the batched statement capability of your JDBC driver can give you 7-8X throughput gains. Not only is batching significantly faster, it’ll save database CPU cycles and be easier on the network, too
- Why Java? Because it’s everywhere. – The value of this enterprise capabilities is still very high, and in my opinion, it is one of the most important differentiators of Java. Once you know how to deal with it, it saves you lots of time in development and production.
- Roku’s Netflix Player sells out | Tech news blog – CNET News.com – There's more proof that the Netflix Player is a hit. Start-up Roku, the company behind the device that enables Netflix subscribers to watch movies streamed from the Internet to their TVs, has run out of inventory two weeks after launching.
- InfoQ: Exadel’s Flamingo Project for Rapid Flex and Java Development – Exadel’s Flamingo project is a tool for bootstrapping RIA applications built with Java backends. The tool offers support for both Seam and Spring in the middle tier. On the presentation tier, Flamingo supports both Flex and JavaFX
- Searchable javadocs – Javadocs are good but not great as they miss a key feature of being able to do a full text search. Enter Documancer – It allows you to point to the index.html Javadoc file of a given library and one can then run full text searches through the Javadocs
- DataCleaner – eobjects – DataCleaner is an open source project concerned with creating a data quality solutions for business and organizations wishing to measure and increase the quality of their data. DataCleaner includes functionality to profile and compare data, to validate da
- IntelliJ IDEA Blog » Blog Archive » Announcing New Release of JetGroovy Plugin – We’re glad to announce the general availability of the new release of JetGroovy Plugin for IntelliJ IDEA. Version 1.5 brings yet more of IntelliJ IDEA´s smart, advanced features to Groovy and Grails developers
- HtmlUnit 2.1 Released « A Public Scratchpad – The HtmlUnit team is pleased to announce a new release of HtmlUnit. This latest version includes a number of bug fixes and performance enhancements, and sports excellent support for GWT, jQuery and Sarissa, decent support for Prototype and Dojo, and basic
- Enterprise 2.0: A Computer Security Nightmare? – Bits – Technology – New York Times Blog – One conclusion, the report notes, is that users are routinely, and fairly easily, circumventing corporate security controls. And that is because traditional firewall technology was not meant to grapple with the diversity of Internet applications of recent
- Amazon’s cloud computing will surpass its retailing business | Between the Lines | ZDNet.com – Everyone else–Google and Microsoft–are working on their cloud computing services, but they are really in the first revision of their respective offerings. Amazon is ahead and tweaking
- It’s Only Software » 5 Minute Guide to Spring and Simple[r!] JDBC – I recently worked on a personal project to learn how one can write dead-simple plain old JDBC applications using only Spring Framework 2.5 without an ORM layer. Spring 2.5 has many features that provide some of the convenience of ORM libraries
- <a href="http:
The Java Persistence API is a lightweight, POJO-based framework for object-relational mapping. The mapping between Java objects and a relational database is achieved with the help of Java language metadata annotations and/or XML deployment descriptors
Are you learning JSP-2? Would you like to learn JSTL , an important part of JSP-2,IN A SINGLE HANDS-ON TUTORIAL, the EASIEST WAY? This tutorial is especially meant for learners in a hurry.
ver the years, I have had the opportunity to work with various code review systems, and I have come to believe that one particular approach works better than the other. Here is what I’ve learned.
Acharya introduces JDBC’s XML-friendly interface for working with results, converting to and from XML, and performing updates by manipulating the WebRowSet object
BEA released the latest version (v9.0) of their flagship application server, WebLogic in early August. I have been playing with the latest release of WLS to see what’s new, what’s cool and what are the features that will make me push to upgrade ASAP.
In addition to J2SE 1.5 or Java SE 5.0 support, WLS 9.0 is also fully compliant with the J2EE 1.4 Specification and is fully buzzword compliant. This release includes support for EJB 2.1, Web Services 1.1, JMS 1.1, JMX 1.2, JDBC 3.0, WS-Security, SAML 1.1, Profile 1.0, WS-Policy, WS-Reliable Messaging and WS-Addressing among others. The specification notably missing is EJB 3.0 – WLS 9.0 does not support EJB 3.0 and will support it as a service-pack, when EJB 3.0 JSR finally gets approved. This was kind of disappointing as WebLogic has always been on leading/bleeding edge in terms of specifications. I know I would have used the built-in support for the 3.0 spec, knowing full well that things may change and break with service-packs. The reality is that we won’t be pushing apps in production under 9.0 till SP1 is out and we’ve truly gone through and understood all the changes from 8.1 and their impact to our applications and processes. (More information of all the API alphabet soup is available here here).
One of the newest and biggest additions to WebLogic is the new functionality called ‘Production Deployment’ or ‘side-by-side deployment’. This new feature allows you to redeploy a new, updated version of a production application without affecting existing clients of the application that have valid sessions, and without interrupting the availability of the application to new client requests. So all the old users continue to use the old version of the application and any new users get directed to the new application. As old sessions timeout and/or users log out, the old application is retired. This also works in a clustered environment where you may have many WebLogic instances. The one thing I haven’t tested yet is whether in-memory (session) replication still works as before. The scenario I hope to test soon is where Server A and Server B participate in a cluster. User 1 comes in and logs into Server A – in-memory replication will replicate User 1’s session over to Server B. While User 1 is still active, I deploy a new version of the application to the cluster. Once the application is deployed, I kill Server A and then have User 1 attempt to use the application. Will the old version of the application still be there on Server B even though it didn’t have any users using it?
WLS 9.0 also includes a completely new administration console built on top of the WebLogic Portal framework as a set of JSP’s with Struts and Beehive. This allows you to extend the console and add your own custom admin screens. I think this is a pretty useful concept as developers can add custom JMX hooks in their applications and then surface that data via the custom admin console interface. I’ve always built custom admin-consoles for applications to turn on/off things, resources inside the applications or failover, etc. Being able to add that functionality inside the console gives you the additional authentication and authorization capabilities to your custom admin screen. WLS supports JMX 1.2 and JMX Remote API 1.0 (JSR-160) in this release, which deprecates BEA’s proprietary API for remote JMX access, MbeanHome.
One of the nicest new features is the ability to create 1 log file for 1 day. This was always a missing feature that annoyed me to no end as you could rotate logs based by time but it was always elapsed time and so you couldn’t create 1 log file for 1 day that automatically rotates to a new log file at midnight. That is now enabled and all I can say is that it’s about time.
Another great enhancement is the use of DataSources instead of connection pools by default. Instead of configuring a JDBC connection pool and then configuring a data source to point to the connection pool and binding to the JNDI tree, you configure a data source that encompasses a connection pool. Before JDBC 2.0 and the concept of DataSource, people created a connection-pool and then used the pool driver (JDBC) to get a connection. But now everything is in the context of a DataSource and so you have to create a DataSource to create the underlying connection pool and that will force people to rewrite their legacy code that gets a connection from the pool directly. It’s a good thing, as it will make their code more portable.
There are quite a lot of simple enhancements that I find useful. For example, hitting CTRL-C to interrupt a running server that you were running inside a DOS window or UNIX shell used to just kill the server. Now the start script catches the interrupt and calls the WLS shutdown hook. Another minor but useful thing is that the auto-generated start scripts have support for JPDA (Java Platform Debugger Architecture). The command line includes all the parameters needed to fire up the debug listener on port 8453 but it’s configurable at each startup script level.
I know I’ve only scratched the surface with WebLogic 9.0 in the weeks of playing. I’ll continue to blog about anything that’s interesting or cool or broken.
Links of Interest:
- WebLogic 9.0 Release Notes
- What’s new in WebLogic 9.0
- Upgrading Applications for 9.0
- WebLogic 9.0 documentation
- WebLogic Server blogs on dev2dev
WebLogic, WLS, WebLogic 9, WLS 9.0, BEA, J2EE
iBATIS SQL Maps is an open-source JDBC framework that provides a very simple and flexible means of moving data between your Java objects and a relational database. The SQL Maps framework helps reduce the amount of Java/JDBC code that is needed to access a relational database. The framework allows you to map JavaBeans to SQL statements using a very simple XML descriptor that allows you to create complex queries, and inner/outer joins. The beauty of it all is that this is achieved without any special database tables, bytecode manipulation, or code generation.
iBATIS is not meant to replace Object-Relational Mapping (ORM) tools such as Hibernate, OJB, Entity beans or TopLink to name a few. Rather it is a low-level framework that allows you to directly hand-code your SQL statements and map them to Java object. Once you map your persistence layer to your object model, you are all set. You don’t need to lookup DataSource, get connections, create prepared statements, parse ResultSet or even cache the results – iBATIS does it all for you. Under the covers, iBATIS creates a PreparedStatement, sets the parameters (if any), executes the statements and builds a Map or JavaBean object from the ResultSet. If the SQL statement was an insert or an update, the numbers of rows affected by the SQL are returned. Here’s a little sample to illustrate the features of iBATIS: We’ll start with a simple database that ships with the JpetStore application from iBATIS.
First you configure SQL Maps by creating a XML configuration file, which provides configuration details for DataSources, SQL Maps and other options like thread management. Here is a simple example of the SQL Map configuration file:
In my case, I am deploying this code in WebLogic and I have already created a connection pool and a datasource on the WebLogic side. I am just referring to the name of the datasource by using
jdbc/jpetstoreDS. You can also create your own datasource via. the SQL Map configuration file:
The SQL Map configuration file includes a reference to another SQL Map file that contains your SQL statements for insert, update, delete as well as results and parameter mapping. Here is a simple example of the file Account.xml:
Account.xml SQL Map file is pretty self-explanatory — In the file, we are describing a select statement that takes an Integer as it’s argument and returns an instance of com.j2eegeek.ibatis.domain.Account. Insert, updates, deletes work the same way along with stored procedures and dynamic queries. The programming API for SQL Maps is really straightforward and provides the developer with the ability to: configure an SQL Map, execute an SQL update (including insert and delete), execute a query for a single object, and execute a query for a list of objects.
A pretty simple example but it should illustrate the simplicity of iBATIS SQL Maps and show you the potential of this framework. SQL Maps takes away all of the work required to create Statements, validate and parse inputs, create and parse ResultSets and all of the nitty-gritty details of working with SQL by hand. Instead, you are working at the object level and not really worrying about how your data is stored or retrieved. I’ve found that this also enables a good separation of work where your ‘data-guy’ can create up the appropriate SQL statements for you and you just plug them in, assuming you have a ‘data-guy’. I’ve found that SQL Maps really helps me in my development process (In most cases, I am working with existing databases) as I spend time looking at the data-model as part of my overall design process and will typically mock-up the SQL statements I am going to use to manipulate the data at hand. Now I can just take my SQL statements and plug them into the SQL Map XML files and half my app is already built.
iBATIS SQL Maps is really powerful and you can take this one step further by using Spring’s DAO framework in conjunction with iBATIS. Using Spring’s DAO framework and the iBATIS template classes provided by Spring, you will write even less code that you would have normally written using iBATIS by itself.