Book Stack Dump, Day 5

September 2nd, 2008
Book abbreviations correspond to titles on the picture from this link:
Cooperative Multireading Revisited and Started

POSA2: Widespread use of non-OO algorithmic decomposition in network and concurrent systems.

POSA5: Evolution in modeling and design. Design illusion.

AMP: Mutual exclusion (both excluded) problem with deadlock-freedom (if both want, one eventually succeeds), starvation-freedom (lockout-freedom, one eventually succeeds) and waiting properties.

EIP: Patterns: validation of understanding, reference and common vocabulary. Pattern realization in specific environment. Pattern cohesiveness. 

MM: Detaching threads in pthreads is similar to closing the last handle in Win32. In pthreads it is possible to create detached threads.

SC: Creativity: breaking traditional patterns. Dichotomy of two brain hemispheres.

ASS: ASAP is close to NOW. One-stop shopping.

SM: The necessity of impact analysis to determine potential ripple effects on existing environment/system.

CC: Software construction is central guaranteed activity. Source code is always up to date.

RP: Pedagogical patterns. Patterns: forces - tension - resolution by balancing forces with compromise - consequences

MES: A5/x algorithms to encrypt GSM communications

OOM: Fundamental split between OO databases and object-relational (OQL vs. SQL3).

TIS: Application- vs. System-provided recovery.

NAT: Addressing in OSI network layer 3 - networkId(flat|subnetted|hierarchical):hostId(flat)

PT: Generative grammar as fixed-size recipe for sentence construction. Platonic grammar as complete language description.

CW: E-mail and IM redirectors. Session hijacking.

PNA: Saltzer: application name -> node address -> point of attachment -> route. DNS as hierarchical distributed DB to replace host table.

CA: Simple RISC non-pipelining implementation: IF (instruction fetch) -> ID/RF (instruction decode/register fetch, fixed-field decoding) -> EX/EA (execution/effective address) -> MEM (memory access) -> WB (write-back).

GC: Pointer reachability from computation roots. The set of live heap nodes as transitive referential closure. Accessible nodes subsume live set. Direct counting vs. tracing.

CS: Ripple-carry of full adders and carry-propagation delay in adder networks.

- Dmitry Vostokov @ SoftwareGeneralist.com -

Book Stack Dump, Day 4

June 27th, 2008
Book abbreviations correspond to titles on the picture from this link:
Cooperative Multireading Revisited and Started

POSA2: Loose-coupling.

POSA5: Design as a sort of problem solving vs. seeing the beauty. Newness.

AMP: View of concurrent concurrency problems as physical. Coordination protocol and proof by contradiction.

EIP: Vendor-independent vocabulary.

MM: In Win32 when main() exits other threads exit too, in Java it is not.

SC: Fundamental conflict between management and practitioners: discipline/control vs. freewheeling methods.

ASS: Support as a profit center.

SM: The definition of software includes all artifacts.

CC: Software construction is part of many software development activities but in different proportions.

RP: Remoting styles on top of existing middleware (COM+, EJB).

MES: Phreaking: phone hacking. 2600 magazine.

OOM: COM+ components as actors (need knowledge about collaborators). 

TIS: Atomicity and durability as recovery techniques.

NAT: OSI Layer 1 is independent from the physical media.

PT: Multilevel view of the language: Word as sentences of token letters. Linguist vs. computer scientist vs. formal-linguist. The latter’s view of the language as the set of sequences of symbols with identity.

CW: Screenscrapers and alternate on-screen input of characters. Polling vs. hooking for keyloggers.

PNA: Control bits are treated as opcodes and create more code complexity. Single PDU leads to proliferation of protocols.

CA: RISC: load/store architecture.

GC: Suspension or closure: pair (function, binding of names to locations). The ability of a function to return closure is based on heap allocation.

CS: Requirements for ADA were set by a committee of users, not language designers. Abstraction tools: package, type (state values) and generic.

- Dmitry Vostokov @ SoftwareGeneralist.com -

Book Stack Dump, Day 3

June 17th, 2008
Book abbreviations correspond to titles on the picture from this link:
Cooperative Multireading Revisited and Started

POSA2: Inherent and accidental complexities. Tactical and Strategic aspects of concurrent software (low level OS mechanism vs. threading model).

POSA5: design metaheuristic: tractable forward model (essence of agile methods).

AMP: Shared counter and mutual exclusion.

EIP: Loose coupling: send and forget.

MM: Every Java program is automatically concurrent. Class extension vs. interface implementation. No preemption guarantee in Java threading. Sleep statements are useful for testing.

SC: Fun as a motivator for building software.

ASS: Stress in support is due to chaos.

SM: Software maintenance: modification after delivery.

CC: Code construction as a distinct activity that is guaranteed to be done.

RP: Technology projections for patterns.

MES: 802.11i is a security enhanced version of 802.11(a|b|g).

OOM: The influence of WIMP on OO languages.

TIS: Isolation hides other transactions and concurrency and requires concurrency control techniques.

NAT: Troubleshooting from bottom to top.

PT: Timeless structures for a mathematician vs. structure dynamics for a computer scientist.

CW: Stages of a crimeware attack: distribution, infection, execution, data retrieval, data misappropriation.

PNA: Logical vs. physical address spaces in networking (like in OS). Paradigm of connectionless.

CA: Pipelining, pipe segment, throughput, processor cycle.

GC: User program as mutator of the graph connectivity for heap structures.

CS: Static (scope of variables) and dynamic links (call scope) for procedure activation records.

- Dmitry Vostokov @ SoftwareGeneralist.com -

Book Stack Dump, Day 2

June 10th, 2008
Book abbreviations correspond to titles on the picture from this link:
Cooperative Multireading Revisited and Started

POSA2: To Read: Mind and Nature: A Necessary Unity by Gregory Bateson. Grouping patterns into key problem areas. Pattern language - interwoven related patterns.

POSA5: Design metaheuristics. Tractable inverse models.

AMP: Future advances in speed will come through parallelism via shared memory. The model of concurrent asynchronous shared-memory computability. The importance of liveness property.

EIP: Asynchronous messaging is important in application integration.

MM: Communication overhead in multithreaded program

SC: software construction -> problem-solving -> creativity. Conflict between creativity and discipline.

ASS: Support department is like hospital emergency room. Transforming chaos to dance.

SM: Software Maintenance as a distinct discipline. Theory of software chance.

CC: The importance of understanding software construction practices beyond the working environment and language.

RP: Myth that remote communication is transparent to applications. Decoupling of operation invocation in space and time.

MES: 802.1x port based access control for wired and wireless.

OOM: OO language Simula pre-dates structured programming. OO is natural for simulation modeling.

TIS: Transactions important for management workflows. Transaction concept is abstract concept.

NAT: Layered methodology for network analysis.

PT: Parsing is a process of structuring a linear representation according to a given grammar. Grammatical inference - a reverse process.

CW: Crimeware: social engineering or security exploits.

PNA: ARPANET was built by people with OS background not communications.

CA: Cost-performance-power trade-off. ILP/TLP/DLP Instruction/Thread/Data-level parallelism (multicores).

GC: Myths of garbage collectors - overhead.

CS: Access time: time (receipt) - time (initiation). For sequential access half rotation time is important.

- Dmitry Vostokov @ SoftwareGeneralist.com -

Book Stack Dump, Day 1

June 4th, 2008
Book abbreviations correspond to titles on the picture from this link:
Cooperative Multireading Revisited and Started

POSA2: The importance of understanding middleware.

POSA5: Design: Thinking before building.

AMP: Think concurrently - a skill.

EIP: Learn technology: goal to apply it effectively. Integration via messaging - use patterns to leverage forthcoming technologies.

MM: Processes and threads: an OS view.

SC: Great divide: Discipline/Control vs. Agility - all good work done in the middle. Project-dependent approach. Dad style management. Information Age vs. Industrial Age management.

ASS: A window to a larger world. What to know if you want to be a support manager.

SM: Maintenance is 70% of life-cycle cost. Education misses software change.

CC: It takes 5-15 years for research to come into practice. Self-taught programmers need a formal reference book.

RP: The need to understand distributed middleware and object technology. Projection of Patterns to technology link the patterns.

MES: 3DES.

OOM: Philosophy of object-oriented methods.

TIS: Importance of fundamentals of long-term validity vs. specific products. Transactions in OS.

NAT: Network analysis is a part of problem solving skills. Independence of analysis techniques from software analyzers.

PT: Non-Chomsky systems and non-canonical parsers? Parallel parsing? Find new ways to use parsers in pattern recognition?

CW: More and more criminal code than before.

PNA: Need to discuss networks free from politics and market. Patterns lead to the collapse of complexity. Emergent orthogonality from cognitive shift.

CA: The need to overcome ignorance in hardware, understanding of the total software/hardware system and quantitative approach to ground thinking.

GC: Lifetimes can no longer be predicted manually. Manual lifetime control limits OO modularity.

CS: First-order information hiding (pure OO) is restricted to state transformations (no instances of ADT are allowed in the language). Second-order hiding allows the definition of algebras on ADT (additional operations). Class mechanism can be used to describe ADT but not the way around (the lack of static properties in class definitions). OO information hiding is the mix of first- and second order. Object - first order model. Second-order models provide access to internal state (C++/Java).

- Dmitry Vostokov @ SoftwareGeneralist.com -

Cooperative Multireading Revisited and Started

June 4th, 2008

I wrote already about cooperative multireading technique in another blog:

Managing Reading via Cooperative Multireading

This week I started testing it and found that 30 books for one hour is too much for me and finally selected 20 books rich in concepts that I own but have never opened to read. I excluded books that I started reading some time ago but never finished and books heavy on source code and hands on practice. Here is the picture of selected books:

I tell you that the first session was a success and I even managed to write notes. These will be published after each reading session. The notes have their own code name Book Stack Dump.

Today it was mostly foreword and preface pages :-)

- Dmitry Vostokov @ SoftwareGeneralist.com -

A Guide to Modern Software Engineering Writing

June 4th, 2008
Reprinted from www.DumpAnalysis.org/blog

Motivated by the following book title that I bought a month ago:

The Oxford Book of Modern Science Writing

Buy from Amazon

I decided to convert my library into a beautifully illustrated color book called

The OpenTask Guide to Modern Software Engineering Writing

I plan to update it yearly with new titles that come to my attention. The first edition is planned for this summer and has the following draft product details:

  • Title: The OpenTask Guide to Modern Software Engineering Writing, 2008 Edition
  • Author: Dmitry Vostokov
  • Publisher: Opentask (25 August 2008)
  • Language: English
  • Product Dimensions: 21.6 x 14.0
  • ISBN-13: 978-1-906717-04-9
  • Paperback: 128 pages

Draft table of contents and sample chapter will be posted soon.

- Dmitry Vostokov @ SoftwareGeneralist.com -

Forthcoming Book

April 12th, 2008

This blog was set up to collect various information and posts that will form the foundation of the following planned book:

  • Title: Software Generalist: 256 Things You Need to Know
  • Paperback: 550 pages
  • ISBN-13: 978-0-9558328-9-5
  • Author: Dmitry Vostokov
  • Publisher: Opentask (15 April 2010)
  • Language: English
  • Product Dimensions: 22.86 x 15.24

Here I would talk about everything that Programmer Universalis should know about. I will also put software engineering book reviews here like I did for another my blog Literate Scientist. All books reviewed are from my software engineering library.

Blog to Book approach is one of the practices of IIPP (Iterative and Incremental Publishing Process) I devised and implemented for Crash Dump Analysis books.

- Dmitry Vostokov @ SoftwareGeneralist.com -