Difference between revisions of "Code"
(→Templates) |
|||
Line 23: | Line 23: | ||
== Templates == |
== Templates == |
||
− | The real world |
+ | The real world has forms, computation has templates. Pick one up, fill in the blanks, and send it down the chute. |
* [[NWChem|NWChem Jobs]] |
* [[NWChem|NWChem Jobs]] |
||
* [[Code:SGE|SGE (USF Circe)]] |
* [[Code:SGE|SGE (USF Circe)]] |
Revision as of 14:02, 11 April 2014
Contents
Tutorials
When learning a new language, once you've memorized the words, you need to start conversing. Unfortunately, source code is not spoken. It's a stillborn language. One of the best ways to code well is to study and modify other, good code. For code, this means reading and tweaking tutorials first, then design patterns, then large-scale projects next.
Remember that it's not enough to just read them. It's actually a positive waste of time. Rather, you have to do some run-tweak-run-debug development cycles with them.
C Libraries
With the exception of the standard libraries and the GNU Scientific Library, there are surprisingly few of these about. Here are some generics that we've implemented and are sharing under the GPL.
Robust map and red/black tree code has recently been published to github.
Python Libraries
Geometric Algebra
The Multivector class implements geometric algebra using Python's operator overloading. It works with minimal space for any number of spatial dimensions, since it's not based on the matrix / spinor representation of Clifford algebra. Instead, it takes the basis blade approach recommended by Dorst, Fondijne, and Mann [1]. It's really just as easy as ordering all the basis vectors, and keeping track of the commutator (+/- <math>\hat 1</math>).
Templates
The real world has forms, computation has templates. Pick one up, fill in the blanks, and send it down the chute.
Code Humor
Put this into your makefile: <source lang=bash> Clint\ Eastwood: myday echo "I feel great!" </source>