You can use the template from one of the tests at https://toebes.com/codebusters/ and just replace the questions with your own.
For all questions, it is important to carefully check the encoded text for any inappropriate or potentially offensive words that may be generated by the encoding.
When writing the question text, all cipher or plain decoded text should be indicated by using a bold courier font.
This should be an Aristocrat with a hint (see Aristocrats/Patristocrats).
The Atbash is one of the easiest Ciphers for students to encode or decode because the alphabet is fixed. The letter v will always stand for the letter e and vice-versa. There should only be one Atbash Cipher question on a test.
Setting Difficulty:The only factor for difficulty with this question is in the number of characters in the phrase. The choice of letters/words/word length has no impact on the difficulty. In general the question should be approximately 100 characters. It is only slightly harder to have the students Encode because it isn't obvious when they have the correct answer. An Encode problem is also slightly harder to grade as it requires carefully checking each letter instead of simply reading the answer.
Points:An Atbash Cipher Decode should be worth 100 points (approximately 1 point per character in the Plain Text). An Atbash Cipher Encode could be worth 120-150 points depending on the length of the encode string (approximately 1.2 points per character rounded to the nearest 10).
Question Text:The question should clearly indicate that cipher has been encoded using the Atbash Cipher as well as the origin of the phrase or quote. It should not include a hint. Some examples:
Solve this quote from <person> which has been encoded with the Atbash Cipher.
Encode this quote by <person> using the Atbash Cipher.
The Caesar Cipher is a fairly simple cipher where once you know a single letter mapping, the remainder of the problem is a simple transposition. There should be no more than one or two Caesar Cipher questions on a test.
Setting Difficulty:There are two factors which affect the difficulty. First is the length of the cipher which in general should be approximately 100 characters. Having a single or two character word in the Plain Text also makes it easier to solve. Secondarily is the Shift of the letters. Shifts of 1,2,3 or 13 are the easiest because once the shift is known, it can generally be done without even looking it up in a table. 13 is a special case because it operates similar to the Atbash in that letters map in pairs. It is only slightly harder to have the students Encode because it isn't obvious when they have the correct answer. An Encode problem is also slightly harder to grade as it requires carefully checking each letter instead of simply reading the answer.
Points:A Caesar Cipher Decode should be worth 100-120 points (approximately 1 point per character in the Plain Text) with the 120 point being associated with a Caesar with a larger shift and no short words. A Caesar Cipher Encode should be worth 120-160 points with absence of short words, larger shift values and longer phrases
Question Text:The question should clearly indicate the origin of the phrase and that it has been encoded using a Caesar Cipher. It should not indicate the shift amount (for a Decode) or include a hint. For example:
Solve this quote from <person> which has been encoded with the Caesar Cipher.
A quote from <person> has been encoded with the Caesar Cipher. What does it say?
Encode this quote from <person> using a Caesar Cipher with a shift of 9 (e.g. S encodes as J).
These will take up the bulk of the questions. It is helpful to search for a variety of quotes and phrases to use in order to pick the ones which best meet your needs. A good quote will have around 20 words and about 100-120 characters (including spaces) for Aristocrats and 110-130 characters for Patristocrats. Note that the only difference between an Aristocrat and a Patristocrat is whether you take the spaces out or not, so the same quotes work for both. However, you generally want slightly longer phrases for the Patristocrats to give more patterns for the team to find.
Setting Difficulty:There are multiple factors which affect the difficulty of an Aristocrat. First and foremost is the match of the phrase to the frequency of distribution of letters relative to the standard distribution of English letters:
| E | T | AO | NIR | SH | LD | CUPF | MWY | BGV | KQXJZ |
| 13% | 9% | 8% | 7% | 6% | 4% | 3% | 2% | 1% | - |
Table 1 - Frequency of English Letters
Fortunately the tool will calculate the Chi-Square Value to give an indication of how close the phrase is to a standard distribution. The lower the value, the easier the phrase.
Secondarily, the choice of words matters. A phrase using obtuse/archaic language or atypical words will be more difficult than one which uses simple words. The presence of single and double letter words helps to make the problem easier.
Third, phrases that start with it is, have multiple occurrences of the or contain the words these, there, little or people tend to be easier. You will also want some samples which have repeated words to use for test questions providing hints. In general, it is good to avoid quotes which are unattributed or by anonymous to allow the author of the quote to serve as an extra hint.
When spelling and grammar errors are introduced, the problem becomes much harder. Likewise, eliminating all the spaces for a Patristocrat makes it the hardest to solve.
In order to make the harder problems solvable, it is good to consider using a K1 or K2 alphabet to provide some additional hints. A K2 alphabet is slightly harder than a K1 alphabet, but both are easier than a random alphabet.
Points:Aristocrats/Patristocrats have a wide range of scores, but there are some general guidance to follow in setting the score. Each of the types below provide a nominal range to start with. When encoding the sample text, the tool will report a Chi-Square Value. The range of the value provides a general guide to the difficulty of the problem (0-20 = Easy, 20-30=Medium, 30-40=Medium Hard, 40-50=Difficult, >50=Extremely Difficult). Taking the Chi-Square Value indication as a starting point, also look for short words and pattern words in the phrase as an adjustment to the difficulty up or down. A problem that is perceived to be Easy should not be worth more than 300 points while a problem that is Difficult should not be worth less than 500 points. As a rule of thumb, an Easy problem should start with a base of 200 points while a Difficult one should be 750 points. For this reason it is often good to start with a number of phrases to determine their difficulty and then assign them to the type of Aristocrat/Patristocrat problem. It is also worth noting that with a phrase that has a high Chi-Square Value, while it may not be ideal for an Aristocrat/Patristocrat, it can easily be used for just about all the other Cipher types including Baconian, Affine, Atbash, Caesar and Vigenère
A problem can be made less difficult in two ways. Adding a hint that reveals characters makes it easier to solve. With a hint, each letter beyond 3 letters for an Aristocrat (or 5 letters for a Patristocrat) revealed by the hint should drop 50 points from the score. By using a K1 or K2 alphabet, the score can also be dropped by 100 and 75 points respectively.
Eliminating the spaces to make a phrase into a Patristocrat automatically adds 500 points to the difficulty and eliminates any benefit from short words.
For example starting with a phrase:
Is there any knowledge in the world which is so certain that no reasonable man could doubt it?
with a Chi-Square of 11.50, we see multiple short words (it, is, in), and a hint of three letters (man) this problem would be one of the easiest with a score of 200. It would also make for a good timed question. By changing it to a Patristocrat, we would add 500 to get a base score of 700. If we encode it with a K1 alphabet we drop 100 points for a score of 600. At this range we should also be providing a hint that it starts as “isthe” revealing only 5 characters leaving this as a 600 point question.
A standard Aristocrat with a hint will be about 200 points. See the General Aristocrat/Patristocrat point guidance for more details.
Question Text:The question should clearly indicate that it is an Aristocrat, provide the source of the phrase and a hint of what word(s) may be found in the decoded phrase. For example:
Solve this Aristocrat which is a quote by <person> which has the word MAN in it.
<person> was heard to say the following phrase which starts with: Never.
A standard Aristocrat without a hint will be between 250 and 350 points. See the General Aristocrat/Patristocrat point guidance for more details.
Question Text:The question should clearly indicate that it is an Aristocrat and provide the source of the phrase. For example:
Solve this Aristocrat which is a quote by <person> when they <event>.
During <event>, <person> was heard to say the following phrase.
These can be a lot of fun to generate and can be something that the students relate to. In general the thought process here is something that their phone mistyped when texting using voice. Generating these takes a couple of tries to get something that works out well. It is best to start out with phrases that contain homophones (like you/ewe/hue) and then either generate variations by hand or use a homophone generation tool (likehttp://homophonemachine.allaboutlearningpress.com/ or https://evashort.com/homophone/). Sometimes you can get lucky trying to send it as a voice text message with Siri or Google Voice to get a phrase which has been slightly twisted. You may want to try a couple of times to get something that is appealing. The phones have gotten a lot smarter lately and don't make as many mistakes as they used to. By using a K2 or K1 alphabet, the difficulty of solving it goes down.
Points:An Aristocrat with spelling/grammar errors and a hint should be worth between 350 and 500 points, based on the difficulty of the phrase, number of letters revealed with the hint and whether or not a K1/K2 alphabet is used. See the General Aristocrat/Patristocrat point guidance for more details.
Question Text:The question should clearly indicate that it is an Aristocrat with misspellings or grammar errors and provide the source of the phrase as well as a hint. For example:
Alexa severely misheard a phrase from <person> which has the word THE twice and then encoded it as an Aristocrat. What did it come out as?
When one of <person's> manuscripts was automatically scanned and OCRed before converted to an Aristocrat, there were quite a few mistakes but the word piece appears twice. What was the final result?
Approach these exactly the same as Aristocrat with spelling/grammar errors and a hint except that you don't provide a hint. This is one of the hardest questions that can be found on the test. In general these should be encoded with a K1 or K2 alphabet.
Points:An Aristocrat with spelling/grammar errors and no hint should be worth between 450 and 700 points. See the General Aristocrat/Patristocrat point guidance for more details.
Question Text:The question should clearly indicate that it is an Aristocrat with misspellings or grammar errors and provide the source of the phrase. For example:
Alexa severely misheard a phrase from <person> and then encoded it as an Aristocrat using a K1 alphabet. What did it come out as?
When one of <person's> manuscripts was automatically scanned and OCRed before converted to an Aristocrat using a K2 alphabet, there were quite a few mistakes. What was the final result?
Patristocrats should always be encoded with a K1 or K2 alphabet in order to keep them from being too difficult. It is also good to pick phrases with a very low Chi-Square Value to keep the problem from being too difficult.
Points:An Patristocrat with a hint should be worth between 450 and 650 points. See the General Aristocrat/Patristocrat point guidance for more details.
Question Text:The question should clearly indicate that it is an Patristocrat and provide the source of the phrase as well as a hint that reveals no more than 6 unique characters. For example:
A famous phrase from <person> has been encoded as a Patristocrat using a K1 alphabet. It starts with the letters ‘tomyf'. What did they say?
<person> was often heard to say the following phrase which has been encoded as a Patristocrat using a K2 alphabet. The sequence ‘you' appears four times in the original text. What did they say?
Patristocrats with no hint must be encoded with a K1 or K2 alphabet in order to keep them from being too difficult. It is also good to pick phrases with a very low Chi-Square Value to keep the problem from being too difficult.
Points:An Patristocrat without a hint should be worth between 500 and 700 points. See the General Aristocrat/Patristocrat point guidance for more details.
Question Text:The question should clearly indicate that it is an Patristocrat and provide the source of the phrase. For example:
A famous phrase from <person> has been encoded as a Patristocrat using a K1 alphabet. What did they say?
<person> was often heard to say the following phrase which has been encoded as a Patristocrat using a K2 alphabet. What did they say?
There should be a single one of these on the test. It should use a phrase about 25 characters long that doesn't have too many occurrences of the letter A in it, preferably with as large a variety of letters as possible… (e.g. The quick brown fox jumps over the lazy dog isn't actually bad).
Pick a value for a which is coprime with 26 (1,3,5,7,9,11,15,17,19,21,23 or 25). The actual value doesn't matter, but larger ones tend to be slightly harder. If you are generating tests for multiple regions, pick numbers that are near each other. I.e. 7, 9 and 11 would be good to have as equivalent a values.
Pick a value for b between 1 and 25 inclusive. Unlike a where the larger values become slightly harder, the value of b can truly be any number and be the same level of difficulty.
Setting Difficulty:There is very little variability in the difficulty other than the length of the string. Larger values of a are only slightly harder while the value of b has no real impact on the difficulty.
Points:100.
Question Text:The question should state to use the Affine Cipher and with the values of a and b for them to use (note that a and b are italicized). For example:
Decrypt the following cipher text which was encoded using the Affine Cipher with a=5 and b=9>.
There should be at most a single one of these on the test. It should use a phrase about 25 characters long that doesn't have too many occurrences of the letter A in it, preferably with as large a variety of letters as possible… (e.g. The quick brown fox jumps over the lazy dog isn't actually bad).
Pick a value for a which is coprime with 26 (1,3,5,7,9,11,15,17,19,21,23 or 25). The actual value doesn't matter, but larger ones tend to be slightly harder. If you are generating tests for multiple regions, pick numbers that are near each other. I.e. 7, 9 and 11 would be good to have as equivalent a values.
Pick a value for b between 1 and 25 inclusive. Unlike a where the larger values become slightly harder, the value of b can truly be any number and be the same level of difficulty.
Setting Difficulty:There is very little variability in the difficulty other than the length of the string. Larger values of a are only slightly harder while the value of b has no real impact on the difficulty.
Points:100.
Question Text:The question should state to use the Affine Cipher and include the phrase to encode along with the values of a and b for them to use (note that a and b are italicized). For example:
Encrypt the common phrase The quick brown fox jumps over the lazy dog using the Affine Cipher with a=5 and b=9.
There can be one of each Encrypt and Decrypt on the test. There are no restrictions on the phrase, although try to avoid a phrase with a lot of a's in it. I.e. An amazing aardvark allows all answers would be a poor choice because the letter a is trivial to encode. As this question is nominally worth two points per letter, a 50 letter phrase is ideal.
Additionally there needs to be a Key to encode it with. It should be 5 or 6 characters with no repeating letters and avoid the letter a as it causes a letter to map to itself. By setting the Block Size to the same as the length of the Key, the problem is much easier than with the default Block Size of 0 that keeps the original spacing. Setting the Block Size to a size other than the length of the Key increases the difficulty somewhat.
Note that for the Regional/Invitational events, the Key must be given as part of the question.
Setting Difficulty:The Block Size is the major contributor to the difficulty followed by the length of the phrase.
Points:100 for a Decode (approximately 2 points per letter), 120 for an Encode. If the Block Size is the same as the Key length subtract 20 points. If the Block Size is non-zero and different from the Key length, add 25 points.
Question Text:The question should indicate that the Vigenère Cipher is being used (don't forget the accented è), whether they are to Encode or Decode and the Key to use for it. It is generally nice to give the origin of the phrase if it is known. For example:
A phrase by <person> has been encoded using the Vigenère cipher with a code word of SLEPT. What does it say?
Using a keyword of HORSE, encode this famous quote by <person> using the Vigenère cipher.
There can be one of each Encrypt and Decrypt on the test. There are no restrictions on the phrase, although try to avoid a phrase with a lot of a's in it. I.e. An amazing aardvark allows all answers would be a poor choice because the letter a is trivial to encode. As this question is nominally worth two points per letter, a 50 letter phrase is ideal.
Additionally there needs to be a Key to encode it with. It should be 5 or 6 characters with no repeating letters and avoid the letter a as it causes a letter to map to itself. By setting the Block Size to the same as the length of the Key, the problem is much easier than with the default Block Size of 0 that keeps the original spacing. Setting the Block Size to a size other than the length of the Key increases the difficulty somewhat.
Note that for the Regional/Invitational events, the Key must be given as part of the question.
Setting Difficulty:The Block Size is the major contributor to the difficulty followed by the length of the phrase.
Points:100 for a Decode (approximately 2 points per letter), 120 for an Encode. If the Block Size is the same as the Key length subtract 20 points. If the Block Size is non-zero and different from the Key length, add 25 points.
Question Text:The question should indicate that the Porta Cipher is being used, whether they are to Encode or Decode and the Key to use for it. It is generally nice to give the origin of the phrase if it is known. For example:
A phrase by <person> has been encoded using the Porta cipher with a code word of SLEPT. What does it say?
Using a keyword of HORSE, encode this famous quote by <person> using the Porta cipher.
This is where the test writer can have a lot of fun. The phrase should be approximately 80-90 characters long and ideally should be one for which the ending can't necessarily be guessed once they have decoded the first half; it is important to make sure that they have to work the entire problem. There is little impact on the difficulty.
With the Words Baconian cipher which is the harder of the three options, it is important to pick a pattern for the letters mapping to A and B. Obviously the default with the tool of ABABAB… is the easiest and it is not recommended to use this for the test. There are lots of patterns which work (first half of the alphabet is A, second half is B). But there are some that don't work such as BABABA… which eliminates all vowels from being an A. Fortunately the tool tells you when the pattern picked doesn't have any words to match.
For the Letter for letter and Sequence Baconian ciphers it is possible to have multiple letters stand for A and B, but it is recommended to use symbols (which can be pasted into the fields). Having a variety of symbols which have potential overlap can make it harder. For example on the 2018 North Carolina State test, the key to the solution was that 'A' was represented by any arrow pointing down (e.g. ) and 'B' was represented by any arrow pointing up (e.g. ); so that the students had to figure out whether the direction of the arrow or the line was what indicated the difference.
Setting Difficulty:There are three factors which affect the difficulty. First is the choice of symbols to represent the Baconian. The harder to distinguish, the more points the question should be worth. Second is how much of a clue is provided. Lastly is the size of the grouping. By picking a Line Width which is not a multiple of 5, it ensures that the students have to carefully manage wrapping a group of 5 across a line boundary.
Points:200-400. A Letter for letter with a single substitution and Line Width which is multiple of 5 should be worth 200 points. A Words Baconian with a complex pattern and a couple letters of clues would be worth 400.
Question Text:The question should indicate that the Baconian Cipher is being used and the origin of the phrase if known and any clue. For example:
The following symbols encodes a phrase by <person> using a Baconian alphabet. What does it say?
The following strange headlines encodes a phrase by <person> using a Baconian alphabet. You have been told that it starts out with “SOME” What does it say?
The following odd symbols were found when a tomb was opened, but you recognized it as a prankster who scratched it on the wall using the Baconian alphabet. What does it say?
This will be one of the hardest questions on the test, but it is good to have in order to provide a challenge.
Pick a Spanish phrase which primarily consists of words which a second-year Spanish class would cover. Phrases which have both la and las present are good choices as well as phrases which contain y or cognates (Spanish words which are substantially like their English equivalent words such as ciencia, composición and básico) are also good. For a good source see https://www.realfastspanish.com/vocabulary/spanish-cognates). Although it isn't strictly necessary, try to avoid phrases which depend on accented characters. As with the approach for the English Aristocrats, pay attention to the frequency of letters. The tool automatically calculates the Chi-Square Value to verify the match:
| E | A | O | SNR | IL | DTUC | MP | BHQ | YVGÓÍ | FJZÁÉÑXÚKWÜ |
| 13% | 12% | 8% | 7% | 6% | 5% | 3% | 2% | 1% | - |
If the encoded string uses both N and Ñ, it is best to re-encode until you don't get them both to avoid confusion on the part of the teams. Although it is possible to get an encoding that doesn't use Ñ at all, it is perfectly fine to generate a question which has one. Having both both N and Ñ, increases the difficulty of the problem.
Setting Difficulty:The presence of cognates greatly reduces the difficulty. It is also expected that a K1 alphabet with an English key should be used. A K2 alphabet can be used, but it doesn't reduce the difficulty as much.
Points:600-700.
Question Text:The question should clearly indicate that it is a Spanish Xenocrypt and provide the source of the phrase (if known). It should also indicate the use of a K1 (or K2) alphabet with an English keyword. For example:
Solve this Xenocrypt which is a translation of a quote by <person> into Spanish and has been encoded with a K1 alphabet using an English keyword.
.
Points:150-600
Question Text:The question should indicate that they are to compute the decryption matrix using the Hill Cipher and provide the key. For example:
After solving the cryptarithm SEND+MORE=MONEY decode the phrase 9015 10992.
Generating CryptarithmsThere are several sites that allow for generation of cryptarithms including:
For Regional and Invitational competitions, only the Compute Decryption option is used for the Hill Cipher. For this there needs to be a 4 character phrase which corresponds to an invertible matrix. (https://en.wikipedia.org/wiki/Invertible_matrix). Fortunately, the tool will tell you if it is not invertible. There is also a list of known valid word keys at https://toebes.com/codebusters/HillKeys.html (which is linked to at the top of the tool) for both the 2x2. Note that there are other keys that can be used which are not words, it is more likely to be invertible if you use the odd letters B, D, F, H, L, N, R, T, X and Z. as they are odd and non-prime, but you can mix in some other letters. Just make sure that the keyword is not an inappropriate phrase. A total non-sense phrase is perfectly acceptable, but it helps the style of the test if it looks like a word.
for both 2x2 and 3x3 matrices, we can improve the likelihood that the determinant is invertible if half to three-quarters of the letters are odd;
Setting Difficulty:There is little variability in the difficulty although letters at the end of the alphabet generate larger numbers.
Points:100.
Question Text:The question should indicate that they are to compute the decryption matrix using the Hill Cipher and provide the key. For example:
Using a key of TEST compute the decryption matrix for a 2x2 Hill with a 26 character alphabet.
Details on picking a keyFor a 2x2 matrix we can be explicit. Since it is very likely that we will want either the 2nd or 3rd letter to be a vowel, The more useful advice would be that one or both of the 2nd and 3rd letters should be vowels, while both the first and last letters come from the set of odd letters listed above. This would guarantee that the determinant is odd, and then we only need to check to make sure it isn't 0 (mod 13), which means we would succeed with probability 12/13.
For a 3x3 matrix it isn't as easy, but if we ask for about half the letters to be odd (same set as before), then there is a good chance that the determinant will be odd. In fact, assuming random placement of the odd letters, the exact odds for each possible number of odd letters is as follows:
| 0 | 0.000 |
| 1 | 0.000 |
| 2 | 0.000 |
| 3 | 0.071 |
| 4 | 0.286 |
| 5 | 0.571 |
| 6 | 0.426 |
| 7 | 0.500 |
| 8 | 0.000 |
| 9 | 0.000 |
Basically, we want 5, 6, or 7 odd letters in the mix in order to have a decent shot at being invertible mod 2. If we are lucky, we may get by with 4 odd letters; with only 3 odd letters we need to be extremely lucky; and for any other number of odd letters, it is simply impossible.
The Morbit Cipher encodes text by first converting the plain text into morse code with the space between characters represented by an × and the space between words represented by two × characters. The resulting morse code is then broken into pairs of characters (adding an × at the end if necessary). The numbers 1-9 are randomly assigned to the unique pairs of characters (●●, ●–, ●×, –●, ––, –×, ×●, ×–, ××,). The pairs of morse characters are then replaced with the corresponding number to generate the final cipher string. Decoding is done by reversing the process.
Setting Difficulty:The dificulty is driven by the number of letters and the variety of morse code combined with which letters are chosen. Looking at the generated solving guide can help guide the question writing. Not telling them which digit corresponds to ×× increases the difficulty.
Points:100-150.
Question Text:The question should be around 40 characters.
Solve this quote from <person> which has been encoded using the Morbit Cipher. You are told that 2=●●, 4=●–, 6=●×, 9=–●, 1=––, and 7=–×
The Pollux Cipher encodes text by first converting the plain text into morse code with the space between characters represented by an × and the space between words represented by two × characters. The resulting morse code is then randomly assigned to digits (0-9) chosen to represent the morse characters: (●, –, ×) The pairs of morse characters are then replaced with the corresponding number to generate the final cipher string. Decoding is done by reversing the process. Note that because one or more digits may represent a morse character piece, the mapping can be somewhat random.
Setting Difficulty:The dificulty is driven by the number of letters and the variety of morse code combined with which letters are chosen. Looking at the generated solving guide can help guide the question writing. Not telling them all the Hint Digits which correspond to × increases the difficulty. Assigning more characters for one morse digit, thereby reducing another, also increases the difficulty.
Points:100-150.
Question Text:The question should be around 40 characters.
Solve this quote from <person> which has been encoded using the Pollux Cipher. You are told that 2,3=●, 4,7=–, 9,1=×
The Fractionated Morse Cipher encodes text by first converting the plain text into morse code with the space between characters represented by an × and the space between words represented by two × characters. The resulting morse code is then randomly assigned to letters chosen to represent the morse characters: (●, –, ×) The sets of morse characters are then replaced with the corresponding letter to generate the final cipher string. Decoding is done by reversing the process..
Setting Difficulty:The dificulty is driven by the number of letters and the variety of morse code combined with which letters are chosen. Looking at the generated solving guide can help guide the question writing. Not telling them all the Hint Digits which correspond to × increases the difficulty. Assigning more characters for one morse digit, thereby reducing another, also increases the difficulty.
Points:100-150.
Question Text:The question should be around 40 characters.
Solve this quote from <person> which has been encoded using the Fractionated Morse Cipher and a keyword. You are told that E=●–●; R=×●●; S=×●–; T=●●×.
The Cryptarithm ...
Setting Difficulty:The dificulty is driven by .....
Points:100-150.
Question Text:The problem should be in base 10.
Solve this Cryptarithm..
Pick a phrase which is approximately 80 characters long. The actual content has little impact on the difficulty. By default there are four encoding texts (Gettysburg address, Declaration of Independence, Constitution of United States of America and MAGNA CARTA (In Latin)) but they can be changed by going to https://toebes.com/codebusters/EditRunningKeys.html
Setting Difficulty:There is little variability in the difficulty other than the length. Encode is slightly harder than Decode.
Points:200-250. Approximately 3 points per letter.
Question Text:The question should indicate that the Running Key Cipher is being used and whether they are to Encode or Decode. If they are to Encode, it should indicate which encoding text to use. For example:
The following quote from <person> has been encoded using a running key cipher against a famous document. What does it say?
Encode what <person> said about <topic> using a running key cipher against the MAGNA CARTA.
There can be one of these on a State/National test. There are no restrictions on the phrase, although try to avoid a phrase with a lot of a's in it. I.e.An amazing aardvark allows all answers would be a poor choice because the letter A is trivial to decode. As this question is nominally worth four points per letter, a 50 letter phrase is ideal.
Additionally there needs to be a Key to encode it with. It should be 5 or 6 characters with no repeating letters and avoid the letter a as it causes a letter to map to itself. By setting the Block Size to the same as the length of the Key, the problem is much easier than with the default Block Size of 0 that keeps the original spacing. Setting the Block Size to a size other than the length of the Key increases the difficulty somewhat.
For the decoding clue, pick a word in the phrase which is at least 5 characters long, carefully count to determine the position in the encoded phrase as well as the encoded character.
Setting Difficulty:The length of the phrase is the major
Points:200-250. If the Block Size is 0, add 25 points. If the Block Size is non-zero and different from the Key length, add 50 points.
Question Text:The question should indicate that the Vigenère Cipher is being used (don't forget the accented è), the length of the Key and the plain text corresponding to some part of the phrase. It is generally nice to give the origin of the phrase if it is known. For example:
<person> once said this about <topic>. It has been encoded using the Vigenère cipher using a very common five letter word. You have been told that the 17th through the 22nd letters in the code (YMNCHU) actually is the word REASON. What does the message decode to?
There can be one of these on a State/National test. There are no restrictions on the phrase, although try to avoid a phrase with a lot of a's in it. I.e.An amazing aardvark allows all answers would be a poor choice because the letter A is trivial to decode. As this question is nominally worth four points per letter, a 50 letter phrase is ideal.
Additionally there needs to be a Key to encode it with. It should be 5 or 6 characters with no repeating letters and avoid the letter a as it causes a letter to map to itself. By setting the Block Size to the same as the length of the Key, the problem is much easier than with the default Block Size of 0 that keeps the original spacing. Setting the Block Size to a size other than the length of the Key increases the difficulty somewhat.
For the decoding clue, pick a word in the phrase which is at least 5 characters long, carefully count to determine the position in the encoded phrase as well as the encoded character.
Setting Difficulty:The length of the phrase is the major
Points:200-250. If the Block Size is 0, add 25 points. If the Block Size is non-zero and different from the Key length, add 50 points.
Question Text:The question should indicate that the Porta Cipher is being used, the length of the Key and the plain text corresponding to some part of the phrase. It is generally nice to give the origin of the phrase if it is known. For example:
<person> once said this about <topic>. It has been encoded using the Porta cipher using a very common five letter word. You have been told that the 17th through the 22nd letters in the code (YMNCHU) actually is the word REASON. What does the message decode to?
There are several variants of the RSA question. The Safe Combo and Exchange Keys options test the knowledge of the RSA algorithm by presenting randomized order of RSA components with randomized values. The Quantum Computer and Compute d options test using the extended Euclidean Algorithm compute the inverse. Decode Year tests using Rapid Modular Exponentiation to compute the mod of a prime raised to a large factor. All of these dynamically generate and update the question text with all of the computed values.
For the Safe Combo
and Exchange Keys choices, it is good to pick values for the Prime Digits and Safe Combination Digits/Data Digits so that the generated RSA keys and numbers provide lots of similar digits. The Randomize button will regenerate the values. Note that the student names are also randomized, picking from the names which were common around the turn of this century.For the other options, click on the Randomize button until it generates a problem which has the desired level of difficulty.
Setting Difficulty:The choice of question type and the size of the digits in the key are the major impact on difficulty.
Points:Safe Combo: 100 points
Quantum Computer, Compute d: 15 points per step of the extended Euclidean Algorithm (shown by the tool) with a minimum of 120 points.
Decode Year:15 points per 1 bit and 5 points per 0 bit in the binary representation of d (shown by the tool) with a minimum of 120 points.
Exchange Keys:120 points
Question Text:The question text should be automatically generated, but can be edited. Note that the tool keeps track of all the edits so that if it generates new values, the edits are kept in place.
Pick a phrase to encode. As a rule of thumb for a 2x2 matrix, every pair of letters is worth 20 points. Ideally you want an odd length string to force them to use a padding Z. For a 3x3 matrix, every group of three letters is worth 25 points. It is important to pick a phrase which is not a multiple of 3 characters long so that they must add the appropriate number of padding characters.
Pick an encoding key. For a 2x2 it is 4 characters long and for a 3x3 it is 9 characters long. This is probably the hardest part to making the test as the matrix has to be invertible (https://en.wikipedia.org/wiki/Invertible_matrix). Fortunately, the tool will tell you if it is not invertible. There is also a list of known valid keys at https://toebes.com/codebusters/HillKeys.html for both the 2x2 and 3x3 encodings. In general, it is more likely to be invertible if you use the letters B, D, F, H, L, N, R, T, X and Z. as they are odd and non-prime, but you can mix in some other letters. Just make sure that the keyword is not an inappropriate phrase. A total non-sense phrase is perfectly acceptable, but it helps the style of the test if it looks like a word.
 The other factor is the number of characters for them to encode.
Points:160-250.
Question Text:The question should indicate whether they are to Encode or Decode using the Hill Cipher with a 26 character alphabet along with the Key. For example:
Using a key of CARNIVALS encode the string ASTROBIOLOGIST using the Hill Cipher with a 26-character alphabet.
Using a key of LOST decode the string QNFWNQNAFCCT using the Hill Cipher with a 26 character alphabet.
There should be a single one of these on the State/National test. It should use a phrase about 25 characters long that doesn't have too many occurrences of the letter a in it, preferably with as large a variety of letters as possible. (e.g. The quick brown fox jumps over the lazy dog isn't actually bad).
Pick a value for a which is coprime with 26 (1,3,5,7,9,11,15,17,19,21,23 or 25). The actual value doesn't matter, but larger ones tend to be slightly harder. If you are generating tests for multiple regions, pick numbers that are near each other. I.e. 7, 9 and 11 would be good to have as equivalent a values.
Pick a value for b between 1 and 25 inclusive. Unlike a where the larger values become slightly harder, the value of b can truly be any number and be the same level of difficulty.
Setting Difficulty:There is very little variability in the difficulty other than the length of the string. Larger values of a are only slightly harder while the value of b has no real impact on the difficulty. Picking the two mapping letters so that they are toward the end of the alphabet also increase the difficulty. Having phrases which use the letters G, W, Y, B, V, K, X, J, Q, and Z increase the difficulty slightly.
Points:140-240. A good rule of thumb is 6 points per character plus 6 points for each of the letters G, W, Y, B, V, K, X, J, Q, and Z that are used.
Question Text:The question should state to use the Affine Cipher and the indication of what two letters map to. It should not give the values of a or b. For example:
A message from <person> encrypted with the Affine Cipher using an alphabet of 26 characters has been received. You have been told that the first two letters are TH. With that knowledge, what does this message say?
The Dancing Men Cipher is one of the easiest Ciphers for students to decode because the alphabet is fixed. The letter E will always be represented by a person with both arms up in the air and both legs split. There can be a couple of Dancing Men Cipher questions on a test.
Setting Difficulty:The only factor for difficulty with this question is in the number of characters in the phrase. The choice of letters/words/word length has no impact on the difficulty. In general the question should be approximately 100 characters.
Points:A DancingMen Cipher Decode should be worth 100 points (approximately 1 point per character in the Plain Text).
Question Text:The question should clearly indicate that cipher has been encoded using the Dancing Men Cipher as well as the origin of the phrase or quote. It should not include a hint. Some examples:
Solve this quote from <person> which has been encoded with the Dancing Men Cipher.
The PigPen/Masonic Cipher is one of the easiest Ciphers for students to decode because the alphabet is fixed. The letter E will always be represented by a square. There can be a couple of PigPen Cipher questions on a test.
Setting Difficulty:The only factor for difficulty with this question is in the number of characters in the phrase. The choice of letters/words/word length has no impact on the difficulty. In general the question should be approximately 100 characters.
Points:A PigPen Cipher Decode should be worth 100 points (approximately 1 point per character in the Plain Text).
Question Text:The question should clearly indicate that cipher has been encoded using the PigPen Cipher as well as the origin of the phrase or quote. It should not include a hint. Some examples:
Solve this quote from <person> which has been encoded with the PigPen Cipher.
The Tap Code is is a simple cipher to decode because the mapping is is fixed. A single dot followed by a single dot will always stand for the letter a. What makes it slightly more challenging is that the students need to memorize the table or just know how to recreate it on the test. There should be one or two Tap Code Cipher questions on a test.
Setting Difficulty:The two factors for difficulty with this question is in the number of characters in the phrase and how far down in the alphabet the letters are. The further in the alphabet, the more characters that they have to count.
Points:A Tap Code Cipher should be worth 100 points.
Question Text:The question should clearly indicate that cipher has been encoded using the Tap Code Cipher. It should not include a hint. Some examples:
Solve this quote from <person> which has been encoded with the Tap Code Cipher.
The rail fence cipher encodes messages by 'zig-zagging' the letters along 2 to 6 'rails'. The cipher can be decoded by brute force; trial and error; or procedurally by applying some simple math and understanding spacing of characters in the rail patterns.
Setting Difficulty:The difficulty gets slightly higher with more rails because it requires more diligence when solving.
Points:100-150. A rule of thumb: 2 rails = 100; 3 rails = 110; 4 rails = 120; 5 rails = 130; 6 rails = 140 points. 150 points for when only the range of rails is given.
Question Text:The question should be around 75 characters.
Solve this quote from <person> which has been encoded with the rail fence cipher. The message was encoded with <rail count> rails.
The Morbit Cipher encodes text by first converting the plain text into morse code with the space between characters represented by an × and the space between words represented by two × characters. The resulting morse code is then broken into pairs of characters (adding an × at the end if necessary). The numbers 1-9 are randomly assigned to the unique pairs of characters (●●, ●–, ●×, –●, ––, –×, ×●, ×–, ××,). The pairs of morse characters are then replaced with the corresponding number to generate the final cipher string. Decoding is done by reversing the process.
Setting Difficulty:The dificulty is driven by the number of letters and the variety of morse code combined with which letters are chosen. Looking at the generated solving guide can help guide the question writing. Not giving them Hint Digits which exposes the digit corresponding to ×× increases the difficulty.
Points:150-200.
Question Text:The question should be around 40 characters.
Solve this quote from <person> which has been encoded using the Morbit Cipher. You are told that the first four letters are SOME.
The Pollux Cipher encodes text by first converting the plain text into morse code with the space between characters represented by an × and the space between words represented by two × characters. The resulting morse code is then randomly assigned to digits (0-9) chosen to represent the morse characters: (●, –, ×) The pairs of morse characters are then replaced with the corresponding number to generate the final cipher string. Decoding is done by reversing the process. Note that because one or more digits may represent a morse character piece, the mapping can be somewhat random.
Setting Difficulty:The dificulty is driven by the number of letters and the variety of morse code combined with which letters are chosen. Looking at the generated solving guide can help guide the question writing. Not giving them Hint Digits which exposes all the digits corresponding to × increases the difficulty. Assigning more characters for one morse digit, thereby reducing another, also increases the difficulty.
Points:150-200.
Question Text:The question should be around 40 characters.
Solve this quote from <person> which has been encoded using the Pollux Cipher. You are told that the first four letters are SOME.


|
motley-php
Useful PHP utility classes and programs
|
Support message communications with end-users of command line utilities. More...
Public Member Functions | |
| __construct () | |
| Class instance constructor. More... | |
| __destruct () | |
| Class instance destructor. More... | |
| infoMessage (string $message) | |
| Send an informational message to the end user for display or filtering. More... | |
| verboseMessage (string $message) | |
| Send a verbose info message to the end user for display or filtering. More... | |
| warningMessage (string $message) | |
| Send a warning message to the end user for display or filtering. More... | |
| errorMessage (string $message) | |
| Send an error message to the end user for display or filtering. More... | |
| dieMessage (string $message) | |
| Send a die message to the end user for display or filtering. More... | |
| debugMessage (string $message) | |
| Send a debug message to the end user for display or filtering. More... | |
| verboseDebugMessage (string $message) | |
| Send a verbose debug message to the end user for display or filtering. More... | |
| setDisplayLevel (string $msgType, int $lvl) | |
| Set the maximum displayed level of a message type. More... | |
| getDisplayLevel (string $msgType) | |
| Get the maximum displayed level of a message type. More... | |
| setErrorExitLevel (int $lvl) | |
| Set the minimum error level that also causes program termination. More... | |
| getErrorExitLevel () | |
| Get the minimum error level that also causes program termination. More... | |
| setOutputDestination (string $msgType, string $dest) | |
| Set the new output destination file for a message type. More... | |
| getOutputDestination (string $msgType) | |
| Get the output destination file for a message type. More... | |
Data Fields | |
| const | VERBO_MSG = 'VERBO' |
| Informational/verbose messages. More... | |
| const | ERROR_MSG = 'ERROR' |
| Error/warning messages. More... | |
| const | DEBUG_MSG = 'DEBUG' |
| Debug messages. More... | |
| const | ERROR_NONE_LVL = 0 |
| Error level for no error user messages. More... | |
| const | ERROR_DIE_LVL = 1 |
| Error level for die messages. More... | |
| const | ERROR_ERROR_LVL = 2 |
| Error level for error user messages. More... | |
| const | ERROR_ALL_LVL = 2 |
| Error level for error user messages. More... | |
| const | ERROR_WARNING_LVL = 3 |
| Error level for warning user messages. More... | |
| const | VERBOSITY_NONE_LVL = 0 |
| Verbosity level for no informational user messages. More... | |
| const | VERBOSITY_LOW_LVL = 1 |
| Verbosity level for brief info user messages. More... | |
| const | VERBOSITY_HIGH_LVL = 2 |
| Verbosity level for detailed info user messages. More... | |
| const | VERBOSITY_ALL_LVL = 2 |
| Verbosity level for detailed info user messages. More... | |
| const | DEBUG_NONE_LVL = 0 |
| Level for no debug messages. More... | |
| const | DEBUG_LOW_LVL = 1 |
| Level for brief debug messages. More... | |
| const | DEBUG_HIGH_LVL = 2 |
| Level for detailed debug messages. More... | |
| const | DEBUG_ALL_LVL = 2 |
| Level for detailed debug messages. More... | |
| const | DEFAULT_ERROR_DEST = 'php://stderr' |
| Default error message destination. More... | |
| const | DEFAULT_VERBO_DEST = 'php://stdout' |
| Default info message destination. More... | |
| const | DEFAULT_DEBUG_DEST = 'php://stderr' |
| Default debug message information. More... | |
Protected Member Functions | |
| genericMsg (string $msgType, string $prefix, string $msg, int $lvl) | |
| Generic user message display. More... | |
Protected Attributes | |
| $minDieLvl = self::ERROR_DIE_LVL | |
| Min err lvl which exits program. More... | |
| $msgTypes = array() | |
| Valid message types. More... | |
| $maxDispLvl = array() | |
| Max message levels to display. More... | |
| $msgDest = array() | |
| Message file destinations. More... | |
| $msgFH = array() | |
| Message file handles. More... | |
| $chkE = null | |
| Motley::Checker error instance. More... | |
| $chkW = null | |
| Motley::Checker warning instance. More... | |
Support message communications with end-users of command line utilities.
Definition at line 13 of file CommandMessenger.php.
| Motley\CommandMessenger::__construct | ( | ) |
Class instance constructor.
Definition at line 43 of file CommandMessenger.php.
| Motley\CommandMessenger::__destruct | ( | ) |
Class instance destructor.
Definition at line 66 of file CommandMessenger.php.
|
protected |
Generic user message display.
| $msgType | - The type of message. See class constants VERBO_MSG, ERROR_MSG, DEBUG_MSG. |
| $prefix | - String prepended to $msg. |
| $msg | - The text message to display. |
| $lvl | - Message level for possible filtering. |
Definition at line 81 of file CommandMessenger.php.
| Motley\CommandMessenger::infoMessage | ( | string | $message | ) |
Send an informational message to the end user for display or filtering.
| $message | - The message. |
Definition at line 116 of file CommandMessenger.php.
| Motley\CommandMessenger::verboseMessage | ( | string | $message | ) |
Send a verbose info message to the end user for display or filtering.
| $message | - The message. |
Definition at line 125 of file CommandMessenger.php.
| Motley\CommandMessenger::warningMessage | ( | string | $message | ) |
Send a warning message to the end user for display or filtering.
| $message | - The message. |
Definition at line 134 of file CommandMessenger.php.
| Motley\CommandMessenger::errorMessage | ( | string | $message | ) |
Send an error message to the end user for display or filtering.
By default, this will also terminate the program unless the setErrorExitLevel() function is used.
| $message | - The message. |
Definition at line 145 of file CommandMessenger.php.
| Motley\CommandMessenger::dieMessage | ( | string | $message | ) |
Send a die message to the end user for display or filtering.
By default, this will also terminate the program unless the setErrorExitLevel() function is used.
| $message | - The message. |
Definition at line 156 of file CommandMessenger.php.
| Motley\CommandMessenger::debugMessage | ( | string | $message | ) |
Send a debug message to the end user for display or filtering.
| $message | - The message. |
Definition at line 165 of file CommandMessenger.php.
| Motley\CommandMessenger::verboseDebugMessage | ( | string | $message | ) |
Send a verbose debug message to the end user for display or filtering.
| $message | - The message. |
Definition at line 174 of file CommandMessenger.php.
| Motley\CommandMessenger::setDisplayLevel | ( | string | $msgType, |
| int | $lvl | ||
| ) |
Set the maximum displayed level of a message type.
| $msgType | - The type of message. Must be one of the class constants VERBO_MSG, ERROR_MSG, or DEBUG_MSG. |
| $lvl | - The maximum display level. See the class constants for specific values to use. |
Definition at line 186 of file CommandMessenger.php.
| Motley\CommandMessenger::getDisplayLevel | ( | string | $msgType | ) |
Get the maximum displayed level of a message type.
| $msgType | - The type of message. Must be one of the class constants VERBO_MSG, ERROR_MSG, or DEBUG_MSG. |
Definition at line 201 of file CommandMessenger.php.
| Motley\CommandMessenger::setErrorExitLevel | ( | int | $lvl | ) |
Set the minimum error level that also causes program termination.
| $lvl | - The minimum error level to also cause program exit. A non-zero exit status will be used. See the class constants for: ERROR_NONE_LVL, ERROR_DIE_LVL, ERROR_ERROR_LVL, ERROR_WARNING_LVL. |
Definition at line 215 of file CommandMessenger.php.
| Motley\CommandMessenger::getErrorExitLevel | ( | ) |
Get the minimum error level that also causes program termination.
Definition at line 223 of file CommandMessenger.php.
| Motley\CommandMessenger::setOutputDestination | ( | string | $msgType, |
| string | $dest | ||
| ) |
Set the new output destination file for a message type.
| $msgType | - The type of message. Must be one of the class constants VERBO_MSG, ERROR_MSG, or DEBUG_MSG. |
| $dest | - The output destination file. See the class constants for default values. |
Definition at line 233 of file CommandMessenger.php.
| Motley\CommandMessenger::getOutputDestination | ( | string | $msgType | ) |
Get the output destination file for a message type.
| $msgType | - The type of message. Must be one of the class constants VERBO_MSG, ERROR_MSG, or DEBUG_MSG. |
Definition at line 253 of file CommandMessenger.php.
| const Motley\CommandMessenger::VERBO_MSG = 'VERBO' |
Informational/verbose messages.
Definition at line 14 of file CommandMessenger.php.
Referenced by Motley\Test\CommandMessengerTest\testEndUserMessaging().
| const Motley\CommandMessenger::ERROR_MSG = 'ERROR' |
Error/warning messages.
Definition at line 15 of file CommandMessenger.php.
Referenced by Motley\Test\CommandMessengerTest\testEndUserMessaging().
| const Motley\CommandMessenger::DEBUG_MSG = 'DEBUG' |
Debug messages.
Definition at line 16 of file CommandMessenger.php.
Referenced by Motley\Test\CommandMessengerTest\testEndUserMessaging().
| const Motley\CommandMessenger::ERROR_NONE_LVL = 0 |
Error level for no error user messages.
Definition at line 17 of file CommandMessenger.php.
Referenced by Motley\Test\CommandMessengerTest\testEndUserMessaging().
| const Motley\CommandMessenger::ERROR_DIE_LVL = 1 |
Error level for die messages.
Definition at line 18 of file CommandMessenger.php.
Referenced by Motley\Test\CommandMessengerTest\testEndUserMessaging(), and Motley\Test\CommandMessengerTest\testSetGetErrorExitLevel().
| const Motley\CommandMessenger::ERROR_ERROR_LVL = 2 |
Error level for error user messages.
Definition at line 19 of file CommandMessenger.php.
Referenced by Motley\Test\CommandMessengerTest\testSetGetErrorExitLevel().
| const Motley\CommandMessenger::ERROR_ALL_LVL = 2 |
Error level for error user messages.
Definition at line 20 of file CommandMessenger.php.
Referenced by Motley\Test\CommandMessengerTest\testEndUserMessaging().
| const Motley\CommandMessenger::ERROR_WARNING_LVL = 3 |
Error level for warning user messages.
Definition at line 21 of file CommandMessenger.php.
| const Motley\CommandMessenger::VERBOSITY_NONE_LVL = 0 |
Verbosity level for no informational user messages.
Definition at line 22 of file CommandMessenger.php.
Referenced by Motley\Test\CommandMessengerTest\testEndUserMessaging().
| const Motley\CommandMessenger::VERBOSITY_LOW_LVL = 1 |
Verbosity level for brief info user messages.
Definition at line 23 of file CommandMessenger.php.
| const Motley\CommandMessenger::VERBOSITY_HIGH_LVL = 2 |
Verbosity level for detailed info user messages.
Definition at line 24 of file CommandMessenger.php.
| const Motley\CommandMessenger::VERBOSITY_ALL_LVL = 2 |
Verbosity level for detailed info user messages.
Definition at line 25 of file CommandMessenger.php.
Referenced by Motley\Test\CommandMessengerTest\testEndUserMessaging().
| const Motley\CommandMessenger::DEBUG_NONE_LVL = 0 |
Level for no debug messages.
Definition at line 26 of file CommandMessenger.php.
Referenced by Motley\Test\CommandMessengerTest\testEndUserMessaging().
| const Motley\CommandMessenger::DEBUG_LOW_LVL = 1 |
Level for brief debug messages.
Definition at line 27 of file CommandMessenger.php.
| const Motley\CommandMessenger::DEBUG_HIGH_LVL = 2 |
Level for detailed debug messages.
Definition at line 28 of file CommandMessenger.php.
| const Motley\CommandMessenger::DEBUG_ALL_LVL = 2 |
Level for detailed debug messages.
Definition at line 29 of file CommandMessenger.php.
Referenced by Motley\Test\CommandMessengerTest\testEndUserMessaging().
| const Motley\CommandMessenger::DEFAULT_ERROR_DEST = 'php://stderr' |
Default error message destination.
Definition at line 30 of file CommandMessenger.php.
| const Motley\CommandMessenger::DEFAULT_VERBO_DEST = 'php://stdout' |
Default info message destination.
Definition at line 31 of file CommandMessenger.php.
Referenced by Motley\Test\CommandMessengerTest\testEndUserMessaging().
| const Motley\CommandMessenger::DEFAULT_DEBUG_DEST = 'php://stderr' |
Default debug message information.
Definition at line 32 of file CommandMessenger.php.
|
protected |
Min err lvl which exits program.
Definition at line 34 of file CommandMessenger.php.
|
protected |
Valid message types.
Definition at line 35 of file CommandMessenger.php.
|
protected |
Max message levels to display.
Definition at line 36 of file CommandMessenger.php.
|
protected |
Message file destinations.
Definition at line 37 of file CommandMessenger.php.
|
protected |
Message file handles.
Definition at line 38 of file CommandMessenger.php.
|
protected |
Motley::Checker error instance.
Definition at line 39 of file CommandMessenger.php.
|
protected |
Motley::Checker warning instance.
Definition at line 40 of file CommandMessenger.php.


Vijay Kumar
I'm India based front-end developer focused on crafting
clean & user-friendly experience
Contact at<PHONE_NUMBER>) or Drop a mail<EMAIL_ADDRESS>My Skills
HTML 4/5
CSS 3/4
SCSS
Bootstrap 3/4
Zurb Foundation
Material UI
Javascript/JQuery
ES 6/7/8
Redux
ReactJs
AngularJs 1
VueJs


As far as Themes will be updated from time to time, there should be an update function in BBlog for the Theme Switcher, cause at the moment users aren't able to add themes themself.
greetz DirtY
BrainFooLong
Administrator
Right and that is good so.
Think about everybody out there able to add their own, holy sh...
Themes must be sended to me - Thats the only way to get implemented into BBLog.
Than - If you already have a working theme in BBLog you get access to online theme updater.


Description
An Interlocked Operation
is a function template whose
instantiations provide guarantees about atomicity and order of visibility
of read and write operations with respect to multiple threads. Semantics
for such operations may be specified by the programmer at compile-time
via explicit template arguments.
In order to be considered a valid Interlocked Operation
,
given the variable definitions below, the following expressions must be
well-formed and have the indicated effects.
Notation
-
name
-
An
Interlocked Operation
. -
S
-
An
Interlocked Semantic Type
. -
args
-
The argument list (if any) for the
Interlocked Operation
.
Expression Requirements
Table 1. Interlocked Operation Requirements
|
Expression |
Pre/Post-Condition |
|---|---|
|
|
Performs the operation with the default semantics as specified for
that operation. Note: Currently, all interlocked operations
in this library default to |
|
|
Performs the operation with the specified semantics. |
Example
The following example uses multiply_assign
,
which is a model of Interlocked Operation
that multiplies
the first argument by the second argument and stores the result back into
the first argument. The result of the call is the value of the first argument
prior to the operation being performed.
//Bring in the multiply_assign operation (a valid Interlocked Operation). #include <boost/act/interlocked/multiply_assign.hpp> // Bring in interlocked integer types. #include <boost/act/interlocked/integer.hpp> /* ... */ int main() { using namespace ::boost::act::interlocked; // Create an interlocked integer. int_fast32_t shared_integer = 2; /* ... (code for thread creation not shown for simplicity) ... */ // Atomically multiply shared_integer by 4 and store the result back to // shared_integer. Default semantics are used (in this case, the default is // acq_rel, as noted in the documentation for multiply_assign). multiply_assign( shared_integer, 4 ); // Perform a multiply_assign operation with unordered semantics. multiply_assign< unordered >( shared_integer, 2 ); // Perform a multiply_assign operation with acquire semantics. multiply_assign< acquire >( shared_integer, 3 ); /* ... */ // Perform a multiply_assign operation explicitly with default semantics. multiply_assign< default_ >( shared_integer, 3 ); }


{% load static %}
All Copyrights Reserved by KOWI LIFESTYLES
Already Booked! Please Choose Another Time


Inputs/Outputs
-
IO data and metadata are listed here.
Add or refresh IO with the buttons below, and edit the IO in-place.
Refresh
Add IO?
Select details for IO to add
-
Outputs
- View/Edit Interfaces
outputname
-
Inputs
-
NameIDGPIO1InterfaceGPIOType18Address18
- View/Edit Interfaces


This is the API specification for Performetrics.
Performetrics is a library that provides convenient
objects to process the elapsed time spent by the Java Virtual Machine
running your application code. It was carefully designed to offer great
value in terms of performance and usability, as well as the capability
to collect data from multiple time sources with a single method call.
The following counter types are supported:
-
Wall-clock time: the elapsed time experienced by
the user waiting for a task to complete (a metric to evaluate the
real user experience)
-
CPU time: the total time spent using a CPU for the
current thread
-
User time: the total CPU time that the current
thread has executed in user mode, i.e., the time spent running
current thread's code
-
System time: the time spent by the OS kernel to
execute all the basic/system-level operations on behalf of your
application, such as context switching, resource allocation, etc.


This is an interactive demo of Millstone.
Millstone is a distributed bioinformatics software platform designed to facilitate genome engineering for synthetic biology. Millstone automates iterative design, analysis, and debugging for projects involving hundreds of bacterial genomes.
This demo server is contains 18 of the 76 genomes from the Genomically Recoded Organism project, also known as rE. coli. The genomes have already been aligned, and variants have been called and annotated. You can compare, visualize, and explore the effects of both the designed and unintended variants within them.
Uploading samples, performing new alignments, and creating and manipulating variant sets are all disabled for this demo.
Finally, this is an alpha build. There will be bugs.


Fishing Guild Member Galba:
Rainbow Springs is a fishing heaven! There's no place like it.
Not only are the fish large and fat, but several fisherman have even fished up a Clan Hall War Decree. Before you start fishing, let me know if you need any gear or have anything to sell.
Ask how to fish.
Fishing Contest
Learn fishing skill.
Buy/Sell/Refund.
Sell fish.
View information about the local lord and tax rate.
Quest


func New(directory string, metricsProvider metrics.Provider) blockledger.Factory
New creates a new ledger factory
FileLedger is a struct used to interact with a node's ledger
type FileLedger struct {
// contains filtered or unexported fields
}
func NewFileLedger(blockStore FileLedgerBlockStore) *FileLedger
NewFileLedger creates a new FileLedger for interaction with the ledger
func (fl *FileLedger) Append(block *cb.Block) error
Append a new block to the ledger
func (fl *FileLedger) Height() uint64
Height returns the number of blocks on the ledger
func (fl *FileLedger) Iterator(startPosition *ab.SeekPosition) (blockledger.Iterator, uint64)
Iterator returns an Iterator, as specified by an ab.SeekInfo message, and its starting block number
FileLedgerBlockStore defines the interface to interact with deliver when using a file ledger
type FileLedgerBlockStore interface { AddBlock(block *cb.Block) error GetBlockchainInfo() (*cb.BlockchainInfo, error) RetrieveBlocks(startBlockNumber uint64) (ledger.ResultsIterator, error) }


Package algorithms.heapsAndPQs
Class YFastTrie
- java.lang.Object
-
- algorithms.heapsAndPQs.YFastTrie
-
public class YFastTrie extends java.lang.Object
from wikipedia https://en.wikipedia.org/wiki/Y-fast_trie a y-fast trie is a data structure for storing integers from a bounded domain. It supports exact and predecessor or successor queries in time O(log log M), using O(n) space, where n is the number of stored values and M is the number of bits of the maximum value in the domain. The structure was proposed by Dan Willard in 1982[1] to decrease the O(n log M) space used by an x-fast trie. The Y-Fast trie has the ordered associative array operations + successor and predecessor. Find(k): find the value associated with the given key. runtime complexity is O(log log(M)) Successor(k): find the key/value pair with the smallest key larger than or equal to the given key. runtime complexity is O(log log(M)) Predecessor(k): find the key/value pair with the largest key less than or equal to the given key. runtime complexity is O(log log(M)) Insert(k, v): insert the given key/value pair. runtime complexity is O(log log(M)) Delete(k): remove the key/value pair with the given key. runtime complexity is O(log log(M)) NOTE that one may need to use the object heap size estimator before using this on a large number of objects and compare the result to the available heap memory. long totalMemory = Runtime.getRuntime().totalMemory(); MemoryMXBean mbean = ManagementFactory.getMemoryMXBean(); long heapUsage = mbean.getHeapMemoryUsage().getUsed(); long avail = totalMemory - heapUsage; first implemented in project https://github.com/nking/curvature-scale-space-corners-and-transformations w/ Copyright (c) 2014 Climb With Your Feet and using The MIT License (MIT) then moved to this shared library project which has the same copyright- Author:
- nichole
-
-
Field Summary
Fields Modifier and Type Field Description protected int
n
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
add(int node)
runtime complexity is roughly O(log_2(wBits)).static long[]
estimateSizeOnHeap(int numberOfEntries, int maxNumberOfBits)
estimate the size that an instance of YFastTrieLong with n added entries, maxNumberOfBits, and use binSzModel would occupy in heap space in Bytes.int
extractMaximum()
runtime complexity is roughly O(log_2(wBits)).int
extractMinimum()
runtime complexity is roughly O(log_2(wBits)).int
find(int node)
runtime complexity is roughly O(log_2(wBits)).protected int
getBinSz()
protected java.util.TreeMap<java.lang.Integer,java.lang.Integer>
getTreeMap(int index)
int
maximum()
runtime complexity is roughly O(log_2(wBits)).int
minimum()
runtime complexity is roughly O(log_2(wBits)).int
predecessor(int node)
runtime complexity is roughly O(log_2(wBits)).boolean
remove(int node)
runtime complexity is roughly O(log_2(wBits)).int
size()
get the number of items stored in the trie.int
successor(int node)
runtime complexity is roughly O(log_2(wBits)).
-
-
-
Method Detail
-
getTreeMap
protected java.util.TreeMap<java.lang.Integer,java.lang.Integer> getTreeMap(int index)
- Parameters:
index
-- Returns:
-
add
public boolean add(int node)
runtime complexity is roughly O(log_2(wBits)).- Parameters:
node
- a number .geq. 0 and having bit length less than or equal to w.- Returns:
- true if node was successfully added to this yfasttrie
-
remove
public boolean remove(int node)
runtime complexity is roughly O(log_2(wBits)).- Parameters:
node
- node to remove- Returns:
- true if node was found and removed
-
find
public int find(int node)
runtime complexity is roughly O(log_2(wBits)).- Parameters:
node
- node to find in this yfasttrie- Returns:
- returns node if found, else -1
-
predecessor
public int predecessor(int node)
runtime complexity is roughly O(log_2(wBits)).- Parameters:
node
- node whose predecessor must be returned- Returns:
- value preceding node, else -1 if there is not one
-
successor
public int successor(int node)
runtime complexity is roughly O(log_2(wBits)).- Parameters:
node
- node whose successor must be found- Returns:
- the successor of node, else -1 if not found
-
minimum
public int minimum()
runtime complexity is roughly O(log_2(wBits)).- Returns:
- minimum, else -1 if empty
-
maximum
public int maximum()
runtime complexity is roughly O(log_2(wBits)).- Returns:
- maximum, else -1 if empty
-
extractMinimum
public int extractMinimum()
runtime complexity is roughly O(log_2(wBits)).- Returns:
- minumum, else -1 if empty
-
extractMaximum
public int extractMaximum()
runtime complexity is roughly O(log_2(wBits)).- Returns:
- maximum, else -1 if empty
-
size
public int size()
get the number of items stored in the trie. runtime complexity is O(1).- Returns:
- number of items in the trie.
-
getBinSz
protected int getBinSz()
- Returns:
-
estimateSizeOnHeap
public static long[] estimateSizeOnHeap(int numberOfEntries, int maxNumberOfBits)
estimate the size that an instance of YFastTrieLong with n added entries, maxNumberOfBits, and use binSzModel would occupy in heap space in Bytes. NOTE: there are some varying components to estimating the memory that depend upon the properties of the numbers inserted. For example:-- xft is an XFastTrie instantiated with maxNumberOfBits. It will have at most, * nBins number of entries, where nBins is determined by the BinSizeModel. In addition to the number of inserted items (which is only one per bin of numberOfEntries), there will be some undetermined number of prefix nodes created in the process. A factor of 5 more is assumed here to over estimate the total number of trie nodes that includes the internal prefix nodes. -- THE LOGIC is still in progress to determine an upper and lower limit to estimate the number of populated nBins w/o knowing properties of the numbers, such as whether they are sequential, or have large gaps, etc. -- xftReps is a hashMap with same number of inserts as xft, so has the same need for an upper and lower estimate.
- Parameters:
numberOfEntries
- amount of space for this object's instance with n entries in Bytes on the heap.maxNumberOfBits
- all entries must have bit lengths .lte. this- Returns:
- array with 2 estimates, (1) estimate using all bins and a factor of 5 for creating trie prefix nodes, (2) estimate from using 1/4 of the bins and a factor of 3 for creating the trie prefix nodes.
-
-


Buy a Desktop Computer at Great Deal Prices
by Review TeamDesktops serve a range of purposes and many computer users still prefer them to laptops and tablets. In some cases, the users may be playing games on their PCs and may not get the same experience in other devices. It also depends on the combination of the CPU, good graphics and a good monitor.
Dell Wireless Desktop Computer Package (Renewed)
This refurbished Dell wireless desktop computer is fitted with an Intel Core i5 processor. The quad-core processor gets 8 GB DDR3 RAM support and 1 TB internal storage. The package includes two 19-inch LCD monitors. The Periphio wireless technology lets you connect the desktop to the internet. After refurbishing the desktop, the latest version of the Windows 10 OS has been loaded.
This refurbished Dell wireless desktop computer is being sold at $215, less by $23 than its earlier price of $238.
Dell Optiplex 990 Desktop Computer Package (Renewed)
This reworked Dell Optiplex 990 desktop computer is fitted with a quad-core Intel Core i5 CPU that clocks a speed of 3.1 GHz. 16 GB DDR3 RAM supports the processor with an internal storage memory of 2 TB. The package includes a DVD-RW Drive, a 20-inch LCD monitor, a keyboard and a mouse. This Dell desktop can be wirelessly connected to the internet. Though there is only one monitor supplied with this desktop, you can connect more if needed. Windows 10 OS is pre-installed. Office 365 and antivirus software can be downloaded directly from the Windows App Store.
This reworked Dell Optiplex 990 desktop computer package is available currently at a deal price of $269.97 discounted from the earlier price of $305.06.
2019 HP Premium Desktop
This is a new 2019 edition HP Premium desktop and is powered by a quad-core Intel Core i7-7700T processor. The CPU clocks a speed of 2.9 GHz. Whenever needed, the Turbo Boost technology can be activated. The desktop has 16 GB RAM along with 1 TB HDD and 512 GB SSD memory for storage. A DVD-RW drive is part of the specifications. Windows 10 Home Edition is the pre-installed OS. The pack includes a keyboard, a mouse, a mouse pad, a USB extension cord, and an HDMI cable. The system will have to be completed by the user by buying a monitor separately.
This HP Premium desktop is priced at $748, a clear $315 off the earlier price of $1,099.


The Team
Below are the different memebers of your team.
Name
Role
ID Number
Email
Other
Justin Brubaker
Manager
<EMAIL_ADDRESS>011
97 7987 9797
Gary Smith
Intern
<EMAIL_ADDRESS>002
undefined
Mary Lou
Engineer
<EMAIL_ADDRESS>004
justinbrubaker7
BOBBY
Intern
mail.com
006
undefined


Company profile - Canadian Company Capabilities
Third-Party Information Liability Disclaimer
Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.
FIT For Work
Mailing Address:
114 Empire Ave.The Health Plex
ST. JOHN'S, Newfoundland and Labrador
A1C 3G2
Location Address:
114 Empire Ave.The Health Plex
ST. JOHN'S, Newfoundland and Labrador
A1C 3G2
Tel.:<PHONE_NUMBER>
Fax:<PHONE_NUMBER>
Company Profile
FIT For Work consists of a team of professionals with
backgrounds in occupational therapy, kinesiology, pedorthics,
recreation, and industry. They offer a broad range of services
that include assessment and treatment of people who have
suffered injuries, functional capacity evaluations, job site
analysis, work station reviews and ergonomic set ups. Customers
come from all over Newfoundland and Labrador. They are able to
facilitate a smoother return to work for injured clients so they
receive a lot of business from Workers Compensation
Commission. As well, auto insurance and disability insurers
find FIT For Work helpful in objectifying the amount of
disability suffered. The assessment they use has validity
determination so they can determine if the person is truly
depicting their pain or suffering.
Full profile
Full profile
Contact information
Company description
Product / Service / Licensing
prevention and injury management. We assist people who have been
injured , either
at work or otherwise, to return safely to the workforce. Our
approach is to balance the job demands and environment of the
employer with the work practices and fitness of the employee.
FIT For Work acts a liaison between the employer and
employee to arrange on-the-job modification of duties, ease-back
and workplace ergonomic reviews. Our services include:
Occupational Rehabilitation Services (including Functional
Capacity Evaluations, Job Site Analysis, Job Matches,
Workstation Reviews, Return to Work Set Up and Monitoring, Work
Conditioning and Work Hardening, Pre-Employment Functional
Screening, Educational Services), Medical Services (including
Independent Medical Evaluations, Medical Consultations, Pre-
Employment Medicals, Drug Testing, Executive Medicals),
Disability Case Management Services (including Return to Work
Monitoring and File Management), and Labour Market Re-Entry
Services (including Transferable Skills Analysis, Psychometric
Testing, Job Readiness). Our team of professionals has
backgrounds in occupational therapy,kinesiology,pedorthics,
recreation, occupational health, nursing, psychology and
industry.
examinee by a physician who acts in an advisory role to assist
and compliment the clinical management plan and subsequent
rehabilitation plan for an injured person.
Independent Medical Evaluation An examination that is
performed by a physician not involved in the care of the
examinee for the purpose of clarifying issues associated with
the claim. This is an impartial, unbiased and objective
assessment in which no physician/patient relationship or
privilege exists.
Pre-Employment Medical An examination which concludes if an
individual is medically fit for work.
Physician Assessment - A medical history followed by a physical
assessment.
Spirometry - for the detection of obstructive and restrictive
lung disorders.
Audiometry - Monitors the acquity of an employer's hearing and
may include education in the prevention of hearing loss.
EKG - Electrocardiogram (EKG) recordings provide baseline
tracings for comparison of any emergency cardiac events.
Blood Work - Our occupational nurse can draw blood for Hospital
testing, and can conduct routine tests.
Urinalysis - Urinalysis can provide rapid screening of acute or
chronic illnesses; generally for the diagnosis of diabetes,
infection and long term chronic conditions.
Drug Testing A variety of panel testing which can identify use
of alcohol and various prescription and non-prescription drugs.
Preferred Provider Accessibility to Physicians specializing in
the areas of Internal Medicine, Psychiatry, Cardiology,
Neurology, Chiropractic, Dermatology and Orthapedic Surgery.
Specialty Medical Consults - FIT for Work's network of specialty
medical advisors ensure priority access. We have preferred
provider arrangements with specialists in Psychiatry, Internal
Medicine, Cardiology, Neurology, Orthopedic Surgery,
Dermatology, and Chiropractic.
Executive Medical - Protect the investment that a company has in
its Executives and reduce the liability that an ill executive
would create. It is designed to be a thorough test that is
conscientious of the time restraints on an Executive's schedule.
Employee and Family Assistance Program - The FIT For Work
Employee and Family Assistance program is designed to provide
short-term assistance to employees and immediate family members
who are experiencing problems. EFAP provides confidential,
professional assistance for a wide range of personal and
interpersonal problems to help employees live healthy and
productive lives. The program encompasses a full spectrum of
services including family issues, financial concerns, addictions
counseling, mental health issues, marital issues, stress and
conflict.
Disability Case Management
Return to Work Monitoring- Can involve a number of tasks
including development of a return to work plan, monitoring the
return to work process, meeting with health care providers and
general support.
File Management Involving an aspect of case management such as
dealing with red flag cases, meeting with a family physician,
monitoring a specific aspect of the return to work plan, etc.
Third-Party Information Liability Disclaimer
Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.
Contacts
Contact information
Description
Company description
Products, services and licensing
Product / Service / Licensing
prevention and injury management. We assist people who have been
injured , either
at work or otherwise, to return safely to the workforce. Our
approach is to balance the job demands and environment of the
employer with the work practices and fitness of the employee.
FIT For Work acts a liaison between the employer and
employee to arrange on-the-job modification of duties, ease-back
and workplace ergonomic reviews. Our services include:
Occupational Rehabilitation Services (including Functional
Capacity Evaluations, Job Site Analysis, Job Matches,
Workstation Reviews, Return to Work Set Up and Monitoring, Work
Conditioning and Work Hardening, Pre-Employment Functional
Screening, Educational Services), Medical Services (including
Independent Medical Evaluations, Medical Consultations, Pre-
Employment Medicals, Drug Testing, Executive Medicals),
Disability Case Management Services (including Return to Work
Monitoring and File Management), and Labour Market Re-Entry
Services (including Transferable Skills Analysis, Psychometric
Testing, Job Readiness). Our team of professionals has
backgrounds in occupational therapy,kinesiology,pedorthics,
recreation, occupational health, nursing, psychology and
industry.
examinee by a physician who acts in an advisory role to assist
and compliment the clinical management plan and subsequent
rehabilitation plan for an injured person.
Independent Medical Evaluation An examination that is
performed by a physician not involved in the care of the
examinee for the purpose of clarifying issues associated with
the claim. This is an impartial, unbiased and objective
assessment in which no physician/patient relationship or
privilege exists.
Pre-Employment Medical An examination which concludes if an
individual is medically fit for work.
Physician Assessment - A medical history followed by a physical
assessment.
Spirometry - for the detection of obstructive and restrictive
lung disorders.
Audiometry - Monitors the acquity of an employer's hearing and
may include education in the prevention of hearing loss.
EKG - Electrocardiogram (EKG) recordings provide baseline
tracings for comparison of any emergency cardiac events.
Blood Work - Our occupational nurse can draw blood for Hospital
testing, and can conduct routine tests.
Urinalysis - Urinalysis can provide rapid screening of acute or
chronic illnesses; generally for the diagnosis of diabetes,
infection and long term chronic conditions.
Drug Testing A variety of panel testing which can identify use
of alcohol and various prescription and non-prescription drugs.
Preferred Provider Accessibility to Physicians specializing in
the areas of Internal Medicine, Psychiatry, Cardiology,
Neurology, Chiropractic, Dermatology and Orthapedic Surgery.
Specialty Medical Consults - FIT for Work's network of specialty
medical advisors ensure priority access. We have preferred
provider arrangements with specialists in Psychiatry, Internal
Medicine, Cardiology, Neurology, Orthopedic Surgery,
Dermatology, and Chiropractic.
Executive Medical - Protect the investment that a company has in
its Executives and reduce the liability that an ill executive
would create. It is designed to be a thorough test that is
conscientious of the time restraints on an Executive's schedule.
Employee and Family Assistance Program - The FIT For Work
Employee and Family Assistance program is designed to provide
short-term assistance to employees and immediate family members
who are experiencing problems. EFAP provides confidential,
professional assistance for a wide range of personal and
interpersonal problems to help employees live healthy and
productive lives. The program encompasses a full spectrum of
services including family issues, financial concerns, addictions
counseling, mental health issues, marital issues, stress and
conflict.
Disability Case Management
Return to Work Monitoring- Can involve a number of tasks
including development of a return to work plan, monitoring the
return to work process, meeting with health care providers and
general support.
File Management Involving an aspect of case management such as
dealing with red flag cases, meeting with a family physician,
monitoring a specific aspect of the return to work plan, etc.