json format: simple rules

Basic rule — name:value pairs.

  • Name is (always?) a primitive string.
  • Value can be array (horizontal), jsonObj (vertical) or primitives.
    • (As the ancestor of javascript, C language introduced array and struct. )

— array of jsonObjects are enclosed in []; jsonObj is enclosed in {} and consists of name:value pairs

Note array can only appear as a value in a name:value pair.

— A jsonObj can be a field of an enclosing jsonObj, or can be an array element. In both casee, it is the value of a name:value pair.

competitors to x86 instruction set

Interviewers often focus on x86 instruction sets, but I could point out competing instruction sets.

  • IBM’s PowerPC and Oracle’s Sparc — were a pair of once-popular instruction sets in HighPerformanceComputing. Even if they are less popular now, the still have a presence.
  • AMD64 — instruction set (i.e. x86-64) was created at AMD, as an extension on x86
  • IA-64 — instruction set was created at HP then Intel, widely deployed in data centers.
  • ARM — If interview is not 100% focused on server-side, then I would point out ARM instruction set is dominant in handheld.


https://www.virtualbox.org/manual/ch01.html#virtintro explains that

Guest OS runs in a virtual machine or “vm”. A “vm”

  • usually refers to a container process if it’s “live”


  • More often, a vm means a vm-config i.e. a collection of parameters defining a physical container process to-be-started.It’s important to realize (windows host OS as example) a vm is strictly an application with a window, like a browser or shell. As such, this application has it’s own config data saved on disk.


linux desktop set-up: don’t over-xx

Based on some prior experience, I feel I would not use linux as a desktop.

  • Avoid overspending time learning the various “interesting” details
  • Avoid overspending time understanding the installation issues
  • Avoid overspending $ to buy stuff

Just do the minimum to set up a sandbox and get the coding interview done. The GTD/zbs about linux desktop has zero market value. It doesn’t enhance my skills with “professional linux”, as proven over the years.

I had many problems installing and using linux desktops each time

  • linspire
  • ubuntu from XR — this installation was successful but many problems using it.
  • oracle virtualbox

hard edit vs soft edit when submitting order to mainframe

In one order entry system (A big European megabank), new orders are sent to mainframe. Upon validation, mainframe can return a message to the order entry system.

If the message is a hard edit, the order is rejected by mainframe validation module.

If  the message is a soft edit, the order is accepted by mainframe validation module. The soft edit is purely informational. Not necessarily a warning. No action is required on the user of the order entry system. I guess the soft edit is just “FYI”.

Posted By familyman to learning finance,c++,py… at 3/15/2011 11:52:00 PM

cobol copybook = input format spec

a cobol-copybook is “a file describing an input data format”.

“cobol copybook” is the standard term (“cobol-layout” is less common) for files like that mentioned in https://ssl.kundenserver.de/shop.softproject.de/downloads/CobolCopybookToolkitForJava.pdf


— based on http://edocs.bea.com/JAM/v51/program/egenapp.html
A COBOL CICS or IMS mainframe application typically uses a copybook source file to define its data layout. This file is specified in a COPY directive within the LINKAGE SECTION of the source program for a CICS application, or in the WORKING-STORAGE SECTION of an IMS program. If the CICS or IMS application does not use a copybook file, you will have to create one from the data definition contained in the program source.

A copybook is conceptually (not technically) part of a cobol program. Usually this copybook is a standalone file, included from its parent-program.

Posted By familyman to learning finance,c++,py… at 1/20/2008 08:53:00 PM

model-based expert system

Q: why is SSCFI expert system model-based? Why is the model central to this expert system?

* according to published data, the largest body of this expert-system’s “knowledge” is about line records, even though the expert-system’s main job is something else ie diagnosis! This is common among real world expert-systems.

* I guess among expert systems, model-based designs form one well-known type. A one-liner introduction is “An expert system based on fundamental knowledge of the design and function of an object. Such systems are used to diagnose equipment problems, for example.”

* Circuit models help the system survive and continue to function despite 2 difficulties
1) many line records are unreliable — non-standard
2) many test equipments (used to test circuits) are unreliable — often misconfigured

Most if not all of the arguments below are my hypotheses with limited evidence.

* I feel an intelligent expert system can “reason” and use judgement, just like humans do with an internal model. The more comprehensive the model, the more it can reason and make sense of confusing data.

* I feel Fault-isolation may require the system to keep track of test resutls, to be interpreted in context. Circuit model is part of the context.

* I feel test data are perhaps correlated. The relations can be hard to identify. A model helps. A human tester, too, relies on a circuit model to correclate data.

* I feel Test results have patterns, as experienced human testers know. Perhaps patterns about brands and models, about seasons, about circuit types and designs … These could presumably be incorporated into the circuit model

strongly^weakly typed

Most complex software favor strong typing. I feel it’s not all due to ignorance, inertia, corporate politics or the marketing machine. Some brave and sharp technical minds ….

I think large teams need clean and well defined module-to-module interfaces. (module ~= class) A variable (mostly a pointer to a chunk of memory) should have well defined operations for it.

The precision comes with a cost — development time, inflexibility … but large teams usually need more coordination and control. At the heart of it is “identification”.

In the military, hospitals, government, and also large companies, identification is part of everyday life. It provides a foundation to security and coordination.

At the heart of OO modelling — translating real world security policies into system built-in rules. Strong typing = precise type identification.