00001 /* 00002 * principles.h 00003 * 00004 * Not a real header! This is just here for Doxygen. Don't use this header. 00005 */ 00006 00007 /// \ingroup wavepacket_top 00008 /// \defgroup princip_guide Principles and Guidelines 00009 /// 00010 /// General principles and coding guidelines for the Wavepacket family of 00011 /// libraries and programs. 00012 /// 00013 00014 /// \ingroup princip_guide 00015 /// \defgroup principles General Principles 00016 /// General Principles 00017 /// 00018 /// These are general principles that guide all projects. Or at least, these 00019 /// are the principles that I adhere to and enforce for my projects: 00020 /// 00021 /// - <b>Security is the top concern.</b> We respect local policies and 00022 /// permissions (in particular, we never try to work around them). We 00023 /// write defensive code that does not allow people to intentionally or 00024 /// inadvertently compromise their system through our software. 00025 /// 00026 /// - <b>Our software is a guest on the user's machine.</b> We ask permission 00027 /// before doing anything interesting or dangerous. We leave if asked, 00028 /// and clean up after ourselves. 00029 /// 00030 /// - <b>We respect privacy.</b> Our software excels at what it is 00031 /// advertised to do, and does nothing else. We take only what personal 00032 /// information is required to operate (if any), do not move it off the 00033 /// host computer without explicit permission, and never share it with 00034 /// third parties ever. 00035 /// 00036 /// - <b>We are stable.</b> Our software can run continuously for weeks 00037 /// or months or years and not crash due to leaks or other problems. 00038 /// We handle invalid inputs and behaviors gracefully. 00039 /// 00040 /// - <b>We are fast and frugal.</b> Every bit of software is profiled and 00041 /// timed. We use the minimum resources required to do the job, and do 00042 /// it fast. 00043 /// 00044 /// For security tips, see the SANS Top 25 Most Dangerous Programming Errors: 00045 /// http://www.sans.org/top25errors/ 00046 ///