@jaumeortola Thank you for sharing the script. A dump for other maintainers follows:

```
Checking [languagetool-language-modules/ast/src/main/resources/org/languagetool/rules/ast/grammar.xml]...
Checking [languagetool-language-modules/be/src/main/resources/org/languagetool/rules/be/grammar.xml]...
Checking [languagetool-language-modules/br/src/main/resources/org/languagetool/rules/br/grammar.xml]...
Checking [languagetool-language-modules/ca/src/main/resources/org/languagetool/rules/ca/ca-ES-valencia/grammar.xml]...
Checking [languagetool-language-modules/ca/src/main/resources/org/languagetool/rules/ca/grammar.xml]...
FOUND BROKEN URL [http://esadir.cat/gramatica/sintaxi/remartmesany]
FOUND BROKEN URL [http://esadir.cat/entrades/fitxa/node/pel_mati]
FOUND BROKEN URL [http://esadir.cat/gramatica/sintaxi/acausadegut]
FOUND BROKEN URL [http://esadir.cat/entrades/fitxa/node/pronrel]
FOUND BROKEN URL [http://www.iecat.net/institucio/seccions/Filologica/llenguacatalana/documentsnormatius/docsf5.htm]
FOUND BROKEN URL [http://www.iecat.net/institucio/seccions/Filologica/llenguacatalana/documentsnormatius/docsf2.htm]
FOUND BROKEN URL [http://esadir.cat/entrades/fitxa/node/infringir]
FOUND BROKEN URL [http://esadir.cat/entrades/fitxa/node/daraenendavant]
FOUND BROKEN URL [http://esadir.cat/gramatica/sintaxi/indefinits]
FOUND BROKEN URL [http://esadir.cat/entrades/fitxa/node/sovintejar]
FOUND BROKEN URL [http://www.ub.edu/untipdetrucs//?p=1244]
FOUND BROKEN URL [http://esadir.cat/gramatica/sintaxi/advquantit]
FOUND BROKEN URL [http://esadir.cat/entrades/fitxa/node/donarcomencament]
FOUND BROKEN URL [http://esadir.cat/entrades/fitxa/node/properament]
FOUND BROKEN URL [http://esadir.cat/gramatica/sintaxi/noartinf]
Checking [languagetool-language-modules/da/src/main/resources/org/languagetool/rules/da/grammar.xml]...
Checking [languagetool-language-modules/de-DE-x-simple-language/src/main/resources/org/languagetool/rules/de-DE-x-simple-language/grammar.xml]...
Checking [languagetool-language-modules/de/src/main/resources/org/languagetool/rules/de/grammar.xml]...
Checking [languagetool-language-modules/el/src/main/resources/org/languagetool/rules/el/grammar.xml]...
Checking [languagetool-language-modules/en/src/main/resources/org/languagetool/rules/en/en-GB/grammar.xml]...
Checking [languagetool-language-modules/en/src/main/resources/org/languagetool/rules/en/en-US/grammar.xml]...
Checking [languagetool-language-modules/en/src/main/resources/org/languagetool/rules/en/grammar.xml]...
FOUND BROKEN URL [https://onlinewritingtraining.com.au/2017/07/apostrophe-usage-use/]
FOUND BROKEN URL [https://cgi.duke.edu/web/sciwriting/index.php?action=lesson3]
Checking [languagetool-language-modules/eo/src/main/resources/org/languagetool/rules/eo/grammar.xml]...
FOUND BROKEN URL [http://www.reta-vortaro.de/revo/art/ningx.html#ningx.0o]
Checking [languagetool-language-modules/es/src/main/resources/org/languagetool/rules/es/grammar.xml]...
FOUND BROKEN URL [http://castellanoactual.com/surtir-o-surgir-efecto/]
Checking [languagetool-language-modules/fa/src/main/resources/org/languagetool/rules/fa/grammar.xml]...
Checking [languagetool-language-modules/fr/src/main/resources/org/languagetool/rules/fr/grammar.xml]...
FOUND BROKEN URL [http://leconjugueur.lefigaro.fr/frhomophonenotre.php]
FOUND BROKEN URL [https://fr.wikipedia.org/wiki/Emmanual_Macron]
FOUND BROKEN URL [http://66.46.185.79/bdl/gabarit_bdl.asp?id=1737]
FOUND BROKEN URL [http://leconjugueur.lefigaro.fr/frtraitunionquestion.php]
FOUND BROKEN URL [http://66.46.185.79/bdl/gabarit_bdl.asp?T1=t+euphonique]
FOUND BROKEN URL [http://66.46.185.79/bdl/gabarit_bdl.asp?id=3480]
FOUND BROKEN URL [http://www.bt-tb.tpsgc-pwgsc.gc.ca/btb.php?lang=fra&cont=034]
FOUND BROKEN URL [http://www.bt-tb.tpsgc-pwgsc.gc.ca/btb.php?lang=fra&cont=271]
FOUND BROKEN URL [http://66.46.185.79/bdl/gabarit_bdl.asp?id=2259]
FOUND BROKEN URL [http://dicollecte.org/grammalecte]
FOUND BROKEN URL [http://dicollecte.org/home.php?prj=fr]
Checking [languagetool-language-modules/gl/src/main/resources/org/languagetool/rules/gl/grammar.xml]...
FOUND BROKEN URL [https://ciberduvidas.iscte-iul.pt/artigos/rúbricas/idioma/sóbrea-escrita-dos-numeros-das-horas-e-de-outras-representacoes/3267]
FOUND BROKEN URL [http://@www.monash.edu/about/editorialstyle/editing/apostrophes]
Checking [languagetool-language-modules/is/src/main/resources/org/languagetool/rules/is/grammar.xml]...
Checking [languagetool-language-modules/it/src/main/resources/org/languagetool/rules/it/grammar.xml]...
Checking [languagetool-language-modules/ja/src/main/resources/org/languagetool/rules/ja/grammar.xml]...
Checking [languagetool-language-modules/km/src/main/resources/org/languagetool/rules/km/grammar.xml]...
Checking [languagetool-language-modules/lt/src/main/resources/org/languagetool/rules/lt/grammar.xml]...
Checking [languagetool-language-modules/ml/src/main/resources/org/languagetool/rules/ml/grammar.xml]...
Checking [languagetool-language-modules/nl/src/main/resources/org/languagetool/rules/nl/grammar.xml]...
FOUND BROKEN URL [https:www.taaladvies.net/vraag/120]
FOUND BROKEN URL [https://onzetaal.nl/taaladvies/welke-die,]
FOUND BROKEN URL [http://www.taalpost.nl/archief/1594.html]
Checking [languagetool-language-modules/pl/src/main/resources/org/languagetool/rules/pl/grammar.xml]...
FOUND BROKEN URL [http://poradnia.pwn.pl/lista.php?id=14326]
FOUND BROKEN URL [http://so.pwn.pl/zasady.php?id=629795]
FOUND BROKEN URL [http://poradnia.pwn.pl/lista.php?id=14974]
FOUND BROKEN URL [http://so.pwn.pl/zasady.php?id=629774]
FOUND BROKEN URL [http://poradnia.pwn.pl/lista.php?id=7774]
FOUND BROKEN URL [http://poradnia.pwn.pl/lista.php?id=6475]
FOUND BROKEN URL [http://poradnia.pwn.pl/lista.php?id=2029]
FOUND BROKEN URL [http://so.pwn.pl/zasady.php?id=629547]
FOUND BROKEN URL [http://www.ekorekta24.pl/porady-jezykowe/19-interpunkcja/188-lata-90-te-lata-90-czy-lata-90-jak-zapisac-liczebniki-porzadkowe]
FOUND BROKEN URL [http://so.pwn.pl/zasady.php?id=629747]
FOUND BROKEN URL [http://so.pwn.pl/zasady.php?id=629865]
FOUND BROKEN URL [http://poradnia.pwn.pl/lista.php?id=11869]
FOUND BROKEN URL [http://poradnia.pwn.pl/lista.php?id=10285]
FOUND BROKEN URL [http://so.pwn.pl/lista.php?co=aktywa]
FOUND BROKEN URL [http://poradnia.pwn.pl/lista.php?id=9687]
FOUND BROKEN URL [http://poradnia.pwn.pl/lista.php?id=3133]
FOUND BROKEN URL [http://slowniki.gazeta.pl/pl/kondycja]
FOUND BROKEN URL [http://poradnia.pwn.pl/lista.php?id=8332]
FOUND BROKEN URL [http://sjp.pwn.pl/haslo.php?id=63498]
FOUND BROKEN URL [http://so.pwn.pl/zasady.php?id=629390]
FOUND BROKEN URL [http://so.pwn.pl/zasady.php?id=629401]
FOUND BROKEN URL [http://so.pwn.pl/zasady.php?id=629494]
FOUND BROKEN URL [http://so.pwn.pl/zasady.php?id=629496]
FOUND BROKEN URL [http://poradnia.pwn.pl/lista.php?id=11919]
FOUND BROKEN URL [http://so.pwn.pl/lista.php?co=warzenie]
FOUND BROKEN URL [http://so.pwn.pl/lista.php?co=Eiffel]
FOUND BROKEN URL [http://poradnia.pwn.pl/lista.php?id=14712]
FOUND BROKEN URL [http://so.pwn.pl/lista.php?co=Ramsay]
FOUND BROKEN URL [http://poradnia.pwn.pl/lista.php?id=10494]
FOUND BROKEN URL [http://so.pwn.pl/zasady.php?id=629610]
FOUND BROKEN URL [http://so.pwn.pl/lista.php?co=Chaplin]
FOUND BROKEN URL [http://poradnia.pwn.pl/lista.php?id=8782]
FOUND BROKEN URL [http://so.pwn.pl/lista.php?co=Clapton]
FOUND BROKEN URL [http://poradnia.pwn.pl/lista.php?id=3727]
FOUND BROKEN URL [http://so.pwn.pl/lista.php?co=Olivier]
FOUND BROKEN URL [http://so.pwn.pl/lista.php?co=Smith]
FOUND BROKEN URL [http://so.pwn.pl/lista.php?co=Stone]
FOUND BROKEN URL [http://so.pwn.pl/lista.php?co=Wright]
FOUND BROKEN URL [http://poradnia.pwn.pl/lista.php?id=11203]
FOUND BROKEN URL [http://poradnia.pwn.pl/lista.php?id=10793]
FOUND BROKEN URL [http://poradnia.pwn.pl/lista.php?id=13046]
FOUND BROKEN URL [http://poradnia.pwn.pl/lista.php?id=6141]
FOUND BROKEN URL [http://so.pwn.pl/lista.php?co=ad+hoc]
FOUND BROKEN URL [http://so.pwn.pl/lista.php?co=m%B3odu]
FOUND BROKEN URL [http://so.pwn.pl/lista.php?co=bezcen]
FOUND BROKEN URL [http://so.pwn.pl/lista.php?co=a+propos]
Checking [languagetool-language-modules/pt/src/main/resources/org/languagetool/rules/pt/grammar.xml]...
FOUND BROKEN URL [https://pt.wikipedia.org/wiki/Lista_de_pleonasmos]
FOUND BROKEN URL [https://pt.wikipedia.org/wiki/X_Toolkit]
FOUND BROKEN URL [https://pt.wikipedia.org/wiki/Bertrand_Russel]
FOUND BROKEN URL [https://pt.wikipedia.org/wiki/Arthur_Garfunkel]
FOUND BROKEN URL [https://pt.wikipedia.org/wiki/Bram_Moolenaar]
FOUND BROKEN URL [https://pt.wikipedia.org/wiki/Alan_Stivell]
FOUND BROKEN URL [https://pt.wikipedia.org/wiki/Glenmor]
FOUND BROKEN URL [https://pt.wikipedia.org/wiki/Bernez_Tangi]
FOUND BROKEN URL [https://pt.wikipedia.org/wiki/Lee_Sedol]
FOUND BROKEN URL [https://pt.wikipedia.org/wiki/Elisabeth_Selbert]
FOUND BROKEN URL [https://pt.wikipedia.org/wiki/Russellsche_Antinomie]
FOUND BROKEN URL [https://pt.wikipedia.org/wiki/Emil_Lenz]
FOUND BROKEN URL [https://pt.wikipedia.org/wiki/Emmanual_Macron]
Checking [languagetool-language-modules/pt/src/main/resources/org/languagetool/rules/pt/pt-AO/grammar.xml]...
Checking [languagetool-language-modules/pt/src/main/resources/org/languagetool/rules/pt/pt-BR/grammar.xml]...
Checking [languagetool-language-modules/pt/src/main/resources/org/languagetool/rules/pt/pt-MZ/grammar.xml]...
Checking [languagetool-language-modules/pt/src/main/resources/org/languagetool/rules/pt/pt-PT/grammar.xml]...
Checking [languagetool-language-modules/ro/src/main/resources/org/languagetool/rules/ro/grammar.xml]...
Checking [languagetool-language-modules/ru/src/main/resources/org/languagetool/rules/ru/grammar.xml]...

```


TeamCity Bvcms / Build [Build 554](https://builds.tpsdb.com/viewLog.html?buildId=3200&buildTypeId=Bvcms_Build) outcome was **SUCCESS**
Summary: Running Build time: 00:04:24


TeamCity Bvcms / Build [Build 555](https://builds.tpsdb.com/viewLog.html?buildId=3201&buildTypeId=Bvcms_Build) is now running


TeamCity Bvcms / Build [Build 555](https://builds.tpsdb.com/viewLog.html?buildId=3201&buildTypeId=Bvcms_Build) outcome was **UNKNOWN**
Summary: Canceled (Error while applying patch; cannot find commit bbe3e6f27eb93ef6c7273f5965dae4ec700ac2ef in the https://brondavies@github.com/bvcms/bvcms repository, possible reason: refs/pull/417/merge branch was updated and the commit selected for the bui... Build time: 00:00:06


Check the comments:
https://github.com/TheOfficialFloW/Adrenaline/commit/41d7b53141e9fc6baffb6c7b36f723ca1a154a0a


Thanks! 🐸


This doesn't work with multiple outputs. You'll need to find out on which output the region is, and then substract the output position.


Where is the cmake script for the 64-bit build?


TeamCity Bvcms / Build [Build 556](https://builds.tpsdb.com/viewLog.html?buildId=3204&buildTypeId=Bvcms_Build) is now running


Incorrectly labelled ... this is actually for issue #36


Copy of this build can be found at
https://www.mewbuilds.com/build/0b5db60ba2f1c38eab642c2ce7c60bdd5a9885d3/index.html
                       https://www.cloudflare-ipfs.com/ipfs/QmTS7qdi4VHLnM3e19R6cqUqRWtGJGY9QcN9sxfoGrRphX


ooo this is beautiful


Replace
```
#include "ogl_image_vertex.h"
#include "ogl_image_fragment.h"
```
to
```
#include "ogl_image_fragment.h"
#include "ogl_image_vertex.h"
```

fix problem. But why?


Now could not deploy this pull request since it contains the following references to invalid secrets in the `env` sections of the `now.json` file:

* `infinity-service-node-env-canary` (in env: `NODE_ENV)`
* `infinity-service-port-canary` (in env: `PORT)`
* `infinity-service-database-canary` (in env: `DATABASE)`
* `infinity-service-token-secret-canary` (in env: `TOKEN_SECRET)`
* `infinity-service-host-canary` (in env: `HOST)`
* `infinity-service-mailer-apikey-canary` (in env: `MAILER_APIKEY)`
* `infinity-service-mailer-domain-canary` (in env: `MAILER_DOMAIN)`
* `infinity-service-mailer-from-canary` (in env: `MAILER_FROM)`
* `infinity-service-cors-origin-canary` (in env: `CORS_ORIGIN)`

Add those secrets or remove them from the `env` maps in the `now.json` file.


Hi ageitgey,
After I compiled  "pil_image = Image.fromarray(image)" this command, here I got this error:
**NameError: name 'Image' is not defined**
I'm using win10, and installed boost, dlib, Cmark.
And also, I couldn't output the result image by using command:
**import face_recognition
image = face_recognition.load_image_file("your_file.jpg")
face_locations = face_recognition.face_locations(image)**
but I have located my cmd directory into the image destination already, however there is no responds at all.
Need help thanks.


<img width="906" alt="16aaf" src="https://user-images.githubusercontent.com/25286924/53374668-42607100-3959-11e9-8951-dd0a6b7f84f7.png">


Created multidev environment [ecrac#ci-308](https://dashboard.pantheon.io/sites/1291b6c7-9029-4c6d-867f-caf641f6fade#ci-308).

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


TeamCity Bvcms / Build [Build 556](https://builds.tpsdb.com/viewLog.html?buildId=3204&buildTypeId=Bvcms_Build) outcome was **SUCCESS**
Summary: Running Build time: 00:04:17


TeamCity Bvcms / Build [Build 557](https://builds.tpsdb.com/viewLog.html?buildId=3205&buildTypeId=Bvcms_Build) is now running


@mkraetke Please restore the function name tr:fileext-to-mime-type. Other libraries depend on this.


Successfully aliased the URL <https://grxy-o2tkqckhu.now.sh> to the following aliases.

* https://grxy.now.sh
* https://grxy.grex.now.sh


CKA_KEY_TYPE should also be handled


@jeeyi I'm mentioning this in the commit instead of a PR because I've done it as part of branch that has a lot of changes and I can't do a simple PR on the master.

I'm adding a way to pass options to the filter. That's something I wanted to have for some time. We used to create a different file type to circumvent that but that's getting dirty. Options are better and we can refactor the rest later.

It will be used to configure the Android filter first. I needed to improve the escaping logic. This new escaping should ideally be the default one but I want to keep it backward compatible for you.

If you can have a look and try it out. It has clearly better handling of  return line, spaces, etc and would be better if enable by default. Doing a round trip (push, import, pull) would probably nicely cleanup your files if you have messy spaces and return lines. For Mojito, having this escaping by default would be way better.

Used like this `mojito push/pull/import -r android -fto newEscaping=true`


oh I see slurp reports "global" coordinates


TeamCity Bvcms / Build [Build 558](https://builds.tpsdb.com/viewLog.html?buildId=3206&buildTypeId=Bvcms_Build) is now running


TeamCity Bvcms / Build [Build 557](https://builds.tpsdb.com/viewLog.html?buildId=3205&buildTypeId=Bvcms_Build) outcome was **SUCCESS**
Summary: Running Build time: 00:04:20


mainly take care of all returns line and space that would show up in the mojito strings otherwise


CKA_EXTRACTABLE would also be nice,


Sorry to hear that.
I would be very interested in seeing the dts patch you applied to have pcie1 fully working, I have been unsuccessful messing with serdes configuration so far.
Thanks a lot.


also string wrapped in "" are processed, before the "" would show up in the mojito string


TeamCity Bvcms / Build [Build 558](https://builds.tpsdb.com/viewLog.html?buildId=3206&buildTypeId=Bvcms_Build) outcome was **SUCCESS**
Summary: Running Build time: 00:04:20


Successfully aliased the URL <https://graphical-password-scheme-evaluation-js7w9n8u5.now.sh> to the following alias.

* https://gpa-evaluation.now.sh


TeamCity Bvcms / Build [Build 559](https://builds.tpsdb.com/viewLog.html?buildId=3209&buildTypeId=Bvcms_Build) is now running


Successfully aliased the URL <https://grxy-1mwo57jan.now.sh> to the following aliases.

* https://grxy.now.sh
* https://grxy.grex.now.sh


@schildbach This should fix the Travis problem, but these tests run reliably for me on macOS and (I assume) are useful enough that they should be run where they will pass and used as part of the release testing process.

There are a few other things we could try:
1. Look at the actual tests and see what the race condition is and try to resolve it
2. Separate "unit" from "integration" tests in Gradle and only run each set of tests where appropriate
3. Use some kind of a test-runner flag that turns off the sensitive tests in environments where they are sensitive.


as a side note normally a commit should start with the subsystem name so in this case it would be "SITL:"


Successfully aliased the URL <https://graphical-password-scheme-evaluation-61yxdvfjn.now.sh> to the following aliases.

* https://gpa-evaluation.now.sh
* https://graphical-password-scheme-evaluation.fjmillman.now.sh


TeamCity Bvcms / Build [Build 560](https://builds.tpsdb.com/viewLog.html?buildId=3210&buildTypeId=Bvcms_Build) outcome was **UNKNOWN**
Summary: Canceled (Error while applying patch; cannot find commit 6387cdb224a89e1a5e24d786cfdd06ed1af2915d in the https://brondavies@github.com/bvcms/bvcms repository, possible reason: refs/pull/417/merge branch was updated and the commit selected for the bui... Build time: 00:00:09


Can you add a select here and also look for a context cancellation


This commit has been mentioned on **Nix community**. There might be relevant details there:

https://discourse.nixos.org/t/why-is-this-mysql-postinstall-added-to-the-derivation/2250/2


TeamCity Bvcms / Build [Build 559](https://builds.tpsdb.com/viewLog.html?buildId=3209&buildTypeId=Bvcms_Build) outcome was **SUCCESS**
Summary: Running Build time: 00:04:21


TeamCity Bvcms / Build [Build 560](https://builds.tpsdb.com/viewLog.html?buildId=3210&buildTypeId=Bvcms_Build) is now running


GitHub displays a warning mark.
`No newline at end of line`.
I think we should add EOL.


Successfully aliased the URL <https://tama-starter-v2-d7d6i1xa4.now.sh> to the following aliases.

* https://tama-starter-v2.now.sh
* https://tama-starter-v2.valpinkman.now.sh


Automate Pass1Pass2 for modeling Chinook sport non-retention encounters.
This functionality has been added to FRAM Utilities
Selecting the checkbox will
-zero out non-retention
-model all marine sport fisheries as non-selective scalers covering the combined retention and non-retention period (these scalers are brought in automatically from the 'Run spreadsheet')
- user will be prompted to run the first pass
-after running, FRAM will produce FishSumAll mortality estimates and paste into 'Run spreadsheet'
-then the new scalers/quotas/flags/non-retention inputs from 'Run spreadsheet' are read into FRAM
-user can then select to run pass 2


TeamCity Bvcms / Build [Build 561](https://builds.tpsdb.com/viewLog.html?buildId=3217&buildTypeId=Bvcms_Build) is now running


it might also be a good idea to add the hero back in only on the home page, to help fill space.


Copy of this build can be found at
https://www.mewbuilds.com/build/a825e7b999675e3ac66ea260452f0a20a4bbcb1b/index.html
                       https://www.cloudflare-ipfs.com/ipfs/QmTsC4hxdymB7y6eyjyfiPVYvXEZxQHLpwaQxKKyULdRUG


Small code update to check for an existing base period for time 4 (Sep) Willapa sport. T4 BPERs exist in older version of the base period, but not in the new version. If base period exists, then coastal iterations can be performed in this time step (previously time 4 and 5 catches would have been combined and modeled in time 5).


Not 💯 % sure if defaultProps is always an object if we don't set - can we double check either if it is or just be super defensive here `Component.defaultProps && Component.defaultProps.defaultValue` ??


thanks. I think we are fine.


Actually this is uneeded


OK


Successfully aliased the URL <https://graphical-password-scheme-evaluation-poxqxppsa.now.sh> to the following aliases.

* https://gpa-evaluation.now.sh
* https://graphical-password-scheme-evaluation.fjmillman.now.sh


Where do you enforce this order relation? I don't see any part of the ```CachedChartModel``` that guarantees that this relation holds.


Nothing


Successfully aliased the URL <https://glographql-enwmuk748.now.sh> to the following aliases.

* https://glo-graphql.now.sh
* https://GloGraphQL.jamesquigley.now.sh


TeamCity Bvcms / Build [Build 561](https://builds.tpsdb.com/viewLog.html?buildId=3217&buildTypeId=Bvcms_Build) outcome was **SUCCESS**
Summary: Running Build time: 00:04:19


What if you add 0x00 to the end of the arrays in those headers?
Strings in c are supposed to be \0 terminated, but those aren't so that could be the problem?


@rslobojan-saucelabs I tend to agree with @wswebcreation . The problem with not having atomic tests is that they take extra time to execute because they need to set up the application in the state before even validating the feature. Larger tests are nearly always more fragile than smaller tests. Every single command that we have in a test is a chance for something to go wrong that isn't related to the app (with browser based acceptance tests). Invalid element locator and improper synchronization are two of the most common culprits. But there are many more. So the less commands, the more stable our tests usually are.

Finally, if you tested a feature such as login, and adding an item to a cart, and searching for an item, there seems to be no reason to repeat all of those steps again, just to test that a user can checkout. Instead, just set the state of the app to what you want and then test the feature at hand.

Similar to mocking in unit tests. Mocking helps us to control the state of our system under test. The same applies to functional tests. We don't have mocks, but we do create seams in our web app to allow us to control the state, avoid the dependencies, and then focus on the feature at hand.

I do agree with you that some things can go wrong as a result of this approach. But that just tells me that the application is not testable. Similar concept applies to unit tests. If we can't write unit tests because the application isn't testable, probably the wrong solution is to write integration tests or even acceptance tests. The right solution is to figure out why we can't write unit tests, fix the problem, and then write the tests. What do you think?


In the load_data function when the new range is inserted.


https://github.com/caligari87/ObAddon: ObAddon, a constant work in progress which adds significant amounts to base Oblige 7.70 via LUA. I am also personally involved with input and prefabs.


Created multidev environment [sfgov#ci-1953](https://dashboard.pantheon.io/sites/91d50373-c4cf-40e4-a646-cb73e16a140c#ci-1953).

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


Successfully aliased the URL <https://jameswlanecom-phre7ziz0.now.sh> to the following aliases.

* https://jameswlane.com
* https://www.jameswlane.com


yeah good call


Thank you for pointing this out.
It should be fixed in https://github.com/macports/macports-ports/commit/26783db58777261816431eedae519cdb64437e0c.


Criação de Documentação e Diagrama de Caso de Uso


Can you briefly describe how you guarantee that relation? You have an ordering relation that says:

```forall i: m_ranges[i].m_start < m_ranges[i + 1].m_start && m_ranges[i + 1].m_end < m_ranges[i].m_end```

Nothing that I can find in ```load_data``` either preserves this guarantee or requires it, on the contrary this ordering relation is almost certainly incorrect, although I have only glanced at it for maybe 2 minutes so I might be missing something.


[R/biomassCalculation.R:45:52:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/biomassCalculation.R#L45) *style:* **Variable or function name should be lowerCamelCase.**
```r
setGeneric("biomassCalculation", function(species, DBH, includeHeight,
                                                   ^~~
```
[R/biomassCalculation.R:56:34:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/biomassCalculation.R#L56) *style:* **Variable or function name should be lowerCamelCase.**
```r
  definition = function(species, DBH, includeHeight,
                                 ^~~
```
[R/biomassCalculation.R:58:7:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/biomassCalculation.R#L58) *style:* **Place a space before left parenthesis, except in a function call.**
```r
    if(equationSource != "Lambert2005" & equationSource != "Ung2008"){
      ^
```
[R/biomassCalculation.R:62:7:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/biomassCalculation.R#L62) *style:* **Place a space before left parenthesis, except in a function call.**
```r
    if(!includeHeight) {
      ^
```
[R/biomassCalculation.R:111:17:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/biomassCalculation.R#L111) *style:* **Use <-, not =, for assignment.**
```r
          wood1 = 0.0562
                ^
```
[R/biomassCalculation.R:332:13:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/biomassCalculation.R#L332) *style:* **Place a space before left parenthesis, except in a function call.**
```r
          if(equationSource == "Lambert2005"){
            ^
```
[R/biomassCalculation.R:356:18:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/biomassCalculation.R#L356) *style:* **Place a space before left parenthesis, except in a function call.**
```r
        } else if(individualSpecies == "pacific silver fir"){
                 ^
```
[R/biomassCalculation.R:370:18:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/biomassCalculation.R#L370) *style:* **Place a space before left parenthesis, except in a function call.**
```r
        } else if(individualSpecies == "red alder" | individualSpecies == "black cottonwood"){
                 ^
```
[R/biomassCalculation.R:384:18:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/biomassCalculation.R#L384) *style:* **Place a space before left parenthesis, except in a function call.**
```r
        } else if(individualSpecies == "red ash"){
                 ^
```
[R/biomassCalculation.R:525:13:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/biomassCalculation.R#L525) *style:* **Place a space before left parenthesis, except in a function call.**
```r
          if(equationSource == "Lambert2005"){
            ^
```
[R/biomassCalculation.R:1636:57:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/biomassCalculation.R#L1636) *style:* **Commas should always have a space after.**
```r
      missedSpecies = unique(tempdatatable[biomass == 0,]$species)
                                                        ^
```
[R/biomassCalculation.R:1651:34:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/biomassCalculation.R#L1651) *style:* **Variable or function name should be lowerCamelCase.**
```r
  definition = function(species, DBH, height, equationSource) {
                                 ^~~
```
[R/biomassCalculation.R:1673:34:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/biomassCalculation.R#L1673) *style:* **Variable or function name should be lowerCamelCase.**
```r
  definition = function(species, DBH, includeHeight, height) {
                                 ^~~
```
[R/biomassCalculation.R:1695:34:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/biomassCalculation.R#L1695) *style:* **Variable or function name should be lowerCamelCase.**
```r
  definition = function(species, DBH, height) {
                                 ^~~
```
[R/biomassCalculation.R:1717:34:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/biomassCalculation.R#L1717) *style:* **Variable or function name should be lowerCamelCase.**
```r
  definition = function(species, DBH, equationSource) {
                                 ^~~
```
[R/biomassCalculation.R:1739:34:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/biomassCalculation.R#L1739) *style:* **Variable or function name should be lowerCamelCase.**
```r
  definition = function(species, DBH) {
                                 ^~~
```
[R/gis.R:34:45:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/gis.R#L34) *style:* **Variable or function name should be lowerCamelCase.**
```r
factorValues2 <- function(x, v, layer, att, append.names, na.rm = FALSE) {
                                            ^~~~~~~~~~~~
```
[R/gis.R:34:59:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/gis.R#L34) *style:* **Variable or function name should be lowerCamelCase.**
```r
factorValues2 <- function(x, v, layer, att, append.names, na.rm = FALSE) {
                                                          ^~~~~
```
[R/pkgDepGraph.R:6:1:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/pkgDepGraph.R#L6) *style:* **Lines should not be more than 100 characters.**
```r
#' \code{c("LandR", "pemisc", "map", "SpaDES", "SpaDES.tools", "SpaDES.core", "SpaDES.addins", "SpaDES.shiny", "reproducible", "quickPlot")}
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/prepFireData.R:36:10:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/prepFireData.R#L36) *style:* **Use <-, not =, for assignment.**
```r
    type = type[1]
         ^
```
[R/prepFireData.R:45:6:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/prepFireData.R#L45) *style:* **Commented code should be removed.**
```r
    #gsub(".*href=\\\"(.*\\.zip)", "\\1", lineWithFile)
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/prepFireData.R:60:1:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/prepFireData.R#L60) *style:* **Lines should not be more than 100 characters.**
```r
    out <- prepInputs(url = "http://cwfis.cfs.nrcan.gc.ca/downloads/nfdb/fire_poly/current_version/NFDB_poly.zip",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/psp_clean.R:9:1:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L9) *style:* **Lines should not be more than 100 characters.**
```r
      "Latitude", "latitude", "Longitude", "longitude", "lgtree_genus", "lgtree_species", "lgtree_status",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/psp_clean.R:32:1:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L32) *style:* **Variable or function name should be lowerCamelCase.**
```r
dataPurification_ABMaturePSP <- function(treeDataRaw, plotHeaderDataRaw) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/psp_clean.R:38:17:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L38) *style:* **Variable or function name should be lowerCamelCase.**
```r
  treeDataRaw[, GroupNumber := as.character(GroupNumber)]
                ^~~~~~~~~~~
```
[R/psp_clean.R:42:36:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L42) *style:* **Commas should never have a space before.**
```r
           c("GroupNumber", "Type" ,"NofSubplot", "Longitude", "Latitude",
                                  ~^
```
[R/psp_clean.R:42:37:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L42) *style:* **Commas should always have a space after.**
```r
           c("GroupNumber", "Type" ,"NofSubplot", "Longitude", "Latitude",
                                    ^
```
[R/psp_clean.R:48:16:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L48) *style:* **Variable or function name should be lowerCamelCase.**
```r
  headerData[, GroupNumber := as.character(GroupNumber)]
               ^~~~~~~~~~~
```
[R/psp_clean.R:49:44:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L49) *style:* **Variable or function name should be lowerCamelCase.**
```r
  headerData[Meridian == "UTM 117(NAD83)", Zone := 11]
                                           ^~~~
```
[R/psp_clean.R:50:44:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L50) *style:* **Variable or function name should be lowerCamelCase.**
```r
  headerData[Meridian == "UTM 111(NAD83)", Zone := 12]
                                           ^~~~
```
[R/psp_clean.R:53:3:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L53) *style:* **Variable or function name should be lowerCamelCase.**
```r
  headerData_SA <- treeDataRaw[TreeNumber == 0 & (!is.na(DBHage) | !is.na(Stumpage)), ]
  ^~~~~~~~~~~~~
```
[R/psp_clean.R:54:3:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L54) *style:* **Variable or function name should be lowerCamelCase.**
```r
  SADiff <- as.integer(mean(headerData_SA[!is.na(DBHage) &
  ^~~~~~
```
[R/psp_clean.R:58:3:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L58) *style:* **Variable or function name should be lowerCamelCase.**
```r
  headerData_SA <- headerData_SA[!is.na(DBHage) & is.na(Stumpage),
  ^~~~~~~~~~~~~
```
[R/psp_clean.R:59:34:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L59) *style:* **Variable or function name should be lowerCamelCase.**
```r
                                 Stumpage := DBHage + SADiff][
                                 ^~~~~~~~
```
[R/psp_clean.R:63:3:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L63) *style:* **Variable or function name should be lowerCamelCase.**
```r
  headerData_SA <-  headerData_SA[, .(baseYear = mean(firstMeasureYear),
  ^~~~~~~~~~~~~
```
[R/psp_clean.R:75:65:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L75) *style:* **Only use double-quotes.**
```r
                                                nomatch  = 0][, ':='(Type = NULL,
                                                                ^~~~
```
[R/psp_clean.R:75:69:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L75) *style:* **Place a space before left parenthesis, except in a function call.**
```r
                                                nomatch  = 0][, ':='(Type = NULL,
                                                                    ^
```
[R/psp_clean.R:90:16:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L90) *style:* **Variable or function name should be lowerCamelCase.**
```r
  tempPlotID[, MeasureID := as.numeric(row.names(tempPlotID))]
               ^~~~~~~~~
```
[R/psp_clean.R:105:14:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L105) *style:* **Only use double-quotes.**
```r
  treeData[, ':='(Conditioncode1 = NULL, Conditioncode2 = NULL, Conditioncode3 = NULL)]
             ^~~~
```
[R/psp_clean.R:105:18:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L105) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  treeData[, ':='(Conditioncode1 = NULL, Conditioncode2 = NULL, Conditioncode3 = NULL)]
                 ^
```
[R/psp_clean.R:114:1:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L114) *style:* **Lines should not be more than 100 characters.**
```r
      plotsize <- as.numeric(headerData[GroupNumber == groupnumber, ]$PlotSize) # obtain plot size from headData
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/psp_clean.R:115:37:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L115) *style:* **Variable or function name should be lowerCamelCase.**
```r
      treeData[MeasureID == plotid, Treeplotsize := plotsize]
                                    ^~~~~~~~~~~~
```
[R/psp_clean.R:122:16:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L122) *style:* **Variable or function name should be lowerCamelCase.**
```r
  headerData[, PlotSize := NULL]
               ^~~~~~~~
```
[R/psp_clean.R:123:1:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L123) *style:* **Lines should not be more than 100 characters.**
```r
  headerData <- measureiddata[setkey(headerData, GroupNumber), nomatch  = 0][, Longitude := -(Longitude)]
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/psp_clean.R:123:80:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L123) *style:* **Variable or function name should be lowerCamelCase.**
```r
  headerData <- measureiddata[setkey(headerData, GroupNumber), nomatch  = 0][, Longitude := -(Longitude)]
                                                                               ^~~~~~~~~
```
[R/psp_clean.R:123:94:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L123) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  headerData <- measureiddata[setkey(headerData, GroupNumber), nomatch  = 0][, Longitude := -(Longitude)]
                                                                                ^
```
[R/psp_clean.R:124:14:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L124) *style:* **Only use double-quotes.**
```r
  treeData[, ':='(DBH = DBH / 10, PlotSize = NULL, plotsizetime = NULL)]
             ^~~~
```
[R/psp_clean.R:124:18:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L124) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  treeData[, ':='(DBH = DBH / 10, PlotSize = NULL, plotsizetime = NULL)]
                 ^
```
[R/psp_clean.R:126:16:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L126) *style:* **Variable or function name should be lowerCamelCase.**
```r
  headerData[, MeasureID := paste("ABPSPMature_", MeasureID, sep = "")]
               ^~~~~~~~~
```
[R/psp_clean.R:133:14:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L133) *style:* **Variable or function name should be lowerCamelCase.**
```r
  treeData[, MeasureID := paste("ABPSPMature_", MeasureID, sep = "")]
             ^~~~~~~~~
```
[R/psp_clean.R:147:1:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L147) *style:* **Variable or function name should be lowerCamelCase.**
```r
dataPurification_BCPSP <- function(treeDataRaw, plotHeaderDataRaw) {
^~~~~~~~~~~~~~~~~~~~~~
```
[R/psp_clean.R:148:56:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L148) *style:* **Commas should always have a space after.**
```r
  headerData <- plotHeaderDataRaw[tot_stand_age != -99,][
                                                       ^
```
[R/psp_clean.R:149:7:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L149) *style:* **Only use double-quotes.**
```r
    , ':='(utmtimes = length(unique(utm_zone)),
      ^~~~
```
[R/psp_clean.R:149:11:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L149) *style:* **Place a space before left parenthesis, except in a function call.**
```r
    , ':='(utmtimes = length(unique(utm_zone)),
          ^
```
[R/psp_clean.R:157:5:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L157) *style:* **Commented code should be removed.**
```r
  # unique(headDataRaw$utmtimes)#1
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/psp_clean.R:158:5:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L158) *style:* **Commented code should be removed.**
```r
  # unique(headDataRaw$eastingtimes)#1
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/psp_clean.R:159:5:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L159) *style:* **Commented code should be removed.**
```r
  # unique(headDataRaw$northingtimes)# 1
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/psp_clean.R:160:5:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L160) *style:* **Commented code should be removed.**
```r
  # unique(headDataRaw$SAtimes) # no NA
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/psp_clean.R:161:5:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L161) *style:* **Commented code should be removed.**
```r
  # unique(headDataRaw$plotsizetimes)#1
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/psp_clean.R:162:5:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L162) *style:* **Commented code should be removed.**
```r
  # unique(headDataRaw$standorigtimes) # 1
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/psp_clean.R:165:62:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L165) *style:* **Commas should always have a space after.**
```r
  headerData <- headerData[stnd_org == "N" | stnd_org == "F",]
                                                             ^
```
[R/psp_clean.R:168:5:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L168) *style:* **Commented code should be removed.**
```r
  # unique(headDataRaw$treatmenttimes) # 1 2
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/psp_clean.R:177:90:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L177) *style:* **Commas should always have a space after.**
```r
  headerData <- headerData[!is.na(utm_zone) & !is.na(utm_easting) & !is.na(utm_northing),]
                                                                                ^
```
[R/psp_clean.R:179:44:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L179) *style:* **Commas should always have a space after.**
```r
  headerData <- headerData[!is.na(area_pm),][, ':='(tot_stand_age = NULL, meas_yr = NULL)]
                                           ^
```
[R/psp_clean.R:179:48:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L179) *style:* **Only use double-quotes.**
```r
  headerData <- headerData[!is.na(area_pm),][, ':='(tot_stand_age = NULL, meas_yr = NULL)]
                                               ^~~~
```
[R/psp_clean.R:179:52:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L179) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  headerData <- headerData[!is.na(area_pm),][, ':='(tot_stand_age = NULL, meas_yr = NULL)]
                                                   ^
```
[R/psp_clean.R:187:75:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L187) *style:* **Commas should always have a space after.**
```r
  treeData <- treeDataRaw[OrigPlotID1 %in% unique(headerData$OrigPlotID1),]
                                                                          ^
```
[R/psp_clean.R:188:5:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L188) *style:* **Commented code should be removed.**
```r
  # range(treeData$meas_yr) # 1926 2014
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/psp_clean.R:189:5:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L189) *style:* **Commented code should be removed.**
```r
  # unique(treeData$Plotnumber) # 01 02 03
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/psp_clean.R:190:45:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L190) *style:* **Commas should always have a space after.**
```r
  treeData <- treeData[sub_plot_tree == "N",][, OrigPlotID2 := as.numeric(OrigPlotID2)]
                                            ^
```
[R/psp_clean.R:190:49:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L190) *style:* **Variable or function name should be lowerCamelCase.**
```r
  treeData <- treeData[sub_plot_tree == "N",][, OrigPlotID2 := as.numeric(OrigPlotID2)]
                                                ^~~~~~~~~~~
```
[R/psp_clean.R:193:5:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L193) *style:* **Commented code should be removed.**
```r
  # unique(treeData$ld)
    ^~~~~~~~~~~~~~~~~~~
```
[R/psp_clean.R:196:1:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L196) *style:* **Lines should not be more than 100 characters.**
```r
  measreidtable <- unique(treeData[,.(OrigPlotID1, OrigPlotID2, MeasureYear)], by = c("OrigPlotID1", "OrigPlotID2", "MeasureYear"))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/psp_clean.R:196:37:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L196) *style:* **Commas should always have a space after.**
```r
  measreidtable <- unique(treeData[,.(OrigPlotID1, OrigPlotID2, MeasureYear)], by = c("OrigPlotID1", "OrigPlotID2", "MeasureYear"))
                                    ^
```
[R/psp_clean.R:197:19:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L197) *style:* **Variable or function name should be lowerCamelCase.**
```r
  measreidtable[, MeasureID := paste("BCPSP_", row.names(measreidtable), sep = "")]
                  ^~~~~~~~~
```
[R/psp_clean.R:198:35:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L198) *style:* **Commas should always have a space after.**
```r
  measreidtable <- measreidtable[,.(MeasureID, OrigPlotID1, OrigPlotID2, MeasureYear)]
                                  ^
```
[R/psp_clean.R:219:1:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L219) *style:* **Variable or function name should be lowerCamelCase.**
```r
dataPurification_SKPSP <- function(SADataRaw,
^~~~~~~~~~~~~~~~~~~~~~
```
[R/psp_clean.R:219:36:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L219) *style:* **Variable or function name should be lowerCamelCase.**
```r
dataPurification_SKPSP <- function(SADataRaw,
                                   ^~~~~~~~~
```
[R/psp_clean.R:223:5:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L223) *style:* **Commented code should be removed.**
```r
  # range(SADataRaw$COUNTED_AGE) # NA NA
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/psp_clean.R:224:5:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L224) *style:* **Commented code should be removed.**
```r
  # range(SADataRaw$TOTAL_AGE) # NA NA
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/psp_clean.R:225:5:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L225) *style:* **Commented code should be removed.**
```r
  # unique(SADataRaw$TREE_STATUS)
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/psp_clean.R:226:3:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L226) *style:* **Variable or function name should be lowerCamelCase.**
```r
  header_SA <- SADataRaw[!is.na(TOTAL_AGE) & TREE_STATUS == 1, ]
  ^~~~~~~~~
```
[R/psp_clean.R:229:3:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L229) *style:* **Variable or function name should be lowerCamelCase.**
```r
  header_SA_Dom <- header_SA[CROWN_CLASS == 1, ] # the stand age first determined by dominant trees
  ^~~~~~~~~~~~~
```
[R/psp_clean.R:230:19:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L230) *style:* **Variable or function name should be lowerCamelCase.**
```r
  header_SA_Dom[, NofTrees := length(CROWN_CLASS), by  = PLOT_ID]
                  ^~~~~~~~
```
[R/psp_clean.R:231:5:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L231) *style:* **Commented code should be removed.**
```r
  # unique(SADataRawDomSA$NofTrees) # 1 2 3 4 5
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/psp_clean.R:233:3:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L233) *style:* **Variable or function name should be lowerCamelCase.**
```r
  header_SA_Dom <- header_SA_Dom[NofTrees != 1, ]
  ^~~~~~~~~~~~~
```
[R/psp_clean.R:234:5:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L234) *style:* **Commented code should be removed.**
```r
  # SADataRawDomSA[, treeAgeDif:=max(treeAge)-min(treeAge), by = PLOT_ID]
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/psp_clean.R:235:5:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L235) *style:* **Commented code should be removed.**
```r
  # range(SADataRawDomSA$treeAgeDif) # 0 44
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/psp_clean.R:236:5:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L236) *style:* **Commented code should be removed.**
```r
  # mean(SADataRawDomSA$treeAgeDif) # 7.03
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/psp_clean.R:238:3:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L238) *style:* **Variable or function name should be lowerCamelCase.**
```r
  header_SA_Dom <-
  ^~~~~~~~~~~~~
```
[R/psp_clean.R:241:3:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L241) *style:* **Variable or function name should be lowerCamelCase.**
```r
  header_SA_CoDom <- header_SA[CROWN_CLASS == 2, ]
  ^~~~~~~~~~~~~~~
```
[R/psp_clean.R:243:3:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L243) *style:* **Variable or function name should be lowerCamelCase.**
```r
  header_SA_CoDom <-
  ^~~~~~~~~~~~~~~
```
[R/psp_clean.R:245:21:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L245) *style:* **Variable or function name should be lowerCamelCase.**
```r
  header_SA_CoDom[, NofTrees := length(CROWN_CLASS), by  = PLOT_ID]
                    ^~~~~~~~
```
[R/psp_clean.R:246:5:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L246) *style:* **Commented code should be removed.**
```r
  # unique(SADataRawCodomSA$NofTrees)
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/psp_clean.R:247:3:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L247) *style:* **Variable or function name should be lowerCamelCase.**
```r
  header_SA_CoDom <- header_SA_CoDom[NofTrees != 1, ]
  ^~~~~~~~~~~~~~~
```
[R/psp_clean.R:249:3:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L249) *style:* **Variable or function name should be lowerCamelCase.**
```r
  header_SA_CoDom <-
  ^~~~~~~~~~~~~~~
```
[R/psp_clean.R:251:3:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L251) *style:* **Variable or function name should be lowerCamelCase.**
```r
  headData_SA <- rbind(header_SA_Dom, header_SA_CoDom)
  ^~~~~~~~~~~
```
[R/psp_clean.R:253:3:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L253) *style:* **Variable or function name should be lowerCamelCase.**
```r
  headData_loca <-
  ^~~~~~~~~~~~~
```
[R/psp_clean.R:257:3:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L257) *style:* **Variable or function name should be lowerCamelCase.**
```r
  headData_SALoca <- setkey(headData_SA, PLOT_ID)[setkey(headData_loca, PLOT_ID), nomatch = 0]
  ^~~~~~~~~~~~~~~
```
[R/psp_clean.R:258:3:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L258) *style:* **Variable or function name should be lowerCamelCase.**
```r
  headData_PS <-
  ^~~~~~~~~~~
```
[R/psp_clean.R:261:3:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L261) *style:* **Variable or function name should be lowerCamelCase.**
```r
  headData_PS <- unique(headData_PS, by = "PLOT_ID")
  ^~~~~~~~~~~
```
[R/psp_clean.R:307:5:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L307) *style:* **Commented code should be removed.**
```r
  # unique(treeDataRaw[is.na(TREE_STATUS) & is.na(MORTALITY), ]$CONDITIONCODE1)
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/psp_clean.R:324:20:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L324) *style:* **Variable or function name should be lowerCamelCase.**
```r
  measureidtable[, MeasureID := paste("SKPSP_", row.names(measureidtable), sep = "")]
                   ^~~~~~~~~
```
[R/psp_clean.R:328:48:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L328) *style:* **Commas should always have a space after.**
```r
    setkey(treeData, OrigPlotID1, MeasureYear),nomatch = 0]
                                               ^
```
[R/psp_clean.R:363:1:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L363) *style:* **Variable or function name should be lowerCamelCase.**
```r
dataPurification_SKTSP_Mistic <- function(compiledPlotData, compiledTreeData) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/psp_clean.R:366:1:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L366) *style:* **Lines should not be more than 100 characters.**
```r
  headData <- compiledPlotData[, .(ID_FOR, CRZ_ZONE, CRZNORTH, CRZ_EAST, PLOTNUM, YEAR, PSIZE, P_AGECLS)]
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/psp_clean.R:369:14:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L369) *style:* **Variable or function name should be lowerCamelCase.**
```r
  headData[, PlotSize := sum(PSIZE), by = ID_FOR]
             ^~~~~~~~
```
[R/psp_clean.R:370:49:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L370) *style:* **Only use double-quotes.**
```r
  headData <- unique(headData, by = "ID_FOR")[, ':='(PLOTNUM = NULL, PSIZE = NULL)]
                                                ^~~~
```
[R/psp_clean.R:370:53:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L370) *style:* **Place a space before left parenthesis, except in a function call.**
```r
  headData <- unique(headData, by = "ID_FOR")[, ':='(PLOTNUM = NULL, PSIZE = NULL)]
                                                    ^
```
[R/psp_clean.R:371:14:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L371) *style:* **Variable or function name should be lowerCamelCase.**
```r
  headData[, MeasureID := paste("SKTSP_Mistik_", row.names(headData), sep = "")]
             ^~~~~~~~~
```
[R/psp_clean.R:375:1:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L375) *style:* **Lines should not be more than 100 characters.**
```r
  treeData <- compiledTreeData[, .(ID_FOR, TREENO, SPECIES, DBH, HEIGHT, CONDCOD1, CONDCOD2, CONDCOD3)]
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/psp_clean.R:376:60:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L376) *style:* **Commas should always have a space after.**
```r
  treeData <- treeData[ID_FOR %in% unique(headData$ID_FOR),]
                                                           ^
```
[R/psp_clean.R:406:1:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L406) *style:* **Variable or function name should be lowerCamelCase.**
```r
dataPurification_NFIPSP <- function(lgptreeRaw, lgpHeaderRaw, approxLocation) {
^~~~~~~~~~~~~~~~~~~~~~~
```
[R/psp_clean.R:418:100:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L418) *style:* **Commas should always have a space after.**
```r
                             lgtree_status, dbh, height)][nfi_plot %in% unique(lgpHeader$nfi_plot),]
                                                                                ^
```
[R/psp_clean.R:419:74:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L419) *style:* **Variable or function name should be lowerCamelCase.**
```r
  treeData <- treeData[lgtree_status != "DS" & lgtree_status != "M", ][, lgtree_status := NULL]
                                                                         ^~~~~~~~~~~~~
```
[R/psp_clean.R:420:1:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L420) *style:* **Lines should not be more than 100 characters.**
```r
  setnames(treeData, c("nfi_plot", "year", "tree_num", "lgtree_genus", "lgtree_species", "dbh", "height"),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/psp_clean.R:423:1:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L423) *style:* **Lines should not be more than 100 characters.**
```r
  names(lgpHeader) <- c("OrigPlotID1", "baseYear", "PlotSize", "baseSA", "Longitude", "Latitude", "Elevation")
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/psp_clean.R:426:15:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L426) *style:* **Variable or function name should be lowerCamelCase.**
```r
  newheader[, MeasureID := paste("NFIPSP_", row.names(newheader), sep = "")]
              ^~~~~~~~~
```
[R/psp_clean.R:428:1:](https://github.com/PredictiveEcology/pemisc/blob/21f8de3f8d7dc8f1872a6563e2656c9908b90153/R/psp_clean.R#L428) *style:* **Lines should not be more than 100 characters.**
```r
  treeData <- setkey(treeData, OrigPlotID1)[setkey(newheader[, .(OrigPlotID1, MeasureID)], OrigPlotID1), nomatch = 0]
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```


test


The Guardian and taipei times's picture is too small could you enlarge it.
If the article is too long Tapei times only show the first ，the other cannot see. like this page ---> http://www.taipeitimes.com/News/editorials/archives/2019/02/26/2003710411


The following doc(s) have been deployed to the [ccjjmartin](https://ccjjmartin-static-docs.pantheonsite.io/docs) Multidev environment:
- [/docs/continuous-integration](https://ccjjmartin-static-docs.pantheonsite.io/docs/continuous-integration)


Thuis


Нужно не только в этом методе вынести, в остальных тоже.
По хорошему все сообщения должны быть в константах.
В рамках данной задачи хотя бы из методов валидации вынеси сообщения в константы


Issue #3


Successfully aliased the URL <https://tama-starter-v2-rl7dwp79q.now.sh> to the following aliases.

* https://tama-starter-v2.now.sh
* https://tama-starter-v2.valpinkman.now.sh


Sorry, I have no suggestions beyond try porting the patch to i2cget.c as well :)


Should it be called fileTypeOptions or filterOptions? Should we keep it consistent? I can test backward compatibility so that we can make the new escaping the default.


Следуй стайл гайдам, чтобы твой код было легче читать
https://github.com/arbox/ruby-style-guide/blob/master/README-ruRU.md#consistent-classes


it actually checks for block intersection, not block collision. The naming is misleading all round.


Casting to boolean always return true here (I have testd that solution already).
Using *filter_var()* looks promising because it would handle all possible use cases.