Welcome to the Future of Coding.

If you find any typos or have any suggestions, feel free to edit anything and send me a pull request.

You can also take a look at the issues to see the other things in my todo list. I'd appreciate your feedback on any of those items. Or if you have anything to add there, feel free to create a new issue and I'll comment on it to let you know if I'm going to get it done.

Feel free to shoot me an email as well. I'm steve at futureofcoding.org.

I keep a number of "virtual webpages" when a GitHub issue is a better format for them than a regular webpage for some reason.

Developing notes

Remove large media files locally

First run:

git config core.sparsecheckout true

Then put the following into .git/info/sparse-checkout:

*.html
*.md
*.gitignore
*.txt
*.js
*.css
*.yml
*.json

And then run

git read-tree -mu HEAD

Add _data/git-log.json changes

This is how I generage futureofcoding.org/log.

First, pip install git2json as explained here.

Then create .git/hooks/post-commit with the following contents:

previousMessage=$(git log -1 --pretty=%B)

if [ "$previousMessage" != "updated git log" ]
then
    git2json > _data/git-log.json
    echo 'fileName' > _data/files.csv && find . -regextype posix-egrep -regex ".*\.(md|html)$"  -not -path "./_site/*" >> _data/files.csv
    
    # https://stackoverflow.com/questions/16993082/why-doesnt-git-recognize-that-my-file-has-been-changed-therefore-git-add-not-w
    git rm --cached _data/files.csv
    git reset _data/files.csv
    
    git add _data/git-log.json
    git add _data/files.csv
    git commit -m "updated git log" 
fi

exit 1

Quick access to journal

Add the following to ~/.bashrc:

function empty_message {
  sleep 0.1
  echo -e "## Title\n\n* TOC\n{: toc }\n\n" > .git/COMMIT_EDITMSG
}

function journal {
  empty_message & 
  git commit --allow-empty --cleanup=verbatim
}