text:
# Change Log

Changes to Calva.

## [Unreleased]

## [2.0.132] - 2020-11-16
- Fix: [[Live Share] connecting to REPL as guest doesn't work in multi-project workspace](https://github.com/BetterThanTomorrow/calva/issues/831)

## [2.0.131] - 2020-11-05
- Fix: [Syntax highlighting error when repl prompt shows ns containing digits](https://github.com/BetterThanTomorrow/calva/issues/834)
- Fix: [Syntax highlighting errors with tokens at the start of a line](https://github.com/BetterThanTomorrow/calva/issues/835)
- Fix: [Various parsing issues](https://github.com/BetterThanTomorrow/calva/issues/802)

## [2.0.130] - 2020-10-25
- Fix: [Jack-in broken on Windows](https://github.com/BetterThanTomorrow/calva/issues/827)

## [2.0.129] - 2020-10-17
- [Improve stack trace output](https://github.com/BetterThanTomorrow/calva/pull/806)
- Fix: [Jack-in is broken for multi-project workspaces](https://github.com/BetterThanTomorrow/calva/issues/821)

## [2.0.128] - 2020-10-17
- Fix: [Jack-in is broken if live share extension is not installed](https://github.com/BetterThanTomorrow/calva/issues/821)

## [2.0.127] - 2020-10-17
- [Live Share Support](https://github.com/BetterThanTomorrow/calva/issues/803)

## [2.0.126] - 2020-10-11
- Fix: [Can't Jack-In to new Luminus template (+re-frame +shadow-cljs)](https://github.com/BetterThanTomorrow/calva/issues/777)
- Fix: [Wrong `(in-ns ...)` sent for files with `.bb` extension](https://github.com/BetterThanTomorrow/calva/issues/812)

## [no new version] - 2020-09-21
- [Move docs into repo](https://github.com/BetterThanTomorrow/calva/issues/788)

## [2.0.125] - 2020-09-20
- [Fix: evals should be ignored during parsing](https://github.com/BetterThanTomorrow/calva/issues/763)
- Fix: [Test runner can't find tests under cursor when using a custom test macro](https://github.com/BetterThanTomorrow/calva/issues/786)
- Fix: [Test runner output only partially commented](https://github.com/BetterThanTomorrow/calva/issues/787)
- [Allow toggling keyboard shortcuts](https://github.com/BetterThanTomorrow/calva/issues/784)

## [2.0.124] - 2020-08-31
- Re-fix: [Can't jack-in when no project file is open](https://github.com/BetterThanTomorrow/calva/issues/734)
- [Fix getDocument function to not return a Log document](https://github.com/BetterThanTomorrow/calva/issues/771)
- Fix: [Inline evaluation result disappears after a second](https://github.com/BetterThanTomorrow/calva/issues/774)

## [2.0.123] - 2020-08-26
- [Change output/repl window extension to .calva-repl](https://github.com/BetterThanTomorrow/calva/issues/754)
- Re-fix: [Interrupting evaluations produces extra output and no prompt](https://github.com/BetterThanTomorrow/calva/issues/738)
- [Fix/enhance test runner](https://github.com/BetterThanTomorrow/calva/issues/764)

## [2.0.122] - 2020-08-20
- Fix: [Can't jack-in when no project file is open](https://github.com/BetterThanTomorrow/calva/issues/734)
- Fix: [Fix stacktraces not showing in output](https://github.com/BetterThanTomorrow/calva/pull/759)

## [2.0.121] - 2020-08-19
- Fix: ["Go to definition" command fails](https://github.com/BetterThanTomorrow/calva/issues/636)
- Fix: [Weird expand selection behavior near an anonymous function](https://github.com/BetterThanTomorrow/calva/issues/600)
- Fix: [Backspace is not working properly in the output window](https://github.com/BetterThanTomorrow/calva/issues/700)
- Fix: [Cannot read property 'includes' of undefined](https://github.com/BetterThanTomorrow/calva/issues/753)

## [2.0.120] - 2020-08-17
- Fix: [Interrupting evaluations produces extra output and no prompt](https://github.com/BetterThanTomorrow/calva/issues/738)
- Add REPL history to new output/REPL window
- Fix: [Calva's ESC keybinding overrides VS Code's (useful) default](https://github.com/BetterThanTomorrow/calva/issues/740)

## [2.0.119] - 2020-08-07
- Really fix: [Accessing recent results (*1, *2, *3) does not work](https://github.com/BetterThanTomorrow/calva/issues/724)

## [2.0.118] - 2020-08-06
- [Remove old REPL Window](https://github.com/BetterThanTomorrow/calva/issues/711)

## [2.0.117] - 2020-08-05
- Fix: [Paste is broken in 2.0.116](https://github.com/BetterThanTomorrow/calva/issues/730)

## [2.0.116] - 2020-08-05
- Fix: [Format-on-paste should not operate inside string literals](https://github.com/BetterThanTomorrow/calva/issues/720)
- Fix: [Accessing recent results (*1, *2, *3) does not work](https://github.com/BetterThanTomorrow/calva/issues/724)

## [2.0.115] - 2020-08-02
- [Add hover to display results for eval as window into output file](https://github.com/BetterThanTomorrow/calva/issues/693)

## [2.0.114] - 2020-08-02
- Fix: [Stop popping up output window when load file has errors](https://github.com/BetterThanTomorrow/calva/issues/717)

## [2.0.113] - 2020-08-1
- [Add vscode command for to eval code given as args](https://github.com/BetterThanTomorrow/calva/issues/690)
- [Move custom REPL snippets to new output/repl window](https://github.com/BetterThanTomorrow/calva/issues/713)
- Fix: [Continuously evaluating in infinite loop](https://github.com/BetterThanTomorrow/calva/issues/712)

## [2.0.112] - 2020-07-30
- Fix: [Don't open output window until connect starts](https://github.com/BetterThanTomorrow/calva/issues/707)

## [2.0.111] - 2020-07-29
- [Handling ansi code by stripping it](https://github.com/BetterThanTomorrow/calva/issues/696)
- Fix: [Output window sometimes getting out of synch, needing overwrite](https://github.com/BetterThanTomorrow/calva/issues/699)
- Fix: [The *Calva says* panel + output window opening at startup gets a bit too much](https://github.com/BetterThanTomorrow/calva/issues/702)
- Fix: [Repl connection fails if afterCLJJackInCode errors](https://github.com/BetterThanTomorrow/calva/issues/703)

## [2.0.110] - 2020-07-28
- [Fix Connect Fails on Windows](https://github.com/BetterThanTomorrow/calva/issues/694)

## [2.0.109] - 2020-07-27
- [New output/REPL window introduced](https://github.com/BetterThanTomorrow/calva/issues/681)

## [2.0.108] - 2020-07-24
- Fix [Jack-in error when choosing Clojure CLI + shadow-cljs project type](https://github.com/BetterThanTomorrow/calva/issues/675)
- Fix [Cannot use default connect sequences when custom connect sequences added](https://github.com/BetterThanTomorrow/calva/issues/685)
- Add analytics to debugger

## [2.0.107] - 2020-06-16
- Fix [Flicker matching brackets as code is typed](https://github.com/BetterThanTomorrow/calva/issues/673)

## [2.0.106] - 2020-06-16
- Fix [Crash - Lexing fails on comment w/ a 20+ hashes](https://github.com/BetterThanTomorrow/calva/issues/667)

## [2.0.105] - 2020-06-15
- Fix [Debug decorations are breaking after stepping through code during debug session](https://github.com/BetterThanTomorrow/calva/issues/669)

## [2.0.104] - 2020-06-14
- Fix [File lexing fails on junk characters inside strings](https://github.com/BetterThanTomorrow/calva/issues/659)

## [2.0.103] - 2020-06-05
- Fix [Stream output messages to Calva Says as they're received](https://github.com/BetterThanTomorrow/calva/issues/638)
- Fix [highlighting of var quote before open token](https://github.com/BetterThanTomorrow/calva/issues/663)

## [2.0.102] - 2020-06-04
- Fix [Format Document sometimes causes Calva to stop working](https://github.com/BetterThanTomorrow/calva/issues/651)
- Fix [repl hanging after disconnecting debugger while repl window focused](https://github.com/BetterThanTomorrow/calva/issues/647)

## [2.0.101] - 2020-05-11
- [Paredit slurp outer form if current form is nested](https://github.com/BetterThanTomorrow/calva/issues/554)

## [2.0.100] - 2020-05-11
- Fix [clj-kondo exceptions thrown by debugger decorations code](https://github.com/BetterThanTomorrow/calva/issues/642)
- Move [warning for clj-kondo not found on classpath](https://github.com/BetterThanTomorrow/calva/issues/639) to Calva says output channel instead of window warning

## [2.0.99] - 2020-05-10
- Fix [Formatting top-level form stopped working](https://github.com/BetterThanTomorrow/calva/issues/640)

## [2.0.98] - 2020-05-04
- Fix [Problems Editing a Bare file (instead of directory)](https://github.com/BetterThanTomorrow/calva/issues/622)

## [2.0.97] - 2020-05-02
- Fix: [The New Indent engine doesn't follow block rules in ns :require #633](https://github.com/BetterThanTomorrow/calva/issues/633)
- Make the new indent engine the default
- Remove dependency on `paredit.js` from `calva-lib`

## [2.0.96] - 2020-04-29
- [Fix colors in suggestion popup (REPL window)](https://github.com/BetterThanTomorrow/calva/issues/623)
- Add "Instrument Top Level Form for Debugging" command and decorations for instrumented functions
- [Remove duplicate paredit.selectOpenList command in package.json](https://github.com/BetterThanTomorrow/calva/issues/629)

## [2.0.95] - 2020-04-25
- [Separate setting for highlighting current indent guide](https://github.com/BetterThanTomorrow/calva/issues/625)
- [Fix: Problems with v2.0.94 rendering performance ](https://github.com/BetterThanTomorrow/calva/issues/626)

## [2.0.94] - 2020-04-24
- [Rainbow indent guides](https://github.com/BetterThanTomorrow/calva/issues/620)

## [2.0.93] - 2020-04-21
- [Unclutter editor context menu when not in clojure files](https://github.com/BetterThanTomorrow/calva/issues/615)

## [2.0.92] - 2020-04-15
- [Changed all documentation links from https://calva.readthedocs.io/ to https://calva.io/](https://github.com/BetterThanTomorrow/calva/issues/604)
- Add step over, step into, and step out debugger features
- Add annotations for debugging to show debug values as the cursor moves to each breakpoint
- Fix debugger disconnect to show quit value instead of cider-nrepl exception
- Use visible editor if one exists with code being debugged, instead of opening a new one

## [2.0.91] - 2020-04-07
- [Add debugger](https://github.com/BetterThanTomorrow/calva/issues/469)

## [2.0.90] - 2020-04-06
- nREPL `eval` should always send along the `ns` parameter

## [2.0.89] - 2020-03-29
- [Add support for connecting to generic project types](https://github.com/BetterThanTomorrow/calva/issues/595)

## [2.0.88] - 2020-03-22
- [Change all references to `#calva-dev` so that they now point to the `#calva` Slack channel](https://clojurians.slack.com/messages/calva/)

## [2.0.87] - 2020-03-21
- [Fix: Two CLJ REPL Windows open on connect when `afterCLJReplJackInCode`is used](https://github.com/BetterThanTomorrow/calva/issues/593)
- [Add info to docs about how to get around `command not found` Jack-in problems](https://github.com/BetterThanTomorrow/calva/issues/591)

## [2.0.86] - 2020-03-19
- [Fix: REPL Window Paredit does not close strings properly](https://github.com/BetterThanTomorrow/calva/issues/587)

## [2.0.85] - 2020-03-15
- Fix: Make lein-shadow project type use lein injections

## [2.0.84] - 2020-03-15
- [Support projects using lein-shadow](https://github.com/BetterThanTomorrow/calva/issues/585)
- [Add documentation for how to use Calva with Luminus](https://calva.io/luminus/)

## [2.0.83] - 2020-03-13
- When format config fails to parse, fall back on defaults rather than crash
- [Fix: Var quoted symbols are treated as reader tags](https://github.com/BetterThanTomorrow/calva/issues/584)

## [2.0.82] - 2020-03-11
- Fix bug with bad formatting defaults when no config file

## [2.0.81] - 2020-03-11
- [Fix: Structural editing is a bit broken when reader tags are involved](https://github.com/BetterThanTomorrow/calva/issues/581)
- [Add cljfmt indent rules](https://github.com/BetterThanTomorrow/calva/issues/80)

## [2.0.80] - 2020-03-07
- Fix so that Paredit treats symbols containing the quote character correctly.
- [Fix: Parameter hints popup should be off by default](https://github.com/BetterThanTomorrow/calva/issues/574)
- [Fix: `nil` followed by comma not highlighted correctly](https://github.com/BetterThanTomorrow/calva/issues/577)
- [Fix: The syntax highlightning fails with symbols named truesomething/falsesomething](https://github.com/BetterThanTomorrow/calva/issues/578)
- Fix so that Paredit does not consider `^` to be part of a symbol name.

## [2.0.79] - 2020-03-01
- Use scope `variable.other.constant` for keywords, making them highlight nicely
- [Highlight/parsing/etc: Data reader tags are part of the tagged form](https://github.com/BetterThanTomorrow/calva/issues/570)

## [2.0.78] - 2020-02-28
- [Improve structural navigation through unbalanced brackets](https://github.com/BetterThanTomorrow/calva/issues/524)
- [Fix lexer going into some weird state after lexing certain patterns](https://github.com/BetterThanTomorrow/calva/issues/566)

## [2.0.77] - 2020-02-23
- [Make rainbow parens and highlight use the same lexer as Paredit](https://github.com/BetterThanTomorrow/calva/issues/561)
- [Fix: Some character literals throws paredit out of whack](https://github.com/BetterThanTomorrow/calva/issues/563)
- [Fix: Initial expand selection sometimes fails](https://github.com/BetterThanTomorrow/calva/issues/549)
- [Change line comment characters to ;;](https://github.com/BetterThanTomorrow/calva/issues/564)
- [Use editor namespace for custom REPL commands w/o `ns` specified](https://github.com/BetterThanTomorrow/calva/issues/558)
- [Add support for comment continuation](https://github.com/BetterThanTomorrow/calva/issues/536)

## [2.0.76] - 2020-02-12
- [Fix Calva locking up when opening files with very long lines](https://github.com/BetterThanTomorrow/calva/issues/556)

## [2.0.75] - 2020-02-01
- [Support cljs-suitable JavaScript completion](https://github.com/BetterThanTomorrow/calva/issues/552)
- [Fix Printing to Calva REPL prints <repl#7> before each print out](https://github.com/BetterThanTomorrow/calva/issues/548)

## [2.0.74] - 2020-01-12
- [Fix Windows documentation for Evaluate current form](https://github.com/BetterThanTomorrow/calva/issues/533)
- [Fix repl-window history issue](https://github.com/BetterThanTomorrow/calva/issues/491)
- [Fix documentation for Calva jack-in with REBL and Leiningen](https://github.com/BetterThanTomorrow/calva/issues/542)

## [2.0.73] - 2019-12-25
- [Add Paredit drag up/down commands](https://github.com/BetterThanTomorrow/calva/issues/500)
- [Add Paredit drag forward up/backward down commands](https://github.com/BetterThanTomorrow/calva/issues/500)

## [2.0.72] - 2019-12-13
- [Deselect text after surrounding with parens/braces/etc](https://github.com/BetterThanTomorrow/calva/issues/511)
- Fix: [Strict mode backspace/delete not deleting unbalanced brackets](https://github.com/BetterThanTomorrow/calva/issues/501)

## [2.0.71] - 2019-12-13
- Fix: [Autocompletion in REPL window broken](https://github.com/BetterThanTomorrow/calva/issues/519)

## [2.0.70] - 2019-12-12
- Fix: [REPL Window not accepting keys like cursor, return, etcetera](https://github.com/BetterThanTomorrow/calva/issues/516)

## [2.0.69] - 2019-12-12
- Fix: [Prepare for Fix of Webview editor font size bug](https://github.com/microsoft/vscode/commit/7e2d7965e5d5728c53996f0024be9b0681369b2a)
- Fix: [REPL window font broken](https://github.com/BetterThanTomorrow/calva/issues/515)

## [2.0.68] - 2019-12-11
- Fix: [(read-line) is being called twice from the REPL Window](https://github.com/BetterThanTomorrow/calva/issues/509)
- Fix: [Font size if visibly bigger in the REPL window](https://github.com/BetterThanTomorrow/calva/issues/152)

## [2.0.67] - 2019-12-10
- [Use markdown to format doc strings in hover](https://github.com/BetterThanTomorrow/calva/pull/503)
- [Add setting to enable doc strings in parameter hints](https://github.com/BetterThanTomorrow/calva/pull/503)
- Fix: [Select Backward * commands won't grow selection in REPL window](https://github.com/BetterThanTomorrow/calva/issues/498)
- Fix: [Paredit select forward/backward add to the selection stack even when they don't select anything](https://github.com/BetterThanTomorrow/calva/issues/506)
- Fix: Calva disables cursor movement in non-clojure files when switching from REPL window to, say, a `.json` file.

## [2.0.66] - 2019-12-02
- Fix: [Cursor moves forward after undoing wraparound commands in REPL window](https://github.com/BetterThanTomorrow/calva/issues/499)
- Fix: Wrong keybinding for Toggle Paredit Mode, now is `ctrl+alt+p ctrl+alt+m`, as it should be
- Fix: [Force Delete Forward not working in REPL window in strict mode](https://github.com/BetterThanTomorrow/calva/issues/496)

## [2.0.65] - 2019-12-02
- [Make all Paredit selection commands shrinkable](https://www.reddit.com/r/Clojure/comments/e3zni2/a_paredit_visual_guide_calvas_paredit_docs/f9e7ujq/)
- Fix: [Raise Sexp/Form needs updated doc and shortcut keys](https://github.com/BetterThanTomorrow/calva/issues/495)

## [2.0.64] - 2019-12-01
- [Add Paredit commands **Push Form Left/right**](https://www.reddit.com/r/Clojure/comments/e3zni2/a_paredit_visual_guide_calvas_paredit_docs/f95v24w/)
- [Add Paredit command **Rewrap**](https://clojureverse.org/t/calva-paredit-just-got-majorly-better/5155/3)

## [2.0.63] - 2019-11-30
- Improve performance of editing Paredit commands
- Add command **Wrap Around ""**

## [2.0.62] - 2019-11-30
- Fix: [Tokenization errors with quotes, derefs, etcetera](https://github.com/BetterThanTomorrow/calva/issues/467)
- Fix: [Glitch in current form highlight in the REPL window when cursor is to the right of a form](https://github.com/BetterThanTomorrow/calva/issues/472)
- Now using the same Paredit implementation for the editor as for the REPL Window.
  - A much more complete set of Paredit commands, and [all documented](https://calva.io/paredit/), in beautiful GIF animations.
  - List based Paredit commands work on strings as well. (Limited by that strings don't have sub lists/strings).
  - Lots of fixes for Paredit commands.
- Fix: [Paredit not activated until focused moved from and back to the editor again](https://github.com/BetterThanTomorrow/calva/issues/454)
- Improving: [paredit `paredit-kill`](https://github.com/BetterThanTomorrow/calva/issues/380)
- Fix: [paredit `backspace` in strict mode](https://github.com/BetterThanTomorrow/calva/issues/379)
- Fix: [REPL window use it own set of paredit hotkeys and these are not configurable](https://github.com/BetterThanTomorrow/calva/issues/260)
- Add default keyboard shortcut maps for the REPL prompt: multi-line or single-line.
- Improvements for Commands using the **Current form** and **Current top level form**:
  - Fix: [Form selection fails on things like '(1)](https://github.com/BetterThanTomorrow/calva/issues/418)
  - Less precision needed for the right form to be selected.
  - All commands for this use the same implementation (so, you can use e.g. **Select Current Form** to know what **Evaluate Current Form** will evaluate).
- Fix: ["Load current Namespace in REPL Window" command not working](https://github.com/BetterThanTomorrow/calva/issues/477)
- Theme compatible status bar indicators for pprint and paredit

## [2.0.61] - 2019-11-15
- Fix: [paredit.deleteBackward sets cursor position wrong when deleting a line. ](https://github.com/BetterThanTomorrow/calva/issues/458)
- Fix: [Calva Highlight sometimes incorrectly recognizes form as a `comment` form](https://github.com/BetterThanTomorrow/calva/issues/403)
- Fix: [Expand selection fails at the start and end of the input of the REPL window](https://github.com/BetterThanTomorrow/calva/issues/417)
- [Add test message to test runner](https://github.com/BetterThanTomorrow/calva/issues/425)
- [Remove some paredit inconsistencies](https://github.com/BetterThanTomorrow/calva/issues/170)
- Fix: [Lexing regex literal tokenization](https://github.com/BetterThanTomorrow/calva/issues/463)

## [2.0.60] - 2019-11-11
- Re-enable default stylings for nREPL status bar items.
- Make `pprint` the default Pretty Printer.

## [2.0.59] - 2019-11-10
- [Enable information providers in jar files e.g. opened with the "Go to Definition" command](https://github.com/BetterThanTomorrow/calva/pull/455)
- [Make Pretty Printing more Configurable](https://github.com/BetterThanTomorrow/calva/pull/436)

## [2.0.58] - 2019-11-07
- [Incorrect red highlights around brackets/paren in specific case](https://github.com/BetterThanTomorrow/calva/issues/410)
- ["Require REPL Utilities" command is broken](https://github.com/BetterThanTomorrow/calva/issues/451)
- [Fix hover definition for symbols derefed with `@` and quoted symbols](https://github.com/BetterThanTomorrow/calva/issues/106)
- [Improve signature help-while-typing hover, with active arg markup](https://github.com/BetterThanTomorrow/calva/pull/450)

## [2.0.57] - 2019-11-03
- [Provide argument list help as you type the function's arguments](https://github.com/BetterThanTomorrow/calva/issues/361)
- [Support special forms in editor hover/completion](https://github.com/BetterThanTomorrow/calva/issues/441)

## [2.0.56] - 2019-11-02
- Add setting for wether to open REPL Window on connect or not
- [Re-open REPL windows where they were last closed](https://github.com/BetterThanTomorrow/calva/issues/300)
- Lexer performance considerably improved. Fixes [this](https://github.com/BetterThanTomorrow/calva/issues/228) and [this](https://github.com/BetterThanTomorrow/calva/issues/128))
- [REPL colours and logo a bit toned down](https://github.com/BetterThanTomorrow/calva/issues/303)
- Removed `useWSL`configuration option because the the use of Calva is fully supported through the [Remote - WSL](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-wsl) extension.

## [2.0.55] - 2019-10-27
- [Add commands for interrupting the current evaluation as well as all running evaluations](https://github.com/BetterThanTomorrow/calva/issues/237)
- [Calva asks for user input when `stdin` needs it (e.g. `read-line`)](https://github.com/BetterThanTomorrow/calva/issues/377)
- Command for clearing the REPL history reworked and now also ”restarts” the REPL window.
- Commands are now added to REPL window history only if they are not identical to the previous command on the history stack.
- [Fix floating promises in evaluation module](https://github.com/BetterThanTomorrow/calva/issues/411)
- REPL Window Evaluation errors now initially hide the stack trace. The user can show it with a click.

## [2.0.54] - 2019-10-25
- [Stop linting, start bundling clj-kondo](https://github.com/BetterThanTomorrow/calva/issues/423)

## [2.0.53] - 2019-10-24
- [Fix hang when user input is requested](https://github.com/BetterThanTomorrow/calva/issues/377)
- Upgrade to `cider-nrepl 0.22.4`

## [2.0.52] - 2019-10-19
- [Add info box for VIM Extension users](https://github.com/BetterThanTomorrow/calva/issues/396)
- [Fix undefined namespace when starting a shadow-cljs cljs REPL Window ](https://github.com/BetterThanTomorrow/calva/issues/115)
- [Make opening the REPL window on connect async](https://github.com/BetterThanTomorrow/calva/issues/399)
- [Fix shadow-cljs menuSelections for Custom Connect Sequences](https://github.com/BetterThanTomorrow/calva/issues/404)

## [2.0.51] - 2019-10-15
- [Toggle the "Use WSL" setting requires extension restart to effect definition provider](https://github.com/BetterThanTomorrow/calva/issues/397)
- [Go to Definition and Peek Definition not working on Windows 10 when using WSL](https://github.com/BetterThanTomorrow/calva/issues/132)
- [Highlight extension settings are uninitialized if no closure editor active on activation ](https://github.com/BetterThanTomorrow/calva/issues/401)
- [Overly aggressive paredit in REPL window](https://github.com/BetterThanTomorrow/calva/issues/255)
- [REPL window use it own set of paredit hotkeys and these are not configurable](https://github.com/BetterThanTomorrow/calva/issues/260)
- [Completion in REPL window should work like in the editor](https://github.com/BetterThanTomorrow/calva/issues/394)

## [2.0.50] - 2019-10-15
- Move user documentation from the wiki to: https://calva.readthedocs.io/

## [2.0.49] - 2019-10-11
- [Fix bugs in comment form selection](https://github.com/BetterThanTomorrow/calva/issues/374)
- [Use of undeclared var in REPL window resets the namespace](https://github.com/BetterThanTomorrow/calva/issues/257)
- [Remove warning that extensions use the `vscode-resource:` scheme directly](https://github.com/BetterThanTomorrow/calva/issues/391)

## [2.0.48] - 2019-10-11
- [Support Jack-in without file open for single-rooted workspace](https://github.com/BetterThanTomorrow/calva/issues/366)
- [Show argument list of fn](https://github.com/BetterThanTomorrow/calva/issues/238)
- [Make code more robust in case Jack-in task fails](https://github.com/BetterThanTomorrow/calva/issues/367)
- [Fix dimming out of stacked ignored forms](https://github.com/BetterThanTomorrow/calva/issues/385)
- [The extension should specify the default schemes for document selectors](https://github.com/BetterThanTomorrow/calva/issues/368)

## [2.0.46] - 2019-10-08
- [Connect warnings and errors as popups](https://github.com/BetterThanTomorrow/calva/issues/356)
- [Don't remove default indents when Calva is not the auto-formatter](https://github.com/BetterThanTomorrow/calva/pull/383)

## [2.0.44] - 2019-10-05
- [Support for custom project/workflow commands](https://github.com/BetterThanTomorrow/calva/issues/281)

## [2.0.43] - 2019-10-03
- [Insourcing @tonsky's Clojure Warrior, now named Calva Highlight](https://github.com/BetterThanTomorrow/calva/pull/362)
- [Update status bar when configuration changed](https://github.com/BetterThanTomorrow/calva/issues/358)

## [2.0.42] - 2019-09-29
- [Adding selected calva commands to the editors context menu](https://github.com/BetterThanTomorrow/calva/issues/338)
- [Fix bug with painting all existing result decoration with the same status](https://github.com/BetterThanTomorrow/calva/issues/353)
- [Fix bug with reporting errors using off-by-one line and column numbers](https://github.com/BetterThanTomorrow/calva/issues/354)

## [2.0.41] - 2019-09-28
- [Add pretty print mode](https://github.com/BetterThanTomorrow/calva/issues/327)
- [Add command for evaluating top level form as comment](https://github.com/BetterThanTomorrow/calva/issues/349)
- [Stop writing results from **Evaluate to Comment** to output pane](https://github.com/BetterThanTomorrow/calva/issues/347)

## [2.0.40] - 2019-09-25
- [Add command for connecting to a non-project REPL](https://github.com/BetterThanTomorrow/calva/issues/328)
- [Add hover to inline result display, containing the full results](https://github.com/BetterThanTomorrow/calva/pull/336)
- [Better inline evaluation error reports with file context](https://github.com/BetterThanTomorrow/calva/issues/329)
- [Enhancement REPL window handling / nREPL menu button](https://github.com/BetterThanTomorrow/calva/issues/337)
- [Print async output, and a setting for where it should go](https://github.com/BetterThanTomorrow/calva/issues/218)
- [Fix REPL window prompt does not always reflect current ns](https://github.com/BetterThanTomorrow/calva/issues/280)
- [Escape HTML in stdout and stderr in REPL window](https://github.com/BetterThanTomorrow/calva/issues/321)
- [Add content security policy to webview and remove image load error](https://github.com/BetterThanTomorrow/calva/issues/341)

## [2.0.39] - 2019-09-20
- [Revert disconnecting and jacking out on closing of REPL window](https://github.com/BetterThanTomorrow/calva/issues/326)

## [2.0.38] - 2019-09-14
- [Close java processes when closing or reloading VS Code. (Windows)](https://github.com/BetterThanTomorrow/calva/issues/305)

## [2.0.37] - 2019-09-14
- [Support connecting to Leiningen and CLI project using shadow-cljs watcher](https://github.com/BetterThanTomorrow/calva/issues/314)
- Fix [Figwheel Main deps added to non-cljs projects](https://github.com/BetterThanTomorrow/calva/issues/317)

## [2.0.36] - 2019-09-12
- Fix [REPL Window namespace being reset to user](https://github.com/BetterThanTomorrow/calva/issues/302)
- Update nrepl-version to 0.22.1

## [2.0.35] - 2019-09-10
- [Customizing the REPL connect sequence](https://github.com/BetterThanTomorrow/calva/issues/282)
- [Support for launching with user aliases/profiles](https://github.com/BetterThanTomorrow/calva/issues/288)

## [2.0.34] - 2019-09-04
- More accurate code completion lookups.
- [Keep focus in editor when evaluating to the REPL Window](https://github.com/BetterThanTomorrow/calva/issues/229).

## [2.0.33] - 2019-08-17
- Support for starting leiningen and clj projects with aliases.

## [2.0.31] - 2019-08-13
- Support Jack-in and Connect in multi-project workspaces.
- Fix bug with snippet field navigation not working.

## [2.0.30] - 2019-08-04
- nREPL status bar indicator can now be styled

## [2.0.29] - 2019-08-04
- Fix jack-in command quoting for `zsh`.

## [2.0.28] - 2019-08-01
- Jack in quoting fixes, mainly for Windows with `clojure/clj`.
- Fix formatting bug when forms not separated by whitespace.

## [2.0.25] - 2019-07-12
- Add command for running test under cursor (at point in CIDER lingo).

## [2.0.24] - 2019-07-12
- Add ParEdit `forwardUpSexp`.

## [2.0.20] - 2019-06-20
- Improve custom CLJS REPL.

## [1.3.x -> 2.0.20] - -> 06.2019
... huge gap in the Changelog. Sorry about that, but now we have decided to pick up maintaining this log again.

## [1.3.0] - 2018-04-16
- Add support for [shadow-cljs](http://shadow-cljs.org). Please contact me with any information on how this is working for you out there.

## [1.2.14] - 2018-04-06
- Change all keyboard shortcuts to use prefix `ctrl+alt+v`, due to old prefix not working on some alternate keyboard layouts. See [Issue #9](https://github.com/PEZ/clojure4vscode/issues/9).

## [1.2.12] - 2018-04-06
- Add command for re-running previously failing tests (`ctrl+alt+v ctrl+t`).

## [1.2.10] - 2018-04-03
- Add command for toggling automatic adjustment of indentation for new lines (`ctrl+alt+v tab`)

## [1.2.8] - 2018-04-02
- Auto adjust indent more close to this Clojure Style Guide: https://github.com/bbatsov/clojure-style-guide

## [1.2.1] - 2018-03-28
- Select current (auto-detected) form

## [1.2.0] - 2018-03-28
- Terminal REPLs
  - Integrates REPL sessions from the Terminal tab and lets you do stuff like load current namespace ad evaluate code from the editor in the REPL.
- Connection and reconnection stabilization
  - Connecting the editor REPLs was a bit unstable. Now more stable (but there are still some quirks).

## [1.1.20] - 2018-03-25
- Auto detection of forms to evaluate now considers reader macro characters prepending the forms. E.g. before if you tried to evaluate say `#{:a :b :c}` with the cursor placed directly adjacent to the starting or ending curly braces only `{:a :b :c}` would be auto detected and evaluated.
- Highlighting of auto detected forms being evaluated.
- Rendering evaluation errors in the editor the same way as successful (but in red to quickly indicate that the evaluation errored).

![Evaluation demo](/assets/howto/evaluate.gif)

## [1.1.15] - 2018-03-20
- Evaluates vectors and maps with the same ”smart” selection as for lists.

## [1.1.11] - 2018-03-20
- Add inline annotations for interactive code evaluation results.

## [1.1.9] - 2018-03-18
- Add toggle for switching which repl connection is used for `cljc` files, `clj` or `cljs`.

![CLJC repl switching](/assets/howto/cljc-clj-cljs.gif)

- `clj` repl connected to all file types, meaning you can evaluate clojure code in, say, Markdown files.

## [1,1.3] - 2018-03-17
- User setting to evaluate namespace on save/open file (defaults to **on**)

## [1.1.1] - 2018-03-16
- Release of v1, based on **visual:clojure** v2.0, adding:
    - Running tests through the REPL connection, and mark them in the Problems tab
        - Run namespace tests: `ctrl+alt+v t`
        - Run all tests: `ctrl+alt+v a`
    - Evaluate code and replace it in the editor, inline: `ctrl+alt+v e`
    - Error message when evaluation fails
    - Pretty printing evaluation results: `ctrl+alt+v p`
    - Support for `cljc` files (this was supposed to be supported by the original extension, but bug)

repository: zelark/calva

repo_name: zelark/calva


text:
# Get The ThreeFold Connect App

![alt](img/3bot_connect_4screens.jpg)
## Introduction

3Bot Connect is an app that is more than just a wallet. It is:
- A wallet to hold digital currencies
- 100% private two factor authenticator
- Mobile gateway to Freeflow pages
- Mobile access to TF support chat

## Download

3bot connect is available on both iOS devices and Android devices.

- [Download 3bot Connect for iOS](https://apps.apple.com/us/app/3bot-login/id1459845885)
- [Download 3bot Connect for Android](https://play.google.com/store/apps/details?id=org.jimber.threebotlogin&hl=en_US)

## Registration and login

  To use the 3Bot Connect App you simply need to download the 3Bot Connect App available in the Appstore or Google Play Store. Follow the steps and register using your email address.

 ### Save the seed phrase in a safe place. In the future, it may help to restore your wallet in case your device is lost.

Seed Phrase allows you to access and recover your wallet from any device.
We highly recommend writing down your seed key on a paper and store it safely offline.

> **3Bot does not have any access to or maintain records of your private key. It is your personal responsibility to keep your 24-word private key in a safe place.**

> **Do not share your private key with anyone, it is strictly personal. Losing your private key means potentially losing access to your wallet and all your ThreeFold Tokens.**

> **Anybody with access to your private key can take ownership of your 3Bot Connect wallet and ThreeFold Tokens**

> **To access your wallet from another wallet (on another phone or online) you will need your private key (seed), without this private key your account cannot be recovered on another device or online wallet.**

Finish these steps and choose your new pin, then confirm it and confirm your email address.

[Step 2: Acquiring ThreeFold Tokens](get_tft_from_bt)

branch_name: refs/heads/development

extension: md

gha_language: HTML

license_type: permissive


text:
**BPCheck** - SQL Best Practices and Performance checks

**Purpose:** Checks SQL Server in scope for some of most common skewed Best Practices and performance issues. Valid from SQL Server 2005 onwards. By default all databases in the SQL Server instance are eligible for the several database specific checks, and you may use the optional parameter to narrow these checks to specific databases.

All checks marked with * can be disabled by @ptocheck parameter. Check the PARAMETERS.md file or script header for all usage parameters.

Contains the following information:
- Uptime
- Windows Version and Architecture
- HA Information
- Linked servers info
- Instance info
- Buffer Pool Extension info
- Resource Governor info
- Logon triggers
- Database Information
- Database file autogrows last 72h
- Database triggers
- Enterprise features usage
- System Configuration

And performs the following checks:
- Processor
  - Number of available Processors for this instance vs. MaxDOP setting
  - Processor Affinity in NUMA architecture
  - Additional Processor information
- Memory
  - Server Memory
  - RM Task *
  - Clock hands *
  - Buffer Pool Consumers from Buffer Descriptors *
  - Memory Allocations from Memory Clerks *
  - Memory Consumers from In-Memory OLTP Engine *
  - Memory Allocations from In-Memory OLTP Engine *
  - OOM
  - LPIM
- Pagefile
  - Pagefile
- I/O
  - I/O Stall subsection (wait for 5s) *
  - Pending disk I/O Requests subsection (wait for a max of 5s) *
- Server
  - Power plan
  - NTFS block size in volumes that hold database files <> 64KB
  - Disk Fragmentation Analysis (if enabled)
  - Cluster Quorum Model
  - Cluster QFE node equality
  - Cluster NIC Binding order
- Service Accounts
  - Service Accounts Status
  - Service Accounts and SPN registration
- Instance
  - Recommended build check
  - Backups
  - Global trace flags
  - System configurations
  - IFI
  - Full Text Configurations
  - Deprecated and Discontinued feature usage
  - Default data collections (default trace, blackbox trace, SystemHealth xEvent session, spserverdiagnostics xEvent session) *
- Database and tempDB
  - User objects in master
  - DBs with collation <> master
  - DBs with skewed compatibility level
  - User DBs with non-default options
  - DBs with Sparse files
  - DBs Autogrow in percentage
  - DBs Autogrowth > 1GB in Logs or Data (when IFI is disabled)
  - VLF
  - Data files and Logs / tempDB and user Databases / Backups and Database files in same volume (Mountpoint aware)
  - tempDB data file configurations
  - tempDB Files autogrow of equal size
- Performance
  - Perf counters, Waits and Latches (wait for XXs) *
  - Worker thread exhaustion *
  - Blocking Chains *
  - Plan use ratio *
  - Hints usage *
  - Cached Query Plans issues *
  - Declarative Referential Integrity - Untrusted Constraints
- Indexes and Statistics
  - Statistics update *
  - Statistics sampling *
  - Hypothetical objects *
  - Row Index Fragmentation Analysis (if enabled) *
  - CS Index Health Analysis (if enabled) *
  - XTP Index Health Analysis (if enabled) *
  - Duplicate or Redundant indexes *
  - Unused and rarely used indexes *
  - Indexes with large keys (> 900 bytes) *
  - Indexes with fill factor < 80 pct *
  - Disabled indexes *
  - Non-unique clustered indexes *
  - Clustered Indexes with GUIDs in key *
  - Foreign Keys with no Index *
  - Indexing per Table *
  - Missing Indexes *
- Naming Convention
  - Objects naming conventions
- Security
  - Password check
- Maintenance and Monitoring
  - SQL Agent alerts for severe errors
  - DBCC CHECKDB, Direct Catalog Updates and Data Purity
  - AlwaysOn/Mirroring automatic page repair
  - Suspect pages
  - Replication Errors
  - Errorlog based checks
  - System health checks

**IMPORTANT pre-requisites:**
- Only a sysadmin/local host admin will be able to perform all checks.
- If you want to perform all checks under non-sysadmin credentials, then that login must be:
  - Member of serveradmin server role or have the ALTER SETTINGS server permission;
  - Member of MSDB SQLAgentOperatorRole role, or have SELECT permission on the sysalerts table in MSDB;
  - Granted EXECUTE permissions on the following extended sprocs to run checks: spOACreate, spOADestroy, spOAGetErrorInfo, xpenumerrorlogs, xpfileexist and xpregenumvalues;
  - Granted EXECUTE permissions on xp_msver;
  - Granted the VIEW SERVER STATE permission;
  - Granted the VIEW DATABASE STATE permission;
  - A xp_cmdshell proxy account should exist to run checks that access disk or OS security configurations.
  - Member of securityadmin role, or have EXECUTE permissions on sp_readerrorlog.
  - Otherwise some checks will be bypassed and warnings will be shown.
- Powershell must be installed to run checks that access disk configurations, as well as allow execution of unsigned scripts.

license: MIT

repository: TheRockStarDBA/tigertoolbox

branch_name: refs/heads/master

gha_language: SQLPL

gha_license_id: NOASSERTION

repo_name: TheRockStarDBA/tigertoolbox


text:
# TestRail Reporter for newman

[![version](https://img.shields.io/npm/v/newman-reporter-testrail-e2e.svg)](https://www.npmjs.com/package/newman-reporter-testrail-e2e)
[![downloads](https://img.shields.io/npm/dt/newman-reporter-testrail-e2e.svg)](https://www.npmjs.com/package/newman-reporter-testrail-e2e)
[![MIT License](https://img.shields.io/github/license/vietnq254/newman-reporter-testrail-e2e.svg)](https://github.com/vietnq254/newman-reporter-testrail-e2e/blob/master/README.md)

Publishes [newman](https://github.com/postmanlabs/newman/) runs on TestRail.

## Install
> The installation should be global if Newman is installed globally, local otherwise. (Replace -g from the command below with -S for a local installation)

```shell
$ npm install -g newman-reporter-testrail-e2e
```

## Usage

### Prefix all test assertions you wish to map with the test number.
Include the letter C. You may map more than one test case to an assertion.
```Javascript
pm.test("C226750 C226746 Status code is 200", function () {
    pm.response.to.have.status(200);
});
```
Add defect ID for specific test:
```Javascript
// pattern 'postman-defect=<defect_id>'
pm.test("C226750 C226746 Status code is 200 postman-defect=NCT-1234", function () {
    pm.response.to.have.status(200);
});
```
### Export the following environment variables.

| Environment Variable | Description |
| --- | --- |
| TESTRAIL_DOMAIN | Domain name of your TestRail instance (e.g. _instance.testrail.com_). |
| TESTRAIL_USERNAME | TestRail username / email. |
| TESTRAIL_PASSWORD | TestRail password or [API key](http://docs.gurock.com/testrail-api2/accessing#username_and_api_key). |
| TESTRAIL_PROJECT_ID | TestRail project id. |
| TESTRAIL_RUN_ID (optional) | TestRail run id.  Update a specific run instead of creating a new run. If this variable is not set then a new TestRun will be created. |
| TESTRAIL_SUITE_ID (optional) |TestRail suite id. |
| TESTRAIL_RUN_NAME (optional) |New TestRun name. It is used in case no TESTRAIL_RUN_ID. |
| CUSTOM_COMMENT (optional) |Custom comment. It is be added with error comment for test result. |

### Run newman with the reporter option
`-r testrail-e2e`

Example:

```shell
TESTRAIL_DOMAIN=example.testrail.com
TESTRAIL_USERNAME=user_name
TESTRAIL_PASSWORD=password_or_key
TESTRAIL_PROJECT_ID=99
TESTRAIL_RUN_ID=20

newman run collection.json -r testrail-e2e
```

## TestRail Settings

To increase security, the TestRail team suggests using an API key instead of a password. You can see how to generate an API key [here](http://docs.gurock.com/testrail-api2/accessing#username_and_api_key).

If you maintain your own TestRail instance on your own server, it is recommended to [enable HTTPS for your TestRail installation](http://docs.gurock.com/testrail-admin/admin-securing#using_https).

For TestRail hosted accounts maintained by [Gurock](http://www.gurock.com/), all accounts will automatically use HTTPS.

You can read the whole TestRail documentation [here](http://docs.gurock.com/).

## Author

NGUYEN Viet - [github](https://github.com/vietnq254)

## License

This project is licensed under the [MIT license](/LICENSE).

## Acknowledgments

* [billylamv](https://github.com/billylam), author of the [newman-reporter-testrail](https://github.com/billylam/newman-reporter-testrail) repository that was cloned.


text:
# Installation

## Local installation

For [Node modules projects](https://docs.npmjs.com/getting-started/creating-node-modules) we recommend installing **semantic-release** locally and running the `semantic-release` command with [npx](https://www.npmjs.com/package/npx):

```bash
$ npm install --save-dev semantic-release
```

Then in the CI environment:

```bash
$ npx semantic-release
```

**Note:** `npx` is a tool bundled with<EMAIL_ADDRESS>It is used to conveniently find the semantic-release binary and to execute it. See [What is npx](../support/FAQ.md#what-is-npx) for more details.

## Global installation

For other type of projects we recommend installing **semantic-release** directly in the CI environment, also with [npx](https://www.npmjs.com/package/npx):

```bash
$ npx semantic-release
```

### Notes

1. If you've globally installed **semantic-release** then we recommend that you set the major **semantic-release** version to install.
   For example, by using `npx semantic-release@18`.
   This way you control which major version of **semantic-release** is used by your build, and thus avoid breaking the build when there's a new major version of **semantic-release**.
   This also means you, or a bot, must upgrade **semantic-release** when a new major version is released.
2. Pinning **semantic-release** to an exact version makes your releases even more deterministic.
   But pinning also means you, or a bot, must update to newer versions of **semantic-release** more often.
3. You can use [Renovate's regex manager](https://docs.renovatebot.com/modules/manager/regex/) to get automatic updates for **semantic-release** in either of the above scenarios.
   Put this in your Renovate configuration file:
   ```json
   {
     "regexManagers": [
       {
         "description": "Update semantic-release version used by npx",
         "fileMatch": ["^\\.github/workflows/[^/]+\\.ya?ml$"],
         "matchStrings": ["\\srun: npx semantic-release@(?<currentValue>.*?)\\s"],
         "datasourceTemplate": "npm",
         "depNameTemplate": "semantic-release"
       }
     ]
   }
   ```
4. `npx` is a tool bundled with<EMAIL_ADDRESS>You can use it to install (and run) the **semantic-release** binary.
   See [What is npx](../support/FAQ.md#what-is-npx) for more details.

repository: semantic-release/semantic-release

gha_language: JavaScript

gha_license_id: MIT

repo_name: semantic-release/semantic-release


text:
# The KentChat Protocol

## Synopsis

One of KentChat's top goals is to provide an instant messaging experience that puts an emphasis on the user's privacy. To make this possible, the KentChat protocol is encrypted using RSA, and account credentials are hashed using SHA2-512. The usage of these algorithms is documented below.

## Systems Used

- [RSA](https://en.wikipedia.org/wiki/RSA_%28cryptosystem%29)
- [SHA2](https://en.wikipedia.org/wiki/SHA2)
- [AES](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard)

## Procedures Taken

### Server

#### Initialization

1. Server generates itself a public and private key for RSA encryption

####  Send encrypted message to client

1. Generate a random key for AES
2. Sign the SHA256 hash of the plain-text message with private key
3. Encrypt plain-text message with AES using generated AES key
4. Encrypt AES key using client's public key
5. Send a packet of encrypted (with AES) message, encrypted AES key, and signature to client

####  Receive encrypted message from client

1. Separate received packet into message, key, and signature
2. Decrypt the AES key using the client's private key
3. Decrypt the message using the AES key
4. Validate the signature with the server's public key and the SHA256 hash of the decrypted message

#### As client connects

1. Server receives public key from client
2. Server responds with its public key
3. Client generates a key for future AES encryption and sends it to server, encrypted with server's public key and signed with client's private key
4. Server decrypts the message and evaluates the signature, aborting the connection if it's invalid; Otherwise server initiates the first standard encrypted message by encrypting `helo` with its received AES key, and signing `helo`'s SHA3-256 hash with server's private key. Server then sends the encrypted content together with the signature to client
5. Client decrypts and evaluates server's packet, aborting the connection if signature is invalid; Otherwise client bounces the decrypted message back to server, encrypting it with the AES key and signing its SHA3-256 hash with client's private key (client sends the encrypted content and signature in the same manner as server)
6. Server decrypts the received message and evaluates the signature, aborting the connection if it's invalid; Otherwise, compare the decrypted message with the original message, aborting the connection if they don't match. Finally server sends to client `start_encrypted`, processed in the same manner as when it sent the original `helo`.

At this point, the server's packets to the client contain two parts: The first parts are encrypted with the common AES key; The second parts are the server's signatures for the SHA3-256 hash of the their corresponding first parts. The client's packets to the server are in the same format. This encryption scheme applies for all packets after `start_encrypted` and before `end_encrypted`.

#### User login
1. `auth`: Client sends its authentication to the server in the format of `{username: <hashed username>, password: <hashed password>}`, hashed using SHA3-256
2. Server attempts to authenticate user; If credentials correct, then reply `auth_good` with a 16-digit base64 token (for user identification later); otherwise, reply `auth_bad` and abort connection

#### User sends a private message to another user

Zero knowledge: The server does not know what your message is -- all it receives is your message encrypted with your recipient's public key, only decrypt-able by your recipient using their private key.

1. `req_pubkey`: Client requests the public key of its chosen recipient
2. Server responds with the recipient's public key with `pubkey_ok`, or `pubkey_idk` for unknown recipient
3. `tunnel`: Client sends the encrypted private message (total with the client's private key, the server's public key, and the recipient's public key) to its intended recipient by sending a `tunnel` command to the server
4. Server forwards the private message to the recipient
5. The recipient decrypts the private message using their private key, obtaining the client's private message in plain text.
6. `tunnel`+`recvd`: Recipient sends confirmation receipt to server
7. `recvd`: Server forwards confirmation receipt to client

A private message packet consists of three parts:
1. The message itself, encrypted with AES using a predetermined key
2. The signature, generated from the sender's private key and the message's SHA2 hashsum. Must be validated by the recipient
3. The predetermined AES key, encrypted with the recipient's public key and only decrypt-able by the recipient


text:
---
layout: default
title: CodeNarc - Security Rules
---

# Security Rules  ("*rulesets/security.xml*")

Also see [GrailsMassAssignment](./codenarc-rules-grails.html#GrailsMassAssignment).

## FileCreateTempFile Rule

*Since CodeNarc 0.14*

The File.createTempFile() method is insecure, and has been deprecated by the ESAPI secure coding library.
It has been replaced by the ESAPI Randomizer.getRandomFilename(String) method.

For more information see the ESAPI website: http://code.google.com/p/owasp-esapi-java/
and the Randomizer Javadoc: <http://owasp-esapi-java.googlecode.com/svn/trunk_doc/latest/org/owasp/esapi/Randomizer.html>

## InsecureRandom Rule

*Since CodeNarc 0.14*

Reports usages of `java.util.Random`, which can produce very predictable results. If two instances of Random are created with the same seed and sequence of method calls, they will generate the exact same results.
Use `java.security.SecureRandom` instead, which provides a cryptographically strong random number generator. SecureRandom uses PRNG, which means they are using a deterministic algorithm to produce a pseudo-random number from a true random seed. SecureRandom produces non-deterministic output.

By default, this rule ignores test classes are ignored.

For more information see: <http://www.klocwork.com/products/documentation/current/Checkers:SV.RANDOM>

Example of violations:

```
     def r1 = new Random()
     def r2 = new java.util.Random()
     Math.random()
     java.lang.Math.random()

     // this is OK
     new java.security.SecureRandom()
     new SecureRandom()
```

## JavaIoPackageAccess Rule

*Since CodeNarc 0.14*

This rule reports violations of the Enterprise JavaBeans specification by using the java.io package to access files or the file system.

The Enterprise JavaBeans specification requires that every bean provider follow a set of programming guidelines designed to ensure that
the bean will be portable and behave consistently in any EJB container [1].

In this case, the program violates the following EJB guideline: "An enterprise bean must not use the java.io package to attempt to access files and directories in the file system."

A requirement that the specification justifies in the following way: "The file system APIs are not well-suited for business components to access data. Business components should use a resource manager API, such as JDBC, to store data."

REFERENCES
  - [1] Standards Mapping - Common Weakness Enumeration - (CWE) CWE ID 576
  - [2] The Enterprise JavaBeans 2.1 Specification Sun Microsystems

By default, this rule is not applied to tests and test cases.

Example of violations:

```
    FileSystem.getFileSystem()          // any method on FileSystem
    FileSystem.fileSystem.delete(aFile) // property access of FileSystem

    // shouldn't create files
    new File(name)
    new File(name, parent)

    // don't create file readers
    new FileReader(name)

    // don't create file output streams
    new FileOutputStream(name)
    new FileOutputStream(name, true)

    // don't create random access file
    new RandomAccessFile(name, parent)
```

## NonFinalPublicField Rule

*Since CodeNarc 0.14*

Finds code that violates secure coding principles for mobile code by declaring a member variable public but not final.

All public member variables in an Applet and in classes used by an Applet should be declared final to prevent an attacker
from manipulating or gaining unauthorized access to the internal state of the Applet.

References:
  * Standards Mapping - Common Weakness Enumeration - (CWE) CWE ID 493
  * G. McGraw Securing Java. Chapter 7: Java Security Guidelines

## NonFinalSubclassOfSensitiveInterface Rule

*Since CodeNarc 0.14*

The permissions classes such as `java.security.Permission` and `java.security.BasicPermission` are designed to be extended.
Classes that derive from these permissions classes, however, must prohibit extension. This prohibition ensures that
malicious subclasses cannot change the properties of the derived class. Classes that implement sensitive interfaces
such as `java.security.PrivilegedAction` and `java.security.PrivilegedActionException` must also be declared `final` for analogous reasons.

For more information see: <https://www.securecoding.cert.org/confluence/display/java/SEC07-J.+Classes+that+derive+from+a+sensitive+class+or+implement+a+sensitive+interface+must+be+declared+final>

Example of violations:

```
    class MyPermission extends java.security.Permission {
        MyPermission(String name) { super(name) }
        boolean implies(Permission permission) { true }
        boolean equals(Object obj) { true }
        int hashCode() { 0 }
        String getActions() { "action" }
    }

    class MyBasicPermission extends BasicPermission {
        MyBasicPermission(String name) { super(name) }
    }

    class MyPrivilegedAction implements PrivilegedAction {
        Object run() { 0 }
    }

    class MyPrivilegedActionException extends PrivilegedActionException {
        MyPrivilegedActionException(Exception exception) { super(exception) }
    }
```

## PublicFinalizeMethod Rule

*Since CodeNarc 0.14*

Creates a violation when the program violates secure coding principles by declaring a `finalize()` method public.

A program should never call finalize explicitly, except to call super.finalize() inside an implementation of `finalize()`.
In mobile code situations, the otherwise error prone practice of manual garbage collection can become a security threat
if an attacker can maliciously invoke one of your finalize() methods because it is declared with public access. If
you are using `finalize()` as it was designed, there is no reason to declare `finalize()` with anything other than protected
access.

References:
  * Standards Mapping - Common Weakness Enumeration - (CWE) CWE ID 583
  * G. McGraw Securing Java. Chapter 7: Java Security Guidelines

## ObjectFinalize Rule

*Since CodeNarc 0.14*

The finalize() method should only be called by the JVM after the object has been garbage collected.

While the Java Language Specification allows an object's finalize() method to be called from outside the
finalizer, doing so is usually a bad idea. For example, calling finalize() explicitly means that finalize() will be
called more than once: the first time will be the explicit call and the last time will be the call that is made
after the object is garbage collected.

References: Standards Mapping - Common Weakness Enumeration - (CWE) CWE ID 586

## SystemExit Rule

*Since CodeNarc 0.14*

Web applications should never call System.exit(). A call to System.exit() is probably part of leftover debug
code or code imported from a non-J2EE application.

  - [1] Standards Mapping - OWASP Top 10 2004 - (OWASP 2004) A9 Application Denial of Service

  - [2] Standards Mapping - Security Technical Implementation Guide Version 3 - (STIG 3) APP6080 CAT II

  - [3] Standards Mapping - Common Weakness Enumeration - (CWE) CWE ID 382

  - [4] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1 - (PCI 1.1) Requirement 6.5.9

## UnsafeArrayDeclaration Rule

*Since CodeNarc 0.14*

Triggers a violation when an array is declared public, final, and static.

In most cases an array declared public, final and static is a bug. Because arrays are mutable objects, the
final constraint requires that the array object itself be assigned only once, but makes no guarantees
about the values of the array elements. Since the array is public, a malicious program can change the
values stored in the array. In most situations the array should be made private.

Example of violations:

```
    class MyClass {
        public static final String[] myArray = init()
        public static final def myArray = [] as String[]
    }
```

repository: CodeNarc/CodeNarc

gha_language: Groovy

repo_name: CodeNarc/CodeNarc


text:
---
title: "Star Wars Bobblehead Reveal"
subtitle: "Los Angeles Dodgers"
date: 2019-10-06 15:22:00
author: "Matthew Mesa"
image: ../../images/kbh_header.jpg
thumbnail: ../../images/kbh_hp.jpg
videoSourceURL: https://youtube.com/embed/27S1SjjqwpE
videoTitle: LAD - Kenley Jansen Bobblehead 'Reveal'
order: 10
tags:
- graphic design
- photo
- video
- social media
liveURL: "https://twitter.com/kenleyjansen74/status/971090736614539264"
---

##what i did

***

Before we had our hands on an actual sample of the bobblehead, we had a mockup that we wanted to use to promote. The mockup, admittedly, wasn't the greatest work of art, so, I had to improvise. The above video was created using that mockup rendering from the vendor—I added the reveal in After Effects.

What have we here? It's my @StarWars bobblehead, #KenleyCalrissian! ✨Get your #StarWars bobble June 15. 🎟➡ @dodgers https://t.co/kDXrN5YOjd pic.twitter.com/k9b0Os6lnD
— Kenley Jansen (@kenleyjansen74) March 6, 2018

***

Once we got the actual sample, I photographed it and designed social graphics to use in our May the Fourth posts. Since I thought the bobblehead was super cool and one of the first themed bobbleheads that I can remember, I wanted the graphic to be pretty minimal and *scream* Star Wars™.

![Los Angeles Dodgers May the Fourth be with You Instagram graphic](../../images/may-the-4th-be-with-you-1200x1200.png "Los Angeles Dodgers May the Fourth be with You Instagram graphic")
![Los Angeles Dodgers May the Fourth be with You Twitter/Facebook graphic](../../images/may-the-4th-be-with-you-1200x628.png "Los Angeles Dodgers May the Fourth be with You Twitter/Facebook graphic")

***

Working with the folks over at Star Wars™ was so easy and they encouraged us to use their full suite of digital assets. This particular year, *Solo* was their next big project and they had these [awesome movie posters](https://lumiere-a.akamaihd.net/v1/images/solo-character-poster-han_1a145be9.jpeg?region=0%2C0%2C864%2C1280) that I wanted to 'borrow' for an upcoming post.

![Los Angeles Dodgers SOLO movie poster inspiration](../../images/LAD_18-Kenley_Star_Wars_Poster_1080x1349.png "Los Angeles Dodgers SOLO movie poster inspiration")

repository: mtycks/matthew-mesa-gatsby

repo_name: mtycks/matthew-mesa-gatsby


text:
## Package Maintenance Working Group Charter

The Node.js Package Maintenance Working Group is jointly governed by the members
of that Working Group (WG).

The WG responsibilities include:

* Management of repositories within the [pkgjs](https://github.com/pkgjs)
  GitHub organization including but not limited to:
    * Managing the list of organization owners which supplement the standard
      Node.js organization owners as outlined in:
[https://github.com/nodejs/admin/blob/master/GITHUB_ORG_MANAGEMENT_POLICY.md#owners](https://github.com/nodejs/admin/blob/master/GITHUB_ORG_MANAGEMENT_POLICY.md#owners)
    * Overseeing new repositories (creating, moving, removing)
    * Managing the maintainer teams for all of the repositories.
    * Contribution policy for repositories
* Technical direction for the projects within
  the [pkgjs](https://github.com/pkgjs)  organization
* Project governance and process (including this policy)
* Managing the maintainer teams and contribution policies for the
  following repositories
  * nodejs/ci-config-travis
  * nodejs/ci-config-github-actions
  * nodejs/package-maintenance repository.

For the current list of WG members, see the project [README.md][].

[README.md]: ./README.md#current-project-team-members

repository: nodejs/package-maintenance

branch_name: refs/heads/main

repo_name: nodejs/package-maintenance


text:
# Project 6 : Feed Reader Testing
In this project, Jasmine Unit tests are used to describe and test RSS Feed Reader functionality.

[example]: http://jdbence.github.io/FE-Nanodegree/project6/src/index.html
[get-zip]: https://github.com/jdbence/FE-Nanodegree/archive/master.zip
[get-tgz]: https://github.com/jdbence/FE-Nanodegree/archive/master.tar.gz
[clone-http]: https://github.com/jdbence/FE-Nanodegree.git
[clone-svn]: https://github.com/jdbence/FE-Nanodegree
[clone-ghwin]: github-windows://openRepo/https://github.com/jdbence/FE-Nanodegree
[clone-ghmac]: github-mac://openRepo/https://github.com/jdbence/FE-Nanodegree
[jasmine]: http://jasmine.github.io/
[jasmine-jquery]: https://github.com/velesin/jasmine-jquery
[handlebars]: http://handlebarsjs.com/
[jquery]: https://jquery.com/

[Live Example][example]

### Includes

[JQuery][jquery], [Jasmine][jasmine], [jasmine-jquery][jasmine-jquery], [Handlebars][handlebars]

### Installation

* Clone git repository via [https][clone-http] or with the Github [Windows][clone-ghwin] or [Mac][clone-ghmac] clients.
* Download as [zip][get-zip] or [tar.gz][get-tgz]
* Checkout with [svn][clone-svn]

### Current Feature Tests (extra)
* Menu item being clicked checks if event stopped and menu is hidden

### Future Feature Tests
* API feed from remote host (test using fixture)
* API feed has img
* API feed has atleast 1 new article

### Simple Server
Make index.html accessable

```node
//  Move into project folder
cd project6/
//  Install globals
npm install http-server -g
//  Start server
http-server -p 8080
```

### License

Project is released under the [MIT License](http://opensource.org/licenses/MIT).

repository: jdbence/FE-Nanodegree

repo_name: jdbence/FE-Nanodegree


text:
# PLCameraStreamingKit 1.1.3 to 1.1.4 API Differences

## General Headers

```PLStreamingSession.h```

- *Added* Category `PLStreamingSession (Network)`
    - *Added* `@property (nonatomic, assign) int   receiveTimeout;`
    - *Added* `@property (nonatomic, assign) int   sendTimeout;`

repository: huangdeheng/PLStreamingKit

repo_name: huangdeheng/PLStreamingKit


text:
# DJLServing: Java mode

## Prepare your Java file

You can use the `devEnv` folder to start building your own translator. The translator is a Java interface defined in DJL for pre/post processing.
Once it is done, you can package the whole project as an uber jar by doing

```
./gradlew jar
```

Then copy the jar in the `build/libs` folder to the inference folder under `libs`.

### Add extra Jars to your inference
If you have extra Java libraries needs to import alone: In the inference folder, add a folder namely `libs`, then place all of your jars in here.

### Add extra Java file to your inference
You can still do this by adding your .java file in the `libs/classes` folder

## Run our example

### Step 1: Download torchscript model file

```
mkdir resnet18 && cd resnet18
curl -O https://mlrepo.djl.ai/model/cv/image_classification/ai/djl/pytorch/synset.txt
curl https://resources.djl.ai/test-models/traced_resnet18.pt -o resnet18.pt
```

### Step 2: Copy your Translator to the classes folder

```
mkdir -p resnet18/libs/classes
cp devEnv/src/main/java/CustomTranslator.java resnet18/libs/classes
```

### Step 3: Start your inference

Under the current folder, just run with the endpoint, assume my endpoint name is `resnet`. The model we used is a PyTorch resnet18 model, then we add the name PyTorch in the instructions.

Linux/macOS

```
djl-serving -m resnet::PyTorch=file://$PWD/resnet18
```

Windows

```
path-to-your\serving.bat -m "resnet::PyTorch=file:///%cd%\resnet18"
```

### Step 4: Run inference

Open another sesssion to run inference

Linux/macOS

```
curl -O https://resources.djl.ai/images/kitten.jpg
curl -X POST "http://<IP_ADDRESS>:8080/predictions/resnet" -T "kitten.jpg"
```

On Windows, you can just download the image and use tool similar to curl to send POST request.


text:
# Tricholoma chrysenteron var. juncicola R. Heim, 1934 VARIETY

#### Status
SYNONYM

#### According to
The Catalogue of Life, 3rd January 2011

#### Published in
Treb. Inst. Bot. Barcelona 15(3): 101 (1934)

#### Original name
Tricholoma chrysenteron var. juncicola R. Heim, 1934

### Remarks
null

repository: mdoering/backbone

path: /life/Fungi/Basidiomycota/Agaricomycetes/Agaricales/Lyophyllaceae/Calocybe/Calocybe juncicola/ Syn. Tricholoma chrysenteron juncicola/README.md

repo_name: mdoering/backbone


text:
# Liftoff
My Liftoff Project is a Home Redecorating Tracker.

I'm creating a web-app that allows users to track household items along with their budget for a home redecorating project.
Home projects can be categorized and items can be viewed on a grid format to help the user better visualize items before they purchase.

Used Java, MySQL, Spring, Hibernate, Thymeleaf, HTML, CSS, and Bootstrap.


text:
---
title: "Accessing iLO Redfish APIs and HPE OneView APIs on Ansible AWX"
date: 2021-02-09T03:40:59.966Z
author: Nathan Lin
tags: ["ilo-restful-api","hpe-oneview"]
authorimage: "/img/blogs/Avatar6.svg"
featuredBlog: false
priority:
thumbnailimage:
---
There has been a growing demand in infrastructure management automation and an adaption toward infrastructure-as-code (IAC) with Ansible and AWX. Backed by Red Hat, Ansible has become one of the most popular IAC toolings for its simple and easy to understand coding style, masterless and agentless design, and the ability to create custom playbooks and roles for providing extra support to process automation. [AWX](https://github.com/ansible/awx), on the other hand, is the open-sourced version of Ansible Tower, which along with a set of tools, provides a web-based graphical user interface hub for consuming Ansible playbooks.

Both the [HPE Python iLO REST Library](https://github.com/HewlettPackard/python-ilorest-library) and the [HPE OneView SDK for Ansible](https://github.com/HewlettPackard/oneview-ansible) do not come bundled with AWX. The AWX project does provide instructions on [managing custom Python dependencies](https://github.com/ansible/awx/blob/devel/docs/custom_virtualenvs.md#managing-custom-python-dependencies) on AWX. This blog post is to share the process that we took to set up a custom Python environment for the Python iLO REST Library and the HPE OneView SDK in order to access the iLO Redfish APIs and the HPE OneView APIs from an AWX job.

# Ansible and AWX setup on localhost
Ansible and AWX setup instructions can be found  [here](https://github.com/ansible/awx/blob/devel/INSTALL.md#installing-awx) on GitHub. If running behind proxies, make sure the proxy parameters, such as _http_proxy_, _https_proxy_, and _no_proxy_ are configured accordingly in the installation inventory file. Once installation completes, the Ansible command becomes available on the localhost, and AWX runs as a containerized application, as shown here:

```bash
bash-4.4# ansible --help
usage: ansible [-h] [--version] [-v] [-b] [--become-method BECOME_METHOD]
               [--become-user BECOME_USER] [-K] [-i INVENTORY] [--list-hosts]
               [-l SUBSET] [-P POLL_INTERVAL] [-B SECONDS] [-o] [-t TREE] [-k]
               [--private-key PRIVATE_KEY_FILE] [-u REMOTE_USER]
               [-c CONNECTION] [-T TIMEOUT]
               [--ssh-common-args SSH_COMMON_ARGS]
               [--sftp-extra-args SFTP_EXTRA_ARGS]
               [--scp-extra-args SCP_EXTRA_ARGS]
               [--ssh-extra-args SSH_EXTRA_ARGS] [-C] [--syntax-check] [-D]
               [-e EXTRA_VARS] [--vault-id VAULT_IDS]
               [--ask-vault-pass | --vault-password-file VAULT_PASSWORD_FILES]
               [-f FORKS] [-M MODULE_PATH] [--playbook-dir BASEDIR]
               [-a MODULE_ARGS] [-m MODULE_NAME]
               pattern
```

```bash
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE                COMMAND                  CREATED      STATUS      PORTS                  NAMES
79248db66699   ansible/awx:17.0.1   "/usr/bin/tini -- /u…"   5 days ago   Up 5 days   8052/tcp               awx_task
11e9c78d53cf   ansible/awx:17.0.1   "/usr/bin/tini -- /b…"   5 days ago   Up 5 days   <IP_ADDRESS>:80->8052/tcp   awx_web
46c529f34016   postgres:12          "docker-entrypoint.s…"   5 days ago   Up 5 days   5432/tcp               awx_postgres
75c8e09ad2de   redis                "docker-entrypoint.s…"   5 days ago   Up 5 days   6379/tcp               awx_redis
```

# Installing the HPE libraries on AWX
The installation of the HPE Python iLO REST library and the HPE OneView Ansible library can be achieved by the following three steps:

1. Log in to the _awx_task_ container. Create a custom Python virtual environment and install the HPE Python iLO REST library and the HPE OneView Ansible library using the Python package manager.

2. Log in to the _awx_web_ containers. Create a new virtual environment with the same name as the one newly created in the _awx_task_ container, and then install these two HPE Python libraries again using the Python package manager.

3. Lastly, add the new Python environment to the _custom_virtualenvs_ in AWX through its REST APIs.

Keep in mind to create the virtual environments first in _awx_web_ and _awx_task_ before adding it to the AWX custom virtual environment. The following sections talk more about each of the steps.

## Create new custom virtual environments on _awx_task_ and _awx_web_
First, access the container BASH shell with the command _Docker exec -it_  . For example, accessing the _awx task_ shell :

```bash
[root@localhost ~]# docker exec -it awx_task /bin/bash
bash-4.4#
```

Within the container, create a new Python virtual environment. For this example, the virtual environment is created at _/opt/hpeAutomation/venv_:

```bash
bash-4.4# mkdir -p /opt/hpeAutomation/
bash-4.4# chmod 0755 /opt/hpeAutomation/
bash-4.4# python3 -m venv /opt/hpeAutomation/venv
```

## Install the HPE libraries on  _awx_task_ and _awx_web_
On each of the AWX containers, proceed as follows:

1. YUM install the pre-requisites gcc:

```bash
bash-4.4# yum install gcc -y
```

2. Install the psutil Python module and the HPE libraries:

```bash
bash-4.4# /opt/hpeAutomation/venv/bin/pip3 install psutil
bash-4.4# /opt/hpeAutomation/venv/bin/pip3 install ansible hpOneView hpICsp python-ilorest-library
bash-4.4# git clone https://github.com/HewlettPackard/oneview-ansible.git
bash-4.4# cd oneview-ansible
bash-4.4# cp library/*.py  /opt/hpeAutomation/venv/lib/python3.6/site-packages/ansible/modules/remote_management/oneview/
bash-4.4# cp library/module_utils/oneview.py  /opt/hpeAutomation/venv/lib/python3.6/site-packages/ansible/module_utils
```

## Configure the _custom_virtualenvs_ in AWX
Once finished installing the Python modules to _awx_task_ and _awx_web_ , the last step is to add the newly created virtual environment to _custom_virtualenvs_  in AWX. This can be done with a HTTP PATCH to the AWX:

```bash
[root@localhost ~]# curl -X PATCH http://AWX_admin_username:AWX_adminpassword@AWX_ip_address/api/v2/settings/system/ \
-d '{"CUSTOM_VENV_PATHS": ["/var/lib/awx/venv/ansible", "/opt/hpeAutomation/"]}' \
-H 'Content-Type:application/json'
```

You can verify the _custom_virtualenvs_ in AWX with a HTTP GET request to _/api/v2/config/_ , as shown below:

```bash
[root@localhost ~]# curl -u AWX_admin_username:AWX_admin_password http://AWX_IP_address/api/v2/config/
{
  "time_zone": "UTC",
  "license_info": {
    "license_type": "open",
    "valid_key": true,
    "subscription_name": "OPEN",
    "product_name": "AWX"
  },
  ...
  ..
  .
  "custom_virtualenvs": [
    "/var/lib/awx/venv/ansible/",
    "/opt/hpeAutomation/venv/"
  ]
}
```

Once completed, the custom virtual environment becomes available as an _Ansible Environment_ in the _AWX Projects_ and the Python libraries become accessible by the Job Templates in the project.
![project](https://hpe-developer-portal.s3.amazonaws.com/uploads/media/2021/1/pic1-1612842533941.png)
![template](https://hpe-developer-portal.s3.amazonaws.com/uploads/media/2021/1/pic2-1612842545279.png)

There you have it. The AWX is now ready to run jobs for HPE OneView and iLO.

repository: hpe-dev-incubator/hpe-dev-portal

repo_name: hpe-dev-incubator/hpe-dev-portal


text:
# docker-lamp

![docker_logo](https://raw.githubusercontent.com/thanhphu/docker-lamp/master/docker_139x115.png)

Forked from `fauria/lamp`

This Docker container implements a last generation LAMP stack with a set of popular PHP modules. Includes support for [Composer](https://getcomposer.org/), [Bower](http://bower.io/) and [npm](https://www.npmjs.com/) package managers and a Postfix service to allow sending emails through PHP [mail()](http://php.net/manual/en/function.mail.php) function.

Includes the following components:

 * Ubuntu 16.04 LTS Xenial Xerus base image.
 * Apache HTTP Server 2.4
 * MariaDB 10.0
 * Postfix 2.11
 * PHP 7
 * Development tools
	* git
	* composer
	* npm / nodejs
	* bower
	* vim
	* tree
	* nano
	* ftp
	* curl

Installation from [Docker registry hub](https://registry.hub.docker.com/u/thanhphu/lamp/).
----

You can download the image using the following command:

```bash
docker pull thanhphu/lamp
```

Environment variables
----

This image uses environment variables to allow the configuration of some parameteres at run time:

* Variable name: LOG_STDOUT
* Default value: Empty string.
* Accepted values: Any string to enable, empty string or not defined to disable.
* Description: Output Apache access log through STDOUT, so that it can be accessed through the [container logs](https://docs.docker.com/reference/commandline/logs/).

----

* Variable name: LOG_STDERR
* Default value: Empty string.
* Accepted values: Any string to enable, empty string or not defined to disable.
* Description: Output Apache error log through STDERR, so that it can be accessed through the [container logs](https://docs.docker.com/reference/commandline/logs/).

----

* Variable name: LOG_LEVEL
* Default value: warn
* Accepted values: debug, info, notice, warn, error, crit, alert, emerg
* Description: Value for Apache's [LogLevel directive](http://httpd.apache.org/docs/2.4/en/mod/core.html#loglevel).

----

* Variable name: ALLOW_OVERRIDE
* Default value: All
* All, None
* Accepted values: Value for Apache's [AllowOverride directive](http://httpd.apache.org/docs/2.4/en/mod/core.html#allowoverride).
* Description: Used to enable (`All`) or disable (`None`) the usage of an `.htaccess` file.

----

* Variable name: DATE_TIMEZONE
* Default value: UTC
* Accepted values: Any of PHP's [supported timezones](http://php.net/manual/en/timezones.php)
* Description: Set php.ini default date.timezone directive and sets MariaDB as well.

Exposed port and volumes
----

The image exposes ports `80` and `3306`, and exports four volumes:

* `/var/log/httpd`, containing Apache log files.
* `/var/log/mysql` containing MariaDB log files.
* `/var/www/html`, used as Apache's [DocumentRoot directory](http://httpd.apache.org/docs/2.4/en/mod/core.html#documentroot).
* `/var/lib/mysql`, where MariaDB data files are stores.

The user and group owner id for the DocumentRoot directory `/var/www/html` are both 33 (`uid=33(www-data) gid=33(www-data) groups=33(www-data)`).

The user and group owner id for the MariaDB directory `/var/log/mysql` are 105 and 108 repectively (`uid=105(mysql) gid=108(mysql) groups=108(mysql)`).

 TO 'username'@'localhost' IDENTIFIED BY 'password';
```
```
mysql -u username -p
```

repository: winstonleedev/docker-lamp

repo_name: winstonleedev/docker-lamp


text:
# AuburnHacks19
Hackathon at Auburn University 2019 Project

This project is a combination of Python scripts calling Google Cloud APIs and Ionic Development in Java. We pull information from the Google Geolocation API allowing us to access our current location. Once we have that, we can continually pole the Google Places API to see if we are inside of a hospital. If it turns out that we are in a hospital, we send a pop up notification to the phone asking if you are awake and coherent. If you do not respond to the notification within a set time period, It plays a notification alerting the doctors of your medical condition and sending information to your emergency contacts from a variety of different google APIs.

```
pip install -U googlemaps
pip install responses
pip install python-google-places
sudo apt-get install python-pygame
pip install gTTS
pip install --upgrade google-cloud-translate
```

gha_language: Python


text:
# easy-rsa in Docker

[![pipeline status](https://gitlab.com/kll/docker-easyrsa/badges/master/pipeline.svg)](https://gitlab.com/kll/docker-easyrsa/commits/master)

This repository contains an [easy-rsa](https://github.com/OpenVPN/easy-rsa)
installation on an Alpine Linux base image.

## Why

Easily run easy-rsa anywhere Docker is available without having to worry about
having the correct dependencies installed and correctly configured.

## Usage

Mount a volume to `/data` in the container and set the `LOCAL_USER_ID`
environment variable to your UID. You can technically skip those steps but it
will be much harder to access the resulting PKI files if you do not. I suggest
using an alias to make it super easy since generally you will be issuing
numerous commands.

```console
alias easyrsa="docker run --rm -it -v ~/.easyrsa:/data -e LOCAL_USER_ID=`id -u $USER` gslime/easyrsa easyrsa"
```

Make sure the local directory for the bind mount already exists so the
permissions will be correct.

```console
mkdir -p ~/.easyrsa
```

Then use it like you would a normal local installation of easy-rsa.

```console
# create a new PKI and generate a certificate request
easyrsa init-pki
easyrsa gen-req EntityName
```

If you would rather you can also launch a shell and then issue all the commands
from inside the container and then exit.

```console
docker run --rm -it -v ~/.easyrsa:/data -e LOCAL_USER_ID=`id -u $USER` gslime/easyrsa /bin/sh
easyrsa init-pki
easyrsa gen-req EntityName
exit
```

## License

The code in this repository, unless otherwise noted, is MIT licensed. See the [LICENSE](LICENSE) file in this repository.

repository: kll/docker-easyrsa

repo_name: kll/docker-easyrsa


text:
---
title: Java
order: 2
---

These steps are in continiuation from step2 in the section [deploying](/customapps/deploying).

---

## Step2 continued...

There are 2 ways to launch.

1. *Using a Public Repo URL*
2. *I have a Github account*

### Using a Public Repo URL

If you don't have an id, then type these `Public repo url` in the text box.

[https://github.com/VirtEngineapps/java_jenkins.git](https:/github.com/VirtEngineapps/java_jenkins.git){: target="_blank"}

[https://github.com/VirtEngineapps/java_springwebflow.git](https://github.com/VirtEngineapps/java_springwebflow.git){: target="_blank"}

[https://github.com/VirtEngineapps/java_openmrs.git](https://github.com/VirtEngineapps/java_openmrs.git){: target="_blank"}

### I have a Github id.

Choose your Github repository.

### Adding a build script. *optional*

The *build script* is used to install additional dependencies in the launched application which can contain shell scripts.

For your convenience the sample public repos has baked in build scripts as needed.

The build script needs to be named as *build* and shall reside under the parent root directory.

Now that you have chosen the git repo, [Go to step3 to launch](/customapps/deploying).

### Working with Java App code *optional*

To make changes in the code [VirtEngineapps/java_springwebflow](https://github.com/VirtEngineapps/java_springwebflow.git){: target="_blank"} ensure that
you have the build tools like **git**, **maven**, or **gradle** installed.

```
 cd java_springwebflow

 mvn install

```

### Push your changes to Github *optional*

Once you are done testing the changes, push the changes to Github.

```shell

cd java_springwebflow

git push master
Username for 'https://github.com': VirtEngineuser
Password for<EMAIL_ADDRESS>To https://github.com/VirtEngineapps/java_springwebflow
1d26d24..5cabacb  master -> master

```

gha_language: CSS


text:
---
published: true
layout: post
has_book: true
title: "Chapter 40.2"
book:
  number: 2
  title: "Fame Spreads"
category: martial-god
#chapter no. format: bb-cc bb=book cc=chapter. Example: 01-01 (book 1, chapter 1)
previous_chapter: 02-40-01
next_chapter: 02-41-01
date: 2017-04-02 03:15:01
has_credits:
translator:
proofreader: jchill071
is_preview: false
has_note:
note:
---
As if having felt He Quanxin’s battle intent, that masked man suddenly took a step forward, and this step was already enough for him to arrive right before He Quanxin.

His charge unexpectedly brought a burst of scorching heat. Furthermore, the two palms that he’d unleashed looked horrifying as if branding irons.

He Yiming immediately thought to himself that this was certainly a fire-type technique that had attained the tenth layer.
<!--more-->

In the five-phases, fire-type techniques might not be the number one in terms of offense, but as far as aggression was concerned, they were the best.

As the fire-type technique was unleashed to the extreme, an aura like that of burning the sky and boiling the ocean erupted like a volcano.

“Ha….”

The air in the surrounding was immediately influenced and became dry and scorched. The small flowers and grass, over which he’d stepped across, immediately withered down.

He Quanxin’s eyes shined. He didn’t issue any battle cry and counterattacked in silence.

His hands evenly stretched out. It seemed as if there was a huge, insurmountable mountain before him. However, as his hands stretched out, it seemed even this mountain would be toppled.

Earth-type technique’s profoundness, steadiness, and severity was being vividly displayed by him.

Precisely under such a battle where he could fight without worries and both sides fight severely without holding back, could he unleash his body’s full potential. At this moment, He Quanxin only felt rejuvenated and brimming with vigour.

“Bang….”

A gigantic sound wave spread out as the palms of the two struck against each other.

The masked man jerked forward before suddenly retreating. His hands that were surrounded in red somewhat paled.

He Quanxin’s legs were evenly stretched out, entering several inches into the ground. A red colored light suddenly flashed on his body and a trace of dark, burnt color appeared on his outer robe. However, it was only a slight damage to his clothes. He hadn’t suffered any true injury at all.

Although this strike gave an impression that both were evenly matched, as a spectator, He Yiming could tell that his eldest uncle turned out to be a notch above in the end. The boulder weighing down on his heart was immediately lifted.

During a battle of experts of the same rank, disparity of a thread was akin to a difference of a thousand li.

With this much difference of a thread, if the masked man didn’t have some special trick, he’d basically no chance at winning.

If any of the Xiao brothers somehow managed to break through into the tenth layer, He Yiming would be concerned for his eldest uncle. After all, they had grasped an agility type Xiantian technique. Houtian cultivators with Xiantian battle skills were absolutely unrivalled among the same ranks.

However, this person was clearly different. He’d evidently not cultivated some Xiantian battle skill, but merely some ambiguous agility technique. How could he prevail over He Quanxin?

After all, He Quanxin was not a novice as well. He’d cultivated his martial skill for several decades. Even He Wude praised him as the martial lunatic of the He clan.

Especially the techniques he cultivated were that of the earth-type which were the firmest among the five-phases. The most distinguished feature of such techniques was precisely stability. Unless in the presence of a restrictive technique, during the battle, if an earth-type cultivator’s strength was somewhat weaker than the opponent, he’d basically no chance of winning, but vice versa, he wouldn’t be able to lose even if he wished.

Latrine’s rock, repulsive yet hard- this was the true portrayal of earth-type techniques.

“Who….”

“An assassin….”

“Catch the intruder….”

Almost the next moment, countless cries began to echo from various corners of the manor.

The intensity of the exchange between two tenth layer experts was so severe, not to mention the people in this courtyard had no chance of sleeping again, even the people in the neighbouring courtyards were also jolted awake by the loud sound.

The masked man profoundly gazed at He Quanxin, then suddenly laughed out loud and said, “A fine skill, earth-type tenth layer….. much appreciated.”

After saying these words, his body flickered and left looking as if a cloud of unceasingly dancing black flames.

He Quanxin’s feet slightly advanced before suddenly stopping, he began to involuntarily look at that retreating figure in contemplation.

With his discerning eyes, he could naturally tell that the counterpart’s agility technique was above his. Even if he chased with all his might, he would only fail in the end. This being the case, instead of disgracing himself, it would be better for him to save his energy!

Yuan manor obviously had some people on night watch. Upon hearing this noise, they immediately rushed over. However, upon arriving, they discovered that there was only He Quanxin while the so-called intruder had long escaped.

A figure flickered, and Yuan Earnest appeared. His face carried a trace of bewilderment and fury.

Someone actually created trouble inside the Yuan manor . This was blatant provocation, which naturally made him somewhat flustered.

“Brother He, who was it?”

He Quanxin faintly shook his head, “That person had his face covered. He exchanged one palm strike with me, then immediately left.”

Yuan Earnest faintly started, immediately feeling a chill in his back.

To exchange palms with He Quanxin and retreat, even he himself couldn’t imagine accomplishing such a feat.

“Brother He, was that person injured?” He hopefully asked.

He Quanxin still shook his head and said, “No. That person’s Internal Energy is not any less powerful than mine.”

This time, Yuan Earnest’s complexion completely transformed.  Fortunately this person encountered He Quanxin, if it had been him…

Yuan Earnest shook his head, no longer daring to think any further.

“Brother He, fortunately you found out. If that person was truly allowed to run amok in the manor, nobody would have been able to keep him in check except you.”

Hearing the flattering words, He Quanxin couldn’t help but bitterly laugh, “Brother Yuan, you overpraise me. I just had a sudden impulse to have a walk outside, then I ran into that person as soon as I opened the door” He briefly paused before continuing, “It seems to me that person had come specifically for me.”

Yuan Earnest hesitated quite a bit before asking, “Brother He, you know who this person was?”

He Quanxin lightly shrugged, then suddenly asked, “Brother Yuan, you previously said that Fan Shui is a water-type cultivator, right?”

Yuan Earnest immediately said, “Correct. The techniques he cultivates are precisely that of water-type,” His face suddenly tensed as he asked in an strict voice, “Could this person be Fan Shui?”

He Quanxin lightly sighed and said, “This person is absolutely not Fan Shui, because his technique was a tenth layer, fire-type technique.”

Yuan Earnest immediately started. He’d absolutely no clue which expert would choose night time to scout Yuan manor and even look for He Quanxin.

However, if someone were to say that this person had no connection with Fan family, he wouldn’t believe it in the slightest.

He Quanxin thought for a few moments and said, “Brother Yuan, although this person is not Fan Shui, his agility technique was somewhat similar to the Xiao brothers from yesterday.”

Yuan Earnest’s complexion immediately paled. He’d first hand witnessed the might of Xiao brothers. When the two of them joined hands, they could actually become equivalent to a tenth layer expert. If they had a tenth layer expert like them, the Ten Day agreement would be nothing more than a joke.

Seeing the counterpart’s face, He Quanxin inwardly trembled and immediately said, “Brother Yuan, I could also have made a mistake in night. You don’t need to worry too much.”

Yuan Earnest forced out a laugh, but was not relaxed inwardly at all.

With He Quanxin’s strength and eyes, how could he have casually spoken had he not been sure? Tonight’s intruder must have a connection with the Xiao brothers.

Although Yuan Earnest’s mind was a mess, fortunately or unfortunately, he’d seen the ways of the world. He knew that at this moment, he couldn’t allow himself to panic. After loudly instructing everybody to go back to sleep, he also took his leave and left, heading towards the Lord Master Yuan’s residence to discuss this matter.

He Quanxin returned to his residence and immediately saw He Yitian. However, the current Yitian’s face had lost his former calm appearance. He gently said, “Father, Yiming has disappeared.”

He Quanxin blankly stared before asking, “What?”

“Just now, I saw that He Yiming has not come out. Feeling concerned, I went to check out his residence. However, I didn’t expect to find his residence completely empty with Reclining Moon Blade placed inside the quilt as a pretense.” He Yitian bitterly laughed and spoke.

He Quanxin’s heart trembled. He immediately knew that He Yiming must have gone to chase after that masked man.

He Yitian anxiously asked, “Father, It seems that sixth brother must have went after that person. What should we do?”

He Quanxin faintly shook his head and said, “No need to worry about him. We’ll go back to sleep.”

He Yitian was completely startled, “Father, you haven’t gone insane, have you?

He Quanxin patted his son’s shoulder and said, “Be at ease. Yiming’s cultivation is no longer below your father’s. Even if he can’t win, there would be no issue when it comes to protecting himself,” The corner of his mouth curled into a faint smile, “And the little guy should also have the qualifications to take the charge.”


text:
# make

## Articles
* [What's the opposite of 'make install', i.e. how do you uninstall a library in Linux?](https://stackoverflow.com/questions/1439950/whats-the-opposite-of-make-install-i-e-how-do-you-uninstall-a-library-in-li)

repository: northbright/bookmarks

repo_name: northbright/bookmarks


text:
# λεῖος, εία, εῖον.

<!-- Status: S3=Needs2ndReview -->
<!-- Lexica used for edits: BDAG, FFM, LN, A-S -->

## Word data

* Strongs: G30060.

* Alternate spellings:

* Principle Parts:

* Part of speech:

[Adjective ascriptive](http://ugg.readthedocs.io/en/latest/adjective_ascriptive.html).

* Instances in the New Testament: 1.

* All Scriptures cited: Yes.

## Etymology:

* LXX/Hebrew glosses:

in LXX [Gen 27:11](gen 27:11), [I Ki 17:40](1Sa 17:40) Sistine Ed of LXX (1587) ([חָלָק](//en-uhal/H2505), [חַלּוּק](//en-uhal/H2512)), [ὁδὸς λ.](), [Is 40:4](Isa 40:4) [Α]() ([בִּקְעָה](//en-uhal/H1237)), [Prov 2:20](pro 2:20), [12:13](pro 12:13),  [26:23](pro 26:23).

* Time Period/Ancient Authors:

* Related words:

* Antonyms for all senses:

* Synonyms for all senses:

## Senses:

### Sense  1.0:

#### Definition:

used for a road or surface that is smooth or level

#### Glosses:

smooth, level

#### Explanation:

#### Citations:

[Luke 3:5](luk 3:5).

repository: mandolyte/uw-obsidian

repo_name: mandolyte/uw-obsidian


text:
NSString-OVSSTimeAdditions
==========================

# Warning: This project is no longer supported and contains known bugs. It should not be used in shipping software

==========================

A category on NSString to properly format a duration in hours, minutes, and seconds.

Usage
======

1. Add the category files to your Xcode project.

2. Use the following code to create a properly formatted string:

		[NSString OVSSStringWithHours:0 Minutes:35 Seconds:48];
		//returned value: @"35:48"

License
==========

This code is distributed under the terms and conditions of the MIT license.

Copyright (c) 2012 Owen Voorhees

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

repository: owenv/NSString-OVSSTimeAdditions

repo_name: owenv/NSString-OVSSTimeAdditions


text:
---
title: "Towards Semi Supervised Named Entity Recognition"
excerpt: "Named Entity Recognition can be very useful to perform downstream tasks like classification, increase efficiancy for search algorithms, build powerful content recommendation systems or browse through information quickly!"
collection: portfolio
layout: single
classes: wide
header_teaser: ../../images/important_words/LowScore.png
date: 2021-08-25
---

## Overview

Named Entity Recognition can be very useful to perform downstream tasks like classification, increase efficiancy for search algorithms, build powerful content recommendation systems or browse through information quickly!

Despite so many use cases, most NER are very dependent on labelled data. This often restricts building these systems to domains of already existing datasets.

This project aims to build a system capable generating labels based on confidence scores to identify potential entities, and more importantly named entities.

This flexibility, then allows us to further monitor, generate data and finetune to our domain specific use cases.

**Note:** because what is important in each domain, or to each indivisual is unique depending on the task they are trying to solve, it's not wise to remove the domain dependent nature of this task. Hence, this project aims to generate these labels instead.

---

### About the model

It uses a pretrained Roberta, which is then finetuned on various NER datasets. Moreover, the finetuning is done in a way to capture the underlying distribution of the entities present and represent them on a scale between **0-300**.

For more details about the implementation refer to: [Towards Semi Supervised Named Entity Recognition](https://github.com/TGDivy/Towards-unlabelled-Entity-Detection)

#### Simple Flask app for visualization

I built a simple Flask app for visualization of system, and illustate it better. To run the app, please install the dependencies, and run app.py file.

```
pip install -r requirements.txt
python app.py
```

Note: the **minimum score field** as the input, setting this field will help filter out entities with repsect their importance.

The idea is to finetune this model based on user preference/ task to denote the importance in a particular context.

![Overview](../../images/important_words/Overview.png)

## Minimum Score set to 10

![Low Scores](../../images/important_words/LowScore.png)

## Minimum Score set to 220

![High Score](../../images/important_words/HighScore.png)


text:
# Concert Prep Day Artist Monopoly

written by JL '23

[![Run on Repl.it](https://repl.it/badge/github/athenian-ct-projects/Concert-Prep-Day-JL)](https://repl.it/github/athenian-ct-projects/Concert-Prep-Day-JL)

* This is a Monopoly-type game about artists so Visual Art students have something fun to do on Concert Prep Day.
* Playing pieces, cards and a game board are required for this to function as intended.

Editing info: nothing yet


text:
# Requirements

pip install python-bitcoinrpc

# Usage

python sproutcounter.py BLOCKFROM BLOCKTO

# Example

python sproutcounter.py 396 433

    aggregate value entering sprout circuit     = 10.71830000
    aggregate value leaving sprout circuit      = 0.27450000
    net shielded value change in sprout circuit = 10.44380000

python sproutcounter.py 1 241964

    aggregate value entering sprout circuit     = 3634697.72584490
    aggregate value leaving sprout circuit      = 3510258.15050241
    net shielded value change in sprout circuit =<PHONE_NUMBER>4249

python sproutcounter.py<PHONE_NUMBER>19
    aggregate value entering sprout circuit     =<PHONE_NUMBER>3950
    aggregate value leaving sprout circuit      =<PHONE_NUMBER>3453
    net shielded value change in sprout circuit = 5039.87020497

# Notes

The value entering and leaving the sprout circuit is not a count of
unique coins entering and leaving because the same ZEC can be
shielded and unshielded multiple times.

For example, if you have 1000 ZEC and shield and unshield, the value
entering the sprout circuit will increase by 1000, and the value
leaving the sprout circuit will decrease by 1000.

If you were to shield and unshield 5 times, the value entering the
sprout circuit would increasea by 5000, and the value leaving the
sprout circuit would also increase by 5000.