Saturday, March 16, 2013

Tcl/Tk, Second Edition


Tcl/Tk (Tool Command Language/Tool Kit) makes it fast and easy to implement any type of application, from games to network analyzers. Tcl/Tk is a full-bodied, mature programming platform used by NASA rocket scientists, Wall Street database experts, Internet designers, and open source programmers around the world. Tcl/Tk's multi-faceted and extensible nature make it ideal for developing end-user GUIs, client/server middleware, Web applications, and more. You can code completely in Tcl, use any of hundreds of extensions, call C or Java subroutines from Tcl/Tk, or use Tcl to glue legacy applications together.Written from a programmer's perspective, Tcl/Tk: A Developer's Guide describes how to use Tcl's standard tools and the unique features that make Tcl/Tk powerful: including graphics widgets, packages, namespaces, and extensions. With this book an experienced programmer will be able to code Tcl in a few hours. In just a few chapters you will learn about Tcl features that allow you to isolate and protect your code from being damaged in large applications. You will even learn how to extend the language itself.Tcl/Tk: A Developer's Guide clearly discusses development tools, proven techniques, and existing extensions. It shows how to use Tcl/Tk effectively and provides many code examples. This fully revised new edition is the complete resource for computer professionals, from systems administrators to programmers. It covers versions 7.4 to 8.4 and includes a CD-ROM containing the interpreters, libraries, and tutorials to get you started quickly. Additional materials in the book include case studies and discussions of techniques for the advanced user.On the CD-ROM*Distributions for Tcl 8.3 and 8.4 for Linux, Solaris, Macintosh, and Windows. *A copy of ActiveTcl from ActiveState. *The latest release of TclTutor.*How-to's and tutorials as well as copies of all the tools discussed in the book.*The author's "Tclsh Spot" articles from :login; magazine and the "Real World" Tcl/Tk chapters from the first edition.*Demo copies of commercial development tools from ActiveState and NeatWare.*Many open source Tcl/Tk development tools.*Tcl/Tk design guidelines. *Brings beginners up to speed quickly. *Overview of Tcl development tools, popular extensions, and packages. *Tips, style guidelines, and debugging techniques for the advanced user.

Download Link

Practical Programming in Tcl and Tk



Despite its frequently obtuse syntax, Tcl/Tk enjoys a large and enthusiastic following. It's king of the world when it comes to building graphical user interfaces (GUIs) for C programs (particularly those running in X Windows environments), which is what the language originally was invented to do. Tcl/Tk (which is pronounced "tickle tee-kay," and which stands for "Tool Control Language/Toolkit" despite the abbreviation's unusual capitalization) is expanding its scope to encompass fields as diverse as voice scripting and molecular visualization. The latest edition of Practical Programming in Tcl and Tk, the fourth, offers an encyclopedic guide to Tcl/Tk that not only helps programmers solve problems, but enables them to conceive new applications for the language. The new edition of Practical Programming in Tcl and Tk covers Tcl 8.4, particularly its versatile new Virtual File System (VFS) capabilities that allow you to include FTP sites and other remote directories in ordinary File Save and File Open interfaces. Further new coverage goes to Starkits, with which you can bundle Tcl/Tk programs for deployment, and some new Tk elements. Otherwise, the book is generally revised and improved with additional examples (the sample code has always been one of this book's main attractions) and intelligently laid-out keyword tables. It has a great lay-flat binding, too. This book (with John Ousterhout's Tcl and the Tk Toolkit) remains one of the two must-have Tcl/Tk books. --David Wall Topics covered: The Tcl programming language and the Tk toolkit on which it most usually operates. Sections cover basic and advance programming techniques, specific aspects of Tk widgets, and extending the C library that defines Tcl. Copious examples make it easier to understand (and quickly employ) effective design strategies.

Download Link

Tuesday, March 12, 2013

Pattern Oriented Software Architechture : Volume 2

Designing application and middleware software to run in concurrent and networked environments is a significant challenge to software developers. The patterns catalogued in this second volume of Pattern-Oriented Software Architectures (POSA) form the basis of a pattern language that addresses issues associated with concurrency and networking.The book presents 17 interrelated patterns ranging from idioms through architectural designs. They cover core elements of building concurrent and network systems: service access and configuration, event handling, synchronization,and concurrency. All patterns present extensive examples and known uses in multiple programming languages, including C++, C, and Java.The book can be used to tackle specific software development problems or read from cover to cover to provide a fundamental understanding of the best practices for constructing concurrent and networked applications and middleware.About the AuthorsThis book has been written by the award winning team responsible for the first POSA volume "A System of Patterns", joined in this volume by Douglas C. Schmidt from University of California, Irvine (UCI), USA.Visit our Web Page

Download Link
 

Pattern-Oriented Software Architecture : Volume 1



Pattern-Oriented Software Architecture: A System of Patterns looks at how patterns occur on three different levels--in software architecture, in everyday design, and in idioms (which describe how a particular design pattern is implemented in a programming language like C++). This synthetic approach is a little theoretical at times, but the authors also present over a dozen patterns and provide real-world examples wherever possible. For architectural patterns, the authors look at the Layers pattern, used in operating systems such as Windows NT and virtual machines. They also consider Pipes and Filters, which process streams of data. (This pattern, the authors point out, is a lynchpin of Unix.) Their Blackboard pattern shows how a complex problem, such as image or speech recognition can be broken up into smaller, specialized subsystems that work together to solve a problem. (For recognizing words from a raw waveform input, a Blackboard approach might have separate processes to find phonemes, then words, then sentences.) This book also looks at today's distributed systems in considering the Broker pattern, which is used on the Internet and in Microsoft's OLE technology. This section also presents several powerful patterns for building effective graphical user interfaces, such as Model-View-Controller. The authors define several well-known design patterns, such as the Proxy and Command patterns, and also basic, far-reaching patterns, such as Whole-Part and Master-Slave, which are widely used throughout computing. Their survey ends with a discussion on the way objects can communicate (using such patterns as Forwarder-Receiver, Client-Dispatcher-Server, and Publisher-Subscriber), which many developers will recognize as familiar patterns, but are codified here as "official" patterns. The book then discusses some idioms in C++ and a more far-reaching role for patterns in software design and architecture. By fitting patterns into traditional software engineering practices, the authors of Pattern-Oriented Software Architecture successfully argue that the role for patterns will only continue to diversify and enrich tomorrow's software engineering tools and methodologies. --Richard Dragan

Download Link

Sunday, March 3, 2013

Algorithms for Interviews

Algorithms for Interviews (AFI) aims to help engineers interviewing for Software-development positions. The Primary focus of this book is Algorithm Design. The entire book is presented through problems interspersed with discussions. The problem covers key concepts and are well-motivated, challenging and fun to solve.
Interviews at most of large software companies focus more on algorithms, problem solving and design skills on specific domain knowledge. We don't emphasize on platforms and programming languages, since they differ across jobs.
It covers core material, such as searching and sorting; general design principles, such as graph modeling and dynamic programming ; advanced topics such as strings, parallelism and intractability. It also covers system design, problem solving, and interviewing techniques. It consists of 174 solved algorithm design problems.

Download Link