SlideShare a Scribd company logo
1 of 35
Download to read offline
Evolution of The Client
and a viewable objects proposal
Thomas Lynch
CEO/founder Reasoning Technology
Presented at NTU
2013-10-29

Thomas.Lynch@reasoningtechnology.com
www.thomaswlynch.com
About Mr. Lynch
●

Participated in the design of a dozen
microprocessors variously as individual designer,
tools developer, manager, and architect, [ including
the Am29000 (test), 29050 (12 instructions, fp
support), Sonic (clock and smart card interface),
Am187 (device library analysis), Am486, K5 (t-func
develop, tech management), K6 (fp test platform),
K7 (fp and tech management), a PIC variation,
Neptune, Chromatic FP, Quicksilver radio node
(entire processor architecture, logic design, and
tools) ].
About Mr. Lynch
●

I've had a consulting practice since 1996 where I
have worked with the startups Quicksilver
Technologies and NetEffect. Developed microcode
for Chromatic Computers. Created intellectual
property for startups and for Intellectual Ventures.
Created business plans including for Enreagle and
21st Century Telephone. I proposed smart phone
technology in the 90s, and social media technology
in the early 2000s.
About Mr. Lynch
●

29 issued patents in the U.S. with a number of
related international filings, and a similar
number of active applications. These area of:
computer security; digital rights management;
social media (relationship rings); high
performance computing architecture, logic,
circuits, and packaging; user interface, and
telecommunications.
Current Projects
●

●

●

Reasoning Technology – a new intuitive way to
apply theorem proving to arguments in law.
New Memory Architecture ●
Implications to databases (developing db)
●
Implications to processor architecture
Computer Security
●
A better way to limit viruses and other OS
security threats

●

New Media Compression Algorithm

●

New Discrete Optimization Algorithm
Evolution of the Terminal Device
First Video Game I Played
●
●

●

●

Strar Trek written by Mike Mayfield
Each screen update printed out in
ASCII on the paper terminal.
Counted out distances manually
and used my SR-52 to calculate
photo torpedo trajectories.
Played it on the Boeing's Cybers
(probably 7600) at work, and an
HP3000 at school
The Teletype
●

●
●

●

●

●

Selonoid controlled cylinder jumped up and
slammed the letter on to the paper. Had a kick to
it.
Used an ink ribbon
Computer could type, or a person could type –
both about the same speed.
The computer typed out the game boards.
also
Paper (that's right – paper) tape reader on the
side. The Star Trek game came from a friend on
paper tape. We also had magnetic tape reader
but mag tape was expensive and held more data
than needed for such a program. Mag tape usage
might also require operator assistance.
The GE225 also used at the Army Corp of
Engineers had this as the system console, and
that machine was booted via paper tape.
DEC Writer
●

●

●

●

This had an ink ribbon and a print head that swept
across the paper. The print head had pins in it. It
made a zzzz sound as it went across, and then
the line was done. Much faster.
After playing Star Trek for a few hours a box of
paper would be used and be laying at your feet. If
it wasn't cleared the printer carriage might start
ripping the holes on the sides of the paper and
then print over the same line repeatedly, perhaps
at a bit of a diagonal.
No hard push and kickback when you typed. The
keyboard was soft, so typing was faster too.
132 characters wide, nicer than 80, though punch
cards only had 1 + 71 + 8 columns (continuation
mark, text, and comment) so often printouts only
went part way across the page.
The Video Terminal
●

●
●
●

Plug-in replacement for the paper terminal (so you
also need printer to give results to the boss).
80 by 25 line ASCII screen.
You will love green, later in amber also.
Instant refresh in Star Trek - Don't have to wait for
the page to print to update the game board – yes!
Tektronix 4014
●

●

●

Internal electronics would accept an ASCII
sequence starting with an ESC character, a
command byte, and two co-ordinates on the
screen – and then direct the electron beam
over the screen. There was no shadow mask,
hence no pixels, just a solid line.
High persistence phosphorous so the drawn
lines would stay there until the user pushed the
big erase button – which made a big flash and
then the screen would be blank.
Enabled drafting programs to run, where the
draftsman could see in real time what the
results looked like.
The Workstation
●

●

●
●

●

●

High Resolution Screen and graphics hardware to
drive it made raster graphics practical. It was
intended to be used by an individual!
Along with new CAD and word processing
applications – applications that served an individual
engineer rather than a project! [this and the prior
point distinguish the workstation from the
minicomputer]
Possible to run programs locally
Server may now only be for maintenance and
central storage. Advent of Ethernet, RFS
X-windows – each window is now a terminal by
itself, simple mixing of text and graphics
Typically too expensive for an individual, also
predates visacalc.

Apollo running Aegis
PC
●

●

●
●

Cheap Workstation that runs
visicalc – reached a wide audience
Visicalc did not require graphics –
which reduced the price
considerably
Simply Graphics
Proliferation of this hardware
facilitated the advent of a 'people's
network'
Portable Computer – SubPC
●

●

●
●
●

●

●

Facilitated by the cell network and
Internet, WIFI/cell instead of
Ethernet
More powerful than the servers of
yore.
New Applications for individuals
Browsers is the Thin Client
Work Station like behavior for local
applications
Software maintenance needs and individuals
owning multiple devices has caused a renewed
pressure to bring back the appearance of a server leading to the cloud.
Because multiple device ownership flips the person
to computer ratio - I call it the era of subPC.
Network Situation – Full Circle?
Typical Configuration Star Trek Game Was Played On
●

●

●

●

RS232 point to point serial
communication, progenitor of USB.
9600 baud was typical.
Server in the middle, each terminal
plugs into a dedicated port.
Peripheral interface cards have
RS232 ports and plug into the
peripheral bus of the computer.
Control chip in the terminals are the
progenitors of the graphics chip.

Computation must dominate over I/O, or
progress will be very slow.
Typical Enterprise Workstation
Network
●

●

●

●
●

●

Individually Operated Programs Run
Locally (such as the CAD tool)
Servers come in farms instead of
being a single machine.
“Big Jobs” with little interactive input
run on a server. More than one
choice of server to chose from 'load
balancing'.
Software Installed Over the Network
Backups and Data Shared Over the
Network
A 'gateway' (not shown) provides
access to the Internet for email and
browsing.
The biggest changes: a layer of hierarchy, the type of data
on the network, i.e. the purpose of the network.
What Changes With HTML5?
●

Some suggest we go back to running all applications on a server, and that
the graphics and display work is done locally – just like in the old days.
–

●

This favors portable devices that don't have enough compute or battery power to
run individual purpose applications.

But ... just because we used a browser doesn't mean that the application
can't run locally.
–

Better than using a window – it solves the problem of differing GUI approaches
needed on different platforms today.

–

And about those mobile devices – trends in computing suggest that they will be
powerful enough that a trend back to remote running individual purpose
applications will be at most temporary.
Evolution in Graphics Workflow
Star Trek ASCII Graphics
●

●
●

This is first few lines of Star Trek
in Basic. It has been extracted
from an ancient paper tape.
This is probably for the HP3000.
Apparently the world model is a
collection of arrays.
Trek Graphics
●

●

Array of characters
keeps their information
Map of world has
layers, each layer has a
character describing
something about that
location

1. Scan world(i+wi, j+wi, z) into display(i+di0, j+dj0). Look across z layers for
combination events.
2. Update information into information areas in display.
3. Scan display array one row at a time, sending string out to RS232 port. At end of row
send CR-LF, go to next row.
4. If enterprise is dead, goto 5,else wait for user input, parse it and update the world and
information.
5. Terminate the job (process)
Textronics 4014 Graphics
●

●

●

If you stare at a green screen all day and then look at
a white wall, the wall looks pink.
So called vector graphics or wire frame graphics. The
terminal excepted draw line segment commands, so
you only saw the outline.
Initially you could not erase a line, it physically
persisted on the phosphorus – the whole screen was
erased at once.
Tektronics 4014 Graphics
●

●

●

●

●

Display list created from
your model, or it may be
the model
Homogenous co-ordinate
systems so matrix
transforms can do
displacement
View step transforms
display list from view point,
and scales to view coordinates
Clipping chops off things off
screen
Finally break display list
down to escape commands

●

Libraries to help with this:
● GCS
● Plot10
Modern Graphics
●
●
●

●

Display list is now triangles instead of vectors
View now includes lighting and shading, possibly even ray tracing
Display buffer is now binary and there is no step of breaking it down to ASCII
commands
Hardware acceleration – initially this was very specific to the graphics problem, but the
latest generation are SIMD machines (like the old Cray machines)
But Wait a Minute ..What of Layout?
What of Layout
●

●

●

Notice in Star Trek, we had a concept of layout. We had an area on the screen for
the ASCII graphics, and other areas for information.
We lost this when we went to
the display list. Our world
model had no place for it.
The rest of the world did not
forget, we have a parallel
evolution in the “GUI”:
● Windows (Xerox PARC)
● X-windows widgets
● Html
● Css
X-windows – The Happenings
●

A graphics 'server'

●

Events – a key press throws things at programs

●

●

●

Call backs – wake up threads when something
happens
Multithreading – cooperating routines all running at
the same time
Widgets – things that display, have data, and can
throw events or make callbacks
Html Browser– It is a Client
●

●

●

●

●

●

Conceived around the concept of hyper text. Bunches of little text pieces, with
underlined areas that could be clicked on to be expanded.
Added basic text formatting and started to look something like word processor
output.
Because a language for storefronts on the Internet, so it integrated to a database
and 'did things' in response to user input other than just show more text.
Added media players
Dynamic html, and now html5 – The browser becomes a sort of X-window, but
better in some ways:
● Universally portable and standard compliance across vendors.
● Does its own screen formatting in ways familiar to everyone
● Runs programs, e.g. javascript so it has become a client in itself.
Note that our application is back to sending characters out the port (default 8080)
HTML/CSS/script vs. Widgets
Both CSS and Widgets Assist With Layout, but they are different:
●

●

●

●

Widget containers own other widgets. The contained
widget then lays out inside the area for the container.
HTML has <div> blocks, where the items in them
layout within the <div> is in a sense analogous to a
widget container.
Widget contains code that does things, takes
actions, throws events.
HTML supports java script, which may manipulate
the graphics and post events

Though notice, Javascript is not a good language for writing an application in.
Hence we have frame works becoming available, e.g. Ruby on Rails – templates
and filling them in. And Wt – html rendering widgets for C++.
Problems I had with Wt
●

●

●

●

●

Some mechanical stuff not related to the concept of using Widgets. -over use of static
methods, singleton classes, no iterators over containers, some other things.
Widgets keep copies of the data – so there is a lot of data duplication.
Widgets manage their own memory, so the data must live on the heap – and the
program can't manage it the way it would like.
Widgets exist in a tree hierarchy, but they do not explicitly recognize this. Hence, we
throw out efficient data structures in favor of implicit trees.
Widgets come in a library. One becomes a library developer to develop fundamentally
new ones – and that requires fitting into a complex framework.
A Proposal
Display Objects
●

●

●

●

●

●

similar in flavor to iterators for containers but its job is to display the 'data object'.
like an iterator the display object knows about its data object, and it has a standard
interface -though in this case for causing the data object to be displayed rather than
iterated over.
as for an iterator the implementation is specific to the data class. Hence the display
object knows where to find the data fields and how to use the data object.
The display object may throw various events depending on its implementation.
When used with a browser the display object generates java script and receives
posts in the form of commands from a layout object.
Library of existing display objects to inherit from (analogous to the widget library)
Layout Objects
●

Communicates with display objects.

●

Gather preferred size, and size limits, dictate actual size.

●

Provides environment information and CSS styles

●

For html browser application gathers java script output.

●

Notifies the display object of posts.

●

Layout Objects may be nested, i.e. the Layout object is a type of display object, just
can't be a root node.
Open Source Project
●

If anyone is interested in helping develop this
let me know.
Video Terminal Evolution and The Future of Browsers

More Related Content

What's hot

graphics processing unit ppt
graphics processing unit pptgraphics processing unit ppt
graphics processing unit pptNitesh Dubey
 
Graphics Processing Unit - GPU
Graphics Processing Unit - GPUGraphics Processing Unit - GPU
Graphics Processing Unit - GPUChetan Gole
 
Graphics Processing Units
Graphics Processing UnitsGraphics Processing Units
Graphics Processing UnitsAmrik Sadhra
 
Graphics processing unit (GPU)
Graphics processing unit (GPU)Graphics processing unit (GPU)
Graphics processing unit (GPU)Amal R
 
Gpu presentation
Gpu presentationGpu presentation
Gpu presentationJosiah Lund
 
Parallel Futures of a Game Engine (v2.0)
Parallel Futures of a Game Engine (v2.0)Parallel Futures of a Game Engine (v2.0)
Parallel Futures of a Game Engine (v2.0)Johan Andersson
 
Graphics processing unit ppt
Graphics processing unit pptGraphics processing unit ppt
Graphics processing unit pptSandeep Singh
 
Graphics Processing Unit by Saurabh
Graphics Processing Unit by SaurabhGraphics Processing Unit by Saurabh
Graphics Processing Unit by SaurabhSaurabh Kumar
 
GPU Architecture NVIDIA (GTX GeForce 480)
GPU Architecture NVIDIA (GTX GeForce 480)GPU Architecture NVIDIA (GTX GeForce 480)
GPU Architecture NVIDIA (GTX GeForce 480)Fatima Qayyum
 
Graphics processing unit (gpu)
Graphics processing unit (gpu)Graphics processing unit (gpu)
Graphics processing unit (gpu)junliwanag
 
Graphic Processing Unit (GPU)
Graphic Processing Unit (GPU)Graphic Processing Unit (GPU)
Graphic Processing Unit (GPU)Jafar Khan
 
Graphic Processing Unit
Graphic Processing UnitGraphic Processing Unit
Graphic Processing UnitKamran Ashraf
 
GPU - An Introduction
GPU - An IntroductionGPU - An Introduction
GPU - An IntroductionDhan V Sagar
 
19564926 graphics-processing-unit
19564926 graphics-processing-unit19564926 graphics-processing-unit
19564926 graphics-processing-unitDayakar Siddula
 
Optimizing Unity games for mobile devices
Optimizing Unity games for mobile devicesOptimizing Unity games for mobile devices
Optimizing Unity games for mobile devicesBruno Cicanci
 
SE-4128, DRM: From software secrets to hardware protection, by Rod Schultz
SE-4128, DRM: From software secrets to hardware protection, by Rod SchultzSE-4128, DRM: From software secrets to hardware protection, by Rod Schultz
SE-4128, DRM: From software secrets to hardware protection, by Rod SchultzAMD Developer Central
 

What's hot (20)

graphics processing unit ppt
graphics processing unit pptgraphics processing unit ppt
graphics processing unit ppt
 
Graphics Processing Unit - GPU
Graphics Processing Unit - GPUGraphics Processing Unit - GPU
Graphics Processing Unit - GPU
 
Graphics Processing Units
Graphics Processing UnitsGraphics Processing Units
Graphics Processing Units
 
Graphics processing unit (GPU)
Graphics processing unit (GPU)Graphics processing unit (GPU)
Graphics processing unit (GPU)
 
Gpu presentation
Gpu presentationGpu presentation
Gpu presentation
 
Parallel Futures of a Game Engine (v2.0)
Parallel Futures of a Game Engine (v2.0)Parallel Futures of a Game Engine (v2.0)
Parallel Futures of a Game Engine (v2.0)
 
Graphics processing unit ppt
Graphics processing unit pptGraphics processing unit ppt
Graphics processing unit ppt
 
Battlefield 4 + Frostbite + Mantle
Battlefield 4 + Frostbite + MantleBattlefield 4 + Frostbite + Mantle
Battlefield 4 + Frostbite + Mantle
 
Graphics Processing Unit by Saurabh
Graphics Processing Unit by SaurabhGraphics Processing Unit by Saurabh
Graphics Processing Unit by Saurabh
 
GPU Architecture NVIDIA (GTX GeForce 480)
GPU Architecture NVIDIA (GTX GeForce 480)GPU Architecture NVIDIA (GTX GeForce 480)
GPU Architecture NVIDIA (GTX GeForce 480)
 
Gpu
GpuGpu
Gpu
 
Graphics processing unit (gpu)
Graphics processing unit (gpu)Graphics processing unit (gpu)
Graphics processing unit (gpu)
 
Graphic Processing Unit (GPU)
Graphic Processing Unit (GPU)Graphic Processing Unit (GPU)
Graphic Processing Unit (GPU)
 
Graphic Processing Unit
Graphic Processing UnitGraphic Processing Unit
Graphic Processing Unit
 
GPU - An Introduction
GPU - An IntroductionGPU - An Introduction
GPU - An Introduction
 
19564926 graphics-processing-unit
19564926 graphics-processing-unit19564926 graphics-processing-unit
19564926 graphics-processing-unit
 
Graphics processing unit
Graphics processing unitGraphics processing unit
Graphics processing unit
 
Optimizing Unity games for mobile devices
Optimizing Unity games for mobile devicesOptimizing Unity games for mobile devices
Optimizing Unity games for mobile devices
 
GPU - Basic Working
GPU - Basic WorkingGPU - Basic Working
GPU - Basic Working
 
SE-4128, DRM: From software secrets to hardware protection, by Rod Schultz
SE-4128, DRM: From software secrets to hardware protection, by Rod SchultzSE-4128, DRM: From software secrets to hardware protection, by Rod Schultz
SE-4128, DRM: From software secrets to hardware protection, by Rod Schultz
 

Viewers also liked

Client Server models in JAVA
Client Server models in JAVAClient Server models in JAVA
Client Server models in JAVATech_MX
 
Client Server Computing Slides by Puja Dhar
Client Server Computing Slides by Puja DharClient Server Computing Slides by Puja Dhar
Client Server Computing Slides by Puja Dharpuja_dhar
 
CLIENT SERVER IN OS.ppt
CLIENT SERVER IN OS.pptCLIENT SERVER IN OS.ppt
CLIENT SERVER IN OS.pptsuman yadav
 
Client computing evolution ppt11
Client computing evolution ppt11Client computing evolution ppt11
Client computing evolution ppt11Tech_MX
 
Client server-computing
Client server-computingClient server-computing
Client server-computingjayasreep3
 
2 08 client-server architecture
2 08 client-server architecture2 08 client-server architecture
2 08 client-server architecturejit_123
 
Client Server Architecture
Client Server ArchitectureClient Server Architecture
Client Server ArchitectureRence Montanes
 
Client-Server Computing
Client-Server ComputingClient-Server Computing
Client-Server ComputingCloudbells.com
 
Clientserver Presentation
Clientserver PresentationClientserver Presentation
Clientserver PresentationTuhin_Das
 
Client server architecture
Client server architectureClient server architecture
Client server architectureBhargav Amin
 

Viewers also liked (13)

04 Client Server Technology
04 Client Server Technology04 Client Server Technology
04 Client Server Technology
 
Client Server models in JAVA
Client Server models in JAVAClient Server models in JAVA
Client Server models in JAVA
 
Client Server Computing Slides by Puja Dhar
Client Server Computing Slides by Puja DharClient Server Computing Slides by Puja Dhar
Client Server Computing Slides by Puja Dhar
 
Client Server Computing : unit 1
Client Server Computing : unit 1Client Server Computing : unit 1
Client Server Computing : unit 1
 
CLIENT SERVER IN OS.ppt
CLIENT SERVER IN OS.pptCLIENT SERVER IN OS.ppt
CLIENT SERVER IN OS.ppt
 
Client computing evolution ppt11
Client computing evolution ppt11Client computing evolution ppt11
Client computing evolution ppt11
 
Client server-computing
Client server-computingClient server-computing
Client server-computing
 
2 08 client-server architecture
2 08 client-server architecture2 08 client-server architecture
2 08 client-server architecture
 
Client Server Architecture
Client Server ArchitectureClient Server Architecture
Client Server Architecture
 
Client-Server Computing
Client-Server ComputingClient-Server Computing
Client-Server Computing
 
Clientserver Presentation
Clientserver PresentationClientserver Presentation
Clientserver Presentation
 
Client server architecture
Client server architectureClient server architecture
Client server architecture
 
Client server architecture
Client server architectureClient server architecture
Client server architecture
 

Similar to Video Terminal Evolution and The Future of Browsers

(1) gui history_of_interactivity
(1) gui history_of_interactivity(1) gui history_of_interactivity
(1) gui history_of_interactivityNico Ludwig
 
Gpu with cuda architecture
Gpu with cuda architectureGpu with cuda architecture
Gpu with cuda architectureDhaval Kaneria
 
支援DSL的嵌入式圖形操作環境
支援DSL的嵌入式圖形操作環境支援DSL的嵌入式圖形操作環境
支援DSL的嵌入式圖形操作環境John Chou
 
OliverStoneSWResume2015-05
OliverStoneSWResume2015-05OliverStoneSWResume2015-05
OliverStoneSWResume2015-05Oliver Stone
 
CUDA by Example : NOTES
CUDA by Example : NOTESCUDA by Example : NOTES
CUDA by Example : NOTESSubhajit Sahu
 
CUDA by Example : Why CUDA? Why Now? : Notes
CUDA by Example : Why CUDA? Why Now? : NotesCUDA by Example : Why CUDA? Why Now? : Notes
CUDA by Example : Why CUDA? Why Now? : NotesSubhajit Sahu
 
mloc.js 2014 - JavaScript and the browser as a platform for game development
mloc.js 2014 - JavaScript and the browser as a platform for game developmentmloc.js 2014 - JavaScript and the browser as a platform for game development
mloc.js 2014 - JavaScript and the browser as a platform for game developmentDavid Galeano
 
Bt0062 fundamentals of it(1)
Bt0062 fundamentals of it(1)Bt0062 fundamentals of it(1)
Bt0062 fundamentals of it(1)Techglyphs
 
(1) gui history_of_interactivity
(1) gui history_of_interactivity(1) gui history_of_interactivity
(1) gui history_of_interactivityNico Ludwig
 
OSMC 2014: Naemon 1, 2, 3, N | Andreas Ericsson
OSMC 2014: Naemon 1, 2, 3, N | Andreas EricssonOSMC 2014: Naemon 1, 2, 3, N | Andreas Ericsson
OSMC 2014: Naemon 1, 2, 3, N | Andreas EricssonNETWAYS
 
Scalability for All: Unreal Engine* 4 with Intel
Scalability for All: Unreal Engine* 4 with Intel Scalability for All: Unreal Engine* 4 with Intel
Scalability for All: Unreal Engine* 4 with Intel Intel® Software
 
Operating CNC and Laser Machine Everywhere using IoT
Operating CNC and Laser Machine Everywhere using IoTOperating CNC and Laser Machine Everywhere using IoT
Operating CNC and Laser Machine Everywhere using IoTijtsrd
 
Android and processors
Android and processorsAndroid and processors
Android and processorsAdarsh Gowda
 
IRJET- IoT Based 3D Printer
IRJET-  	  IoT Based 3D PrinterIRJET-  	  IoT Based 3D Printer
IRJET- IoT Based 3D PrinterIRJET Journal
 
VisionizeBeforeVisulaize_IEVC_Final
VisionizeBeforeVisulaize_IEVC_FinalVisionizeBeforeVisulaize_IEVC_Final
VisionizeBeforeVisulaize_IEVC_FinalMasatsugu HASHIMOTO
 

Similar to Video Terminal Evolution and The Future of Browsers (20)

(1) gui history_of_interactivity
(1) gui history_of_interactivity(1) gui history_of_interactivity
(1) gui history_of_interactivity
 
Gpu with cuda architecture
Gpu with cuda architectureGpu with cuda architecture
Gpu with cuda architecture
 
支援DSL的嵌入式圖形操作環境
支援DSL的嵌入式圖形操作環境支援DSL的嵌入式圖形操作環境
支援DSL的嵌入式圖形操作環境
 
unit-1-intro
 unit-1-intro unit-1-intro
unit-1-intro
 
OliverStoneSWResume2015-05
OliverStoneSWResume2015-05OliverStoneSWResume2015-05
OliverStoneSWResume2015-05
 
CUDA by Example : NOTES
CUDA by Example : NOTESCUDA by Example : NOTES
CUDA by Example : NOTES
 
CUDA by Example : Why CUDA? Why Now? : Notes
CUDA by Example : Why CUDA? Why Now? : NotesCUDA by Example : Why CUDA? Why Now? : Notes
CUDA by Example : Why CUDA? Why Now? : Notes
 
mloc.js 2014 - JavaScript and the browser as a platform for game development
mloc.js 2014 - JavaScript and the browser as a platform for game developmentmloc.js 2014 - JavaScript and the browser as a platform for game development
mloc.js 2014 - JavaScript and the browser as a platform for game development
 
Tablet pc
Tablet pcTablet pc
Tablet pc
 
Bt0062 fundamentals of it(1)
Bt0062 fundamentals of it(1)Bt0062 fundamentals of it(1)
Bt0062 fundamentals of it(1)
 
(1) gui history_of_interactivity
(1) gui history_of_interactivity(1) gui history_of_interactivity
(1) gui history_of_interactivity
 
Computer graphics by bahadar sher
Computer graphics by bahadar sherComputer graphics by bahadar sher
Computer graphics by bahadar sher
 
OSMC 2014: Naemon 1, 2, 3, N | Andreas Ericsson
OSMC 2014: Naemon 1, 2, 3, N | Andreas EricssonOSMC 2014: Naemon 1, 2, 3, N | Andreas Ericsson
OSMC 2014: Naemon 1, 2, 3, N | Andreas Ericsson
 
Scalability for All: Unreal Engine* 4 with Intel
Scalability for All: Unreal Engine* 4 with Intel Scalability for All: Unreal Engine* 4 with Intel
Scalability for All: Unreal Engine* 4 with Intel
 
Circuit Simplifier
Circuit SimplifierCircuit Simplifier
Circuit Simplifier
 
Co315 part 1
Co315   part 1Co315   part 1
Co315 part 1
 
Operating CNC and Laser Machine Everywhere using IoT
Operating CNC and Laser Machine Everywhere using IoTOperating CNC and Laser Machine Everywhere using IoT
Operating CNC and Laser Machine Everywhere using IoT
 
Android and processors
Android and processorsAndroid and processors
Android and processors
 
IRJET- IoT Based 3D Printer
IRJET-  	  IoT Based 3D PrinterIRJET-  	  IoT Based 3D Printer
IRJET- IoT Based 3D Printer
 
VisionizeBeforeVisulaize_IEVC_Final
VisionizeBeforeVisulaize_IEVC_FinalVisionizeBeforeVisulaize_IEVC_Final
VisionizeBeforeVisulaize_IEVC_Final
 

Recently uploaded

Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 

Recently uploaded (20)

Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

Video Terminal Evolution and The Future of Browsers

  • 1. Evolution of The Client and a viewable objects proposal Thomas Lynch CEO/founder Reasoning Technology Presented at NTU 2013-10-29 Thomas.Lynch@reasoningtechnology.com www.thomaswlynch.com
  • 2. About Mr. Lynch ● Participated in the design of a dozen microprocessors variously as individual designer, tools developer, manager, and architect, [ including the Am29000 (test), 29050 (12 instructions, fp support), Sonic (clock and smart card interface), Am187 (device library analysis), Am486, K5 (t-func develop, tech management), K6 (fp test platform), K7 (fp and tech management), a PIC variation, Neptune, Chromatic FP, Quicksilver radio node (entire processor architecture, logic design, and tools) ].
  • 3. About Mr. Lynch ● I've had a consulting practice since 1996 where I have worked with the startups Quicksilver Technologies and NetEffect. Developed microcode for Chromatic Computers. Created intellectual property for startups and for Intellectual Ventures. Created business plans including for Enreagle and 21st Century Telephone. I proposed smart phone technology in the 90s, and social media technology in the early 2000s.
  • 4. About Mr. Lynch ● 29 issued patents in the U.S. with a number of related international filings, and a similar number of active applications. These area of: computer security; digital rights management; social media (relationship rings); high performance computing architecture, logic, circuits, and packaging; user interface, and telecommunications.
  • 5. Current Projects ● ● ● Reasoning Technology – a new intuitive way to apply theorem proving to arguments in law. New Memory Architecture ● Implications to databases (developing db) ● Implications to processor architecture Computer Security ● A better way to limit viruses and other OS security threats ● New Media Compression Algorithm ● New Discrete Optimization Algorithm
  • 6. Evolution of the Terminal Device
  • 7. First Video Game I Played ● ● ● ● Strar Trek written by Mike Mayfield Each screen update printed out in ASCII on the paper terminal. Counted out distances manually and used my SR-52 to calculate photo torpedo trajectories. Played it on the Boeing's Cybers (probably 7600) at work, and an HP3000 at school
  • 8. The Teletype ● ● ● ● ● ● Selonoid controlled cylinder jumped up and slammed the letter on to the paper. Had a kick to it. Used an ink ribbon Computer could type, or a person could type – both about the same speed. The computer typed out the game boards. also Paper (that's right – paper) tape reader on the side. The Star Trek game came from a friend on paper tape. We also had magnetic tape reader but mag tape was expensive and held more data than needed for such a program. Mag tape usage might also require operator assistance. The GE225 also used at the Army Corp of Engineers had this as the system console, and that machine was booted via paper tape.
  • 9. DEC Writer ● ● ● ● This had an ink ribbon and a print head that swept across the paper. The print head had pins in it. It made a zzzz sound as it went across, and then the line was done. Much faster. After playing Star Trek for a few hours a box of paper would be used and be laying at your feet. If it wasn't cleared the printer carriage might start ripping the holes on the sides of the paper and then print over the same line repeatedly, perhaps at a bit of a diagonal. No hard push and kickback when you typed. The keyboard was soft, so typing was faster too. 132 characters wide, nicer than 80, though punch cards only had 1 + 71 + 8 columns (continuation mark, text, and comment) so often printouts only went part way across the page.
  • 10. The Video Terminal ● ● ● ● Plug-in replacement for the paper terminal (so you also need printer to give results to the boss). 80 by 25 line ASCII screen. You will love green, later in amber also. Instant refresh in Star Trek - Don't have to wait for the page to print to update the game board – yes!
  • 11. Tektronix 4014 ● ● ● Internal electronics would accept an ASCII sequence starting with an ESC character, a command byte, and two co-ordinates on the screen – and then direct the electron beam over the screen. There was no shadow mask, hence no pixels, just a solid line. High persistence phosphorous so the drawn lines would stay there until the user pushed the big erase button – which made a big flash and then the screen would be blank. Enabled drafting programs to run, where the draftsman could see in real time what the results looked like.
  • 12. The Workstation ● ● ● ● ● ● High Resolution Screen and graphics hardware to drive it made raster graphics practical. It was intended to be used by an individual! Along with new CAD and word processing applications – applications that served an individual engineer rather than a project! [this and the prior point distinguish the workstation from the minicomputer] Possible to run programs locally Server may now only be for maintenance and central storage. Advent of Ethernet, RFS X-windows – each window is now a terminal by itself, simple mixing of text and graphics Typically too expensive for an individual, also predates visacalc. Apollo running Aegis
  • 13. PC ● ● ● ● Cheap Workstation that runs visicalc – reached a wide audience Visicalc did not require graphics – which reduced the price considerably Simply Graphics Proliferation of this hardware facilitated the advent of a 'people's network'
  • 14. Portable Computer – SubPC ● ● ● ● ● ● ● Facilitated by the cell network and Internet, WIFI/cell instead of Ethernet More powerful than the servers of yore. New Applications for individuals Browsers is the Thin Client Work Station like behavior for local applications Software maintenance needs and individuals owning multiple devices has caused a renewed pressure to bring back the appearance of a server leading to the cloud. Because multiple device ownership flips the person to computer ratio - I call it the era of subPC.
  • 15. Network Situation – Full Circle?
  • 16. Typical Configuration Star Trek Game Was Played On ● ● ● ● RS232 point to point serial communication, progenitor of USB. 9600 baud was typical. Server in the middle, each terminal plugs into a dedicated port. Peripheral interface cards have RS232 ports and plug into the peripheral bus of the computer. Control chip in the terminals are the progenitors of the graphics chip. Computation must dominate over I/O, or progress will be very slow.
  • 17. Typical Enterprise Workstation Network ● ● ● ● ● ● Individually Operated Programs Run Locally (such as the CAD tool) Servers come in farms instead of being a single machine. “Big Jobs” with little interactive input run on a server. More than one choice of server to chose from 'load balancing'. Software Installed Over the Network Backups and Data Shared Over the Network A 'gateway' (not shown) provides access to the Internet for email and browsing. The biggest changes: a layer of hierarchy, the type of data on the network, i.e. the purpose of the network.
  • 18. What Changes With HTML5? ● Some suggest we go back to running all applications on a server, and that the graphics and display work is done locally – just like in the old days. – ● This favors portable devices that don't have enough compute or battery power to run individual purpose applications. But ... just because we used a browser doesn't mean that the application can't run locally. – Better than using a window – it solves the problem of differing GUI approaches needed on different platforms today. – And about those mobile devices – trends in computing suggest that they will be powerful enough that a trend back to remote running individual purpose applications will be at most temporary.
  • 20. Star Trek ASCII Graphics ● ● ● This is first few lines of Star Trek in Basic. It has been extracted from an ancient paper tape. This is probably for the HP3000. Apparently the world model is a collection of arrays.
  • 21. Trek Graphics ● ● Array of characters keeps their information Map of world has layers, each layer has a character describing something about that location 1. Scan world(i+wi, j+wi, z) into display(i+di0, j+dj0). Look across z layers for combination events. 2. Update information into information areas in display. 3. Scan display array one row at a time, sending string out to RS232 port. At end of row send CR-LF, go to next row. 4. If enterprise is dead, goto 5,else wait for user input, parse it and update the world and information. 5. Terminate the job (process)
  • 22. Textronics 4014 Graphics ● ● ● If you stare at a green screen all day and then look at a white wall, the wall looks pink. So called vector graphics or wire frame graphics. The terminal excepted draw line segment commands, so you only saw the outline. Initially you could not erase a line, it physically persisted on the phosphorus – the whole screen was erased at once.
  • 23. Tektronics 4014 Graphics ● ● ● ● ● Display list created from your model, or it may be the model Homogenous co-ordinate systems so matrix transforms can do displacement View step transforms display list from view point, and scales to view coordinates Clipping chops off things off screen Finally break display list down to escape commands ● Libraries to help with this: ● GCS ● Plot10
  • 24. Modern Graphics ● ● ● ● Display list is now triangles instead of vectors View now includes lighting and shading, possibly even ray tracing Display buffer is now binary and there is no step of breaking it down to ASCII commands Hardware acceleration – initially this was very specific to the graphics problem, but the latest generation are SIMD machines (like the old Cray machines)
  • 25. But Wait a Minute ..What of Layout?
  • 26. What of Layout ● ● ● Notice in Star Trek, we had a concept of layout. We had an area on the screen for the ASCII graphics, and other areas for information. We lost this when we went to the display list. Our world model had no place for it. The rest of the world did not forget, we have a parallel evolution in the “GUI”: ● Windows (Xerox PARC) ● X-windows widgets ● Html ● Css
  • 27. X-windows – The Happenings ● A graphics 'server' ● Events – a key press throws things at programs ● ● ● Call backs – wake up threads when something happens Multithreading – cooperating routines all running at the same time Widgets – things that display, have data, and can throw events or make callbacks
  • 28. Html Browser– It is a Client ● ● ● ● ● ● Conceived around the concept of hyper text. Bunches of little text pieces, with underlined areas that could be clicked on to be expanded. Added basic text formatting and started to look something like word processor output. Because a language for storefronts on the Internet, so it integrated to a database and 'did things' in response to user input other than just show more text. Added media players Dynamic html, and now html5 – The browser becomes a sort of X-window, but better in some ways: ● Universally portable and standard compliance across vendors. ● Does its own screen formatting in ways familiar to everyone ● Runs programs, e.g. javascript so it has become a client in itself. Note that our application is back to sending characters out the port (default 8080)
  • 29. HTML/CSS/script vs. Widgets Both CSS and Widgets Assist With Layout, but they are different: ● ● ● ● Widget containers own other widgets. The contained widget then lays out inside the area for the container. HTML has <div> blocks, where the items in them layout within the <div> is in a sense analogous to a widget container. Widget contains code that does things, takes actions, throws events. HTML supports java script, which may manipulate the graphics and post events Though notice, Javascript is not a good language for writing an application in. Hence we have frame works becoming available, e.g. Ruby on Rails – templates and filling them in. And Wt – html rendering widgets for C++.
  • 30. Problems I had with Wt ● ● ● ● ● Some mechanical stuff not related to the concept of using Widgets. -over use of static methods, singleton classes, no iterators over containers, some other things. Widgets keep copies of the data – so there is a lot of data duplication. Widgets manage their own memory, so the data must live on the heap – and the program can't manage it the way it would like. Widgets exist in a tree hierarchy, but they do not explicitly recognize this. Hence, we throw out efficient data structures in favor of implicit trees. Widgets come in a library. One becomes a library developer to develop fundamentally new ones – and that requires fitting into a complex framework.
  • 32. Display Objects ● ● ● ● ● ● similar in flavor to iterators for containers but its job is to display the 'data object'. like an iterator the display object knows about its data object, and it has a standard interface -though in this case for causing the data object to be displayed rather than iterated over. as for an iterator the implementation is specific to the data class. Hence the display object knows where to find the data fields and how to use the data object. The display object may throw various events depending on its implementation. When used with a browser the display object generates java script and receives posts in the form of commands from a layout object. Library of existing display objects to inherit from (analogous to the widget library)
  • 33. Layout Objects ● Communicates with display objects. ● Gather preferred size, and size limits, dictate actual size. ● Provides environment information and CSS styles ● For html browser application gathers java script output. ● Notifies the display object of posts. ● Layout Objects may be nested, i.e. the Layout object is a type of display object, just can't be a root node.
  • 34. Open Source Project ● If anyone is interested in helping develop this let me know.