Saturday, January 31, 2009

Java Threads or Mastering Digital Black and White

Java Threads

Author: Scott Oaks

Threads aren't a new idea: many operating systems and languages support them. But despite widespread support, threads tend to be something that everyone talks about, but few use. Programming with threads has a reputation for being tricky and nonportable.

Not so with Java. Java's thread facilities are easy to use, and -- like everything else in Java -- are completely portable between platforms. And that's a good thing, because it's impossible to write anything but the simplest applet without encountering threads. If you want to work with Java, you have to learn about threads.

This new edition shows you how to take full advantage of Java's thread facilities: where to use threads to increase efficiency, how to use them effectively, and how to avoid common mistakes.

Java Threads, 2nd Edition discusses problems like deadlock, race condition, and starvation in detail, helping you to write code without hidden bugs. It brings you up to date with the latest changes in the thread interface for JDK 1.2.

The book offers a thorough discussion of the Thread and ThreadGroup classes, the Runnable interface, the language's synchronized operator. It explains thread scheduling ends by developing a CPUSchedule class, showing you how to implement your own scheduling policy. In addition, Java Threads, 2nd Edition shows you how to extend Java's thread primitives. Other extended examples include classes that implement reader/writer locks, general locks, locks at arbitrary scope, and asynchronous I/O. This edition also adds extensive examples on thread pools, advanced synchronization technique, like condition variables, barriers, and daemon locks. It shows how to work with classes that are not thread safe, and pays special attention to threading issues with Swing. A new chapter shows you how to write parallel code for multiprocessor machines.

In short, Java Threads, 2nd Edition covers everything you need to know about threads, from the simplest animation applet to the most complex applications. If you plan to do any serious work in Java, you will find this book invaluable. Examples available online. Covers Java 2.

Library Journal

Cadenhead's Teach Yourself Java 2 in 24 Hours is a definite beginner's book, a self-tutorial in 24 one-hour chapters. The guides on networking, Threads (the ability of Java to multitask by allowing for multiple processes and actions at the same time), and Swing (a powerful Java interface package for visual design) are for advanced Java programmers but will fit well within most libraries. Copyright 1999 Cahners Business Information.

Library Journal

O'Reilly books have a reputation among programmers for providing some of the best technical information for professionals. No exception, these three web-related books will only enhance O'Reilly's reputation. JavaScript is not Java, but it is very useful because JavaScript code does not need to be compiled and the scripts can be embedded directly into an HTML document. Flanagan's work is an excellent book for programmers interested in learning it quickly. Grand, meanwhile, provides an exceptionally clear discussion of Java itself that is particularly useful for a working programmer moving from C++ to Java. Threads are what makes Java a particularly useful language for multiprocessingthe ability to appear to do more than one thing at a timewhich is what the Internet is all about. The tricky part of threads is that the concept is new for most users. Oaks offers a very clear discussion of how to spawn a process, when to spawn, and how to synchronize and schedule it, all illustrated with good network examples.



Table of Contents:
Preface
1. Introduction to Threading
Java Terms 1
Thread Overview 3
Why Threads? 6
Summary 11
2. The Java Threading API
Threading Using the Thread Class 12
Threading Using the Runnable Interface 19
The Life Cycle of a Thread 24
Thread Naming 28
Thread Access 30
More on Starting, Stopping, and Joining 34
Summary 37
3. Synchronization Techniques
A Banking Example 40
Reading Data Asynchronously 44
A Class to Perform Synchronization 49
The Synchronized Block 53
Nested Locks 55
Deadlock 58
Return to the Banking Example 61
Synchronizing Static Methods 63
Summary 65
4. Wait and Notify
Back to Work (at the Bank) 67
Wait and Notify 68
wait(), notify(), and notifyAll() 74
wait() and sleep() 77
Thread Interruption 79
Static Methods (Synchronization Details) 85
Summary 86
5. Useful Examples of Java Thread Programming
Data Structures and Containers 88
Simple Synchronization Examples 93
A Network Server Class 101
The AsyncInputStream Class 108
Using TCPServer with AsyncInputStreams 121
Summary 122
6. Java Thread Scheduling
An Overview of Thread Scheduling 124
When Scheduling Is Important 135
Scheduling with Thread Priorities 138
Popular Scheduling Implementations 142
Native Scheduling Support 153
Other Thread-Scheduling Methods 157
Summary 167
7. Java Thread Scheduling Examples
Thread Pools 170
Round-Robin Scheduling 176
Job Scheduling 191
Summary 197
8. Advanced Synchronization Topics
Synchronization Terms 198
Preventing Deadlock 200
Lock Starvation 208
Thread-Unsafe Classes 222
Summary 234
9. Parallelizing for Multiprocessor Machines
Parallelizing a Single-Threaded Program 236
Inner-Loop Threading 255
Loop Printing 259
Multiprocessor Scaling 263
Summary 273
10. Thread Groups
Thread Group Concepts 274
Creating Thread Groups 275
Thread Group Methods 278
Manipulating Thread Groups 283
Thread Groups, Threads, and Security 285
Summary 291
A. Miscellaneous Topics
B. Exceptions and Errors

Index

A

accessing threads, 30-33

AccessNative class (example), 225

Account class (example), 41, 43, 52, 62

active threads, 34, 108, 279

activeCount( ) (Thread), 33, 279

activeGroupCount( ) (ThreadGroup), 280

add( ) (ThreadPool), 172

addItems( ) (ArrayTest; example), 224

addRequest( ) (ThreadPool), 172

addRequestAndWait( ) (ThreadPool), 172

alarms, 9

algorithms, parallelizable, 10

allowThreadSuspension( ) (ThreadGroup), 283

analysis of loops, 250-255

      loop distribution, 251

      loop isolation, 252

      reimplementing loops, 254

Animate applet (example), 17, 22, 25-26, 33, 34

animation, 15, 141

      (see also applets)

Applet class, 15-19

applets, 3

      suspend( ) and resume( ), 157-161

      TCPServer class and, 107

      thread priorities in, 138

applications, 3

array of threads (see enumerate( ))

ArrayTest( ) (example), 224

associativity (mathematic), 248

asynchronous I/O, 44-49, 108-122

AsyncInputStream class (example), 110-121

      TCPServer class with, 121

AsyncReadSocket class (example), 31, 45-46, 108, 114

atomic routines, 42

AutomatedTellerMachine class (example), 41, 62

auto-parallelizing MP C compiler, 245

available( )

      AsyncInputStream class (example), 120

      FilterInputStream class, 9

      InputStream class, 44, 108

B

balancing load, 241-244

Barrier class (example), 94-98

barriers, 94-98, 198

Basic class (example), 267

blocked state, thread, 127

      scheduling and, 189-191

      suspended state, 157

blocking I/O, 8, 117

blocks, synchronized, 53-55, 57, 73

bound threads (Solaris), 151

browsers, 2, 286

BTree class (example), 215

BusyFlag class (example), 50-53, 57, 62, 67-70, 202, 213

      development of, 50-58

      preventing deadlock (example), 203-206

      priority inheritance with, 221

C

CalcRequest class (example), 187

CalcServer class (example), 186-187

CalculateThread class (example), 284

calculation servers, 170

calls, priority, 139-142

cancel( ) ( JobScheduler; example), 195

checkAccess( ), 309

      SecurityManager class, 286-287

      Thread class, 309

      ThreadGroup class, 309

child threads (see thread groups)

chunk scheduling (loops), 241

CircularList class (example), 91-93, 180

CircularListNode class (example), 91

circularly linked lists, 91-93

class locks (see classes, locking)

Class object, 65

classes

      locking, 63-65, 202

      network server, 101-108

      scheduling and, 185

      synchronized, 49-53, 93

ClassExample class (example), 64

classifying variables, 244-250

code, Java (see virtual machine)

collection classes, 93

      synchronized collections, 223

competition for locks, 208-221

condition variables, 98-101, 198

CondVar class (example), 99-101

constructor, thread (see Thread( ))

Consumer class (example), 81

containers, 88-93

countStackFrames( ) (Thread), 295, 307

CPU Processing (see performance)

CPUScheduler class (example), 180-190

CPUSupport class (example), 154-156

      thread pool with, 175

critical section, 199

current (running) thread, 131

currentThread( ) (Thread), 30-32

D

daemon thread groups, 282

daemon threads, 164, 186

DaemonLock class (example), 166, 196

data types, 88-93

DBAccess class (example), 214

deadlock, 54, 58-61, 200-208

      locked threads terminating, 206-208

default

      exception handler, 297-299

      priority, 138

      thread, 128, 131

delete( ) (CircularList; example), 92, 180

deleting threads and thread groups, 276, 281

dereferencing thread objects, 36

destroy( )

      Thread class, 307

      ThreadDeath class, 302

      ThreadGroup class, 281

destroying threads, 299-303

distribution of loops, 251

dumpStack( ) (Thread), 295

E

end-of-file (EOF) indicator, 116, 119

enumerate( )

      Thread class, 32

      ThreadGroup class, 279-280

enumerating thread groups, 278-280

equal-priority threads, 130-132

      yield( ) with, 161-164

errors (see exceptions)

event-dispatching threads, 227

event-related methods, 228

event variables, 198, 199

examples of thread scheduling, 169-197

      job scheduling, 191-197

      round-robin scheduling, 176-191

      thread pools, 170-176

exception handler, 297-299

exceptions, 206, 304-310

execute( ), executeAt( ), executeIn( ) ( JobScheduler; example), 195

executeAtAndRepeat( ), executeInAnd-Repeat( ) ( JobScheduler; example), 195

exiting state, thread, 127, 184

explicit synchronization, 223-226

F

fairness in thread scheduling, 136-138

FilterInputStream class, 109

find( ), 93

finding thread groups, 278

Fractal applet (example), 140, 157-164

freeBusyFlag( ) (BusyFlag; example), 51, 53, 55-58, 70-71

      QueuedBusyFlag class (example), 213

G

garbage collection, 36, 165

      thread pools, 174

getBusyFlag( ) (BusyFlag; example), 51, 53-55, 70-74

      QueuedBusyFlag class (example), 213

getBusyFlagOwner( ) (BusyFlag; example), 55-58

getMaxPriority( ) (ThreadGroup), 281

getName( )

      Thread class, 28, 31

      ThreadGroup class, 282

getParent( ) (ThreadGroup), 278

getPriority( ) (Thread), 139-142

getResource( ) (ResourceThrottle; example), 75

GetSystemInfo( ) (Windows), 155

getThreadGroup( ) (ThreadGroup), 278

global variables (see static variables)

graphical interfaces, 7

green-thread model, 135, 142-146, 190

groups, thread (see thread groups)

guided self-scheduling loops, 242

GuidedLoopInterchanged class (example), 267

H

hierarchy

      lock, 202

      thread, 275, 296

I

I/O (input/output), 8

IllegalArgumentException exception, 308

IllegalMonitorStateException exception, 308

IllegalThreadStateException exception, 307

image loading, 141

inheritance, 19, 24

      priority inheritance, 132

      from ThreadDeath class, 301

initial state, thread, 126

inner loops, 255-259

InputStream class, 44, 108

insert( ) (CircularList; example), 92, 180

instance variables, 4, 6

interactive programs, 125

interfaces, 20, 24

interpreter (see java interpreter)

interprocess communications (IPC), 89

interrupt( )

      Thread class, 79-85

      ThreadGroup class, 283-285

interrupted( ) (Thread), 80

InterruptedException exception, 80, 305

InterruptedIOException exception, 82, 305

interrupting threads, 79-85

inversion of thread priority, 132, 221-222

invokeAndWait( ), 229, 234

invokeLater( ), 231

I/O (input/output), 8

      asynchronous, 44-49, 108-122

      blocking I/O, 8, 117

      interrupted, 82-85

      InterruptedIOException exception, 305

      I/O-intensive programs, 125

IOException, 116, 119

IPC (interprocess communications), 89

isActive( ), 23

isAlive( )

      this reference and, 28

      Thread class, 24-26, 34

isDaemon( )

      Thread class, 165

      ThreadGroup class, 282

isDestroyed( ) (ThreadGroup), 281

isInterrupted( ), 80

isolation, loop, 252

J

Java Foundation Classes, 226

java interpreter, 2

      scheduling (see scheduling threads)

Java, definition of, 1

JDBC-ODBC bridge, 225

JFC, single-thread access with, 226

job scheduling, 191-197

JobScheduler class (example), 191-196

join( ) (Thread), 27-28, 36-37, 305

      barrier synchronization example, 94

      this reference and, 28

joining threads, 26-28, 36-37

jre interpreter, 2

K

Kitchen class (example), 200-202, 203-206

L

level, priority (see priority, thread)

lightweight processes (LWPs), 149-153

linked lists, 91-93

      of thread priorities, 130

list of threads (see enumerate( ))

list( )

      Thread class, 296

      ThreadGroup class, 280

listing threads in groups, 278-280

load balancing, 241-244

loading images, 141

local variables, 4, 6

locks, 199

      barriers, 94-98, 198

      class locks, 63-65

      condition variables, 98-101, 198

      deadlock, 54, 58-61, 200-208

      held by terminating threads, 206-208

      hierarchy of, 202

      IllegalMonitorStateException, 308

      lock starvation, 208-221

            priority-inverting locks, 221-222

      mutex, 43, 199

      nested, 55-58, 61

      reader-writer, 199, 215-221

      releasing without scheduling event, 211

      scope of, 49

LockTest class (example), 145

LoopHandler class (example), 239

LoopPrinter class (example), 271

loops

      analysis and transformation, 250-255

            loop distribution, 251

            loop isolation, 252

            reimplementing loops, 254

      inner-loop threading, 255-259

      loop-private variables, 245

      multilayered, 253

      parallelizing, 10

      printing with, 259-263, 271

      scheduling, 241-244

lwp threading model (see green thread model)

LWPs (lightweight processes), 149-153

M

main( ), 3, 15

makeCookie( ) (Kitchen; example), 200, 203-205

makeOmelette( ) (Kitchen; example), 200, 204

MAX_PRIORITY variable, 138, 280

maximum thread priority, 138, 280

MediaTracker class, 174

memory, shared, 90

message queues, 89

methods

      scope of, 49

      static, 63-65, 78-86

      synchronized, 52, 57, 69, 201

            (see also synchronization)

MIN_PRIORITY variable, 138

monitors, 199

      (see also locks)

MsgQueue class (example), 89

multilayered loops, 253

multiplexing, 8

multiprocessor machines, 7, 235-273

      inner-loop threading, 255-259

      loop printing, 259-263, 271

      multiprocess scaling, 263-273

      single-threaded programs, 236-255

            loop analysis and transformation, 250-255

            loop scheduling and load balancing, 241-244

            variable classification, 244-250

multitasking, 3-5, 89

multithreading, 5-6

      activeCount( ) (Thread), 33

      lock starvation, 208-221

      multiple CPU-intensive threads, 141

      multiprocessor machines and, 235-273

            inner-loop threading, 255-259

            loop printing, 259-263, 271

            multiprocess scaling, 263-273

            single-threaded programs, 236-255

      notify( ) and, 74-77

      reader-writer locks, 199, 215-221

      single-thread access, 226-234

      thread life cycle, 24-28

mutex (mutually exclusive) locks, 43, 199

MyJoinApplet applet (example), 36

MyServer class (example), 107

MyStatic class (example), 64

MyStaticClass class (example), 86

MyThread class (example), 210

N

names, thread, 28-30

nanosecond counting, 17

native-thread model, 135, 153-156

      32-bit Windows, 146-149

      Solaris, 149-153

nested locks, 55-58, 61

network sockets, 44, 101-108

nonblocking I/O, 8

NORM_PRIORITY variable, 138

notify( ) (Object), 68-87, 308

      multiple threads and, 74-77

      in static methods, 85

notifyAll( ) (Object), 74-77, 119, 214, 308

NullPointerException exception, 309

number of threads (see activeCount( ); enumerate( ))

O

Object class, 69

objects, 6

      locking, 48, 56, 63

      (see also instance variables)

OurApplet applet (example), 12, 20-21

OurClass class (example), 12-14, 20

P

parallelizable algorithms, 10

parallelizing for multiprocessor machines, 235-273

      inner-loop threading, 255-259

      loop printing, 259-263, 271

      multiprocess scaling, 263-273

      single-threaded programs, 236-255

            loop analysis and transformation, 250-255

            loop scheduling and load balancing, 241-244

            variable classification, 244-250

parent threads (see thread groups)

parentOf( ) (ThreadGroup), 278

performance, 7, 123

      load balancing, 241-244

      lock starvation, 208-221

      multiple CPU-intensive threads, 141

      scaling and, 265-269

      synchronizing classes, 93

      (see also scheduling threads)

polling, 9

PoolLoopHandler class (example), 256

PoolSelfLoopHandler class (example), 257

printing thread information, 296

printing with loops, 259-263, 271

priority, thread, 127-129

      equal-priority threads, 130-132

            yield( ) with, 161-164

      lock starvation and, 212

      priority inheritance, 132

      priority inversion, 132, 221-222

      round-robin scheduling, 133, 136-138

            examples, 176-191

      scheduling by, 138-142

      thread groups and, 280

      threading models, 134-135

            green-thread model, 135, 142-146, 190

            native-thread model, 135, 146-153

      variables for, 138

PriorityBusyFlag class (example), 221

private variables (see local variables)

ProcessIt class (example), 95-97

programs, 2, 125

Q

QueuedBusyFlag class (example), 213

queues, message, 89

R

race conditions, 35, 46-47

      reduction variables, 247

      stopping stopped threads, 35

      wait and notify mechanism, 69, 72

read( ), 8

read-only variables, 245

reader-writer locks, 199, 215-221

reduction variables, 247-250

references, 56, 108

reimplementing loops, 254

removeThread( ) (CPUScheduler; example), 183-185

removeUseless( ) (example), 59

repaint( ), 233

ResourceThrottle class (example), 75

restarting threads, 35

resume( )

      Thread class, 157-161

      ThreadGroup class, 283-285

round-robin scheduling, 133, 136-138, 176-191, 212

routines, atomic, 42

run( ), 12-15

      CPUScheduler class (example), 182-185

      isAlive( ) and, 26

      StockHandler class (example), 84

      synchronizing, 48-49

      TCPServer class (example), 105

      Thread class, 297, 310

      ThreadPool class (example), 171

Runnable interface, 20-23, 104, 108

      thread pools and, 174

runnable state, thread, 126

run-time exceptions, 206, 306

RuntimeException exception, 306

RWLock class (example), 217

RWNode class (example), 216

S

ScaleTest class (example), 265-269

scaling multiprocessors, 263-273

scheduling threads, 124-167

      equal-priority threads, 130-132

            yield( ) with, 161-164

      examples of, 169-197

      fairness, 136-138

      job scheduling, 191-197

      native scheduling support, 153-156

      by priority, 138-142

            priority inheritance, 132

            priority inversion, 132, 221-222

      round-robin scheduling, 133, 136-138, 212

            examples, 176-191

      suspend( ) and resume( ), 157-161

      synchronization and, 183

      thread pools, 170-176

      threading models, 134-135

            green-thread model, 135, 142-146, 190

            native-thread model, 135, 146-153

      yield( ), 161-164

      (see also priority, thread)

SchedulingExample class (example), 128-129

scope of a lock, 49

security, 285-291

SecurityException exception, 309

SecurityManager class, 285-287

SelfLoopHandler class (example), 242

self-scheduling loops, 242

semaphores, 58, 199

serialization, scaling and, 264

ServerHandler class (example), 106, 121

      thread groups and, 284

servers, network, 101-108

ServerSocket object, 104

setDaemon( )

      Thread class, 165, 307

      ThreadGroup class, 282

setMaxPriority( ) (ThreadGroup), 281

setName( ), 28

setPriority( ) (Thread), 138-142, 185, 308, 309

setResource( ) (ResourceThrottle; example), 75

setup time (for scaling), 263

shared memory, 90

shared variables, 247, 250

ShareMemory class (example), 90

shutdown( ), 85

signals, 9

SimpleScheduler class (example), 177

simultaneous execution, 6

single-thread access, 226-234

single-threaded programs, parallelizing, 236-255

      loop analysis/transformation, 250-255

      loop scheduling and load balancing, 241-244

      variable classification, 244-250

SinTable class (example), 236-238, 240, 244-252, 258, 260, 262

skip( ), 120

sleep( )

      Applet class, 16-18, 23

      Thread class, 78, 305

sockets, 44, 101-108

Solaris native-threading model, 149-153, 156

stack, thread, 295

start( )

      Applet class, 14, 19, 34-35

      Thread class, 297, 307

startServer( ) (TCPServer; example), 104

starvation, lock, 208-221

      priority-inverting locks, 221-222

state, thread, 126

      IllegalThreadStateException, 307

      suspend( ) and resume( ) and, 157-161

      thread groups and, 283-285

      yield( ) and, 161-164

static methods, 63-65, 78-86

      (see also methods)

static scheduling (loops), 241

static variables, 4, 6

staticNotify( ) (example), 86

staticWait( ) (example), 86

StockHandler class (example), 83-85

StockObservable class (example), 83-85

stop( )

      Applet class, 18-19, 26, 34-37

      isAlive( ) and, 26

      Thread class, 309, 310

      ThreadDeath class, 300, 301

      ThreadGroup class, 283-285

stopping threads, 35-37, 299-302

      garbage collection and, 36

      interrupting threads, 79-85

      (see also stop( ))

stopServer( ) (TCPServer; example), 104

storeback variables, 246

      scaling performance and, 270

suspend( )

      Thread class, 157-161

      ThreadGroup class, 283-285

suspended state, thread, 157

SwingTest class (example), 229, 231

symbolic priority values, 139

synchronization, 49-66, 198

      barriers, 94-98, 198

      of blocks, 53-55, 57, 73

      of classes, 49-53, 93

      condition variables (example), 98-101

      deadlock (see deadlock)

      of linked lists, 92

      of methods, 52, 57, 69, 201

      static methods, 63-65, 78-86

      TCPServer class and, 107

      thread scheduler and, 183

      thread-unsafe classes, 222-234

            explicit synchronization for, 223-226

            single-thread access, 226-234

      wait and notify mechanism, 69-74

synchronized keyword, 205

system-level threads, 144, 149

system thread group, 275

T

TargetNotify class (example), 76

TCPServer class (example), 102-108, 175, 186

      applets and, 107

      AsyncInputStream class with, 121

      thread groups with, 277

terminating locked threads, 206-208

Test class (example), 178, 182, 210

TestRead class (example), 32

TestThread class (example), 124-126, 177-179, 181

this reference, join( ) and isAlive( ) with, 28

Thread( ), 14, 21, 29

Thread class, 13-19, 286

thread groups, 274-293

      creating, 275-278

      daemon thread groups, 282

      destroying, 281

      enumerating threads in, 278-280

      finding, 278

      manipulating, 283-285

      priority and, 280

      security and, 285-291

thread pools, 170-176

ThreadDeath class, 299-302

ThreadGroup class, 274, 291-293

      methods of, 278-285

threading models, 134-135

      green-thread model, 135, 142-146, 190

      native-thread model, 135, 146-153

      round-robin scheduling, 133, 136-138, 176-191, 212

ThreadPool class, 170-176

threads, 3-6

      accessing specific, 30-33

      active (see active threads)

      current thread, 30-32

      daemon versus user, 164

      data types for (see data types)

      deadlocked (see deadlock)

      default, 128, 131

      destroying, 299-303

      enumerating thread groups, 278-280

      getting list of (see enumerate( ))

      groups of (see thread groups)

      hierarchy of, 275, 296

      interrupting, 79-85

      joining, 26-28, 36-37

      life cycle of, 24-28

      multiple (see multithreading)

      multiprocessor machines and, 235-273

            inner-loop threading, 255-259

            loop printing, 259-263, 271

            multiprocess scaling, 263-273

      naming, 28-30

      native scheduling support, 153-156

      number of (see activeCount( ))

      popular scheduling implementa-tions, 142-153

            green-thread model, 142-146

            Solaris native threads, 149-153

            Windows native threads, 146-149

      priority (see priority, thread)

      putting to sleep (see sleep( ))

      restarting, 35

      scheduling examples, 169-197

            job scheduling, 191-197

            round-robin scheduling, 176-191

            thread pools, 170-176

      single-threaded programs, 236-255

            loop analysis and
transformation, 250-255

            loop scheduling and load balancing, 241-244

            variable classification, 244-250

      stack information, 295

      stopping, 18-19, 35-37

      system- and user-level, 144, 149

thread-unsafe classes, 222-234

      explicit synchronization for, 223-226

      single-thread access, 226-234

timeouts, 9, 77-79

timers, 9, 15, 136-138, 177-179

TimerThread class (example), 16, 28

timesliced behavior (see round-robin scheduling)

toString( ) (Thread), 296

transformation, loops, 250-255

      loop distribution, 251

      loop isolation, 252

      reimplementing loops, 254

tryGetBusyFlag( )

      BusyFlag class (example), 53

      QueuedBusyFlag class (example), 213

tryGetBusyFlag( ) (BusyFlag; example), 72

U

uncaughtException( )

      Thread class, 298

      ThreadGroup class, 282

updateFolders( ) (example), 59

user threads, 164

user-defined scheduler (loops), 243

user-level threads, 144, 149

      (see also green-thread model)

V

variables, 4

      classification of, 244-250

      condition variables, 98-101, 198

      global (see static variables)

      loop-private, 245

      private (see local variables)

      read-only, 245

      reduction, 247-250

      shared, 247, 250

      storeback variables, 246, 270

      thread priority, 138

Vector class (example), 212, 213

virtual machine, 2

      daemon versus user threads, 165

      enumerating threads in, 32

      scaling and, 264

W

wait( ) (Object), 68-87, 305, 308

      in static methods, 85

WaitExample class (example), 78

waitForAll( ) (ThreadPool), 173, 174

waking up threads (see notify( ), notifyAll( ))

web browsers, 2

      SecurityManager class and, 286

Windows native-threading model, 146-149, 155

Y

yield( ) (Thread), 161-164

New interesting book: HTML Utopia or Take Back Your Life Special Edition

Mastering Digital Black and White: A Photographer's Guide to High Quality Black-and-White Imaging and Printing

Author: Amadou Diallo

The very nature of black and white photography places a premium on creative interpretation of the image. Advances in digital technology have expanded both the precision of imaging techniques and the interpretive possibilities for black and white imagery. Never before has such a wide array of tools been available to photographers who have a passion for black and white. Mastering Digital Black and White is written for these photographers. It serves not only as a comprehensive guide for creating black and white images and prints, but also examines the role of artistic craft in the imaging process. Learn how to employ your digital tools as extensions of your photographic vision. Read in-depth interviews with, and view images from, five accomplished photographers as they discuss their process and inspirations. Prepare to indulge your passion for gallery-quality black-and-white images in the digital darkroom.



Friday, January 30, 2009

HTML Utopia or Take Back Your Life Special Edition

HTML Utopia: Designing Without Tables Using CSS

Author: Rachel Andrew

HTML Utopia: Designing Without Tables Using CSS, 2nd Edition is for web developers looking to create websites using Cascading Style Sheets for layout, which allow for faster page downloads, easier maintenance, faster Website re-designs, and better search engine optimization.

HTML Utopia covers all aspects of using Cascading Style Sheets in Web Development, and is a must-read for Web Developers designing new sites or upgrading existing ones to use CSS layouts.

This book includes one of the most comprehensive CSS2 references on the market. Jeffrey Zeldman, web design guru and co-founder of the Web Standards Project, says "After reading this book, you will not only understand how to use CSS to emulate old-school, table driven web layouts, you will be creating Web sites that would be impossible to design using traditional methods."

The second edition of this popular book includes brand new coverage of Internet Explorer 7, Firefox 1.1, new CSS Solutions, and greatly expanded coverage of popular, cross-browser, CSS layout techniques.



Book about: Americanization of Benjamin Franklin or What Orwell Didnt Know

Take Back Your Life, Special Edition: Using Microsoft Outlook to Get Organized

Author: Sally McGhe

Unrelenting e-mail. Conflicting commitments. Endless interruptions. In Take Back Your Life! Special Edition, productivity expert Sally McGhee shows you how to take control and reclaim something that you thought you'd lost forever-your work-life balance. Now you can benefit from Sally's popular and highly-regarded corporate education programs, learning simple but powerful techniques for rebalancing your personal and professional commitments using the productivity features in Outlook. Learn the proven methods that will empower you to:

  • Clear away distractions and loose ends and focus on what's really important to you and your business.
  • Take charge of your productivity using techniques and processes designed by McGhee Productivity Solutions and implemented in numerous Fortune 500 companies.
  • Customize and exploit the productivity features iOutlook to help you create balance at home and on the job.
  • Special Edition features: Get even more on-the-job resources with an easy tear-out card of Sally's workflow diagram, a quick guide to key Outlook tasks, and great articles on the CD to help you save even more time.
When you change your approach, you can change your results. So learn what thousands of Sally's clients worldwide have discovered about taking control of their everyday productivity-and start transforming your own life today!

Note: Take Back Your Life covers Microsoft Office Outlook 2003, Outlook Version 2002, and Outlook 2000.



Thursday, January 29, 2009

Network Security Evaluation Using the NSA IEM or A Practical Guide to Feature Driven Development

Network Security Evaluation Using the NSA IEM

Author: Russ Rogers

Network Security Evaluation provides a methodology for conducting technical security evaluations of all the critical components of a target network. The book describes how the methodology evolved and how to define the proper scope of an evaluation, including the consideration of legal issues that may arise during the evaluation. More detailed information is given in later chapters about the core technical processes that need to occur to ensure a comprehensive understanding of the network's security posture.

Ten baseline areas for evaluation are covered in detail. The tools and examples detailed within this book include both Freeware and Commercial tools that provide a detailed analysis of security vulnerabilities on the target network. The book ends with guidance on the creation of customer roadmaps to better security and recommendations on the format and delivery of the final report.

* There is no other book currently on the market that covers the National Security Agency's recommended methodology for conducting technical security evaluations
* The authors are well known in the industry for their work in developing and deploying network security evaluations using the NSA IEM
* The authors also developed the NSA's training class on this methodology



Book review: Defeating Depression or Five Quarts

A Practical Guide to Feature-Driven Development

Author: Stephen R R Palmer


  • Combine the speed and flexibility of agile methods with enterprise-class scalability!

  • Hands-on coverage of the entire project lifecycle

  • Modeling, feature lists, planning, design, and software construction

  • Adapt Feature-Driven Development to your own organization and projects

The first practical, start-to-finish guide to implementing Feature-Driven Development!


Feature-Driven Development (FDD), created by Peter Coad and Jeff De Luca, combines the key advantages of agile methodologies with model-driven techniques that scale to the largest teams and projects. This book demonstrates FDD at work in real-world projects and provides project leaders with all the information they need to successfully apply it in their own organizations.


Stephen R. Palmer and John M. Felsing show how applying FDD can help solve problems that neither traditional nor agile methodologies can address. They help you identify the projects that are best suited for FDD, and then walk you step by step through the entire FDD development process.


Coverage includes:


  • Understanding FDD's model-driven, short-iteration approach to software development

  • FDD's roles, artifacts, goals, and timelines

  • Creating overall models that provide a solid foundation and structure for effective development

  • Formalizing the features list: Completing, leveling, clustering, and prioritizing features

  • Plan by feature: Establishing class owners, feature-set owners, and rough development plans

  • Design by feature: Domain walkthroughs, design, and inspection

  • Build byfeature: Coding, ongoing inspection, testing, and promotion

  • Tracking and reporting progress to technical leads, project managers, sponsors, and upper management

  • Applying FDD to user interface and external system interfaces

  • Adapting FDD to your projects—and your business and technical environment



Table of Contents:
Acknowledgments
Foreword
Preface
Introduction
Pt. 1Feature-Driven Development - Concepts1
Ch. 1Process Pride: The Pain and Relief3
Ch. 2Feature-Driven Development - Projects and People19
Ch. 3Feature-Driven Development - Practices35
Ch. 4Feature-Driven Development - Processes55
Ch. 5Feature-Driven Development - Progress75
Ch. 6Feature-Driven Development - Packages93
Pt. 2Feature-Driven Development - The Five Processes in Practice103
Ch. 7Develop an Overall Object Model105
Ch. 8Feature-Driven Development - Build a Features List135
Ch. 9Feature-Driven Development - Planning Feature Development145
Ch. 10Feature-Driven Development - Designing by Feature159
Ch. 11Feature-Driven Development - Build by Feature181
Pt. 3Feature-Driven Development - Additional Topics197
Ch. 12Feature-Driven Development - Technical Architecture199
Ch. 13Feature-Driven Development - Testing: Failures, Faults, and Fixes217
Ch. 14Feature-Driven Development - Other Surroundings233
Ch. 15Feature-Driven Development - "All Change"249
References263
Index267

Wednesday, January 28, 2009

Microsoft Forefront Security Administration Guide or Excel Applications for Corporate Finance

Microsoft Forefront Security Administration Guide

Author: Jesse Varsalon

Microsoft Forefront is a comprehensive suite of security products that will provide companies with multiple layers of defense against threats. Computer and Network Security is a paramount issue for companies in the global marketplace. Businesses can no longer afford for their systems to go down because of viruses, malware, bugs, trojans, or other attacks. Running a Microsoft Forefront Suite within your environment brings many different benefits. Forefront allows you to achieve comprehensive, integrated, and simplified infrastructure security. This comprehensive suite of tools provides end-to-end security stretching from Web servers back to the desktop. This book will provide system administrators familiar with Syngress' existing Microsoft networking and security titles with a complete reference to Microsoft's flagship security products.

* First book to address securing an entire Microsoft network from Web servers all the way back to the desktop.
* Companion Web site provides best practices checklists for securing Microsoft operating systems, applications, servers, and databases.
* Companion Web site provides special chapter on designing and implementing a disaster recover plan for a Microsoft network.

Dragos Tudor, Windows Systems Engineer, Verizon
Microsoft has become a new powerful player in the security industry with the release of Forefront. The comprehensive security suite will be an important tool for Network Administrators. A comprehensive book from a respected publisher is imperative so that Administrators can fully benefit from the product. My former Professor, Jesse Varsalone, will be able to detail how Microsoft Forefront Security can help Administrators.

Kelly Brown, Microsoft Certified Systems Engineer, Computer Science Corporation
Microsoft Forefront is the newest in Microsoft's line of Security Offerings. Recently, Microsoft has become much more security conscious. A new publication that details the inner workings of Microsoft's Forefront Security suite so that network administrators can gauge it's usefulness in the Enterprise Environment. Jesse Varsalone is well versed in the area of Microsoft products and the advantages and disadvantages associated with them.

Christina Luo, President, ITPRO911
Microsoft Forefront is the newest component that can help IT Companies keep their Enterprise systems secure. In order for companies to utilize Microsoft Forefront properly, a book is needed from a publisher who is respected in the Security Industry. Jesse Varsalone, Microsoft Certified Systems Engineer Security, will be able to explain how companies can fully utilize the aspects of security Microsoft Forefront. Jesse will be able to explain the important components of how the product can be effectively utilized in the marketplace.

Wally Barr, Microsoft Certified Systems Engineer
As an MCSE, I am interested in the newest offerings fromMicrosoft. I am interested to know how effective the newest security product, Microsoft Forefront will be useful Enterprise Environment. We need how-to guide on this new product from a reputable publisher. I am convinced that Jesse Varsalone a Microsoft Certified Systems Engineer and Instructor at the Department of Defense Cyber Crime Center, will be able to explain how this security offering will be beneficial to companies who consider using Microsoft products as part of their security solutions

Randy Mika, Technical Support Manager ITPRO911
I have been working with Microsoft software and security products for a number of years. I have not worked with their newest security product, Microsoft Forefront, yet, but I am interested in the new features it has to offer. It would be ideal if there was a book that provided some step-by-step instruction on how to use this new product. The author of the book should be someone like Jesse Varsalone, who knows how to explain things in terms that are easy understand.



Books about: Famous Fables of Economics or Global Inequalities at Work

Excel Applications for Corporate Finance

Author: Troy Adair

Excel Applications for Corporate Finance teaches students how to build financial models in Excel to solve common corporate finance problems. The book comes packaged with a free Excel tutorial CD-ROM to brush up on their spreadsheet skills. The text helps students learn the intuition behind building the spreadsheets so that they can apply it to other types of problems instead of only providing “cookbook” instructions on how to build it.



Table of Contents:

PART I - EXCEL: SETTING THE STAGE

Chapter 1 - Making and Using Spreadsheets

Chapter 2 - Bringing Data into Excel

PART II - WORKING WITH ACCOUNTING STATEMENTS

Chapter 3 - Making and Getting Accounting Statements

Chapter 4 - Ratio Analysis

PART III - TIME VALUE OF MONEY

Chapter 5 - Calculating Present and Future Values

Chapter 6 - Compounding and Interest Rate Conversion

Chapter 7 - Loan Amortization and Payment Composition

PART IV - VALUING SIMPLE FINANCIAL ASSETS

Chapter 8 - Valuing Bonds

Chapter 9 - Valuing Stocks

PART V - CAPITAL BUDGETING DECISION RULES

Chapter 10 - Net Present Value

Chapter 11 - Other Capital Budgeting Decision Rules

PART VI - PART V – RISK, RETURN AND THE COST OF CAPITAL

Chapter 12 - Measuring Risk and Return

Chapter 13 - Calculating Beta

Chapter 14 - Analyzing the Security Market Line

Chapter 15 - Weighted Average Cost of Capital

PART VII - CASH FLOW ANALYSIS AND ESTIMATION

Chapter 16 - Estimating Future Cash Flows: Pro Forma Analysis

Chapter 17 - Scenario Analysis and Sensitivity Analysis

PART VIII - ADVANCED TOPICS IN CORPORATE FINANCE

Chapter 18 - Option Valuation in Corporate Finance

Chapter 19 - International Corporate Finance

Monday, January 26, 2009

Me MySpace and I or Facebook API Developers Guide

Me, MySpace, and I: Parenting the Net Generation

Author: Larry D Rosen


Young people spend hours online each day online, and their abilities to multitask and communicate are often misunderstood by older generations. Dr. Larry Rosen offers a full overview of the various issues young people may experience in their online worlds (cyberbullying, addiction, sexuality, virtual friendships, and more) while at the same time challenging commonly held beliefs that these communities are damaging. Instead of using scare tactics, the book shows parents how to be proactive and anticipate potential problems. With his extensive background in both child development and the impact of technology, Dr. Rosen uses down-to-earth explanations of sound psychological theory, incorporates groundbreaking research, and shows parents and educators how social networking sites like MySpace and Facebook can improve adolescent socialization skills.
 

Linda Beck - Library Journal

Call them Millennials, Gen Yers, or MySpacers-but pay attention! Millennials (those born after 1979) are different from their predecessors; not only do they use their time differently, but they seek to create content, are bored if not multitasking, are far from private, and are always online. Rosen (psychology, California State Univ.; coauthor, TechnoStress: Coping with Technology @ Work @ Home @ Play) offers a well-documented comparison between and among baby boomers (b. 1946-64), Gen Xers (b. 1965-79), and Millennials-their values, career goals, loyalties, workplace styles, and more. When not on social-networking sites like MySpace or Facebook, Millennials are IM'ing, conducting research online, visiting the virtual world Second Life, or playing video games-sometimes all at the same time. Interestingly, Millennials also value their parents' opinions and are career- and college-focused, emotionally open, and very social. Rosen advises parents to be proactive and to learn how to avoid problems before they start-e.g., by placing the family computer in a common area of the home, setting limits, using MySpace themselves, and talking with and listening to their kids even more. Highly recommended.



Table of Contents:
Living in a Virtual World
The MySpace Generation
Real People in Virtual Relationships
Me, MySpace, and I
Virtually Exposed
Sex and the Media
Just a Few More Minutes, Mom
MySpace and Your Family
Hate Mail
Proactive Parenting: Teaching Your Children to Look Both Ways in Cyberspace

Interesting textbook: Working with Difficult People or A Turn to Empire

Facebook API Developers Guide

Author: Wayne Graham

Apress's firstPress series is your source for understanding cutting-edge technology. Short, highly focused, and written by experts, Apress's firstPress books save you time and effort. They contain the information you could get based on intensive research yourself or if you were to attend a conference every other week-if only you had the time. They cover the concepts and techniques that will keep you ahead of the technology curve. Apress's firstPress books are real books, in your choice of electronic or print-on-demand format, with no rough edges even when the technology itself is still rough. You can't afford to be without them.



Sunday, January 25, 2009

KODAK New Pocket Guide to Digital Photography or Cisco Networking Simplified Second Edition

KODAK New Pocket Guide to Digital Photography

Author: Eastman Kodak Company

Wonderfully easy-to-use, concise, portable enough to stash in a camera bag, and packed with all the basics on taking digital photos: this invaluable pocket guide is everything you’d expect from a digital imaging leader such as Kodak. Filled with first-rate information, it covers everything from choosing the right digital camera to selecting accessories, from saving digital images to sharing photos with friends and family over e-mail. Find out all the basics on file formats, downloading pictures, taking better portraits, and improving image composition. This guide will help photographers get superior results from their digital camera, and even those new to digital—and intimidated by technology—will find themselves shooting with confidence.



Read also Caring for Economics or International Advertising

Cisco Networking Simplified, Second Edition

Author: Neil Anderson

Now 100 percent updated for the latest technologies, this is today's easiest, most visual guide to Cisco® networking. Even if you've never set up or managed a network, Cisco Networking Simplified, Second Edition, helps you quickly master the concepts you need to understand. Its full-color diagrams and clear explanations give you the big picture: how each important networking technology works, what it can do for you, and how they all fit together. The authors illuminate networking from the smallest LANs to the largest enterprise infrastructures, offering practical introductions to key issues ranging from security to availability, mobility to virtualization.

What you always wanted to know about networking but were afraid to ask!

  • How networks and the Internet work
  • How to build coherent, cost-effective network infrastructures
  • How to design networks for maximum reliability and availability
  • What you need to know about data center and application networking
  • How to secure networks against today's threats and attacks
  • How to take advantage of the latest mobility technologies
  • How virtualizing networks can help businesses leverage their network investments even further
  • How to combine messaging, calendaring, telephony, audio, video, and web conferencing into a unified communications architecture



    Table of Contents:
    Introduction

    Part I: Networking Fundamentals

    How Computers Communicate

    The OSI Model

    Open Versus Proprietary Systems

    Seven Layers

    At-a-Glance: OSI Model

    Internet Infrastructure: How It All Connects

    TCP/IP and IP Addressing

    Computers Speaking the Same Language

    What Is an Address?

    Dynamically Allocated IP Addresses

    Domain Names and Relationship to IP Addresses

    Matching Domain Names to IP Addresses

    At-a-Glance: TCP/IP

    At-a-Glance: IP Addressing

    At-a-Glance: IPv6

    NAT and PAT

    Internet Applications

    The Internet and Its Applications

    E-Mail

    Web Browsing

    E-Mail

    Peer-to-Peer Sharing

     

    Part II: Networking Infrastructure

    Ethernet

    History of Ethernet

    What Is Ethernet?

    Evolution of Ethernet

    At-a-Glance: Ethernet

    Reducing Collisions on Ethernet

    LAN Switching

    Fast Computers Need Faster Networks

    Switching Basics: It’s a Bridge

    Switching Ethernets

    Switches Take Over the World

    At-a-Glance: Switching

    Spanning Tree

    Network Loops

    Sometimes, the Earth Is Flat

    Preventing Network Loops

    Spanning-Tree Fundamentals

    At-a-Glance: Spanning Tree

    Routing

    Routers

    Routers Talk Among Themselves to Find Routes

    Routers Route Packets

    Routers Bridge andSwitches Route

    At-a-Glance: Routing

    Routing and Switching

     

    Part III: Network Design

    Campus Networks and Hierarchical Design

    Building Networks for Ease of Use

    At-a-Glance: Hierarchical Campus Design

    WAN Network Design

    Moving Traffic Across the Street and the World

    WAN Services

    Integrated Services Digital Network

    Frame Relay

    ATM

    MPLS

    Broadband

    Virtual Private Networks (VPN)

    WAN Devices

    At-a-Glance: Frame Relay

    At-a-Glance: Asynchronous Transfer Mode (ATM)

    Multiprotocol Label Switching (MPLS) Services

    At-a-Glance: MPLS

    MPLS Traffic Separation

    Broadband Technologies

    Always-on Access

    Broadband Technology Evolution

    At-a-Glance: ISDN

    At-a-Glance: Broadband

    Virtual Private Networks

    Secure Networking Over the Internet

    At-a-Glance: VPNs

    Establishing a VPN Connection

    At-a-Glance: Encryption

    Client Authentication

    Optical Technologies

    LANs, WANs—and Now MANs

    SONET, DWDM, and DPT

    At-a-Glance: Metro Optical

    Branch Office Network Designs

    Distributed Workforce

    Distributed Office Challenges

    At-a-Glance: Branch Office Design

     

    Part IV: Network Availability

    High Availability

    At-a-Glance: High Availability

    Control Plane

    When Good Networks Go Bad

    Control Plane Protection

    At-a-Glance: Control Plane Protection

    Quality of Service and Network Availability

    Quality of Service as Network Protection?

    Scavenger QoS

    At-a-Glance: QoS for Network Resiliency

    Disaster Recovery

    What Happens When the Network Stops Working

    DR Planning

    Resiliency and Backup Services

    Preparedness Testing

    At-a-Glance: Disaster Recovery: Business Continuance

    Disaster Recovery

    Network Management

    Keeping the Network Alive from Afar

    Network Documentation: A Must-Have

    Network-Management Protocols

    Troubleshooting Tools

    At-a-Glance: Network Management

    Network Management

     

    Part V: Securing the Network

    Network Security

    Identity

    Perimeter Security

    Data Privacy

    Security Monitoring

    Policy Enforcement

    At-a-Glance: Network Security

    At-a-Glance: Hacking

    DoS Attacks

    Snooping and Spoofing

    Firewalls

    Protecting the Perimeter

    Get Off the Net!

    Firewall for Your Protection

    Personal Firewalls

    At-a-Glance: Firewalls and IDS

    Firewalls and IDS

    Access and Content Security

    Intrusion Prevention Systems

    Intrusion Detection Systems

    Intrusion Prevention Systems

    The Problem with False Positives

    At-a-Glance: Intrusion Detection

    Port-Based Security

    Combating Access-Based Attacks

    At-a-Glance: Port-Based Security

    Identity-Based Networking

    Network Access Conundrum

    Identity-Based Networking

    802.1x

    At-a-Glance: Identity

    Authentication

    Network Admission Control

    Combating Virus Outbreaks

    Assessing Device “Health”

    Network Admission Control

    At-a-Glance: NAC

    URL Filtering: Eliminating Unwanted Web Page Access

    Internet Access and Liability Issues

    Enforcing Corporate Internet Usage Policies

    At-a-Glance: URL Filtering

    URL Filtering and Firewalls

    Deep Packet Inspection: Controlling Unwanted Applications

    How Do You Catch a Criminal When Everyone Wears a Mask?

    Deep Packet Inspection

    At-a-Glance: Deep Packet Inspection

    Packet Inspection

    Telemetry: Identifying and Isolating Attack Sources

    Normal or Abnormal

    Using Telemetry to Combat Attacks

    At-a-Glance: Telemetry

    Physical Security: IP Video Surveillance

    Locks on the Doors

    Video Surveillance

    At-a-Glance: Physical Security

    Physical and Logical Security

     

    Part VI: Data Centers and Application Networking

    Moving Data Efficiently

    Data Centers

    Store Once, Use Often

    n-Tier Model

    Functions and Requirements

    At-a-Glance: Data Centers

    Data Center Application: Corporate Expense System

    Storage Area Networks

    Efficient Deployment of Critical Data

    Fiber Channel and IP

    Infiniband

    At-a-Glance: Storage Networking

    Server-Centric Storage

    Caching

    Moving Content Close to the User

    How Caching Works

    Caching More Than Web Pages

    Storage Caching: From Disk to Memory

    Issues Affecting Caching

    Caching

    Wide Area File Services

    Branch Offices Rule

    Centralizing Storage

    Enter Wide Area File Services (WAFS)

    At-a-Glance: Wide Area File Services

    Wide Area Application Services

    Centralizing Applications

    Enter Wide Area Application Services (WAAS)

    At-a-Glance: Wide Area Application Services

     

    Part VII: Unified Communications

    Voice over IP

    Making Calls over the Web

    Unifying Communications

    Client Layer

    Infrastructure Layer

    Call-Processing Layer

    Application Layer

    Deployment Models

    At-a-Glance: Voice over IP

    Voice over IP

    At-a-Glance: Unified Communications

    Voice over IP: Toll Bypass

    Quality of Service

    Converged Networks and QoS

    What Is QoS?

    QoS and Unified Communications

    At-a-Glance: QoS

    How Packets Are Prioritized

    Unified Personal Communications

    Too Many Communications, Too Little Time

    Unify Me

    Cisco Unified Personal Communicator (CUPC)

    At-a-Glance: Unified Communications

    Meeting Collaboration Spaces

    Meetings, Meetings, Meetings

    Meetings Are an Activity, Not a Place

    At-a-Glance: Meeting Collaboration

    Traditional Videoconferencing

    I See You

    Video over IP Networks

    At-a-Glance: IP Videoconferencing

    Videoconferencing

    Videoconferencing Application E-Learning

    Telepresence

    Conferencing Gets Simple

    Video Killed the Radio Star

    The Next-Best Thing to Being There

    At-a-Glance: Telepresence

    Presence and Location-Aware Services

    I Sense a Presence

    The Importance of Location

    At-a-Glance: Presence and Location-Aware Services

    IP Call Center

    Why Can’t I Talk to a Real Person?

    Anatomy of a Contact Center

    From the Caller to the Agent, and Back Again

    Managing Caller and Contact Agent Efficiency

    New Methods for Customer Interaction

    At-a-Glance: IP Contact Center

    Call-Center Tech Support

    Call-Center Telemarketing

    Multicast and IPTV Broadcasts

    Watching Movies Without Flooding the World

    At-a-Glance: IP Multicast

    Multicast

     

    Part VIII: Mobility

    Wireless World

    Mobility and Wireless Networks

    Throwing Away the Ties That Bind

    At-a-Glance: Wireless LANs

    Wired LANs

    Wireless LANs

    Selecting and Building Wireless Networks

    Designing a Wireless Network

    At-a-Glance: Designing Wi-Fi Networks

    Securing Wireless Networks

    Locking Down Wireless

    Balancing Security and Access

    At-a-Glance: Securing Wi-Fi

    Outdoor and Municipal Wireless Networks

    It’s Just Like a Building, Only Way Bigger

    At-a-Glance: Municipal Wi-Fi

    VoIP over Wireless Networks

    Wireless VoIP

    At-a-Glance: Wireless VoIP

    Wireless VoIP

    Wireless Guest Access

    Mi Casa Es Su Casa

    At-a-Glance: Wireless Guest Access

    RFID and Location-Based Services

    Finding Your Stuff

    Wireless LANS: They’re Not Just for Checking E-Mail on the Toilet Anymore!

    At-a-Glance: Location-Based Services

    Wireless Location Services

     

    Part IX: Virtualized Networks

    Virtualizing Data Centers

    Growth of the Data Center

    Data Center Virtualization

    At-a-Glance: Virtual Data Centers

    Virtualizing Network Infrastructure

    Leveraging Network Investment

    A Network Is a Network

    Virtualizing Network Infrastructure

    At-a-Glance: Virtual Network Infrastructure

    Applications of Virtualized Networks

    What Can You Do with Virtualized Networks?

    Corporate Employee “Clean” and “Dirty” Networks

    Guest and Partner Networks

    Isolating Specialized Devices and Applications  

    Load Balancing

    Providing Hosted Networks to Entities Within Entities

    Departmental Virtual Networks

    Challenges with Virtual Networks

    At-a-Glance: Virtualized Network Applications

    Evolution of Virtual Networks

     

     

    1587201992 TOC 11/19/2007

Saturday, January 24, 2009

Internet Communications using SIP or The Synchronous Trainers Survival Guide

Men and the War on Obesity: A Sociological Study

Author: Alan B Johnston

According to official statistics, nearly two thirds of men in Britain are overweight or obese. Men and the War on Obesity offers a timely, critical and original take on the obesity debate, bringing male bodies into the frame and questioning the claim from public health that millions of people are unhealthy because they are 'overweight' or 'obese'. It focuses upon everyday men, who, according to medicalized ideas of appropriate weight for height and like most men in developed nations, are too heavy.

This challenging work redresses the gender bias in the existing literature and questions the degradation of big bodies as part of the widely declared war on fat.



Table of Contents:

List of tables

1 Introduction: Beyond militarized medicine 1

2 Bodily alignment and accounts: From excuses to repudiation 34

3 Smoking guns, wartime injury and survival: Men and dieting 73

4 McDonaldizing men's bodies? Rationalization, irrationalities and resistances 117

5 Physical activity and obesity fighting campaigns: Men's critical talk 138

6 Conclusion: Social fitness and health at every size 163

Bibliography 193

Index 206

Go to: Cambio de Proceso Comercial:un Guía para Directores ejecutivos y BPM y Seis Profesionales Sigma

The Synchronous Trainer's Survival Guide: Facilitating Successful Live and Online Courses, Meetings, and Events

Author: Jennifer Hofmann

The Synchronous Trainer's Survival Guide is a hands-on resource for enhancing your real-time e-learning sessions. Written by Jennifer Hofmann, a synchronous training leader, it is the first and only book focusing solely on this emerging training method. If you're new to synchronous training, everything you need to know is right here. If you're a seasoned pro the practical tips, tools, and customizable templates in this book will ensure the success of your online training courses, meetings, and events.



Friday, January 23, 2009

Cyberethics or Simply Visual Basic 2008

CyberEthics: Morality and Law in Cyberspace

Author: Richard Spinello

CyberEthics: Morality and Law in Cyberspace, Third Edition takes an in-depth look at the social costs and moral problems that have arisen by the expanded use of the internet, and offers up-to-date legal and philosophical perspectives. The text focuses heavily on content control and free speech, intellectual property, privacy and security, and has added NEW coverage on Blogging. Case studies featured throughout the text offer real-life scenarios and include coverage of numerous hot topics, including the latest decisions on digital music and movie downloads, the latest legal developments on the Children's Internet Protection Act, and other internet governance and regulation updates. In the process of examining these issues, the text identifies some of the legal disputes that will likely become paradigm cases for more complex situations yet to come.



Books about: El Guía del Empresario de Derecho comercial

Simply Visual Basic 2008

Author: P J Deitel

"A fun way of learning VB. Tips and hands-on guidance give readers an amazing running start in software development." —April Reagan (Microsoft Corp.)



"The use of graphics and common application topics will capture student interest. The step-by-step approach enables students to work independently. The integrated debugging is superior to the pedagogical approach taken by competing textbooks. [The ASP.NET 3.5 case study with ASP.NET AJAX] would be an excellent starting example for my classes on ASP.NET programming." —Douglas Bock (Southern Illinois University)



"Using real life case studies is one of the best methods of teaching programming I've seen. Superb job! I can’t believe how easy it is now to add a database to an application." —Edward Hunter, MSCIS (Chapman University College)



"A great collection of practical tutorials and exercises for learning Visual Basic. An excellent book on VB 2008!" —Steve Stein (Microsoft Corporation)



"All you need to start creating great Windows-based and web applications with VB 2008. A crystal-clear explanation of the new LINQ technology." —José Antonio Gonzalez Seco (Parliament of Andalusia)



"The ‘Building Your Own Classes and Objects’ tutorial is well done. Marvelous work with collections. Very well organized tutorial introducing WPF and XAML." —Josh Pauli, Ph.D. (Dakota State University) 



"I think the typing tutor example is an excellent way to explain Windows events and event handling." —Huanhui Hu (Microsoft Corporation)



"The best explanation and simple demonstration of AJAXthat I've seen. I loved the Silverlight tutorial." —Christopher J. Olson (Dakota State University)



"Loaded with labs and examples. I particularly enjoyed the chapters on LINQ, Silverlight and WPF." —Chris Williams (Magenic - Microsoft VB MVP)



"Good job introducing Silverlight and how to consume a web service." —Matt Kleinwaks (Abby Rating Systems, Inc. - Microsoft VB MVP)


Simply Visual Basic 2008 Pedagogic Features


Step-by-step tutorials show how to build and execute complete applications, from start to finish
DEITEL¨ signature LIVE-CODE approach presents programming concepts using complete working applications
Includes 32 tutorials and 100+ exercises on real-world applications
Full-color presentation, including syntax coloring, code highlighting, callouts and extensive comments
Skills summaries, UML activity diagrams, pseudocode, access the authors at deitel@deitel.com
Integrated debugging sections and exercises that teach the Visual Studio¨ 2008 Debugger
Tips for improving reliability, performance and usability of your applications
Self-review multiple-choice questions and answers for immediate feedback after each section
At the end of most tutorials: 10 multiple-choice questions, ”What does this code do?” and ”What’s wrong with this code?” exercises, and four real-world programming exercises, including a “Programming Challenge”


Special sections on GUI Design Guidelines and on Controls, Events, Properties & Methods
Key terms sections in every tutorial and a glossary at the end of the book
Instructor resources: PowerPoints¨, test-item file, and deitel.com/books/SimplyVB2008


 


Simply Visual Basic 2008 leverages .NET 3.5’s true power. Its outstanding pedagogic approach comes from Deitel & Associates–the best-selling programming language authors and renowned instructors who, through their books and professional seminars, have taught programming to over 1,000,000 people worldwide.


Application-driven tutorial approach–The authors explore core Visual Basic 2008 concepts in the context of interesting real-world applications such as: Web-Based Bookstore • Address Book • Billing • Car Payments • Check Writer • Class Average • Craps Game • Flag Quiz • Fund Raiser • Graphics Painter • Inventory • Investment Interest • Microwave Oven • Payroll • Screen Scraper • Security Panel • Shipping Hub • Ticket Information • Typing Tutor • Wage Calculator • Weather Information and many more in the exercises


Key topics–Visual Basic¨ 2008 Express IDE • Visual Programming • .NET Framework Class Library • WinForm Controls • Event Handling • Debugger • Control Statements • Methods • Exception Handling • Random Numbers Arrays • Classes • Objects • Collections • Mouse & Keyboard Event Handling • Strings Files • Graphics • GUI Design • LINQ • ASP.NET 3.5 • ASP.NET AJAX • WPF • XAML Database • Web Applications • Web Services • Visual Web Developer™ 2008 90000 Express IDE • Silverlight ™


For information on DEITEL¨ DIVE INTO¨ Series corporate training offered worldwide visit
deitel.com/training/.


PRENTICE HALL Upper Saddle River, NJ 07458 prenhall.com



Thursday, January 22, 2009

Mastering Active Directory for Windows Server 2003 R2 or Mike Meyers Linux Certification Passport

Mastering Active Directory for Windows Server 2003 R2

Author: Brad Pric



• Active Directory stores information about a network's users and directories, making it easier to configure, manage, and update a network

• Windows Server 2003 R2 will include a new scripting engine to make Active Directory administration quicker and easier, plus a Group Policy Management Console for managing group and user accounts

• Geared to experienced system administrators, this book focuses on serious day-to-day needs and provides real-world solutions, including scripts that can be downloaded and implemented in any AD system




Table of Contents:
Introductionxxi
Part 1Active Directory Design1
Chapter 1Active Directory Fundamentals3
Do I Need Active Directory?3
The Basics4
What's New in R2?9
Pre-Design Criteria10
Coming Up Next12
Chapter 2Domain Name System Design13
Tied Together13
How to Resolve14
Internal and External Name Options21
Understanding the Current DNS Infrastructure22
That Other DNS Server23
Propagating the Changes24
Protecting DNS27
Keeping the System Accurate33
Coming Up Next37
Chapter 3Active Directory Forest and Domain Design39
Active Directory Forest Design Criteria40
Multiple Forests: Pros and Cons47
Forest Functionality Mode Features in Windows 200352
Active Directory Domain Design55
Active Directory Domain Design Criteria55
Multiple Domains: Pros and Cons58
Coming Up Next72
Chapter 4Organizing the Physical and Logical Aspects of Active Directory73
Determining the Site Topology73
Understanding the Current Network Infrastructure76
Setting Your Sites to Support the Active Directory Design78
Designing Site Links and Site Link Bridges81
Organizational Unit Design84
Designing OUs for Group Policy94
Coming Up Next112
Chapter 5Flexible Single Master Operations Design113
What Are the FSMO Roles?113
Choosing Flexible Single Master Operations Placement117
Coming Up Next120
Part 2Active Directory Management121
Chapter 6Managing Accounts: User, Group, and Computer123
Account Types123
Utilities147
Coming Up Next173
Chapter 7Managing Access with Active Directory Services175
Active Directory Federation Services176
Configuring Clients196
Identity Management for Unix198
Coming Up Next219
Chapter 8Maintaining Organizational Units221
Organizational Units221
User Rights and Permissions When Accessing Resources227
Permissions230
Delegation of Control234
Auditing239
Moving Objects in Active Directory244
Coming Up Next248
Chapter 9Managing Group Policy249
Group Policy Management Tools249
Working with ADU&C or ADS&S250
Group Policy Management Console (GPMC)251
Administrative Templates260
Group Policy Inheritance261
Group Policy Storage263
Group Policy Processing264
Group Policy Troubleshooting267
Practical Uses of Group Policy269
Coming Up Next274
Chapter 10Managing Site Boundaries275
Replication within Active Directory275
Coming Up Next293
Chapter 11Managing the Flexible Single Master Operations Roles295
Identifying the Role Holders295
Maintaining the Role Holders303
Coming Up Next316
Chapter 12Maintaining the Active Directory Database317
The Active Directory Database318
The Active Directory Schema333
Modifying the Schema335
Coming Up Next336
Part 3Troubleshooting Active Directory337
Chapter 13Microsoft's Troubleshooting Methodology for Active Directory339
High-Level Methodology339
Coming Up Next351
Chapter 14Troubleshooting Problems Related to Network Infrastructure353
Components of Network Infrastructure353
Name Resolution Methods353
Methodologies of Network Troubleshooting364
Coming Up Next378
Chapter 15Troubleshooting Problems Related to the Active Directory Database379
Active Directory File379
Troubleshooting Active Directory Replication383
Replication Overview383
Determining DNS Problems383
Verifying Replication386
Controlling Replication in Large Organizations390
Best Practices for Troubleshooting AD Replication391
Troubleshooting FSMO Roles391
FSMO Roles and Their Importance391
Transferring and Seizing FSMO Roles395
Best Practices for Troubleshooting FSMO Roles401
Troubleshooting Logon Failures401
Auditing for Logon Problems401
Native Mode Logon Problems407
Account Lockout Problems408
Remote Access Issues412
Are You Being Attacked?412
Controlling WAN Communication412
Best Practices for Logon and Account Lockout Troubleshooting413
Coming Up Next413
Chapter 16Troubleshooting Active Directory with Microsoft Operations Manager415
About Microsoft Operations Manager415
Management Packs431
Coming Up Next447
Part 4Streamlining Management with Scripts449
Chapter 17ADSI Primer451
What Is ADSI?451
Active Directory Objects454
Common Active Directory Objects460
The Basic ADSI Pattern467
Chapter 18Active Directory Scripts511
Windows Script File Basics511
VBScript Class Basics512
RootDSE Scripts516
Domain Scripts520
Active Directory Query Scripts525
User Scripts531
Group Scripts548
Computer Scripts557
Organizational Unit Scripts562
Excel Scripts567
Coming Up Next580
Chapter 19Monitoring Active Directory581
OutputClass581
Windows Management Instrumentation (WMI)583
WMIClass591
CPU Overload595
RegistryClass597
AD Database and Log File Free Space603
Active Directory Essential Services605
Active Directory Response Time606
Global Catalog Server Response608
Lost and Found Object Count611
PingClass612
Operation master Response614
Monitor Trust Relationships617
Index619

New interesting textbook: Joe Celkos SQL for Smarties or Adobe PhotoShop CS3 A Z

Mike Meyers' Linux+ Certification Passport

Author: Michael Jang

Your ticket to success on exam day

Written by bestselling Linux certification author Michael Jang, this concise, affordable, and portable study tool helps you prepare for the vendor-neutral Linux+ certification exam which covers installing, managing, and troubleshooting Linux operating systems. The book focuses on only what you need to know to pass the test, and the CD-ROM includes a free practice exam and an electronic copy of the book.