Banner 468x 60

Sunday, January 31, 2010

From Algorithms to Vision Systems


The Machine Vision Group of University of Oulu was established when Matti Pietikäinen returned from his research visit to University of Maryland at the end of October, 1981. The 25th Anniversary of the group was celebrated on 6th September 2006. On that day, the group published an anniversary book and organized a jubilee seminar.

Download the book as PDF files:
  • Table of Contents (36 KB)
  • Part I (66 KB)
    • To the reader
    • Introduction
  • Part II (1.5 MB)
    • 1. Machine vision research in Oulu from 1970s to 2006
    • 2. Highlights of scientific discoveries
    • 3. Transferring machine vision technology to the industry
    • 4. Reminiscing: personal views on the past 25 years
    • 5. Future perspectives
  • Part III (21 MB)
    • 6. Selected scientific publications
  • Appendices (99 KB)
    • List of theses
    • Tiivistelmä
Read more ...

Thursday, January 7, 2010

Linux Device Drivers, 2nd Edition



Updated to cover version 2.4.x of the Linux kernel, the second edition of Linux Device Drivers remains the best general-purpose, paper-bound guide for programmers wishing to make hardware devices work under the world's most popular open-source operating system. The authors take care to show how to write drivers that are portable--that is, that compile and run under all popular Linux platforms. That, along with the fact that they're careful to explain and illustrate concepts, makes this book very well suited to any programmer familiar with C but not with the hardware-software interface. It's worth noting that the emphasis in the title is on "device drivers" as much as "Linux." This book will make sense to you if you've never written a driver for any platform before. It helps if you have some Linux or Unix background, but even that is secondary as a prerequisite to C skill.

Table of Contents



Preface
Chapter 1: An Introduction to Device Drivers
Chapter 2: Building and Running Modules
Chapter 3: Char Drivers
Chapter 4: Debugging Techniques
Chapter 5: Enhanced Char Driver Operations
Chapter 6: Flow of Time
Chapter 7: Getting Hold of Memory
Chapter 8: Hardware Management
Chapter 9: Interrupt Handling
Chapter 10: Judicious Use of Data Types
Chapter 11: kmod and Advanced Modularization
Chapter 12: Loading Block Drivers
Chapter 13: mmap and DMA
Chapter 14: Network Drivers
Chapter 15: Overview of Peripheral Buses
Chapter 16: Physical Layout of the Kernel Source
Bibliography
Index

Read more ...

Thursday, December 17, 2009

Java GUI Builders

Read more ...

Monday, December 14, 2009

Introduction to Computer Science in Java by Robert Sedgewick and Kevin Wayne


  • Chapter 1: Elements of Programming introduces variables, assignment statements, built-in types of data, conditionals and loops, arrays, and input/output, including graphics and sound.
  • Chapter 2: Functions introduces modular programming. We stress the fundamental idea of dividing a program into components that can be independently debugged, maintained, and reused.
  • Chapter 3: Object Oriented Programming introduces data abstraction. We emphasize the concept of a data type and its implementation using Java's class mechanism.
  • Chapter 4: Algorithms and Data Structures introduces classical algorithms for sorting and searching and fundamental data structures, including stacks, queues, and symbol tables.
  • Chapter 5: A Computing Machine introduces an imaginary machine that is similar to real computers. We specify the machine in full detail and consider machine-language programs.
  • Chapter 6: Circuits introduces circuits and logical design, culminating in a description of how a machine might be built from the ground up.
  • Chapter 7: Theory of Computation introduces the scientific discipline concerned with understanding (efficient) computational phenomena, whether it be man-made, in nature, or imaginary.
  • Chapter 8: Systems introduces the basic components of computer systems that support programming: compilers, operating systems, networks, and application systems.
  • Chapter 9: Scientific Computation introduces some of the most important algorithms that play crucial roles in our computational infrastructure, including numerical integration, matrix computation, data analysis, and Monte Carlo simulation.
Read more ...

Introduction to Computing Explorations in Language, Logic, and Machines

Introduction to Computing

Explorations in Language, Logic, and Machines



This book is a survey introduction to the most important ideas in
computing. It focuses on how to describe information processes by
defining procedures, how to analyze the costs required to carry out
a procedure, and the fundamental limits of what can and cannot be
computed mechanically.

Contents

Contents and Index [PDF] (11 pages)

Introduction

Chapter 1: Computing [PDF] (19 pages)

Part I: Defining Procedures

Chapter 2: Language [PDF] (17 pages)
Chapter 3: Programming [PDF] (20 pages)
Chapter 4: Problems and Procedures [PDF] (24 pages)
Chapter 5: Data [PDF] (33 pages)
[List Procedures Code, Pegboard Code]

Part II: Analyzing Procedures

Chapter 6: Machines [PDF] (21 pages)
Chapter 7: Cost [PDF] (29 pages)
Chapter 8: Sorting and Searching [PDF] (36 pages) [Code]

Part III: Improving Expressiveness

Chapter 9: Mutation [PDF] (17 pages)
Chapter 10: Objects [PDF] (18 pages)
Chapter 11: Interpreters [PDF] (27 pages) [Charme Interpreter Code]

Part IV: The Limits of Computing

Chapter 12: Computability [PDF] (16 pages)
Chapter 13: Intractability (not yet available)


Download entire book
Read more ...

Friday, December 11, 2009

GUI Programming in Java


Lecture Notes:
  1. Intro to Java: getting started, applets
  2. Swing: the Java GUI components
  3. Events: responding to user input
  4. Graphics: basic 2D painting
  5. Manipulation: advanced user input, dragging, etc.
  6. Animation
  7. JSP: Java Server Pages
Code Samples:
  1. Annoying: hello world for swing events
  2. Draw: basic graphics and user input
  3. Manip: advanced user input, dragging graphics
  4. Anim: basic animation loop
Exercises:
Read more ...

Thursday, December 10, 2009

C++ GUI Programming with Qt 3


Many companies are facing problems with Windows development using traditional Windows tools such as Visual Studio. When they write applications, even just "single platform" applications for Windows, they often have to account for differences between different Windows versions, which adds hassle to development and maintenance. Qt works no matter the Windows versions. This book provides all the information needed to become a professional Qt developer. The book also covers cross platform GUI programming--programmers can be working on Windows, Linux, or Mac and the book will work for them. This is useful for commercial companies that use Qt, and for companies that are evaluating Qt. It will also be valuable to the vast number of open source developers who already use Qt since no other book of comparable quality or comprehensiveness is available. This book teaches Qt's idioms and how to use Qt to best advantage. The book is organized into four parts. The first part introduces the C++ necessary for the effective use of Qt. The second part covers basic Qt, starting with some very short examples, and quickly building up to a complete Graphical User Interface program.The second part provides coverage of key Qt features including signals. The third and fourth parts cover more advanced and specialized material.

From the back cover:
"...not only the best book on Qt I have ever seen, but also the best book presenting any programming framework. Every sentence appears to be carefully worded, and every chapter has a sound concept, and so does the work as a whole." --Matthias Ettrich, Trolltech's lead developer, founder of the KDE project
"The 'Tao of Qt'.... The Qt system is a beautiful example of object oriented design, and the authors take advantage of this.... The authors have done an excellent job of presenting the subject in an interesting and engaging way...." --Ron McCarty, Instructor and Chair of the Department of Computer Science, Penn State Erie, The Behrend College
The first official Trolltech guide to Qt 3.2 programming!
Straight from Trolltech, this book covers all you need to build industrial-strength applications with Qt 3.2.x and C++--applications that run natively on Windows, Linux/Unix, Mac OS X, and embedded Linux with no source code changes! The book teaches solid Qt programming practices; it is not a rehash of the documentation.
  • Build powerful C++ GUI applications quickly and easily
  • Design dialogs and main windows visually and in code
  • Learn Qt's innovative typesafe signals and slots mechanism
  • Use layouts to create forms that automatically size and scale
  • Create custom signals, slots, events, and controls
  • Program the ''Qt way'' with techniques for Qt 3.2 that'll work with Qt 4
  • Code applications with menus, toolbars, dialogs, and drag and drop
  • Utilize 2D and 3D graphics, multithreading, and networking
  • Write database and XML applications
  • Internationalize to reach foreign markets
  • Exploit platform-specific-features like ActiveX
Already using Qt or just starting out? Evaluating Qt or managing it? Building open source applications--or commercial applications? Want to develop for Windows without buying an expensive compiler? Whatever your goal, this is the only book you need!



Read more ...

Wednesday, November 18, 2009

Well Played 1.0: Video Games, Value and Meaning



Video games can be “well played” in two senses. On the one hand, well played is to games as well read is to books. On the other hand, well played as in well done. This book is full of in-depth close readings of video games that parse out the various meanings to be found in the experience of playing a game. 22 contributors (developers, scholars, reviewers and bloggers) look at video games through both senses of “well played.” The goal is to help develop and define a literacy of games as well as a sense of their value as an experience. Video games are a complex medium that merits careful interpretation and insightful analysis.




Read more ...

Thursday, November 12, 2009

Blender Basics- 3rd Edition Classroom Tutorial Book

Read more ...
 
Book Slip