Gradle is the next step in JVM-based build tools. It draws on lessons learned from established build tools like Ant and Maven, incorporating and improving upon their best ideas, like full flexibility and convention over configuration. In Gradle, problem domains are declaratively modeled using a powerful Groovy DSL instead of cumbersome XML. As a result, builds are far more expressive, extensible, and testable.
Gradle in Action is a comprehensive guide to end-to-end project automation with Gradle. Starting with the basics, this practical, easy-to-read book discusses how to build a full-fledged, real-world project. Along the way, it touches on advanced topics like testing, continuous integration, and monitoring code quality. It also covers tasks like setting up target environments and deploying software.
Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.
Totally revised for Spring 3.0, this book is a hands-on guide to the Spring Framework. It covers the latest features, tools, and practices including Spring MVC, REST, Security, Web Flow, and more. Following short code snippets and an ongoing example developed throughout the book, you'll learn how to build simple and efficient J2EE applications.About the Technology
Spring Framework is required knowledge for Java developers, and Spring 3.0 introduces powerful new features like SpEL, the Spring Expression Language, new annotations for the IoC container, and much-needed support for REST. Whether you're just discovering Spring or you want to absorb the new 3.0 features, there's no better way to master Spring than this book.About the Book
Spring in Action, Third Edition continues the practical, hands-on style of the previous bestselling editions. Author Craig Walls has a special knack for crisp and entertaining examples that zoom in on the features and techniques you really need. This edition highlights the most important aspects of Spring 3.0 including REST, remote services, messaging, Security, MVC, Web Flow, and more.
Purchase of the print book comes with an offer of a free PDF, ePub, and Kindle eBook from Manning. Also available is all code from the book.What's Inside
- Using annotations to reduce configuration
- Working with RESTful resources
- Spring Expression Language (SpEL)
- Security, Web Flow, and more
Nearly 100,000 developers have used this book to learn Spring!Table of Contents
- Springing into action
- Wiring beans
- Minimizing XML configuration in Spring
- Aspect-oriented Spring
- Hitting the database
- Managing transactions
- Building web applications with Spring MVC
- Working with Spring Web Flow
- Securing Spring
- Working with remote services
- Giving Spring some REST
- Messaging in Spring
- Managing Spring beans with JMX
- Odds and ends
PART 1 CORE SPRING
PART 2 SPRING APPLICATION ESSENTIALS
PART 3 INTEGRATING SPRING
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.
"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."
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."
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."
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."
"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."
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."
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
Web services have been used for many years. In this time, developers and architects have encountered a number of recurring design challenges related to their usage, and have learned that certain service design approaches work better than others to solve certain problems.
In Service Design Patterns, Rob Daigneau codifies proven design solutions for web services that follow the REST architectural style or leverage the SOAP/WSDL specifications. This catalogue identifies the fundamental topics in web service design and lists the common design patterns for each topic. All patterns identify the context in which they may be used, explain the constituent design elements, and explore the relative strengths and trade-offs. Code examples are provided to help you better understand how the patterns work but are kept general so that you can see how the solutions may be applied to disparate technologies that will inevitably change in the years to come.
This book will help readers answer the following questions:
- How do you create a web service API, what are the common API styles, and when should a particular style be used?
- How can clients and web services communicate, and what are the foundations for creating complex conversations in which multiple parties exchange data over extended periods of time?
- What are the options for implementing web service logic, and when should a particular approach be used?
- How can clients become less coupled to the underlying systems used by a service?
- How can information about a web service be discovered?
- How can generic functions like authentication, validation, caching, and logging be supported on the client or service?
- What changes to a service cause clients to break?
- What are the common ways to version a service? How can web services be designed to support the continuing evolution of business logic without forcing clients to constantly upgrade?
This book is an invaluable resource for enterprise architects, solution architects, and developers who use web services to create enterprise IT applications, commercial or open source products, and Software as a Service (SaaS) products that leverage emerging Cloud platforms.
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.
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.
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.
Table of Contents
- Introduction to Spring
- Advanced Spring IoC Container
- Spring AOP and AspectJ Support
- Scripting in Spring
- Spring Security
- Integrating Spring with Other Web Frameworks
- Spring Web Flow
- Spring @MVC
- Spring RESTSpring and Flex
- Spring Roo
- Spring Testing
- Spring Portlet MVC Framework
- Data Access
- Transaction Management in Spring
- EJB, Spring Remoting, and Web Services
- Spring in the Enterprise
- Spring Integration
- Spring Batch
- Spring on the Grid
- jBPM and Spring
- OSGi and Spring
"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.
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.
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.
Purchase of the print book comes with an offer of a free PDF eBook from Manning. Also available is all code from the book.
Why don't typical enterprise projects go as smoothly as projects you develop for the Web? Does the REST architectural style really present a viable alternative for building distributed systems and enterprise-class applications?
In this insightful book, three SOA experts provide a down-to-earth explanation of REST and demonstrate how you can develop simple and elegant distributed hypermedia systems by applying the Web's guiding principles to common enterprise computing problems. You'll learn techniques for implementing specific Web technologies and patterns to solve the needs of a typical company as it grows from modest beginnings to become a global enterprise.
- Learn basic Web techniques for application integration
- Use HTTP and the Web’s infrastructure to build scalable, fault-tolerant enterprise applications
- Discover the Create, Read, Update, Delete (CRUD) pattern for manipulating resources
- Build RESTful services that use hypermedia to model state transitions and describe business protocols
- Learn how to make Web-based solutions secure and interoperable
- Extend integration patterns for event-driven computing with the Atom Syndication Format and implement multi-party interactions in AtomPub
- Understand how the Semantic Web will impact systems design
Continuous Integration: Improving Software Quality and Reducing Risk (Addison-Wesley Signature Series)
This is the eBook version of the printed book.
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
Streamline software development with Jenkins, the popular Java-based open source tool that has revolutionized the way teams think about Continuous Integration (CI). This complete guide shows you how to automate your build, integration, release, and deployment processes with Jenkins—and demonstrates how CI can save you time, money, and many headaches.
Ideal for developers, software architects, and project managers, Jenkins: The Definitive Guide is both a CI tutorial and a comprehensive Jenkins reference. Through its wealth of best practices and real-world tips, you'll discover how easy it is to set up a CI service with Jenkins.
- Learn how to install, configure, and secure your Jenkins server
- Organize and monitor general-purpose build jobs
- Integrate automated tests to verify builds, and set up code quality reporting
- Establish effective team notification strategies and techniques
- Configure build pipelines, parameterized jobs, matrix builds, and other advanced jobs
- Manage a farm of Jenkins servers to run distributed builds
- Implement automated deployment and continuous delivery
When Lucene first hit the scene five years ago, it was nothing short of amazing. By using this open-source, highly scalable, super-fast search engine, developers could integrate search into applications quickly and efficiently. A lot has changed since then-search has grown from a "nice-to-have" feature into an indispensable part of most enterprise applications. Lucene now powers search in diverse companies including Akamai, Netflix, LinkedIn, Technorati, HotJobs, Epiphany, FedEx, Mayo Clinic, MIT, New Scientist Magazine, and many others.
Some things remain the same, though. Lucene still delivers high-performance search features in a disarmingly easy-to-use API. Due to its vibrant and diverse open-source community of developers and users, Lucene is relentlessly improving, with evolutions to APIs, significant new features such as payloads, and a huge increase (as much as 8x) in indexing speed with Lucene 2.3.
And with clear writing, reusable examples, and unmatched advice on best practices, Lucene in Action, Second Edition is still the definitive guide to developing with Lucene.
Purchase of the print book comes with an offer of a free PDF, ePub, and Kindle eBook from Manning. Also available is all code from the book.
Grails is a full stack framework which aims to greatly simplify the task of building serious web applications for the JVM. 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 2 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 Grails framework play
- 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 this book is 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.
Table of Contents
- The Essence of Grails
- Getting Started with Grails 2
- Understanding Domain Classes
- Understanding Controllers
- Understanding Views
- Mapping URLs
- Dependency Management
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
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).
Java Application Architecture: Modularity Patterns with Examples Using OSGi (Robert C. Martin Series)“I’m dancing! By god I’m dancing on the walls. I’m dancing on the ceiling. I’m ecstatic. I’m overjoyed. I’m really, really pleased.”
–From the Foreword by Robert C. Martin (a.k.a. Uncle Bob)
This isn’t the first book on Java application architecture. No doubt it won’t be the last. But rest assured, this title is different. The way we develop Java applications is about to change, and this title explores the new way of Java application architecture.
Over the past several years, module frameworks have been gaining traction on the Java platform, and upcoming versions of Java will include a module system that allows you to leverage the power of modularity to build more resilient and flexible software systems. Modularity isn’t a new concept. But modularity will change the way we develop Java applications, and you’ll only be able to realize the benefits if you understand how to design more modular software systems.
Java Application Architecture will help you
- Design modular software that is extensible, reusable, maintainable, and adaptable
- Design modular software today, in anticipation of future platform support for modularity
- Break large software systems into a flexible composite of collaborating modules
- Understand where to place your architectural focus
- Migrate large-scale monolithic applications to applications with a modular architecture
- Articulate the advantages of modular software to your team
Java Application Architecture lays the foundation you’ll need to incorporate modular design thinking into your development initiatives. Before it walks you through eighteen patterns that will help you architect modular software, it lays a solid foundation that shows you why modularity is a critical weapon in your arsenal of design tools. Throughout, you’ll find examples that illustrate the concepts. By designing modular applications today, you are positioning yourself for the platform and architecture of tomorrow. That’s why Uncle Bob is dancing.
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 codeOffers early previews of technical advances in new Web browsers and of the emerging CSS3 specification
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.
Java Enterprise Best Practices gives developers the unvarnished, expert-tested advice that the man pages don't provide--what areas of the APIs should be used frequently (and which are better avoided); elegant solutions to problems you face that other developers have already discovered; what things you should always do, what things you should consider doing, and what things you should never do--even if the documentation says it's ok.
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.
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
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.
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 youre already using.”
—Rod Johnson, Founder of the Spring Framework
For web developers used to wrestling with Java and XML, Grails is a breath of fresh air. Developers are instantly productive, picking up all the benefits of the Ruby-based Rails framework without giving up any of the power of Java.
Grails in Action is a comprehensive look at Grails for Java developers. It covers the nuts and bolts of the core Grails components and is jam-packed with tutorials, techniques, and insights from the trenches.
The book starts with an overview of Grails and how it can help you get your web dev mojo back. Then it walks readers through a Twitter-style social networking app-built in Grails, of course-where they implement high-interest features like mashups, AJAX/JSON, animation effects, full text search, rounded corners, and lots of visual goodness. The book also covers using Grails with existing Java technology, like Spring, Hibernate, and EJBs.
Purchase of the print book comes with an offer of a free PDF, ePub, and Kindle eBook from Manning. Also available is all code from the book.
Beginning POJOs: Lightweight Java Web Development Using Plain Old Java Objects in Spring, Hibernate, and Tapestry
Beginning POJOs introduces you to open source lightweight web development using Plain Old Java Objects (POJOs) 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. Such applications are centered around several major open source lightweight frameworks, including 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.
NOTE: The source code files to accompany this book are now hosted at https://github.com/bsbodden/techconf.
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.
Professional Ajax 2nd edition adds nearly 200 pages of new and expanded coverage compared to the first edition.
Presentation Patterns is the first book on presentations that categorizes and organizes the building blocks (or patterns) that you’ll need to communicate effectively using presentation tools like Keynote and PowerPoint.
Patterns are like the lower-level steps found inside recipes; they are the techniques you must master to be considered a master chef or master presenter. You can use the patterns in this book to construct your own recipes for different contexts, such as business meetings, technical demonstrations, scientific expositions, and keynotes, just to name a few.
Although there are no such things as antirecipes, this book shows you lots of antipatterns—things you should avoid doing in presentations. Modern presentation tools often encourage ineffective presentation techniques, but this book shows you how to avoid them.
Each pattern is introduced with a memorable name, a definition, and a brief explanation of motivation. Readers learn where the pattern applies, the consequences of applying it, and how to apply it. The authors also identify critical antipatterns: clichés, fallacies, and design mistakes that cause presentations to disappoint. These problems are easy to avoid—once you know how.
Presentation Patterns will help you
- Plan what you’ll say, who you’ll say it to, how long you’ll talk, and where you’ll present
- Perfectly calibrate your presentation to your audience
- Use the storyteller’s “narrative arc” to full advantage
- Strengthen your credibility—and avoid mistakes that hurt it
- Hone your message before you ever touch presentation software
- Incorporate visuals that support your message instead of hindering it
- Create highly effective “infodecks” that work when you’re not able to deliver a talk in person
- Construct slides that really communicate and avoid “Ant Fonts,” “Floodmarks,” “Alienating Artifacts,” and other errors
- Master 13 powerful techniques for delivering your presentation with power, authority, and clarity
Whether you use this book as a handy reference or read it from start to finish, it will be a revelation: an entirely new language for systematically planning, creating, and delivering more powerful presentations. You’ll quickly find it indispensable—no matter what you’re presenting, who your audiences are, or what message you’re driving home.
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.
HTML5 and CSS3 for the Real World is ideal for any web designer or developer who wants to start using the latest generation of web technologies in their everyday work.
This book will teach you how to:
- understand the new semantic markup available in HTML5
- use CSS3 to make sites beautiful without sacrificing clean markup or resorting to complex workarounds
- employ native HTML5 video and audio in your pages
- use web fonts to enrich a site's typography
- make web applications accessible using WAI-ARIA
- make the most of the new HTML form elements.
It also features:
- details on all the new HTML5 and CSS3 elements and features
- information on the current level of browser support
- advice for creating great experiences for all users thanks to progressive enhancement.
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).
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."
"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."
" 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.
- Write the test before you write the code
- Manage the lifecycle of your objects fastidiously
- Build only what you need now, not what you might need later
- Apply ancient philosophies to software development
- Question authority, rather than blindly adhere to standards
- Make hard things easier and impossible things possible through meta-programming
- Be sure all code within a method is at the same level of abstraction
- Pick the right editor and assemble the best tools for the job
This isn't theory, but the fruits of Ford's real-world experience as an Application Architect at the global IT consultancy ThoughtWorks. Whether you're a beginner or a pro with years of experience, you'll improve your work and your career with the simple and straightforward principles in The Productive Programmer.
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 this book is for
Java and web developers looking to learn and embrace the power and flexibility offered by the Grails framework and Groovy scripting language.
This book is a reality-based guide for modern projects. You'll learn how to recognize your project's potholes and ruts, and determine the best way to fix problems - without causing more problems.
Your project can't fail. That's a lot of pressure on you, and yet you don't want to buy into any one specific process, methodology, or lifecycle.
Your project is different. It doesn't fit into those neat descriptions.
Manage It! will show you how to beg, borrow, and steal from the best methodologies to fit your particular project. It will help you find what works best for you and not for some mythological project that doesn't even exist.
Before you know it, your project will be on track and headed to a successful conclusion.
Step-by-step guide reveals best practices for enhancing Web sites with Ajax
- A step-by-step guide to enhancing Web sites with Ajax.
- Uses progressive enhancement techniques to ensure graceful degradation (which makes sites usable in all browsers).
- Shows readers how to write their own Ajax scripts instead of relying on third-party libraries.
Web site designers love the idea of Ajax--of creating Web pages in which information can be updated without refreshing the entire page. But for those who aren't hard-core programmers, enhancing pages using Ajax can be a challenge. Even more of a challenge is making sure those pages work for all users. In Bulletproof Ajax, author Jeremy Keith demonstrates how developers comfortable with CSS and (X)HTML can build Ajax functionality without frameworks, using the ideas of graceful degradation and progressive enhancement to ensure that the pages work for all users. Throughout this step-by-step guide, his emphasis is on best practices with an approach to building Ajax pages called Hijax, which improves flexibility and avoids worst-case scenarios.
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.
EJB 3.0 sets a precedent. It has made huge advances in ease of development, and its drastically simplified programming model has been widely acclaimed.
Mike Keith, EJB 3.0 co-specification lead, and Merrick Schinariol, reviewer of EJB 3.0, offer unparalleled insight and expertise on the EJB 3.0 persistence specification, in this definitive guide to EJB 3.0 persistence technology. Expect full coverage and examination of the EJB 3.0 spec from these expert authors, including:
- The EntityManager API
- The new features of EJB Query Language (EJB QL)
- Basic and advanced object-relational mapping
- Advanced topics like concurrency, locking, inheritance, and polymorphism
Assuming a basic knowledge of Java, SQL, JDBC, and some J2EE experience, Keith and Schinariol will teach you EJB 3.0 persistence from the ground up. After reading it, you will have an in-depth understanding of the EJB 3.0 persistence API and how to use it in your applications.
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.
Are you still designing web sites like it's 1999? If so, you're in for a surprise. Since the last edition of this book appeared five years ago, there has been a major climate change with regard to web standards. Designers are no longer using (X)HTML as a design tool, but as a means of defining the meaning and structure of content. Cascading Style Sheets are no longer just something interesting to tinker with, but rather a reliable method for handling all matters of presentation, from fonts and colors to the layout of the entire page. In fact, following the standards is now a mandate of professional web design.
The third edition covers these contemporary web design topics:
- Structural layer: HTML 4.01 and XHTML 1.0 (9 chapters), including an alphabetical reference of all elements, attributes and character entities
- Presentation layer: Ten all-new chapters on Cascading Style Sheets, Level 2.1, including an alphabetical reference of all properties and values.
- Web environment: New web standards, browsers, display devices, accessibility, and internationalization
- Web graphics optimization: Producing lean and mean GIF, JPEG, PNG, and animated GIFs
- Multimedia: Web audio, video, Flash, and PDF
Organized so that readers can find answers quickly, Web Design in a Nutshell, Third Edition helps experienced designers come up to speed quickly on standards-based web design, and serves as a quick reference for those already familiar with the new standards and technology.
There are many books for web designers, but none that address such a wide variety of topics. Find out why nearly half a million buyers have made this the most popular web design book available.
You will be guided through all the Spring features and see how they form a coherent whole. In turn, this will help you understand the rationale for Spring's approach, when to use Spring, and how to follow best practices. All this is illustrated with a complete sample application. When you finish the book, you will be well equipped to use Spring effectively in everything from simple Web applications to complex enterprise applications.
What you will learn from this book
* The core Inversion of Control container and the concept of Dependency Injection
* Spring's Aspect Oriented Programming (AOP) framework and why AOP is important in J2EE development
* How to use Spring's programmatic and declarative transaction management services effectively
* Ways to access data using Spring's JDBC functionality, iBATIS SQL Maps, Hibernate, and other O/R mapping frameworks
* Spring services for accessing and implementing EJBs
* Spring's remoting framework
Who this book is for
This book is for Java/J2EE architects and developers who want to gain a deeper knowledge of the Spring Framework and use it effectively.
Wrox Professional guides are planned and written by working programmers to meet the real-world needs of programmers, developers, and IT professionals. Focused and relevant, they address the issues technology professionals face every day. They provide examples, practical solutions, and expert education in new technologies, all designed to help programmers do a better job.
This second edition of a Manning bestseller has been revised and re-titled to fit the 'In Action' Series by Steve Loughran, an Ant project committer. Ant in Action introduces Ant and how to use it for test-driven Java application development. Ant itself is moving to v1.7, a major revision, at the end of 2006 so the timing for the book is right. A single application of increasing complexity, followed throughout the book, shows how an application evolves and how to handle the problems of building and testing. Reviewers have praised the book's coverage of large-projects, Ant's advanced features, and the details and depth of the discussion-all unavailable elsewhere.
This is a major revision with the second half of the book completely new, including:
- How to Manage Big projects
- Library management
- Enterprise Java
- Continuous integration
- Writing new Ant tasks and datatypes
Each recipe in Groovy Recipes begins with a concise code example for a quick start, followed by in-depth explanation in plain English. These recipes will get you to-to-speed in a Groovy environment quickly.
You'll see how to speed up nearly every aspect of the development process 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. Breathe new life into Arrays, Maps, and Lists with a number of convenience methods. But Groovy does more than just ease traditional Java development: it brings modern programming features to the Java platform like closures, duck-typing, and metaprogramming.
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, even a Groovy version of Ant called GANT. We cover everything from getting a basic website in place to advanced features that take you beyond HTML into the world of Web Services: REST, JSON, Atom, Podcasting, and much much more.
Manage Your Project Portfolio: Increase Your Capacity and Finish More Projects (Pragmatic Programmers)
All of your projects and programs make up your portfolio. But how much time you actually spend on your projects, and how much time do you spend responding to emergencies?
This book will introduce you to different ways of ordering all of the projects you are working on now, and help you figure out how to staff those projects--even when you've run out of project teams to do the work.
Once you learn to manage your portfolio better, you'll avoid emergency "firedrills." The trick is adopting lean and agile approaches to projects, whether they are software projects, projects that include hardware, or projects that depend on chunks of functionality from other suppliers.
You may be accustomed to spending time in meetings where you still don't have the data you need to evaluate your projects. Here, with a few measures, you'll be able to quickly evaluate each project and come to a decision quickly.
You'll learn how to define your team's, group's, or department's mission with none of the buzzwords that normally accompany a mission statement. Armed with the work and the mission, you can make those decisions that define the true leaders in the organization.
Besides a useful guide to APIs, the book looks at a variety of techniques for saving session state, as well as showing how Servlets can work together to power Web sites. You will learn performance tips and ways to get Servlets to work together (like forwarding and redirection), plus the basics of database programming with JDBC, to build content with "live" data. A later chapter examines what's next for Servlets with the emerging Servlet 2.3 API standard. Importantly, the authors go over deploying and configuring Web applications by editing XML files, a must-have for successfully running Servlets in real applications.
Since the first edition of this title, the choices for Java Web developers have grown much richer. Many of the new chapters in this edition look at options beyond Servlets. Short sections on application frameworks such as Tea, WebMacro, the Element Construction Set (ECS), XMLC, and JavaServer Pages (JSP) let you explore what's out there for Java developers today with a survey of some current tools that can speed up creating new Web applications.
The text closes with reference sections on Servlet APIs (and other material) that will be useful for any working developer. Although Servlets are not the only game in town, they are still important tools for successful Web development. This updated edition shows you just how to do it with plenty of basic and advanced tips for taking full advantage of this powerful Java standard. --Richard Dragan
- Overview and history of Java Servlets
- Fundamentals of HTTP
- Web applications (including deployment and configuration using XML files)
- The Servlet lifecycle (initializing, processing requests, cleanup, and caching)
- Multimedia content (images and compressed content)
- WAP and WML for wireless content
- Servlet session tracking techniques (hidden form fields, cookies, and URL rewriting)
- Security issues with Servlets (including certificates and SSL)
- Tutorial for JDBC and Java database programming
- Using applets and Servlets together
- Servlet collaboration
- Quick introduction to Java 2 Enterprise Edition (J2EE)
- Internationalization issues
- Survey of third-party Servlet application frameworks and tools: Tea, WebMacro, the Element Contruction Set (ECS), XMLC, and JavaServer Pages (JSP)
- Miscellaneous tips for Servlets (including sending e-mail and using regular expressions)
- Description of the new Servlet 2.3 API spec
- Servlet API quick reference
Want to learn how to create great user experiences on today's Web? In this book, UI experts Bill Scott and Theresa Neil present more than 75 design patterns for building web interfaces that provide rich interaction. Distilled from the authors' years of experience at Sabre, Yahoo!, and Netflix, these best practices are grouped into six key principles to help you take advantage of the web technologies available today. With an entire section devoted to each design principle, Designing Web Interfaces helps you:
- Make It Direct-Edit content in context with design patterns for In Page Editing, Drag & Drop, and Direct Selection
- Keep It Lightweight-Reduce the effort required to interact with a site by using In Context Tools to leave a "light footprint"
- Stay on the Page-Keep visitors on a page with overlays, inlays, dynamic content, and in-page flow patterns
- Provide an Invitation-Help visitors discover site features with invitations that cue them to the next level of interaction
- Use Transitions-Learn when, why, and how to use animations, cinematic effects, and other transitions
- React Immediately-Provide a rich experience by using lively responses such as Live Search, Live Suggest, Live Previews, and more
Designing Web Interfaces illustrates many patterns with examples from working websites. If you need to build or renovate a website to be truly interactive, this book gives you the principles for success.
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 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 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
This book is aimed at three groups of readers:
- Web application developers attempting to enhance the usability of their web sites and web applications
In addition, familiarity with the following related technologies is a strong indicator that this book is for you:
This book covers:
- The Browser Object Model—Introduces the Browser Object Model (BOM), which is responsible for objects allowing interaction with the browser itself. Each of the BOM objects is covered, including window, document, location, navigator, and screen.
- Client Detection—Explains various approaches to detecting the client machine and its capabilities. Different techniques include capability detection and user-agent string detection. Each approach is discussed for pros and cons as well as situational appropriateness.
- DOM Levels 2 and 3 Explains how DOM Levels 2 and 3 augmented the DOM with additional properties, methods, and objects. Compatibility issues between Internet Explorer and other browsers are discussed.
- Ajax and JSON—Looks at common Ajax techniques, including the use of the XMLHttpRequest object and Internet Explorer's XDomainRequest object for cross-domain Ajax. Explains the differences in browser implementations and support as well as recommendations for usage.
- Client-Side Storage—Discusses the various techniques for storing data on the client machine. Begins with a discussion of the most commonly supported feature, cookies, and then discusses newer functionality such as DOM storage.
There is a hidden revolution going on: geography is moving from niche to the mainstream. News reports routinely include maps and satellite images. More and more pieces of equipment cell phones, cars, computers now contain Global Positioning System (GPS) receivers. Many of the major database vendors have made geographic data types standard in their flagship products.
GIS for Web Developers introduces Geographic Information Systems (GIS) in simple terms and demonstrates hands-on uses. With this book, you'll explore popular websites like maps.google.com, see the technologies they use, and learn how to create your own. Written with the usual Pragmatic Bookshelf humor and real-world experience, GIS for Web Developers makes geographic programming concepts accessible to the common developer.
This book will demystify GIS and show you how to make GIS work for you. You'll learn the buzzwords and explore ways to geographically-enable your own applications. GIS is not a fundamentally difficult domain, but there is a barrier to entry because of the industry jargon. This book will show you how to "walk the walk" and "talk the talk" of a geographer.
You'll learn how to find the vast amounts of free geographic data that's out there and how to bring it all together. Although this data is free, it's scattered across the web on a variety of different sites, in a variety of incompatible formats. You'll see how to convert it among several popular formats including plain text, ESRI Shapefiles, and Geography Markup Language (GML).
With this book in hand, you'll become a real geographic programmer using the Java programming language. You'll find plenty of working code examples in Java using some of the many GIS-oriented applications and APIs. You'll be able to: