NFJS Bookstore
Learning Web Design: A Beginner's Guide to (X)HTML, StyleSheets, and Web Graphics
Everything you need to know to create professional web sites is right here. Learning Web Design starts from the beginning -- defining how the Web and web pages work -- and builds from there. By the end of the book, you'll have the skills to create multi-column CSS layouts with optimized graphic files, and you'll know how to get your pages up on the Web.
This thoroughly revised edition teaches you how to build web sites according to modern design practices and professional standards. Learning Web Design explains:
- How to create a simple (X)HTML page, how to add links and images
- Everything you need to know about web standards -- (X)HTML, DTDs, and more
- Cascading Style Sheets -- formatting text, colors and backgrounds, using the box model, page layout, and more
- All about web graphics, and how to make them lean and mean through optimization
- The site development process, from start to finish
- Getting your pages on the Web -- hosting, domain names, and FTP
Spring in Action
Spring in Action 2E is an expanded, completely updated second edition of the best selling Spring in Action. Written by Craig Walls, one of Manning's best writers, this book covers the exciting new features of Spring 2.0, which was released in October 2006.
Spring is a lightweight container framework that represents an exciting way to build enterprise components with simple Java objects. By employing dependency injection and AOP, Spring encourages loosely coupled code and enables plain-old Java objects with capabilities that were previously reserved for EJBs. This book is a hands-on, example-driven exploration of the Spring Framework. Combining short code snippets and an ongoing example developed throughout the book, it shows readers how to build simple and efficient J2EE applications, how to solve persistence problems, handle asynchronous messaging, create and consume remote services, build web applications, and integrate with most popular web frameworks. Readers will learn how to use Spring to write simpler, easier to maintain code so they can focus on what really matters-- critical business needs.
Spring in Action, 2E is for Java developers who are looking for ways to build enterprise-grade applications based on simple Java objects, without resorting to more complex and invasive EJBs. Even hard-core EJB users will find this book valuable as Spring in Action, 2E will describe ways to use EJB components alongside Spring. Software architects will also find Spring in Action, 2E useful as they assess and apply lightweight techniques prescribed by Spring. and learn how Spring can be applied at the various layers of enterprise applications.
Java Concurrency in Practice
"I was fortunate indeed to have worked with a fantastic team on the design and implementation of the concurrency features added to the Java platform in Java 5.0 and Java 6. Now this same team provides the best explanation yet of these new features, and of concurrency in general. Concurrency is no longer a subject for advanced users only. Every Java developer should read this book."
--Martin Buchholz
JDK Concurrency Czar, Sun Microsystems
"For the past 30 years, computer performance has been driven by Moore's Law; from now on, it will be driven by Amdahl's Law. Writing code that effectively exploits multiple processors can be very challenging. Java Concurrency in Practice provides you with the concepts and techniques needed to write safe and scalable Java programs for today's--and tomorrow's--systems."
--Doron Rajwan
Research Scientist, Intel Corp
"This is the book you need if you're writing--or designing, or debugging, or maintaining, or contemplating--multithreaded Java programs. If you've ever had to synchronize a method and you weren't sure why, you owe it to yourself and your users to read this book, cover to cover."
--Ted Neward
Author of Effective Enterprise Java
"Brian addresses the fundamental issues and complexities of concurrency with uncommon clarity. This book is a must-read for anyone who uses threads and cares about performance."
--Kirk Pepperdine
CTO, JavaPerformanceTuning.com
"This book covers a very deep and subtle topic in a very clear and concise way, making it the perfect Java Concurrency reference manual. Each page is filled with the problems (and solutions!) that programmers struggle with every day. Effectively exploiting concurrency is becoming more and more important now that Moore's Law is delivering more cores but not faster cores, and this book will show you how to do it."
--Dr. Cliff Click
Senior Software Engineer, Azul Systems
"I have a strong interest in concurrency, and have probably written more thread deadlocks and made more synchronization mistakes than most programmers. Brian's book is the most readable on the topic of threading and concurrency in Java, and deals with this difficult subject with a wonderful hands-on approach. This is a book I am recommending to all my readers of The Java Specialists' Newsletter, because it is interesting, useful, and relevant to the problems facing Java developers today."
--Dr. Heinz Kabutz
The Java Specialists' Newsletter
"I've focused a career on simplifying simple problems, but this book ambitiously and effectively works to simplify a complex but critical subject: concurrency. Java Concurrency in Practice is revolutionary in its approach, smooth and easy in style, and timely in its delivery--it's destined to be a very important book."
--Bruce Tate
Author of Beyond Java
"Java Concurrency in Practice is an invaluable compilation of threading know-how for Java developers. I found reading this book intellectually exciting, in part because it is an excellent introduction to Java's concurrency API, but mostly because it captures in a thorough and accessible way expert knowledge on threading not easily found elsewhere."
--Bill Venners
Author of Inside the Java Virtual Machine
Threads are a fundamental part of the Java platform. As multicore processors become the norm, using concurrency effectively becomes essential for building high-performance applications. Java SE 5 and 6 are a huge step forward for the development of concurrent applications, with improvements to the Java Virtual Machine to support high-performance, highly scalable concurrent classes and a rich set of new concurrency building blocks. In Java Concurrency in Practice, the creators of these new facilities explain not only how they work and how to use them, but also the motivation and design patterns behind them.
However, developing, testing, and debugging multithreaded programs can still be very difficult; it is all too easy to create concurrent programs that appear to work, but fail when it matters most: in production, under heavy load. Java Concurrency in Practice arms readers with both the theoretical underpinnings and concrete techniques for building reliable, scalable, maintainable concurrent applications. Rather than simply offering an inventory of concurrency APIs and mechanisms, it provides design rules, patterns, and mental models that make it easier to build concurrent programs that are both correct and performant.
This book covers:
- Basic concepts of concurrency and thread safety
- Techniques for building and composing thread-safe classes
- Using the concurrency building blocks in java.util.concurrent
- Performance optimization dos and don'ts
- Testing concurrent programs
- Advanced topics such as atomic variables, nonblocking algorithms, and the Java Memory Model
Professional JavaScript for Web Developers (Wrox Programmer to Programmer)
This eagerly anticipated update to the breakout book on JavaScript offers you an in-depth look at the numerous advances to the techniques and technology of the JavaScript language. You'll see why JavaScript's popularity continues to grow while you delve through topics such as debugging tools in Microsoft Visual Studio, FireBug, and Drosera; client-side data storage with cookies, DOM storage, and client-side databases; HTML 5, ECMAScript 3.1, the Selectors API; and design patterns including creational, structural, and behavorial patterns.
Web Design in a Nutshell: A Desktop Quick Reference (In a Nutshell (O'Reilly))
In 1998, Jennifer Niederst wrote the first edition of this very successful book after she found herself spending way too much time chasing down the solutions to HTML problems. From hexadecimal color specs to mouseover scripts, the answers are all out there, but finding the exact one you need can soak up a whole day. "I wrote Web Design in a Nutshell because it was the book I needed--one place to find quick answers to my questions."With all that's changed in the meantime, an overhaul is welcome. This is the rare book for designers that is almost completely nonvisual. It doesn't show what's hip in navigational bars or what the coolest colors are. Rather, it gives readers the kind of know-how that can make a difference between someone who just whips up pretty pages with WYSIWYG applications like Dreamweaver and someone who can make those pages cross-platform, cross-browser, fast loading, and accessible to all.
The clear organization makes it easy to locate any specific topic. There are six sections. "The Web Environment" discusses the realities of browser compatibility, display-resolution problems, a useful bit of Unix, and tips for print designers looking to move into Web design. "Authoring" shows how to write accurate and up-to-date HTML, cascading style sheets, and Server Side Includes (like putting the current date and time on your homepage).
"Graphics" brings together all you need to know to make effective use of images (GIFs, JPEGS, PNGs, and animated GIFs). "Multimedia and Interactivity" helps with adding audio, video, or Flash to your site (including some succinct tips on optimization and publish settings). And "Advanced Technologies" covers JavaScript, DHTML, XML, XHTML, and WAP and WML. And there are six useful look-up tables in the appendix, which include HTML 4.0 tags, deprecated tags, attributes, and CSS support across browsers. Web Design in a Nutshell could easily have been titled The Web Designer's Companion--it's mighty handy to have around. --Angelynn Grant
97 Things Every Software Architect Should Know: Collective Wisdom from the Experts
In this truly unique technical book, today's leading software architects present valuable principles on key development issues that go way beyond technology. More than four dozen architects -- including Neal Ford, Michael Nygard, and Bill de hOra -- offer advice for communicating with stakeholders, eliminating complexity, empowering developers, and many more practical lessons they've learned from years of experience. Among the 97 principles in this book, you'll find useful advice such as:
- Don't Put Your Resume Ahead of the Requirements (Nitin Borwankar)
- Chances Are, Your Biggest Problem Isn't Technical (Mark Ramm)
- Communication Is King; Clarity and Leadership, Its Humble Servants (Mark Richards)
- Simplicity Before Generality, Use Before Reuse (Kevlin Henney)
- For the End User, the Interface Is the System (Vinayak Hegde)
- It's Never Too Early to Think About Performance (Rebecca Parsons)
To be successful as a software architect, you need to master both business and technology. This book tells you what top software architects think is important and how they approach a project. If you want to enhance your career, 97 Things Every Software Architect Should Know is essential reading.
Head First Software Development
Even the best developers have seen well-intentioned software projects fail -- often because the customer kept changing requirements, and end users didn't know how to use the software you developed. Instead of surrendering to these common problems, let Head First Software Development guide you through the best practices of software development. Before you know it, those failed projects will be a thing of the past.
With its unique visually rich format, this book pulls together the hard lessons learned by expert software developers over the years. You'll gain essential information about each step of the software development lifecycle -- requirements, design, coding, testing, implementing, and maintenance -- and understand why and how different development processes work.
This book is for you if you are:
- Tired of your customers assuming you're psychic. You'll learn not only how to get good requirements, but how to make sure you're always building the software that customers want (even when they're not sure themselves)
- Wondering when the other 15 programmers you need to get your project done on time are going to show up. You'll learn how some very simple scheduling and prioritizing will revolutionize your success rate in developing software.
- Confused about being rational, agile, or a tester. You'll learn not only about the various development methodologies out there, but how to choose a solution that's right for your project.
- Confused because the way you ran your last project worked so well, but failed miserably this time around. You'll learn how to tackle each project individually, combine lessons you've learned on previous projects with cutting-edge development techniques, and end up with great software on every project.
Solr 1.4 Enterprise Search Server
Enhance your search with faceted navigation, result highlighting, fuzzy queries, ranked scoring, and more- Deploy, embed, and integrate Solr with a host of programming languages
- Implement faceting in e-commerce and other sites to summarize and navigate the results of a text search
- Enhance your search by highlighting search results, offering spell-corrections, auto-suggest, finding "similar" records, boosting records and fields for scoring, phonetic matching
- Informative and practical approach to development with fully working examples of integrating a variety of technologies
In Detail If you are a developer building a high-traffic web site, you need to have a terrific search engine. Sites like Netflix.com and Zappos.com employ Solr, an open source enterprise search server, which uses and extends the Lucene search library. This is the first book in the market on Solr and it will show you how to optimize your web site for high volume web traffic with full-text search capabilities along with loads of customization options. So, let your users gain a terrific search experience.
This book is a comprehensive reference guide for every feature Solr has to offer. It serves the reader right from initiation to development to deployment. It also comes with complete running examples to demonstrate its use and show how to integrate it with other languages and frameworks.
This book first gives you a quick overview of Solr, and then gradually takes you from basic to advanced features that enhance your search. It starts off by discussing Solr and helping you understand how it fits into your architecture--where all databases and document/web crawlers fall short, and Solr shines. The main part of the book is a thorough exploration of nearly every feature that Solr offers. To keep this interesting and realistic, we use a large open source set of metadata about artists, releases, and tracks courtesy of the MusicBrainz.org project. Using this data as a testing ground for Solr, you will learn how to import this data in various ways from CSV to XML to database access. You will then learn how to search this data in a myriad of ways, including Solr's rich query syntax, "boosting" match scores based on record data and other means, about searching across multiple fields with different boosts, getting facets on the results, auto-complete user queries, spell-correcting searches, highlighting queried text in search results, and so on.
After this thorough tour, we'll demonstrate working examples of integrating a variety of technologies with Solr such as Java, JavaScript, Drupal, Ruby, XSLT, PHP, and Python.
Finally, we'll cover various deployment considerations to include indexing strategies and performance-oriented configuration that will enable you to scale Solr to meet the needs of a high-volume site.
What you will learn from this book?
- Blend structured data with real search features
- Import CSV formatted data, XML, common document formats, and from databases
- Deploy Solr and provide reference to Solr's query syntax from the basics to range queries
- Enhance search results with spell-checking, auto-completing queries, highlighting search results, and more.
- Secure Solr
- Integrate a host of technologies with Solr from the server side to client-side JavaScript, to frameworks like Drupal
- Scale Solr using replication, distributed searches, and tuning
Approach
The book takes a step-by-step tutorial approach with fully working examples in Java. It will show you how to implement a Solr-based search engine on your intranet or web site.
Who this book is written for?
This book is for developers who would like to use Solr for their applications. You only need to have basic programming skills to use Solr. Knowledge of Lucene is certainly a bonus.
Continuous Integration: Improving Software Quality and Reducing Risk
For any software developer who has spent days in “integration hell,” cobbling together myriad software components, Continuous Integration: Improving Software Quality and Reducing Risk illustrates how to transform integration from a necessary evil into an everyday part of the development process. The key, as the authors show, is to integrate regularly and often using continuous integration (CI) practices and techniques.
The authors first examine the concept of CI and its practices from the ground up and then move on to explore other effective processes performed by CI systems, such as database integration, testing, inspection, deployment, and feedback. Through more than forty CI-related practices using application examples in different languages, readers learn that CI leads to more rapid software development, produces deployable software at every step in the development lifecycle, and reduces the time between defect introduction and detection, saving time and lowering costs. With successful implementation of CI, developers reduce risks and repetitive manual processes, and teams receive better project visibility.
The book covers
- How to make integration a “non-event” on your software development projects
- How to reduce the amount of repetitive processes you perform when building your software
- Practices and techniques for using CI effectively with your teams
- Reducing the risks of late defect discovery, low-quality software, lack of visibility, and lack of deployable software
- Assessments of different CI servers and related tools on the market
The book’s companion Web site, www.integratebutton.com, provides updates and code examples.
Groovy Recipes: Greasing the Wheels of Java (Pragmatic Programmers)
Groovy and Grails give you the power of the Java platform together with the flexibility and dynamism of a scripting language. Pick one of the many example projects in this book: at first you'll scratch your head and ask, "where's all the code?" Then you'll smile as you realize that Groovy allows you to write code the way you always thought you should. You will never look at Java the same way again.
Groovy Recipes is targeted at the busy Java professional who needs quick solutions to everyday problems. Each recipe shows a concise code example right away. If you need more information, each recipe is explained in plain English.
Nearly every aspect of the development process can be sped up using Groovy. Groovy makes mundane file management tasks like copying and renaming files trivial. Reading and writing XML has never been easier with XmlParsers and XmlBuilders. JDBC gets a fresh makeover. Breathe new life into Arrays, Maps, and Lists with a number of convenience methods. Even Ant gets turbo-charged. You can mix Groovy right into your build.xml, or replace it completely with code from an AntBuilder.
As an added bonus, this book also covers Grails. You'll be amazed at how quickly you can have a first-class web application up and running from ground zero. Grails includes everything you need in a single zip file, a web server (Jetty), a database (HSQLDB), Spring, Hibernate, Sitemesh, even Ant. If you're looking for Ajax support, Grails ships with leading libraries like Prototype, script.aculo.us, Yahoo UI, and Dojo. We cover everything from getting a basic application up and running to advanced features such as deploying to other webservers and databases, adding a Captcha, integrating with legacy EJB applications, and even adding a Google Map.
Java Message Service
The Java Message Service (JMS) provides a way for the components of a distributed application to talk asynchronously, or for welding together legacy enterprise systems. Think of it as application-to-application e-mail. Unlike COM, JMS uses one or more JMS servers to handle the messages on a store-and-forward basis, so that the loss of one or more components doesn't bring the whole distributed application to a halt.JMS consists of a set of messaging APIs that enable two types of messaging, publish-and-subscribe (one-to-many) and point-to-point (one-to-one). The highly lucid explanation of the ways in which these work makes the technical content a lot more approachable. In practice, however, Java Message Service is still a book for Java programmers who have some business programming experience. You need the background.
After a simple JMS demonstration in which you create a chat application using both messaging types, the authors dissect JMS message structures, explore both types in detail, and then move on to real-world considerations. These include reliability, security, deployment, and a rundown of various JMS server providers. The appendices list and describe the JMS API, and provide message reference material.
Considering the complexity and reach of the subject matter, Java Message Service does a great job of covering both theory and practice in a surprisingly efficient manner. It's easy to see why JMS has become so popular so quickly. Recommended. --Steve Patient, Amazon.co.uk
Agile Retrospectives: Making Good Teams Great
See how to mine the experience of your software development team continually throughout the life of the project. The tools and recipes in this book will help you uncover and solve hidden (and not-so-hidden) problems with your technology, your methodology, and those difficult "people" issues on your team.
Project retrospectives help teams examine what went right and what went wrong on a project. But traditionally, retrospectives (also known as "post-mortems") are only helpful at the end of the project--too late to help. You need agile retrospectives that are iterative and incremental. You need to accurately find and fix problems to help the team today.
Now, Derby and Larsen show you the tools, tricks, and tips you need to fix the problems you face on a software development project on an on-going basis. You'll see how to architect retrospectives in general, how to design them specifically for your team and organization, how to run them effectively, how to make the needed changes, and how to scale these techniques up. You'll learn how to deal with problems, and implement solutions effectively throughout the project--not just at the end.
With regular tune-ups, your team will hum like a precise, world-class orchestra.
Designing Web Interfaces: Principles and Patterns for Rich Interactions
With the recent advent of Ajax and the resurgence of Flash for developing web sites and applications, new patterns of interaction have emerged on the Web. In this book, Bill Scott provides insight on how to best take advantage of the power of these technologies for designing a great user experience through a series of best practices, summarized as eight key principles. Each principle and its nuances are illustrated in detail with real world examples and counter-examples from both inside and outside Yahoo! The design principles provide the rationale for how to apply a pattern. Design patterns provide a solution in context. The eight design principles are introduced as a set of principles focused on rich interaction, feedback and user data models. Benefits to reader: 1. Take-away the key principles for creating a rich experience on the web 2. Build a vocabulary around common patterns of interaction for a common language between engineering & design 3. Have numerous real-world examples to clearly understand the principles & patterns for future reference 4. Be able to apply the patterns & principles in real world design problems Includes a companion website: designingrichwebexperience.com
Learning UML 2.0
"Since its original introduction in 1997, the Unified Modeling Language has revolutionized software development. Every integrated software development environment in the world--open-source, standards-based, and proprietary--now supports UML and, more importantly, the model-driven approach to software development. This makes learning the newest UML standard, UML 2.0, critical for all software developers--and there isn't a better choice than this clear, step-by-step guide to learning the language."
--Richard Mark Soley, Chairman and CEO, OMG
If you're like most software developers, you're building systems that are increasingly complex. Whether you're creating a desktop application or an enterprise system, complexity is the big hairy monster you must manage.
The Unified Modeling Language (UML) helps you manage this complexity. Whether you're looking to use UML as a blueprint language, a sketch tool, or as a programming language, this book will give you the need-to-know information on how to apply UML to your project. While there are plenty of books available that describe UML, Learning UML 2.0 will show you how to use it. Topics covered include:
- Capturing your system's requirements in your model to help you ensure that your designs meet your users' needs
- Modeling the parts of your system and their relationships
- Modeling how the parts of your system work together to meet your system's requirements
- Modeling how your system moves into the real world, capturing how your system will be deployed
Engaging and accessible, this book shows you how to use UML to craft and communicate your project's design. Russ Miles and Kim Hamilton have written a pragmatic introduction to UML based on hard-earned practice, not theory. Regardless of the software process or methodology you use, this book is the one source you need to get up and running with UML 2.0. Additional information including exercises can be found at www.learninguml2.com.
Russ Miles is a software engineer for General Dynamics UK, where he works with Java and Distributed Systems, although his passion at the moment is Aspect Orientation and, in particular, AspectJ. Kim Hamilton is a senior software engineer at Northrop Grumman, where she's designed and implemented a variety of systems including web applications and distributed systems, with frequent detours into algorithms development.
Designing Web Navigation: Optimizing the User Experience
Thoroughly rewritten for today's web environment, this bestselling book offers a fresh look at a fundamental topic of web site development: navigation design. Amid all the changes to the Web in the past decade, and all the hype about Web 2.0 and various "rich" interactive technologies, the basic problems of creating a good web navigation system remain. Designing Web Navigation demonstrates that good navigation is not about technology-it's about the ways people find information, and how you guide them.
Ideal for beginning to intermediate web designers, managers, other non-designers, and web development pros looking for another perspective, Designing Web Navigation offers basic design principles, development techniques and practical advice, with real-world examples and essential concepts seamlessly folded in. How does your web site serve your business objectives? How does it meet a user's needs? You'll learn that navigation design touches most other aspects of web site development. This book:
- Provides the foundations of web navigation and offers a framework for navigation design
- Paints a broad picture of web navigation and basic human information behavior
- Demonstrates how navigation reflects brand and affects site credibility
- Helps you understand the problem you're trying to solve before you set out to design
- Thoroughly reviews the mechanisms and different types of navigation
- Explores "information scent" and "information shape"
- Explains "persuasive" architecture and other design concepts
- Covers special contexts, such as navigation design for web applications
- Includes an entire chapter on tagging
Programming Clojure (Pragmatic Programmers)
Clojure is a dynamic language for the Java Virtual Machine, with a compelling combination of features:
Clojure is elegant. Clojure's clean, careful design lets you write programs that get right to the essence of a problem, without a lot of clutter and ceremony.
Clojure is Lisp reloaded. Clojure has the power inherent in Lisp, but is not constrained by the history of Lisp.
Clojure is a functional language. Data structures are immutable, and functions tend to be side-effect free. This makes it easier to write correct programs, and to compose large programs from smaller ones.
Clojure is concurrent. Rather than error-prone locking, Clojure provides software transactional memory.
Clojure embraces Java. Calling from Clojure to Java is direct, and goes through no translation layer.
Clojure is fast. Wherever you need it, you can get the exact same performance that you could get from hand-written Java code.
Many other languages offer some of these features, but the combination of them all makes Clojure sparkle. Programming Clojure shows you why these features are so important, and how you can use Clojure to build powerful programs quickly.
Core JavaServer Faces (3rd Edition)
JavaServer Faces (JSF) is the standard Java EE technology for building web user interfaces. It provides a powerful framework for developing server-side applications, allowing you to cleanly separate visual presentation and application logic. JSF 2.0 is a major upgrade, which not only adds many useful features but also greatly simplifies the programming model by using annotations and “convention over configuration” for common tasks.
To help you quickly tap into the power of JSF 2.0, the third edition of Core JavaServer™ Faces has been completely updated to make optimum use of all the new features. The book includes
- Three totally new chapters on using Facelets tags for templating, building composite components, and developing Ajax applications
- Guidance on building robust applications with minimal hand coding and maximum productivity–without requiring any knowledge of servlets or other low-level “plumbing”
- A complete explanation of the basic building blocks–from using standard JSF tags, to working with data tables, and converting and validating input
- Coverage of advanced tasks, such as event handling, extending the JSF framework, and connecting to external services
- Solutions to a variety of common challenges, including notes on debugging and troubleshooting, in addition to implementation details and working code for features that are missing from JSF
- Proven solutions, hints, tips, and “how-tos” show you how to use JSF effectively in your development projects
Core JavaServer™ Faces, Third Edition, provides everything you need to master the powerful and time-saving features of JSF 2.0 and is the perfect guide for programmers developing Java EE 6 web apps on Glassfish or another Java EE 6-compliant application servers, as well as servlet runners such as Tomcat 6.
Release It!: Design and Deploy Production-Ready Software (Pragmatic Programmers)
Whether it's in Java, .NET, or Ruby on Rails, getting your application ready to ship is only half the battle. Did you design your system to survivef a sudden rush of visitors from Digg or Slashdot? Or an influx of real world customers from 100 different countries? Are you ready for a world filled with flakey networks, tangled databases, and impatient users?
If you're a developer and don't want to be on call for 3AM for the rest of your life, this book will help.
In Release It!, Michael T. Nygard shows you how to design and architect your application for the harsh realities it will face. You'll learn how to design your application for maximum uptime, performance, and return on investment.
Mike explains that many problems with systems today start with the design.
Enterprise JavaBeans 3.0 (5th Edition)
Thoroughly enhanced for the EJB 1.1 specification, Enterprise JavaBeans, 2nd Edition provides a great introduction to the world of server-side Java components. With plenty of material on EJB architecture and design, this new edition can serve as an authoritative resource for mastering today's bean standards.Besides a general introduction to EJBs, the new edition of this book excels at highlighting the differences between the EJB 1.0 and 1.1 standards. Sample code is provided for both versions. For deployment, EJB 1.1 now relies on XML to define all bean resources and dependencies. For every sample bean, the author provides the XML, as well as the old-style Java code for EJB 1.0. There's also plenty of coverage of the new reliance on JNDI (the Java directory service) in EJB 1.1 and other late-breaking Sun standards, such as combining EJBs with servlets and JSPs for delivering dynamic Web content.
This text is organized as a tutorial to the major types of EJBs with full coverage of entity beans (for accessing databases) and session beans (for managing "conversations" with particular clients). The author covers all the bases here with numerous diagrams describing the life cycle of beans and how they cooperate with today's application servers. As in the first edition, sample beans for a cruise ship booking application let you see actual EJB code in action. Helpful appendices list all EJB APIs and other useful information (such as a list of current EJB vendors).
In all, the revised edition of Enterprise JavaBeans shows off the considerable strengths of the new EJB 1.1 standard. Suitable for any working Java programmer or IT manager, the clear presentation of the strategies and techniques for successful component design help make this book a smart choice for successful development with EJBs. --Richard Dragan
Topics covered: Overview of Enterprise JavaBeans (EJBs) v. 1.1 and 1.0, distributed objects, Component Transaction Monitors (CTMs), application servers and EJBs, resource management, EJB server setup, entity beans, session beans and workflow, the JNDI naming service, the life cycle of beans, container-managed and bean-managed persistence for entity beans, stateful and stateless session beans, deploying beans in JAR files (EJB 1.1 and 1.0 conventions), XML deployment descriptors, transaction basics (ACID properties and JTS), EJB security, design strategies and performance tips for EJBs, Java 2 Enterprise Edition (J2EE) and EJBs, servlets and JSPs used with EJBs, sample beans, state and sequence diagrams for EJBs, and EJB API reference.
Java Power Tools
All true craftsmen need the best tools to do their finest work, and programmers are no different. Java Power Tools delivers 30 open source tools designed to improve the development practices of Java developers in any size team or organization. Each chapter includes a series of short articles about one particular tool -- whether it's for build systems, version control, or other aspects of the development process -- giving you the equivalent of 30 short reference books in one package.
No matter which development method your team chooses, whether it's Agile, RUP, XP, SCRUM, or one of many others available, Java Power Tools provides practical techniques and tools to help you optimize the process. The book discusses key Java development problem areas and best practices, and focuses on open source tools that can help increase productivity in each area of the development cycle, including:
- Build tools including Ant and Maven 2
- Version control tools such as CVS and Subversion, the two most prominent open source tools
- Quality metrics tools that measure different aspects of code quality, including CheckStyle, PMD, FindBugs and Jupiter
- Technical documentation tools that can help you generate good technical documentation without spending too much effort writing and maintaining it
- Unit Testing tools including JUnit 4, TestNG, and the open source coverage tool Cobertura
- Integration, Load and Performance Testing to integrate performance tests into unit tests, load-test your application, and automatically test web services, Swing interfaces and web interfaces
- Issue management tools including Bugzilla and Trac
- Continuous Integration tools such as Continuum, Cruise Control, LuntBuild and Hudson
Behind Closed Doors: Secrets of Great Management (Pragmatic Programmers)
Great management is difficult to see as it occurs. It's possible to see the results of great management, but it's not easy to see how managers achieve those results. Great management happens in one-on-one meetings and with other managers---all in private. It's hard to learn management by example when you can't see it.
You can learn to be a better manager---even a great manager---with this guide. You'll follow along as Sam, a manager just brought on board, learns the ropes and deals with his new team over the course of his first eight weeks on the job. From scheduling and managing resources to helping team members grow and prosper, you'll be there as Sam makes it happen. You'll find powerful tips covering:
- Delegating effectively
- Using feedback and goal-setting
- Developing influence
- Handling one-on-one meetings
- Coaching and mentoring
- Deciding what work to do---and what not to do
- ...and more.
Full of tips and practical advice on the most important aspects of management, this is one of those books that can make a lasting and immediate impact on your career.
Groovy in Action
"... a clear and detailed exposition of what is groovy about Groovy. I'm glad to have it on my bookshelf."--From the Foreword by James Gosling
Groovy, the brand-new language for the Java platform, brings to Java many of the features that have made Ruby popular. Groovy in Action is a comprehensive guide to Groovy programming, introducing Java developers to the new dynamic features that Groovy provides. To bring you Groovy in Action, Manning again went to the source by working with a team of expert authors including both members and the Manager of the Groovy Project team. The result is the true definitive guide to the new Groovy language.
Groovy in Action introduces Groovy by example, presenting lots of reusable code while explaining the underlying concepts. Java developers new to Groovy find a smooth transition into the dynamic programming world. Groovy experts gain a solid reference that challenges them to explore Groovy deeply and creatively.
Because Groovy is so new, most readers will be learning it from scratch. Groovy in Action quickly moves through the Groovy basics, including:
* Simple and collective Groovy data types
* Working with Closures and Groovy Control Structures
* Dynamic Object Orientation, Groovy style
Readers are presented with rich and detailed examples illustrating Groovy's enhancements to Java, including
* How to Work with Builders and the GDK
* Database programming with Groovy
Groovy in Action then demonstrates how to Integrate Groovy with XML, and provides,
* Tips and Tricks
* Unit Testing and Build Support
* Groovy on Windows
An additional bonus is a chapter dedicated to Grails, the Groovy Web Application Framework.
Ship it! A Practical Guide to Successful Software Projects
Ship It! is a collection of tips that show the tools and techniques a successful project team has to use, and how to use them well. You'll get quick, easy-to-follow advice on modern practices: which to use, and when they should be applied. This book avoids current fashion trends and marketing hype; instead, readers find page after page of solid advice, all tried and tested in the real world.
Aimed at beginning to intermediate programmers, Ship It! will show you:
- Which tools help, and which don't
- How to keep a project moving
- Approaches to scheduling that work
- How to build developers as well as product
- What's normal on a project, and what's not
- How to manage managers, end-users and sponsors
- Danger signs and how to fix them
Few of the ideas presented here are controversial or extreme; most experienced programmers will agree that this stuff works. Yet 50 to 70 percent of all project teams in the U.S. aren't able to use even these simple, well-accepted practices effectively. This book will help you get started.
Ship It! begins by introducing the common technical infrastructure that every project needs to get the job done. Readers can choose from a variety of recommended technologies according to their skills and budgets. The next sections outline the necessary steps to get software out the door reliably, using well-accepted, easy-to-adopt, best-of-breed practices that really work.
Finally, and most importantly, Ship It! presents common problems that teams face, then offers real-world advice on how to solve them.
Transcending CSS: The Fine Art of Web Design
As the Web evolves to incorporate new standards and the latest browsers offer new possibilities for creative design, the art of creating Web sites is also changing. Few Web designers are experiences programmers, and as a result, working with semantic markup and CSS can create roadblocks to achieving truly beautiful designs using all the resources available. Add to this the pressures of presenting exceptional design to clients and employers, without compromising efficient workflow, and the challenge deepens for those working in a fast-paced environment. As someone who understands these complexities firsthand, author and designer Andy Clarke offers visual designers a progressive approach to creating artistic, usable, and accessible sites using transcendent CSS.
In this groundbreaking book, you’ll discover how to implement highly original designs through visual demonstrations of the creative possibilities using markup and CSS. You’ll learn to use a new design workflow, build prototypes that work well for designers and all team members, use grids effectively, visualize markup, and discover every phase of the transcendent design process, from working with the latest browsers to incorporating CSS3 to collaborating with team members effectively.
Transcending CSS: The Fine Art of Web Design:
Uses a visual approach to help you learn coding techniques
Includes numerous examples of world-class Web sites, photography, and other inspirations that give designers ideas for visualizing their code
Offers early previews of technical advances in new Web browsers and of the emerging CSS3 specificationThe Zen of CSS Design: Visual Enlightenment for the Web
Proving once and for all that standards-compliant design does not equal dull design, this inspiring tome uses examples from the landmark CSS Zen Garden site as the foundation for discussions on how to create beautiful, progressive CSS-based Web sites. By using the Zen Garden sites as examples of how CSS design techniques and approaches can be applied to specific Web challenges, authors Dave Shea and Molly Holzschlag provide an eye-opening look at the range of design methods made possible by CSS (Cascading Style Sheets). By the time you've finished perusing the volume, you'll have a new understanding of the graphically rich, fully accessible sites that CSS design facilitates. In sections on design, layout, imagery, typography, effects, and themes, Dave and Molly take you through every phase of the design process--from striking a sensible balance between text and graphics to creating eye-popping special effects (no scripting required).
Pro Spring
Spring—the open source Java-based framework—allows you to build lighter, better performing applications. Written by Spring insiders Rob Harrop and Jan Machacek, Pro Spring is the only book endorsed by Rod Johnson, founder of the Spring Framework. At over 800 pages, this is by far the most comprehensive book available and thoroughly explores the power of Spring. You'll learn Spring basics and core topics, as well as share the authors' insights and real-world experience with remoting, mail integration, hibernate, and EJB.From the Foreword: "Rob’s enthusiasm for Spring—and technology in general—is infectious. He has a wide range of industry experience and a refreshingly practical, common sense approach to applying it. All those qualities come out in this book. It’s evident on nearly every page that it reflects in-depth experience with Spring and J2EE as a whole. Rob is not only an author and open source developer—he is an application developer, like his readers. I firmly believe that the best writing on software development comes out of experience in the trenches, so this is my kind of book.
If you’re new to Spring, this book will help you understand its core concepts and the background in areas such as transaction management and O/R mapping that underpins them. If you’re already using Spring, you will learn about features you haven’t yet seen and hopefully, gain a deeper understanding of those features you’re already using." —Rod Johnson, Founder of the Spring Framework.
VMware VI and vSphere SDK: Managing the VMware Infrastructure and vSphere
Drive Even More Value from Virtualization: Write VMware® Applications that Automate Virtual Infrastructure Management
Companies running VMware have already achieved enormous gains through virtualization. The next wave of benefits will come when they reduce the time and effort required to run and manage VMware platforms. The VMware Infrastructure Software Development Kit (VI SDK) includes application programming interfaces (APIs) that allow developers and administrators to do just that. Until now, there has been little documentation for the APIs. In VMware VI and vSphere SDK, software architect Steve Jin demystifies the entire VMware VI and new vSphere SDK and offers detailed, task-based coverage of using the APIs to manage VMware more efficiently and cost-effectively.
Jin walks you through using the VI SDK and cloud-computing vSphere SDK to manage ESX servers, ESX clusters, and VirtualCenter servers in any environment–no matter how complex. Drawing on his extensive expertise working with VMware strategic partners and enterprise customers, he places the VI SDK in practical context, presenting realistic samples and proven best practices for building robust, effective solutions. Jin demonstrates how to manage every facet of a VMware environment, including inventory, host systems, virtual machines (VMs), snapshots, VMotion, clusters, resource pools, networking, storage, data stores, events, alarms, users, security, licenses, and scheduled tasks. Coverage includes
- Understanding how the VI SDK fits into your VMware VI and Cloud Ready vSphere Environment
- Discovering the VI and vSphere SDK from the bottom up
- Using the author’s new VI Java API to write shorter, faster, and more maintainable code
- Managing VI and vSphere inventory and configurations
- Moving running VMs and storages across different physical platforms without disruption
- Optimizing system resources, hardening system securities, backing up VMs and other resources
- Leveraging events, alarms, and scheduled tasks to automate the system management
- Developing powerful applications that integrate multiple API features and run on top of or alongside VMware platforms
- Using the VI SDK to monitor performance
- Scripting with the VI SDK: building solutions with VI Perl, PowerShell, and Jython
- Avoiding the pitfalls that trip up VMware VI developers
- Integrating with and extending VMware platforms using VI SDK
This book is an indispensable resource for all VMware developers and administrators who want to get more done in less time; for hardware vendors who want to integrate their products with VMware; for ISV developers building new VMware applications; and for every professional and student seeking a deeper mastery of virtualization.
jQuery in Action
A good web development framework anticipates what you need to do and makes those tasks easier and more efficient; jQuery practically reads your mind. Developers of every stripe-hobbyists and professionals alike-fall in love with jQuery the minute they've reduced 20 lines of clunky JavaScript into three lines of elegant, readable code. This new, concise JavaScript library radically simplifies how you traverse HTML documents, handle events, perform animations, and add Ajax interactions to your web pages.
jQuery in Action, like jQuery itself, is a concise tool designed to make you a more efficient and effective web developer. In a short 300 pages, this book introduces you to the jQuery programming model and guides you through the major features and techniques you'll need to be productive immediately. The book anchors each new concept in the tasks you'll tackle in day-to-day web development and offers unique lab pages where you immediately put your jQuery knowledge to work.
There are dozens of JavaScript libraries available now, with major companies like Google, Yahoo and AOL open-sourcing their in-house tools. This book shows you how jQuery stacks up against other libraries and helps you navigate interaction with other tools and frameworks.
jQuery in Action offers a rich investigation of the up-and-coming jQuery library for client-side JavaScript. This book covers all major features and capabilities in a manner focused on getting the reader up and running with jQuery from the very first sections. Web Developers reading this book will gain a deep understanding of how to use jQuery to simplify their pages and lives, as well as learn the philosophy behind writing jQuery-enhanced pages.
Programming Groovy: Dynamic Productivity for the Java Developer (Pragmatic Programmers)
The strength of Java is no longer in the language itself; it's in the Java Platform (the JVM, JDK, and rich frameworks and libraries). But recently, the industry has turned to dynamic languages for increased productivity and speed to market.
Groovy is one of a new breed of dynamic languages that run on the Java platform. You can use these new languages on the JVM and intermix them with your existing Java code. You can leverage your Java investments while benefiting from advanced features including true Closures, Meta Programming, the ability to create internal DSLs, and a higher level of abstraction.
If you're an experienced Java developer, Programming Groovy will help you learn the necessary fundamentals of programming in Groovy. You'll see how to use Groovy to do advanced programming including using Meta Programming, Builders, Unit Testing with Mock objects, processing XML, working with Databases and creating your own Domain-Specific Languages (DSLs).
Grails: A Quick-Start Guide
Grails is a full stack web development framework that enables you to build complete web applications in a fraction of the time and with less code than other frameworks.
In Grails: A Quick-Start Guide, you'll see how to use Grails by iteratively building an unique, working application. By the time we're done, you'll have built and deployed a real, functioning website.
Along the way, we'll learn about domain classes, controllers, and GSP views. We'll see how Grails allows us to use powerful frameworks like Spring and Hibernate without even knowing it.
Using this hands-on, pragmatic approach, we'll explore topics such as AJAX in Grails, custom tags, and plugins. We'll dig into Grails' powerful view technology, Groovy Server Pages, and see how we can easily leverage the help given to us by scaffolding to create custom user interfaces faster than you would have thought possible.
With Grails, you can get a lot done with little effort. With this book, you'll get a lot done as well. It's time to bring the fun back into web programming. Get started with Grails today.
Spring Recipes: A Problem-Solution Approach, Second Edition
With over 3 Million users/developers, Spring Framework is the leading “out of the box” Java framework. Spring addresses and offers simple solutions for most aspects of your Java/Java EE application development, and guides you to use industry best practices to design and implement your applications.
The release of Spring Framework 3 has ushered in many improvements and new features. Spring Recipes: A Problem-Solution Approach, Second Edition continues upon the bestselling success of the previous edition but focuses on the latest Spring 3 features for building enterprise Java applications. This book provides elementary to advanced code recipes to account for the following, found in the new Spring 3:
- Spring fundamentals: Spring IoC container, Spring AOP/ AspectJ, and more
- Spring enterprise: Spring Java EE integration, Spring Integration, Spring Batch, jBPM with Spring, Spring Remoting, messaging, transactions, scaling using Terracotta and GridGrain, and more.
- Spring web: Spring MVC, Spring Web Flow 2, Spring Roo, other dynamic scripting, integration with popular Grails Framework (and Groovy), REST/web services, and more.
This book guides you step by step through topics using complete and real-world code examples. Instead of abstract descriptions on complex concepts, you will find live examples in this book. When you start a new project, you can consider copying the code and configuration files from this book, and then modifying them for your needs. This can save you a great deal of work over creating a project from scratch!
What you’ll learn
- How to use the IoC container and the Spring application context to best effect.
- Spring’s AOP support, both classic and new Spring AOP, integrating Spring with AspectJ, and load-time weaving.
- Simplifying data access with Spring (JDBC, Hibernate, and JPA) and managing transactions both programmatically and declaratively.
- Spring’s support for remoting technologies (RMI, Hessian, Burlap, and HTTP Invoker), EJB, JMS, JMX, email, batch, scheduling, and scripting languages.
- Integrating legacy systems with Spring, building highly concurrent, grid-ready applications using Gridgain and Terracotta Web Apps, and even creating cloud systems.
- Building modular services using OSGi with Spring DM and Spring Dynamic Modules and SpringSource dm Server.
- Delivering web applications with Spring Web Flow, Spring MVC, Spring Portals, Struts, JSF, DWR, the Grails framework, and more.
- Developing web services using Spring WS and REST; contract-last with XFire, and contractâ"first through Spring Web Services.
- Spring’s unit and integration testing support (on JUnit 3.8, JUnit 4, and TestNG).
- How to secure applications using Spring Security.
Who this book is for
This book is for Java developers who would like to rapidly gain hands-on experience with Java/Java EE development using the Spring framework. If you are already a developer using Spring in your projects, you can also use this book as a reference—you’ll find the code examples very useful.
Beginning Groovy and Grails: From Novice to Professional
Web frameworks are playing a major role in the creation of today's most compelling web applications, because they automate many of the tedious tasks, allowing developers to instead focus on providing users with creative and powerful features. Java developers have been particularly fortunate in this area, having been able to take advantage of Grails, an open source framework that supercharges productivity when building Java–driven web sites. Grails is based on Groovy, which is a very popular and growing dynamic scripting language for Java developers and was inspired by Python, Ruby, and Smalltalk.
Beginning Groovy and Grails is the first introductory book on the Groovy language and its primary web framework, Grails.
This book gets you started with Groovy and Grails and culminates in the example and possible application of some real–world projects. You follow along with the development of each project, implementing and running each application while learning new features along the way.
What you’ll learn
- Understand the fundamentals of the open source, dynamic Groovy scripting language and the Grails web framework.
- Capitalize upon Grails’ well–defined framework architecture to build web applications faster than ever before.
- Improve your web application with cutting–edge interface enhancements using Ajax.
- Use Grails’ object–relational mapping solution, GORM, to manage your data store more effectively than ever before.
- Take advantage of Groovy to create reporting services, implement batch processing, and create alternative client interfaces.
- Deploy and upgrade your Grails–driven applications with expertise and ease.
- Discover an alternative client in Groovy as well.
Who is this book for?
Java and web developers looking to learn and embrace the power and flexibility offered by the Grails framework and Groovy scripting language
About the Apress Beginning Series
The Beginning series from Apress is the right choice to get the information you need to land that crucial entry–level job. These books will teach you a standard and important technology from the ground up because they are explicitly designed to take you from “novice to professional.” You’ll start your journey by seeing what you need to know—but without needless theory and filler. You’ll build your skill set by learning how to put together real–world projects step by step. So whether your goal is your next career challenge or a new learning opportunity, the Beginning series from Apress will take you there—it is your trusted guide through unfamiliar territory!
Java Enterprise Best Practices
Java developers typically go through four "stages" in mastering Java. In the first stage, they learn the language itself. In the second stage, they study the APIs. In the third stage, they become proficient in the environment. It is in the fourth stage --"the expert stage"-- where things really get interesting, and Java Enterprise Best Practices is the tangible compendium of experience that developers need to breeze through this fourth and final stage of Enterprise Java mastery. Crammed with tips and tricks, Java Enterprise Best Practices distills years of solid experience from eleven experts in the J2EE environment into a practical, to-the-point guide to J2EE. Until Java Enterprise Best Practices, Java developers in the fourth stage of mastery relied on the advice of a loose-knit community of fellow developers, time-consuming online searches for examples or suggestions for the immediate problem they faced, and tedious trial-and-error. But Java has grown to include a huge number of APIs, classes, and methods. Now it is simply too large for even the most intrepid developer to know it all. The need for a written compendium of J2EE Best Practices has never been greater. Java Enterprise Best Practices focuses on the Java 2 Enterprise Edition (J2EE) APIs. The J2EE APIs include such alphabet soup acronyms as EJB, JDBC, RMI, XML, and JMX.JBoss at Work: A Practical Guide
Consisting of a number of well-known open source products, JBoss is more a family of interrelated services than a single monolithic application. But, as with any tool that's as feature-rich as JBoss, there are number of pitfalls and complexities, too.
Most developers struggle with the same issues when deploying J2EE applications on JBoss: they have trouble getting the many J2EE and JBoss deployment descriptors to work together; they have difficulty finding out how to get started; their projects don't have a packaging and deployment strategy that grows with the application; or, they find the Class Loaders confusing and don't know how to use them, which can cause problems.
JBoss at Work: A Practical Guide helps developers overcome these challenges. As you work through the book, you'll build a project using extensive code examples. You'll delve into all the major facets of J2EE application deployment on JBoss, including JSPs, Servlets, EJBs, JMS, JNDI, web services, JavaMail, JDBC, and Hibernate. With the help of this book, you'll:
- Implement a full J2EE application and deploy it on JBoss
- Discover how to use the latest features of JBoss 4 and J2EE 1.4, including J2EE-compliant web services
- Master J2EE application deployment on JBoss with EARs, WARs, and EJB JARs
- Understand the core J2EE deployment descriptors and how they integrate with JBoss-specific descriptors
- Base your security strategy on JAAS
Written for Java developers who want to use JBoss on their projects, the book covers the gamut of deploying J2EE technologies on JBoss, providing a brief survey of each subject aimed at the working professional with limited time.
If you're one of the legions of developers who have decided to give JBoss a try, then JBoss at Work: A Practical Guide is your next logical purchase. It'll show you in plain language how to use the fastest growing open source tool in the industry today. If you've worked with JBoss before, this book will get you up to speed on JBoss 4, JBoss WS (web services), and Hibernate 3.
Seam in Action
JBoss Seam is an exciting new application framework based on the Java EE platform that is used to build rich, web-based business applications. Seam is rapidly capturing the interest of Java enterprise developers because of its focus on simplicity, ease of use, transparent integration, and scalability.
Seam in Action offers a practical and in-depth look at JBoss Seam. The book puts Seam head-to-head with the complexities in the Java EE architecture. The author presents an unbiased view of Seam from outside the walls of RedHat/JBoss, focusing on such topics as Spring integration and deployment to alternative application servers to steer clear of vendor lock-in. By the end of the book, you should expect to not only gain a deep understanding of Seam, but also come away with the confidence to teach the material to others.
To start off, you will see a working Java EE-compliant application come together by the end of the second chapter. As you progress through the book, you will discover how Seam eliminates unnecessary layers and configurations, solves the most common JSF pain points, and establishes the missing link between JSF, EJB 3 and JavaBean components. The author also shows you how Seam opens doors for you to incorporate technologies you previously have not had time to learn, such as business processes and stateful page flows (jBPM), Ajax remoting, PDF generation, asynchronous tasks, and more.
All too often, developers spend a majority of their time integrating disparate technologies, manually tracking state, struggling to understand JSF, wrestling with Hibernate exceptions, and constantly redeploying applications, rather than on the logic pertaining to the business at hand. Seam in Action dives deep into thorough explanations of how Seam eliminates these non-core tasks by leveraging configuration by exception, Java 5 annotations, and aspect-oriented programming.
Beginning POJOs: Lightweight Java Web Development Using Plain Old Java Objects in Spring, Hibernate, and Tapestry
Beginning POJOs: From Novice to Professional introduces you to Open Source lightweight Web development using Plain Old Java Objects (POJO) and the tools and frameworks that enable this. Tier by tier, this book guides you through the construction of complex but lightweight enterprise Java-based Web applications centered around several major open source lightweight frameworks, including the use of Spring, Hibernate, Tapestry, and JBoss (including the new Lightweight JBoss Seam). Additional support comes from the most successful and prevalent open source tools: Eclipse and Ant, and the increasingly popular TestNG. This book is ideal if you’re new to open source and lightweight Java. You’ll learn how to build a complete enterprise Java-based web application from scratch, and how to integrate the different open source frameworks to achieve this goal. You’ll also learn techniques for rapidly developing such applications.JRuby Cookbook
If you're interested in JRuby, you probably don't need a turorial on Ruby, Rails, or Java -- you just need to know how to get things done. This Cookbook offers practical solutions for using the Java implementation of the Ruby language, with targeted recipes for deploying Rails web applications on Java servers, integrating JRuby code with Java technologies, developing JRuby desktop applications with Java toolkits, and more. Using numerous reusable code samples, JRuby Cookbook shows you how to:
- Install and update JRuby on Windows, Mac OS X, and Linux, and IDEs such as NetBeans and Eclipse
- Package and deploy Rails apps on Java Servlet containers and Java EE application servers, including JBoss, Tomcat, and GlassFish
- Integrate Ruby and Rails applications with popular Java EE technologies such as JMS, JMX, JPA, Spring, and Hibernate
- Develop desktop and client applications with cross-platform Java UI technologies and toolkits such as Swing, SWT, and Java 2D
- Maximize the flexibility of your testing and build environment, using both existing Java-based tools such as Ant and Maven and newer Ruby-based tools such as Rake, Raven, and Buildr
The JRuby interpreter combines Ruby's simplicity and ease of use with Java's extensive libraries and technologies, a potent blend that opens new possibilities for Ruby, Rails, and Java. This Cookbook helps you take full advantage of JRuby's potential.
"The JRuby Cookbook is an excellent book for any polyglot who is trying to bridge the gap between Java and Ruby. It provides solutions to specific problems developers face in both their development and testing environments, along with the applications they're building." -- Bob McWhirter, Research & Prototyping, Red Hat Middleware
Practical RichFaces
JBoss RichFaces is a rich JSF component library that helps developers quickly develop next–generation web applications. Practical RichFaces describes how to best take advantage of RichFaces, the integration of the Ajax4jsf and RichFaces libraries, to create a flexible and powerful programs. Assuming some JSF background, it shows you how you can radically reduce programming time and effort to create rich AJAX based applications.
What you’ll learn
- Quickly learn how to build Rich Internet Applications with out–of–the–box RichFaces components.
- Discover best strategies for implementing Ajax applications using RichFaces.
- Find out when best to use the two libraries.
- Create new skins for your app in no time.
- Create applications without needing to write any JavaScript code.
Who is this book for
Java developers with good JSF knowledge looking to build next–generation web applications using RichFaces, JSF users, Java programmers wishing to add Ajax to their existing programs, and old users of Ajax4jsf
About the Apress Practical Series
The Practical series from Apress is your best choice for getting the job done, period. From professional to expert, this series lets you apply project–motivated templates (or frameworks) step by step in a very direct, practical, and efficient manner toward current real–world projects that may be sitting on your desk. So whatever your career goal, Apress can be your trusted guide to take you where you want to go on your IT career empowerment path.
Practices of an Agile Developer: Working in the Real World (Pragmatic Bookshelf)
Want to be a better developer? This books collects the personal habits, ideas, and approaches of successful agile software developers and presents them in a series of short, easy-to-digest tips. This isn't academic fluff; follow these ideas and you'll show yourself, your teammates, and your managers real results. These are the proven and effective agile practices that will make you a better developer.
This book will help you improve five areas of your career:
- The Development Process
- What to Do While Coding
- Developer Attitudes
- Project and Team Management
- Iterative and Incremental Learning
These practices provide guidelines that will help you succeed in delivering and meeting your user's expectations, even if the domain is unfamiliar. You'll be able to keep normal project pressure from turning into disastrous stress while writing code, and see how to effectively coordinate mentors, team leads, and developers in harmony.
You can learn all this stuff the hard way, but this book can save you time and pain. Read it, and you'll be a better developer.
Design Patterns in Ruby
Praise for Design Patterns in Ruby
"Design Patterns in Ruby documents smart ways to resolve many problems that Ruby developers commonly encounter. Russ Olsen has done a great job of selecting classic patterns and augmenting these with newer patterns that have special relevance for Ruby. He clearly explains each idea, making a wealth of experience available to Ruby developers for their own daily work."
—Steve Metsker, Managing Consultant with Dominion Digital, Inc.
"This book provides a great demonstration of the key 'Gang of Four' design patterns without resorting to overly technical explanations. Written in a precise, yet almost informal style, this book covers enough ground that even those without prior exposure to design patterns will soon feel confident applying them using Ruby. Olsen has done a great job to make a book about a classically 'dry' subject into such an engaging and even occasionally humorous read."
—Peter Cooper
"This book renewed my interest in understanding patterns after a decade of good intentions. Russ picked the most useful patterns for Ruby and introduced them in a straightforward and logical manner, going beyond the GoF's patterns. This book has improved my use of Ruby, and encouraged me to blow off the dust covering the GoF book."
—Mike Stok
"Design Patterns in Ruby is a great way for programmers from statically typed objectoriented languages to learn how design patterns appear in a more dynamic, flexible language like Ruby."
—Rob Sanheim, Ruby Ninja, Relevance
Most design pattern books are based on C++ and Java. But Ruby is different—and the language's unique qualities make design patterns easier to implement and use. In this book, Russ Olsen demonstrates how to combine Ruby's power and elegance with patterns, and write more sophisticated, effective software with far fewer lines of code.
After reviewing the history, concepts, and goals of design patterns, Olsen offers a quick tour of the Ruby language—enough to allow any experienced software developer to immediately utilize patterns with Ruby. The book especially calls attention to Ruby features that simplify the use of patterns, including dynamic typing, code closures, and "mixins" for easier code reuse.
Fourteen of the classic "Gang of Four" patterns are considered from the Ruby point of view, explaining what problems each pattern solves, discussing whether traditional implementations make sense in the Ruby environment, and introducing Ruby-specific improvements. You'll discover opportunities to implement patterns in just one or two lines of code, instead of the endlessly repeated boilerplate that conventional languages often require.
Design Patterns in Ruby also identifies innovative new patterns that have emerged from the Ruby community. These include ways to create custom objects with metaprogramming, as well as the ambitious Rails-based "Convention Over Configuration" pattern, designed to help integrate entire applications and frameworks.
Engaging, practical, and accessible, Design Patterns in Ruby will help you build better software while making your Ruby programming experience more rewarding.
The Definitive Guide to Apache MyFaces and Facelets
The Definitive Guide to Apache MyFaces and Facelets is an ideal reference if youre looking to develop real–world applications with the open source lightweight Apache MyFaces and Dojo (the Ajax API). The book focuses less on theory and more on aspects like scalability, design, optimization, and configurability.
This book emphasizes meeting real–world requirements for performance and scalability. It includes lucid code samples that reflect the pattern being described. The “In the Trenches” sections in each chapter give you advice and recommendations based on actual experiences with each pattern. What’s more, the “Extreme Extensions” section at the end of each relevant chapter is dedicated to a “freestyle” expression of taking a particular pattern or set of patterns to the max. (This is a great way for you to learn because of the magnification effect.) This is also the first book to embrace the Dojo framework for Ajax (soon to be an Apache project).
The Definitive Guide to Grails, Second Edition
The rise of Ruby on Rails has signified a huge shift in how we build web applications today; it is a fantastic framework with a growing community. There is, however, space for another such framework that integrates seamlessly with Java. Thousands of companies have invested in Java, and these same companies are losing out on the benefits of a Rails–like framework. Enter Grails.
Grails is not just a Rails clone, it aims to provide a Rails–like environment that is more familiar to Java developers and that employs idioms that Java developers are comfortable using, making the adjustment in mentality to a dynamic framework less of a jump. The concepts within Grails, like interceptors, tag libs, and Groovy Server Pages (GSP), make those in the Java community feel right at home.
Grails’ foundation is on solid open source technologies such as Spring, Hibernate, and SiteMesh, which gives it even more potential in the Java space: Spring provides powerful inversion of control and MVC, Hibernate brings a stable, mature object relational mapping technology with the ability to integrate with legacy systems, and SiteMesh handles flexible layout control and page decoration.
Grails complements these with additional features that take advantage of the coding–by–convention paradigm such as dynamic tag libraries, Grails object relational mapping, Groovy Server Pages, and scaffolding.
Graeme Rocher, Grails lead and founder, and Jeff Brown bring you completely up–to–date with their authoritative and fully comprehensive guide to the Grails framework. You’ll get to know all the core features, services, and Grails extensions via plug–ins, and understand the roles that Groovy and Grails are playing in the changing Web.
What you’ll learn
- Discover how the Web is changing and the role the Groovy language and its Rails framework plays.
- Get to know the Grails Project and its domains, services, filters, controllers, views, testing, and plug–ins.
- Experience the availability of plug–ins for Rich Client and Ajax, web services, performance/utilities, scheduling, security, functionality, and even Persistence.
- See how Grails works with other frameworks like Spring, Wicket, Hibernate, and more.
- Create custom plug–ins in Grails.
Who is this book for?
This book is for everyone who is looking for a more agile approach to web development with a dynamic scripting language such as Groovy. This includes a large number of Java developers who have been enticed by the productivity gains seen with frameworks such as Ruby on Rails, JRuby on Rails, etc. The Web and its environment is a perfect fit for easily adaptable and concise languages such as Groovy and Ruby, and there is huge interest from the developer community in general to embrace these languages.
Programming Ruby: The Pragmatic Programmers' Guide, Second Edition
Ruby is an increasingly popular, fully object-oriented dynamic programming language, hailed by many practitioners as the finest and most useful language available today. When Ruby first burst onto the scene in the Western world, the Pragmatic Programmers were there with the definitive reference manual, Programming Ruby: The Pragmatic Programmer's Guide.Now in its Second Edition, author Dave Thomas has expanded the famous Pickaxe book with over 200 pages of new content, covering all the new and improved language features of Ruby 1.8 and standard library modules. The Pickaxe contains four major sections: An acclaimed tutorial on using Ruby. The definitive reference to the language. Complete documentation on all built-in classes, modules, and methods Complete descriptions of all 98 standard libraries.
If you enjoyed the First Edition, you'll appreciate the new and expanded content, including: enhanced coverage of installation, packaging, documenting Ruby source code, threading and synchronization, and enhancing Ruby's capabilities using C-language extensions. Programming for the world-wide web is easy in Ruby, with new chapters on XML/RPC, SOAP, distributed Ruby, templating systems and other web services. There's even a new chapter on unit testing.
This is the definitive reference manual for Ruby, including a description of all the standard library modules, a complete reference to all built-in classes and modules (including more than 250 significant changes since the First Edition). Coverage of other features has grown tremendously, including details on how to harness the sophisticated capabilities of irb, so you can dynamically examine and experiment with your running code. "Ruby is a wonderfully powerful and useful language, and whenever I'm working with it this book is at my side" --Martin Fowler, Chief Scientist, ThoughtWorks
J2EE Web Services: XML SOAP WSDL UDDI WS-I JAX-RPC JAXR SAAJ JAXP
Web Services is the latest trend to hit the software industry. It promises to promote interoperability among disparate applications; i.e., applications written in different languages and running on diverse platforms. This book covers Web services protocols SOAP, WSDL, UDDI and the J2EE APIs that are used with these protocols including: JAX-RPC, JAXM, JWSDL, and JAXR. The author explains in detail how to use these Java APIs with the J2EE platform and also provides detailed information on security issues and interoperability between J2EE platforms and .NET. The book also includes a primer on XML, XSD and JAXP (the Java XML API), which is necessary basis for understanding how to process SOAP messages.Google Web Toolkit Solutions: More Cool & Useful Stuff
Cu>
Google Web Toolkit (GWT) is an open source Java development framework for building Ajax-enabled web applications. Instead of the hodgepodge of technologies that developers typically use for Ajax–JavaScript, HTML, CSS, and XMLHttpRequest–GWT lets developers implement rich client applications with pure Java, using familiar idioms from the AWT, Swing, and SWT. GWT goes beyond most Ajax frameworks by making it easy to build desktop-like applications that run in the ubiquitous browser, where the richness of the user interface is limited only by the developer’s imagination.
This book focuses on the more advanced aspects of GWT that you need to implement real-world applications with rich user interfaces but without the heavy lifting of JavaScript and other Ajax-related technologies. Each solution in this practical, hands-on book is more than a recipe. The sample programs are carefully explained in detail to help you quickly master advanced GWT techniques, such as implementing drag-and-drop, integrating JavaScript libraries, and using advanced event handling methodologies.
Solutions covered include
• Building custom GWT widgets, including both high-level composites and low-level components
• Implementing a viewport class that includes iPhone-style automated scrolling
• Integrating web services with GWT applications
• Incorporating the Script.aculo.us JavaScript framework into GWT applications
• Combining Hibernate and GWT to implement database-backed web applications
• Extending the GWT PopupPanel class to implement a draggable and resizable window
• Creating a drag-and-drop module, complete with drag sources and drop targets
• Deploying GWT applications to an external server
• Dynamically resizing flex tables
• Using GWT widgets in legacy applications developed with other frameworks, such as Struts and JavaServer Faces
Complete Sample Code Available at www.coolandusefulgwt.com
All of the code used in this book has been tested, both in hosted and web modes, and in an external version of Tomcat (version 5.5.17), under Windows, Linux, and Mac OS X. For Windows and Linux, we used 1.4.60, and for the Mac we used 1.4.61. NOTE: There are three separate versions of the code. Please download the correct JAR file for the operating system you are using.
Foreword xiii
Preface xvi
Acknowledgments xviii
About the Authors xix
Solution 1: GWT Fundamentals and Beyond 1
Solution 2: JavaScript Integration 53
Solution 3: Custom Widget Implementation 71
Solution 4: Viewports and Maps 103
Solution 5: Access to Online Web Services 133
Solution 6: Drag and Drop 167
Solution 7: Simple Windows 199
Solution 8: Flex Tables 237
Solution 9: File Uploads 283
Solution 10: Hibernate Integration 303
Solution 11: Deployment to an External Server 325
Solution 12: GWT and Legacy Code 343
Index 371
JavaServer Faces 2.0, The Complete Reference
The Definitive Guide to JavaServer Faces 2.0
Fully revised and updated for all of the changes in JavaServer Faces (JSF) 2.0, this comprehensive volume covers every aspect of the official standard Web development architecture for JavaEE. Inside this authoritative resource, the co-spec lead for JSF at Sun Microsystems shows you how to create dynamic, cross-browser Web applications that deliver a world-class user experience while preserving a high level of code quality and maintainability.
JavaServer Faces 2.0: The Complete Reference features an integrated sample application to use as a model for your own JSF applications, with code available online. The book explains all JSF features, including the request processing lifecycle, managed beans, page navigation, component development, Ajax, validation, internationalization, and security. Expert Group Insights throughout the book offer insider information on the design of JSF.
- Set up a development environment and build a JSF application
- Understand the JSF request processing lifecycle
- Use the Facelets View Declaration Language, managed beans, and the JSF expression language (EL)
- Define page flow with the JSF Navigation Model, including the new "Implicit Navigation" feature
- Work with the user interface component model and the JSF event model, including support for bookmarkable pages and the POST, REDIRECT, GET pattern
- Use the new JSR-303 Bean Validation standard for model data validation
- Build Ajax-enabled custom UI components
Extend JSF with custom non-UI components - Manage security, accessibility, internationalization, and localization
- Learn how to work with JSF and Portlets from the JSF Team Leader at Liferay, the leading Java Portal vendor
Ed Burns is a senior staff engineer at Sun Microsystems and is the co-specification lead for JavaServer Faces. He is the co-author of JavaServer Faces: The Complete Reference and author of Secrets of the Rock Star Programmers.
Chris Schalk is a developer advocate and works to promote Google's APIs and technologies. He is currently engaging the international Web development community with the new Google App Engine and OpenSocial APIs.
Neil Griffin is committer and JSF Team Lead for Liferay Portal and the co-founder of The PortletFaces Project.
Ready-to-use code at www.mhprofessonal.com/computingdownload
Beginning Groovy and Grails: From Novice to Professional (Beginning from Novice to Professional)
Web frameworks are playing a major role in the creation of today's most compelling web applications, because they automate many of the tedious tasks, allowing developers to instead focus on providing users with creative and powerful features. Java developers have been particularly fortunate in this area, having been able to take advantage of Grails, an open source framework that supercharges productivity when building Java–driven web sites. Grails is based on Groovy, which is a very popular and growing dynamic scripting language for Java developers and was inspired by Python, Ruby, and Smalltalk.
Beginning Groovy and Grails is the first introductory book on the Groovy language and its primary web framework, Grails.
This book gets you started with Groovy and Grails and culminates in the example and possible application of some real–world projects. You follow along with the development of each project, implementing and running each application while learning new features along the way.
What you’ll learn
- Understand the fundamentals of the open source, dynamic Groovy scripting language and the Grails web framework.
- Capitalize upon Grails’ well–defined framework architecture to build web applications faster than ever before.
- Improve your web application with cutting–edge interface enhancements using Ajax.
- Use Grails’ object–relational mapping solution, GORM, to manage your data store more effectively than ever before.
- Take advantage of Groovy to create reporting services, implement batch processing, and create alternative client interfaces.
- Deploy and upgrade your Grails–driven applications with expertise and ease.
- Discover an alternative client in Groovy as well.
Who is this book for?
Java and web developers looking to learn and embrace the power and flexibility offered by the Grails framework and Groovy scripting language
About the Apress Beginning Series
The Beginning series from Apress is the right choice to get the information you need to land that crucial entry–level job. These books will teach you a standard and important technology from the ground up because they are explicitly designed to take you from “novice to professional.” You’ll start your journey by seeing what you need to know—but without needless theory and filler. You’ll build your skill set by learning how to put together real–world projects step by step. So whether your goal is your next career challenge or a new learning opportunity, the Beginning series from Apress will take you there—it is your trusted guide through unfamiliar territory!
Professional Ajax, 2nd Edition (Programmer to Programmer)
Professional Ajax 2nd Edition provides a developer-level tutorial of Ajax techniques, patterns, and use cases. The book begins by exploring the roots of Ajax, covering how the evolution of the web and new technologies directly led to the development of Ajax techniques. A detailed discussion of how frames, JavaScript, cookies, XML, and XMLHttp requests (XHR) related to Ajax is included. After this introduction, the book moves on to cover the implementation of specific Ajax techniques. Request brokers such as hidden frames, dynamic iframes, and XHR are compared and contrasted, explaining when one method should be used over another. To make this discussion clearer, a brief overview of HTTP requests and responses is included.Once a basic understanding of the various request types is discussed, the book moves on to provide in-depth examples of how and when to use Ajax in a web site or web application. Different data transmission formats, including plain text, HTML, XML, and JSON are discussed for their advantages and disadvantages. Also included is a discussion on web services and how they may be used to perform Ajax techniques. Next, more complex topics are covered. A chapter introducing a request management framework explores how to manage all of the requests inside of an Ajax application. Ajax debugging techniques are also discussed.
The last part of the book walks through the creation of two full-fledged Ajax web applications. The first, FooReader.NET, is an Ajax-powered RSS reader. The second, called AjaxMail, is an Ajax-enabled email system. Both of these applications incorporate many of the techniques discussed throughout the book.
Professional Ajax 2nd edition is written for Web application developers looking to enhance the usability of their web sites and web applications and intermediate JavaScript developers looking to further understand the language. Readers should have familiarity with XML, XSLT, Web Services, PHP or C#, HTML, CSS. This book is not aimed at beginners without a basic understanding of the aforementioned technologies. Also, a good understanding of JavaScript is vitally important to understanding this book. Those readers without such knowledge should instead refer to books such as Beginning JavaScript, Second Edition (Wrox, 2004, ISBN: 978-0-7645-5587-9) and Professional JavaScript for Web Developers (Wrox, 2005, ISBN: 978-0-7645-7908-0).
Professional Ajax 2nd edition adds nearly 200 pages of new and expanded coverage compared to the first edition. Some of the new topics covered here include:
- Ajax Libraries including the Yahoo! Connection Manager, Prototype, and jQuery
- Request Management with Priority Queues and the RequestManager Object
- Comet push-based web systems and HTTP streaming
- Maps and Mashups with Geocoding, Google Maps API and Yahoo! Maps API
- Ajax Debugging with FireBug and Microsoft Fiddler
ASP.NET AJAX Extensions (formerly code-named "Atlas")
And of course the Second Edition retains and updates the core first edition content including:
- the range of request brokers (including the hidden frame technique, iframes, and XMLHttp) and explains when one should be used over another
- different Ajax techniques and patterns for executing client-server communication
- Ajax patterns including predictive fetch, page preloading, submission throttling, incremental field and form validation, periodic refresh, multi-stage download and more
- Syndication with RSS, Atom, and XParser
- JSON and creating an autosuggest textbox example
- web site widgets for a news ticker, weather information, web search, and site search
- Ajax Frameworks JSpan, DWR, and Ajax.NET Professional
- A Web-based RSS/Atom aggregator case study
- An AjaxMail case study
This book is also available as part of the 4-book JavaScript and Ajax Wrox Box (ISBN: 0470227818). This 4-book set includes:
- Professional JavaScript for Web Developers (ISBN: 0764579088)
- Professional Ajax 2nd edition (ISBN: 0470109491)
- Professional Web 2.0 Programming (ISBN: 0470087889)
- Professional Rich Internet Applications: Ajax and Beyond (ISBN: 0470082801)
Hiring The Best Knowledge Workers, Techies & Nerds: The Secrets & Science Of Hiring Technical People
Good technical people are the foundation on which successful high technology organizations are built. Establishing a good process for hiring such workers is essential. Unfortunately, the generic methods so often used for hiring skill-based staff, who can apply standardized methods to almost any situation, are of little use to those charged with the task of hiring technical people.Unlike skill-based workers, technical people typically do not have access to cookie-cutter solutions to their problems. They need to adapt to any situation that arises, using their knowledge in new and creative ways to solve the problem at hand. As a result, one developer, tester, or technical manager is not interchangeable with another. This makes hiring technical people one of the most critical and difficult processes a technical manager can undertake.
Hiring the Best Knowledge Workers, Techies & Nerds: The Secrets & Science of Hiring Technical People takes the guesswork out of hiring and diminishes the risk of costly hiring mistakes. With the aid of step-by-step descriptions and detailed examples, you’ll learn how to
* write a concise, targeted job description
* source candidates
* develop ads for mixed media
* review résumés quickly to determine Yes, No, or Maybe candidates
* develop intelligent, nondiscriminatory, interview techniques
* create fool-proof phone-screens
* check references with a view to reading between the lines
* extend an offer that will attract a win-win acceptance or tender a gentle-but-decisive rejection
* and more
You, your team, and your organization will live with the long-term consequences of your hiring decision. Investing time in developing a hiring strategy will shorten your decision time and the ramp-up time needed for each new hire.