

Beginning C# is written for those readers with no prior programming experience who want a thorough, yet easy to understand, introduction to C# and Object Oriented Programming.


This book builds on your knowledge as a PHP developer to provide a fast-paced, step-by-step tutorial in building CakePHP applications. The book is packed with example code and demo applications, so that you can see techniques in action.

Using Trolltech's Qt you can build industrial-strength C++ applications that run natively on Windows, Linux/Unix, Mac OS X, and embedded Linux without source code changes. Now, two Trolltech insiders have written a start-to-finish guide to getting outstanding results with the latest version of Qt: Qt 4.3.
Packed with realistic examples and in-depth advice, this is the book Trolltech uses to teach Qt to its own new hires. Extensively revised and expanded, it reveals today's best Qt programming patterns for everything from implementing model/view architecture to using Qt 4.3's improved graphics support. You'll find proven solutions for virtually every GUI development task, as well as sophisticated techniques for providing database access, integrating XML, using subclassing, composition, and more. Whether you're new to Qt or upgrading from an older version, this book can help you accomplish everything that Qt 4.3 makes possible.
- Completely updated throughout, with significant new coverage of databases, XML, and Qtopia embedded programming
- Covers all Qt 4.2/4.3 changes, including Windows Vista support, native CSS support for widget styling, and SVG file generation
- Contains separate 2D and 3D chapters, coverage of Qt 4.3's new graphics view classes, and an introduction to QPainter's OpenGL back-end
- Includes new chapters on look-and-feel customization and application scripting
- Illustrates Qt 4's model/view architecture, plugin support, layout management, event processing, container classes, and much more
- Presents advanced techniques covered in no other book–from creating plugins to interfacing with native APIs
- Includes a new appendix on Qt Jambi, the new Java version of Qt


The authors guide you step by step, using construction of a CD database application to give you hands-on experience as you progress from the basic to the complex.
You’ll start with fundamental concepts like writing Linux programs in C. You’ll learn basic system calls, file I/O, interprocess communication, and shell programming. You’ll become skilled with the toolkits and libraries for working with user interfaces. The book starts with the basics, explaining how to compile and run your first program. First, each concept is explained to give you a solid understanding of the material. Practical examples are then presented, so you see how to apply the knowledge in real applications.


Like all books in the "Hacks" series,Ubuntu Hacks includes 100 quick tips and tricks for all users of all technical levels. Beginners will appreciate the installation advice and tips on getting the most out of the free applications packaged with Ubuntu, while intermediate and advanced readers will learn the ins-and-outs of power management, wireless roaming, 3D video acceleration, server configuration, and much more.

The techniques, methods, and tools in this book will help you manage a single system—but will prove especially powerful across multiple systems. No matter if the systems are desktops, servers, or Beowulf clusters—all of them will benefit from this automation. And managing five to five thousand systems will become a simpler task!

Ubuntu directly descends from one of the oldest and most revered Linux distributions ever: Debian. Those of you who know nothing about Linux will likely not have heard of Debian; it is enough to know that it is considered to be one of the most stable and secure Linux distributions currently available. Ubuntu benefits directly from many contributions from free software developers across the world.
If you are new to Linux, you have made a great decision by choosing this book. Sams Publishing’s Unleashed books offer an in-depth look at their subject, taking in both beginner and advanced users and moving them to a new level of knowledge and expertise. Ubuntu is a fast-changing distribution that can be updated at least twice a year. We have tracked the development of Ubuntu from early on to make sure that the information in this book mirrors closely the development of the distribution. A full copy of Ubuntu is included on the enclosed disc, making it possible for you to install Linux in less than an hour! No longer an upstart, Linux now has an enviable position in today’s modern computing world. It can be found on machines as diverse as mobile phones and wristwatches, all the way up to supercomputers—in fact, Linux currently runs on more than half of the world’s top 500 supercomputers.
Do not let the reputation of Linux discourage you, however. Most people who have heard of Linux think that it is found only on servers, looking after websites and email. Nothing could be further from the truth because Linux is making huge inroads in to the desktop market, too. Corporations are realizing the benefits of running a stable and powerful operating system that is easy to maintain and easy to secure. Add to that the hundreds of improvements in usability, and Linux becomes an attractive proposition that tempts many CIOs. The best part is that as large Linux vendors improve Linux, the majority of those improvements make it into freely available distributions, allowing you to benefit from the additions and refinements made. You can put Ubuntu to work today and be assured of a great user experience.
This book provides all the information that you need to get up and running with Ubuntu. It even tells you how to keep Ubuntu running in top shape and how to adapt Ubuntu to changes in your own needs. You can use Ubuntu at home, in the workplace, or, with permission, at your school or college. In fact, you might want to poke around your school’s computer rooms: You will probably find that someone has already beaten you to the punch—Linux is commonly found in academic institutions. Feel free to make as many copies of the software as you want; because Ubuntu is freely distributable all over the world, no copyright lawyers are going to pound on your door.

For those who program using the C language, be sure to check out this book's companion, TCP/IP Sockets in C: Practical Guide for Programmers.

There's a lot to be said for going back to basics. Not only does this Bible give you a quick refresher on the structure of open-source Linux software, it also shows you how to bypass the hefty graphical user interface on Linux systems and start interacting the fast and efficient way—with command lines and automated scripts. You'll learn how to manage files on the filesystem, start and stop programs, use databases, even do Web programming—without a GUI—with this one-stop resource.
- Understand the Linux desktop and various command-line parameters
- Learn filesystem navigation, file handling, and the basics of bash shell commands
- Write shell scripts to automate routine functions and reports
- Harness nesting loops and structured commands
- Monitor programs, master file permissions, and make queries
- Run scripts in background mode and schedule jobs
- Use sed, gawk, and regular expressions
- Explore all alternate shells, including ash, tcsh, ksh, korn, and zsh

The second part describes key aspects of writing games for Symbian smartphones using Symbian C++ and native APIs. The chapters cover the use of graphics and audio, multiplayer game design, the basics of writing a game loop using Symbian OS active objects, and general good practice. There is also a chapter covering the use of hardware APIs, such as the camera and vibra.
Part Three covers porting games to Symbian OS using C or C++, and discusses the standards support that Symbian OS provides,and some of the middleware solutions available. A chapter about the N-Gage platform discusses how Nokia is pioneering the next generation of mobile games, by providing a platform SDK for professional games developers to port games rapidly and effectively.
The final part of the book discusses how to create mobile games for Symbian smartphones using java ME, Doja (for Japan) or Flash Lite 2. This book will help you if you are:
~ a C++ developer familiar with mobile development but new to the games market
~ a professional games developer wishing to port your games to run on Symbian OS platforms such as S60 and UIQ
~ a someone who is interested in creating C++, Java ME or Flash Lite games for Symbian smartphones.
This book shows how to create mobile games for Symbian smartphones such as S60 3rd Edition, UIQ3 or FOMA devices. It includes contributions from a number of experts in the mobile games industry, including Nokia's N-gage team, Ideaworks3D, and ZingMagic, as well as academics leading the field of innovative mobile experiences.


If you're interested in recording and streaming media using Flash Media Server 3 (FMS3) and Adobe's Real-Time Messaging Protocol, this unique 267-page PDF-only book is the perfect primer. It is not a reference, but a systematic guide to developing FMS3 applications using ActionScript 3.0, with chapters that focus on specific aspects of the server and how they work. FMS3 is very different from regular web servers. Because its open-socket server technology stays connected until users quit the application, you can stream audio, video, text, and other media in real time. FMS3 is also quite different from previous versions, a fact that web developers familiar with Flash Media Server 2 or Flash Communication Server 1.5 will quickly discover. Don't worry. With Learning Flash Media Server 3 and a little experience with Flash CS3 and ActionScript 3.0, anyone can get up to speed in no time. You'll learn how to install FMS3, organize your development environment with Apache web server, and use the management console before diving into the whys and hows of:
- Recording and playing back streaming audio and video in VP6 and H.264 formats
- Using the new Flash Media Encoder to stream and record video
- Camera and microphone settings
- Non-persistent client-side remote shared objects
- Two-way audio-video communications
- Broadcasting and server-side bandwidth control
- Working with server-side files: the file class
- Server-side shared objects
- Server-side streams
- Setting up a software load handler using FMS3's new server-side NetStream
- Bringing in data and working with configuration files
At the heart of every chapter is a core set of code that shows the minimum requirements needed for different procedures. Beyond that, Learning Flash Media Server 3 provides you with plenty of options for using FMS3's different versions -- the full-feature server, the streaming-only server, and the limited-user development server. It's a whole new world of media, and this book puts you right at the doorstep. Ready to enter?

This book will show you how to create powerful Rich Internet Applications using Flex 3. After learning how to install and becoming familiar with the basics of the Flex Builder 3 software, you will explore in depth how the Flash scripting language, ActionScript 3.0, interacts with Flex's powerful XML-like design language: MXML.
You'll learn how to construct your applications using layout and navigation containers, and how to move between various states using transitions. There is coverage of how best to plan your applications and use the Model-View-Controller pattern to keep various aspects of development separated and ease creation of potentially complicated projects.
Rich Internet Applications rely on data, and this book shows how to bring data from various sources into your Flex application and check its integrity, and how best to display and interact with it.
Going farther, applications built for the Flash platform can now exist and function beyond the traditional confines of the web browser. Adobe AIR allows you to take your applications to the desktop, and this book shows how to reapply your Flex skills to take advantage of this new environment.
The Essential Guide to Flex 3 takes you through all the powerful features of Flex using a series of stand-alone, practical exercises. The skills acquired throughout the book are then brought together in the form of a full-featured case study application showcasing essential techniques that can easily be applied to your own Flex applications.

This highly anticipated new edition of the
classic, Jolt Award-winning work has been thoroughly updated to cover
Java SE 5 and Java SE 6 features introduced since the first edition.
Bloch explores new design patterns and language idioms, showing you how
to make the most of features ranging from generics to enums,
annotations to autoboxing.
Each chapter in the book consists of several
“items” presented in the form of a short, standalone essay that
provides specific advice, insight into Java platform subtleties, and
outstanding code examples. The comprehensive descriptions and
explanations for each item illuminate what to do, what not to do, and
why.

Essential Skills--Made Easy! Updated and Expanded for J2SE 5
Learn to program in Java from master programmer and best-selling author Herb Schildt. Completely revised and updated to cover Java 2 Platform, Standard Edition 5 (J2SEj 5), this step-by-step guide will have you programming in practically no time. You’ll start at the beginning, learning why Java is the preeminent language of the Internet, how it relates to object-oriented programming (OOP), and the general form of a Java program. Next, it’s on to Java fundamentals, including data types, operators, program control statements, classes, objects, and methods. You’ll then progress to more advanced topics, such as inheritance, exception handling, the I/O system, multithreading, and applets. Of course Herb covers the powerful, new features added by J2SE 5, such as generics, autoboxing, enumerations, and static import. Get started programming in Java today with this easy-to-follow tutorial.
The book teaches the correct usage of Spring in applications, and lowers the learning curve on J2EE standards. It covers useful features of Spring without delving too far into complicated features. The authors take advantage of less complex alternatives whenever possible, and shows how Spring can make you more productive in complicated environments where J2EE technologies need to be applied. The book covers the complete Spring web tools portfolio and deals with persistence and transaction management. It also introduces 3-tier application design and how to test these designs.

In this book, I present basic code for 12 PHP - powered projects that you can use and extend however you wish. I have tried to write them so the code can be easily reused in future applications, but in some instances the entire application can be reused as well!
I ’ ve enjoyed the opportunity to write and share with you this information and I hope you have just as much fun reading it and learning from it. More importantly, I hope you find good, practical uses for the projects found within this book.

What you will learn from this book
- Practical steps you can take to combine different developmental philosophies, processes, and construction techniques into a unified approach to software
- Methods for deciding which parts of a project you need to write yourself versus what you can buy or reuse
- Tools and processes you can employ to improve source code quality and maintainability
- How to create, run, organize, and measure tests, and then make them more useful to developers and testers
- Ways that programming by contract can make your code easier for developers to understand and use
- Recommended techniques for handling errors in your code that will make your application easier to debug and support
This book is for experienced software developers who are looking to improve their development skill set and bring a higher level of discipline to a project.

This handy, compact guide teaches you to use BSD UNIX systems as the experts do: from the command line. Try out more than 1,000 commands to find and get software, monitor system health and security, and access network resources. Apply the skills you learn from this book to use and administer servers and desktops running FreeBSD, OpenBSD, NetBSD, or any other BSD flavor.
Expand your BSD UNIX expertise in these and other areas:
- Using the shell
- Finding online software
- Working with files
- Playing with music and images
- Administering file systems
- Backing up data
- Checking and managing running processes
- Accessing network resources
- Handling remote system administration
- Locking down security





- This book will teach you everything you need to know to create professional CSS and HTML web sites
- Up to date &emdash; covering support of the newest standards in all the latest browsers, including IE 7 and Firefox 2
- Includes practical real world tutorials, essential reference sections, and case studies.
What you'll learn
- The basics of HTML and CSS web design
- How to implement effective layouts, tables, images, navigation, forms and typography on web sites
- How to deal with cross browser issues, including quirks, bugs, and hacks on IE 7 (and older versions,) Firefox, Safari, Opera, and all other major browsers.
- How to make sure your sites are both usable and accessible
- How to implement several different styles of web front-end, through several complete case studies, including a blog, a store front, and an online gallery
- Detailed References are also provided so you don't need to learn every little detail of CSS and HTML

The changes I have made refl ect the inevitable improvement to the skills of anyone who works constantly with CSS, and these changes also more deeply address two skills that all programmers need to master: to avoid rewriting code that they have previously written elsewhere, and to learn to write code in the most economical way possible. Ways in which you can achieve these two worthy goals in your own work are presented throughout this new edition of the book.

Each design pattern has been thoroughly tested and proven to work in all major web browsers including Internet Explorer 7, Internet Explorer 6, Firefox 2, Opera 9, and Safari 2. All the content in this book is usable and practical. You won’t waste time reading about things that don’t work! With this book, you will no longer have to use hacks, tricks, endless testing, and constant tweaking in multiple browsers to get something to work.
Using a design pattern is as easy as copying and pasting it into your code and tweaking a few values. This book shows you which values you can modify and how they affect the result so you can create the exact style and layout you want—without worrying whether it will work.
This is more than a cookbook. It systematically covers every usable feature of CSS and combines these features with HTML to create reusable patterns. Each pattern has an intuitive name to make it easy to find, remember, and talk about. Accessibility and best practices are carefully engineered into each design pattern, example, and source code.
You can read straight through the book, use it as a reference, and use it to find solutions. You’ll love how the book’s consistent layout makes it a joy to use.

This book is a tutorial for creating a complete website with Ruby on Rails (RoR). It will teach you to develop database-backed web applications according to the Model-View-Controller pattern. It will take you on a joy ride right from installation to a complete dynamic website. All the applications discussed in this book will help you add exciting features to your website. This book will show you how to assemble RoR's features and leverage its power to design, develop, and deploy a fully featured website.

This book shows you how to write web mashups using Ruby on Rails—the new web application development framework. The book has seven real-world projects—the format of each project is similar, with a statement of the project, discussion of the main protocols involved, an overview of the API, and then complete code for building the project. You will be led methodically through concrete steps to build the mashup, with asides to explain the theory behind the code.


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.
Clean code that works - now. This is the seeming contradiction that lies behind much of the pain of programming. Test-driven development replies to this contradiction with a paradox-test the program before you write it.
A new idea? Not at all. Since the dawn of computing, programmers have been specifying the inputs and outputs before programming precisely. Test-driven development takes this age-old idea, mixes it with modern languages and programming environments, and cooks up a tasty stew guaranteed to satisfy your appetite for clean code that works-now.
Developers face complex programming challenges every day, yet they are not always readily prepared to determine the best solution. More often than not, such difficult projects generate a great deal of stress and bad code. To garner the strength and courage needed to surmount seemingly Herculean tasks, programmers should look to test-driven development (TDD), a proven set of techniques that encourage simple designs and test suites that inspire confidence.
By driving development with automated tests and then eliminating duplication, any developer can write reliable, bug-free code no matter what its level of complexity. Moreover, TDD encourages programmers to learn quickly, communicate more clearly, and seek out constructive feedback.
Readers will learn to:
-
Solve complicated tasks, beginning with the simple and proceeding to the more complex.
-
Write automated tests before coding.
-
Grow a design organically by refactoring to add design decisions one at a time.
-
Create tests for more complicated logic, including reflection and exceptions.
-
Use patterns to decide what tests to write.
-
Create tests using xUnit, the architecture at the heart of many programmer-oriented testing tools.
This book follows two TDD projects from start to finish, illustrating techniques programmers can use to easily and dramatically increase the quality of their work. The examples are followed by references to the featured TDD patterns and refactorings. With its emphasis on agile methods and fast development strategies, Test-Driven Development is sure to inspire readers to embrace these under-utilized but powerful techniques.

Practical Subversion, Second Edition draws on the experience of its authors, Daniel Berlin and Garrett Rooneyboth Subversion project membersto guide you through a complete introduction to this popular code management solution. And this edition has been updated to reflect the most recent changes to the popular Subversion version control system. After a crash course on Subversions key features, including a theme project that youre encouraged to follow, youll explore best practices, migration tips for moving from other versioning solutions, Subversion integration, and an overview of the Subversion APIs.
Effective developers and system administrators alike understand that their success is related to their ability to manage the dozens, sometimes hundreds, of files that they come into contact with on a regular basis. This file management includes determining a files changes over time, accommodating simultaneous edits by multiple users, and even reverting a file to an earlier version if a mistake or deletion has been made. Capitalizing on such capabilities requires a version control system like Subversion. Youll want to pick up a copy of this book because it is
- The most up-to-date book on the popular Subversion version control system
- Authored by two Subversion project contributors
- More than a mere introduction, covering best practices, migration issues, and more effective versioning through tool integration

In this book you will learn:
* The nuts and bolts of the game coding process
* Insider techniques for writing top-notch game code
* 2D and 3D graphics techniques used by professional game developers
* Unique insight on critical algorithms you can't live without, debugging secrets, and tips for managing critical projects
* Key "gotchas" to avoid that can really hurt game development projects
With dozens of tips and code illustrations, plus extensive narration of critical non-code issues, Game Coding Complete is the guide to orchestrating bug-free, high-quality game code that will pass muster with leading game publishers such as Electronic Arts and Microsoft. This book covers all critical facets of game programming, working with teams, selecting the right game architecture, code optimization, and more.

This book leads by example. It demonstrates common analysis and design errors, shows how to detect and fix them, and suggests how to avoid making the same errors in the future. The book also encourages you to examine its UML examples and to search for specific errors. You'll get clues, then later receive the answers during "review sessions" toward the end of the book.

course, having already developed web applications in PHP before reading this book is a plus,
for you will see this book as a collection of answers to the questions you regularly ask yourself.
How This Book Is Structured
In this book, you will learn how to use symfony to build web applications. The chapters are
grouped into five parts:
• The Basics covers all the general concepts and prerequisites for starting symfony.
• The Core Architecture describes how the three layers of the Model-View-Controller (MVC)
architecture are implemented in symfony, and how to build pages and applications
according to this separation.
• Special Features explains how to use symfony’s mechanisms for shortening the development
of smart URLs, forms and validation, Ajax interactions, caching, and internationalized
applications.
• Development Tools covers the resources provided by symfony to make day-to-day
development tasks easier: code generators, unit testing framework, command-line
tasks, and plug-ins.
• Becoming a Symfony Expert reveals a few secret corners of the symfony code and shows
you how to tweak the framework’s behavior.

Part 1, OOP and Patterns: This part provides a foundation for advanced OOP concepts. It dives right in and tells you all you need to know about abstract classes, interfaces, static methods, and patterns like the singleton and factory, as well as exceptions. The part concludes
with an introduction to the new features in PHP 6.
Part 2, Testing and Documentation: This part covers all those interesting “peripheral” concepts, like test-driven development and automated deployment. It teaches you about writing great documentation and includes introductions to several documentation standards, including PHPDoc and DocBook. You will find information about the reflection API and learn how to extract metadata from your programs. Finally, you’ll learn about continuous integration and how to use tools like Phing and Xinc to improve your development workflow.
Part 3, The Standard PHP Library (SPL): The SPL contains some of the most advanced PHP code ever written. It offers language support for advanced OOP concepts like indexers and iterators, and also provides structures for exceptions and patterns like observer/reporter. The information in this part will allow you to create much more elegant and well-formed classes than would normally be possible.
Part 4, The Model-View-Controller (MVC) Pattern: MVC is probably the most useful development pattern for PHP developers. It allows you to structure your applications and work in teams using the best resources to get the job done. A strong understanding of this pattern is probably the single most important job qualification for any PHP developer, so this book makes a special effort to fully explain it. This part of the book also introduces you to the
Zend Framework, an MVC-based framework embraced by thousands of PHP companies. It starts with a complete walk-through of how to get a framework application up and running, and then presents the core concepts and advanced features of the Zend Framework.
Part 5, Web 2.0: This part covers all the things you need to know about Web 2.0. You will find information about Ajax and JSON, SOAP web services, and SSL client authentication. This part includes a lot of really useful tutorials, based on personal experience.

Who should read this book?
This book is for programmers who develop applications in PHP and want to learn modern object-oriented practices, principles, and techniques, and how to apply them to the everyday challenges of web programming. It is not a beginner’s book in PHP; it presupposes a minimum of familiarity with PHP—or experience in other programming languages—and with the basic ideas and challenges of web programming.
How this book is organized
The book is divided into four parts. Parts 1 and 2 introduce the principles, patterns, and techniques mentioned initially and demonstrate how they can be implemented in PHP. Part 1 introduces and develops the subjects of object-oriented programming and design. Part 2 deals with unit testing and refactoring. Parts 3 and 4 apply the material from the first two parts to the everyday challenges of web programming. Part 3 is about the web interface, while part 4 deals with databases and data storage.

You should be able to read this book cover to cover, and also just pick it up and read anything that catches your eye. But perhaps most importantly, we hope that when you have a question about how to do something or you need a hint, you will be able to easily find the right answer—or something close enough—and save time and effort.
A great part of the Unix philosophy is to build simple tools that do one thing well, then combine them as needed. This combination of tools is often accomplished via a shell script because these commands, called pipelines, can be long or difficult to remember and type. Where appropriate, we’ll cover the use of many of these tools in the context of the shell script as the glue that holds the pieces together to achieve the goal.