JeffDeCola/control-fpga-via-raspi-and-webserver

View on GitHub

Showing 219 of 219 total issues

Similar blocks of code found in 37 locations. Consider refactoring.
Open

function data_in_b_zero_1_onclick() {
switch(data_in_b_1_state) {
    case "high":
        data_in_b_1_state = "low";
        console.log("data_in_b_1_state = " + data_in_b_1_state);
Severity: Major
Found in section-4-web-server/control-an-fpga/js/opcode.js and 36 other locations - About 3 hrs to fix
section-4-web-server/control-an-fpga/js/opcode.js on lines 62..72
section-4-web-server/control-an-fpga/js/opcode.js on lines 93..103
section-4-web-server/control-an-fpga/js/opcode.js on lines 124..134
section-4-web-server/control-an-fpga/js/opcode.js on lines 155..165
section-4-web-server/control-an-fpga/js/opcode.js on lines 186..196
section-4-web-server/control-an-fpga/js/opcode.js on lines 217..227
section-4-web-server/control-an-fpga/js/opcode.js on lines 248..258
section-4-web-server/control-an-fpga/js/opcode.js on lines 313..323
section-4-web-server/control-an-fpga/js/opcode.js on lines 344..354
section-4-web-server/control-an-fpga/js/opcode.js on lines 375..385
section-4-web-server/control-an-fpga/js/opcode.js on lines 406..416
section-4-web-server/control-an-fpga/js/opcode.js on lines 437..447
section-4-web-server/control-an-fpga/js/opcode.js on lines 468..478
section-4-web-server/control-an-fpga/js/opcode.js on lines 499..509
section-4-web-server/control-an-fpga/js/opcode.js on lines 530..540
section-4-web-server/control-an-fpga/js/opcode.js on lines 561..571
section-4-web-server/control-an-fpga/js/opcode.js on lines 592..602
section-4-web-server/control-an-fpga/js/opcode.js on lines 623..633
section-4-web-server/control-an-fpga/js/opcode.js on lines 654..664
section-4-web-server/control-an-fpga/js/opcode.js on lines 685..695
section-4-web-server/control-an-fpga/js/opcode.js on lines 716..726
section-4-web-server/control-an-fpga/js/opcode.js on lines 747..757
section-4-web-server/control-an-fpga/js/opcode.js on lines 812..822
section-4-web-server/control-an-fpga/js/opcode.js on lines 843..853
section-4-web-server/control-an-fpga/js/opcode.js on lines 874..884
section-4-web-server/control-an-fpga/js/opcode.js on lines 905..915
section-4-web-server/control-an-fpga/js/opcode.js on lines 936..946
section-4-web-server/control-an-fpga/js/opcode.js on lines 967..977
section-4-web-server/control-an-fpga/js/opcode.js on lines 998..1008
section-4-web-server/control-an-fpga/js/opcode.js on lines 1029..1039
section-4-web-server/control-an-fpga/js/opcode.js on lines 1060..1070
section-4-web-server/control-an-fpga/js/opcode.js on lines 1091..1101
section-4-web-server/control-an-fpga/js/opcode.js on lines 1122..1132
section-4-web-server/control-an-fpga/js/opcode.js on lines 1153..1163
section-4-web-server/control-an-fpga/js/opcode.js on lines 1184..1194
section-4-web-server/control-an-fpga/js/opcode.js on lines 1246..1256

Duplicated Code

Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

Tuning

This issue has a mass of 104.

We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

Refactorings

Further Reading

Similar blocks of code found in 37 locations. Consider refactoring.
Open

function opcode_one_3_onclick() {
    switch(opcode_3_state) {
        case "low":
            opcode_3_state = "high";
            console.log("opcode_3_state = " + opcode_3_state);
Severity: Major
Found in section-4-web-server/control-an-fpga/js/opcode.js and 36 other locations - About 3 hrs to fix
section-4-web-server/control-an-fpga/js/opcode.js on lines 93..103
section-4-web-server/control-an-fpga/js/opcode.js on lines 124..134
section-4-web-server/control-an-fpga/js/opcode.js on lines 155..165
section-4-web-server/control-an-fpga/js/opcode.js on lines 186..196
section-4-web-server/control-an-fpga/js/opcode.js on lines 217..227
section-4-web-server/control-an-fpga/js/opcode.js on lines 248..258
section-4-web-server/control-an-fpga/js/opcode.js on lines 313..323
section-4-web-server/control-an-fpga/js/opcode.js on lines 344..354
section-4-web-server/control-an-fpga/js/opcode.js on lines 375..385
section-4-web-server/control-an-fpga/js/opcode.js on lines 406..416
section-4-web-server/control-an-fpga/js/opcode.js on lines 437..447
section-4-web-server/control-an-fpga/js/opcode.js on lines 468..478
section-4-web-server/control-an-fpga/js/opcode.js on lines 499..509
section-4-web-server/control-an-fpga/js/opcode.js on lines 530..540
section-4-web-server/control-an-fpga/js/opcode.js on lines 561..571
section-4-web-server/control-an-fpga/js/opcode.js on lines 592..602
section-4-web-server/control-an-fpga/js/opcode.js on lines 623..633
section-4-web-server/control-an-fpga/js/opcode.js on lines 654..664
section-4-web-server/control-an-fpga/js/opcode.js on lines 685..695
section-4-web-server/control-an-fpga/js/opcode.js on lines 716..726
section-4-web-server/control-an-fpga/js/opcode.js on lines 747..757
section-4-web-server/control-an-fpga/js/opcode.js on lines 812..822
section-4-web-server/control-an-fpga/js/opcode.js on lines 843..853
section-4-web-server/control-an-fpga/js/opcode.js on lines 874..884
section-4-web-server/control-an-fpga/js/opcode.js on lines 905..915
section-4-web-server/control-an-fpga/js/opcode.js on lines 936..946
section-4-web-server/control-an-fpga/js/opcode.js on lines 967..977
section-4-web-server/control-an-fpga/js/opcode.js on lines 998..1008
section-4-web-server/control-an-fpga/js/opcode.js on lines 1029..1039
section-4-web-server/control-an-fpga/js/opcode.js on lines 1060..1070
section-4-web-server/control-an-fpga/js/opcode.js on lines 1091..1101
section-4-web-server/control-an-fpga/js/opcode.js on lines 1122..1132
section-4-web-server/control-an-fpga/js/opcode.js on lines 1153..1163
section-4-web-server/control-an-fpga/js/opcode.js on lines 1184..1194
section-4-web-server/control-an-fpga/js/opcode.js on lines 1215..1225
section-4-web-server/control-an-fpga/js/opcode.js on lines 1246..1256

Duplicated Code

Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

Tuning

This issue has a mass of 104.

We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

Refactorings

Further Reading

Similar blocks of code found in 37 locations. Consider refactoring.
Open

function opcode_one_1_onclick() {
    switch(opcode_1_state) {
        case "low":
            opcode_1_state = "high";
            console.log("opcode_1_state = " + opcode_1_state);
Severity: Major
Found in section-4-web-server/control-an-fpga/js/opcode.js and 36 other locations - About 3 hrs to fix
section-4-web-server/control-an-fpga/js/opcode.js on lines 62..72
section-4-web-server/control-an-fpga/js/opcode.js on lines 93..103
section-4-web-server/control-an-fpga/js/opcode.js on lines 124..134
section-4-web-server/control-an-fpga/js/opcode.js on lines 155..165
section-4-web-server/control-an-fpga/js/opcode.js on lines 217..227
section-4-web-server/control-an-fpga/js/opcode.js on lines 248..258
section-4-web-server/control-an-fpga/js/opcode.js on lines 313..323
section-4-web-server/control-an-fpga/js/opcode.js on lines 344..354
section-4-web-server/control-an-fpga/js/opcode.js on lines 375..385
section-4-web-server/control-an-fpga/js/opcode.js on lines 406..416
section-4-web-server/control-an-fpga/js/opcode.js on lines 437..447
section-4-web-server/control-an-fpga/js/opcode.js on lines 468..478
section-4-web-server/control-an-fpga/js/opcode.js on lines 499..509
section-4-web-server/control-an-fpga/js/opcode.js on lines 530..540
section-4-web-server/control-an-fpga/js/opcode.js on lines 561..571
section-4-web-server/control-an-fpga/js/opcode.js on lines 592..602
section-4-web-server/control-an-fpga/js/opcode.js on lines 623..633
section-4-web-server/control-an-fpga/js/opcode.js on lines 654..664
section-4-web-server/control-an-fpga/js/opcode.js on lines 685..695
section-4-web-server/control-an-fpga/js/opcode.js on lines 716..726
section-4-web-server/control-an-fpga/js/opcode.js on lines 747..757
section-4-web-server/control-an-fpga/js/opcode.js on lines 812..822
section-4-web-server/control-an-fpga/js/opcode.js on lines 843..853
section-4-web-server/control-an-fpga/js/opcode.js on lines 874..884
section-4-web-server/control-an-fpga/js/opcode.js on lines 905..915
section-4-web-server/control-an-fpga/js/opcode.js on lines 936..946
section-4-web-server/control-an-fpga/js/opcode.js on lines 967..977
section-4-web-server/control-an-fpga/js/opcode.js on lines 998..1008
section-4-web-server/control-an-fpga/js/opcode.js on lines 1029..1039
section-4-web-server/control-an-fpga/js/opcode.js on lines 1060..1070
section-4-web-server/control-an-fpga/js/opcode.js on lines 1091..1101
section-4-web-server/control-an-fpga/js/opcode.js on lines 1122..1132
section-4-web-server/control-an-fpga/js/opcode.js on lines 1153..1163
section-4-web-server/control-an-fpga/js/opcode.js on lines 1184..1194
section-4-web-server/control-an-fpga/js/opcode.js on lines 1215..1225
section-4-web-server/control-an-fpga/js/opcode.js on lines 1246..1256

Duplicated Code

Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

Tuning

This issue has a mass of 104.

We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

Refactorings

Further Reading

Similar blocks of code found in 37 locations. Consider refactoring.
Open

function data_in_b_zero_3_onclick() {
switch(data_in_b_3_state) {
    case "high":
        data_in_b_3_state = "low";
        console.log("data_in_b_3_state = " + data_in_b_3_state);
Severity: Major
Found in section-4-web-server/control-an-fpga/js/opcode.js and 36 other locations - About 3 hrs to fix
section-4-web-server/control-an-fpga/js/opcode.js on lines 62..72
section-4-web-server/control-an-fpga/js/opcode.js on lines 93..103
section-4-web-server/control-an-fpga/js/opcode.js on lines 124..134
section-4-web-server/control-an-fpga/js/opcode.js on lines 155..165
section-4-web-server/control-an-fpga/js/opcode.js on lines 186..196
section-4-web-server/control-an-fpga/js/opcode.js on lines 217..227
section-4-web-server/control-an-fpga/js/opcode.js on lines 248..258
section-4-web-server/control-an-fpga/js/opcode.js on lines 313..323
section-4-web-server/control-an-fpga/js/opcode.js on lines 344..354
section-4-web-server/control-an-fpga/js/opcode.js on lines 375..385
section-4-web-server/control-an-fpga/js/opcode.js on lines 406..416
section-4-web-server/control-an-fpga/js/opcode.js on lines 437..447
section-4-web-server/control-an-fpga/js/opcode.js on lines 468..478
section-4-web-server/control-an-fpga/js/opcode.js on lines 499..509
section-4-web-server/control-an-fpga/js/opcode.js on lines 530..540
section-4-web-server/control-an-fpga/js/opcode.js on lines 561..571
section-4-web-server/control-an-fpga/js/opcode.js on lines 592..602
section-4-web-server/control-an-fpga/js/opcode.js on lines 623..633
section-4-web-server/control-an-fpga/js/opcode.js on lines 654..664
section-4-web-server/control-an-fpga/js/opcode.js on lines 685..695
section-4-web-server/control-an-fpga/js/opcode.js on lines 716..726
section-4-web-server/control-an-fpga/js/opcode.js on lines 747..757
section-4-web-server/control-an-fpga/js/opcode.js on lines 812..822
section-4-web-server/control-an-fpga/js/opcode.js on lines 843..853
section-4-web-server/control-an-fpga/js/opcode.js on lines 874..884
section-4-web-server/control-an-fpga/js/opcode.js on lines 905..915
section-4-web-server/control-an-fpga/js/opcode.js on lines 936..946
section-4-web-server/control-an-fpga/js/opcode.js on lines 967..977
section-4-web-server/control-an-fpga/js/opcode.js on lines 998..1008
section-4-web-server/control-an-fpga/js/opcode.js on lines 1029..1039
section-4-web-server/control-an-fpga/js/opcode.js on lines 1060..1070
section-4-web-server/control-an-fpga/js/opcode.js on lines 1122..1132
section-4-web-server/control-an-fpga/js/opcode.js on lines 1153..1163
section-4-web-server/control-an-fpga/js/opcode.js on lines 1184..1194
section-4-web-server/control-an-fpga/js/opcode.js on lines 1215..1225
section-4-web-server/control-an-fpga/js/opcode.js on lines 1246..1256

Duplicated Code

Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

Tuning

This issue has a mass of 104.

We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

Refactorings

Further Reading

Similar blocks of code found in 37 locations. Consider refactoring.
Open

function data_in_b_one_0_onclick() {
switch(data_in_b_0_state) {
    case "low":
        data_in_b_0_state = "high";
        console.log("data_in_b_0_state = " + data_in_b_0_state);
Severity: Major
Found in section-4-web-server/control-an-fpga/js/opcode.js and 36 other locations - About 3 hrs to fix
section-4-web-server/control-an-fpga/js/opcode.js on lines 62..72
section-4-web-server/control-an-fpga/js/opcode.js on lines 93..103
section-4-web-server/control-an-fpga/js/opcode.js on lines 124..134
section-4-web-server/control-an-fpga/js/opcode.js on lines 155..165
section-4-web-server/control-an-fpga/js/opcode.js on lines 186..196
section-4-web-server/control-an-fpga/js/opcode.js on lines 217..227
section-4-web-server/control-an-fpga/js/opcode.js on lines 248..258
section-4-web-server/control-an-fpga/js/opcode.js on lines 313..323
section-4-web-server/control-an-fpga/js/opcode.js on lines 344..354
section-4-web-server/control-an-fpga/js/opcode.js on lines 375..385
section-4-web-server/control-an-fpga/js/opcode.js on lines 406..416
section-4-web-server/control-an-fpga/js/opcode.js on lines 437..447
section-4-web-server/control-an-fpga/js/opcode.js on lines 468..478
section-4-web-server/control-an-fpga/js/opcode.js on lines 499..509
section-4-web-server/control-an-fpga/js/opcode.js on lines 530..540
section-4-web-server/control-an-fpga/js/opcode.js on lines 561..571
section-4-web-server/control-an-fpga/js/opcode.js on lines 592..602
section-4-web-server/control-an-fpga/js/opcode.js on lines 623..633
section-4-web-server/control-an-fpga/js/opcode.js on lines 654..664
section-4-web-server/control-an-fpga/js/opcode.js on lines 685..695
section-4-web-server/control-an-fpga/js/opcode.js on lines 716..726
section-4-web-server/control-an-fpga/js/opcode.js on lines 747..757
section-4-web-server/control-an-fpga/js/opcode.js on lines 812..822
section-4-web-server/control-an-fpga/js/opcode.js on lines 843..853
section-4-web-server/control-an-fpga/js/opcode.js on lines 874..884
section-4-web-server/control-an-fpga/js/opcode.js on lines 905..915
section-4-web-server/control-an-fpga/js/opcode.js on lines 936..946
section-4-web-server/control-an-fpga/js/opcode.js on lines 967..977
section-4-web-server/control-an-fpga/js/opcode.js on lines 998..1008
section-4-web-server/control-an-fpga/js/opcode.js on lines 1029..1039
section-4-web-server/control-an-fpga/js/opcode.js on lines 1060..1070
section-4-web-server/control-an-fpga/js/opcode.js on lines 1091..1101
section-4-web-server/control-an-fpga/js/opcode.js on lines 1122..1132
section-4-web-server/control-an-fpga/js/opcode.js on lines 1153..1163
section-4-web-server/control-an-fpga/js/opcode.js on lines 1184..1194
section-4-web-server/control-an-fpga/js/opcode.js on lines 1215..1225

Duplicated Code

Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

Tuning

This issue has a mass of 104.

We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

Refactorings

Further Reading

Similar blocks of code found in 2 locations. Consider refactoring.
Open

function compute_go_button_onmouseover() {
    switch(compute_go_state) {
        case "ready":
            document.getElementById("compute_go_button_text").innerHTML="COMPUTE";
            document.getElementById("compute_go_button_push").style.backgroundColor=grey;
Severity: Major
Found in section-4-web-server/control-an-fpga/js/opcode.js and 1 other location - About 3 hrs to fix
section-4-web-server/control-an-fpga/js/opcode.js on lines 1304..1315

Duplicated Code

Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

Tuning

This issue has a mass of 102.

We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

Refactorings

Further Reading

Similar blocks of code found in 2 locations. Consider refactoring.
Open

function compute_go_button_onmouseout() {
    switch(compute_go_state) {
        case "ready":
            document.getElementById("compute_go_button_text").innerHTML="COMPUTE";
            document.getElementById("compute_go_button_push").style.backgroundColor=lightgreen;
Severity: Major
Found in section-4-web-server/control-an-fpga/js/opcode.js and 1 other location - About 3 hrs to fix
section-4-web-server/control-an-fpga/js/opcode.js on lines 1291..1302

Duplicated Code

Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

Tuning

This issue has a mass of 102.

We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

Refactorings

Further Reading

File main.go has 525 lines of code (exceeds 500 allowed). Consider refactoring.
Open

// my-go-examples toggle-led-with-button-raspberry-pi-gpio-periph

package main

import (
Severity: Minor
Found in section-3-backend-server/main.go - About 2 hrs to fix

    Method data_pins.write_data_in has 88 lines of code (exceeds 50 allowed). Consider refactoring.
    Open

    func (d data_pins) write_data_in(d7 int, d6 int, d5 int, d4 int, d3 int, d2 int, d1 int, d0 int) {
    
        if d7 == 1 {
            err := d.data_7.Out(gpio.High)
            if err != nil {
    Severity: Major
    Found in section-3-backend-server/main.go - About 2 hrs to fix

      Method data_a_pins.write_data_in_a has a Cognitive Complexity of 30 (exceeds 20 allowed). Consider refactoring.
      Open

      func (d data_a_pins) write_data_in_a(d7 int, d3 int, d2 int, d1 int, d0 int) {
      
          if d7 == 1 {
              err := d.data_7.Out(gpio.High)
              if err != nil {
      Severity: Minor
      Found in section-3-backend-server/main.go - About 1 hr to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Function compute has 47 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

      function compute() {
          
          console.log("STEP 4 - SEND OPCODE, DATA_IN_A, DATA_IN_B AND GO TO WEB SERVER");
          document.getElementById("data_out_7").innerHTML=" ";
          document.getElementById("data_out_6").innerHTML="W";
      Severity: Minor
      Found in section-4-web-server/control-an-fpga/js/opcode.js - About 1 hr to fix

        Similar blocks of code found in 3 locations. Consider refactoring.
        Open

        function data_in_a_one_7_onmouseover() {
            switch(data_in_a_7_state) {
                case "low":
                    document.getElementById("data_in_a_one_7").style.backgroundColor=grey;
                    break;
        Severity: Major
        Found in section-4-web-server/control-an-fpga/js/opcode.js and 2 other locations - About 1 hr to fix
        section-4-web-server/control-an-fpga/js/opcode.js on lines 42..51
        section-4-web-server/control-an-fpga/js/opcode.js on lines 792..801

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 70.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Similar blocks of code found in 3 locations. Consider refactoring.
        Open

        function opcode_one_3_onmouseover() {
            switch(opcode_3_state) {
                case "low":
                    document.getElementById("opcode_one_3").style.backgroundColor=grey;
                    break;
        Severity: Major
        Found in section-4-web-server/control-an-fpga/js/opcode.js and 2 other locations - About 1 hr to fix
        section-4-web-server/control-an-fpga/js/opcode.js on lines 293..302
        section-4-web-server/control-an-fpga/js/opcode.js on lines 792..801

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 70.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Similar blocks of code found in 3 locations. Consider refactoring.
        Open

        function data_in_b_one_7_onmouseover() {
          switch(data_in_b_7_state) {
              case "low":
                  document.getElementById("data_in_b_one_7").style.backgroundColor=grey;
                  break;
        Severity: Major
        Found in section-4-web-server/control-an-fpga/js/opcode.js and 2 other locations - About 1 hr to fix
        section-4-web-server/control-an-fpga/js/opcode.js on lines 42..51
        section-4-web-server/control-an-fpga/js/opcode.js on lines 293..302

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 70.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Similar blocks of code found in 77 locations. Consider refactoring.
        Open

        function opcode_zero_2_onmouseover() {
            switch(opcode_2_state) {
                case "low":
                    document.getElementById("opcode_zero_2").style.backgroundColor=lightgreen;
                    break;
        Severity: Major
        Found in section-4-web-server/control-an-fpga/js/opcode.js and 76 other locations - About 1 hr to fix
        section-4-web-server/control-an-fpga/js/opcode.js on lines 52..61
        section-4-web-server/control-an-fpga/js/opcode.js on lines 73..82
        section-4-web-server/control-an-fpga/js/opcode.js on lines 83..92
        section-4-web-server/control-an-fpga/js/opcode.js on lines 104..113
        section-4-web-server/control-an-fpga/js/opcode.js on lines 114..123
        section-4-web-server/control-an-fpga/js/opcode.js on lines 145..154
        section-4-web-server/control-an-fpga/js/opcode.js on lines 166..175
        section-4-web-server/control-an-fpga/js/opcode.js on lines 176..185
        section-4-web-server/control-an-fpga/js/opcode.js on lines 197..206
        section-4-web-server/control-an-fpga/js/opcode.js on lines 207..216
        section-4-web-server/control-an-fpga/js/opcode.js on lines 228..237
        section-4-web-server/control-an-fpga/js/opcode.js on lines 238..247
        section-4-web-server/control-an-fpga/js/opcode.js on lines 259..268
        section-4-web-server/control-an-fpga/js/opcode.js on lines 269..278
        section-4-web-server/control-an-fpga/js/opcode.js on lines 303..312
        section-4-web-server/control-an-fpga/js/opcode.js on lines 324..333
        section-4-web-server/control-an-fpga/js/opcode.js on lines 334..343
        section-4-web-server/control-an-fpga/js/opcode.js on lines 355..364
        section-4-web-server/control-an-fpga/js/opcode.js on lines 365..374
        section-4-web-server/control-an-fpga/js/opcode.js on lines 386..395
        section-4-web-server/control-an-fpga/js/opcode.js on lines 396..405
        section-4-web-server/control-an-fpga/js/opcode.js on lines 417..426
        section-4-web-server/control-an-fpga/js/opcode.js on lines 427..436
        section-4-web-server/control-an-fpga/js/opcode.js on lines 448..457
        section-4-web-server/control-an-fpga/js/opcode.js on lines 458..467
        section-4-web-server/control-an-fpga/js/opcode.js on lines 479..488
        section-4-web-server/control-an-fpga/js/opcode.js on lines 489..498
        section-4-web-server/control-an-fpga/js/opcode.js on lines 510..519
        section-4-web-server/control-an-fpga/js/opcode.js on lines 520..529
        section-4-web-server/control-an-fpga/js/opcode.js on lines 541..550
        section-4-web-server/control-an-fpga/js/opcode.js on lines 551..560
        section-4-web-server/control-an-fpga/js/opcode.js on lines 572..581
        section-4-web-server/control-an-fpga/js/opcode.js on lines 582..591
        section-4-web-server/control-an-fpga/js/opcode.js on lines 603..612
        section-4-web-server/control-an-fpga/js/opcode.js on lines 613..622
        section-4-web-server/control-an-fpga/js/opcode.js on lines 634..643
        section-4-web-server/control-an-fpga/js/opcode.js on lines 644..653
        section-4-web-server/control-an-fpga/js/opcode.js on lines 665..674
        section-4-web-server/control-an-fpga/js/opcode.js on lines 675..684
        section-4-web-server/control-an-fpga/js/opcode.js on lines 696..705
        section-4-web-server/control-an-fpga/js/opcode.js on lines 706..715
        section-4-web-server/control-an-fpga/js/opcode.js on lines 727..736
        section-4-web-server/control-an-fpga/js/opcode.js on lines 737..746
        section-4-web-server/control-an-fpga/js/opcode.js on lines 758..767
        section-4-web-server/control-an-fpga/js/opcode.js on lines 768..777
        section-4-web-server/control-an-fpga/js/opcode.js on lines 802..811
        section-4-web-server/control-an-fpga/js/opcode.js on lines 823..832
        section-4-web-server/control-an-fpga/js/opcode.js on lines 833..842
        section-4-web-server/control-an-fpga/js/opcode.js on lines 854..863
        section-4-web-server/control-an-fpga/js/opcode.js on lines 864..873
        section-4-web-server/control-an-fpga/js/opcode.js on lines 885..894
        section-4-web-server/control-an-fpga/js/opcode.js on lines 895..904
        section-4-web-server/control-an-fpga/js/opcode.js on lines 916..925
        section-4-web-server/control-an-fpga/js/opcode.js on lines 926..935
        section-4-web-server/control-an-fpga/js/opcode.js on lines 947..956
        section-4-web-server/control-an-fpga/js/opcode.js on lines 957..966
        section-4-web-server/control-an-fpga/js/opcode.js on lines 978..987
        section-4-web-server/control-an-fpga/js/opcode.js on lines 988..997
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1009..1018
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1019..1028
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1040..1049
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1050..1059
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1071..1080
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1081..1090
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1102..1111
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1112..1121
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1133..1142
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1143..1152
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1164..1173
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1174..1183
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1195..1204
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1205..1214
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1226..1235
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1236..1245
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1257..1266
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1267..1276

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 68.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Similar blocks of code found in 77 locations. Consider refactoring.
        Open

        function opcode_zero_2_onmouseout() {
            switch(opcode_2_state) {
                case "low":
                    document.getElementById("opcode_zero_2").style.backgroundColor=lightgreen;
                    break;
        Severity: Major
        Found in section-4-web-server/control-an-fpga/js/opcode.js and 76 other locations - About 1 hr to fix
        section-4-web-server/control-an-fpga/js/opcode.js on lines 52..61
        section-4-web-server/control-an-fpga/js/opcode.js on lines 73..82
        section-4-web-server/control-an-fpga/js/opcode.js on lines 83..92
        section-4-web-server/control-an-fpga/js/opcode.js on lines 104..113
        section-4-web-server/control-an-fpga/js/opcode.js on lines 114..123
        section-4-web-server/control-an-fpga/js/opcode.js on lines 135..144
        section-4-web-server/control-an-fpga/js/opcode.js on lines 166..175
        section-4-web-server/control-an-fpga/js/opcode.js on lines 176..185
        section-4-web-server/control-an-fpga/js/opcode.js on lines 197..206
        section-4-web-server/control-an-fpga/js/opcode.js on lines 207..216
        section-4-web-server/control-an-fpga/js/opcode.js on lines 228..237
        section-4-web-server/control-an-fpga/js/opcode.js on lines 238..247
        section-4-web-server/control-an-fpga/js/opcode.js on lines 259..268
        section-4-web-server/control-an-fpga/js/opcode.js on lines 269..278
        section-4-web-server/control-an-fpga/js/opcode.js on lines 303..312
        section-4-web-server/control-an-fpga/js/opcode.js on lines 324..333
        section-4-web-server/control-an-fpga/js/opcode.js on lines 334..343
        section-4-web-server/control-an-fpga/js/opcode.js on lines 355..364
        section-4-web-server/control-an-fpga/js/opcode.js on lines 365..374
        section-4-web-server/control-an-fpga/js/opcode.js on lines 386..395
        section-4-web-server/control-an-fpga/js/opcode.js on lines 396..405
        section-4-web-server/control-an-fpga/js/opcode.js on lines 417..426
        section-4-web-server/control-an-fpga/js/opcode.js on lines 427..436
        section-4-web-server/control-an-fpga/js/opcode.js on lines 448..457
        section-4-web-server/control-an-fpga/js/opcode.js on lines 458..467
        section-4-web-server/control-an-fpga/js/opcode.js on lines 479..488
        section-4-web-server/control-an-fpga/js/opcode.js on lines 489..498
        section-4-web-server/control-an-fpga/js/opcode.js on lines 510..519
        section-4-web-server/control-an-fpga/js/opcode.js on lines 520..529
        section-4-web-server/control-an-fpga/js/opcode.js on lines 541..550
        section-4-web-server/control-an-fpga/js/opcode.js on lines 551..560
        section-4-web-server/control-an-fpga/js/opcode.js on lines 572..581
        section-4-web-server/control-an-fpga/js/opcode.js on lines 582..591
        section-4-web-server/control-an-fpga/js/opcode.js on lines 603..612
        section-4-web-server/control-an-fpga/js/opcode.js on lines 613..622
        section-4-web-server/control-an-fpga/js/opcode.js on lines 634..643
        section-4-web-server/control-an-fpga/js/opcode.js on lines 644..653
        section-4-web-server/control-an-fpga/js/opcode.js on lines 665..674
        section-4-web-server/control-an-fpga/js/opcode.js on lines 675..684
        section-4-web-server/control-an-fpga/js/opcode.js on lines 696..705
        section-4-web-server/control-an-fpga/js/opcode.js on lines 706..715
        section-4-web-server/control-an-fpga/js/opcode.js on lines 727..736
        section-4-web-server/control-an-fpga/js/opcode.js on lines 737..746
        section-4-web-server/control-an-fpga/js/opcode.js on lines 758..767
        section-4-web-server/control-an-fpga/js/opcode.js on lines 768..777
        section-4-web-server/control-an-fpga/js/opcode.js on lines 802..811
        section-4-web-server/control-an-fpga/js/opcode.js on lines 823..832
        section-4-web-server/control-an-fpga/js/opcode.js on lines 833..842
        section-4-web-server/control-an-fpga/js/opcode.js on lines 854..863
        section-4-web-server/control-an-fpga/js/opcode.js on lines 864..873
        section-4-web-server/control-an-fpga/js/opcode.js on lines 885..894
        section-4-web-server/control-an-fpga/js/opcode.js on lines 895..904
        section-4-web-server/control-an-fpga/js/opcode.js on lines 916..925
        section-4-web-server/control-an-fpga/js/opcode.js on lines 926..935
        section-4-web-server/control-an-fpga/js/opcode.js on lines 947..956
        section-4-web-server/control-an-fpga/js/opcode.js on lines 957..966
        section-4-web-server/control-an-fpga/js/opcode.js on lines 978..987
        section-4-web-server/control-an-fpga/js/opcode.js on lines 988..997
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1009..1018
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1019..1028
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1040..1049
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1050..1059
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1071..1080
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1081..1090
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1102..1111
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1112..1121
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1133..1142
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1143..1152
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1164..1173
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1174..1183
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1195..1204
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1205..1214
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1226..1235
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1236..1245
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1257..1266
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1267..1276

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 68.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Similar blocks of code found in 77 locations. Consider refactoring.
        Open

        function data_in_a_one_4_onmouseover() {
          switch(data_in_a_4_state) {
              case "low":
                  document.getElementById("data_in_a_one_4").style.backgroundColor=grey;
                  break;
        Severity: Major
        Found in section-4-web-server/control-an-fpga/js/opcode.js and 76 other locations - About 1 hr to fix
        section-4-web-server/control-an-fpga/js/opcode.js on lines 52..61
        section-4-web-server/control-an-fpga/js/opcode.js on lines 73..82
        section-4-web-server/control-an-fpga/js/opcode.js on lines 83..92
        section-4-web-server/control-an-fpga/js/opcode.js on lines 104..113
        section-4-web-server/control-an-fpga/js/opcode.js on lines 114..123
        section-4-web-server/control-an-fpga/js/opcode.js on lines 135..144
        section-4-web-server/control-an-fpga/js/opcode.js on lines 145..154
        section-4-web-server/control-an-fpga/js/opcode.js on lines 166..175
        section-4-web-server/control-an-fpga/js/opcode.js on lines 176..185
        section-4-web-server/control-an-fpga/js/opcode.js on lines 197..206
        section-4-web-server/control-an-fpga/js/opcode.js on lines 207..216
        section-4-web-server/control-an-fpga/js/opcode.js on lines 228..237
        section-4-web-server/control-an-fpga/js/opcode.js on lines 238..247
        section-4-web-server/control-an-fpga/js/opcode.js on lines 259..268
        section-4-web-server/control-an-fpga/js/opcode.js on lines 269..278
        section-4-web-server/control-an-fpga/js/opcode.js on lines 303..312
        section-4-web-server/control-an-fpga/js/opcode.js on lines 324..333
        section-4-web-server/control-an-fpga/js/opcode.js on lines 334..343
        section-4-web-server/control-an-fpga/js/opcode.js on lines 355..364
        section-4-web-server/control-an-fpga/js/opcode.js on lines 365..374
        section-4-web-server/control-an-fpga/js/opcode.js on lines 386..395
        section-4-web-server/control-an-fpga/js/opcode.js on lines 396..405
        section-4-web-server/control-an-fpga/js/opcode.js on lines 417..426
        section-4-web-server/control-an-fpga/js/opcode.js on lines 427..436
        section-4-web-server/control-an-fpga/js/opcode.js on lines 448..457
        section-4-web-server/control-an-fpga/js/opcode.js on lines 458..467
        section-4-web-server/control-an-fpga/js/opcode.js on lines 489..498
        section-4-web-server/control-an-fpga/js/opcode.js on lines 510..519
        section-4-web-server/control-an-fpga/js/opcode.js on lines 520..529
        section-4-web-server/control-an-fpga/js/opcode.js on lines 541..550
        section-4-web-server/control-an-fpga/js/opcode.js on lines 551..560
        section-4-web-server/control-an-fpga/js/opcode.js on lines 572..581
        section-4-web-server/control-an-fpga/js/opcode.js on lines 582..591
        section-4-web-server/control-an-fpga/js/opcode.js on lines 603..612
        section-4-web-server/control-an-fpga/js/opcode.js on lines 613..622
        section-4-web-server/control-an-fpga/js/opcode.js on lines 634..643
        section-4-web-server/control-an-fpga/js/opcode.js on lines 644..653
        section-4-web-server/control-an-fpga/js/opcode.js on lines 665..674
        section-4-web-server/control-an-fpga/js/opcode.js on lines 675..684
        section-4-web-server/control-an-fpga/js/opcode.js on lines 696..705
        section-4-web-server/control-an-fpga/js/opcode.js on lines 706..715
        section-4-web-server/control-an-fpga/js/opcode.js on lines 727..736
        section-4-web-server/control-an-fpga/js/opcode.js on lines 737..746
        section-4-web-server/control-an-fpga/js/opcode.js on lines 758..767
        section-4-web-server/control-an-fpga/js/opcode.js on lines 768..777
        section-4-web-server/control-an-fpga/js/opcode.js on lines 802..811
        section-4-web-server/control-an-fpga/js/opcode.js on lines 823..832
        section-4-web-server/control-an-fpga/js/opcode.js on lines 833..842
        section-4-web-server/control-an-fpga/js/opcode.js on lines 854..863
        section-4-web-server/control-an-fpga/js/opcode.js on lines 864..873
        section-4-web-server/control-an-fpga/js/opcode.js on lines 885..894
        section-4-web-server/control-an-fpga/js/opcode.js on lines 895..904
        section-4-web-server/control-an-fpga/js/opcode.js on lines 916..925
        section-4-web-server/control-an-fpga/js/opcode.js on lines 926..935
        section-4-web-server/control-an-fpga/js/opcode.js on lines 947..956
        section-4-web-server/control-an-fpga/js/opcode.js on lines 957..966
        section-4-web-server/control-an-fpga/js/opcode.js on lines 978..987
        section-4-web-server/control-an-fpga/js/opcode.js on lines 988..997
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1009..1018
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1019..1028
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1040..1049
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1050..1059
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1071..1080
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1081..1090
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1102..1111
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1112..1121
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1133..1142
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1143..1152
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1164..1173
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1174..1183
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1195..1204
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1205..1214
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1226..1235
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1236..1245
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1257..1266
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1267..1276

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 68.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Similar blocks of code found in 77 locations. Consider refactoring.
        Open

        function data_in_b_zero_7_onmouseover() {
          switch(data_in_b_7_state) {
              case "low":
                  document.getElementById("data_in_b_zero_7").style.backgroundColor=lightgreen;
                  break;
        Severity: Major
        Found in section-4-web-server/control-an-fpga/js/opcode.js and 76 other locations - About 1 hr to fix
        section-4-web-server/control-an-fpga/js/opcode.js on lines 52..61
        section-4-web-server/control-an-fpga/js/opcode.js on lines 73..82
        section-4-web-server/control-an-fpga/js/opcode.js on lines 83..92
        section-4-web-server/control-an-fpga/js/opcode.js on lines 104..113
        section-4-web-server/control-an-fpga/js/opcode.js on lines 114..123
        section-4-web-server/control-an-fpga/js/opcode.js on lines 135..144
        section-4-web-server/control-an-fpga/js/opcode.js on lines 145..154
        section-4-web-server/control-an-fpga/js/opcode.js on lines 166..175
        section-4-web-server/control-an-fpga/js/opcode.js on lines 176..185
        section-4-web-server/control-an-fpga/js/opcode.js on lines 197..206
        section-4-web-server/control-an-fpga/js/opcode.js on lines 207..216
        section-4-web-server/control-an-fpga/js/opcode.js on lines 228..237
        section-4-web-server/control-an-fpga/js/opcode.js on lines 238..247
        section-4-web-server/control-an-fpga/js/opcode.js on lines 259..268
        section-4-web-server/control-an-fpga/js/opcode.js on lines 269..278
        section-4-web-server/control-an-fpga/js/opcode.js on lines 303..312
        section-4-web-server/control-an-fpga/js/opcode.js on lines 324..333
        section-4-web-server/control-an-fpga/js/opcode.js on lines 334..343
        section-4-web-server/control-an-fpga/js/opcode.js on lines 355..364
        section-4-web-server/control-an-fpga/js/opcode.js on lines 365..374
        section-4-web-server/control-an-fpga/js/opcode.js on lines 386..395
        section-4-web-server/control-an-fpga/js/opcode.js on lines 396..405
        section-4-web-server/control-an-fpga/js/opcode.js on lines 417..426
        section-4-web-server/control-an-fpga/js/opcode.js on lines 427..436
        section-4-web-server/control-an-fpga/js/opcode.js on lines 448..457
        section-4-web-server/control-an-fpga/js/opcode.js on lines 458..467
        section-4-web-server/control-an-fpga/js/opcode.js on lines 479..488
        section-4-web-server/control-an-fpga/js/opcode.js on lines 489..498
        section-4-web-server/control-an-fpga/js/opcode.js on lines 510..519
        section-4-web-server/control-an-fpga/js/opcode.js on lines 520..529
        section-4-web-server/control-an-fpga/js/opcode.js on lines 541..550
        section-4-web-server/control-an-fpga/js/opcode.js on lines 551..560
        section-4-web-server/control-an-fpga/js/opcode.js on lines 572..581
        section-4-web-server/control-an-fpga/js/opcode.js on lines 582..591
        section-4-web-server/control-an-fpga/js/opcode.js on lines 603..612
        section-4-web-server/control-an-fpga/js/opcode.js on lines 613..622
        section-4-web-server/control-an-fpga/js/opcode.js on lines 634..643
        section-4-web-server/control-an-fpga/js/opcode.js on lines 644..653
        section-4-web-server/control-an-fpga/js/opcode.js on lines 665..674
        section-4-web-server/control-an-fpga/js/opcode.js on lines 675..684
        section-4-web-server/control-an-fpga/js/opcode.js on lines 696..705
        section-4-web-server/control-an-fpga/js/opcode.js on lines 706..715
        section-4-web-server/control-an-fpga/js/opcode.js on lines 727..736
        section-4-web-server/control-an-fpga/js/opcode.js on lines 737..746
        section-4-web-server/control-an-fpga/js/opcode.js on lines 758..767
        section-4-web-server/control-an-fpga/js/opcode.js on lines 768..777
        section-4-web-server/control-an-fpga/js/opcode.js on lines 802..811
        section-4-web-server/control-an-fpga/js/opcode.js on lines 833..842
        section-4-web-server/control-an-fpga/js/opcode.js on lines 854..863
        section-4-web-server/control-an-fpga/js/opcode.js on lines 864..873
        section-4-web-server/control-an-fpga/js/opcode.js on lines 885..894
        section-4-web-server/control-an-fpga/js/opcode.js on lines 895..904
        section-4-web-server/control-an-fpga/js/opcode.js on lines 916..925
        section-4-web-server/control-an-fpga/js/opcode.js on lines 926..935
        section-4-web-server/control-an-fpga/js/opcode.js on lines 947..956
        section-4-web-server/control-an-fpga/js/opcode.js on lines 957..966
        section-4-web-server/control-an-fpga/js/opcode.js on lines 978..987
        section-4-web-server/control-an-fpga/js/opcode.js on lines 988..997
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1009..1018
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1019..1028
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1040..1049
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1050..1059
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1071..1080
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1081..1090
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1102..1111
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1112..1121
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1133..1142
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1143..1152
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1164..1173
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1174..1183
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1195..1204
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1205..1214
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1226..1235
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1236..1245
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1257..1266
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1267..1276

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 68.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Similar blocks of code found in 77 locations. Consider refactoring.
        Open

        function data_in_b_zero_5_onmouseover() {
          switch(data_in_b_5_state) {
              case "low":
                  document.getElementById("data_in_b_zero_5").style.backgroundColor=lightgreen;
                  break;
        Severity: Major
        Found in section-4-web-server/control-an-fpga/js/opcode.js and 76 other locations - About 1 hr to fix
        section-4-web-server/control-an-fpga/js/opcode.js on lines 52..61
        section-4-web-server/control-an-fpga/js/opcode.js on lines 73..82
        section-4-web-server/control-an-fpga/js/opcode.js on lines 83..92
        section-4-web-server/control-an-fpga/js/opcode.js on lines 104..113
        section-4-web-server/control-an-fpga/js/opcode.js on lines 114..123
        section-4-web-server/control-an-fpga/js/opcode.js on lines 135..144
        section-4-web-server/control-an-fpga/js/opcode.js on lines 145..154
        section-4-web-server/control-an-fpga/js/opcode.js on lines 166..175
        section-4-web-server/control-an-fpga/js/opcode.js on lines 176..185
        section-4-web-server/control-an-fpga/js/opcode.js on lines 197..206
        section-4-web-server/control-an-fpga/js/opcode.js on lines 207..216
        section-4-web-server/control-an-fpga/js/opcode.js on lines 228..237
        section-4-web-server/control-an-fpga/js/opcode.js on lines 238..247
        section-4-web-server/control-an-fpga/js/opcode.js on lines 259..268
        section-4-web-server/control-an-fpga/js/opcode.js on lines 269..278
        section-4-web-server/control-an-fpga/js/opcode.js on lines 303..312
        section-4-web-server/control-an-fpga/js/opcode.js on lines 324..333
        section-4-web-server/control-an-fpga/js/opcode.js on lines 334..343
        section-4-web-server/control-an-fpga/js/opcode.js on lines 355..364
        section-4-web-server/control-an-fpga/js/opcode.js on lines 365..374
        section-4-web-server/control-an-fpga/js/opcode.js on lines 386..395
        section-4-web-server/control-an-fpga/js/opcode.js on lines 396..405
        section-4-web-server/control-an-fpga/js/opcode.js on lines 417..426
        section-4-web-server/control-an-fpga/js/opcode.js on lines 427..436
        section-4-web-server/control-an-fpga/js/opcode.js on lines 448..457
        section-4-web-server/control-an-fpga/js/opcode.js on lines 458..467
        section-4-web-server/control-an-fpga/js/opcode.js on lines 479..488
        section-4-web-server/control-an-fpga/js/opcode.js on lines 489..498
        section-4-web-server/control-an-fpga/js/opcode.js on lines 510..519
        section-4-web-server/control-an-fpga/js/opcode.js on lines 520..529
        section-4-web-server/control-an-fpga/js/opcode.js on lines 541..550
        section-4-web-server/control-an-fpga/js/opcode.js on lines 551..560
        section-4-web-server/control-an-fpga/js/opcode.js on lines 572..581
        section-4-web-server/control-an-fpga/js/opcode.js on lines 582..591
        section-4-web-server/control-an-fpga/js/opcode.js on lines 603..612
        section-4-web-server/control-an-fpga/js/opcode.js on lines 613..622
        section-4-web-server/control-an-fpga/js/opcode.js on lines 634..643
        section-4-web-server/control-an-fpga/js/opcode.js on lines 644..653
        section-4-web-server/control-an-fpga/js/opcode.js on lines 665..674
        section-4-web-server/control-an-fpga/js/opcode.js on lines 675..684
        section-4-web-server/control-an-fpga/js/opcode.js on lines 696..705
        section-4-web-server/control-an-fpga/js/opcode.js on lines 706..715
        section-4-web-server/control-an-fpga/js/opcode.js on lines 727..736
        section-4-web-server/control-an-fpga/js/opcode.js on lines 737..746
        section-4-web-server/control-an-fpga/js/opcode.js on lines 758..767
        section-4-web-server/control-an-fpga/js/opcode.js on lines 768..777
        section-4-web-server/control-an-fpga/js/opcode.js on lines 802..811
        section-4-web-server/control-an-fpga/js/opcode.js on lines 823..832
        section-4-web-server/control-an-fpga/js/opcode.js on lines 833..842
        section-4-web-server/control-an-fpga/js/opcode.js on lines 854..863
        section-4-web-server/control-an-fpga/js/opcode.js on lines 864..873
        section-4-web-server/control-an-fpga/js/opcode.js on lines 885..894
        section-4-web-server/control-an-fpga/js/opcode.js on lines 895..904
        section-4-web-server/control-an-fpga/js/opcode.js on lines 916..925
        section-4-web-server/control-an-fpga/js/opcode.js on lines 926..935
        section-4-web-server/control-an-fpga/js/opcode.js on lines 957..966
        section-4-web-server/control-an-fpga/js/opcode.js on lines 978..987
        section-4-web-server/control-an-fpga/js/opcode.js on lines 988..997
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1009..1018
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1019..1028
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1040..1049
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1050..1059
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1071..1080
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1081..1090
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1102..1111
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1112..1121
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1133..1142
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1143..1152
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1164..1173
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1174..1183
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1195..1204
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1205..1214
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1226..1235
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1236..1245
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1257..1266
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1267..1276

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 68.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Similar blocks of code found in 77 locations. Consider refactoring.
        Open

        function opcode_one_1_onmouseout() {
            switch(opcode_1_state) {
                case "low":
                    document.getElementById("opcode_one_1").style.backgroundColor=white;
                    break;
        Severity: Major
        Found in section-4-web-server/control-an-fpga/js/opcode.js and 76 other locations - About 1 hr to fix
        section-4-web-server/control-an-fpga/js/opcode.js on lines 52..61
        section-4-web-server/control-an-fpga/js/opcode.js on lines 73..82
        section-4-web-server/control-an-fpga/js/opcode.js on lines 83..92
        section-4-web-server/control-an-fpga/js/opcode.js on lines 104..113
        section-4-web-server/control-an-fpga/js/opcode.js on lines 114..123
        section-4-web-server/control-an-fpga/js/opcode.js on lines 135..144
        section-4-web-server/control-an-fpga/js/opcode.js on lines 145..154
        section-4-web-server/control-an-fpga/js/opcode.js on lines 166..175
        section-4-web-server/control-an-fpga/js/opcode.js on lines 197..206
        section-4-web-server/control-an-fpga/js/opcode.js on lines 207..216
        section-4-web-server/control-an-fpga/js/opcode.js on lines 228..237
        section-4-web-server/control-an-fpga/js/opcode.js on lines 238..247
        section-4-web-server/control-an-fpga/js/opcode.js on lines 259..268
        section-4-web-server/control-an-fpga/js/opcode.js on lines 269..278
        section-4-web-server/control-an-fpga/js/opcode.js on lines 303..312
        section-4-web-server/control-an-fpga/js/opcode.js on lines 324..333
        section-4-web-server/control-an-fpga/js/opcode.js on lines 334..343
        section-4-web-server/control-an-fpga/js/opcode.js on lines 355..364
        section-4-web-server/control-an-fpga/js/opcode.js on lines 365..374
        section-4-web-server/control-an-fpga/js/opcode.js on lines 386..395
        section-4-web-server/control-an-fpga/js/opcode.js on lines 396..405
        section-4-web-server/control-an-fpga/js/opcode.js on lines 417..426
        section-4-web-server/control-an-fpga/js/opcode.js on lines 427..436
        section-4-web-server/control-an-fpga/js/opcode.js on lines 448..457
        section-4-web-server/control-an-fpga/js/opcode.js on lines 458..467
        section-4-web-server/control-an-fpga/js/opcode.js on lines 479..488
        section-4-web-server/control-an-fpga/js/opcode.js on lines 489..498
        section-4-web-server/control-an-fpga/js/opcode.js on lines 510..519
        section-4-web-server/control-an-fpga/js/opcode.js on lines 520..529
        section-4-web-server/control-an-fpga/js/opcode.js on lines 541..550
        section-4-web-server/control-an-fpga/js/opcode.js on lines 551..560
        section-4-web-server/control-an-fpga/js/opcode.js on lines 572..581
        section-4-web-server/control-an-fpga/js/opcode.js on lines 582..591
        section-4-web-server/control-an-fpga/js/opcode.js on lines 603..612
        section-4-web-server/control-an-fpga/js/opcode.js on lines 613..622
        section-4-web-server/control-an-fpga/js/opcode.js on lines 634..643
        section-4-web-server/control-an-fpga/js/opcode.js on lines 644..653
        section-4-web-server/control-an-fpga/js/opcode.js on lines 665..674
        section-4-web-server/control-an-fpga/js/opcode.js on lines 675..684
        section-4-web-server/control-an-fpga/js/opcode.js on lines 696..705
        section-4-web-server/control-an-fpga/js/opcode.js on lines 706..715
        section-4-web-server/control-an-fpga/js/opcode.js on lines 727..736
        section-4-web-server/control-an-fpga/js/opcode.js on lines 737..746
        section-4-web-server/control-an-fpga/js/opcode.js on lines 758..767
        section-4-web-server/control-an-fpga/js/opcode.js on lines 768..777
        section-4-web-server/control-an-fpga/js/opcode.js on lines 802..811
        section-4-web-server/control-an-fpga/js/opcode.js on lines 823..832
        section-4-web-server/control-an-fpga/js/opcode.js on lines 833..842
        section-4-web-server/control-an-fpga/js/opcode.js on lines 854..863
        section-4-web-server/control-an-fpga/js/opcode.js on lines 864..873
        section-4-web-server/control-an-fpga/js/opcode.js on lines 885..894
        section-4-web-server/control-an-fpga/js/opcode.js on lines 895..904
        section-4-web-server/control-an-fpga/js/opcode.js on lines 916..925
        section-4-web-server/control-an-fpga/js/opcode.js on lines 926..935
        section-4-web-server/control-an-fpga/js/opcode.js on lines 947..956
        section-4-web-server/control-an-fpga/js/opcode.js on lines 957..966
        section-4-web-server/control-an-fpga/js/opcode.js on lines 978..987
        section-4-web-server/control-an-fpga/js/opcode.js on lines 988..997
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1009..1018
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1019..1028
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1040..1049
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1050..1059
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1071..1080
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1081..1090
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1102..1111
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1112..1121
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1133..1142
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1143..1152
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1164..1173
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1174..1183
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1195..1204
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1205..1214
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1226..1235
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1236..1245
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1257..1266
        section-4-web-server/control-an-fpga/js/opcode.js on lines 1267..1276

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 68.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Severity
        Category
        Status
        Source
        Language