Pages

20191215

Comic Insights by Franklyn Ajaye


  • A distinctive point of view is what each of the comedians in this book possess in abundance, and it’s what is missing from many of today’s young comedians, causing them to blend into the comedy woodwork.
  • The first and most important step for anybody who wants to be a good stand-up comedian is to make that you watch the good ones and study them intently so that you can get a feel for why they’re funny.
  • You have to be able to coolly appraise a comedian’s techniques, strengths, and weaknesses to notice what works and doesn’t work so that you can dispel any sense of awe and become more objective. Only then can you understand how they generate laughter, and thus apply their expertise to help you develop.
  • So what should you study as a comedian? You must study their deliveries, their use of their bodies, their timing, and their use of audio and vocal effects.
  • After you’ve started looking at comedians more analytical ye, the next step is to zero in on the comedian or comedians whose sense of humor and style of comedy reminds you of the sense of humor you naturally display around your friends and associates when you are relaxed.
  • When you find a comedian who reminds you of what you do naturally, that particular comedian can serve as a guide or influence.
  • If you’ve never told a joke or been funny around your friends, but you still want to become a stand-up comedian, you can find your own sense of humor by studying the comedian who consistently makes you laugh the most--that particular comedian is tapping into your comedic sensibility and helping you identify where your own sense of humor lies.
  • There’s a bug difference between imitating a comedian and being strongly influenced by one. As long as you have the concept of self-expression at the forefront of your mind, you will never be a carbon copy of your comedic influences.
  • Analytically study the best stand-up comedian through the use of videotapes, books, CDs, and cassettes.
  • Zero in on the comedian whose sense of humor or style is reminiscent of the style of humor you display around your friends.
  • If you’ve never been funny, zero in one the comedian whose humor you enjoy the most for insight into your own sense of humor.
  • Isolate the comedic elements of your favorite comedian or comedians, then synthesize and incorporate these elements into your own presentation.
  • Keep self-expression as your goal and as a protection against imitating your influences.
  • All art is related, so you can use artists other than comedians to inspire your approach to your comedy.
  • To be a professional comedian you have to be funny on demand, regardless of your emotional state. Raw innate ability is not enough to guarantee success on a regular basis. You can’t just be “naturally funny” every night. Consequently, you have to develop techniques to compensate for those times when your talent or creative spark isn't there.
  • An individual point of view is by far the most important element for memorable stand-up comedy. It’s what makes any artist of merit truly stand out.
  • Your point of view is the voice you hear when you talk to yourself. As a stand-up, tapping into how you really feel or think about this madness we call life is the key to tapping into your true sense of humor.
  • An aspiring comedian must be determined to get to his or her true feelings on a subject and convey that to the audience.
  • Good stand-up comedy is drawing people into your head.
  • Don’t try to give a funny opinion; give your opinion in a way that will be funny. Plant your feet, focus on the odd details of a situation that has caught your attention, and describe what you honestly see or feel. Is it exasperation, amusement, anger, disgust, anxiety, amazement? Try to tune into and identify your honest feelings--and express them.
  • A good delivery is one that allows the audience to follow your train of thought. It is the bridge to the window of your thinking.
  • A monologue is a one-way conversation that gives the illusion of being a dialogue. So you should focus on talking to the audience, not at the audience.
  • Good timing is an integral part of an effective delivery and relates in particular to two areas of a comedian’s act: the delivery of the punchline and licking the right moment to start the next joke after the audience has laughed.
  • You must not be afraid of small bits of silence. To use it well is the height of confidence and skill for a comedian.
  • Let the laughter run its natural course. Then, before it drops into total silence, start the next routine. This way you build an almost musical rhythm that has its own natural ebbs and flows.
  • Audio effects are tremendous enhancements to a stand-up comedian’s performance and come in two forms: sound effects and vocal characterizations. The use of good sound effects in a stand-up’s presentation adds tremendously, but it requires a special talent.
  • Concentration or focus is what is needed to tie your performance all together. You can’t just wing it; you have to have some type of plan for the show. You have to focus on the task at hand--which is to make the audience laugh at your humorous observations.
  • Psychologically, you must be prepared to stand your ground in the midst of the silence detonating all around you. This can only come from you truly understanding your point of view and being committed to putting it out there for the audience to consider.
  • A technique that I developed quite naturally to help me make smooth transitions was to use a word or phrase from the next routine in the preceding one.
  • Effective stand-up comedy technique consists of the following essential elements:
    • Point of View
      • Your individual point of view is the most important element in your comedy arsenal.
      • Tap into your true thoughts or feelings on a subject and convey them to the audience.
      • Unscrupulous comedians can steal your jokes, but they can’t steal your point of view--which is what generates your material.
      • You must be resolute with your point of view if it isn’t initially accepted.
    • Honesty
      • Don’t try to give a funny opinion, give your opinion in a funny way.
      • Focus on the details that you notice and tell the truth about what you see or feel.
    • Delivery
      • A good delivery allows the audience to follow your train of thought.
      • Your delivery can be fast or slow, but it must contribute to the audience’s understanding of where you land--the punchline.
      • Clarity and economy of words is paramount.
      • Talk to the audience, not at them.
    • Timing
      • “Light the fuse” to your joke by taking a pause before you deliver the punchline.
      • When you get a good laugh from the audience, let it subside naturally before you start the next joke.
      • Give the audience a few seconds to get a cerebral joke.
      • Don’t be afraid of silent moments.
    • Visuals
      • Always think about adding a visual element to your performance if possible.
      • Walk back and forth across the stage to make the audience follow you with their eyes.
      • Act out the parts of the different people you talk about in your comedy.
    • Audio Effects and Vocal Characterizations
      • Audio sound effects require a special talent but are great help to paint a vivid picture.
      • Vocal characterizations need not be full impressions, just distinct enough to suggest the presence of other people in your routines.
    • Concentration
      • Concentration helps with your mental visualization and frees your imagination.
      • When your concentration suffers, your show suffers.
    • Stage Presence
      • It’s not necessary to have rapid speech and an aggressive attitude to have a strong stage presence.
      • Tattoo the words “commitment and conviction” in your brain for a string stage presence.
      • You must truly understand your point of view to have a strong stage presence.
    • Smooth Transitions
      • Look for one-word connections or phrases that can help you get from one routine to another without it seeming disjointed (usually in your afterthought or tagline).
  • To be able to write funny material for yourself, it’s essential that you understand your own particular and natural "comedic essence”. You want to write humor that captures the freshness of the humor that you do with friends when you’re feeling relaxed and comfortable--it’s at those moments when you are displaying your "pure funny”.
  • Outlining a subject that you’re interested in is a great way to deal with those routines that you want to consciously create, as opposed to those that spring forth spontaneously when with friends. It’s essential for the aspiring comedian because it organizes your thoughts and gives them a spine to hang your humorous observations and embellishments on.
  • When you outline and start to think about what you want to discuss, your subconscious will amaze you with all the things that it will reveal that you weren’t aware that you’d noticed.
  • The best weapon against creative block is to be tuned in to your point of view. Writing material is a journey not a destination.
  • Always carry a micro-cassette recorder to record any thoughts and impressions that may occur to you. Don’t try to keep the ideas in your head. Without fail, you’ll forget them later.
  • Use the “third eye” technique of observing yourself to tap into your “pure funny”.
  • Structure your funny by outlining the subjects you want to discuss.
  • Choose topics that reflect your true interests and concerns.
  • Deal with creative block by (1) understanding your point of view, (2) using the third eye, (3) relaxing and letting your subconscious mind work, or (4) accepting and grappling with “drudgery days".
  • Carry a micro-cassette recorder or notebook with you at all times to record your ideas.
  • An important note when putting together your first set: Always put what you consider to be your strongest material last. A strong ending can save a weak beginning, but not vice versa. It’s a law of performing--the audience remembers how you end, not how you begin.
  • Nervousness only signifies that adrenaline is being pumped through your system, and adrenaline (as we all know) is what heightens our sense and speeds up our response in times of danger. And it does the same thing when you’re on stage.
  • For a comedian, bombing at one time or another is an inevitable reality.
  • Preparation for your first time on stage should be thorough and well planned.
  • Start to write material at least two to three months before you go on stage. This material should be routines that you’ve developed using the third-eye method. Don’t go on stage for the first time thinking you’ll just ad-lib your way through. The pressure is too great for a novice.
  • Memorize your routines until you know them backwards and forwards.
  • Talk your routine into a tape recorder to get an idea of how long it runs.
  • Put your best routine at the end so that you can finish strong. A good finish can make up for a bad beginning, but not vice versa.
  • Obviously, the most difficult thing about doing a spot on television versus the normal nightclub set is the fact that you have a very short time to score. Five minutes to be exact on The Tonight Show.
  • One of the most important things to keep in mind when you’re doing televisions is that you can’t run over. These shows are very tightly structured, particularly with respect to commercial breaks.
  • Treat the studio audience like a nightclub audience. Relate to them exclusively.
  • Be prepared to lose tag or afterthought lines from your routine for television, because television studio audience applaud clever lines and cut into your time.
  • Get to the studio early so that you can familiarize yourself with its environment and get the feel of the room.
  • Look through your routines and think of questions that can be asked to get you into them for your panel segment. Make these routines as conversational as possible.
  • You have to start with where your true attitudes and beliefs start.
  • The thing that most comedians need to remember when they go on stage is that they’re really the boss.
  • I have always written down everything that I ever thought of--that I thought was worth remembering.
  • The mind is a problem-solving, goal-seeking mechanism. I’ve found that most of the creative work I’ve done on a subconscious level.
  • Writing is nothing but the organization of your ideas. You have to find the patterns of your thinking.
  • I got a good piece of advice when I was working in radio, which was to act like you were talking to one person at a time.
  • The one thing I learned very quickly was that your material will ascend or descend to the level of the room that you are playing.
  • No matter how popular you are, promotes are not going to rehire you if you miss gigs.
  • The thing about comedy is that you don’t wield any power with comedy, you just reinforce what people already believe. You can’t change anybody’s mind.
  • If you try to change their mind, you’re no longer a comedian, then you’re a humorist, then you’re a satirist, then you’re out of show business.
  • The good comedians always put the jokes above anything else. To me, the ideal joke is when you’ve got your stupid redneck over here and your college professor over here, and they both laugh at the same joke for different reasons.
  • That’s a big thing in comedy. If people can get a quick sense of who you are, they relax.

20191210

Stack Computers by Philip Koopman


  • Stack machines offer processor complexity that is much lower than that of CISC machines, and overall system complexity that is lower than that of either RISC or CISC machines.
  • LIFO stacks, also known as “push down” stacks, are the conceptually simplest way of saving information in a temporary storage location for such common computer operations as mathematical expression evaluation and recursive subroutine calling.
  • LIFO stacks may be programmed into conventional computers in a number of ways. The most straightforward way is to allocate an array in memory, and keep a variable with the array index number of the topmost active element.
  • “Pushing” a stack element refers to the act of allocating a new word on the stack and placing data into it. “Popping” the stack refers to the action of removing the top element from the stack and then returning the data value removed to the routine requesting the pop.
  • A very important property of stacks is that, in their purest form, they only allow access to the top element in the data structure.
  • Stacks make excellent mechanisms for temporary storage of information within procedures. A primary reason for this is that they allow recursive invocations of procedure without risk of destroying data from previous invocations of the routine.
  • Hardware implementation of stacks has the obvious advantage that it can be much faster than software management.
  • Stack machines are easier to write compilers for, since they have fewer exceptional cases to complicate a compiler.
  • Stack machines are also simpler than other machines, and provide very good computational power using little hardware.
  • A particularly favorable application area for stac machines is in real time embedded control applications, which require a combination of small size, high processing speed, and excellent support for interrupt handling that only stack machines can provide.
  • Both hardware and software stacks have been used to support four major computing requirements: expression evaluation, subroutine return address storage, dynamically allocated local variable storage, and subroutine parameter passing.
  • The use of an expression evaluation stack is so basic to the evaluation of expressions that even register-based machine compilers often allocate registers as if they formed an expression evaluation stack.
  • The solution to the recursion problem is to use a stack for storing the subroutine return address. As each subroutine is called the machine saves the return address of the calling program on a stack.
  • Modern machines usually have some sort of hardware support for a return address stack. In conventional machines, this support is often a stack pointer register and instructions for performing subroutine calls and subroutine returns.
  • Whenever a subroutine is called it must usually be given a set of parameters upon which to act.
  • Real machines combine the various stack types. It is common in register-based machines to see the local variable stack, parameter stack, and return address stack combined into a single stack of activation records, or “frames”.
  • Many of the designs for these stack computers have their roots in the Forth programming language. This is because Forth forms both a high level and assembly language for a stack machine that has two hardware stacks: one for expression evaluation/parameter passing, and one for return addresses.
  • An interesting point to note is that, although some of these machines are designed primarily to run Forth, they are also good at running conventional languages.
  • Stack machines have small program size, low system complexity, high system performance, and good performance consistency under varying conditions.
  • Stack machines run conventional languages reasonably well, and do so using less hardware for a given level of performance than register-based machines.
  • Stack machines are very good at running the Forth language, which is known for rapid program development because of its interactivity and flexibility. Forth is also known for producing compact code that is very well suited to real time control problems.
  • A very good application area for stack machines is embedded real time control.
  • In general, a single stack leads to simple hardware, but at the expense of intermingling data parameters with return address information.
  • An advantage of having a single stack is that it is easier for an operating system to manage only one block of variable sized memory per process.
  • A disadvantage of a single stack is that parameter and return address information are forced to become mutually well nested.
  • Multiple stacks allow separating control flow information from data operands.
  • An important advantage of having multiple stacks is one of speed. Multiple stacks allow access to multiple values within a clock cycle.
  • The amount of dedicated memory used to buffer stack elements is a crucial performance issue.
  • To be competitive in speed, a stack machine must have at least one or two stack elements buffer inside the processor.
  • A small stack buffer with primary stacks residing in program memory allows quick switching between stacks for different tasks since the stack elements are predominantly memory resident at all times.
  • The fact that a small dedicated stack buffer is simple to implement and easy to manage makes it very popular. In particular, the fact that most stack elements reside in main memory makes managing pointers, strings, and other data structures quite easy. The disadvantage of this approach is that significant main memory bandwidth is consumed to read and write stack elements.
  • An advantage of a large stack buffer is that program memory cycles are not consumed while accessing data elements and subroutine return addresses. This can lead to significant speedups, particularly in subroutine intensive environments.
  • The number of addressing modes has a tremendous effect on how the stacks are constructed and how the stacks can be used by programs.
  • 0-operand instructions do not allow any operands to be associated with the opcode. All operations are implicitly specified to be on the top stack element(s). This kind of addressing is often called “pure” stack addressing.
  • A disadvantage to the 0-operand addressing mode is that complex addressing modes for data structure accessing may take several instructions to synthesize.
  • A machine with 1-operand instruction format usually performs operations on the specified operand and uses the top stack element as the implicit second operand.
  • 2-operand instruction formats allow each instruction to specify both a source and destination.
  • 2-operand machines offer a maximum of flexibility, but requires more complicated hardware to perform efficiently.
  • Forth is an unconventional programming language which uses a two-stack model of computation and strongly encourages frequent calls to many small procedures.
  • Stack machines support small program sizes by encouraging frequent use of subroutines to reduce code size, and by the fact that stack machines can have short instructions. Small program sizes reduce memory costs, component count, and power requirements, and can improve system speed by allowing the cost effective use of smaller, higher speed memory chips.
  • Decreased system complexity decreases system development time and chip size. This decreased chip size leaves more room on-chip for semi custom features and program memory.
  • System performance includes not only raw execution speed, but also total system cost and system adaptability when used in real world applications.
  • For simplicity, the Canonical Stack Machine has a single bus connecting the system resources.
  • The data stack is a memory with an internal mechanism to implement a LIFO stack. A common implementation for this might be a conventional memory with an up/down counter used for address generation.
  • The data stack allows two operations: push and pop. The push operation allocates a new cell on the top of the stack and writes the value on the data bus into that cell. The pop operations places the value on the top cell of the stack onto the data bus, then deletes the cell, exposing the next cell on the stack for the next processor operation.
  • The return stack is a LIFO stack implemented in an identical manner to the data stack. The only difference is that the return stack is used to store subroutine return address instead of instruction operands.
  • The ALU functional block performs arithmetic and logical computations on pairs of data elements.
  • The ALU supports the standard primitive operations needed by any computer.
  • The program counter holds the address of the next instruction to be executed. The PC may be loaded from the bus to implement branches, or may be incremented to fetch the next sequential instruction from program memory.
  • The program memory block has both a Memory Address REgister (MAR) and a reasonable amount of random access memory.
  • An important point to note is that Forth notation often makes extensive use of special characters.
  • Stack machines execute data manipulation operations using postfix operations.
  • Postfix operations are distinguished by the fact that the operations come before the operation.
  • In postfix notation, the operator acts upon the most recently seen operands, and uses an implied stack for evaluation.
  • Postfix notation has an economy of expression when compared to infix notation in that neither operator precedence nor parentheses are necessary. It is much better suited to the needs of computers.
  • The Canonical Stack Machine described in the preceding section is designed to execute postfix operations directly without burdening the compiler with register allocation bookkeeping.
  • The instruction >R and its complement R> allow shuffling data elements between the data and return stacks. This technique is used to access stack elements buried more than two elements deep on the stacks be temporarily placing the topmost data stack elements on the return stack.
  • Even though all arithmetic and logical operations are performed on data elements on the stack, there must be some way of loading information onto the stack before operations are performed, and storing information from the stack into memory. The Canonical Stack Machine uses a simple load/store architecture, so has only a single load instruction ‘@’ and a single store instruction ‘!’.
  • Somehow there must be a way to get a constant value onto the stack. The instruction to do this is called the literal instruction, which is often called a load-immediate instruction in register-based architecture. The literal instruction uses two consecutive instruction words: one for the actual instruction, and one to hold a literal value to be pushed onto the stack.
  • The Program Counter is the register that holds a pointer to the next instruction to be executed. After fetching an instruction, the program counter is automatically incremented to point to the next word in memory. In the case of a branch or subroutine call instruction, the program counter is loaded with a new value to accomplish the branch.
  • In order to be able to make decisions, the machine must have available some method for conditional branching. The Canonical Stack Machine uses the simplest method possible. A conditional branch may be performed based on whether the top stack element is equal to 0. This approach eliminates the need for condition codes, yet allows implementation of all control flow structures.
  • Since there is a dedicated return address stack, subroutine calls simply require pushing the current program counter value onto the stack, then loading the program counter with a new value.
  • Subroutine returns are accomplished by simply popping the return address from the top of the return address stack and placing the address in the program counter.
  • An important consideration in real time control applications is how the processor can handle interrupts and task switches.
  • Interrupts are caused either by exceptional events, such as stack overflow, or by requests for I/O service. Both events require quick resolution without disturbing the flow of the current task.
  • I/O servicing is a potentially frequent event that must be handled quickly for real time control tasks.
  • Stack machines treat interrupts as hardware generated subroutine calls.
  • Interrupts are much less expensive on stack machines than on conventional machines for several reasons: registers need not be saved since the stack allocates working storage automatically, there are no condition code flags to be saved since the only branch conditions are kept as flags on the data stack, and most stack processors have a short or nonexistent data pipeline, so there is no penalty for saving the pipeline state when an interrupt is received.
  • Because of its roots, Forth stresses efficiency, compactness, flexible and efficient hardware/software interaction.
  • The Forth Virtual Machine has two stacks: a data stack and a return stack.
  • Forth programs consist of very small subroutines that execute only calls to other subroutines and primitive stack operation instructions.
  • The main characteristic of Forth programs that separates Forth from most other languages is the high frequency of subroutine calls.
  • Good Forth programming style encourages incremental program development and testing with small subroutines.
  • The consensus among Forth programmers is that use of the Forth language reduces development time by a factor of 10 compared to other languages over a wide range of applications.
  • A major reason that Forth has historically been a 16-bit language is that 8-bits is too small for general purpose computations and addressing data structures. While 12-bits was tried in some of the earliest minicomputers, 16-bits seems to be the smallest integer size that is truly useful.
  • 16-bit machines are capable of addressing 64K of memory, which for a stack machine is a rather large program memory.
  • Embedded applications require a small processor with a small amount of program memory to satisfy demanding power, weight, size, and cost considerations.
  • One of the difficult technical challenges that arise when designing a 32-bit stack processor is the management of the stacks.
  • The traditional solution for a growing program size is to employ a hierarchy of memory devices with a series of capacity/cost/access-time tradeoffs.
  • The memory problem comes down to one of supplying a sufficient quantity of memory fast enough to support the processor at a price that can be afforded. This is accomplished by fitting the momst program possible into the fastest level of the memory hierarchy.
  • The usual way to manage the fastest level of the memory hierarchy is by using cache memories. Cache memories work on the principle that a small section of a program is likely to be used more than once within a short period of time.
  • Stack machines have much smaller programs than either RISC or CISC machines. Stack machine programs can be 2.5 to 8 times smaller than CISC code.
  • When speaking of the complexity of a computer, two levels are important: processor complexity and system complexity.
  • Processor complexity is the amount of logic (measured in chip area, number of transistors, etc.) in the actual core of the processor that does the computations.
  • System complexity considers the processor embedded in a fully functional system which contains support circuitry, the memory hierarchy, and software.
  • The complexity of CISC machines is partially the result of encoding instructions to keep programs relatively small.
  • Stack machines strive to achieve a balance between processor complexity and system complexity. Stack machine designs realize processor simplicity not by restricting the number of instructions, but rather by limiting the data upon which instructions may operate: all operands are on the top stack elements.
  • Stack machines are extraordinarily simple: 16-bit stack machines typically use only 20 to 35 thousand transistors for the processor core.
  • Stack machine compilers are also simple, because the instructions are very consistent in format and operand selection. In fact, most compilers for register machines go through a stack-like view of the source program for expression evaluation, then map that information onto a register set.
  • Stack machine compilers have that much less work to do in mapping the stack-like version of the source code into assembly language.
  • Forth compilers are well known to be exceedingly simple and flexible.
  • Stack computer systems are also simple as a whole. Because stack programs are so small, exotic cache control schemes are not required for good performance. Typically the entire program can fit into cache-speed memory chips without the complexity of cache control circuitry.
  • Interrupts are treated as hardware invoked subroutine calls. There is no pipeline to flush or save, so the only thing a stack processor needs to do to process an interrupt is to insert the interrupt response address as a subroutine call into the instruction stream, and push the interrupt make register onto the stack while masking interrupts (to prevent an infinite recursion of interrupt service calls). Once the interrupt service routine is entered, no registers need be saved, since the new routine can simply push its data onto the top of the stack.
  • The simplest way to solve the stack problem is simply to assume that stack overflow will never happen.
  • Given that stack overflows are allowed to occur on a regular basis, the most conceptually appealing way to deal with the problem is to use a demand fed stack manager that moves single elements on and off the stack as required.
  • To implement this strategy, the stack buffer is set up as a circular buffer with a head and tail pointer. A pointer to memory is also needed to keep track of the top element of the memory-resident portion of the stack. Whenever a stack overflow is encountered, the bottom-most buffer-resident element is copied to memory, freeing a buffer location. Whenever an underflow is encountered, one element from memory is copied into the buffer. This technique has the appeal that the processor never moves a stack element to or from memory unless absolutely necessary, guaranteeing the minimum amount of stack traffic.
  • An alternative to the demand-fed strategy is to generate an interrupt on stack overflow and underflow, then use software to manage the stack spill. This approach uses less control hardware then the demand-fed method, but requires a stack buffer that is somewhat bigger to reduce the frequency of the interrupts.
  • There are three components to the performance of processing interrupts.
  • The first component is the amount of time that elapses between the time that an interrupt request is received by the processor and the time that the processor takes action to begin processing the interrupt service routine. This delay is called interrupt latency.
  • The second component of interrupt service performance is interrupt processing time. This is the amount of time that the processor spends actually saving the machine state of the interrupted job and diverting execution to the interrupt service routine.
  • The third component of interrupt service performance is what we shall call state saving overhead. This is the amount of time taken to save machine registers that are not automatically saved by the interrupt processing logic, but which must be saved in order for the interrupt service routine to do its job.
  • A stack machine can implement lightweight threads simply by requiring that each task run a short sequence of instructions when invoked, then relinquish control to the central task manager. This can be called non-preemptive, or cooperative task management.
  • If each task starts and stops its operation with no parameters on the stack, there is no overhead for context switches between tasks.
  • The amount of stack memory needed by most programs is typically rather small.
  • Any computer system is worthless without software.
  • Having hardware that effectively supports software requirements is of the utmost importance.
  • The use of a large number of small procedures when writing a program reduces the complexity of each piece that must be written, tested, debugged, and understood by the programmer.
  • Lower software complexity implies lower development and maintenance costs, as well as better reliability.
  • The currently accepted best practice in software design involves structured programming using modular designs.
  • On a large scale, the use of modules is essential for partitioning tasks among members of programming teams.
  • On a smaller scale, modules control complexity by limiting the amount of information that a programmer must deal with at any given time.
  • Conventional computers are still optimized for executing programs made up of streams of serial instructions.
  • If a procedure contains more than seven distinct operations it should be broken apart by chunking related portions into subordinate procedures to reduce the complexity of each portion of the program.
  • Today’s hardware and programming environments unnecessarily restrict the usage of modularity, and therefore unnecessarily increase the cost of providing computer-based solutions to problems.
  • The language used should reflect the entire system being developed, including the system operating environment, the suitability of the language to solve the problem at hand, developing time and costs, the maintainability of the finished product, the strengths of the underlying processor at running various languages, and the previous programming experience of the programmers assigned to the project.
  • Forth is the most obvious language to consider using on a stack machine. That is because the Forth language is based upon a set of primitives that execute on a virtual stack machine architecture.
  • One of the characteristics of Forth is its very high use of subroutine calls. This promotes an unprecedented level of modularity, with approximately 10 instructions per procedure being the norm.
  • One of the advantages of the Forth programming language is that it covers the full spectrum of language levels.
  • Forth tends to act as a programmer amplifier.
  • Forth is best used on medium-sized programming projects involving no more than two or three programmers who have compatible programming styles.
  • Probably the most common reason for using a conventional language will be the existence of a large body of existing source code that must be ported onto a better processor.
  • Generation of stack-based code for expression evaluation is relatively straightforward.
  • Stack machines are well suited to LISP programming as well as to expert systems. This is because LISP and Forth are very similar languages in many respects.
  • The major difference is that LISP involves dynamic storage allocation for its cells, while Forth uses a static storage allocation.
  • Functional programming languages offer the promise of a new way of solving problems using a different model of computation than that used by conventional computers.
  • One of the side effects of using a functional programming language is that a high degree of parallelism is available during program execution.
  • This raises the idea of a massively parallel computer made of stack processors that is programmed with a functional programming language.
  • A key conceptual feature of stack machines is their uniformity of interface between high level code and machine instructions.
  • Any system in which a high speed processor with low system complexity is needed is a good candidate for using a stack processor.
  • Real time embedded control processors are computers that are built into pieces of (usually) complicated equipment such as cars, airplanes, computer peripherals, audio electronics, and military vehicles/weapons. The processor is embedded because it is built into a piece of equipment that is not itself considered a computer.
  • Most embedded systems place severe constraints on the processor in terms of requirements for size, weight, cost, power, reliability and operating environment.
  • Real-time events are typically external stimuli to the system which require a response within a matter of microseconds or milliseconds.
  • A processor that has a large number of pins takes up precious printed circuit board area.
  • Microcoded machines are more flexible than hardwired machines.
  • Preliminary research shows that stack machines can execute functional programming languages very efficiently. Programs written in these languages have a great deal of inherent parallelism, which may be exploited by a multiprocessor stack machine system.
  • Conventional languages can be implemented very easily on stack machines.
  • The use of virtual memory and memory protection schemes are concepts that have not yet been widely incorporated into existing stack machines.
  • Protection is the capability for the hardware to prevent a program from accessing another program’s memory except under very carefully controlled conditions.
  • Memory bandwidth is the amount of information that can be transferred to and from memory per user.
  • The usual way of implementing an IF statement is by using a conditional branch that is taken if the condition tested by the IF is false.
  • Stack machines do not seem to be best suited as primary CPUs for the workstation and minicomputer markets.
  • The Forth language is based on an extensible, interactive compiler that creates code for a virtual stack machine.

20191207

Zen and the Art of Stand-up Comedy by Jay Sankey


  • Either you’re funny or you aren’t. But if you are a naturally funny person, I believe you can learn to be a stand-up comic.
  • So though I don’t believe “funny” can be taught, I do believe stand-up can be taught to funny people.
  • To be a stand-up comic is to be an actor, a writer, and a director.
  • One a more primary, perhaps even symbolic level I’d be tempted to say that laughter is often the result of a sudden and surprising witnessing of things either coming together or coming apart.
  • In my experience, most comics are extremely sensitive, relatively insecure, very insightful, highly intelligent, people. String individuals rather than group members, with a burning desire to share what they think and feel (at least while onstage).
  • But alas, as things stand now, 99 percent of stand-up comics begin their careers by performing for weeks, months, or even years on these amateur shows.
  • How do you know if you can be a successful comic? There’s only one way and that’s to try it. You think about it and talk about it and dream about, but it’s really all crap until the night you finally take stage in front of a living, breathing crowd.
  • My only advice to anyone interested in the idea of being a stand-up comic is to call up a local comedy club, ask about their amateur night, and get u on that stage.
  • One of the keys to stand-up is to try to make everything you say look spontaneous and unrehearsed.
  • To write effective stand-up material, you need three primary skills. First, the ability to develop the “comic ear”, to be able to hear (and see) “the funny” in the things around you. Second, the determination to write a large quantity of jokes, the more the better. Many seasoned comics say you have to write a thousand jokes before you start to really become proficient. And third, the ability to be able to separate the good jokes from the bad.
  • Write down every joke idea you ever have. Seriously every single one.
  • Go through them on a regular basis, edit them down, polish them, and even go so far as to file them, perhaps by subject, in a file system or on computer disc.
  • Remember, stand-up tends to focus on:
    • Simple ideas that can be
    • Commonly understood, and
    • Verbally expressed
  • Almost anyone can vent, blurt out thoughts and feelings, express themselves in one form or another. But to communicate is a whole other thing, because to be a communicator you have to care, not just about speaking, but also about being heard. That involves taking into account your audience. Their expectations, their perspectives, everything. All of which cannot help but influence material and your choice of subject, vocabulary, and speed of delivery.
  • The difference between wit that gets belly laughs and wit that gets bored silence is not only a matter of the style the material is both written and delivered in, but also a matter of the degree to which the audience cares about the subject.
  • If the audience doesn’t care about what you are talking about, they will not laugh. It’s really that simple.
  • People will only emotionally invest in something they care about.With stand-up comedy, the success of the material often comes down to four elements:
    • Surprise
    • Credibility
    • Truth
    • Exaggeration
  • To me, surprise is one of the true keys, not just to keeping an audience’s attention, but to comedy in general. It's also one of the primary distinctions between jokes that are merely witty and clever, and jokes that are gut-busting funny.
  • A joke is more a matter of sudden, often ironic, insight.
  • The power of the joke’s surprise often determines the initial momentum of the audience’s laughter.
  • For a joke to be credible, it must be believable in two ways. It must be believable in relation to the character, and it must be believable in relation to the world.
  • But there are few jokes strong or more dependable than jokes based on everyday truths. In fact, strictly speaking, because “truth” is more often thought of as an idea of the collective than a perception of the individual, any joke the majority of an audience laughs at must certainly contain some truth--a perception held in common.
  • Effective comedy is more often about stretching the truth rather than breaking it.
  • Most jokes are made up of two parts: the set-up and the punchline.
  • This set-up/punchline structure is behind 99 percent of the comedy you will ever see getting laughs on a stand-up stage.
  • A set-up is the information the comic gives to the crowd to establish an initial subject, content, and perspective.
  • A punchline is the final information the comic gives to the crowd; it alters the meaning of already given information in a surprising fashion.
  • Effective punchlines are more about surprise, irony, brevity, and imagination. A punchline shouldn’t just tap the crowd on the shoulder, it should be more like a shovel to the back of the head.
  • Effective punchlines are often a single sentence, as short as possible, that dramatically changes the meaning, spirit, or direction of the joke, while giving any built-up tension a sudden and completely unexpected opportunity for release.
  • Effective jokes tend to have at least one single, clear moment, usually at the end of the punchline, where the listener experiences already given information suddenly coming together in a surprising fashion, due to one last piece of information.
  • Generally speaking, the more suddenly and clearly the comic communicates this past piece in the puzzle, the more powerful the click moment and the louder the laugh.
  • Not only should your punchlines consist of as few words as possible, hut ideally the complete idea of the punchline should not come into full focus until the very last word of the joke. That’s one of the most natural ways to maximize the surprise.
  • Do not use any key words in the set-up that you plan to use in the punchline. In other words, don’t repeat yourself.
  • When writing jokes, it’s a good idea to avoid vague generalizations. [...] Strong writing creates a single image for everyone in the crowd, each person imagining a very similar thing.
  • Instead of telling jokes about stuff that happened to your friends, your neighbor, or even someone in the news, whenever possible write the joke so it’s about joke.
  • You are the audience’s primary connection between your jokes and their interest, so do everything you can to make the jokes about you.
  • One of the reasons the number three appears in so many jokes is because comedy is all about breaking patterns--but to break a pattern, one must first establish a pattern. Something happening once doesn’t establish a pattern, but for it to happen twice, well that at least suggests a pattern.
  • Breaking your information, especially dense punchlines, into groups of three is also a very effective way to communicate.
  • In performance, the three-beat rhythm of the punchline plays a significant part in the joke’s success.
  • Aggressive editing is very important in joke writing in general, but particularly so when it comes to punchlines.
  • Basically, a comic makes a “callback” when he says a joke that makes reference to information contained in a previous joke.
  • Having a constant flow of new material, even just a few jokes, can keep things fresh and interesting, if only for you.
  • The last thing you want is for people who “enjoyed you so much the last time” to come out to see you again, only to find that you’re doing all the same stuff.
  • By all means, try to focus on your own unique sense of humor rather than on trying to deliver material that doesn’t suit the person you really are.
  • The most successful comics tend to play characters that are two things: real and exaggerated.
  • When developing your stage character--or working on any aspect of stand-up, for that matter--it’s very easy to make things more complicated than they need to be. It’s keeping things simple that’s truly difficult.
  • Simple isn’t easy, and keeping things simply and clear is a very different thing from keeping things stupid or superficial. It usually takes great intelligence and a lot of hard work to simplify anything.
  • Fearlessly give of yourself, through your character, to the audience. Commit. Be there for them, and more often than not, they will be there for you.
  • Whatever style you eventually adopt, when delivering your material strive to stay interesting. Continue to fuel the crowd’s curiosity. As always, the key is stimulation. The more stimulating your delivery, the more it will engage the audience, and the more they will really be there with you.
  • While psychological pauses create tension and heighten curiosity, logical pauses, between both words and sentences, are more about giving the audience the time required for key pieces of information to register and “harden” in their minds.
  • Another way comics sometimes highlight or emphasize a key piece of information is through repetition rather than pausing. Instead of planting a pause after saying the line, they repeat the line or perhaps just the last few words of the line.
  • Our language is full of small, almost identical words and phrases that a comic can leave out or quickly pass over in his delivery.
  • One of the keys to surprising or shocking people in a way that results in laughter is to try to challenge people without making them feel threatened.
  • I believe taping your sets, especially during your first couple of years, is absolutely essential.
  • The illusion of spontaneity is very important to a stand-up performance, so when first taking the stage and beginning to speak, you do not want to give the impression of beginning a pre-written monologue.
  • Strive instead to give the impression that yes, you have begun to share your thoughts and feelings with the audience, but the thoughts and feelings have been with you all day.
  • Generally speaking, good comics have a relaxed air of strength about them.
  • To be said to have a “style”, a comic must in some sense repeat himself. The way he delivers his jokes, the subjects he talks about, the way he writes his material, something. So, strictly speaking, repetition is not a bad thing. However, there’s a thin line between having a style and being predictable.
  • To become really good at almost anything worth being good at, you have to work at it pretty much every day. And one of life’s little ironies is that as you become good at something, it magically starts to vanish, to become a part of you.
  • In the end, there seems to be only one way to become excellent at something, and make it look so damn easy, and that's by working so damn hard.
  • Going too fast is much more common than going too slowly.
  • Nervous energy can also be an excellent source of fuel onstage, especially if you learn how to make it work for you rather than against you.
  • Rehearsing on a regular basis will also greatly enhance your memory. Every time you run through your set you are etching your material that much more into your memory.
  • Unlike a punchline to a joke, which is often a sudden bringing together of things, a sudden clarification, a magic trick is often the opposite, a sudden, unsolvable mystery. And usually, when people are truly puzzled, they don’t feel like laughing.
  • Arranging and connecting your jokes by their subject matter is probably the most obvious and most often employed means of segueing.
  • It’s often a good idea for your opening joke to have unusually broad appeal.
  • So at a very primitive level, to keep a crowd’s attention a comic’s performance must somehow have a uniformity about it as well as be perpetually surprising.
  • Just as first impressions are very important, so are last impressions. And just as your first joke must establish you as a truly funny individual, your last joke, ideally, should leave a very strong impression in the minds of the audience that they were in the hands of a real comedic talent.
  • Like your first joke, your last joke must be very strong.
  • The key with a cold, quiet crowd is to break the pattern of whatever the other comics before you have done.
  • From the moment you take the stage, you must immediately establish yourself as a powerful individual and capture the crowd’s attention.
  • So play to the people who are listening to you, and try to ignore the people who are not.
  • As a stand-up comic you must look like you are in complete control.
  • The crowd is always looking to you to see how they should feel about what you are doing.
  • One of the dangers of exaggerating your abilities and achievements is that you run a real risk of “overselling” yourself. Then when it comes time to perform, you fail to meet the expectations you yourself created!
  • Almost every aspect of the craft of stand-up involves the idea of communication, the conveying of specific information to other people. The area of self-promotion is no different.
  • One of the most important things I learned [in advertising] was the “AIDA Rule of Communication”, for Attention, Interest, Desire, Action.
  • Typically [radio] interviewers are looking for you to be funny on air, so be prepared. One way to do this is to give the interviewer a short list of questions he or she can ask that will “naturally” lead you into some of your bits.
  • For me, professionalism is more of an attitude, even a code of behavior.
  • To me, to be “funny” is to be found to be funny by another person or persons. So if an audience doesn’t laugh, you aren’t funny, at least to them.
  • If you’re so damn clever or smart or whatever else you call it, prove it and reach the crowd in front of you.
  • Push yourself. Don’t rest on your tried-and-true forty-five minutes or your always charming character. The “greats” of almost any discipline or profession tend to think of themselves as amateurs, as students, forever trying to learn more about their area of interest or so-called expertise.
  • Nobody gets great overnight.
  • Twenty Tips:
    • Smile.
    • Leave the audience wanting more.
    • Be flexible.
    • Simple is better than complicated.
    • Stage time is precious, don’t waste it.
    • Play to the entire room.
    • Beware talking too quickly.
    • Remember, likeable and vulnerable.
    • Commit fully to your material.
    • Variety is good.
    • Try to have fun onstage.
    • Always be professional.
    • Ask the audience for nothing.
    • Do your time, no more, no less.
    • Start string, end strong.
    • Don’t just express, communicate!
    • Tape your sets.
    • Don’t wait for the audience to come to you. Go to them.
    • Keep writing.
    • Trust yourself.

20191202

Poking a Dead Frog by Mike Sacks


  • All great comedy has managed to circumnavigate executive meddling. But this is easier said than done.
  • Always be worn on your own material.
  • Other people’s ideas are never as important as yours.
  • Complacency is a classic mistake.
  • Writing isn’t a thing you ever figure out--ever.
  • Write and perform comedy constantly and relentlessly for years and years until you’re awesome at it, all the while making tons of great friends in the comedy world. Eventually, one of those friends will get their foot in the door of “showbiz”, and opportunities will begin to open for you.
  • If I had to give any closing piece of advice it would be to make sure you like what you’re doing, to put yourself out there, in terms of your work. Also, just be a human being. Be nice to people and don't be crazy, which sounds very general, but that’s appreciated professionally. You can be a nice, energetic, funny person, but still not alienate anyone.
  • You know, having a writers’ room is very conducive to getting nothing done. You get a lot of people in there and you go off on tangents and people are going to the bathroom and going out and getting coffee. Everybody just wants to get out of that room.
  • If you approach everything from a pure creative angle, the work and employment will take care of itself. People don’t like others who constantly ask them for work. People find that off-putting. That’s not the way to do it. Just be around and engage people in a pure way and you’re going to get more work that way.
  • What is really comes down to is that life is short and these things should be fun.
  • It’s really about jumping in and doing it, and just starting to write, starting to make sketches and movies, and just putting them up on the Internet no matter who or where you are. You just have to start doing it--even if you’re not getting paid.
  • Part of success is just starting something, working toward a goal, and then living long enough to achieve it.
  • You usually struggle in the dark for years and years. The trick is that if you love it enough you’ll keep going. For people who don’t truly like it, those are the people who usually fade away. Those are usually the ones who say, “I want to be famous. I want everyone to look at me.” That type of person weeds itself out at a certain point.
  • The truth is, in a writers’ room--and specifically in comedy, because you do so much together and it’s such a group process--if you’re not fun to hang out with, and you don’t have that self-awareness, you’re not going to do as well.
  • If you want to write for television, I strongly suggest that you watch a lot of television. Like, a lot. If you want to write movies, I strongly suggest watching a ton of movies.
  • Writing for free will make you write a lot, which is the only way to become a better writer. Everyone knows that reading a book about how to write comedy is a big joke. You just have to do it.
  • The most common joke-killer, by far, is The Simpsons, because they’ve already made every joke ever.
  • When it comes to writing advice, there really is no such thin. No one who’s successful knows exactly how their path has led to their success. Every journey is different. It doesn’t matter how Erma Bombeck did it, because your path is your own and no one else’s
  • Write what you think is funny. This does not mean anyone else will agree, but if you write what you hope others will think is funny, you have already alienated at least some readers.
  • If you aren’t willing to do something for free at first, no one is going to pay for it later. It is called “paying your dues” for a reason.
  • If this is about money for you, you are very confused about where all the money is hidden.
  • It is almost never worth arguing with someone on the Internet about anything--ever.
  • If you are lucky enough to get an audience for your comedy, be nice to that audience. You are lucky to have them.
  • You don’t have to be a writer or a comedian.
  • Writing is boring and solitary and lonely and awful. Comedy is even worse.
  • Make friends with smart, funny, highly motivated, encouraging, wonderful people who are more talented than you.
  • You need at least one great sample script. But if you are an sprigin writer, you should always be writing.
  • Don’t kid yourself: A lot of people fade away. A lot of people become tragic, whether they see it that way or not. I don’t know. There’s always this weird thing in show business where you never know when success is going to happen. It’s not a meritocracy; so much of it is about some weird shit aligning that’s usually out of your control, and you catch your break. And a lot of people don’t ever catch it.
  • Agents never want to admit that they don’t do a great job handling the submissions they receive but, well, they don’t.
  • Don’t count on them coming to you. You’ll always be remembered by the ones you tracked down.
  • Read your stuff out loud. Sometimes the way it reads in your head sounds different when someone says ti.
  • Be open to changing all the material you think is really brilliant.
  • There’s always some better way to do things when you’re working with good people.
  • Just put in the time, and don't be too precious about things. Work with your friends. And maybe, eventually, you’ll get paid.
  • When you’re writing something, and it makes you laugh, don’t judge that. Even if it doesn’t seem to fit. If it made you laugh out loud, it probably belongs on the page.
  • Have trust in amusing yourself.
  • I tell people this all the time, that stand-up, even if you don’t want to be a comedian, makes you write, and it forces you to make the material good, because by doing stand-up you’re defending your own jokes. You can’t just write them down.
  • Stand-up is kind of like getting your bachelor’s degree. Or getting a law degree. You can do a lot with it. [...] If you get into stand-up and you become a producer, or you become an actor, or you become a writer, it’s not like you’ve failed as a comic. It’s just that being a comic gives you the skills to move onto the next job.
  • There are all kinds of different paths to get to places, but you have to work your butt off. You have to work for a long time to do it. There’s no real shortcut. No one cares how you dress for an interview.
  • Start a blog and write monologue jokes every day.
  • Woody Allen is quoted as saying, “Eighty percent of success is showing up.”
  • At some point, you’ve got to do it.
  • Everything’s been done. I really think that. All you’re doing is variations on a theme. There’s an obsession with novelty and freshness, but often that’s just repackaging something that people haven’t seen for awhile. It’s writing something that you think will be funny, that you will enjoy seeing.
  • The interesting thing about comedy writing is that you’re doing this very creative, often very personal thing, but you’re expected to produce in this totally non creative way.
  • I would say that the best humor comes from things you’re passionate about. Write what you’re passionate about, and what you know about, and it always translates better.
  • I always tell aspiring comedy writers, “Just write as much as you can. That’s the only way you’re going to get better at it.” Do it anyway you can--write a bunch of jokes on Twitter, start a web series, start a funny Tumblr--anything. Just produce funny writing and eventually it’ll get noticed.
  • All it takes is one person in the comedy business to notice you and find your stuff funny.
  • If you get any success in comedy, help out your friends who are trying to do the same but who might not have a job yet.
  • Help each other out, and everybody wins.
  • Rewriting is writing. [...] Rewriting is everything.