110 karma · joined February 8, 2020
I'm working on this keyboard substitute with larger keys and split up keyboards: https://apps.apple.com/us/app/icantext/id6748927092. Give it a try if you want.
Also, if you can find the book by Williams called "From Sails to Satellites: The Origin and Development of Navigational Science" you'll laugh out loud at his wit about navigation throughout the book.
Then I wrote up a NN from scratch in Python to train some simple vectors and even got it to train some MNIST characters https://github.com/tbensky/NeuralNetworks/blob/main/ANN/ann.... (but it was slow).
With that basic refresher, I got into PyTorch and worked on training a PiNN: https://github.com/tbensky/PiNN_Projectile (neat video of it training: https://youtu.be/0wlHa1-M7kw).
Now I'm working on understanding kernels with CNNs (this is my question, I'm making good progress on answering): https://ai.stackexchange.com/questions/46180/kernels-on-a-tr....
Having loads of fun!
Anyway, throwing my hat in the ring: https://codebymath.com. Lots of small mathematical problems that can be solved using code. (Started this a few years ago to help teach a home-school group about coding, that was tied to lessons from their math class.)
:- use_module(library(clpfd)).
go(L) :- L = [Vixen, Rudolph, Prancer, Dasher, Comet, Dancer, Donder, Blitzen, Cupid], L ins 1..9,
% Vixen should be behind Rudolph, Prancer and Dasher,
maplist(#>(Vixen),[Rudolph,Prancer,Dasher]),
% Vixen should be in front of Dancer and Comet.
maplist(#<(Vixen),[Dancer,Comet]),
% Dancer should be behind Donder, Blitzen and Rudolph.
maplist(#>(Dancer),[Donder,Blitzen,Rudolph]),
% Comet should be behind Cupid, Prancer and Rudolph.
maplist(#>(Comet),[Cupid,Prancer,Rudolph]),
% Donder should be behind Comet, Vixen, Dasher, Prancer and Cupid.
maplist(#>(Donder),[Comet, Vixen, Dasher, Prancer,Cupid]),
% Cupid should be in front of Comet, Blitzen, Vixen, Dancer and Rudolph
maplist(#<(Cupid),[Comet, Blitzen, Vixen, Dancer,Rudolph]),
% Prancer should be in front of Blitzen, Donder and Cupid.
maplist(#<(Prancer),[Blitzen,Donder,Cupid]),
% Blitzen should be behind Cupid
Blitzen #> Cupid,
% but in front of Dancer, Vixen and Donder.
maplist(#<(Blitzen),[Dancer,Vixen,Donder]),
% Rudolph should be behind Prancer
Rudolph #> Prancer,
% but in front of Dasher, Dancer and Donder.
maplist(#<(Rudolph),[Dasher,Dancer,Donder]),
% Finally, Dasher should be behind Prancer
Dasher #> Prancer,
% but in front of Blitzen, Dancer and Vixen.
maplist(#<(Dasher),[Blitzen,Dancer,Vixen]).