SlideShare ist ein Scribd-Unternehmen logo
1 von 20
What on Earth do I do all day?
Computers, apparently
I am not a computer scientist
• I know far too much about how nuclear power
stations work
• I know far too much about how big the wires
should be that go to your shed
• I know just how much current it takes to kill
you (and where to apply it)
• I have ultimate knowledge of the three types
of magic smoke
Because I am an Electrical Engineer
Ask me about:
• Power generation
• Power distribution
• What the three types of magic smoke each smell
like
• How heavy lead is
• What happens when you put your scope probe
on a poorly-designed test pad
(preferably in the pub, I’m quite busy otherwise)
EE checklist
• Historical trend of
– Occasionally making something with wire or stuff
– Taking things to pieces and never putting them back
together again
– Taking things to pieces and putting them back
together again, but they don’t work right
– Creating electrical fires that are hard to extinguish
• Irrational enthusiasm
• Do it for long enough and eventually someone
will give you a qualification for it
But I can compute
• Commonality among engineering branches
• Engineers have to know about software
engineering anyway
• Logic universally applied
• Divide and conquer is king
• There’s some physics in there as well,
apparently
• Ok maybe mathematics too
How do I function at Pi Towers
• I did a RCA on that thing that was on fire and
threatening to bugger everything up
• Repeat last bullet point 2-3 times
• I like doing that sort of thing
• Also sometimes I do some testing of new
hardware
• And sometimes I write some hand-optimised
assembler
How do I function at Pi Towers
• I did a RCA on that thing that was on fire and
threatening to bugger everything up
• Repeat last bullet point 2-3 times
• I like doing that sort of thing
• Also sometimes I do some testing of new
hardware
• And sometimes I write some hand-optimised
assembler
Happiness is a warm GPU
• If I explained what this function did it would take more than 20 seconds
; void pwm_sdm_mod_ord1(int16_t *in, uint32_t *out, SDM_CONTEXT_T *ctx)
; VRF lock must be held on entry.
.function pwm_sdm_mod_ord1
stm r0-r15, (--sp)
ld error1_l, (ptr_ctx + ofs_z1l)
ld error2_l, (ptr_ctx + ofs_z1r)
ld nbits, (ptr_ctx + ofs_pwm_bits)
ld pwm_offset, (ptr_ctx + ofs_pwm_offset)
ld nsamples, (ptr_ctx + ofs_nsamples)
ld rng_phase, (ptr_ctx + ofs_rng_phase)
mov quant_mask, 0xFFFFFFFF
rsub out_shift, nbits, 31
add out_shift, 1
lsr quant_mask, quant_mask, nbits
not quant_mask, quant_mask
loop:
cmp nsamples, 0
beq out
cmp rng_phase, 16
blt skip_rng
mov rng_phase, 0
BUMP_RNG ptr_ctx, out_shift
skip_rng:
ldh sample_l, (ptr_in + 0)
ldh sample_r, (ptr_in + 2)
add dither_l, ptr_ctx, ofs_rng_shifted
add dither_l, 0
ld dither_l, (dither_l + rng_phase << 2)
add dither_r, ptr_ctx, ofs_rng_shifted
add dither_r, 4
ld dither_r, (dither_r + rng_phase << 2)
shl sample_l, 16
shl sample_r, 16
shl dither_l, 1
shl dither_r, 1
sub sample_l, pwm_offset
sub sample_r, pwm_offset
; sample += error1
adds sample_l, error1_l, sample_l
adds sample_r, error1_r, sample_r
mov error1_l, sample_l
mov error1_r, sample_r
; sample += dither
adds sample_l, dither_l, sample_l
adds sample_r, dither_r, sample_r
; Q(sample, nbits)
and sample_l, quant_mask, sample_l
and sample_r, quant_mask, sample_r
; error1 = output - input
subs error1_l, sample_l, error1_l
subs error1_r, sample_r, error1_r
; clamp to >0 - how to do this nicer and retain dual-issue?
abs sample_l, sample_l
abs sample_r, sample_r
lsr sample_l, sample_l, out_shift
lsr sample_r, sample_r, out_shift
st sample_l, (ptr_out + 0)
st sample_r, (ptr_out + 4)
add ptr_out, 8
add ptr_in, 4
add rng_phase, 2
sub nsamples, 1
b loop
out:
st error1_l, (ptr_ctx + ofs_z1l)
st error1_r, (ptr_ctx + ofs_z1r)
st rng_phase, (ptr_ctx + ofs_rng_phase)
ldm r0-r15, (sp++)
b lr
.endfn
Happiness is a warm GPU
• So let’s take 40 seconds
; void pwm_sdm_mod_ord1(int16_t *in, uint32_t *out, SDM_CONTEXT_T *ctx)
; VRF lock must be held on entry.
.function pwm_sdm_mod_ord1
stm r0-r15, (--sp)
ld error1_l, (ptr_ctx + ofs_z1l)
ld error2_l, (ptr_ctx + ofs_z1r)
ld nbits, (ptr_ctx + ofs_pwm_bits)
ld pwm_offset, (ptr_ctx + ofs_pwm_offset)
ld nsamples, (ptr_ctx + ofs_nsamples)
ld rng_phase, (ptr_ctx + ofs_rng_phase)
mov quant_mask, 0xFFFFFFFF
rsub out_shift, nbits, 31
add out_shift, 1
lsr quant_mask, quant_mask, nbits
not quant_mask, quant_mask
loop:
cmp nsamples, 0
beq out
cmp rng_phase, 16
blt skip_rng
mov rng_phase, 0
BUMP_RNG ptr_ctx, out_shift
skip_rng:
ldh sample_l, (ptr_in + 0)
ldh sample_r, (ptr_in + 2)
add dither_l, ptr_ctx, ofs_rng_shifted
add dither_l, 0
ld dither_l, (dither_l + rng_phase << 2)
add dither_r, ptr_ctx, ofs_rng_shifted
add dither_r, 4
ld dither_r, (dither_r + rng_phase << 2)
shl sample_l, 16
shl sample_r, 16
shl dither_l, 1
shl dither_r, 1
sub sample_l, pwm_offset
sub sample_r, pwm_offset
; sample += error1
adds sample_l, error1_l, sample_l
adds sample_r, error1_r, sample_r
mov error1_l, sample_l
mov error1_r, sample_r
; sample += dither
adds sample_l, dither_l, sample_l
adds sample_r, dither_r, sample_r
; Q(sample, nbits)
and sample_l, quant_mask, sample_l
and sample_r, quant_mask, sample_r
; error1 = output - input
subs error1_l, sample_l, error1_l
subs error1_r, sample_r, error1_r
; clamp to >0 - how to do this nicer and retain dual-issue?
abs sample_l, sample_l
abs sample_r, sample_r
lsr sample_l, sample_l, out_shift
lsr sample_r, sample_r, out_shift
st sample_l, (ptr_out + 0)
st sample_r, (ptr_out + 4)
add ptr_out, 8
add ptr_in, 4
add rng_phase, 2
sub nsamples, 1
b loop
out:
st error1_l, (ptr_ctx + ofs_z1l)
st error1_r, (ptr_ctx + ofs_z1r)
st rng_phase, (ptr_ctx + ofs_rng_phase)
ldm r0-r15, (sp++)
b lr
.endfn
Happiness is a warm GPU
• Ok maybe 60 seconds
; void pwm_sdm_mod_ord1(int16_t *in, uint32_t *out, SDM_CONTEXT_T *ctx)
; VRF lock must be held on entry.
.function pwm_sdm_mod_ord1
stm r0-r15, (--sp)
ld error1_l, (ptr_ctx + ofs_z1l)
ld error2_l, (ptr_ctx + ofs_z1r)
ld nbits, (ptr_ctx + ofs_pwm_bits)
ld pwm_offset, (ptr_ctx + ofs_pwm_offset)
ld nsamples, (ptr_ctx + ofs_nsamples)
ld rng_phase, (ptr_ctx + ofs_rng_phase)
mov quant_mask, 0xFFFFFFFF
rsub out_shift, nbits, 31
add out_shift, 1
lsr quant_mask, quant_mask, nbits
not quant_mask, quant_mask
loop:
cmp nsamples, 0
beq out
cmp rng_phase, 16
blt skip_rng
mov rng_phase, 0
BUMP_RNG ptr_ctx, out_shift
skip_rng:
ldh sample_l, (ptr_in + 0)
ldh sample_r, (ptr_in + 2)
add dither_l, ptr_ctx, ofs_rng_shifted
add dither_l, 0
ld dither_l, (dither_l + rng_phase << 2)
add dither_r, ptr_ctx, ofs_rng_shifted
add dither_r, 4
ld dither_r, (dither_r + rng_phase << 2)
shl sample_l, 16
shl sample_r, 16
shl dither_l, 1
shl dither_r, 1
sub sample_l, pwm_offset
sub sample_r, pwm_offset
; sample += error1
adds sample_l, error1_l, sample_l
adds sample_r, error1_r, sample_r
mov error1_l, sample_l
mov error1_r, sample_r
; sample += dither
adds sample_l, dither_l, sample_l
adds sample_r, dither_r, sample_r
; Q(sample, nbits)
and sample_l, quant_mask, sample_l
and sample_r, quant_mask, sample_r
; error1 = output - input
subs error1_l, sample_l, error1_l
subs error1_r, sample_r, error1_r
; clamp to >0 - how to do this nicer and retain dual-issue?
abs sample_l, sample_l
abs sample_r, sample_r
lsr sample_l, sample_l, out_shift
lsr sample_r, sample_r, out_shift
st sample_l, (ptr_out + 0)
st sample_r, (ptr_out + 4)
add ptr_out, 8
add ptr_in, 4
add rng_phase, 2
sub nsamples, 1
b loop
out:
st error1_l, (ptr_ctx + ofs_z1l)
st error1_r, (ptr_ctx + ofs_z1r)
st rng_phase, (ptr_ctx + ofs_rng_phase)
ldm r0-r15, (sp++)
b lr
.endfn
Happiness is also fixing hardware bugs
• D3, R48, R47, C106
• Forms an asymmetric
timing circuit
• Works around a silly
interaction between
AP2553 and LAN9514
Happiness is also fixing hardware bugs
• Works around a
glitch that could
cause undefined
operation of USB
peripherals
• Sometimes you have
to trade elegance for
a functional hack
What else is on?
• I’m the one that has to write all the
documentation that gets us into space
• I go to the boring bits of Amsterdam and sit in
a room with ESA safety experts and discuss
minutiae
• At the end of it, we can go into space with the
help of some Russians and large amounts of
LOX
Who talked me into this anyway
• Rachel pokes me incessantly for electronics
advice
• I am genuinely interested in novel applications
of our little computer thingy that we make
and is popular
• Good ideas can come from surprising sources
Care and feeding of your EE
Useful:
• If you want to know if your idea is
possible/feasible/realisable
• If you want the gory details
• If you require cynicism in large doses
Not so useful:
• Painting anything (except walls in a uniform
colour)
How to Art
When you fuse
technology with the
arts, form has to
follow function.
How to Art
When you fuse
technology with the
arts, form has to
follow function.
If you build it, you will get buy-in
• You can attend only so many design review
meetings in good faith without either going
mad or having extra-curricular interests
• Follow the rules guidelines I just laid down,
and you will engage any engineer who has an
interest in the arts
• Sometimes we like to see the end result of
tinkering with a wild idea behind it
Get your ass to Mars
• If you know who that is and what film this is from
without Google’s help, you get a sweetie*
• *sweetie not included
But seriously
Get your ass to Mars

Weitere ähnliche Inhalte

Was ist angesagt?

Kernel Recipes 2014 - Writing Code: Keep It Short, Stupid!
Kernel Recipes 2014 - Writing Code: Keep It Short, Stupid!Kernel Recipes 2014 - Writing Code: Keep It Short, Stupid!
Kernel Recipes 2014 - Writing Code: Keep It Short, Stupid!Anne Nicolas
 
Pragmatic Optimization in Modern Programming - Mastering Compiler Optimizations
Pragmatic Optimization in Modern Programming - Mastering Compiler OptimizationsPragmatic Optimization in Modern Programming - Mastering Compiler Optimizations
Pragmatic Optimization in Modern Programming - Mastering Compiler OptimizationsMarina Kolpakova
 
Using ARM Dev.Board in physical experimental instruments
Using ARM Dev.Board in physical experimental instrumentsUsing ARM Dev.Board in physical experimental instruments
Using ARM Dev.Board in physical experimental instrumentsa_n0v
 
The Simple Scheduler in Embedded System @ OSDC.TW 2014
The Simple Scheduler in Embedded System @ OSDC.TW 2014The Simple Scheduler in Embedded System @ OSDC.TW 2014
The Simple Scheduler in Embedded System @ OSDC.TW 2014Jian-Hong Pan
 
Erlang, random numbers, and the security: London Erlang User Group Talk Slide...
Erlang, random numbers, and the security: London Erlang User Group Talk Slide...Erlang, random numbers, and the security: London Erlang User Group Talk Slide...
Erlang, random numbers, and the security: London Erlang User Group Talk Slide...Kenji Rikitake
 
How multi-fault injection breaks the security of smart cards
How multi-fault injection breaks the security of smart cardsHow multi-fault injection breaks the security of smart cards
How multi-fault injection breaks the security of smart cardsRiscure
 
Practical Differential Fault Attack on AES
Practical Differential Fault Attack on AESPractical Differential Fault Attack on AES
Practical Differential Fault Attack on AESRiscure
 
Birds of a Feather 2017: 邀請分享 IoT, SDR, and Car Security - Aaron
Birds of a Feather 2017: 邀請分享 IoT, SDR, and Car Security - AaronBirds of a Feather 2017: 邀請分享 IoT, SDR, and Car Security - Aaron
Birds of a Feather 2017: 邀請分享 IoT, SDR, and Car Security - AaronHITCON GIRLS
 
Introduction to Java Profiling
Introduction to Java ProfilingIntroduction to Java Profiling
Introduction to Java ProfilingJerry Yoakum
 
Software to the slaughter
Software to the slaughterSoftware to the slaughter
Software to the slaughterQuinn Wilton
 
Ilfak Guilfanov - Decompiler internals: Microcode [rooted2018]
Ilfak Guilfanov - Decompiler internals: Microcode [rooted2018]Ilfak Guilfanov - Decompiler internals: Microcode [rooted2018]
Ilfak Guilfanov - Decompiler internals: Microcode [rooted2018]RootedCON
 
Track h asic prototyping - logtel
Track h   asic prototyping - logtelTrack h   asic prototyping - logtel
Track h asic prototyping - logtelchiportal
 
Why are we still vulnerable to Side Channel Attacks?
Why are we still vulnerable to Side Channel Attacks?Why are we still vulnerable to Side Channel Attacks?
Why are we still vulnerable to Side Channel Attacks?Riscure
 
Tools for Practical Attacks on Analog-to-Digital Conversion
Tools for Practical Attacks on Analog-to-Digital ConversionTools for Practical Attacks on Analog-to-Digital Conversion
Tools for Practical Attacks on Analog-to-Digital ConversionAlexander Bolshev
 
Ice Age melting down: Intel features considered usefull!
Ice Age melting down: Intel features considered usefull!Ice Age melting down: Intel features considered usefull!
Ice Age melting down: Intel features considered usefull!Peter Hlavaty
 
Advanced cfg bypass on adobe flash player 18 defcon russia 23
Advanced cfg bypass on adobe flash player 18 defcon russia 23Advanced cfg bypass on adobe flash player 18 defcon russia 23
Advanced cfg bypass on adobe flash player 18 defcon russia 23DefconRussia
 
Zn task - defcon russia 20
Zn task  - defcon russia 20Zn task  - defcon russia 20
Zn task - defcon russia 20DefconRussia
 

Was ist angesagt? (20)

Kernel Recipes 2014 - Writing Code: Keep It Short, Stupid!
Kernel Recipes 2014 - Writing Code: Keep It Short, Stupid!Kernel Recipes 2014 - Writing Code: Keep It Short, Stupid!
Kernel Recipes 2014 - Writing Code: Keep It Short, Stupid!
 
Killer Bugs From Outer Space
Killer Bugs From Outer SpaceKiller Bugs From Outer Space
Killer Bugs From Outer Space
 
Qemu JIT Code Generator and System Emulation
Qemu JIT Code Generator and System EmulationQemu JIT Code Generator and System Emulation
Qemu JIT Code Generator and System Emulation
 
Pragmatic Optimization in Modern Programming - Mastering Compiler Optimizations
Pragmatic Optimization in Modern Programming - Mastering Compiler OptimizationsPragmatic Optimization in Modern Programming - Mastering Compiler Optimizations
Pragmatic Optimization in Modern Programming - Mastering Compiler Optimizations
 
Using ARM Dev.Board in physical experimental instruments
Using ARM Dev.Board in physical experimental instrumentsUsing ARM Dev.Board in physical experimental instruments
Using ARM Dev.Board in physical experimental instruments
 
The Simple Scheduler in Embedded System @ OSDC.TW 2014
The Simple Scheduler in Embedded System @ OSDC.TW 2014The Simple Scheduler in Embedded System @ OSDC.TW 2014
The Simple Scheduler in Embedded System @ OSDC.TW 2014
 
Erlang, random numbers, and the security: London Erlang User Group Talk Slide...
Erlang, random numbers, and the security: London Erlang User Group Talk Slide...Erlang, random numbers, and the security: London Erlang User Group Talk Slide...
Erlang, random numbers, and the security: London Erlang User Group Talk Slide...
 
How multi-fault injection breaks the security of smart cards
How multi-fault injection breaks the security of smart cardsHow multi-fault injection breaks the security of smart cards
How multi-fault injection breaks the security of smart cards
 
Practical Differential Fault Attack on AES
Practical Differential Fault Attack on AESPractical Differential Fault Attack on AES
Practical Differential Fault Attack on AES
 
Birds of a Feather 2017: 邀請分享 IoT, SDR, and Car Security - Aaron
Birds of a Feather 2017: 邀請分享 IoT, SDR, and Car Security - AaronBirds of a Feather 2017: 邀請分享 IoT, SDR, and Car Security - Aaron
Birds of a Feather 2017: 邀請分享 IoT, SDR, and Car Security - Aaron
 
Introduction to Java Profiling
Introduction to Java ProfilingIntroduction to Java Profiling
Introduction to Java Profiling
 
Software to the slaughter
Software to the slaughterSoftware to the slaughter
Software to the slaughter
 
amrapali builders@@sub way hacking.pdf
amrapali builders@@sub way hacking.pdfamrapali builders@@sub way hacking.pdf
amrapali builders@@sub way hacking.pdf
 
Ilfak Guilfanov - Decompiler internals: Microcode [rooted2018]
Ilfak Guilfanov - Decompiler internals: Microcode [rooted2018]Ilfak Guilfanov - Decompiler internals: Microcode [rooted2018]
Ilfak Guilfanov - Decompiler internals: Microcode [rooted2018]
 
Track h asic prototyping - logtel
Track h   asic prototyping - logtelTrack h   asic prototyping - logtel
Track h asic prototyping - logtel
 
Why are we still vulnerable to Side Channel Attacks?
Why are we still vulnerable to Side Channel Attacks?Why are we still vulnerable to Side Channel Attacks?
Why are we still vulnerable to Side Channel Attacks?
 
Tools for Practical Attacks on Analog-to-Digital Conversion
Tools for Practical Attacks on Analog-to-Digital ConversionTools for Practical Attacks on Analog-to-Digital Conversion
Tools for Practical Attacks on Analog-to-Digital Conversion
 
Ice Age melting down: Intel features considered usefull!
Ice Age melting down: Intel features considered usefull!Ice Age melting down: Intel features considered usefull!
Ice Age melting down: Intel features considered usefull!
 
Advanced cfg bypass on adobe flash player 18 defcon russia 23
Advanced cfg bypass on adobe flash player 18 defcon russia 23Advanced cfg bypass on adobe flash player 18 defcon russia 23
Advanced cfg bypass on adobe flash player 18 defcon russia 23
 
Zn task - defcon russia 20
Zn task  - defcon russia 20Zn task  - defcon russia 20
Zn task - defcon russia 20
 

Ähnlich wie Computers or something

AdaCore Paris Tech Day 2016: Jerome Lambourg - Cross and BareBoard Team Insid...
AdaCore Paris Tech Day 2016: Jerome Lambourg - Cross and BareBoard Team Insid...AdaCore Paris Tech Day 2016: Jerome Lambourg - Cross and BareBoard Team Insid...
AdaCore Paris Tech Day 2016: Jerome Lambourg - Cross and BareBoard Team Insid...jamieayre
 
Make ARM Shellcode Great Again
Make ARM Shellcode Great AgainMake ARM Shellcode Great Again
Make ARM Shellcode Great AgainSaumil Shah
 
Embedded systems basics 8051 - project approach
Embedded systems basics 8051 - project approach Embedded systems basics 8051 - project approach
Embedded systems basics 8051 - project approach hybrald industries
 
Autonomous robotics based on simple sensor inputs.
Autonomous robotics based on simplesensor inputs.Autonomous robotics based on simplesensor inputs.
Autonomous robotics based on simple sensor inputs. sathish sak
 
You didnt see it’s coming? "Dawn of hardened Windows Kernel"
You didnt see it’s coming? "Dawn of hardened Windows Kernel" You didnt see it’s coming? "Dawn of hardened Windows Kernel"
You didnt see it’s coming? "Dawn of hardened Windows Kernel" Peter Hlavaty
 
Linux Performance Tools 2014
Linux Performance Tools 2014Linux Performance Tools 2014
Linux Performance Tools 2014Brendan Gregg
 
Evgeniy Muralev, Mark Vince, Working with the compiler, not against it
Evgeniy Muralev, Mark Vince, Working with the compiler, not against itEvgeniy Muralev, Mark Vince, Working with the compiler, not against it
Evgeniy Muralev, Mark Vince, Working with the compiler, not against itSergey Platonov
 
SMP implementation for OpenBSD/sgi
SMP implementation for OpenBSD/sgiSMP implementation for OpenBSD/sgi
SMP implementation for OpenBSD/sgiTakuya ASADA
 
ExperiencesSharingOnEmbeddedSystemDevelopment_20160321
ExperiencesSharingOnEmbeddedSystemDevelopment_20160321ExperiencesSharingOnEmbeddedSystemDevelopment_20160321
ExperiencesSharingOnEmbeddedSystemDevelopment_20160321Teddy Hsiung
 
A Practical Guide to (Correctly) Troubleshooting with Traceroute
A Practical Guide to (Correctly) Troubleshooting with TracerouteA Practical Guide to (Correctly) Troubleshooting with Traceroute
A Practical Guide to (Correctly) Troubleshooting with TracerouteRichard Steenbergen
 
hashdays 2011: Ange Albertini - Such a weird processor - messing with x86 opc...
hashdays 2011: Ange Albertini - Such a weird processor - messing with x86 opc...hashdays 2011: Ange Albertini - Such a weird processor - messing with x86 opc...
hashdays 2011: Ange Albertini - Such a weird processor - messing with x86 opc...Area41
 
project_NathanWendt
project_NathanWendtproject_NathanWendt
project_NathanWendtNathan Wendt
 
Multiplatform JIT Code Generator for NetBSD by Alexander Nasonov
Multiplatform JIT Code Generator for NetBSD by Alexander NasonovMultiplatform JIT Code Generator for NetBSD by Alexander Nasonov
Multiplatform JIT Code Generator for NetBSD by Alexander Nasonoveurobsdcon
 
PyParis2017 / Circuit simulation using Python, by Fabrice Salvaire
PyParis2017 / Circuit simulation using Python, by Fabrice SalvairePyParis2017 / Circuit simulation using Python, by Fabrice Salvaire
PyParis2017 / Circuit simulation using Python, by Fabrice SalvairePôle Systematic Paris-Region
 
Profiling PyTorch for Efficiency & Sustainability
Profiling PyTorch for Efficiency & SustainabilityProfiling PyTorch for Efficiency & Sustainability
Profiling PyTorch for Efficiency & Sustainabilitygeetachauhan
 
GCC Summit 2010
GCC Summit 2010GCC Summit 2010
GCC Summit 2010regehr
 

Ähnlich wie Computers or something (20)

AdaCore Paris Tech Day 2016: Jerome Lambourg - Cross and BareBoard Team Insid...
AdaCore Paris Tech Day 2016: Jerome Lambourg - Cross and BareBoard Team Insid...AdaCore Paris Tech Day 2016: Jerome Lambourg - Cross and BareBoard Team Insid...
AdaCore Paris Tech Day 2016: Jerome Lambourg - Cross and BareBoard Team Insid...
 
W10: Interrupts
W10: InterruptsW10: Interrupts
W10: Interrupts
 
Make ARM Shellcode Great Again
Make ARM Shellcode Great AgainMake ARM Shellcode Great Again
Make ARM Shellcode Great Again
 
Embedded systems basics 8051 - project approach
Embedded systems basics 8051 - project approach Embedded systems basics 8051 - project approach
Embedded systems basics 8051 - project approach
 
Autonomous robotics based on simple sensor inputs.
Autonomous robotics based on simplesensor inputs.Autonomous robotics based on simplesensor inputs.
Autonomous robotics based on simple sensor inputs.
 
You didnt see it’s coming? "Dawn of hardened Windows Kernel"
You didnt see it’s coming? "Dawn of hardened Windows Kernel" You didnt see it’s coming? "Dawn of hardened Windows Kernel"
You didnt see it’s coming? "Dawn of hardened Windows Kernel"
 
Linux Performance Tools 2014
Linux Performance Tools 2014Linux Performance Tools 2014
Linux Performance Tools 2014
 
Fedor Polyakov - Optimizing computer vision problems on mobile platforms
Fedor Polyakov - Optimizing computer vision problems on mobile platforms Fedor Polyakov - Optimizing computer vision problems on mobile platforms
Fedor Polyakov - Optimizing computer vision problems on mobile platforms
 
Evgeniy Muralev, Mark Vince, Working with the compiler, not against it
Evgeniy Muralev, Mark Vince, Working with the compiler, not against itEvgeniy Muralev, Mark Vince, Working with the compiler, not against it
Evgeniy Muralev, Mark Vince, Working with the compiler, not against it
 
SMP implementation for OpenBSD/sgi
SMP implementation for OpenBSD/sgiSMP implementation for OpenBSD/sgi
SMP implementation for OpenBSD/sgi
 
ExperiencesSharingOnEmbeddedSystemDevelopment_20160321
ExperiencesSharingOnEmbeddedSystemDevelopment_20160321ExperiencesSharingOnEmbeddedSystemDevelopment_20160321
ExperiencesSharingOnEmbeddedSystemDevelopment_20160321
 
A Practical Guide to (Correctly) Troubleshooting with Traceroute
A Practical Guide to (Correctly) Troubleshooting with TracerouteA Practical Guide to (Correctly) Troubleshooting with Traceroute
A Practical Guide to (Correctly) Troubleshooting with Traceroute
 
ROBOTICS - Introduction to Robotics Microcontroller
ROBOTICS -  Introduction to Robotics MicrocontrollerROBOTICS -  Introduction to Robotics Microcontroller
ROBOTICS - Introduction to Robotics Microcontroller
 
hashdays 2011: Ange Albertini - Such a weird processor - messing with x86 opc...
hashdays 2011: Ange Albertini - Such a weird processor - messing with x86 opc...hashdays 2011: Ange Albertini - Such a weird processor - messing with x86 opc...
hashdays 2011: Ange Albertini - Such a weird processor - messing with x86 opc...
 
project_NathanWendt
project_NathanWendtproject_NathanWendt
project_NathanWendt
 
Multiplatform JIT Code Generator for NetBSD by Alexander Nasonov
Multiplatform JIT Code Generator for NetBSD by Alexander NasonovMultiplatform JIT Code Generator for NetBSD by Alexander Nasonov
Multiplatform JIT Code Generator for NetBSD by Alexander Nasonov
 
PyParis2017 / Circuit simulation using Python, by Fabrice Salvaire
PyParis2017 / Circuit simulation using Python, by Fabrice SalvairePyParis2017 / Circuit simulation using Python, by Fabrice Salvaire
PyParis2017 / Circuit simulation using Python, by Fabrice Salvaire
 
Profiling PyTorch for Efficiency & Sustainability
Profiling PyTorch for Efficiency & SustainabilityProfiling PyTorch for Efficiency & Sustainability
Profiling PyTorch for Efficiency & Sustainability
 
Hardware hacking 101
Hardware hacking 101Hardware hacking 101
Hardware hacking 101
 
GCC Summit 2010
GCC Summit 2010GCC Summit 2010
GCC Summit 2010
 

Kürzlich hochgeladen

韩国学位证,全北大学毕业证书1:1制作
韩国学位证,全北大学毕业证书1:1制作韩国学位证,全北大学毕业证书1:1制作
韩国学位证,全北大学毕业证书1:1制作7tz4rjpd
 
Food-Allergy-PowerPoint-Presentation-2.ppt
Food-Allergy-PowerPoint-Presentation-2.pptFood-Allergy-PowerPoint-Presentation-2.ppt
Food-Allergy-PowerPoint-Presentation-2.pptIsaacMensah62
 
pitch presentation B2.pptx Sunderland Culture
pitch presentation B2.pptx Sunderland Culturepitch presentation B2.pptx Sunderland Culture
pitch presentation B2.pptx Sunderland CultureChloeMeadows1
 
Abu Dhabi Housewife Call Girls +971509530047 Abu Dhabi Call Girls
Abu Dhabi Housewife Call Girls +971509530047 Abu Dhabi Call GirlsAbu Dhabi Housewife Call Girls +971509530047 Abu Dhabi Call Girls
Abu Dhabi Housewife Call Girls +971509530047 Abu Dhabi Call Girlstiril72860
 
How Ang Chong Yi Singapore is serving up sustainable future-ready foods?
How Ang Chong Yi Singapore is serving up sustainable future-ready foods?How Ang Chong Yi Singapore is serving up sustainable future-ready foods?
How Ang Chong Yi Singapore is serving up sustainable future-ready foods?Ang Chong Yi Singapore
 
Aquaculture Market Trends, Top Manufactures, Industry Growth Analysis and For...
Aquaculture Market Trends, Top Manufactures, Industry Growth Analysis and For...Aquaculture Market Trends, Top Manufactures, Industry Growth Analysis and For...
Aquaculture Market Trends, Top Manufactures, Industry Growth Analysis and For...Next Move Strategy Consulting
 
HIGH PRESSURE PROCESSING ( HPP ) .pptx
HIGH PRESSURE  PROCESSING ( HPP )  .pptxHIGH PRESSURE  PROCESSING ( HPP )  .pptx
HIGH PRESSURE PROCESSING ( HPP ) .pptxparvin6647
 
Irradiation preservation of food advancements
Irradiation preservation of food advancementsIrradiation preservation of food advancements
Irradiation preservation of food advancementsDeepika Sugumar
 
ACCEPTABILITY-OF-AMPALAYA-BITTER-GOURD.pptx
ACCEPTABILITY-OF-AMPALAYA-BITTER-GOURD.pptxACCEPTABILITY-OF-AMPALAYA-BITTER-GOURD.pptx
ACCEPTABILITY-OF-AMPALAYA-BITTER-GOURD.pptxBELARMINOJOLINA
 
FUTURISTIC FOOD PRODUCTS OFTEN INVOLVE INNOVATIONS THAT
FUTURISTIC FOOD PRODUCTS OFTEN INVOLVE INNOVATIONS THATFUTURISTIC FOOD PRODUCTS OFTEN INVOLVE INNOVATIONS THAT
FUTURISTIC FOOD PRODUCTS OFTEN INVOLVE INNOVATIONS THATBHIKHUKUMAR KUNWARADIYA
 
Gwal Pahari Call Girls 9873940964 Book Hot And Sexy Girls
Gwal Pahari Call Girls 9873940964 Book Hot And Sexy GirlsGwal Pahari Call Girls 9873940964 Book Hot And Sexy Girls
Gwal Pahari Call Girls 9873940964 Book Hot And Sexy Girlshram8477
 
如何办韩国SKKU文凭,成均馆大学毕业证学位证怎么辨别?
如何办韩国SKKU文凭,成均馆大学毕业证学位证怎么辨别?如何办韩国SKKU文凭,成均馆大学毕业证学位证怎么辨别?
如何办韩国SKKU文凭,成均馆大学毕业证学位证怎么辨别?t6tjlrih
 
FONDANT ICING bread and pastry prod.pptx
FONDANT ICING bread and pastry prod.pptxFONDANT ICING bread and pastry prod.pptx
FONDANT ICING bread and pastry prod.pptxReleneJoySoto
 
Affordable PriceD Call Girls In Crowne Plaza Greater Noida 8377877756 Short 2...
Affordable PriceD Call Girls In Crowne Plaza Greater Noida 8377877756 Short 2...Affordable PriceD Call Girls In Crowne Plaza Greater Noida 8377877756 Short 2...
Affordable PriceD Call Girls In Crowne Plaza Greater Noida 8377877756 Short 2...dollysharma2066
 
Estimation of protein quality using various methods
Estimation of protein quality using various methodsEstimation of protein quality using various methods
Estimation of protein quality using various methodsThiviKutty
 
Parental and enteral nutrition Final.pdf
Parental and enteral nutrition Final.pdfParental and enteral nutrition Final.pdf
Parental and enteral nutrition Final.pdfShahariorMohammed1
 
(办理学位证)加州大学圣塔芭芭拉分校毕业证成绩单原版一比一
(办理学位证)加州大学圣塔芭芭拉分校毕业证成绩单原版一比一(办理学位证)加州大学圣塔芭芭拉分校毕业证成绩单原版一比一
(办理学位证)加州大学圣塔芭芭拉分校毕业证成绩单原版一比一Fi sss
 

Kürzlich hochgeladen (20)

韩国学位证,全北大学毕业证书1:1制作
韩国学位证,全北大学毕业证书1:1制作韩国学位证,全北大学毕业证书1:1制作
韩国学位证,全北大学毕业证书1:1制作
 
Food-Allergy-PowerPoint-Presentation-2.ppt
Food-Allergy-PowerPoint-Presentation-2.pptFood-Allergy-PowerPoint-Presentation-2.ppt
Food-Allergy-PowerPoint-Presentation-2.ppt
 
pitch presentation B2.pptx Sunderland Culture
pitch presentation B2.pptx Sunderland Culturepitch presentation B2.pptx Sunderland Culture
pitch presentation B2.pptx Sunderland Culture
 
Abu Dhabi Housewife Call Girls +971509530047 Abu Dhabi Call Girls
Abu Dhabi Housewife Call Girls +971509530047 Abu Dhabi Call GirlsAbu Dhabi Housewife Call Girls +971509530047 Abu Dhabi Call Girls
Abu Dhabi Housewife Call Girls +971509530047 Abu Dhabi Call Girls
 
9953330565 Low Rate Call Girls In Sameypur-Bodli Delhi NCR
9953330565 Low Rate Call Girls In Sameypur-Bodli Delhi NCR9953330565 Low Rate Call Girls In Sameypur-Bodli Delhi NCR
9953330565 Low Rate Call Girls In Sameypur-Bodli Delhi NCR
 
How Ang Chong Yi Singapore is serving up sustainable future-ready foods?
How Ang Chong Yi Singapore is serving up sustainable future-ready foods?How Ang Chong Yi Singapore is serving up sustainable future-ready foods?
How Ang Chong Yi Singapore is serving up sustainable future-ready foods?
 
Aquaculture Market Trends, Top Manufactures, Industry Growth Analysis and For...
Aquaculture Market Trends, Top Manufactures, Industry Growth Analysis and For...Aquaculture Market Trends, Top Manufactures, Industry Growth Analysis and For...
Aquaculture Market Trends, Top Manufactures, Industry Growth Analysis and For...
 
Cut & fry Potato is Not FRENCH FRIES ..
Cut & fry Potato is Not FRENCH FRIES  ..Cut & fry Potato is Not FRENCH FRIES  ..
Cut & fry Potato is Not FRENCH FRIES ..
 
HIGH PRESSURE PROCESSING ( HPP ) .pptx
HIGH PRESSURE  PROCESSING ( HPP )  .pptxHIGH PRESSURE  PROCESSING ( HPP )  .pptx
HIGH PRESSURE PROCESSING ( HPP ) .pptx
 
Irradiation preservation of food advancements
Irradiation preservation of food advancementsIrradiation preservation of food advancements
Irradiation preservation of food advancements
 
ACCEPTABILITY-OF-AMPALAYA-BITTER-GOURD.pptx
ACCEPTABILITY-OF-AMPALAYA-BITTER-GOURD.pptxACCEPTABILITY-OF-AMPALAYA-BITTER-GOURD.pptx
ACCEPTABILITY-OF-AMPALAYA-BITTER-GOURD.pptx
 
FUTURISTIC FOOD PRODUCTS OFTEN INVOLVE INNOVATIONS THAT
FUTURISTIC FOOD PRODUCTS OFTEN INVOLVE INNOVATIONS THATFUTURISTIC FOOD PRODUCTS OFTEN INVOLVE INNOVATIONS THAT
FUTURISTIC FOOD PRODUCTS OFTEN INVOLVE INNOVATIONS THAT
 
Call Girls in Hauz Khas⎝⎝9953056974⎝⎝ Delhi NCR
Call Girls in Hauz Khas⎝⎝9953056974⎝⎝ Delhi NCRCall Girls in Hauz Khas⎝⎝9953056974⎝⎝ Delhi NCR
Call Girls in Hauz Khas⎝⎝9953056974⎝⎝ Delhi NCR
 
Gwal Pahari Call Girls 9873940964 Book Hot And Sexy Girls
Gwal Pahari Call Girls 9873940964 Book Hot And Sexy GirlsGwal Pahari Call Girls 9873940964 Book Hot And Sexy Girls
Gwal Pahari Call Girls 9873940964 Book Hot And Sexy Girls
 
如何办韩国SKKU文凭,成均馆大学毕业证学位证怎么辨别?
如何办韩国SKKU文凭,成均馆大学毕业证学位证怎么辨别?如何办韩国SKKU文凭,成均馆大学毕业证学位证怎么辨别?
如何办韩国SKKU文凭,成均馆大学毕业证学位证怎么辨别?
 
FONDANT ICING bread and pastry prod.pptx
FONDANT ICING bread and pastry prod.pptxFONDANT ICING bread and pastry prod.pptx
FONDANT ICING bread and pastry prod.pptx
 
Affordable PriceD Call Girls In Crowne Plaza Greater Noida 8377877756 Short 2...
Affordable PriceD Call Girls In Crowne Plaza Greater Noida 8377877756 Short 2...Affordable PriceD Call Girls In Crowne Plaza Greater Noida 8377877756 Short 2...
Affordable PriceD Call Girls In Crowne Plaza Greater Noida 8377877756 Short 2...
 
Estimation of protein quality using various methods
Estimation of protein quality using various methodsEstimation of protein quality using various methods
Estimation of protein quality using various methods
 
Parental and enteral nutrition Final.pdf
Parental and enteral nutrition Final.pdfParental and enteral nutrition Final.pdf
Parental and enteral nutrition Final.pdf
 
(办理学位证)加州大学圣塔芭芭拉分校毕业证成绩单原版一比一
(办理学位证)加州大学圣塔芭芭拉分校毕业证成绩单原版一比一(办理学位证)加州大学圣塔芭芭拉分校毕业证成绩单原版一比一
(办理学位证)加州大学圣塔芭芭拉分校毕业证成绩单原版一比一
 

Computers or something

  • 1. What on Earth do I do all day? Computers, apparently
  • 2. I am not a computer scientist • I know far too much about how nuclear power stations work • I know far too much about how big the wires should be that go to your shed • I know just how much current it takes to kill you (and where to apply it) • I have ultimate knowledge of the three types of magic smoke
  • 3. Because I am an Electrical Engineer Ask me about: • Power generation • Power distribution • What the three types of magic smoke each smell like • How heavy lead is • What happens when you put your scope probe on a poorly-designed test pad (preferably in the pub, I’m quite busy otherwise)
  • 4. EE checklist • Historical trend of – Occasionally making something with wire or stuff – Taking things to pieces and never putting them back together again – Taking things to pieces and putting them back together again, but they don’t work right – Creating electrical fires that are hard to extinguish • Irrational enthusiasm • Do it for long enough and eventually someone will give you a qualification for it
  • 5. But I can compute • Commonality among engineering branches • Engineers have to know about software engineering anyway • Logic universally applied • Divide and conquer is king • There’s some physics in there as well, apparently • Ok maybe mathematics too
  • 6. How do I function at Pi Towers • I did a RCA on that thing that was on fire and threatening to bugger everything up • Repeat last bullet point 2-3 times • I like doing that sort of thing • Also sometimes I do some testing of new hardware • And sometimes I write some hand-optimised assembler
  • 7. How do I function at Pi Towers • I did a RCA on that thing that was on fire and threatening to bugger everything up • Repeat last bullet point 2-3 times • I like doing that sort of thing • Also sometimes I do some testing of new hardware • And sometimes I write some hand-optimised assembler
  • 8. Happiness is a warm GPU • If I explained what this function did it would take more than 20 seconds ; void pwm_sdm_mod_ord1(int16_t *in, uint32_t *out, SDM_CONTEXT_T *ctx) ; VRF lock must be held on entry. .function pwm_sdm_mod_ord1 stm r0-r15, (--sp) ld error1_l, (ptr_ctx + ofs_z1l) ld error2_l, (ptr_ctx + ofs_z1r) ld nbits, (ptr_ctx + ofs_pwm_bits) ld pwm_offset, (ptr_ctx + ofs_pwm_offset) ld nsamples, (ptr_ctx + ofs_nsamples) ld rng_phase, (ptr_ctx + ofs_rng_phase) mov quant_mask, 0xFFFFFFFF rsub out_shift, nbits, 31 add out_shift, 1 lsr quant_mask, quant_mask, nbits not quant_mask, quant_mask loop: cmp nsamples, 0 beq out cmp rng_phase, 16 blt skip_rng mov rng_phase, 0 BUMP_RNG ptr_ctx, out_shift skip_rng: ldh sample_l, (ptr_in + 0) ldh sample_r, (ptr_in + 2) add dither_l, ptr_ctx, ofs_rng_shifted add dither_l, 0 ld dither_l, (dither_l + rng_phase << 2) add dither_r, ptr_ctx, ofs_rng_shifted add dither_r, 4 ld dither_r, (dither_r + rng_phase << 2) shl sample_l, 16 shl sample_r, 16 shl dither_l, 1 shl dither_r, 1 sub sample_l, pwm_offset sub sample_r, pwm_offset ; sample += error1 adds sample_l, error1_l, sample_l adds sample_r, error1_r, sample_r mov error1_l, sample_l mov error1_r, sample_r ; sample += dither adds sample_l, dither_l, sample_l adds sample_r, dither_r, sample_r ; Q(sample, nbits) and sample_l, quant_mask, sample_l and sample_r, quant_mask, sample_r ; error1 = output - input subs error1_l, sample_l, error1_l subs error1_r, sample_r, error1_r ; clamp to >0 - how to do this nicer and retain dual-issue? abs sample_l, sample_l abs sample_r, sample_r lsr sample_l, sample_l, out_shift lsr sample_r, sample_r, out_shift st sample_l, (ptr_out + 0) st sample_r, (ptr_out + 4) add ptr_out, 8 add ptr_in, 4 add rng_phase, 2 sub nsamples, 1 b loop out: st error1_l, (ptr_ctx + ofs_z1l) st error1_r, (ptr_ctx + ofs_z1r) st rng_phase, (ptr_ctx + ofs_rng_phase) ldm r0-r15, (sp++) b lr .endfn
  • 9. Happiness is a warm GPU • So let’s take 40 seconds ; void pwm_sdm_mod_ord1(int16_t *in, uint32_t *out, SDM_CONTEXT_T *ctx) ; VRF lock must be held on entry. .function pwm_sdm_mod_ord1 stm r0-r15, (--sp) ld error1_l, (ptr_ctx + ofs_z1l) ld error2_l, (ptr_ctx + ofs_z1r) ld nbits, (ptr_ctx + ofs_pwm_bits) ld pwm_offset, (ptr_ctx + ofs_pwm_offset) ld nsamples, (ptr_ctx + ofs_nsamples) ld rng_phase, (ptr_ctx + ofs_rng_phase) mov quant_mask, 0xFFFFFFFF rsub out_shift, nbits, 31 add out_shift, 1 lsr quant_mask, quant_mask, nbits not quant_mask, quant_mask loop: cmp nsamples, 0 beq out cmp rng_phase, 16 blt skip_rng mov rng_phase, 0 BUMP_RNG ptr_ctx, out_shift skip_rng: ldh sample_l, (ptr_in + 0) ldh sample_r, (ptr_in + 2) add dither_l, ptr_ctx, ofs_rng_shifted add dither_l, 0 ld dither_l, (dither_l + rng_phase << 2) add dither_r, ptr_ctx, ofs_rng_shifted add dither_r, 4 ld dither_r, (dither_r + rng_phase << 2) shl sample_l, 16 shl sample_r, 16 shl dither_l, 1 shl dither_r, 1 sub sample_l, pwm_offset sub sample_r, pwm_offset ; sample += error1 adds sample_l, error1_l, sample_l adds sample_r, error1_r, sample_r mov error1_l, sample_l mov error1_r, sample_r ; sample += dither adds sample_l, dither_l, sample_l adds sample_r, dither_r, sample_r ; Q(sample, nbits) and sample_l, quant_mask, sample_l and sample_r, quant_mask, sample_r ; error1 = output - input subs error1_l, sample_l, error1_l subs error1_r, sample_r, error1_r ; clamp to >0 - how to do this nicer and retain dual-issue? abs sample_l, sample_l abs sample_r, sample_r lsr sample_l, sample_l, out_shift lsr sample_r, sample_r, out_shift st sample_l, (ptr_out + 0) st sample_r, (ptr_out + 4) add ptr_out, 8 add ptr_in, 4 add rng_phase, 2 sub nsamples, 1 b loop out: st error1_l, (ptr_ctx + ofs_z1l) st error1_r, (ptr_ctx + ofs_z1r) st rng_phase, (ptr_ctx + ofs_rng_phase) ldm r0-r15, (sp++) b lr .endfn
  • 10. Happiness is a warm GPU • Ok maybe 60 seconds ; void pwm_sdm_mod_ord1(int16_t *in, uint32_t *out, SDM_CONTEXT_T *ctx) ; VRF lock must be held on entry. .function pwm_sdm_mod_ord1 stm r0-r15, (--sp) ld error1_l, (ptr_ctx + ofs_z1l) ld error2_l, (ptr_ctx + ofs_z1r) ld nbits, (ptr_ctx + ofs_pwm_bits) ld pwm_offset, (ptr_ctx + ofs_pwm_offset) ld nsamples, (ptr_ctx + ofs_nsamples) ld rng_phase, (ptr_ctx + ofs_rng_phase) mov quant_mask, 0xFFFFFFFF rsub out_shift, nbits, 31 add out_shift, 1 lsr quant_mask, quant_mask, nbits not quant_mask, quant_mask loop: cmp nsamples, 0 beq out cmp rng_phase, 16 blt skip_rng mov rng_phase, 0 BUMP_RNG ptr_ctx, out_shift skip_rng: ldh sample_l, (ptr_in + 0) ldh sample_r, (ptr_in + 2) add dither_l, ptr_ctx, ofs_rng_shifted add dither_l, 0 ld dither_l, (dither_l + rng_phase << 2) add dither_r, ptr_ctx, ofs_rng_shifted add dither_r, 4 ld dither_r, (dither_r + rng_phase << 2) shl sample_l, 16 shl sample_r, 16 shl dither_l, 1 shl dither_r, 1 sub sample_l, pwm_offset sub sample_r, pwm_offset ; sample += error1 adds sample_l, error1_l, sample_l adds sample_r, error1_r, sample_r mov error1_l, sample_l mov error1_r, sample_r ; sample += dither adds sample_l, dither_l, sample_l adds sample_r, dither_r, sample_r ; Q(sample, nbits) and sample_l, quant_mask, sample_l and sample_r, quant_mask, sample_r ; error1 = output - input subs error1_l, sample_l, error1_l subs error1_r, sample_r, error1_r ; clamp to >0 - how to do this nicer and retain dual-issue? abs sample_l, sample_l abs sample_r, sample_r lsr sample_l, sample_l, out_shift lsr sample_r, sample_r, out_shift st sample_l, (ptr_out + 0) st sample_r, (ptr_out + 4) add ptr_out, 8 add ptr_in, 4 add rng_phase, 2 sub nsamples, 1 b loop out: st error1_l, (ptr_ctx + ofs_z1l) st error1_r, (ptr_ctx + ofs_z1r) st rng_phase, (ptr_ctx + ofs_rng_phase) ldm r0-r15, (sp++) b lr .endfn
  • 11. Happiness is also fixing hardware bugs • D3, R48, R47, C106 • Forms an asymmetric timing circuit • Works around a silly interaction between AP2553 and LAN9514
  • 12. Happiness is also fixing hardware bugs • Works around a glitch that could cause undefined operation of USB peripherals • Sometimes you have to trade elegance for a functional hack
  • 13. What else is on? • I’m the one that has to write all the documentation that gets us into space • I go to the boring bits of Amsterdam and sit in a room with ESA safety experts and discuss minutiae • At the end of it, we can go into space with the help of some Russians and large amounts of LOX
  • 14. Who talked me into this anyway • Rachel pokes me incessantly for electronics advice • I am genuinely interested in novel applications of our little computer thingy that we make and is popular • Good ideas can come from surprising sources
  • 15. Care and feeding of your EE Useful: • If you want to know if your idea is possible/feasible/realisable • If you want the gory details • If you require cynicism in large doses Not so useful: • Painting anything (except walls in a uniform colour)
  • 16. How to Art When you fuse technology with the arts, form has to follow function.
  • 17. How to Art When you fuse technology with the arts, form has to follow function.
  • 18. If you build it, you will get buy-in • You can attend only so many design review meetings in good faith without either going mad or having extra-curricular interests • Follow the rules guidelines I just laid down, and you will engage any engineer who has an interest in the arts • Sometimes we like to see the end result of tinkering with a wild idea behind it
  • 19. Get your ass to Mars • If you know who that is and what film this is from without Google’s help, you get a sweetie* • *sweetie not included
  • 20. But seriously Get your ass to Mars