If you’ve ever spent hours renaming files or updating hundreds of spreadsheet cells, you know how tedious tasks like these can be. But what if you could have your computer do them for you? In Automate the Boring Stuff with Python, you’ll learn how to use Python to write programs that do in minutes what would take you hours to do by hand—no prior programming experience required. Once you’ve mastered the basics of programming, you’ll create Python programs that effortlessly perform useful and impressive feats of automation to: –Search for text in a file or across multiple files –Create, update, move, and rename files and folders –Search the Web and download online content –Update and format data in Excel spreadsheets of any size –Split, merge, watermark, and encrypt PDFs –Send reminder emails and text notifications –Fill out online forms Step-by-step instructions walk you through each program, and practice projects at the end of each chapter challenge you to improve those programs and use your newfound skills to automate similar tasks. Don’t spend your time doing work a well-trained monkey could do. Even if you’ve never written a line of code, you can make your computer do the grunt work. Learn how in Automate the Boring Stuff with Python. Note: The programs in this book are written to run on Python 3.
You've experienced the shiny, point-and-click surface of your Linux computer—now dive below and explore its depths with the power of the command line. The Linux Command Line takes you from your very first terminal keystrokes to writing full programs in Bash, the most popular Linux shell. Along the way you'll learn the timeless skills handed down by generations of gray-bearded, mouse-shunning gurus: file navigation, environment configuration, command chaining, pattern matching with regular expressions, and more. In addition to that practical knowledge, author William Shotts reveals the philosophy behind these tools and the rich heritage that your desktop Linux machine has inherited from Unix supercomputers of yore. As you make your way through the book's short, easily-digestible chapters, you'll learn how to: –Create and delete files, directories, and symlinks –Administer your system, including networking, package installation, and process management –Use standard input and output, redirection, and pipelines –Edit files with Vi, the world’s most popular text editor –Write shell scripts to automate common or boring tasks –Slice and dice text files with cut, paste, grep, patch, and sed Once you overcome your initial "shell shock," you'll find that the command line is a natural and expressive way to communicate with your computer. Just don't be surprised if your mouse starts to gather dust.
This textbook introduces the “Fundamentals of Multimedia”, addressing real issues commonly faced in the workplace. The essential concepts are explained in a practical way to enable students to apply their existing skills to address problems in multimedia. Fully revised and updated, this new edition now includes coverage of such topics as 3D TV, social networks, high-efficiency video compression and conferencing, wireless and mobile networks, and their attendant technologies. Features: presents an overview of the key concepts in multimedia, including color science; reviews lossless and lossy compression methods for image, video and audio data; examines the demands placed by multimedia communications on wired and wireless networks; discusses the impact of social media and cloud computing on information sharing and on multimedia content search and retrieval; includes study exercises at the end of each chapter; provides supplementary resources for both students and instructors at an associated website.
Modern web applications are built on a tangle of technologies that have been developed over time and then haphazardly pieced together. 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.
You Will Learn Python 3! Zed Shaw has perfected the world’s best system for learning Python 3. Follow it and you will succeed—just like the millions of beginners Zed has taught to date! You bring the discipline, commitment, and persistence; the author supplies everything else. In Learn Python 3 the Hard Way, you’ll learn Python by working through 52 brilliantly crafted exercises. Read them. Type their code precisely. (No copying and pasting!) Fix your mistakes. Watch the programs run. As you do, you’ll learn how a computer works; what good programs look like; and how to read, write, and think about code. Zed then teaches you even more in 5+ hours of video where he shows you how to break, fix, and debug your code—live, as he’s doing the exercises. Install a complete Python environment Organize and write code Fix and break code Basic mathematics Variables Strings and text Interact with users Work with files Looping and logic Data structures using lists and dictionaries Program design Object-oriented programming Inheritance and composition Modules, classes, and objects Python packaging Automated testing Basic game development Basic web development It’ll be hard at first. But soon, you’ll just get it—and that will feel great! This course will reward you for every minute you put into it. Soon, you’ll know one of the world’s most powerful, popular programming languages. You’ll be a Python programmer. This Book Is Perfect For Total beginners with zero programming experience Junior developers who know one or two languages Returning professionals who haven’t written code in years Seasoned professionals looking for a fast, simple, crash course in Python 3
Tired of reading HTML books that only make sense after you're an expert? Then it's about time you picked up Head First HTML and really learned HTML. You want to learn HTML so you can finally create those web pages you've always wanted, so you can communicate more effectively with friends, family, fans, and fanatic customers. You also want to do it right so you can actually maintain and expand your web pages over time so they work in all browsers and mobile devices. Oh, and if you've never heard of CSS, that's okay--we won't tell anyone you're still partying like it's 1999--but if you're going to create web pages in the 21st century then you'll want to know and understand CSS. Learn the real secrets of creating web pages, and why everything your boss told you about HTML tables is probably wrong (and what to do instead). Most importantly, hold your own with your co-worker (and impress cocktail party guests) when he casually mentions how his HTML is now strict, and his CSS is in an external style sheet. With Head First HTML, you'll avoid the embarrassment of thinking web-safe colors still matter, and the foolishness of slipping a font tag into your pages. Best of all, you'll learn HTML and CSS in a way that won't put you to sleep. If you've read a Head First book, you know what to expect: a visually-rich format designed for the way your brain works. Using the latest research in neurobiology, cognitive science, and learning theory, this book will load HTML and CSS into your brain in a way that sticks. So what are you waiting for? Leave those other dusty books behind and come join us in Webville. Your tour is about to begin.
This book is intended for anyone starting out with PHP programming. If you’ve previously worked in another programming language such as Java, C#, or Perl, you’ll probably pick up the concepts in the earlier chapters quickly; however, the book assumes no prior experience of programming or of building Web applications. That said, because PHP is primarily a Web technology, it will help if you have at least some knowledge of other Web technologies, particularly HTML and CSS. Many Web applications make use of a database to store data, and this book contains three chapters on working with MySQL databases. Once again, if you’re already familiar with databases in general — and MySQL in particular — you’ll be able to fly through these chapters. However, even if you’ve never touched a database before in your life, you should still be able to pick up a working knowledge by reading through these chapters.
Experience learning made easy—and quickly teach yourself how to create impressive documents with Word 2007. With Step By Step, you set the pace—building and practicing the skills you need, just when you need them! Apply styles and themes to your document for a polished look Add graphics and text effects—and see a live preview Organize information with new SmartArt diagrams and charts Insert references, footnotes, indexes, a table of contents Send documents for review and manage revisions Turn your ideas into blogs, Web pages, and more Your all-in-one learning experience includes: Files for building skills and practicing the book’s lessons Fully searchable eBook Bonus quick reference to the Ribbon, the new Microsoft Office interface Windows Vista Product Guide eBook—plus more resources and extras on CD For customers who purchase an ebook version of this title, instructions for downloading the CD files can be found in the ebook.
Human culture depends on our ability to disseminate information, and then maintain and access it over time. This book addresses the problems of storing, reading, and using digital data for periods longer than 50 years. They offer concise descriptions of markup and document description languages like TIFF, PDF, HTML, and XML, explain important techniques such as migration and emulation, and present the OAIS (Open Archival Information System) Reference Model.
Master C++ “The Qt Way” with Modern Design Patterns and Efficient Reuse This fully updated, classroom-tested book teaches C++ “The Qt Way,” emphasizing design patterns and efficient reuse. Readers will master both the C++ language and Qt libraries, as they learn to develop maintainable software with well-defined code layers and simple, reusable classes and functions. Every chapter of this edition has been improved with new content, better organization, or both. Readers will find extensively revised coverage of QObjects, Reflection, Widgets, Main Windows, Models and Views, Databases, Multi-Threaded Programming, and Reflection. This edition introduces the powerful new Qt Creator IDE; presents new multimedia APIs; and offers extended coverage of Qt Designer and C++ Integration. It has been restructured to help readers start writing software immediately and write robust, effective software sooner. The authors introduce several new design patterns, add many quiz questions and labs, and present more efficient solutions relying on new Qt features and best practices. They also provide an up-to-date C++ reference section and a complete application case study. Master C++ keywords, literals, identifiers, declarations, types, and type conversions. Understand classes and objects, organize them, and describe their interrelationships. Learn consistent programming style and naming rules. Use lists, functions, and other essential techniques. Define inheritance relationships to share code and promote reuse. Learn how code libraries are designed, built, and reused. Work with QObject, the base class underlying much of Qt. Build graphical user interfaces with Qt widgets. Use templates to write generic functions and classes. Master advanced reflective programming techniques. Use the Model-View framework to cleanly separate data and GUI classes. Validate input using regular expressions and other techniques. Parse XML data with SAX, DOM, and QXmlStreamReader. Master today’s most valuable creational and structural design patterns. Create, use, monitor, and debug processes and threads. Access databases with Qt’s SQL classes. Manage memory reliably and efficiently. Understand how to effectively manage QThreads and use QtConcurrent algorithms. Click here to obtain supplementary materials for this book.
What do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries. Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of computers and other smart machines. It’s a cleverly illustrated and eminently comprehensible story—and along the way, you’ll discover you’ve gained a real context for understanding today’s world of PCs, digital media, and the Internet. No matter what your level of technical savvy, CODE will charm you—and perhaps even awaken the technophile within.
This is the eBook of the printed book and may not include any media, website access codes, or print supplements that may come packaged with the bound book. Computer Networks, 5/e is appropriate for Computer Networking or Introduction to Networking courses at both the undergraduate and graduate level in Computer Science, Electrical Engineering, CIS, MIS, and Business Departments. Tanenbaum takes a structured approach to explaining how networks work from the inside out. He starts with an explanation of the physical layer of networking, computer hardware and transmission systems; then works his way up to network applications. Tanenbaum's in-depth application coverage includes email; the domain name system; the World Wide Web (both client- and server-side); and multimedia (including voice over IP, Internet radio video on demand, video conferencing, and streaming media. Each chapter follows a consistent approach: Tanenbaum presents key principles, then illustrates them utilizing real-world example networks that run through the entire book—the Internet, and wireless networks, including Wireless LANs, broadband wireless and Bluetooth. The Fifth Edition includes a chapter devoted exclusively to network security. The textbook is supplemented by a Solutions Manual, as well as a Website containing PowerPoint slides, art in various forms, and other tools for instruction, including a protocol simulator whereby students can develop and test their own network protocols.
The Only Official, Best-Practice Guide to Qt 4.3 Programming 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
Computational biology, mathematical biology, biology and biomedicine are currently undergoing spectacular progresses due to a synergy between technological advances and inputs from physics, chemistry, mathematics, statistics and computer science. The goal of this book is to evidence this synergy by describing selected developments in the following fields: bioinformatics, biomedicine and neuroscience. This work is unique in two respects - first, by the variety and scales of systems studied and second, by its presentation: Each chapter provides the biological or medical context, follows up with mathematical or algorithmic developments triggered by a specific problem and concludes with one or two success stories, namely new insights gained thanks to these methodological developments. It also highlights some unsolved and outstanding theoretical questions, with a potentially high impact on these disciplines. Two communities will be particularly interested in this book. The first one is the vast community of applied mathematicians and computer scientists, whose interests should be captured by the added value generated by the application of advanced concepts and algorithms to challenging biological or medical problems. The second is the equally vast community of biologists. Whether scientists or engineers, they will find in this book a clear and self-contained account of concepts and techniques from mathematics and computer science, together with success stories on their favorite systems. The variety of systems described represents a panoply of complementary conceptual tools. On a practical level, the resources listed at the end of each chapter (databases, software) offer invaluable support for getting started on a specific topic in the fields of biomedicine, bioinformatics and neuroscience.
The most complete and current guide to architectural acoustics principles and practices Design and construct audiophile-quality sonic environments of all sizes--from home theaters and project studios to large-scale recording studios. Thoroughly revised to include new acoustical design techniques, Master Handbook of Acoustics, Sixth Edition, explains the art and science of room acoustics and architecture by combining theoretical instruction with matter-of-fact engineering advice. Written by renowned experts in the field and refined through several editions, this fully updated classic describes the fundamentals of acoustical properties, as well as the latest solutions to acoustical problems. Throughout, this authoritative text provides clear explanations, describes hands-on techniques, and features numerous room designs that can be built as presented, or adapted to your particular needs. Understand how sound waves travel in free fields and in enclosed spaces Learn how human sound perception and psychoacoustics affect room design Calculate and predict reflections, reverberation times, and room modes Perform acoustical measurements and site surveys, and choose construction materials Design, build, and install treatment modules to optimize early reflections, reverberation, and diffusion Design and build home theaters, home studios, control rooms, recording studios, and other acoustically sensitive spaces Reduce HVAC noise levels, and achieve excellent sound isolation with proven wall, window, and door designs Understand the acoustics of auditoriums and concert halls Utilize the supplied cost-effective plans and specifications for a variety of recording and listening rooms
Widely considered one of the best practical guides to programming, Steve McConnell’s original CODE COMPLETE has been helping developers write better software for more than a decade. 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
MATLABä-the tremendously popular computation, numerical analysis, signal processing, data analysis, and graphical software package-allows virtually every scientist and engineer to make better and faster progress. As MATLAB's world-wide sales approach a half-million with an estimated four million users, it becomes a near necessity that professionals and students have a level of competence in its use. Until now, however, there has been no book that quickly and effectively introduces MATLAB's capabilities to new users and assists those with more experience down the path toward increasingly sophisticated work. Basics of MATLAB and Beyond is just such a book. Its hands-on, tutorial approach gently takes new users by the hand and leads them to competence in all the fundamentals of MATLAB. Then, with equal effectiveness, it covers the advanced topics that lead to full, creative exploitation of MATLAB's awesome power. With this book, readers will: Solve more problems with MATLAB-and solve them faster Create clearer, more beautiful graphics with control over every detail Create their own MATLAB code Share their work by exporting data and graphics to other applications Develop graphical user interfaces Based on the latest 5.x release, Basics of MATLAB and Beyond supplies both novice and experienced users the tools they need to gain proficiency, increase productivity, and ultimately have more fun with MATLAB.
This book equips readers with a deeper understanding of the challenges posed by radical socioeconomic, environmental, and cultural changes due to globalization and describes effective, sustainable solutions to these challenges. The focus is especially on the rapid urbanization processes in countries of the Global South, which are giving rise to dramatic new problems of spatial and social inequality and difficult environmental challenges in relation to climate change. Readers will gain skills and knowledge that will help them to develop an integrated, multidisciplinary approach to planning, design, and management of urban settlements and territories in contexts with a high level of social, economic, territorial, and landscape vulnerability. The coverage includes, for example, strategies to promote social inclusion, improve housing quality, ensure adequate education, protect cultural heritage, enhance risk management, and address issues in the food-energy-water nexus. Among the authors are leading experts from the Polytechnic University of Milan, where a multidisciplinary set of studies and research projects in the field have been undertaken in recent years.
Based on unprecedented access he received to the highly secretive "Googleplex," acclaimed New York Times columnist Randall Stross takes readers deep inside Google, the most important, most innovative, and most ambitious company of the Internet Age. His revelations demystify the strategy behind the company's recent flurry of bold moves, all driven by the pursuit of a business plan unlike any other: to become the indispensable gatekeeper of all the world's information, the one-stop destination for all our information needs. Will Google succeed? And what are the implications of a single company commanding so much information and knowing so much about us? As ambitious as Google's goal is, with 68 percent of all Web searches (and growing), profits that are the envy of the business world, and a surplus of talent, the company is, Stross shows, well along the way to fulfilling its ambition, becoming as dominant a force on the Web as Microsoft became on the PC. Google isn't just a superior search service anymore. In recent years it has launched a dizzying array of new services and advanced into whole new businesses, from the introductions of its controversial Book Search and the irresistible Google Earth, to bidding for a slice of the wireless-phone spectrum and nonchalantly purchasing YouTube for $1.65 billion. Google has also taken direct aim at Microsoft's core business, offering free e-mail and software from word processing to spreadsheets and calendars, pushing a transformative -- and highly disruptive -- concept known as "cloud computing." According to this plan, users will increasingly store all of their data on Google's massive servers -- a network of a million computers that amounts to the world's largest supercomputer, with unlimited capacity to house all the information Google seeks. The more offerings Google adds, and the more ubiquitous a presence it becomes, the more dependent its users become on its services and the more information they contribute to its uniquely comprehensive collection of data. Will Google stay true to its famous "Don't Be Evil" mantra, using its power in its customers' best interests? Stross's access to those who have spearheaded so many of Google's new initiatives, his penetrating research into the company's strategy, and his gift for lively storytelling produce an entertaining, deeply informed, and provocative examination of the company's audacious vision for the future and the consequences not only for the business world, but for our culture at large.
Hacking is the art of creative problem solving, whether that means finding an unconventional solution to a difficult problem or exploiting holes in sloppy programming. Many people call themselves hackers, but few have the strong technical foundation needed to really push the envelope. Rather than merely showing how to run existing exploits, author Jon Erickson explains how arcane hacking techniques actually work. To share the art and science of hacking in a way that is accessible to everyone, Hacking: The Art of Exploitation, 2nd Edition introduces the fundamentals of C programming from a hacker's perspective. The included LiveCD provides a complete Linux programming and debugging environment—all without modifying your current operating system. Use it to follow along with the book's examples as you fill gaps in your knowledge and explore hacking techniques on your own. Get your hands dirty debugging code, overflowing buffers, hijacking network communications, bypassing protections, exploiting cryptographic weaknesses, and perhaps even inventing new exploits. This book will teach you how to: – Program computers using C, assembly language, and shell scripts – Corrupt system memory to run arbitrary code using buffer overflows and format strings – Inspect processor registers and system memory with a debugger to gain a real understanding of what is happening – Outsmart common security measures like nonexecutable stacks and intrusion detection systems – Gain access to a remote server using port-binding or connect-back shellcode, and alter a server's logging behavior to hide your presence – Redirect network traffic, conceal open ports, and hijack TCP connections – Crack encrypted wireless traffic using the FMS attack, and speed up brute-force attacks using a password probability matrix Hackers are always pushing the boundaries, investigating the unknown, and evolving their art. Even if you don't already know how to program, Hacking: The Art of Exploitation, 2nd Edition will give you a complete picture of programming, machine architecture, network communications, and existing hacking techniques. Combine this knowledge with the included Linux environment, and all you need is your own creativity.
Currently used at many colleges, universities, and high schools, this hands-on introduction to computer science is ideal for people with little or no programming experience. The goal of this concise book is not just to teach you Java, but to help you think like a computer scientist. You’ll learn how to program—a useful skill by itself—but you’ll also discover how to use programming as a means to an end. Authors Allen Downey and Chris Mayfield start with the most basic concepts and gradually move into topics that are more complex, such as recursion and object-oriented programming. Each brief chapter covers the material for one week of a college course and includes exercises to help you practice what you’ve learned. Learn one concept at a time: tackle complex topics in a series of small steps with examples Understand how to formulate problems, think creatively about solutions, and write programs clearly and accurately Determine which development techniques work best for you, and practice the important skill of debugging Learn relationships among input and output, decisions and loops, classes and methods, strings and arrays Work on exercises involving word games, graphics, puzzles, and playing cards
The Metasploit Framework makes discovering, exploiting, and sharing vulnerabilities quick and relatively painless. But while Metasploit is used by security professionals everywhere, the tool can be hard to grasp for first-time users. Metasploit: The Penetration Tester's Guide fills this gap by teaching you how to harness the Framework and interact with the vibrant community of Metasploit contributors. Once you've built your foundation for penetration testing, you’ll learn the Framework's conventions, interfaces, and module system as you launch simulated attacks. You’ll move on to advanced penetration testing techniques, including network reconnaissance and enumeration, client-side attacks, wireless attacks, and targeted social-engineering attacks. Learn how to: –Find and exploit unmaintained, misconfigured, and unpatched systems –Perform reconnaissance and find valuable information about your target –Bypass anti-virus technologies and circumvent security controls –Integrate Nmap, NeXpose, and Nessus with Metasploit to automate discovery –Use the Meterpreter shell to launch further attacks from inside the network –Harness standalone Metasploit utilities, third-party tools, and plug-ins –Learn how to write your own Meterpreter post exploitation modules and scripts You'll even touch on exploit discovery for zero-day research, write a fuzzer, port existing exploits into the Framework, and learn how to cover your tracks. Whether your goal is to secure your own networks or to put someone else's to the test, Metasploit: The Penetration Tester's Guide will take you there and beyond.