text/ssm.en.xml
branchv_0
changeset 38 8d0d0afb75f3
parent 35 db3eb602fa60
child 40 bc2043705ec5
equal deleted inserted replaced
37:04190261ad54 38:8d0d0afb75f3
   218 	<chapter>
   218 	<chapter>
   219 		<name>Safe code and sustainability</name>
   219 		<name>Safe code and sustainability</name>
   220 		<id>f3afbaf2-0933-43d2-aed0-8dc568b9429f</id>
   220 		<id>f3afbaf2-0933-43d2-aed0-8dc568b9429f</id>
   221 		<item>
   221 		<item>
   222 			<id>a96206c9-3e69-483d-b575-6bab9dec4a30</id>
   222 			<id>a96206c9-3e69-483d-b575-6bab9dec4a30</id>
   223 			<text>correctness, safety and readability is prefered to performance</text>
   223 			<text>correctness, safety and readability is preferred to performance</text>
   224 		</item>
   224 		</item>
   225 		<item>
   225 		<item>
   226 			<id>d8eba0dd-4305-44b9-80ea-4c38b6dfa633</id>
   226 			<id>d8eba0dd-4305-44b9-80ea-4c38b6dfa633</id>
   227 			<text>use strong data typing, declare preconditions and possible exceptions</text>
   227 			<text>use strong data typing, declare preconditions and possible exceptions</text>
   228 		</item>
   228 		</item>
   443 			<text>The metric system should be used as default.</text>
   443 			<text>The metric system should be used as default.</text>
   444 		</item>
   444 		</item>
   445 	</chapter>
   445 	</chapter>
   446 	
   446 	
   447 	<chapter>
   447 	<chapter>
   448 		<name>Communication channels</name>
   448 		<name>Communication with users and developers</name>
   449 		<id>a931dcbb-8043-4e21-838f-8e8122bb8af3</id>
   449 		<id>a931dcbb-8043-4e21-838f-8e8122bb8af3</id>
   450 		<item>
   450 		<item>
   451 			<id>fff90688-907e-48eb-a48a-2ae6d6b42f0a</id>
   451 			<id>fff90688-907e-48eb-a48a-2ae6d6b42f0a</id>
   452 			<text>use RSS/Atom or other machine readable format for:</text>
   452 			<text>Following information should be provided in RSS/Atom or other machine readable format:</text>
   453 			<item>
   453 			<text>announcements (security, new versions, infrastructure outage),</text>
   454 				<id>ce9ffd67-627b-4067-ae34-f56ffbcac972</id>
   454 			<text>blog posts, tutorials</text>
   455 				<text>security announcements</text>
   455 			<text>and AFK events (e.g. conferences, meetings or hackatons).</text>
   456 			</item>
   456 			<note>for calendar data iCal format is strongly recommended</note>
   457 			<item>
       
   458 				<id>f4c0b757-1fee-4d6d-8b30-808b4787fb5e</id>
       
   459 				<text>new version announcements</text>
       
   460 			</item>
       
   461 			<item>
       
   462 				<id>b17dbc84-4119-4706-acd8-61421a384246</id>
       
   463 				<text>infrastructure outage announcements</text>
       
   464 			</item>
       
   465 			<item>
       
   466 				<id>f3063520-5e7a-4aa0-95f6-505775556120</id>
       
   467 				<text>blog, documentation, how-tos etc.</text>
       
   468 			</item>
       
   469 			<item>
       
   470 				<id>e2434bd6-c838-479a-a636-f277003ebe7c</id>
       
   471 				<text>AFK events (conferences, meetings, hackatons etc.), for calendar data iCal format is strongly recommended</text>
       
   472 			</item>
       
   473 		</item>
   457 		</item>
   474 		<item>
   458 		<item>
   475 			<id>e8b18e02-d7b2-4584-8eee-dbaf823f6800</id>
   459 			<id>e8b18e02-d7b2-4584-8eee-dbaf823f6800</id>
   476 			<text>mailing list</text>
   460 			<text>A mailing list (e-mail conference) or other equivalently open and decentralized technology should be used for the many-to-many communication.</text>
   477 		</item>
   461 			<note>Having an „old school“ mailing list is not mandatory – it might be e.g. a P2P distributed technology or some self-hosted forum.</note>
   478 		<item>
       
   479 			<id>a35328fe-a177-4d6a-a3d2-2cc8fa0cb6f7</id>
       
   480 			<text>e-mail/SMTP</text>
       
   481 			<item>
       
   482 				<id>f40e9a23-b2ca-4052-949e-f4358844f5a2</id>
       
   483 				<text>use TLS</text>
       
   484 			</item>
       
   485 			<item>
       
   486 				<id>bc444281-5c76-43a9-b5ef-46306cbb2bf9</id>
       
   487 				<text>use DKIM/ADSP</text>
       
   488 			</item>
       
   489 			<item>
       
   490 				<id>a2852409-806f-480c-8700-141ace86f322</id>
       
   491 				<text>use signed and encrypted messages (GnuPG or X.509)</text>
       
   492 			</item>
       
   493 			<item>
       
   494 				<id>da2b84bd-a20d-4e76-af14-740a7c9ccfb3</id>
       
   495 				<text>avoid spam and viruses, do not spam the users, do not push them to subscribe your „newsletter“ – always offer also anonymous channel like RSS/Atom</text>
       
   496 			</item>
       
   497 		</item>
       
   498 		<item>
       
   499 			<id>ec4c92b6-83e5-4051-9aef-fa7d02e292b8</id>
       
   500 			<text>Jabber MUC or IRC</text>
       
   501 		</item>
       
   502 		<item>
       
   503 			<id>f50d17bd-701f-45f9-aae4-86bfcf34cd7c</id>
       
   504 			<text>discussion forum</text>
       
   505 		</item>
   462 		</item>
   506 		<item>
   463 		<item>
   507 			<id>e746eb5b-8d8b-4ec8-9315-a311f35e156a</id>
   464 			<id>e746eb5b-8d8b-4ec8-9315-a311f35e156a</id>
   508 			<text>do not push users to register at a proprietary social networks resp. at particular company like Facebook – users without such account must not be discriminated – use open and decentralized networks/protocols instead</text>
   465 			<text>Users must not be pushed to register at a proprietary social networks resp. at particular providers of such services.</text>
   509 		</item>
   466 			<text>Users without such account must not be disadvantaged – use open and decentralized networks/protocols instead.</text>
   510 		<item>
       
   511 			<id>a1a3c037-37e3-4283-abab-e275f7d17442</id>
       
   512 			<text>Q&amp;A tool + FAQ</text>
       
   513 		</item>
   467 		</item>
   514 		<item>
   468 		<item>
   515 			<id>ff537045-819e-4dec-a020-d2c9f2c3292b</id>
   469 			<id>ff537045-819e-4dec-a020-d2c9f2c3292b</id>
   516 			<text>there should be a second-level internet domain for the project or its team</text>
   470 			<text>There should be a second-level internet domain for the project or its team.</text>
   517 		</item>
   471 			<note>But do not buy an internet domain if you are not prepared to mainain it for decades – rather use third level domain under some reliable second level domain maintained by a credible group or person – think of that every expired domain helps spammers and scammers and hurts the users.</note>
   518 		<item>
       
   519 			<id>b54d4978-974b-4743-bdba-7d4957bc9ba7</id>
       
   520 			<text>but do not buy an internet domain if you are not prepared to mainain it for decades – rather use third level domain under some reliable second level domain maintained by a credible group or person – think of that every expired domain helps spammers and scammers and hurts the users</text>
       
   521 		</item>
   472 		</item>
   522 		<item>
   473 		<item>
   523 			<id>a1141312-5177-4d68-bb14-fce952d542c3</id>
   474 			<id>a1141312-5177-4d68-bb14-fce952d542c3</id>
   524 			<text>URLs should be as stable as possible (do not break old links, set up redirections if needed)</text>
   475 			<text>URLs should be as stable as possible – accessible in next decade.</text>
       
   476 			<note>Do not break old links, set up redirections if needed.</note>
   525 		</item>
   477 		</item>
   526 		<item>
   478 		<item>
   527 			<id>c5b6d3d7-2f1f-4371-acfa-d6af1588c2cb</id>
   479 			<id>c5b6d3d7-2f1f-4371-acfa-d6af1588c2cb</id>
   528 			<text>the website must be independent and must contain everything needed – any content (JavaScripts, CSS, fonts, images etc.) downloaded from other domains must not be required to browse/use the website</text>
   480 			<text>The website must be independent and must contain everything needed – any content (JavaScripts, CSS, fonts, images etc.) downloaded from other domains must not be required to browse/use the website.</text>
   529 		</item>
   481 			<note>Embedded content from the third-party servers causes leaks of sensitive data (tracking of the users) and also denies decentralized nature of the internet.</note>
   530 		<item>
   482 		</item>
   531 			<id>c1d9052d-dfe5-4fce-a82c-d618dc4689fa</id>
   483 		<item>
   532 			<text>authors should publish their public keys (GnuPG/OpenPGP or X.509)</text>
   484 			<id>d5fbcc9e-a12c-44ce-909b-f514a579ab7e</id>
       
   485 			<text>JavaScript or other code executed on client computers must be also free software with properly declared license.</text>
       
   486 			<note>see https://www.gnu.org/software/librejs/</note>
   533 		</item>
   487 		</item>
   534 		<item>
   488 		<item>
   535 			<id>c89e8699-574c-4b28-9f65-6284d6051f68</id>
   489 			<id>c89e8699-574c-4b28-9f65-6284d6051f68</id>
   536 			<text>crpyptographically secured e-mail address or web form for receiving security vulnerabilities report</text>
   490 			<text>There must be a crpyptographically secured (GnuPG/OpenPGP or X.509) e-mail address or a secure web form for receiving security vulnerabilities reports.</text>
   537 		</item>
   491 			<note>Particular authors should publish their public keys.</note>
   538 		<item>
   492 			<note>Every security incident must be clearly documented and investigated – do not obscure it.</note>
   539 			<id>b6cf8d5f-0fc9-46f7-8e38-8342a1229037</id>
       
   540 			<text>every security incident must be clearly documented and investigated – do not obscure it</text>
       
   541 		</item>
       
   542 		<item>
       
   543 			<id>e41134a4-715c-4926-a7df-01ff3759eda1</id>
       
   544 			<text>There should be public directory of extensions/scripts.</text>
       
   545 		</item>
   493 		</item>
   546 		<item>
   494 		<item>
   547 			<id>fed07648-106a-4b7c-9026-509c82109448</id>
   495 			<id>fed07648-106a-4b7c-9026-509c82109448</id>
   548 			<text>Source code repository (versioning system) must be public. Do not publish just source code snapshots of released versions.</text>
   496 			<text>Source code repository (versioning system) must be public. Do not publish just source code snapshots of released versions.</text>
   549 		</item>
   497 		</item>