My Own Liberator: A Memoir


Dikgang Moseneke - 2016
    In tracing his ancestry, the influence on both his maternal and paternal sides is evident in the values they imbued in their children – the importance of family, the value of hard work and education, an uncompromising moral code, compassion for those less fortunate and unflinching refusal to accept an unjust political regime or acknowledge its oppressive laws. As a young activist in the Pan-Africanist Congress, at the tender age of fifteen, Moseneke was arrested, detained and, in 1963, sentenced to ten years on Robben Island for participating in anti-apartheid activities. Physical incarceration, harsh conditions and inhumane treatment could not imprison the political prisoners’ minds, however, and for many the Island became a school not only in politics but an opportunity for dedicated study, formal and informal. It set the young Moseneke on a path towards a law degree that would provide the bedrock for a long and fruitful legal career and see him serve his country in the highest court. My Own Liberator charts Moseneke’s rise as one of the country’s top legal minds, who not only helped to draft the interim constitution, but for fifteen years acted as a guardian of that constitution for all South Africans, helping to make it a living document for the country and its people. “This memoir is a fascinating account of the formation of the cadres who would have the responsibility both to help liberate our country and attend to its reconstruction and development.” Thabo Mbeki

Keeping the Wonder: An Educator's Guide to Magical, Engaging, and Joyful Learning


Jenna Copper - 2021
    

The Well-Grounded Java Developer: Vital techniques of Java 7 and polyglot programming


Benjamin J. Evans - 2012
    New JVM-based languages like Groovy, Scala, and Clojure are redefining what it means to be a Java developer. The core Standard and Enterprise APIs now co-exist with a large and growing body of open source technologies. Multicore processors, concurrency, and massive data stores require new patterns and approaches to development. And with Java 7 due to release in 2011, there's still more to absorb.The Well-Grounded Java Developer is a unique guide written for developers with a solid grasp of Java fundamentals. It provides a fresh, practical look at new Java 7 features along with the array of ancillary technologies that a working developer will use in building the next generation of business software.

Java Performance: The Definitive Guide


Scott Oaks - 2014
    Multicore machines and 64-bit operating systems are now standard even for casual users, and Java itself has introduced new features to manage applications. The base JVM has kept pace with those developments and offers a very different performance profile in its current versions. By guiding you through this changing landscape, Java Performance: The Definitive Guide helps you gain the best performance from your Java applications.You’ll explore JVM features that traditionally affected performance—including the just-in-time compiler, garbage collection, and language features—before diving in to aspects of Java 7 and 8 designed for maximum performance in today's applications. You’ll learn features such as the G1 garbage collector to maximize your application’s throughput without causing it to pause, and the Java Flight Recorder, which enables you to see application performance details without the need for separate, specialized profiling tools.Whether you’re new to Java and need to understand the basics of tuning the JVM, or a seasoned developer looking to eek out that last 10% of application performance, this is the book you want.

Refactoring: Improving the Design of Existing Code


Martin Fowler - 1999
    Significant numbers of poorly designed programs have been created by less-experienced developers, resulting in applications that are inefficient and hard to maintain and extend. Increasingly, software system professionals are discovering just how difficult it is to work with these inherited, non-optimal applications. For several years, expert-level object programmers have employed a growing collection of techniques to improve the structural integrity and performance of such existing software programs. Referred to as refactoring, these practices have remained in the domain of experts because no attempt has been made to transcribe the lore into a form that all developers could use... until now. In Refactoring: Improving the Design of Existing Software, renowned object technology mentor Martin Fowler breaks new ground, demystifying these master practices and demonstrating how software practitioners can realize the significant benefits of this new process.

The Norton Psychology Reader


Gary F. Marcus - 2005
    Editor Gary Marcus has carefully selected brief readings, mostly from popular trade books, that are both relevant and interesting to the introductory student.

Release It!: Design and Deploy Production-Ready Software (Pragmatic Programmers)


Michael T. Nygard - 2007
    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.

Engaging Learners


Andy Griffith - 2012
    A class can be skilled and motivated to learn without a teacher always having to lead. Engaging learners in this way unpicks intrinsic motivation, the foundation that underpins a productive learning environment and helps to develop independent learning.Based on five years of intensive research through Osiris Education's award-winning Outstanding Teaching Intervention program this book is packed with proven advice and innovative tools that were developed in these successful outstanding lessons. Written in the same humorous, thought-provoking style with which they both teach and train, the authors aim to challenge all who teach, from newly qualified teachers to seasoned professionals, to reflect on their day-to-day practice and set an agenda for sustainable improvement.

Code Complete


Steve McConnell - 1993
    Now this classic book has been fully updated and revised with leading-edge practices--and hundreds of new code samples--illustrating the art and science of software construction. Capturing the body of knowledge available from research, academia, and everyday commercial practice, McConnell synthesizes the most effective techniques and must-know principles into clear, pragmatic guidance. No matter what your experience level, development environment, or project size, this book will inform and stimulate your thinking--and help you build the highest quality code. Discover the timeless techniques and strategies that help you: Design for minimum complexity and maximum creativity Reap the benefits of collaborative development Apply defensive programming techniques to reduce and flush out errors Exploit opportunities to refactor--or evolve--code, and do it safely Use construction practices that are right-weight for your project Debug problems quickly and effectively Resolve critical construction issues early and correctly Build quality into the beginning, middle, and end of your project

Managing the Software Process


Watts S. Humphrey - 1989
    Emphasis is placed on the basic principles and priorities of the software process. Sections are organized in a natural way for managers and professionals to implement improvement activities.

The Tangled Web: A Guide to Securing Modern Web Applications


Michal Zalewski - 2011
    Every piece of the web application stack, from HTTP requests to browser-side scripts, comes with important yet subtle security consequences. To keep users safe, it is essential for developers to confidently navigate this landscape.In The Tangled Web, Michal Zalewski, one of the world's top browser security experts, offers a compelling narrative that explains exactly how browsers work and why they're fundamentally insecure. Rather than dispense simplistic advice on vulnerabilities, Zalewski examines the entire browser security model, revealing weak points and providing crucial information for shoring up web application security. You'll learn how to:Perform common but surprisingly complex tasks such as URL parsing and HTML sanitization Use modern security features like Strict Transport Security, Content Security Policy, and Cross-Origin Resource Sharing Leverage many variants of the same-origin policy to safely compartmentalize complex web applications and protect user credentials in case of XSS bugs Build mashups and embed gadgets without getting stung by the tricky frame navigation policy Embed or host user-supplied content without running into the trap of content sniffing For quick reference, "Security Engineering Cheat Sheets" at the end of each chapter offer ready solutions to problems you're most likely to encounter. With coverage extending as far as planned HTML5 features, The Tangled Web will help you create secure web applications that stand the test of time.

Getting Results the Agile Way: A Personal Results System for Work and Life


J.D. Meier - 2010
    Meier introduces Agile Results(R)-a simple system for meaningful results! It's a systematic way to achieve both short- and long-term results in all aspects of your life-from work to fun. It offers just enough planning to get you going, but makes it easy to change your course as needed. It also provides fresh starts for your day, week, month, and year. Even if you already use another time management system, Agile Results can supplement it to increase your impact and sense of fulfillment. In today's world, change happens quickly; learn how to be flexible and responsive to new opportunities. Don't just check off tons of stuff from your to-do list; do the things that make a difference. Stop trudging your way through life; bolster your energy with habits that will carry you forward each day. Quit sacrificing your personal life for your work life (or vice versa); give each facet of your life its due and find balance. In other words, learn the skills to go the distance in an ever-changing world. The beauty of Agile Results is that you don't have to adopt the entire system to see the benefits; just start with the following three basic tenets. First, adopt The Rule of 3 and you avoid being overwhelmed and become mindful of your results. Second, adopt the Monday Vision, Daily Outcomes, Friday Refection pattern and you set the wheels in motion for weekly results while giving yourself a fresh start each day and each week. Third, set up boundaries for your Hot Spots and begin to experience work-life balance. When you're ready for more, flip through the chapters to learn how to use stories to design your day, week, month, and year; how to find your motivation; how to improve your productivity; and many more. Agile Results is a time-tested system that J.D. Meier has honed through his years at Microsoft: learning from some of the best minds, leading virtual teams, and mentoring people around the world. It is a system he can bet on time and again. This guide is the playbook for getting results that he wishes somebody had given to him so many years ago. Now, he's sharing it with you.

Modern C++ Programming with Test-Driven Development: Code Better, Sleep Better


Jeff Langr - 2013
    Test-driven development (TDD) is a modern software development practice that can dramatically reduce the number of defects in systems, produce more maintainable code, and give you the confidence to change your software to meet changing needs. But C++ programmers have been ignored by those promoting TDD--until now. In this book, Jeff Langr gives you hands-on lessons in the challenges and rewards of doing TDD in C++.Modern C++ Programming With Test-Driven Development, the only comprehensive treatment on TDD in C++ provides you with everything you need to know about TDD, and the challenges and benefits of implementing it in your C++ systems. Its many detailed code examples take you step-by-step from TDD basics to advanced concepts. As a veteran C++ programmer, you're already writing high-quality code, and you work hard to maintain code quality. It doesn't have to be that hard. In this book, you'll learn: how to use TDD to improve legacy C++ systems how to identify and deal with troublesome system dependencies how to do dependency injection, which is particularly tricky in C++ how to use testing tools for C++ that aid TDD new C++11 features that facilitate TDD As you grow in TDD mastery, you'll discover how to keep a massive C++ system from becoming a design mess over time, as well as particular C++ trouble spots to avoid. You'll find out how to prevent your tests from being a maintenance burden and how to think in TDD without giving up your hard-won C++ skills. Finally, you'll see how to grow and sustain TDD in your team. Whether you're a complete unit-testing novice or an experienced tester, this book will lead you to mastery of test-driven development in C++.What You Need A C++ compiler running under Windows or Linux, preferably one that supports C++11. Examples presented in the book were built under gcc 4.7.2. Google Mock 1.6 (downloadable for free; it contains Google Test as well) or an alternate C++ unit testing tool. Most examples in the book are written for Google Mock, but it isn't difficult to translate them to your tool of choice. A good programmer's editor or IDE. cmake, preferably. Of course, you can use your own preferred make too. CMakeLists.txt files are provided for each project. Examples provided were built using cmake version 2.8.9. Various freely-available third-party libraries are used as the basis for examples in the book. These include: - cURL - JsonCpp - Boost (filesystem, date_time/gregorian, algorithm, assign) Several examples use the boost headers/libraries. Only one example uses cURL and JsonCpp.

Rnotes: Nurse's Clinical Pocket Guide


Ehren Myers - 2002
    It presents practical, clinically-oriented content across a range of topics: quick find features, portability, functionality, and more of the commonly-used clinical information.

Eloquent JavaScript: A Modern Introduction to Programming


Marijn Haverbeke - 2010
    I loved the tutorial-style game-like program development. This book rekindled my earliest joys of programming. Plus, JavaScript!" —Brendan Eich, creator of JavaScriptJavaScript is the language of the Web, and it's at the heart of every modern website from the lowliest personal blog to the mighty Google Apps. Though it's simple for beginners to pick up and play with, JavaScript is not a toy—it's a flexible and complex language, capable of much more than the showy tricks most programmers use it for.Eloquent JavaScript goes beyond the cut-and-paste scripts of the recipe books and teaches you to write code that's elegant and effective. You'll start with the basics of programming, and learn to use variables, control structures, functions, and data structures. Then you'll dive into the real JavaScript artistry: higher-order functions, closures, and object-oriented programming.Along the way you'll learn to:Master basic programming techniques and best practices Harness the power of functional and object-oriented programming Use regular expressions to quickly parse and manipulate strings Gracefully deal with errors and browser incompatibilities Handle browser events and alter the DOM structure Most importantly, Eloquent JavaScript will teach you to express yourself in code with precision and beauty. After all, great programming is an art, not a science—so why settle for a killer app when you can create a masterpiece?