[inst/examples/example_distanceFromEachPoint.R:37:2:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/inst/examples/example_distanceFromEachPoint.R#L37) *style:* **Commented code should be removed.**
```r
#beginCluster(3) # can do parallel
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[inst/examples/example_distanceFromEachPoint.R:40:2:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/inst/examples/example_distanceFromEachPoint.R#L40) *style:* **Commented code should be removed.**
```r
#endCluster() # if beginCluster was run
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:82:9:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L82) *style:* **Do not place spaces around code in parentheses or square brackets.**
```r
    if ( method != "RMexp") {
        ^
```
[R/initialize.R:237:3:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L237) *style:* **Variable or function name should be lowerCamelCase.**
```r
  X <- c(jitter(sort(rbeta(nPoints, betaPar, betaPar) * (maxX - minX) + minX)),
  ^
```
[R/initialize.R:239:3:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L239) *style:* **Variable or function name should be lowerCamelCase.**
```r
  Y <- c(jitter(sort(rbeta(nPoints / 2, betaPar, betaPar) * (maxY - meanY) + meanY)),
  ^
```
[R/initialize.R:243:3:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L243) *style:* **Variable or function name should be lowerCamelCase.**
```r
  Sr1 <- Polygon(cbind(X + xAdd, Y + yAdd))
  ^~~
```
[R/initialize.R:244:3:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L244) *style:* **Variable or function name should be lowerCamelCase.**
```r
  Srs1 <- Polygons(list(Sr1), "s1")
  ^~~~
```
[R/initialize.R:341:3:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L341) *style:* **Commented code should be removed.**
```r
# ### INCORPORATE RELEVANT PARTS OF THIS OLD INIT FUNCTION INTO INITCOORDS()
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:346:3:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L346) *style:* **Commented code should be removed.**
```r
# #'                      (currently only \code{RasterLayer} or
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:347:3:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L347) *style:* **Commented code should be removed.**
```r
# #'                      \code{SpatialPolygonsDataFrame}) accepted.
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:357:7:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L357) *style:* **Commented code should be removed.**
```r
#     ext <- extent(agentlocation)
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:359:9:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L359) *style:* **Commented code should be removed.**
```r
#       #            nonNAs <- !is.na(getvalue(probinit))
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:360:9:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L360) *style:* **Commented code should be removed.**
```r
#       nonNAs <- !is.na(getValues(probinit))
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:361:9:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L361) *style:* **Commented code should be removed.**
```r
#       wh.nonNAs <- which(nonNAs)
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:362:9:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L362) *style:* **Commented code should be removed.**
```r
#       #            ProbInit.v <- cumsum(getvalue(probinit)[nonNAs])
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:363:9:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L363) *style:* **Commented code should be removed.**
```r
#       ProbInit.v <- cumsum(getValues(probinit)[nonNAs])
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:365:11:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L365) *style:* **Commented code should be removed.**
```r
#         ran <- runif(numagents,0,1)
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:366:11:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L366) *style:* **Commented code should be removed.**
```r
#         fI <- findInterval(ran, ProbInit.v)+1
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:367:11:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L367) *style:* **Commented code should be removed.**
```r
#         fI2 <- wh.nonNAs[fI]
          ^~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:368:11:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L368) *style:* **Commented code should be removed.**
```r
#         last.ran <- runif(numagents,0,1)
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:369:11:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L369) *style:* **Commented code should be removed.**
```r
#         last.fI <- findInterval(last.ran, ProbInit.v)+1
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:370:11:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L370) *style:* **Commented code should be removed.**
```r
#         last.fI2 <- wh.nonNAs[last.fI]
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:372:11:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L372) *style:* **Commented code should be removed.**
```r
#         #                va <- getvalue(probinit)[nonNAs]
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:373:11:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L373) *style:* **Commented code should be removed.**
```r
#         va <- getValues(probinit)[nonNAs]
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:374:11:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L374) *style:* **Commented code should be removed.**
```r
#         ran <- runif(length(va), 0, 1)
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:375:11:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L375) *style:* **Commented code should be removed.**
```r
#         fI2 <- wh.nonNAs[ran<va]
          ^~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:377:11:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L377) *style:* **Commented code should be removed.**
```r
#         last.ran <- runif(length(fI2), 0, 1)
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:378:11:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L378) *style:* **Commented code should be removed.**
```r
#         last.fI <- findInterval(last.ran, ProbInit.v) + 1
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:379:11:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L379) *style:* **Commented code should be removed.**
```r
#         last.fI2 <- wh.nonNAs[last.fI]
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:381:11:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L381) *style:* **Commented code should be removed.**
```r
#         #                last.ran <- runif(length(fI2),0,1)
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:382:11:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L382) *style:* **Commented code should be removed.**
```r
#         #                last.fI2 <- wh.nonNAs[last.ran<va]
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:385:11:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L385) *style:* **Commented code should be removed.**
```r
#         position <- xyFromCell(agentlocation,fI2,spatial = TRUE)
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:387:11:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L387) *style:* **Commented code should be removed.**
```r
#         position <- coordinates(agentlocation)
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:389:11:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L389) *style:* **Commented code should be removed.**
```r
#         stop("need raster layer or Spatial Points object")
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:391:9:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L391) *style:* **Commented code should be removed.**
```r
#       numagents <- length(position)
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:399:13:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L399) *style:* **Commented code should be removed.**
```r
#           colnames(xy) = c("x", "y")
            ^~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:400:13:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L400) *style:* **Commented code should be removed.**
```r
#           position <- SpatialPoints(xy)
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:401:13:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L401) *style:* **Commented code should be removed.**
```r
#           position <- SpatialPoints(sampleRandom(agentlocation, numagents, xy = TRUE, sp = TRUE))
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:403:13:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L403) *style:* **Commented code should be removed.**
```r
#           sam <- sample(1:length(agentlocation),numagents)
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:404:13:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L404) *style:* **Commented code should be removed.**
```r
#           position <- SpatialPoints(agentlocation[sam,])
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:406:13:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L406) *style:* **Commented code should be removed.**
```r
#           stop("need raster layer or Spatial Points object")
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:413:13:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L413) *style:* **Commented code should be removed.**
```r
#           position <- SpatialPoints(agentlocation)
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:415:13:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L415) *style:* **Commented code should be removed.**
```r
#           stop("need raster layer or Spatial Points object")
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:417:11:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L417) *style:* **Commented code should be removed.**
```r
#         numagents <- length(position)
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:425:11:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L425) *style:* **Commented code should be removed.**
```r
#         numagents <- length(position)
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:429:7:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L429) *style:* **Commented code should be removed.**
```r
#     stop("Need to provide agentlocation, which can be a map layer")
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:431:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L431) *style:* **Commented code should be removed.**
```r
#   heading1 <- runif(numagents, 0, 360)
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:432:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L432) *style:* **Commented code should be removed.**
```r
#   distance <- runif(numagents, 0.1, 10)
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:434:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L434) *style:* **Commented code should be removed.**
```r
#   .Object@ID <- as.character(1:numagents)
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:435:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L435) *style:* **Commented code should be removed.**
```r
#   .Object@spatial <- position
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:436:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L436) *style:* **Commented code should be removed.**
```r
#   .Object@heading <- heading1
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:437:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L437) *style:* **Commented code should be removed.**
```r
#   .Object@distance <- distance
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/initialize.R:439:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/initialize.R#L439) *style:* **Commented code should be removed.**
```r
#   return(.Object)
    ^~~~~~~~~~~~~~~
```
[R/mapReduce.R:53:3:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/mapReduce.R#L53) *style:* **Variable or function name should be lowerCamelCase.**
```r
  BsumVec <- reduced[fullRasterVals] # join
  ^~~~~~~
```
[R/neighbourhood.R:112:1:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/neighbourhood.R#L112) *style:* **Variable or function name should be lowerCamelCase.**
```r
adj.raw <- function(x = NULL, cells, directions = 8, sort = FALSE, pairs = TRUE,
^~~~~~~
```
[R/neighbourhood.R:114:21:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/neighbourhood.R#L114) *style:* **Variable or function name should be lowerCamelCase.**
```r
                    match.adjacent = FALSE, cutoff.for.data.table = 2e3,
                    ^~~~~~~~~~~~~~
```
[R/neighbourhood.R:114:45:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/neighbourhood.R#L114) *style:* **Variable or function name should be lowerCamelCase.**
```r
                    match.adjacent = FALSE, cutoff.for.data.table = 2e3,
                                            ^~~~~~~~~~~~~~~~~~~~~
```
[R/neighbourhood.R:233:1:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/neighbourhood.R#L233) *style:* **Lines should not be more than 100 characters.**
```r
              ((adj[, "from"] %% numCol + adj[, "to"] %% numCol) == 1)) # | #right & left edge cells, with neighbours wrapped
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/neighbourhood.R:238:1:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/neighbourhood.R#L238) *style:* **Lines should not be more than 100 characters.**
```r
              ((adj[, "from"] %% numCol + adj[, "to"] %% numCol) == 1)) # | #right & left edge cells, with neighbours wrapped
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/neighbourhood.R:297:1:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/neighbourhood.R#L297) *style:* **Lines should not be more than 100 characters.**
```r
              ((from %% numCol + to %% numCol) == 1))# | #right & left edge cells, with neighbours wrapped
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/neighbourhood.R:813:29:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/neighbourhood.R#L813) *style:* **Variable or function name should be lowerCamelCase.**
```r
setGeneric("wrap", function(X, bounds, withHeading) {
                            ^
```
[R/neighbourhood.R:822:25:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/neighbourhood.R#L822) *style:* **Variable or function name should be lowerCamelCase.**
```r
  definition = function(X, bounds) {
                        ^
```
[R/neighbourhood.R:839:25:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/neighbourhood.R#L839) *style:* **Variable or function name should be lowerCamelCase.**
```r
  definition = function(X, bounds) {
                        ^
```
[R/neighbourhood.R:849:25:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/neighbourhood.R#L849) *style:* **Variable or function name should be lowerCamelCase.**
```r
  definition = function(X, bounds) {
                        ^
```
[R/neighbourhood.R:850:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/neighbourhood.R#L850) *style:* **Variable or function name should be lowerCamelCase.**
```r
    X <- wrap(X, bounds = extent(bounds))
    ^
```
[R/neighbourhood.R:859:25:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/neighbourhood.R#L859) *style:* **Variable or function name should be lowerCamelCase.**
```r
  definition = function(X, bounds) {
                        ^
```
[R/neighbourhood.R:860:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/neighbourhood.R#L860) *style:* **Variable or function name should be lowerCamelCase.**
```r
    X <- wrap(X, bounds = extent(bounds))
    ^
```
[R/neighbourhood.R:869:25:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/neighbourhood.R#L869) *style:* **Variable or function name should be lowerCamelCase.**
```r
  definition = function(X, bounds) {
                        ^
```
[R/neighbourhood.R:872:7:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/neighbourhood.R#L872) *style:* **Variable or function name should be lowerCamelCase.**
```r
      X <- wrap(X, bounds = extent(bounds))
      ^
```
[R/neighbourhood.R:884:25:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/neighbourhood.R#L884) *style:* **Variable or function name should be lowerCamelCase.**
```r
  definition = function(X, bounds, withHeading) {
                        ^
```
[R/neighbourhood.R:909:25:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/neighbourhood.R#L909) *style:* **Variable or function name should be lowerCamelCase.**
```r
  definition = function(X, bounds, withHeading) {
                        ^
```
[R/neighbourhood.R:910:7:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/neighbourhood.R#L910) *style:* **Variable or function name should be lowerCamelCase.**
```r
      X <- wrap(X, bounds = extent(bounds), withHeading = withHeading)
      ^
```
[R/neighbourhood.R:919:25:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/neighbourhood.R#L919) *style:* **Variable or function name should be lowerCamelCase.**
```r
  definition = function(X, bounds, withHeading) {
                        ^
```
[R/neighbourhood.R:922:7:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/neighbourhood.R#L922) *style:* **Variable or function name should be lowerCamelCase.**
```r
      X <- wrap(X, bounds = extent(bounds), withHeading = withHeading)
      ^
```
[R/neighbourhood.R:1059:40:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/neighbourhood.R#L1059) *style:* **Commas should always have a space after.**
```r
  cc <- cbind(pureCircle2[, "x"] - xy[,"x"], pureCircle2[, "y"] - xy[, "y"])
                                       ^
```
[R/probability.R:41:35:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/probability.R#L41) *style:* **Place a space before left parenthesis, except in a function call.**
```r
    1 / sqrt(var * 2 * pi) * exp(-((theta - mu + 2 * pi * k) ^ 2) / (2 * var))
                                  ^
```
[R/probability.R:44:3:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/probability.R#L44) *style:* **Variable or function name should be lowerCamelCase.**
```r
  Next <- term(theta, mu, var, k)
  ^~~~
```
[R/probability.R:45:3:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/probability.R#L45) *style:* **Variable or function name should be lowerCamelCase.**
```r
  Last <- Next
  ^~~~
```
[R/RcppExports.R:68:20:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/RcppExports.R#L68) *style:* **Variable or function name should be lowerCamelCase.**
```r
runifC <- function(N) {
                   ^
```
[R/RcppExports.R:71:1:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/RcppExports.R#L71) *style:* **Trailing blank lines are superfluous.**
```r

^
```
[R/SELES.R:53:23:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/SELES.R#L53) *style:* **Variable or function name should be lowerCamelCase.**
```r
numAgents <- function(N, probInit) {
                      ^
```
[R/spades-tools-deprecated.R:53:1:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/spades-tools-deprecated.R#L53) *style:* **Trailing blank lines are superfluous.**
```r

^
```
[R/splitRaster.R:116:1:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/splitRaster.R#L116) *style:* **Lines should not be more than 100 characters.**
```r
      clusterApplyLB(cl = cl, x = seq_along(extents), fun = croppy, e = extents, r = r, path = path, rType = rType)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/spread.R:538:8:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/spread.R#L538) *style:* **Commented code should be removed.**
```r
      #isNASpreadProb <- is.na(spreadProb[])
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/spread.R:540:11:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/spread.R#L540) *style:* **Commented code should be removed.**
```r
      #   isNASpreadProb <- is.na(spreadProb[])
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/spread.R:541:11:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/spread.R#L541) *style:* **Commented code should be removed.**
```r
      #   spreadProb[isNASpreadProb] <- 0L
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/spread.R:942:41:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/spread.R#L942) *style:* **Place a space before left parenthesis, except in a function call.**
```r
              notDupsEvents <- notDups[-(1:(nrSpreads - nrPotentials))]
                                        ^
```
[R/spread2.R:5:1:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/spread2.R#L5) *style:* **Lines should not be more than 100 characters.**
```r
                           "quantityAdj", "quantityAdj2", "state", "size", "tooBigByNCells", "V1", "proportion"
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/spread2.R:674:12:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/spread2.R#L674) *style:* **Commented code should be removed.**
```r
          #pureCircle <- unique(pureCircle)
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/spread2.R:759:13:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/spread2.R#L759) *style:* **Commented code should be removed.**
```r
          # colnamesDtPot <- colnames(dtPotential)
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/spread2.R:760:13:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/spread2.R#L760) *style:* **Commented code should be removed.**
```r
          # ll <-  lapply(colnamesDtPot, function(x) dtPotential[[x]][!spreadProbNA])
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/spread2.R:761:13:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/spread2.R#L761) *style:* **Commented code should be removed.**
```r
          # names(ll) <- colnamesDtPot
            ^~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/spread2.R:762:13:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/spread2.R#L762) *style:* **Commented code should be removed.**
```r
          # dtPotential <- as.data.table(ll)
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/spread2.R:772:1:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/spread2.R#L772) *style:* **Lines should not be more than 100 characters.**
```r
                                                                   .I[sample.int(length(numNeighs), size = numNeighs, prob = spreadProbRel)],
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/spread2.R:787:7:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/spread2.R#L787) *style:* **Variable or function name should be lowerCamelCase.**
```r
      NAaSP <- !is.na(actualSpreadProb)
      ^~~~~
```
[R/spread2.R:789:42:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/spread2.R#L789) *style:* **Commas should always have a space after.**
```r
        dtPotential <- dtPotential[NAaSP,]
                                         ^
```
[R/spread2.R:830:1:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/spread2.R#L830) *style:* **Lines should not be more than 100 characters.**
```r
        # this is to prevent overlap within an event... in some cases, overlap within event is desired, so skip this block
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/spread2.R:848:1:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/spread2.R#L848) *style:* **Lines should not be more than 100 characters.**
```r
        #successCells <- na.omit(successCells[!dupsWithinDtPotential]) # remove the dupsWithinDtPotential
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/spread2.R:848:10:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/R/spread2.R#L848) *style:* **Commented code should be removed.**
```r
        #successCells <- na.omit(successCells[!dupsWithinDtPotential]) # remove the dupsWithinDtPotential
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-examples.R:3:47:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-examples.R#L3) *style:* **Opening curly braces should never go on their own line and should always be followed by a new line.**
```r
  if (grepl("VIC-", Sys.info()["nodename"]))  { # for debugging only
                                              ^
```
[tests/testthat/test-examples.R:4:11:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-examples.R#L4) *style:* **Commented code should be removed.**
```r
    cat("#START##############\n", file = tmpExFile, append = FALSE)
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-examples.R:14:15:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-examples.R#L14) *style:* **Closing curly-braces should always be on their own line, unless it's followed by an else.**
```r
    setwd(owd)}
              ^
```
[tests/testthat/test-examples.R:16:46:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-examples.R#L16) *style:* **Opening curly braces should never go on their own line and should always be followed by a new line.**
```r
  if (grepl("VIC-", Sys.info()["nodename"])) { # for debugging only
                                             ^
```
[tests/testthat/test-examples.R:17:1:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-examples.R#L17) *style:* **Lines should not be more than 100 characters.**
```r
    cat(paste("All files exist: ", isTRUE(all(file.exists(exFiles))), "\n"), file = tmpExFile, append = TRUE)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-examples.R:22:48:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-examples.R#L22) *style:* **Opening curly braces should never go on their own line and should always be followed by a new line.**
```r
    if (grepl("VIC-", Sys.info()["nodename"])) { # for debugging only
                                               ^
```
[tests/testthat/test-mapReduce.R:23:4:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L23) *style:* **Commented code should be removed.**
```r
  #expect_equal(sort(unique(getValues(biomass))), sort(reducedDT$biomass))
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-mapReduce.R:27:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L27) *style:* **Commented code should be removed.**
```r
#   library(data.table)
    ^~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-mapReduce.R:28:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L28) *style:* **Commented code should be removed.**
```r
#   library(raster)
    ^~~~~~~~~~~~~~~
```
[tests/testthat/test-mapReduce.R:31:6:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L31) *style:* **Commented code should be removed.**
```r
#    detach("package:data.table")
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-mapReduce.R:35:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L35) *style:* **Commented code should be removed.**
```r
#   ras <- raster(extent(0,15,0,15), res=1)
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-mapReduce.R:36:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L36) *style:* **Commented code should be removed.**
```r
#   fullRas <- randomPolygons(ras, numTypes=5, speedup=1, p=0.3)
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-mapReduce.R:37:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L37) *style:* **Commented code should be removed.**
```r
#   names(fullRas) <- "mapcodeAll"
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-mapReduce.R:38:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L38) *style:* **Commented code should be removed.**
```r
#   uniqueComms <- raster::unique(fullRas)
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-mapReduce.R:42:7:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L42) *style:* **Commented code should be removed.**
```r
#     biomass=rnbinom(length(uniqueComms), mu=4000, 0.4)
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-mapReduce.R:44:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L44) *style:* **Commented code should be removed.**
```r
#   biomass <- rasterizeReduced(reducedDT, fullRas, "biomass")
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-mapReduce.R:46:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L46) *style:* **Commented code should be removed.**
```r
#   expect_equal(sort(unique(getValues(biomass))), sort(reducedDT$biomass))
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-mapReduce.R:47:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L47) *style:* **Commented code should be removed.**
```r
#   expect_equal(length(unique(getValues(biomass))), length(unique(getValues(fullRas))))
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-mapReduce.R:49:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L49) *style:* **Commented code should be removed.**
```r
#   setkey(reducedDT, biomass)
    ^~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-mapReduce.R:50:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L50) *style:* **Commented code should be removed.**
```r
#   communities <- rasterizeReduced(reducedDT, fullRas, "communities")
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-mapReduce.R:51:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L51) *style:* **Commented code should be removed.**
```r
#   expect_equal(sort(unique(getValues(communities))), sort(reducedDT$communities))
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-mapReduce.R:52:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L52) *style:* **Commented code should be removed.**
```r
#   expect_equal(length(unique(getValues(communities))), length(unique(getValues(fullRas))))
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-mapReduce.R:56:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L56) *style:* **Commented code should be removed.**
```r
#   library(data.table)
    ^~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-mapReduce.R:57:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L57) *style:* **Commented code should be removed.**
```r
#   library(raster)
    ^~~~~~~~~~~~~~~
```
[tests/testthat/test-mapReduce.R:60:6:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L60) *style:* **Commented code should be removed.**
```r
#    detach("package:data.table")
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-mapReduce.R:64:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L64) *style:* **Commented code should be removed.**
```r
#   ras <- raster(extent(0, 15, 0, 15), res = 1)
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-mapReduce.R:65:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L65) *style:* **Commented code should be removed.**
```r
#   fullRas <- randomPolygons(ras, numTypes = 5, speedup = 1, p = 0.3)
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-mapReduce.R:67:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L67) *style:* **Commented code should be removed.**
```r
#   uniqueComms <- raster::unique(fullRas)
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-mapReduce.R:71:7:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L71) *style:* **Commented code should be removed.**
```r
#     biomass=rnbinom(length(uniqueComms), mu = 4000, 0.4)
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-mapReduce.R:73:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L73) *style:* **Commented code should be removed.**
```r
#   biomass <- rasterizeReduced(reducedDT, fullRas, "biomass")
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-mapReduce.R:75:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L75) *style:* **Commented code should be removed.**
```r
#   setkey(reducedDT, biomass)
    ^~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-mapReduce.R:76:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L76) *style:* **Commented code should be removed.**
```r
#   communities <- rasterizeReduced(reducedDT, fullRas, "communities")
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-mapReduce.R:77:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L77) *style:* **Commented code should be removed.**
```r
#   expect_equal(sort(unique(getValues(communities))), sort(reducedDT$communities))
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-mapReduce.R:81:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L81) *style:* **Commented code should be removed.**
```r
#   library(data.table)
    ^~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-mapReduce.R:82:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L82) *style:* **Commented code should be removed.**
```r
#   library(raster)
    ^~~~~~~~~~~~~~~
```
[tests/testthat/test-mapReduce.R:85:6:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L85) *style:* **Commented code should be removed.**
```r
#    detach("package:data.table")
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-mapReduce.R:89:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L89) *style:* **Commented code should be removed.**
```r
#   ras <- raster(extent(0,15,0,15), res=1)
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-mapReduce.R:90:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L90) *style:* **Commented code should be removed.**
```r
#   fullRas <- randomPolygons(ras, numTypes=5, speedup=1, p=0.3)
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-mapReduce.R:91:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L91) *style:* **Commented code should be removed.**
```r
#   names(fullRas) <- "mapcodeAll"
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-mapReduce.R:92:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L92) *style:* **Commented code should be removed.**
```r
#   uniqueComms <- raster::unique(fullRas)
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-mapReduce.R:96:7:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L96) *style:* **Commented code should be removed.**
```r
#     biomass=rnbinom(length(uniqueComms), mu=4000, 0.4)
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-mapReduce.R:98:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L98) *style:* **Commented code should be removed.**
```r
#   biomass <- rasterizeReduced(reducedDT, fullRas, "biomass")
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-mapReduce.R:100:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L100) *style:* **Commented code should be removed.**
```r
#   setkey(reducedDT, biomass)
    ^~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-mapReduce.R:101:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L101) *style:* **Commented code should be removed.**
```r
#   communities <- rasterizeReduced(reducedDT, fullRas, "communities")
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-mapReduce.R:102:5:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-mapReduce.R#L102) *style:* **Commented code should be removed.**
```r
#   expect_equal(length(unique(getValues(communities))), length(unique(getValues(fullRas))))
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-randomPolygon.R:25:60:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-randomPolygon.R#L25) *style:* **Put spaces around all infix operators.**
```r
  expect_true(base::abs(base::abs(polyArea - area)) <  area/4) ## TODO: why is this area/4?
                                                          ~^~
```
[tests/testthat/test-splitRaster.R:148:38:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-splitRaster.R#L148) *style:* **Commas should always have a space after.**
```r
  expect_identical(dataType(y4[[1]]),"INT1U")
                                     ^
```
[tests/testthat/test-splitRaster.R:165:1:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-splitRaster.R#L165) *style:* **Lines should not be more than 100 characters.**
```r
    tmpdir <- file.path(tempdir(), "splitRaster-test-parallel") %>% reproducible::checkPath(create = TRUE)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-splitRaster.R:168:8:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-splitRaster.R#L168) *style:* **Commented code should be removed.**
```r
      #detach("package:raster")
       ^~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-splitRaster.R:226:1:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-splitRaster.R#L226) *style:* **Lines should not be more than 100 characters.**
```r
  tmpdir <- file.path(tempdir(), "splitRaster-test-large") %>% reproducible::checkPath(create = TRUE)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-splitRaster.R:264:4:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-splitRaster.R#L264) *style:* **Commented code should be removed.**
```r
  #expect_equal(min(values(m)), min(values(r))) ## Error: cannot allocate vector of size 4.8 Gb
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-splitRaster.R:283:4:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-splitRaster.R#L283) *style:* **Commented code should be removed.**
```r
  #expect_equal(max(values(m1)), max(values(r)))
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-splitRaster.R:284:4:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-splitRaster.R#L284) *style:* **Commented code should be removed.**
```r
  #expect_equal(min(values(m1)), min(values(r)))
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-spread.R:209:1:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-spread.R#L209) *style:* **Lines should not be more than 100 characters.**
```r
    if (interactive()) Plot(circEdge, addTo = "circs", cols = c("transparent", rainbow(numCircs)[whCirc]))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-spread2.R:148:4:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-spread2.R#L148) *style:* **Commented code should be removed.**
```r
  #quickDT <- data.table(id = seq_along(sams), initialPixels = sams, key = "id")
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-spread2.R:150:4:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-spread2.R#L150) *style:* **Commented code should be removed.**
```r
  #cirOut <- quickDT[cirOut, on = ]
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-spread2.R:473:1:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-spread2.R#L473) *style:* **Lines should not be more than 100 characters.**
```r
  ##                                    expr       min        lq      mean   median        uq       max neval
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-spread2.R:474:1:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-spread2.R#L474) *style:* **Lines should not be more than 100 characters.**
```r
  ##         iterativeFun(ras, FALSE, n, sp)  3.096979 12.642477  73.02248 35.17520  91.10528  764.4073   300
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-spread2.R:475:1:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-spread2.R#L475) *style:* **Lines should not be more than 100 characters.**
```r
  ##      nonIterativeFun(ras, FALSE, n, sp)  1.509484  6.555565  31.18444 14.91066  42.78317  158.5237   300
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-spread2.R:476:1:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-spread2.R#L476) *style:* **Lines should not be more than 100 characters.**
```r
  ##           origSpread(ras, FALSE, n, sp)  5.154006  7.555631  14.87158 11.49005  17.50599  231.5487   300
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-spread2.R:477:1:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-spread2.R#L477) *style:* **Lines should not be more than 100 characters.**
```r
  ## origSpreadIterations(ras, FALSE, n, sp) 10.754669 51.524368 141.48620 93.61996 169.10808 2110.2683   300
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-spread2.R:688:38:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-spread2.R#L688) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  ciCentre[seq_len(ncell(ciCentre))[-(ncell(ciCentre) / 2 - ncol(ciCentre) / 2)]] <- NA_integer_
                                     ^
```
[tests/testthat/test-spread2.R:884:1:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-spread2.R#L884) *style:* **Lines should not be more than 100 characters.**
```r
                       spreadProb = 0.23, persistProb = 0, iterations = 10, directions = 8L, plot.it = FALSE)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-spread2.R:886:1:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-spread2.R#L886) *style:* **Lines should not be more than 100 characters.**
```r
                      spreadProb = 0.23, persistProb = 0.8, iterations = 10, directions = 8L, plot.it = FALSE)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-spread2.R:891:3:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-spread2.R#L891) *style:* **Variable or function name should be lowerCamelCase.**
```r
  M <- matrix(0.8, nrow = 50, ncol = 50)
  ^
```
[tests/testthat/test-spread2.R:898:35:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-spread2.R#L898) *style:* **Put spaces around all infix operators.**
```r
  start <- c(50, length(landscape)-49)
                                 ~^~
```
[tests/testthat/test-spread2.R:902:1:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-spread2.R#L902) *style:* **Lines should not be more than 100 characters.**
```r
                        spreadProb = 0.23, persistProb = persistRas, iterations = 10, directions = 8L,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[tests/testthat/test-spread2.R:916:14:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-spread2.R#L916) *style:* **Use <-, not =, for assignment.**
```r
  spreadProb = landscape
             ^
```
[tests/testthat/test-spread2.R:918:72:](https://github.com/PredictiveEcology/SpaDES.tools/blob/be771d9c34e5eda53aee0abf9c59938a81b578e8/tests/testthat/test-spread2.R#L918) *style:* **Commas should always have a space after.**
```r
  expect_silent(spread2(landscape = landscape, spreadProb = spreadProb,start = start,
                                                                       ^
```


这个颜色是测试过的，印黑白能区分


Can we also push the `.graffle` files to the repo?  It looks non-trivial to convert Omnigraffle to something that doesn't require special tooling, but at least we should support the next person who might want to edit them.


while not filename[0].isalnum()
python style prefers not comparing with True/False and testing the variable, function return directly.
Filenames can start with numerics so no need to trim them. To guarantee a valid filename would need to check every character, might be string functions for filtering strings to specific charsets rather than implementing via loop


@gurumurthys thank you!


debug level is for additional diagnostic information. A download failure would either be a warning or error depending on the impact. This is likely a warning.


Exception too broad


@vicdus @ellentao - There have been several of these updates, with new releases in PyPI but without a release tag in the github repo.  Would be great to get a release tag for every release, as well as an update to the latest release so people visiting here know what the current version should be.


@ostoc


This takes us back to whole Dev vs. Ops discussion.  Should a developer even be defining triggers or should they just be writing functions and publishing them to a repo with Ops deploying, configuring, and exposing (via triggers) functions.  I'm firmly of the belief that config properties should not be in func.yaml as they are most likely environment specific.  But on triggers I'm not so sure and lean towards letting the developer of a function define how it is exposed by default in a given application in the func.yaml.  Of course Ops could add/update/delete any trigger after deployment so having a trigger defined in func.yaml doesn't tie their hands.


![](https://github.trello.services/images/mini-trello-icon.png) [test parent](https://trello.com/c/9pEpGbDm/1-test-parent)


Hi, @copumpkin. Thanks for your note.

It’s not an exception. The permissions that are required to set the default version of a policy correspond to the AWS API operations for the task. That is, as with most AWS permissions, there is a 1:1 mapping of the permissions action to the API operation.

In this case, the iam:CreatePolicyVersion action allows you to create a new version of the policy and to set that version as the default. The iam:SetDefaultPolicyVersion action allows you to set any existing version of the policy as the default. These are two separate API operations.

The problem was that several customers didn’t realize that you can set a policy version with the CreatePolicyVersion API operation, and have contacted AWS Support. They reported that they denied access to the iam:SetDefaultPolicyVersion action and can’t figure out why they can still set a new policy as the default version. We added some clarification around the issue.


This is a really huge elo loss! It seems I tremendously underestimated the importance of the various stats bonuses/penalties. I never cared to take a closer look at this part of the code. Definitely something I will do in the coming days.


Agree. I need to switch mindset a bit :) This above is a theoretical fix on request but I am pretty sure it works.


Old habits die hard! (Don’t need the semi colon here)


1. посмотри мой комментарий к этому методу в прошлой сдаче - он остается актуальным
2. методы которые ты используешь: `loose`, `win`, `draw`, `continue`...  они определены в модуле `Winner`, но ты его сюда явным образом не включаешь... как будет тот, кто читает твой код, догадываться где их искать ?
3. имя файла и имя модуля опять не совпадают


Test


зачем вообще было разносить эти методы на два модуля ?... не очень понимаю


You can remove this tmpToken stuff when you’re done.


Line 735 of `%red.r` says s.th. like `if mode = 'help [print read-cache %usage.txt]` so there one could do the extraction easily enough. It is then not a build step but a little bit of extra Rebol (later, Red) code.


Created multidev environment [mod-gift-guide#ci-47](https://dashboard.pantheon.io/sites/72035e91-bbeb-4fea-aa37-97b7ccd79d43#ci-47).

[![Visit Site](https://raw.githubusercontent.com/pantheon-systems/ci-drops-8/0.1.0/data/img/visit-site-36.png)](https://ci-47-mod-gift-guide.pantheonsite.io/)


Not always csv, change var name, path join takes a list, no need to call twice


как название модуля связано с методами, которые он содержит ?
плохо прослеживаю логику...


Unless this delay is necessary to finish writing the file safely don't sleep here. If this delay is part of rate limiting handle it further up the call stack


on the property/simpleproperty expression part: simpleproperty can only return a single thing (per object) so it's not suitable here, and propertyexpression would be inefficient because it calls getArray on the expression for you but I don't need the actual values held in the variable


уже написал про это в классе Игрок - плохая практика - прямое изменение аттриубута снаружи класса


Ahhhh 🙃 Would you mind opening a PR?


Yes, this needs to be fixed here!


Thanks!  I'll use the variant with an underscore instead, though, since msdn says that the unprefixed versions are deprecated.  Tried to fix this with fecb8214d5e95ad605e8b0d431bc332e07f2ad3f.


Ставь enter-ы между такими вещами


@ryanbr They embed mining script in this whitelisted file.

- http://i.imgur.com/iswWwEq.png
- https://github.com/hoshsadiq/adblock-nocoin-list/issues/265


好的


Use warning


правильней будет создать не модуль, а класс
создавать в игре инстнас этого класса, который будет отвечать за хранение денег текущей игры и их обращение
подумать какие операции с банком игры требуются и написать соответствующие методы


Update Composer dependencies (2018-07-05-17-53)

```
Loading composer repositories with package information
Reading composer.json of pantheon-systems/wordpress-composer (4.9.7)Reading composer.json of pantheon-systems/wordpress-composer (4.9.6)Reading composer.json of pantheon-systems/wordpress-composer (4.9.5.1)Reading composer.json of pantheon-systems/wordpress-composer (4.9.5)  Reading composer.json of pantheon-systems/wordpress-composer (4.9.4)Reading composer.json of pantheon-systems/wordpress-composer (4.9.3)Reading composer.json of pantheon-systems/wordpress-composer (4.9.2)Reading composer.json of pantheon-systems/wordpress-composer (4.9.1)Reading composer.json of pantheon-systems/wordpress-composer (4.9)  Reading composer.json of pantheon-systems/wordpress-composer (4.8.3)Reading composer.json of pantheon-systems/wordpress-composer (4.8.2)Reading composer.json of pantheon-systems/wordpress-composer (4.8.1)Reading composer.json of pantheon-systems/wordpress-composer (4.8)  Reading composer.json of pantheon-systems/wordpress-composer (4.7.5)Reading composer.json of pantheon-systems/wordpress-composer (4.7.4)Reading composer.json of pantheon-systems/wordpress-composer (4.7.3)Reading composer.json of pantheon-systems/wordpress-composer (4.7.2)Reading composer.json of pantheon-systems/wordpress-composer (4.7.1)Reading composer.json of pantheon-systems/wordpress-composer (4.7)  Reading composer.json of pantheon-systems/wordpress-composer (4.6.1)Reading composer.json of pantheon-systems/wordpress-composer (4.6)  Reading composer.json of pantheon-systems/wordpress-composer (4.5.3)Reading composer.json of pantheon-systems/wordpress-composer (4.5.2)Reading composer.json of pantheon-systems/wordpress-composer (4.5.1)Reading composer.json of pantheon-systems/wordpress-composer (4.5)  Reading composer.json of pantheon-systems/wordpress-composer (4.4.2)Reading composer.json of pantheon-systems/wordpress-composer (4.4.1)Reading composer.json of pantheon-systems/wordpress-composer (4.4.0)Reading composer.json of pantheon-systems/wordpress-composer (4.3.1)Reading composer.json of pantheon-systems/wordpress-composer (4.3.0)Reading composer.json of pantheon-systems/wordpress-composer (4.2.4)Reading composer.json of pantheon-systems/wordpress-composer (4.2.3)Reading composer.json of pantheon-systems/wordpress-composer (4.2.2)Reading composer.json of pantheon-systems/wordpress-composer (4.2.1)Reading composer.json of pantheon-systems/wordpress-composer (4.2.0)Reading composer.json of pantheon-systems/wordpress-composer (4.1.2)Reading composer.json of pantheon-systems/wordpress-composer (4.1.1)Reading composer.json of pantheon-systems/wordpress-composer (4.1.0)Reading composer.json of pantheon-systems/wordpress-composer (4.1)  Reading composer.json of pantheon-systems/wordpress-composer (4.0.1)Reading composer.json of pantheon-systems/wordpress-composer (4.0.0)                                                                    Reading composer.json of pantheon-systems/wordpress-composer (master)                                                                     Updating dependencies
Package operations: 0 installs, 4 updates, 0 removals
  - Updating vlucas/phpdotenv (v2.4.0 => v2.5.0): Downloading (100%)
  - Updating wpackagist-plugin/wp-native-php-sessions (0.6.6 => 0.6.9): Downloading (100%)
  - Updating wpackagist-theme/twentyseventeen (1.5 => 1.6): Downloading (100%)
  - Updating pantheon-systems/wordpress-composer (4.9.5 => 4.9.7): Downloading (100%)
Writing lock file
Generating optimized autoload files
> ./scripts/composer/cleanup-composer
+ '[' -d web/wp/wp-content/mu-plugins/ ']'
+ rsync -a web/wp/wp-content/mu-plugins/pantheon web/wp/wp-content/mu-plugins/pantheon.php web/wp-content/mu-plugins/
+ '[' -f web/wp/wp-config.php ']'
+ rm web/wp/wp-config.php
+ '[' -d web/wp/wp-content ']'
+ rm -rf web/wp/wp-content
> WordPressProject\composer\ScriptHandler::createRequiredFiles

Symfony Security Check Report
=============================

 // Checked file: /private/var/folders/46/rc22cmtx3g54h2jw6w5xj68c0000gq/T/composer-update-025a8ba/composer.lock

 [OK] No packages have known vulnerabilities.

 ! [NOTE] This checker can only detect vulnerabilities that are referenced in the SensioLabs security advisories
 !        database. Execute this command regularly to check the newly discovered vulnerabilities.

```


Старайся быть более постоянным в своем стиле написания кода, непонятно почему в Home ты ключ/значение на отдельную строку вывел, а в остальных местах в одну строку все записал


Thanks! I've tried to fix that in 3d610363eff2fe.


count and record unrecognised fie extensions


ROSCameraToU is a placeholder, the values are not correct, if you find out the values please do a PR :) I only used UToROS and ROSToU


@thomaspark: you need any help?


Этот View тебе здесь не нужен


clearer – thanks!


develop (Myoldmopar) - x86_64-MacOS-10.9-clang: OK (2307 of 2307 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png) ![Test Badge](http://img.shields.io/badge/tests%20passed-100.0%25-green.png)


Warning, this also suggests an error occurred during download that should have been caught and checked at that time


not rather than is False


Fix for #2 issue


массивы по другому пишутся, либо так: Array<string>, либо так: string[].
https://www.typescriptlang.org/docs/handbook/basic-types.html


Exception too broad


warning


179D_Reporting-v8.8.0 (Myoldmopar) - x86_64-Linux-Ubuntu-14.04-gcc-4.8-UnitTestsCoverage-Debug: OK (1681 of 1681 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png) ![Test Badge](http://img.shields.io/badge/tests%20passed-100.0%25-green.png) ![Coverage Badge](http://img.shields.io/badge/coverage%20status-40.17%25-green.png)


Первый аргумент это Props, потом State. Ты не увидел ошибок в редакторе?


this should be ```bin/nosetests-3.7```


Photonics laser engine search engine also rocket propulsion. The rocket will link with various starlight capabilities internally magnify the power of the sun also and shoot off into space attaining velocity of tremendous speed. The  search engine would be laser blast driven


Hmm nu er der skiftet tema - men hvor er det?


я бы подытожил уже третью прорвку примерно так
плюсы:
- ты убрал методы инпута/аутпута из классов
- разбил часть методов на более понятные и правильные

минусы
- код все еще мало похож на структурированное ООП приложение
- куча модулей, которые ты написал существуют в основном для того, чтобы скрывать, что на самом деле логичной ООП структуры у приложения нет, взаимодействие классов через объекты слабенкое


derp. Could you PR into main branch?


I did number of such changes without testing (copy & pasting display nodes). However, testing should be done if possible.


счету структура должна быть примерно следующая:
1. **файл запускающий программу** ("мэйн" или "старт" к примеру)
    - в этом файле логики нет вообще
    - в нем есть "реквайер" всех остальных необходимых файлов
    - в нем создается объект класса Интерфейс
    - затем создается объект контроллера (см. пункт 2)
      можно назвать по другому, по сути это класс, который управляет рантаймом программы, направляет ход ее выполения в зависимости от вводов пользователя и результатов работы самого приложения
      когда происходит  инстанциация этого класса (к примеру Гейм, Казино, Тейбл),  который будет "вести игру", то ему в качестве аргумента передается объект интерфейса
2. **класс КОНТРОЛЛЕР**, т.е. класс "несущий поток исполнения программы"... его функции:
    - вызывать методы интерфейса для общения с игроком
    - вызывать методы других классов (на объектах этих классов), которые будут содержать состояние сущностей программы (Игрок, Дилер, Колода и т.д.)
    - возможно создавать другие контроллеры и вызывать методы этих других контроллеров (если ты решишь выделить часть "потока выполнения приложения" в отдельный "подпоток" ("подпотоки")
    - возможно вызывать методы классов или модулей, в которых будут содержаться "правила" или "логика", ну к примеру из контроллера в такие классы (модули) можно вынести методы ведущие рассчет очков, определение победителя и т.п... здесь идея заключается в том, что если эти методы собрать в одном месте, то поменять их будет легко и просто (ну например вместо игры до 21 сделать игру до 23), при этом никиких вмешательств в другие части программы не понадобится
3. **ИНТЕРФЕЙС** дожен быть полностью вынесен из всех классов!!!
    - лучше всего реализовать это с помощью отдельного класса, к примеру `class Interface` (возможно нескольких классов)
    - все методы "общения с пользователем" (вывод и ввод) должны быть только в этом классе
    - вызов методов интерфейса должен происходить ТОЛЬКО ИЗ класса (классов) КОНТРОЛЛЕРА (методы вызываться на инстансе класса `Interface`)
    - интерфейс не должен ничего знать о приложении вообще, он не должен хранить переменные приложение (только свои служебные), он не должен знать о классах и методах приложения

    **главный плюс такого подхода** и одновременно ориентир, для правильного понимания того, как нужно писать интерфейс и его взаимодействие с контроллером:
    *вместо интерфейса командной строки можно в любой момент написать другой интерфейс, который будет к примеру работать не в командной строке, а отправлять запросы посредством  http протокола... (лишь бы названия методов, т.е. интерфейс класса совпадал), а  логика должна спокойно продолжить работу не обращая внимания на смену интерфейса...*
4. **классы хранящие состояния сущностей приложения**... Игрок, Дилер, Колода... может быть что-то добавишь, может быть убавишь... основная функция этих классов должна быть в хранении состояния, т.е. объекты этих классов должны хранить аттрибуты, уметь их возвращать, если нужно - вычислять какие-то значения на основе своих аттрибутов (ну и должны принимать значения этих аттрибутов, либо в момент инициализации, либо в течении жизни объектов, посредством методов соотвествующих классов)


voila


Если ставишь access modifier-ы на функции, ставь их везде.

В React.Component public должны быть:
state
constructor
все lifecycle methods
render

все остальное можно делать private


Kya hua

On Thu 5 Jul, 2018, 10:15 PM Kinnari-Sharma, <notifications@github.com>
wrote:

> Really?
>
> —
> You are receiving this because you are subscribed to this thread.
> Reply to this email directly, view it on GitHub
> <https://github.com/zesu00/hello-world/commit/237a0fed74c989156ece63973edf1c1b2bf4cbad#commitcomment-29609517>,
> or mute the thread
> <https://github.com/notifications/unsubscribe-auth/ATnrWoLcK7yIDhtRxWaaq6tMtApP7Z5vks5uDkKrgaJpZM4VENoW>
> .
>


None, it's only a style thing. I'm ever again confused by this insane C notation.


Старайся все стили прописывать через StyleSheet.create.

https://stackoverflow.com/a/42511138/2925604


its fine on one line here because it doesn't reach the char limit


Just realized this isn't a defined data definition in the glassbr example: it is just a `QDefinition` that is seen in the "Values of Auxiliary Constants Section". Will revert these changes, although this caused me to recognize that there are `QDefinition`s present that aren't used as DataDefinitions. Since we want to avoid using raw `QDefinition`s (#747), what will be done to these instances? @JacquesCarette


попробовал поиграть
```
Do you want to continue? y/n
y
Your cards:
A♧
6♦
Your points: 17

    Dealer cards:
    1.**
    2.**

    1. Skip
    2. Take card
    3. Open cards

2
Your cards:
A♧
6♦
9♥
Your points: 26
```
правильный рассчет должен вернуть 16 очков, а не 26


Created multidev environment [lawhelp#ci-406](https://dashboard.pantheon.io/sites/9ec12d94-c804-44b7-968e-166a0b49fdc0#ci-406).

[![Visit Site](https://raw.githubusercontent.com/pantheon-systems/ci-drops-8/0.1.0/data/img/visit-site-36.png)](https://ci-406-lawhelp.pantheonsite.io/)


Вот эта `? true : false` очень лишняя вещь. Ты бы мог просто без этого написать


Good. Thanks!


а вот это еще интересней
```
Your cards:
3♧
7♧
K♦
Your points: 20
Dealer cards:
J♥
Q♧
2♧
Dealer points: 22
You lose
```
почему я проиграл, если у дилера перебор ?


Удаляй импорты, которыми не пользуешься. В этом случае у тебя это StyleSheet и View.


Sorry, there is no one posted here. FIO Visualizer can't display latency percentile. If you need one, just take a QoS config
https://github.com/intel/fiovisualizer/blob/master/Workloads/Device/NVMe_04k_RR_QD1_1J.ini

and run it in FIO command line.


Удаляй импорты, которыми не пользуешься.


Need exception


renderItem должен быть private.


`this.setState(prevState => ({ modalVisible: prevState.modalVisible }))`

setState – асинхронный, если внутри setState используешь state, используй функцию.


This branch at this point did not know what was fixed in `master`.
Just update this in the `master` branch.
This is why I made a placeholder commit in both branches.


"I wonder what could possibly go wrong if I committed an unfinished source file to the master branch . . ."


и далее
```
Your cards:
2♦
10♦
3♤
Your points: 15
Dealer cards:
9♧
7♤
4♧
Dealer points: 20
You lose
Do you want to continue? y/n
y
Your cards:
Traceback (most recent call last):
	91: from game.rb:22:in `<main>'
	90: from .../my_game.rb:19:in `run'
	89: from .../my_game.rb:38:in `user_turn'
	88: from .../my_game.rb:77:in `open_cards'
	87: from .../results.rb:16:in `results'
	86: from .../winner.rb:29:in `continue'
	85: from .../my_game.rb:19:in `run'
	84: from .../my_game.rb:36:in `user_turn'
	83: from .../my_game.rb:44:in `skip'
	82: from .../my_game.rb:64:in `dealer_turn'
	81: from .../my_game.rb:46:in `skip'
	80: from .../my_game.rb:28:in `user_turn'
	79: from .../my_game.rb:51:in `full_hands'
	78: from .../my_game.rb:77:in `open_cards'
	77: from .../results.rb:16:in `results'
	76: from .../winner.rb:29:in `continue'
	75: from .../my_game.rb:19:in `run'
	74: from .../my_game.rb:36:in `user_turn'
	73: from .../my_game.rb:44:in `skip'
	72: from .../my_game.rb:64:in `dealer_turn'
	71: from .../my_game.rb:46:in `skip'
	70: from .../my_game.rb:28:in `user_turn'
	69: from .../my_game.rb:51:in `full_hands'
	68: from .../my_game.rb:77:in `open_cards'
	67: from .../results.rb:16:in `results'
	66: from .../winner.rb:29:in `continue'
	65: from .../my_game.rb:19:in `run'
	64: from .../my_game.rb:36:in `user_turn'
	63: from .../my_game.rb:44:in `skip'
	62: from .../my_game.rb:64:in `dealer_turn'
	61: from .../my_game.rb:46:in `skip'
	60: from .../my_game.rb:28:in `user_turn'
	59: from .../my_game.rb:51:in `full_hands'
	58: from .../my_game.rb:77:in `open_cards'
	57: from .../results.rb:16:in `results'
	56: from .../winner.rb:29:in `continue'
	55: from .../my_game.rb:19:in `run'
	54: from .../my_game.rb:36:in `user_turn'
	53: from .../my_game.rb:44:in `skip'
	52: from .../my_game.rb:64:in `dealer_turn'
	51: from .../my_game.rb:46:in `skip'
	50: from .../my_game.rb:28:in `user_turn'
	49: from .../my_game.rb:51:in `full_hands'
	48: from .../my_game.rb:77:in `open_cards'
	47: from .../results.rb:16:in `results'
	46: from .../winner.rb:29:in `continue'
	45: from .../my_game.rb:19:in `run'
	44: from .../my_game.rb:36:in `user_turn'
	43: from .../my_game.rb:44:in `skip'
	42: from .../my_game.rb:64:in `dealer_turn'
	41: from .../my_game.rb:46:in `skip'
	40: from .../my_game.rb:28:in `user_turn'
	39: from .../my_game.rb:51:in `full_hands'
	38: from .../my_game.rb:77:in `open_cards'
	37: from .../results.rb:16:in `results'
	36: from .../winner.rb:29:in `continue'
	35: from .../my_game.rb:19:in `run'
	34: from .../my_game.rb:36:in `user_turn'
	33: from .../my_game.rb:44:in `skip'
	32: from .../my_game.rb:64:in `dealer_turn'
	31: from .../my_game.rb:46:in `skip'
	30: from .../my_game.rb:28:in `user_turn'
	29: from .../my_game.rb:51:in `full_hands'
	28: from .../my_game.rb:77:in `open_cards'
	27: from .../results.rb:16:in `results'
	26: from .../winner.rb:29:in `continue'
	25: from .../my_game.rb:19:in `run'
	24: from .../my_game.rb:36:in `user_turn'
	23: from .../my_game.rb:44:in `skip'
	22: from .../my_game.rb:64:in `dealer_turn'
	21: from .../my_game.rb:46:in `skip'
	20: from .../my_game.rb:28:in `user_turn'
	19: from .../my_game.rb:51:in `full_hands'
	18: from .../my_game.rb:77:in `open_cards'
	17: from .../results.rb:16:in `results'
	16: from .../winner.rb:29:in `continue'
	15: from .../my_game.rb:19:in `run'
	14: from .../my_game.rb:36:in `user_turn'
	13: from .../my_game.rb:44:in `skip'
	12: from .../my_game.rb:64:in `dealer_turn'
	11: from .../my_game.rb:46:in `skip'
	10: from .../my_game.rb:28:in `user_turn'
	 9: from .../my_game.rb:51:in `full_hands'
	 8: from .../my_game.rb:77:in `open_cards'
	 7: from .../results.rb:16:in `results'
	 6: from .../winner.rb:29:in `continue'
	 5: from .../my_game.rb:17:in `run'
	 4: from .../my_game.rb:23:in `cards'
	 3: from .../my_game.rb:81:in `user_cards'
	 2: from .../ui.rb:25:in `user_cards_message'
	 1: from .../ui.rb:25:in `each'
.../ui.rb:26:in `block in user_cards_message': undefined method `face' for nil:NilClass (NoMethodError)
```
во-первых программа вылетела
во-вторых  такого длинного трейса быть не должно при правильной структуре программы...
этот трейс означает рекурсивные вызовы прогрммы самой себя и потенциальный риск переполнения памяти


почему бы item не назвать instruction или что нибудь вроде того? названия типа data, item, info часто очень неясные


Log don't print, if this is unlikely or should not occur is this an error elsewhere in the script?


test


Alot of extra crap that should be gone


знаешь что означает эта череда вложенных друг в друга методов?
вот эта цепочка из `continue`, `run`, `user_turn` и т.д. которая повторяется много раз
это означает, что в памяти вызовы методов вкладывались друг в друга, как матрешки, и все предыдущие вызовы не "уходили в небытие" вместе со своим контекстом (переменными), как должно было быть, а висели и ждали завершения...
это рекурсия, которая может приводить к  Stack Overflow (переполнению стека памяти)

напишем к примеру такой класс, с вызовом метода `start` из метода `check`, который ранее был вызван в методе `start`

```ruby
class A
  def start
    puts 'enter value'
    value = gets.to_i
    check(value)
    puts value
    puts 'start end'
  end

  def check(value)
    puts 'check'
    start unless value == 0
    puts 'check end'
  end
end
```
далее запустим программу в irb:
```
irb -r ./test.rb
2.5.0 :001 > a = A.new
 => #<A:0x0000000000e1be00>
2.5.0 :002 > a.start
enter value
1
check
enter value
2
check
enter value
3
check
enter value
```
видно, что мы не разу не закочили выполнение ни одоного из методов
т.е. программа только вызывает методы, "входит" внутрь, но не завершает их
все эти вызовы висят в памяти со всеми переменными
это так называемый "рекурсивный вызов"
теперь введем `0`
полностью картина работы программы будет выглядеть после этого вот так:
```
irb -r ./test.rb
2.5.0 :001 > a = A.new
 => #<A:0x0000000000e1be00>
2.5.0 :002 > a.start
enter value
1
check
enter value
2
check
enter value
3
check
enter value
0
check
check end
0
start end
check end
3
start end
check end
2
start end
check end
1
start end
 => nil
2.5.0 :003 >
```
после ввода `0` у нас завершается выполнение всех вызванных и не завершенных ранее методов
видно, что в памяти хранились все значения переменной `value`
если методы более сложные, методов больше, переменных больше... то вот тут и получается вылет из программы из-за "переполнения стека"

другой вариант, вызовем метод из него самого:
```ruby
class B
  def start
    puts 'enter value'
    value = gets.to_i
    start unless check?(value)
    puts value
    puts 'start end'
  end

  def check?(value)
    puts 'check'
    result = value == 0
    puts 'check end'
    result
  end
end

```
результат:
```
irb -r ./test.rb
2.5.0 :001 > b = B.new
 => #<B:0x0000000000d37318>
2.5.0 :002 > b.start
enter value
1
check
check end
enter value
2
check
check end
enter value
3
check
check end
enter value
0
check
check end
0
start end
3
start end
2
start end
1
start end
 => nil
2.5.0 :003 >
```
здесь вложенность получается только на уровне метода `start`, метод `check` каждый раз успешно завершается

попробуем решить задачу без вызова метода самим себя, например через петлю `while`:
```ruby
class C
  def start
    value = 1
    while check?(value)
      puts 'enter value'
      value = gets.to_i
      puts value
      puts 'while end'
    end
    puts 'start end'
  end

  def check?(value)
    puts 'check'
    result = value != 0
    puts 'check end'
    result
  end
end
```

получаем:
```
irb -r ./test.rb
2.5.0 :001 > c = C.new
 => #<C:0x00000000023bee38>
2.5.0 :002 > c.start
check
check end
enter value
1
1
while end
check
check end
enter value
2
2
while end
check
check end
enter value
3
3
while end
check
check end
enter value
0
0
while end
check
check end
start end
 => nil
2.5.0 :003 >
```
как видно рекурсивных вызовов нет, после ввода `0` все завершается, в памяти ничего не хранится, переменная `value` каждый раз обновляется


🔥 [Jenkins job](http://xamarin-jenkins.guest.corp.microsoft.com:8080/job/macios/job/jenkins-device-tests/7/display/redirect) (on internal Jenkins) failed in stage 'Publish builds to GitHub' 🔥 : java.lang.Exception: Skipping the rest for now

✅ [Build succeeded](http://xamarin-jenkins.guest.corp.microsoft.com:8080/job/macios/job/jenkins-device-tests/7//console)


The correct way to convert string to float is df['amount'] = float(df['amount']) assuming the previous value is a valid number string


Build Phylogenomic Synteny Network


These additional info items are suitable for debug log level


Warning not debug


Sure


This breaks existing deployments that didn't manually set service.clusterIP. It causes the deployment to fail with:
Error: UPGRADE FAILED: Service "deployment-rabbitmq-ha" is invalid: spec.clusterIP: Invalid value: "None": field is immutable


Woops - forgot a smart commit here : #88


E Katiuscia de Morais


IBM Cloud [toolchain](https://console.ng.bluemix.net/devops/toolchains/8dc3e052-1319-416f-8f2b-7358155ac08c?env_id=ibm%3Ayp%3Aus-south "cloud-native-toolchain-tutorial-20180705013744744"): [Delivery Pipeline](https://console.ng.bluemix.net/devops/pipelines/37fda7be-6e5c-4e4a-811b-6f111e6bda43?env_id=ibm%3Ayp%3Aus-south "sample-cloud-native-toolchain-tutorial-20180705013744744") deployed [sample-cloud-native-toolchain-tutorial-20180705013744744](https://github.com/gabrielredrado/sample-cloud-native-toolchain-tutorial-20180705013744744/releases/tag/deploy-ibm-yp-us-south-redrado-ar.ibm.com-test-20180705-181518 "deploy-ibm-yp-us-south-redrado-ar.ibm.com-test-20180705-181518") to [test](https://console.bluemix.net/apps/ed25903e-1a14-40a6-8d89-2a8cff39b5e9?env_id=ibm:yp:us-south "ibm:yp:us-south:redrado@ar.ibm.com:test"), including this commit


да, верно
к станции аттрибут ТИП отношения не имеет
в задании идет речь про аттрибут класса Трейн
здесь его надо убирать


@XhmikosR, sorry for the spam. Trying to set up https on GitHub, but getting this message with the Enforce HTTPS option grayed out:

<img width="761" alt="screen shot 2018-07-05 at 1 58 26 pm" src="https://user-images.githubusercontent.com/900407/42339663-a61b0726-805b-11e8-97c2-669b8366ec05.png">

Tried toggling the custom domain like the docs suggest which caused these changes, but not working yet.

> After updating any A record IP addresses, you must remove and re-add your custom domain to the repository you’re using to publish your Pages site to trigger the process of enabling HTTPS.


sss


Don't you use Cloudflare @thomaspark? If so, just ignore this and set the SSL to Flexible on Cloudflare.


IBM Cloud [toolchain](https://console.ng.bluemix.net/devops/toolchains/8dc3e052-1319-416f-8f2b-7358155ac08c?env_id=ibm%3Ayp%3Aus-south "cloud-native-toolchain-tutorial-20180705013744744"): [Delivery Pipeline](https://console.ng.bluemix.net/devops/pipelines/37fda7be-6e5c-4e4a-811b-6f111e6bda43?env_id=ibm%3Ayp%3Aus-south "sample-cloud-native-toolchain-tutorial-20180705013744744") deployed [sample-cloud-native-toolchain-tutorial-20180705013744744](https://github.com/gabrielredrado/sample-cloud-native-toolchain-tutorial-20180705013744744/releases/tag/deploy-ibm-yp-us-south-redrado-ar.ibm.com-prod-20180705-181941 "deploy-ibm-yp-us-south-redrado-ar.ibm.com-prod-20180705-181941") to [prod](https://console.bluemix.net/apps/def8f054-74c4-4354-a638-53ca3aff5960?env_id=ibm:yp:us-south "ibm:yp:us-south:redrado@ar.ibm.com:prod"), including this commit


- might be useful to add a test for number of fcurves, so not allow the user to pick anything higher than what exists.
- increase docs usefulness (probably best done by dedicated users)


@jdecuirm Thanks alot. A real hero :D


# Specs execution successful
:scroll: [View logs](http://bamboo.comnull)
### Plans updated

Bamboo specs have been successfully imported and the following plans have been updated.

Project | Plan | Build
---|---|---
[Test](http://bamboo.com/browse/TEST) | [Comment test](http://bamboo.com/browse/TEST-CTEST)  | :white_check_mark: [\#1](http://bamboo.com/browse/TEST-CTEST-1)
[New project](http://bamboo.com/browse/NEW) | [Disabled plan](http://bamboo.com/browse/NEW-DISABLED) **disabled** | :white_check_mark: [\#1](http://bamboo.com/browse/NEW-DISABLED-1)

### Deployments updated

Bamboo specs have been successfully imported and the following deployment projects have been updated.

|Deployment project |
----|
[Deployment test](http://bamboo.com/deploy/viewDeploymentProjectVersions.action?id=2162689)|


I can't seem to find my through it to comment in-line.

Line 33: Separate `require` are more readable then complex expressions with `&&`.
Line 52: Treat the event emitter as a state change and put it ahead of the `transfer`.
Line 39: What about `balances[msg.sender] += 1;` ?


Lua patterns are very limited in relation to regex. The best you could do with them is ```lua
return id:match("^x..$") or id:match("^.$")
```


> Any reason against contributing at the main repo?

Well, not really. I forked the repo to give our two local patches a decent home. Our lyrics-on-top theme (80b560d3f02a6377c33e93d9e2ea97e60eae107c) could actually go in the main repo (if implemented as separate theme), but disabling the song search filter (06de3cad0b44892f867368acd702041b17a2447e) is probably no good idea for the official version.


Probably should remove this debug logging.


yes


1. если ты про вот этот пункт: "Может возвращать список всех поездов на станции, находящиеся в текущий момент", то он у тебя уже реализован в строке номер 8 - у тебя же там определен ридер для этой переменной, именно он и будет возвращать список поездов на станции
2. если метод должен возвращать, то зачем в его названии слово `print` ? "возвращать" и "печатать" - это два совершенно разных момента
если написать в консоли свой метод, который будет складывать 1 и 2, то он **вернет** 3
вот так:
```
irb
2.5.0 :001 > def some_method
2.5.0 :002?>   1 + 2
2.5.0 :003?>   end
 => :some_method
2.5.0 :004 > some_method
 => 3
2.5.0 :005 > a = some_method
 => 3
2.5.0 :006 > a
 => 3
2.5.0 :007 >
```
видно, что если результат работы метода присвоить переменной, то в ней окажется значение 3, т.е. результат вычислений... потому что именно его **возвращает** метод

а можно переписать этот же метод, так, что он будет **выводить** значение:

```
irb
2.5.0 :001 > def some_method
2.5.0 :002?>   puts 1 + 2
2.5.0 :003?>   end
 => :some_method
2.5.0 :004 > some_method
3
 => nil
2.5.0 :005 > a = some_method
3
 => nil
2.5.0 :006 > a
 => nil
2.5.0 :007 >
```
и на этом примере видно, что хотя метод и **выводит** результат вычислений в консоль, но **возвращает** он `nil`, потому что именно это значение **возвращает** метод `puts`, который выполняется в последней строке нашего метода и в переменную присваивается возвращаемое методом значение, т.е. `nil`


Also ground color for the baseland has been added.


I would call this `RemittanceStruct` to describe exactly what it is and so "Payment" is not mentally mixed up with other interpretations.


AppRegistry здесь не используется, нужно было удалить


You could have left the text, it had interesting info about `bib2gls`. :wink:


I don't see the msg.sender here. That will make it difficult to safely refund the money to the sender, if needed.


text нужно было на новой строке написать


Если используешь access modifier-ы, используй их везде.
`public state = {`


Forgot to mention that we set ‘unused’ to true


If logging functions have failed do not pass on handling the exception, especially when this is passing on ALL exceptions. Ensure that the except statement has the correct exception class, if you can't handle the exception then use 'raise' to re-raise the exception. Note that this results in an unhandled exception and will terminate the program but this behaviour is correct and preferable to having unhandled exceptions ignored that may corrupt output or cause a later crash.


3. ты пишешь: "посчитал что обращение через имени станций будет правильнее, так как он укажет из какой станций возвращать поезда", что неверно
методы вызываются у объектов класса
если класс `Station`, то мы можем создать объект этого класса
```ruby
station = Station.new('SomeName')
```
далее, если у нас в классе есть метод, к примеру пусть он называется `trains`, то мы можем у этого объекта вызвать этот метод: `station.trains`
пусть для простоты он выглядит так:
```ruby
def trains
  @trains
end
```
и не нужно передавать никакого имени в этот метод, чтобы указать на станцию
мы же вызываем метод у определенного объекта, поезда именно этого объекта, этой станции нам и вернутся с этим вызовом
вернется содержимое переменной `@trains` станции с именем `SomeName`, потому что у этой станции был вызван метод


Удаляй console.log-и


TeamCity Architecture Team :: Java Platform :: otj-kafka :: BuildTest [Build 192](https://teamcity.otenv.com/viewLog.html?buildId=8869359&buildTypeId=ArchitectureTeam_JavaPlatform_OtjKafka_BuildTest) is now running


TeamCity Architecture Team :: Java Platform :: otj-kafka :: BuildTest [Build 192](https://teamcity.otenv.com/viewLog.html?buildId=8869359&buildTypeId=ArchitectureTeam_JavaPlatform_OtjKafka_BuildTest) outcome was **UNKNOWN**
Summary: Canceled Build time: 00:00:00


# Specs execution successful
:scroll: [View logs](http://bamboo.comnull)
### Plans updated

Bamboo specs have been successfully imported and the following plans have been updated.

Project | Plan | Build
---|---|---
[Test](http://bamboo.com/browse/TEST) | [Comment test](http://bamboo.com/browse/TEST-CTEST)  | :white_check_mark: [\#1](http://bamboo.com/browse/TEST-CTEST-1)
[New project](http://bamboo.com/browse/NEW) | [Disabled plan](http://bamboo.com/browse/NEW-DISABLED) **disabled** | :white_check_mark: [\#1](http://bamboo.com/browse/NEW-DISABLED-1)

### Deployments updated

Bamboo specs have been successfully imported and the following deployment projects have been updated.

|Deployment project |
----|
[Deployment test](http://bamboo.com/deploy/viewDeploymentProjectVersions.action?id=2162689)|


TeamCity Architecture Team :: Java Platform :: otj-kafka :: BuildTest [Build 193](https://teamcity.otenv.com/viewLog.html?buildId=8869529&buildTypeId=ArchitectureTeam_JavaPlatform_OtjKafka_BuildTest) is now running


TeamCity Architecture Team :: Java Platform :: otj-kafka :: BuildTest [Build 193](https://teamcity.otenv.com/viewLog.html?buildId=8869529&buildTypeId=ArchitectureTeam_JavaPlatform_OtjKafka_BuildTest) outcome was **UNKNOWN**
Summary: Canceled Build time: 00:00:01


TeamCity Architecture Team :: Java Platform :: otj-kafka :: BuildTest [Build 194](https://teamcity.otenv.com/viewLog.html?buildId=8869530&buildTypeId=ArchitectureTeam_JavaPlatform_OtjKafka_BuildTest) is now running


TeamCity Architecture Team :: Java Platform :: otj-kafka :: BuildTest [Build 194](https://teamcity.otenv.com/viewLog.html?buildId=8869530&buildTypeId=ArchitectureTeam_JavaPlatform_OtjKafka_BuildTest) outcome was **UNKNOWN**
Summary: Canceled Build time: 00:00:02


TeamCity Architecture Team :: Java Platform :: otj-kafka :: BuildTest [Build 195](https://teamcity.otenv.com/viewLog.html?buildId=8869531&buildTypeId=ArchitectureTeam_JavaPlatform_OtjKafka_BuildTest) is now running


TeamCity Architecture Team :: Java Platform :: otj-kafka :: BuildTest [Build 195](https://teamcity.otenv.com/viewLog.html?buildId=8869531&buildTypeId=ArchitectureTeam_JavaPlatform_OtjKafka_BuildTest) outcome was **UNKNOWN**
Summary: Canceled Build time: 00:00:01


TeamCity Architecture Team :: Java Platform :: otj-metrics :: BuildTest [Build 225](https://teamcity.otenv.com/viewLog.html?buildId=8869361&buildTypeId=ArchitectureTeam_JavaPlatform_OtjMetrics_BuildTest) is now running


TeamCity Architecture Team :: Java Platform :: otj-metrics :: BuildTest [Build 225](https://teamcity.otenv.com/viewLog.html?buildId=8869361&buildTypeId=ArchitectureTeam_JavaPlatform_OtjMetrics_BuildTest) outcome was **UNKNOWN**
Summary: Canceled Build time: 00:00:00


It's good that you include the msg.sender in your hash here or all the money would be stolen. Can you imagine how all the passwords will "leak" so everyone knows what they are, before this transaction is mined? Can you imagine how a hacker would use that information to steal (err ... use the contract to withdraw) all the money?


TeamCity Architecture Team :: Java Platform :: otj-metrics :: BuildTest [Build 226](https://teamcity.otenv.com/viewLog.html?buildId=8869532&buildTypeId=ArchitectureTeam_JavaPlatform_OtjMetrics_BuildTest) is now running


TeamCity Architecture Team :: Java Platform :: otj-metrics :: BuildTest [Build 226](https://teamcity.otenv.com/viewLog.html?buildId=8869532&buildTypeId=ArchitectureTeam_JavaPlatform_OtjMetrics_BuildTest) outcome was **UNKNOWN**
Summary: Canceled Build time: 00:00:01


TeamCity Architecture Team :: Java Platform :: otj-metrics :: BuildTest [Build 227](https://teamcity.otenv.com/viewLog.html?buildId=8869533&buildTypeId=ArchitectureTeam_JavaPlatform_OtjMetrics_BuildTest) is now running


TeamCity Architecture Team :: Java Platform :: otj-metrics :: BuildTest [Build 227](https://teamcity.otenv.com/viewLog.html?buildId=8869533&buildTypeId=ArchitectureTeam_JavaPlatform_OtjMetrics_BuildTest) outcome was **UNKNOWN**
Summary: Canceled Build time: 00:00:01


TeamCity Architecture Team :: Java Platform :: otj-metrics :: BuildTest [Build 228](https://teamcity.otenv.com/viewLog.html?buildId=8869534&buildTypeId=ArchitectureTeam_JavaPlatform_OtjMetrics_BuildTest) is now running


TeamCity Architecture Team :: Java Platform :: otj-metrics :: BuildTest [Build 228](https://teamcity.otenv.com/viewLog.html?buildId=8869534&buildTypeId=ArchitectureTeam_JavaPlatform_OtjMetrics_BuildTest) outcome was **UNKNOWN**
Summary: Canceled Build time: 00:00:01


В JavaScript, если название переменной и название ключа объекта совпадают, можно писать так:

`{ recipe }` вместо `{ recipe: recipe }`


`/^(adshorte|adsrt)\.com$/` and `/^cut4link\.com$/` had disappeared, is this intentional?


# Specs execution successful
:scroll: [View logs](http://bamboo.comnull)
### Plans updated

Bamboo specs have been successfully imported and the following plans have been updated.

Project | Plan | Build
---|---|---
[Test](http://bamboo.com/browse/TEST) | [Comment test](http://bamboo.com/browse/TEST-CTEST)  | :white_check_mark: [\#1](http://bamboo.com/browse/TEST-CTEST-1)
[New project](http://bamboo.com/browse/NEW) | [Disabled plan](http://bamboo.com/browse/NEW-DISABLED) **disabled** | :white_check_mark: [\#1](http://bamboo.com/browse/NEW-DISABLED-1)

### Deployments updated

Bamboo specs have been successfully imported and the following deployment projects have been updated.

|Deployment project |
----|
[Deployment test](http://bamboo.com/deploy/viewDeploymentProjectVersions.action?id=2162689)|


It would be much better to pause/resume the contract instead of using `selfdestruct`. It is a very extreme instrument with many disadvantages.


TeamCity Architecture Team :: Java Platform :: otj-filterorder :: BuildTest [Build 43](https://teamcity.otenv.com/viewLog.html?buildId=8869426&buildTypeId=ArchitectureTeam_JavaPlatform_OtjFilterorder_BuildTest) is now running


@endless-sky this is cool. I wonder if it can be extended to "leaks" that deal damage if a ship is caught in the radius, e.g. a corrosive leak that damages hull, or an electric discharge which damages shield.


TeamCity Architecture Team :: Java Platform :: otj-filterorder :: BuildTest [Build 43](https://teamcity.otenv.com/viewLog.html?buildId=8869426&buildTypeId=ArchitectureTeam_JavaPlatform_OtjFilterorder_BuildTest) outcome was **SUCCESS**
Summary: Tests passed: 7 Build time: 00:00:49


Когда тебе нужен просто компонент-контейнер, используй `React.Fragment` вместо `View`.

https://reactjs.org/docs/fragments.html


If servo is using postgresql async API?


Should this be `String?` instead of `String`? I may just be confusing my Kotlin and Swift syntaxes though :)


TeamCity Architecture Team :: Java Platform :: otj-logging :: otj-logging [Build 148](https://teamcity.otenv.com/viewLog.html?buildId=8869506&buildTypeId=ArchitectureTeam_JavaPlatform_OtjLogging_OtjLogging) is now running


TeamCity Architecture Team :: Java Platform :: otj-logging :: otj-logging [Build 148](https://teamcity.otenv.com/viewLog.html?buildId=8869506&buildTypeId=ArchitectureTeam_JavaPlatform_OtjLogging_OtjLogging) outcome was **UNKNOWN**
Summary: Canceled Build time: 00:00:00


TeamCity Architecture Team :: Java Platform :: otj-logging :: otj-logging [Build 149](https://teamcity.otenv.com/viewLog.html?buildId=8869672&buildTypeId=ArchitectureTeam_JavaPlatform_OtjLogging_OtjLogging) is now running


TeamCity Architecture Team :: Java Platform :: otj-logging :: otj-logging [Build 149](https://teamcity.otenv.com/viewLog.html?buildId=8869672&buildTypeId=ArchitectureTeam_JavaPlatform_OtjLogging_OtjLogging) outcome was **UNKNOWN**
Summary: Canceled Build time: 00:00:01


TeamCity Architecture Team :: Java Platform :: otj-logging :: otj-logging [Build 150](https://teamcity.otenv.com/viewLog.html?buildId=8869673&buildTypeId=ArchitectureTeam_JavaPlatform_OtjLogging_OtjLogging) is now running


TeamCity Architecture Team :: Java Platform :: otj-logging :: otj-logging [Build 150](https://teamcity.otenv.com/viewLog.html?buildId=8869673&buildTypeId=ArchitectureTeam_JavaPlatform_OtjLogging_OtjLogging) outcome was **UNKNOWN**
Summary: Canceled Build time: 00:00:01


TeamCity Architecture Team :: Java Platform :: otj-logging :: otj-logging [Build 151](https://teamcity.otenv.com/viewLog.html?buildId=8869674&buildTypeId=ArchitectureTeam_JavaPlatform_OtjLogging_OtjLogging) is now running