I regularly like to make rough diagrams/plans by drawing on paper. As I have an iPad Pro with a stylus sitting next to me I have often thought there would be some benefits to being able to use a sketching diagram to:
Looks primarily at changing object shapes, introducing the move too and the 2-point arch tool. Using double click for repetition of push/pull tool also proved to be convenient. We then used the move tool to alter slopes of surfaces, including using the up key to match slope and then height of another surface.
Next up is the arc tool, which has 4 variants:
Arc – Main point of this method determines where the center point of the arc will be
2 Point Arc – select two points that will be the width of the arc
3 Point Arc – Firts 2 points determine form, and the third point gives that exact length Ideal for irregularly shaped objects
Again the first pass took a while and was quite difficult, but a complete redraw took only 5 mins. When drawing structures like this, with eves and and sloped roofs it is important to complete a room (minus the eves and roof thickness) to make slope matching easier.
# Note that is is executing arbitrary code from an the vim-go repo
curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
git clone https://github.com/fatih/vim-go.git ~/.vim/plugged/vim-go
Customise ~/.vimrc to enable and configure your plugins and shortcut keys
Once th ~/.vimrc is added run :GoInstallBinaries to get vim-go’s dependencies
Shortcut keys in this vimrc:
\ + b -> build
if errors occur toggle forward and back through them with ctrl + n and ctrl + m
close quick fix dialogue boxes with \ + a
\ + i -> install
dif (whilst on func def, delete all contents for func)
Autocompletion sucks though 🙁 so adding neocomplete is a must).
With existing versions of brew installed vim and the introduced dependency of xcode makes the setup time high. I went through this in the past and after a fairly long hiatus from writing code if find nothing is working quite right.
Step 4: Write an interface between the functions and a basic interface (text?)
Step 5: Test!
Conclusion: Using Scala (trying anyway) the implementation is not very complex. What is more difficult is replicating the original machines where the output character could not equal the input character. The limitation Turing used to crack the machines. Might see if I can implement that later then test out the cracking method. Not sure how easy it would be to break the current implementation…