User:Mstone/Tricks: Difference between revisions
mNo edit summary |
|||
Line 23: | Line 23: | ||
See [http://dev.laptop.org/git?p=users/mstone/rpm-packaging;a=tree rpm-packaging] as well as individual projects like [http://dev.laptop.org/git/projects/olpc-netutils] along with my [[Developer/Fedora#Outside Reading|Fedora packaging bibliography]]. |
See [http://dev.laptop.org/git?p=users/mstone/rpm-packaging;a=tree rpm-packaging] as well as individual projects like [http://dev.laptop.org/git/projects/olpc-netutils] along with my [[Developer/Fedora#Outside Reading|Fedora packaging bibliography]]. |
||
==== |
==== pymeta parser-based controllers ==== |
||
[http://dev.laptop.org/git?p=users/mstone/triagebot;a=blob;f=grammar.py;hb=grammar triagebot] is based on a model-view-controller architecture where the controller object is assembled at runtime based on data collected with a metaclass. [https://launchpad.net/pymeta pymeta] makes it easy to pick the right response to complicated input. |
|||
==== Python GDB Macros ==== |
==== Python GDB Macros ==== |
Revision as of 00:48, 24 September 2008
Verbose Python Tracebacks
Just import nice_traces; if you're feeling fancy, then consider trace(sys.exc_info())
Handy report() function
See trac_helper.py
Pythonic relations
See my relation module and Alloy (which was my inspiration, though I've made nothing more than a poor knockoff).
Relational error logging
See trac_helper.py and collect-pkgs.py.
Email-based error reporting
See email_warnings.py.
RPM Makefiles
See rpm-packaging as well as individual projects like [1] along with my Fedora packaging bibliography.
pymeta parser-based controllers
triagebot is based on a model-view-controller architecture where the controller object is assembled at runtime based on data collected with a metaclass. pymeta makes it easy to pick the right response to complicated input.
Python GDB Macros
http://wiki.python.org/moin/DebuggingWithGdb
Tree-based python context management
Eschew object-orientation
rainbow's inject.py can be automatically checked for many errors by pylint because it passes all data explicitly through function calls.
C error handling
nss-rainbow uses a dash of code-generation to be very consistent about error detection and handling.