IRF server room Photo: Daniel Kastinen/IRF
First some distinctions
using a language to solve "problems"
choosing what "problems" to solve and how to solve them for a greater goal
For example: Build a calculator
This course strikes a ~70/30% balance between software development and programming
The classic: fast inverse square root implementation from Quake III Arena
float Q_rsqrt( float number )
{
long i;
float x2, y;
const float threehalfs = 1.5F;
x2 = number * 0.5F;
y = number;
i = * ( long * ) &y; // evil floating point bit level hacking
i = 0x5f3759df - ( i >> 1 ); // what the f***?
y = * ( float * ) &i;
y = y * ( threehalfs - ( x2 * y * y ) ); // 1st iteration
// y = y * ( threehalfs - ( x2 * y * y ) ); // 2nd iteration, this can be removed
return y;
}
Being able to do the above takes someone good at programming
Realizing that this was needed and creating the conditions where it could be done
takes someone good at software development
The classic: fast inverse square root implementation from Quake III Arena
float Q_rsqrt( float number )
{
long i;
float x2, y;
const float threehalfs = 1.5F;
x2 = number * 0.5F;
y = number;
i = * ( long * ) &y; // evil floating point bit level hacking
i = 0x5f3759df - ( i >> 1 ); // what the f***?
y = * ( float * ) &i;
y = y * ( threehalfs - ( x2 * y * y ) ); // 1st iteration
// y = y * ( threehalfs - ( x2 * y * y ) ); // 2nd iteration, this can be removed
return y;
}
Ron Evans on The Changelog podcast, 2024-05-03
We're cognition athletes. Don't athletes usually get a trainer? Instead we get a coffee and a donut and the product needs to ship next week.
replace: product -> data/paper/simulation/...
So here is a course and some training!
Lars Wirzenius - "40 years of programming"
Interesting and significant software is beyond the capacity of any one person to build alone in a reasonable time frame. This means that the fundamental, crucial, core skills in building software are communication and collaboration.
Lars Wirzenius - "40 years of programming"
Even in the projects where I'm the only person, there are at least three people involved: past me, present me, and future me. Past me is a lazy and careless slob who always leaves a mess. Present me does superb work, but has to cope with all the stupid stuff done by past me, and needs to placate future me. Future me is an egotistic and opinionated snob for whom nothing is ever good enough.
Monya Baker - "1,500 scientists lift the lid on reproducibility"
More than 70% of researchers have tried and failed to reproduce another scientist's experiments, and more than half have failed to reproduce their own experiments.
Just based on what was already said
Would you rather contribute to
or
Be able to tackle any problem
Hone your craft. Be an expert at your tools. Train and practice. "Yeah I could do that"
This is a very fine line to walk
Left side
This is a very fine line to walk
Right side
This is a very fine line to walk
Middle
| Project | Descritpion |
|---|---|
sorts
|
"Space Object Radar Tracking Simulator library" |
hardtarget
|
"Radar hard target processing package" |
rain
|
"ReseArch Infrastructure Network" |
pyorb
|
"Kepler orbits library" |
pyant
|
"Radar gain patterns library" |
runningman
|
"Runtime Manager" |
dasst
|
"Small-body dynamics simulations library" |
metecho
|
"Radar Meteor Head Echo Analysis library and pipeline" |
ablate
|
"Ablation model library" |
resordan
|
"Space object data analysis library" |
allsky7station
|
"Meteor camera station software" |
rebound-player
|
"Simulation visualization app" |
MU radar pipeline
|
"Meteor data pipeline" |
EISCAT radar pipeline
|
"Space debris data pipeline" |
Click the link above to get to the handout