text:
# Gnuplot.jl
## A Julia interface to Gnuplot.

[![Build Status](https://travis-ci.org/gcalderone/Gnuplot.jl.svg?branch=master)](https://travis-ci.org/gcalderone/Gnuplot.jl)

**Gnuplot.jl** allows easy and fast use
of [Gnuplot](http://gnuplot.info/) as data visualization tool in
Julia.  Its main features are:

- transparent interface between Julia and gnuplot to exploit all
  functionalities of the latter, both present and future ones;

- fast data transmission to gnuplot through system pipes (no temporary
  files involved);

- handles multiple gnuplot process simultaneously;

- support for multiplots;

- save sessions into gnuplot scripts;

- extremely concise syntax (see examples below) makes it ideal for
  interactive data exploration;

- very easy to use: if you know gnuplot you're ready to go.

The purpose is similar to
the [Gaston](https://github.com/mbaz/Gaston.jl) package, but
**Gnuplot.jl** main focus is on on the syntax conciseness and ease of
use.

## Installation
In the Julia REPL type:

``` julia
Pkg.clone("https://github.com/gcalderone/Gnuplot.jl.git")
```

You'll also need gnuplot (ver. >= 4.7) installed on your system.

## Usage:
Here we will show a very basic usage:

``` Julia
using Gnuplot

# Create some noisy data...
x = collect(linspace(-2pi, 2pi, 100));
y = 1.5 * sin.(0.3 + 0.7x) ;
noise = randn(length(x))./2;
e = 0.5 * ones(x);

# ...and show them using gnuplot.
@gp("set key horizontal", "set grid",
    xrange=(-7,7), ylabel="Y label",
    x, y, "w l t 'Real model' dt 2 lw 2 lc rgb 'red'",
    x, y+noise, e, "w errorbars t 'Data'");
```
That's it for the first plot, the syntax should be familiar to most
gnuplot users.  With this code we:
- set a few gnuplot properties (`key` and `grid`);
- set the X axis range and Y axis label;
- passed the data to gnuplot;
- plot two data sets specifying a few details (style, line
  width, color, legend, etc...).

Note that this simple example already covers the vast majority of use
cases, since the remaining details of the plot can be easily tweaked
by adding the appropriate gnuplot command.  Also note that you would
barely recognize the Julia language by just looking at the `@gp` call
since **Gnuplot.jl** aims to be mostly transparent: the user is
supposed to focus only on the data and on the gnuplot commands, rather
than the package details.

Let's have a look to the REPL output of the above command (this may
differ on your computer since we used random numbers):
```Julia
GP(nothing) Starting a new gnuplot process...
GP(nothing) Found gnuplot version: 5.0.0
GP(1) New session started with handle 1
GP(1) -> reset session
GP(1) -> set key horizontal
GP(1) -> set grid
GP(1) -> set xrange [-7:7]
GP(1) -> set ylabel 'Y label'
GP(1) -> $d1_1 << EOD
GP(1) ->  -6.283185307179586 1.225887340796837
GP(1) ->  -6.156252270670907 1.1443471266509504
GP(1) ->  -6.029319234162229 1.05377837392046
GP(1) ...
GP(1) ->  6.029319234162229 -1.4724753107714488
GP(1) ->  6.156252270670907 -1.4920483708151848
GP(1) ->  6.283185307179586 -1.4998496389154883
GP(1) -> EOD
GP(1) -> $d1_2 << EOD
GP(1) ->  -6.283185307179586 2.5763863845120527 0.5
GP(1) ->  -6.156252270670907 1.1957471376063518 0.5
GP(1) ->  -6.029319234162229 1.1841824882108178 0.5
GP(1) ...
GP(1) ->  6.029319234162229 -1.186685251966976 0.5
GP(1) ->  6.156252270670907 -0.4268692113198256 0.5
GP(1) ->  6.283185307179586 -1.4503668565815566 0.5
GP(1) -> EOD
GP(1) -> plot \
GP(1) ->   $d1_1 w l t 'Real model' dt 2 lw 2 lc rgb 'red', \
GP(1) ->   $d1_2 w errorbars t 'Data'
GP(1) ->
```

The **Gnuplot.jl** (note the leading `GP`...) package tells us that it
is starting a new gnuplot process (version 5.0.0) and the number of
the handle for the current session.  It also shows several lines
starting with ` -> `, meaning "sent to gnuplot", with all the commands
and almost all the data being sent.  The gnuplot replies are also
printed, but they lack the ` -> ` string.  To change the amount of
lines being printed you may set a different verbosity level (see
documentation for `Gnuplot.setOption`) as an integer between 0 (no log
at all) and 4 (lots of lines printed).  The default value is 2.

Before proceeding we will brief discuss the four symbols exported
by the package:
- `@gp`: the *swiss army knife* of the package, it allows to send
  command and data to gnuplot, and produce very complex plots;
- `@gpi`: very similar to `@gp`, but it allows to build a plot in
  several calls, rather than a single `@gp` call;
- `@gp_str`: run simple gnuplot commands
  using a
  [non-standard string literal](https://docs.julialang.org/en/stable/manual/strings/#non-standard-string-literals-1),
  e.g.
``` Julia
gp"print GPVAL_TERM"
```
- `@gp_cmd`: load a gnuplot script file using a non-standard string literal, e.g.
``` Julia
gp`test.gp`
```

The last two macros are supposed to be used only in the REPL, not in
Julia function.  As you can see there is not much more to know before
starting *gnuplotting*!

Actually the **Gnuplot.jl** package hides much more under the hood as
we will show below.  Let's discuss some more advanced usage: fit the
data (with gnuplot) and overplot the results.
``` Julia
const gp = Gnuplot  # use an alias for the package name to quickly
                    # access non exported symbols.

# Define the fitting function and set guess param.
gp.cmd("f(x) = a * sin(b + c*x); a = 1; b = 1; c = 1;")

# Fit the data
gp.cmd("fit f(x) $(gp.lastData()) u 1:2:3 via a, b, c;")

# Overplot the fitted model
gp.plot("f(x) w l lw 2 t 'Fit'")

# Get param values
(a, b, c) = parse.(Float64, gp.getVal("a", "b", "c"))

# Add param. values in the title
gp.cmd(title="Fit param: " * @sprintf("a=%5.2f, b=%5.2f, c=%5.2f", a, b ,c))

# Refresh the plot
gp.dump()
```
Here we introduced a few new functions:
- `Gnuplot.cmd`: send gnuplot commands;
- `Gnuplot.lastData`: returns the name of the last data block
  sent to gnuplot;
- `Gnuplot.plot`: add a new plot;
- `Gnuplot.getVal`: retrieve values from gnuplot;
- `Gnuplot.dump`: send the required commands to refresh the plot.

The documentation for each of these functions can be retrieved with
the `@doc` macro or by typing `?` in the REPL followed by the function
name.

Besides these functions however, the strings still contain gnuplot
syntax.

Note that these functions operates on the data and status we set up in
the previous example, i.e. we are operating in a **session**.  This
allow to build a plot step by step and (optionally) to dump all data
and commands on a gnuplot script file, to be edited/used outside
Julia.  All **Gnuplot.jl** functions always operate on the so-called
*current* session, but users can change it using `Gnuplot.setCurrent`.

Now we will introduce a few more functions designed to produce
multiplots:
```
gp.multi("layout 2,1")
gp.next()
gp.cmd(tit="", xlab="X label", ylab="Residuals")
gp.plot(gp.lastData() * " u 1:((f(x)-\$2)/\$3):(1) w errorbars notit")
gp.dump()
```
- `Gnuplot.multi`: initialize a multiplot session.  This is typically
  used at the beginning of the session but it can also be used after
  the first plot;
- `Gnuplot.next`: select to the next plot in the multiplot session.

Note that now we set the Y axis label with `ylab=...`, while we used
`ylabel=...` in a previous example.  This is not a typo, but a desired
behavior: all keywords in the **Gnuplot.jl** functions can
be [abbreviated](https://github.com/gcalderone/AbbrvKW.jl) as long as
the provided names allow complete disambiguation.

Although these functions provide great flexibility they can almost
always be replaced by simpler (and shorter) `@gp` or `@gpi` calls.
The whole plot can be reproduced with:

``` Julia
# Compute the model in Julia
m = a * sin.(b + c * x)

# Start a new gnuplot process (to see the output in another window)
gp.session()

# Plot again using the @gp macro.
title = "Fit param: " * @sprintf("a=%5.2f, b=%5.2f, c=%5.2f", a, b ,c),
@gp("set key horizontal", "set grid",
    :multi, "layout 2,1",
    title=title, ylab="Y label",
    x, y, "w l dt 1 lw 2 t 'Real model'",
    x, y+noise, e, "w errorbars t 'Data'",
    x, m, "w l lw 2 t 'Fit'",
    :next,
    tit="", xlab="X label", ylab="Residuals",
    x, (m-y-noise)./e, ones(e), "w errorbars notit")
```
It is often instructive to check how the macro expands to understand
what's going on.  The expansion of the last `@gp` call is:
``` Julia
Gnuplot.reset()
begin
    Gnuplot.cmd("set key horizontal")
    Gnuplot.cmd("set grid")
    Gnuplot.multi("layout 2,1")
    Gnuplot.cmd(title=title)
    Gnuplot.cmd(ylab="Y label")
    Gnuplot.data(x, y)
    Gnuplot.plot(last=true, "w l dt 1 lw 2 t 'Real model'")
    Gnuplot.data(x, y + noise, e)
    Gnuplot.plot(last=true, "w errorbars t 'Data'")
    Gnuplot.data(x, m)
    Gnuplot.plot(last=true, "w l lw 2 t 'Fit'")
    Gnuplot.next()
    Gnuplot.cmd(tit="")
    Gnuplot.cmd(xlab="X label")
    Gnuplot.cmd(ylab="Residuals")
    Gnuplot.data(x, ((m - y) - noise) ./ e, ones(e))
    Gnuplot.plot(last=true, "w errorbars notit")
end
Gnuplot.dump()
```
Here a few new functions appeared:
- `Gnuplot.session`: start a new gnuplot process and initialize a new session;
- `Gnuplot.reset`: reset the gnuplot session;
- `Gnuplot.data`: send data to gnuplot in the form of a data block.

The `@gpi` macro works exactly like the `@gp` one, but it doesn't add
the wrapping `reset` and `dump` calls, hence it is suited to build a
plot step by step.

Finally, let's save all the data and commands on a gnuplot script, and
close all the sessions:
```
# Save the gnuplot session in a file
gp.dump(file="test.gp");

# Quit all gnuplot sessions
gp.exitAll()
```
Note that we used again the `Gnuplot.dump` function, but we added the
`file=` keyword which tells `dump` to redirect all data and commands
on a file rather than on the gnuplot pipe.

Now you can quit Julia and load/modify `test.gp` directly in gnuplot or
any other program.  If you want to load it again from the Julia REPL:

``` Julia
using Gnuplot
gp`test.gp`
```

Further examples may be found in `test/runtests.jl`.

## List of functions in the package (by category):

The documentation for each of these functions can be retrieved with
the `@doc` macro or by typing `?` in the REPL followed by the function
name.

### Get/set options:

- `Gnuplot.getStartup`: return the gnuplot command(s) to be executed
at the beginning of each session;

- `Gnuplot.getSpawnCmd`: return the command used to spawn a gnuplot
process;

- `Gnuplot.getVerbose`: return the verbosity level;

- `Gnuplot.setOption: set package options.

### Session handling:

- `Gnuplot.handles`: return a `Vector{Int}` of  available session handles;
- `Gnuplot.current`: return the handle of the current session;
- `Gnuplot.setCurrent`: change the current session;
- `Gnuplot.session`: create a new session (by starting a new gnuplot
process) and make it the
current one;
- `Gnuplot.exit`: close current session and quit the corresponding gnuplot
process;
- `Gnuplot.exitAll`: repeatedly call `gp.exit` until all sessions are
closed;

### Send data and commands to Gnuplot:

- `Gnuplot.send`: send a string to the current session's gnuplot pipe
(without saving it in the current session);

- `Gnuplot.reset`: send a "reset session" command to gnuplot and delete all commands,
data, and plots in the current session;

- `Gnuplot.cmd`: send a command to gnuplot process and store it in the
current session;

- `Gnuplot.data`: send data to the gnuplot process and store it in the
current session;

- `Gnuplot.lastData`: return the name of the last data block;

- `Gnuplot.getVal`: return the value of one (or more) gnuplot variables;

- `Gnuplot.plot`: add a new plot/splot comand to the current session;

- `Gnuplot.multi`: initialize multiplot;

- `Gnuplot.next`: select next slot for multiplot sessions;

- `Gnuplot.dump`: send all necessary commands to gnuplot to do/refresh the
plot.  Optionally, the commands and data can be sent to a file.

### Misc.:
- `Gnuplot.terminals`: return the list of available gnuplot terminal.
- `Gnuplot.terminal`: return the current gnuplot terminal.

### Symbols exported by **Gnuplot.jl**
- `@gp`: the *swiss army knife* of the package, it allows to send
  command and data to gnuplot, and produce very complex plots;
- `@gpi`: very similar to `@gp`, but it allows to build a plot in
  several calls, rather than a single `@gp` call;
- `@gp_str`: run simple gnuplot commands
  using a
  [non-standard string literal](https://docs.julialang.org/en/stable/manual/strings/#non-standard-string-literals-1);
- `@gp_cmd`: load a gnuplot script file using a non-standard string literal.

The last two macros are supposed to be used only in the REPL, not in
Julia function.


text:
![ssh-keep](https://i.imgur.com/sEr1RRJ.png)

# ssh-keep
Easy way to access and keep track of your SSH connections. It runs on single configuration file which you can backup to your cloud or hard drive and share accross devices your way. Give it a shot!

## Install

Download latest release and extract file to `/usr/share/bin` with execute permission.

## Configure

Once you run `ssh-keep` command in your console, it should automaticall create `~/.ssh-keep.conf` file for you. Otherwise manually add it and write `SSH` lines with optional parameters. Make sure that one `SSH` command is in one line. Here is an example:

```
<EMAIL_ADDRESS><EMAIL_ADDRESS>-i ~/path/to/public-key.pub
...
```

Add alias to your `~/.bashrc` for faster tool access (optional).
```
alias sk="ssh-keep"
```

## Run
Once you run `ssh-keep` after configuration, you should see next:

![run_1](https://i.imgur.com/tXbjDjE.png)

license: MIT

branch_name: refs/heads/master

extension: md

license_type: permissive


text:
---
title:  Inside Story
date:  01/02/2019
---

#### Adopted at a Funeral

_By Andrew McChesney, Adventist Mission_

Mourners gathered for the funeral of the young mother at the Seventh-day Adventist church in Milange, a town just two miles (three kilometers) from Mozambique’s border with Malawi.

The woman had died of HIV complications just five days after giving birth to a baby boy. Her HIV-positive husband, the boy’s father, had died earlier.

The wee baby bawled during the funeral.

“He was crying because there was no one to nurse him,” said Clemente Mateus Malala, a 61-year-old farmer who attended the funeral.

Clemente spoke with the baby’s relatives after the funeral and learned that they had little money for milk and diapers. He considered buying the items but worried that the relatives might resell them, so he offered to adopt the baby.

The boy, Laston, is now five and the youngest of four orphans adopted by Clemente and his wife. They also have four grown biological children.

Clemente, who grows green beans and maize on his farm in rural western Mozambique, is an active church member and lay evangelist who has led 430 people to baptism over the past 13 years. But nothing has touched his heart like his four adopted children who lost their parents to HIV/AIDS.

“God has blessed me with the gift of bringing people to Him, but real happiness comes in caring for these orphans,” he said. “The adults that I lead to Christ are able to take care of their physical needs, but the orphans would suffer twice without me: Their physical needs wouldn’t be met, and they might lose salvation.”

HIV/AIDS is a major challenge in Mozambique, and Clemente is among Seventh-day Adventists striving to make a difference. He adopted his first orphan, Rojerio, after seeing the two-year-old scavenging for food at the roadside. Relatives told him that Rojerio’s parents had died and gladly handed him over when he offered to raise the boy.

Clemente adopted the other two children, both girls, in a similar way.

Rojerio is now 15, and the two girls are 11 and 8.

“The least that I can do is take a few children and feed them in my home,” Clemente said.

Clemente longs for an Adventist school where his adopted children can study in Milange.

“We as a church are supposed to invest in education to invest in the future of the church,” he said.

_Part of this quarter’s Thirteenth Sabbath Offering will help build such a school in Clemente’s town of Milange. Thank you for your mission offering._

repository: Adventech/sabbath-school-lessons

branch_name: refs/heads/stage

gha_license_id: MIT

repo_name: Adventech/sabbath-school-lessons


text:
---
published: true
layout: post
has_book: true
title: "Chapter 4 - Hidden Needle Imprint"
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-03
next_chapter: 02-05
date: 2017-01-12
has_credits:
translator:
proofreader:
is_preview:
has_note: true
note: "3rd regular chapter of the week"
---
After entering his room, He Yiming closed the door.

He’d randomly found an excuse to escape from the questioning of his father and other elders. Although he knew that they might not have been convinced of his words, he also knew that as long as the matter concerned his martial dao, nobody in the He manor would create difficulties for him.

He could see this point becoming increasingly clearer along with the growth of his strength.
<!--more-->

As he looked at the small wooden peg on the door, he had a faint feeling that if he didn’t open the door tomorrow morning, nobody would come his way to urge him, and his eldest brother and sister-in-law would just leave for He manor amidst sounds of drums and gongs.

Moreover, his father or third uncle would also leave behind a caretaker for him that would stand by for as long as he took to leave.

This was the result of his performance in the martial duels. It had promoted his position in the clan to unprecedented heights.

He faintly shook his head. The distance between him and his family members seemed to be growing increasingly larger. Not only did get this feeling from his siblings, even his elders were the same.

This transformation had not occurred overnight, but had been going on for the past two years. However, when he substantially felt it, it had already gone past redemption.

He let out a sigh. He had long since known that after receiving that strange fortune in the lake, he was definitely going to change. However, he never expected that this change would alienate him from his own family so soon.

After feeling emotional for a while, He Yiming moderated his state of mind and turned his thoughts towards the two imprints from today’s exchange.

Prostrate Imprint, and Rain Cloud Imprint.

After experiencing the might of these two imprint techniques, He Yiming felt certain that both of these imprints belonged to a kind of Xiantian techniques.

However, this kind seemed a bit different than normal Xiantian techniques. Use of these techniques held no requirement for a certain attribute. In other words, regardless of whichever primary technique one cultivated, he would be able to bring out the might of these two Xiantian techniques.

Of course, the might corresponding to different attributes would differ to some extent.

However, studying and experimenting all of this was precisely He Yiming’s future plan.

His eyes faintly closed as he replayed everything that transpired in the arena.

Everything since the moment Xu Right and Lin Taoli started their battle started to play in He Yiming’s mind. Although some details were inevitably missed, those concerning Prostrate Imprint remained as fresh as new in his memories.

After entering that mystical realm last time, he’d discovered that his memory had improved a lot. Although he wouldn’t dare claim that he could remember everything that his vision fell upon, he could say with full certainty that his memory was currently multiple folds better than before.

Only because his memory was so good could he stealthily study the two imprints of Lin Taoli.

Scenes flickered in He Yiming’s mind. Although Xu Right’s Blaze technique was no trifling matter and it also provided He Yiming a platform which he could use to compare his experiences with, his main interest lied much more in the Prostrate Imprint.

Subsequently, He Yiming recalled his exchange with Lin Taoli.

In the room, he’d unwittingly stood up- both hands wrapped in a bizarre shape. This intricate imprint didn’t conform to a rigid shape but was governed by a strange movement rule. At the same time, it also required the corresponding Internal Energy circulation. Both of these components were essential, and one would be useless without the other.

Other than He Yiming, people would have found remembering so many details impossible. He Yiming was indeed different. He’d not only remembered all the movements pertaining to the hands, after colliding with this imprint several times, he’d even understood the Internal Energy transformations occurring within down to seventy percent.

Although his understanding was not a perfect one and it had some gaps, he’d started to experiment on this imprint with four distinct types of Internal Energy. As long as he managed to fill one of these gaps, he could use his own understanding to fill the rest.

In this manner, after contemplation and countless experiments, a new, modified Prostrate Imprint emerged.

Perhaps this Prostrate Imprint was imperfect, different from the original, and even its might was unpredictable, but He Yiming’s heart at this moment brimmed with elation and pride.

Although this imprint technique’s framework had been stolen from Lin Taoli and was then organized by him taking bits and pieces from here and there, in any case, this imprint qualified to be his own original technique.

The number of techniques inside He manor was indeed quite big. Although the might of these techniques differed, they shared one common trait. The creator of each technique had devoted his life and blood in the creation of its scripture.

The absolute majority of cultivators, in their whole lives, only cultivated techniques that were passed onto them by their seniors.

Only an exceedingly small minority of geniuses could absorb ideas of different schools and produce an innovative Internal Energy technique or battle skill.

Moreover, not all of these innovations spread through generations. Only a few truly useful techniques could stand up to the tests and trial of years. Those which couldn’t complement their gaps and deficiencies, or perhaps lacked practicality, disappear in the time’s eternal river.

In short, those who could create pragmatic techniques were geniuses among the cultivators in true sense.

He Yiming didn’t know whether the technique he’d created would be passed on to the future generations or not, but being able to create his own technique at this age- this was perhaps unprecedented throughout the history.

If father and grandfather knew…..I’m afraid…

I’m afraid not only would they not be convinced, they would even think that I’ve gone astray.

As soon as he thought up to here, he even felt the corner of his eyes hot due to excitement.

With a deep breath, He Yiming stretched out his hands and eventually formed a complex seal. This seal was subtly different than that of the normal Prostate Imprint.

The reason was that He Yiming felt that only this could allow his Internal Energy to flow unobstructed. He Yiming, who had not understood the Internal Energy circulation behind the Prostrate Imprint to its core, hadn’t hesitated to apply modifications that suited his characteristics. As such, change in the outer appearance of the imprint was only natural.

If Lin Taoli were to see He Yiming’s hand seal, he would, at most, only feel some familiarity with it. He wouldn’t associate it with the imprint technique of his clan at all.

Moreover, if he were to know that He Yiming had actually modified the secret art of his clan at his will, he would immediately turn his tail and escape far away, much less to speak of showing interest in recruiting the latter.

Indeed. Except He Yiming, if a tenth layer cultivator had tried to modify a Xiantian technique, he would have gone astray and turn insane before dying, much less to speak of excitedly testing out new techniques.

This was what they say ‘Who doesn’t know is not guilty’. Since He Yiming was not aware of dangers that accompanied the process of altering a technique, he could fearlessly apply such modifications. If he’d been aware of these dangers, even if he’d three times more his guts, he wouldn’t have acted so recklessly and wishful.

His two hands swiveled like flowing water as the seal constantly changed.

After a few moments, a bizarre energy slowly rippled in his surroundings. However, this energy vastly differed from the steady, Mt. Tai like feeling that Prostrate Imprint emanated.

Although this imprint could barely still be qualified as a defensive one, it also offered a strong offensive potential.

Like a needle concealed in silk floss.

As he continued to employ this imprint, this feeling became increasingly dense. Moreover, the concealed needle seemed to be carrying a strand of scorching fire type energy. Even Lin family had never seen such a strange version of Prostrate Imprint.

Slowly, his two hands parted as he contemplated over this imprint which had neither fish nor fowl of its kind. Eventually he decided to bestow this imprint a new name.

Hidden Needle Imprint.

Needle Concealed In Silk Floss.

He could tell that the defensive capabilities of this imprint lied nowhere near the original one. However, at the same time, this imprint was like a fire needle enveloped in cotton on the outside.

If used on somebody, the opponent would be caught off guard and pay a bitter price. From this perspective, this imprint was a notch above the original one.

However, this technique had a major shortcoming. If the opponent’s attack outstripped imprint’s limits, not only this imprint would fail to defend, it would even make the user lose the opportunity to counterattack- adding salt on injury.

This imprint was kind of extreme; hard to say whether it was good or bad.

Of course, all this was merely He Yiming’s conjectures. It had not gone past real combat experiences. To decide whether he wants this imprint or not, he still needed time to verify his predictions.

After setting aside this technique, he raised his head and saw that the color of sky had already started to brighten.

However, the courtyard which was extremely lively and full of activity yesterday was quiet today. Although he could hear faint voices of many people, all of these were extremely cautious and prudent- seemingly afraid to disturbing someone.

He Yiming let out a sigh. It was indeed as he’d guessed. Apparently, in his elders’ minds, his cultivation was more important than even his eldest brother’s marriage.

Faintly shaking his head, He Yiming moderated his thoughts, then pushed the door open and walked out.

After a short while, the sounds of gongs and drums reverberated throughout the courtyard.

A group of people majestically left the town, heading to the He manor.

gha_language: HTML


text:
JSON datatype contributor for Hibernate ORM 5.2+
========

If you need to use `javax.json.JsonArray`, `javax.json.JsonObject` or
`javax.json.JsonStructure` objects in your JPA entities and already use
Hibernate as your JPA provider, this is the plugin for you, so long as
Hibernate, your JSR-353 provider and this plugin are loaded by the same
ClassLoader, which is the typical use-case.

Changelog:
--------

Version 1.1:

* Updated Hibernate version to 5.2, requiring Java 8.
* Removed test dependency log4j, using JBoss logger, available from Hibernate, instead.
* Add database types to case-sensitive registration keys. No effect, unless you manage to somehow load the contributor with the hibernate-mapping tool for class generation from a live database.
* `build.gradle` no longer mixes tabs and spaces for indentation. Now it's tabs only.

Version 1.2:

* When used in conjunction with `hibernate-array-contributor`, it will automatically register the array types.

Set-up for testing environment:
--------

* PostgreSQL 9.2 server or newer, running on port 5432
* Username, password and database `hibernate_orm_test` with full privileges that database.

Compiling:
--------

Assuming you have your JAVA_HOME environment variable pointing to JDK7

    ./gradlew clean build

If you want to build without running the tests, use `assemble` instead of `build`.

To make the final jar available for your Maven or compatible project type
that uses the Maven repository, run:

    ./gradlew publishToMavenLocal

Now you just need to add the dependency to your project's `pom.xml`.

    <dependency>
        <groupId>com.mopano</groupId>
        <artifactId>hibernate-json-contributor</artifactId>
        <version>1.1</version>
    </dependency>

Or if you're using Gradle:

    dependencies {
        compile group: 'com.mopano', name: 'hibernate-json-contributor', version: '1.1'
    }

Potential pitfall:
--------

If your application is loaded after Hibernate, instead of alongside it,
it might not load the type contributor. This can happen if you use Hibernate
on a Glassfish server. In this case you would need to add it to Glassfish's
classpath the same way you added Hibernate, as it is not the default provider.

You cannot use `JsonArray` objects as parameters in native queries before
Hibernate version 5.2.10.

repository: dfdemar/hibernate-json-type

repo_name: dfdemar/hibernate-json-type


text:
# Working on the master branch
## Intro
This is a quick howto for working on the 'master' branch. Working on the branch
is easy as we maintain all changes through gerrit.automotivelinux.org.
If you are unfamiliar with gerrit, please read these fine how-to pages were put together from the
Mediawiki community here: https://www.mediawiki.org/wiki/Gerrit/Tutorial . This covers the basics very well. Of course we'll work with gerrit.automotivelinux.org instead so apply likewise.

## Installation of tools
Install `git` with your distributions package manager.
A very useful tool is "git-review" (cmdline is then `git review`).
Install it from your distro or with `sudo pip install git-review`.

## Prerequisites
It is important to setup git and gerrit properly (see the Tutorial page mentioned above):

* prereq #1)   make sure git is properly setup with name/email
* prereq #2)   make sure your ssh key is in gerrit.automotivelinux.org

## Cloning, editing and submitting for review

Follow these steps to submit a change to the 'master' branch:

1) cloning the (tip of the) branch
   ```
   repo init -u https://gerrit.automotivelinux.org/gerrit/AGL/AGL-repo
   repo sync
   ```

2) Change the recipe in question (one change at a time - small is better)
    ```
    vi meta-xyz/recipe-foo/bar/baz.bb
    ```

3) Do a a few builds and tests (try 2 architectures if possible)
   ```
   source meta-agl/scripts/aglsetup.sh .... agl-all-features
   bitbake agl-demo-platform
   ```

4) once satisfied do commit your change as usual in git
   Make sure to do a proper commit message:
   http://chris.beams.io/posts/git-commit/
   ```
   git commit -s
   <enter proper commit message>
   ```

5) All repos have .gitreview files already, so now it is just
   ```
   git review
   ```

6) (optional, but highly recommended!) Reset to gerrit/master
   ```
   git checkout master
   git reset --hard gerrit/master
   ```

   It helps during the review process as gerrit would otherwise enforce
   the whole series of patches to be reviewed/merged together (2nd depends on 1st patch).

7) Rinse (=6) and repeat (=2-5)

## Using git review to review/test-build a specific change in gerrit
'git review' is also useful if you want to review a change.
Example for meta-agl:
```
 repo init -u https://gerrit.automotivelinux.org/gerrit/AGL/AGL-repo
 repo sync
 cd meta-agl/
 git review -d 8233
```
This will pull-down change 8233. Now we can build with it applied:
```
 cd ..
 source ...
 bitbake ...
````

## Using gerrit to amend a changeset while in review
The same workflow applies if you want to _amend_ a changeset while it is in review (not merged, yet):
```
cd meta-agl/
git review -d 8233
```
This will pull-down change 8233. You can now edit a file:
```
vi meta-xyz/recipes-foo/bar/baz.bb
git commit -s --amend
```

 Don't forget a test build
```
cd ..
source meta-agl/scripts/aglsetup.sh ..... agl-all-features
bitbake ... # e.g. agl-demo-platform
```

 Finally call git review to upload the change
```
git review
```

repository: wangludong/docs-agl

repo_name: wangludong/docs-agl


text:
---
uid: azure-cloud-service
title: Azure Cloud Service (Deprecated)
---

# Azure Cloud Service (Deprecated)

> [!IMPORTANT]
> Cloud Services are largely deprecated in Azure now.

The following sample assumes that you have created a new Azure PaaS Cloud Service that contains a single
empty Worker Role. The Cloud Service project templates are added to Visual Studio by installing the
[Azure .Net SDK](http://azure.microsoft.com/en-gb/downloads/).

The Worker Role implementation can be tested locally using the Azure Compute Emulator before deploying to the cloud. The MSDN Azure article ["Using Emulator Express to Run and Debug a Cloud Service Locally"](https://msdn.microsoft.com/en-us/library/azure/dn339018.aspx) describes this in more detail.

The Azure PaaS Worker Role implementation is very similar to the [Windows Service](xref:windows-service).
The quickest way to get started with Akka.Net is to create a simple Worker Role which invokes the top-level
user-actor in the RunAsync() method, as follows:

## WorkerRole.cs

```csharp
using Akka.Actor;

namespace MyActorWorkerRole
{
    public class WorkerRole : RoleEntryPoint
    {
        private readonly CancellationTokenSource cancellationTokenSource = new CancellationTokenSource();
        private readonly ManualResetEvent runCompleteEvent = new ManualResetEvent(false);

        private ActorSystem _actorSystem;

        public override bool OnStart()
        {
            // Setup the Actor System
            _actorSystem = ActorSystem.Create("MySystem");

            return (base.OnStart());
        }

        public override void OnStop()
        {
            this.cancellationTokenSource.Cancel();
            this.runCompleteEvent.WaitOne();

            // Shutdown the Actor System
            _actorSystem.Shutdown();

            base.OnStop();
        }

        public override void Run()
        {
            try
            {
                this.RunAsync(this.cancellationTokenSource.Token).Wait();
            }
            finally
            {
                this.runCompleteEvent.Set();
            }
        }

        private async Task RunAsync(CancellationToken cancellationToken)
        {
            // Create an instance to the top-level user Actor
            var workerRoleActor = _actorSystem.ActorOf<WorkerRoleActor>("WorkerRole");

            // Send a message to the Actor
            workerRoleActor.Tell(new WorkerRoleMessage("Hello World!"));

            while (!cancellationToken.IsCancellationRequested)
            {
                await Task.Delay(1000, cancellationToken);
            }
        }
    }
}
```

branch_name: refs/heads/dev

gha_language: C#

gha_license_id: NOASSERTION


text:
# BeerClassifier

Classify your beer bottle images using Core ML and Keras / Turi Create.
Demo app for this presentation: [Core ML 🏃 iOS Engineer](https://speakerdeck.com/_shingt/core-ml-ios-engineer)

<img width=200 src="https://user-images.githubusercontent.com/1391330/34070759-3e81a024-e2af-11e7-95c8-6f63297d8688.gif">

Note that after I tap `Download New Model`, app starts recognizing `Ho*gaarden` as well.

## Requirements

* Swift 4.2
* Xcode 10.0
* Python 3.6
* virtualenv
* pip

## Setup

```sh
virtualenv -p python3 ./
source ./bin/activate
pip install -r requirements.txt
```

## Usage

Before running any script, run:

```sh
source ./bin/activate
```

## General scripts

### `scraper.py`

Downloads images using Microsoft Cognitive API.
Note that you need to register Azure and set your azure key as `AZURE_KEY` in `.env`.

```sh
python scripts/scraper.py
```

### `quantize.py`

```sh
python scripts/quantize.py -i ./models/BeerClassifier.mlmodel -o ./models/BeerClassifierQuantized.mlmodel
```

## Keras-targetted scripts

### `keras/preprocess.py`

Crops and resize all images.

```sh
python scripts/keras/preprocess.py
```

### `keras/create_data_csv.py`

Creates `train_data.csv` and `test_data.csv`.

```sh
python scripts/keras/create_data_csv.py
```

### `keras/train.py`

Trains using collected images to create model file.

```sh
python scripts/keras/train.py
```

### `keras/hdf5_to_mlmodel.py`

Converts keras model (in HDF5) file to `.mlmodel` format.

```sh
python scripts/keras/hdf5_to_mlmodel.py
```

## TuriCreate-targetted scripts

### `turicreate/convert_image_format.py`

Convert images to turicreate-supporting formats.

```sh
python scripts/turicreate/convert_image_format.py
```

### `turicreate/create_sframe.py`

Create an sframe file from prepared images.

```sh
python scripts/turicreate/create_sframe.py
```

### `turicreate/train.py`

Trains using prepared images and and sframe file to create model file.

```sh
python scripts/turicreate/train.py
```

repository: shantanunandan/BeerClassifier

repo_name: shantanunandan/BeerClassifier


text:
someutils
=========

Some CLI utilities written in Go.

 * Mainly intended as Unix-like commands for Windows, but cross-platform anyway.
 * Covers similar ground to coreutils, but not intended as a replacement. (Won't ever support all commands & options).
 * Just because.

Installation.
---------

### Method 1: download precompiled binaries

 * Grab some recent (v0.3.0) Windows binaries zipped up for [32-bit Windows](http://dl.bintray.com/laher/utils/someutils_0.3.0_windows_386.zip) and [64-bit Windows](http://dl.bintray.com/laher/utils/someutils_0.3.0_windows_amd64.zip).
 * Just unzip somewhere on your %PATH% (environment variable).
 * (These binaries were built and uploaded with `goxc`, ofcourse)

### Method 2: `some`, recommended for Unix systems

   1. `go get github.com/laher/someutils/cmd/some`
   2. `some ls`, `some pwd` etc

### Method 3: `go install ./...` installs all binaries into your GOPATH

NOTE: On Unix systems in particular, **be careful that your system PATH elements come BEFORE `GOPATH` within your PATH environment variable**

   1. `go get github.com/laher/someutils`
   2. `cd <....>/someutils`
   3. `go install ./...`
   4. `ls`, `pwd` etc

Scope etc
---------
My main target is to get my Windows CLI a bit closer to being as productive as my Linux CLI, by creating many small utilities under one umbrella.
Some commands are excluded because they're either ubiquitous anyway (such as echo,cd,whoami), just too big, or hard to acheive with pure Go.

I'll just keep adding stuff as I need it. Contributions welcome!

### Progress

So far, limited versions of the following commands are available:

 Command | Options supported | STDIN support  | Notes
 --------|-------------------|----------------|------------------------
 cat     | -Ens              | Yes            |
 cp      | -r                | n/a            | TODO: check symlink behaviour
 grep    | -nvHi -E -P       | Yes            | TODO: binary files support. !!No support for BRE - uses -E by default.
 ls      | -lahr -1          | Yes            | TODO: -p -t
 mv      |                   | n/a            | TODO: check symlink behaviour
 pwd     |                   | n/a            |
 rm      | -r                | n/a            | TODO: check symlink behaviour
 [scp](https://github.com/laher/scp-go)     | -r -P             | ?              | INCOMPLETE AND NOT WORKING WITH ALL SSH SERVERS.
 touch   |                   | n/a            |
 unzip   | -t                | TODO(STDOUT)   |
 which   | -a                | n/a            | TODO: Windows treats current dir above PATH variables.
 [wget](https://github.com/laher/wget-go)    | -c -o             | n/a            | TODO: multi-threading? (not part of real wget)
 zip     |                   | TODO           | No password support.

You can also use 'some [cmd] [args...]' for any of the above.

### ToMaybeDo
 * tar,gzip,gunzip
 * stat,size,file,split,type
 * tee,split,join,head,tail (tail -f??)
 * chmod/chown (relevant?)
 * diff (too big? Maybe a minimal version would be good here)
 * more (how easy is it?)
 * du/dh (need OS-specifics?)
 * find/locate
 * ln (would it need some non-Go stuff for Windows? YES at this stage)
 * ps,kill,pgrep,pkill
 * id,w,which
 * tailf (tail -f). How easy would this be?
 * ssh (terminal handling might be too challenging)

### TooBig?
 * less
 * a text editor
 * top
 * dd
 * awk, sed
 * xargs, find -exec
 * rsync (algorithms might be a bit hard)

### Not possible/easy with pure Go
 * cron,chroot,bg,fg
 * ps
 * fsck
 * dig (unless I can construct raw DNS requests & collect responses)

See Also
--------

 * I have separated out the 'flag' functionality into a separate package, [uggo](https://github.com/laher/uggo)

repository: ngpestelos/someutils

repo_name: ngpestelos/someutils


text:
## Jetty configuration to display error pages in JSON.

Simple project that shows how to get Jetty errors in JSON format.
Project done with SpringMVC.

Full article can be found here: https://igorkhromov.com/2019/08/16/customizing-embedded-jetty-server-to-return-errors-for-404-502-503-codes-in-json.

gha_language: Java


text:
# An SDK to easily work with the Notific API

This SDK lets you perform API calls to [Notific](https://notific.io).
API documentation [https://notific.io/api](https://notific.io/api)

## Usage

To install the SDK in your project you need to require the package via composer:

`$ composer require notific/notific-php-sdk`

Create an instance of the SDK:

```php
$notific = new Notific\PhpSdk\Notific(APP_ID, API_TOKEN);
```

If you don't have an App ID yet, sign up at https://app.notific.io/signup

## Public notifications

You can get an array of public notification instances with `publicNotifications()` method.

```php
$notific->publicNotifications();
```

You can optionally give arguments to method which will be transformed to query parameters. Read more about filtering and sorting options from [API documentation](https://notific.io/api/#list-public-notifications)

```php
$notific->publicNotifications([
    'page' => 2,
    'limit' => 25,
    'sort' => '-created_at'
]);
```

Create new public notification.

```php
$notific->createPublicNotification([
    'title' => 'Welcome!'
    'body'  => 'This is the body of the notification...'
]);
```

Retrieve a public notification instance.

```php
$notification = $notific->publicNotification($id);
```

Update the notification.

```php
$notification->update([
  'title' => 'Boom!'
  'body'  => 'This is the updated body of the notification.'
]);
```

Delete the notification.

```php
$notification->delete();
```

## Recipients

You can get an array of recipient instances with `recipients()` method.

```php
$notific->recipients();
```

You can optionally give arguments to method which will be transformed to query parameters. Read more about filtering and sorting options from [API documentation](https://notific.io/api/#list-recipients)

Create a recipient.

```php
$notific->createRecipient([
    'id'    => '123', // Unique identifier for the user. You can use integers, hashes or what ever suites you best.
    'name'  => 'Kung Fury',
    'email' =><EMAIL_ADDRESS>    'phone' => '+358 40 123 456' // You can add meta information to recipient as key => value pairs.
]);
```

Retrieve a recipient instance.

```php
$recipient = $notific->recipient($id);
```

Update the recipient.

```php
$recipient = $recipient->update([
    'name'  => 'Fury'
]);
```

Add tags to the recipient.

```php
$recipient = $recipient->tag([
    'Foo', 'Bar', 'Baz'
]);
```

Remove tags from the recipient.

```php
$recipient = $recipient->removeTags([
    'Bar'
]);
```

Remove all tags from the recipient.

```php
$recipient = $recipient->removeAllTags();
```

## Templates

Where private notifications are immutable and unnamed, templates are editable and easy to retrieve by name.

You can get an array of template instances with `templates()` method.

```php
$notific->templates();
```

Create a template.

```php
$notific->createTemplate([
    'title' => 'Lorem ipsum dolor sit amet.',
    'body'  => 'Lorem ipsum dolor sit amet, consectetur adipiscing...',
    'name' => 'lorem-ipsum'
]);
```

Retrieve a template with a name parameter.
```php
$template = $notific->template($name);
```

## Private notifications

You can get an array of private notification instances with `privateNotifications()` method.

```php
$notific->privateNotifications();
```

You can optionally give arguments to method which will be transformed to query parameters. Read more about filtering and sorting options from [API documentation](https://notific.io/api/#list-private-notifications)

```php
$notific->privateNotifications([
    'filter[type]' => '1,2',
    'sort' => '-created_at'
]);
```

Create new private notification.

```php
$notific->createPrivateNotification([
    'title' => 'Welcome!'
    'body'  => 'This is the body of the private notification...'
]);
```

Retrieve a private notification instance.

```php
$notification = $notific->privateNotification($id);
```

Update the private notification.

```php
$notification->update([
  'title' => 'Boom!'
  'body'  => 'This is the updated body of the private notification.'
]);
```

## Send private notifications

You can use a private notification or a template to send a private notifications to recipient(s). We recommend you
to use templates because they are easier to refer and manage as they are editable.

Send private notification with the notification id and recipient(s) id:s. Recipients can be a string, a list or an an array of id:s.

```php
$data = $notific->template($name)->recipients($recipients)->send()
```

```php
$data = $notific->privateNotification($notificationId)->recipients($recipients)->send()
```

You can use two delivery channels to send private notifications, broadcast (default) and email. Email channel requires valid email settings.

```php
$data = $notific->template($name)->recipients($recipients)->channels('broadcast', 'email')->send()
```

```php
$data = $notific->privateNotification($notificationId)->recipients($recipients)->channels('broadcast')->send()
```

If you are tagging your recipients you can send notification using tags. Tags can be a string, a list or an array of id:s.
Recipient must have all given tags.

 ```php
 $data = $notific->template($name)->tags($tags)->send()
 ```

```php
$data = $notific->privateNotification($notificationId)->tags($tags)->send()
```

To send a notification to ALL your recipients, use predefined tag _all_.

 ```php
 $data = $notific->template($name)->tags('all')->send()
 ```

```php
$data = $notific->privateNotification($notificationId)->tags('all')->send()
```

Alternative way to send private notification with private notification instance.

```php
$data = $notific->template($id)->sendTo($recipients);
```

```php
$data = $notific->privateNotification($notificationId)->sendTo($recipients);
```

Send private notification with recipient instance.

```php
$data = $notific->recipient($id)->sendNotification($notificationId);
```

Tip: you can test the private notification and send it to your self. You will receive the notification
instantly if you are logged in to [notific.io dashboard](https://app.notific.io/dashboard).

```php
$data = $notific->template($name)->test();
```

```php
$data = $notific->privateNotification($id)->test();
```
## Pagination & limiting

Response data will be paginated to 15 items by default. Navigating through the pages and limiting the number of items per page can be done with query parameters. For example `?page=2&limit=25`. Read more about paging and limiting from [API documentation](https://notific.io/api/#response-pagination).

## Security

If you discover any security related issues, please email<EMAIL_ADDRESS>instead of using the issue tracker.

## Credits

- [Kalle Palokankare](https://github.com/palokankare)

This package uses code from and is greatly inspired by the [Oh Dear SDK package](https://github.com/ohdearapp/ohdear-php-sdk) which is inspired by the [Forge SDK package](https://github.com/themsaid/forge-sdk) by [Mohammed Said](https://github.com/themsaid).

## License

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

repository: notific/notific-php-sdk

gha_language: PHP

repo_name: notific/notific-php-sdk


text:
---
title: Changelog | Guard
description: Changelog
menu:
  product_guard_{{ .version }}:
    identifier: changelog-guard
    name: Changelog
    parent: welcome
    weight: 10
product_name: guard
menu_name: product_guard_{{ .version }}
section_menu_id: welcome
url: /products/guard/{{ .version }}/welcome/changelog/
aliases:
  - /products/guard/{{ .version }}/CHANGELOG/
---

# Change Log

## [v0.6.0](https://github.com/appscode/guard/tree/v0.6.0) (2020-06-03)
[Full Changelog](https://github.com/appscode/guard/compare/v0.6.0-rc.0...v0.6.0)

**Closed issues:**

- Missing files for os x  [\#249](https://github.com/appscode/guard/issues/249)

**Merged pull requests:**

- Fix front matter for authorizer docs [\#258](https://github.com/appscode/guard/pull/258) ([tamalsaha](https://github.com/tamalsaha))
- Build Mac and Window binaries in GH Actions [\#257](https://github.com/appscode/guard/pull/257) ([tamalsaha](https://github.com/tamalsaha))
- Update CHANGELOG.md [\#256](https://github.com/appscode/guard/pull/256) ([tamalsaha](https://github.com/tamalsaha))

## [v0.6.0-rc.0](https://github.com/appscode/guard/tree/v0.6.0-rc.0) (2020-06-02)
[Full Changelog](https://github.com/appscode/guard/compare/v0.5.0...v0.6.0-rc.0)

**Merged pull requests:**

- Adding Authz support for Azure [\#255](https://github.com/appscode/guard/pull/255) ([krdhruva](https://github.com/krdhruva))
- Fix linter warnings [\#254](https://github.com/appscode/guard/pull/254) ([tamalsaha](https://github.com/tamalsaha))
- Update to Kubernetes 1.18.3 [\#253](https://github.com/appscode/guard/pull/253) ([tamalsaha](https://github.com/tamalsaha))

## [v0.5.0](https://github.com/appscode/guard/tree/v0.5.0) (2020-05-11)
[Full Changelog](https://github.com/appscode/guard/compare/v0.5.0-rc.1...v0.5.0)

**Merged pull requests:**

- Use Go 1.14.2 [\#251](https://github.com/appscode/guard/pull/251) ([tamalsaha](https://github.com/tamalsaha))
- Azure: switch to new graph endpoint for US Government cloud [\#250](https://github.com/appscode/guard/pull/250) ([karataliu](https://github.com/karataliu))

## [v0.5.0-rc.1](https://github.com/appscode/guard/tree/v0.5.0-rc.1) (2020-02-16)
[Full Changelog](https://github.com/appscode/guard/compare/v0.5.0-rc.0...v0.5.0-rc.1)

**Closed issues:**

- azure auth provider should validate token audience [\#244](https://github.com/appscode/guard/issues/244)
- Enable guard to use AKS On-Behalf-Of flow to obtain user's group memberships [\#235](https://github.com/appscode/guard/issues/235)
- Don't query for groups if AAD token already contains groups [\#171](https://github.com/appscode/guard/issues/171)
- Azure AAD [\#152](https://github.com/appscode/guard/issues/152)
- Enable guard to use OAuth 2.0 On-Behalf-Of flow to obtain user's group memberships [\#131](https://github.com/appscode/guard/issues/131)

**Merged pull requests:**

- Add blank line before package delcaration [\#247](https://github.com/appscode/guard/pull/247) ([tamalsaha](https://github.com/tamalsaha))
- Add option to verify client ID [\#246](https://github.com/appscode/guard/pull/246) ([weinong](https://github.com/weinong))
- Add flag to call Graph api only when overage indicator is present [\#245](https://github.com/appscode/guard/pull/245) ([weinong](https://github.com/weinong))

## [v0.5.0-rc.0](https://github.com/appscode/guard/tree/v0.5.0-rc.0) (2020-01-26)
[Full Changelog](https://github.com/appscode/guard/compare/0.4.0...v0.5.0-rc.0)

**Closed issues:**

- Use github.com/glauth/glauth LDAP server for testing [\#220](https://github.com/appscode/guard/issues/220)
- Unable to build docker image from src [\#217](https://github.com/appscode/guard/issues/217)

**Merged pull requests:**

- Update dependencies [\#240](https://github.com/appscode/guard/pull/240) ([tamalsaha](https://github.com/tamalsaha))
- Update azure doc with new feature [\#239](https://github.com/appscode/guard/pull/239) ([weinong](https://github.com/weinong))
- Implement On-Behalf-Of \(OBO\) flow [\#236](https://github.com/appscode/guard/pull/236) ([weinong](https://github.com/weinong))
- Update client-go to kubernetes-1.16.3 [\#234](https://github.com/appscode/guard/pull/234) ([tamalsaha](https://github.com/tamalsaha))
- fix small errors [\#233](https://github.com/appscode/guard/pull/233) ([torubylist](https://github.com/torubylist))
- Fix Linter Issues [\#231](https://github.com/appscode/guard/pull/231) ([faem](https://github.com/faem))
- Various Makefile improvements [\#230](https://github.com/appscode/guard/pull/230) ([tamalsaha](https://github.com/tamalsaha))
- Templatize front matter [\#229](https://github.com/appscode/guard/pull/229) ([tamalsaha](https://github.com/tamalsaha))
- migrate from apps/v1beta1 to apps/v1 [\#225](https://github.com/appscode/guard/pull/225) ([qw1mb0](https://github.com/qw1mb0))
- Fix LDAP test [\#223](https://github.com/appscode/guard/pull/223) ([nightfury1204](https://github.com/nightfury1204))
- Add Makefile [\#222](https://github.com/appscode/guard/pull/222) ([tamalsaha](https://github.com/tamalsaha))
- Use absolute path as aliases for reference docs [\#221](https://github.com/appscode/guard/pull/221) ([tamalsaha](https://github.com/tamalsaha))
- Update to k8s 1.14.0 client libraries using go.mod [\#219](https://github.com/appscode/guard/pull/219) ([tamalsaha](https://github.com/tamalsaha))
- Update Kubernetes client libraries to 1.13.5 [\#218](https://github.com/appscode/guard/pull/218) ([tamalsaha](https://github.com/tamalsaha))
- fix typo [\#216](https://github.com/appscode/guard/pull/216) ([zabio3](https://github.com/zabio3))
- typo in error command the it should be -o [\#214](https://github.com/appscode/guard/pull/214) ([kanolato](https://github.com/kanolato))

## [0.4.0](https://github.com/appscode/guard/tree/0.4.0) (2019-02-04)
[Full Changelog](https://github.com/appscode/guard/compare/0.3.0...0.4.0)

**Closed issues:**

- Support Azure Active Directory in sovereign cloud  [\#208](https://github.com/appscode/guard/issues/208)
- Dependabot couldn't find a Gopkg.toml for this project [\#205](https://github.com/appscode/guard/issues/205)

**Merged pull requests:**

- Prepare docs for 0.4.0 release [\#213](https://github.com/appscode/guard/pull/213) ([tamalsaha](https://github.com/tamalsaha))
- Document how to use Azure sovereign cloud instances [\#212](https://github.com/appscode/guard/pull/212) ([tamalsaha](https://github.com/tamalsaha))
- Revendor dependencies [\#211](https://github.com/appscode/guard/pull/211) ([tamalsaha](https://github.com/tamalsaha))
- Add a little bit more guidance for users. [\#210](https://github.com/appscode/guard/pull/210) ([coderanger](https://github.com/coderanger))
- Support aad sovereign clouds [\#209](https://github.com/appscode/guard/pull/209) ([karataliu](https://github.com/karataliu))

## [0.3.0](https://github.com/appscode/guard/tree/0.3.0) (2018-12-03)
[Full Changelog](https://github.com/appscode/guard/compare/0.2.1...0.3.0)

**Fixed bugs:**

- Fix panic if there is no $HOME/.kube/config [\#179](https://github.com/appscode/guard/pull/179) ([nightfury1204](https://github.com/nightfury1204))

**Closed issues:**

- Github connector docs asks for unnecessary public\_repo permissions [\#195](https://github.com/appscode/guard/issues/195)
- Guard should not log password/secrets [\#194](https://github.com/appscode/guard/issues/194)
- Issues with LDAP and guard get installer [\#193](https://github.com/appscode/guard/issues/193)
- Dependabot couldn't find a Gopkg.toml for this project [\#191](https://github.com/appscode/guard/issues/191)
- Guard crashes multiple times a day [\#190](https://github.com/appscode/guard/issues/190)
- Missing binaries for 0.2.1 guard-darwin [\#189](https://github.com/appscode/guard/issues/189)
- Guard pod keeps restarting ~ every 8 hours [\#187](https://github.com/appscode/guard/issues/187)
- Logo Proposal for Guard [\#184](https://github.com/appscode/guard/issues/184)
- Using Gitlab's full\_path instead of name while using authentication by Groups [\#181](https://github.com/appscode/guard/issues/181)
- panic: assignment to entry in nil map [\#178](https://github.com/appscode/guard/issues/178)

**Merged pull requests:**

- Use docker build --pull [\#204](https://github.com/appscode/guard/pull/204) ([tamalsaha](https://github.com/tamalsaha))
- Prepare docs for 0.3.0 release [\#203](https://github.com/appscode/guard/pull/203) ([tamalsaha](https://github.com/tamalsaha))
- Fix Gitlab tests [\#202](https://github.com/appscode/guard/pull/202) ([tamalsaha](https://github.com/tamalsaha))
- Support group id or full\_path for Gitlab connector [\#201](https://github.com/appscode/guard/pull/201) ([tamalsaha](https://github.com/tamalsaha))
- Document Github connector permissions to read:org [\#200](https://github.com/appscode/guard/pull/200) ([tamalsaha](https://github.com/tamalsaha))
- Redact password/secrets when dumping flags. [\#199](https://github.com/appscode/guard/pull/199) ([tamalsaha](https://github.com/tamalsaha))
- Revendor and run gofmt [\#198](https://github.com/appscode/guard/pull/198) ([tamalsaha](https://github.com/tamalsaha))
- Set periodic analytics [\#197](https://github.com/appscode/guard/pull/197) ([tamalsaha](https://github.com/tamalsaha))
- Update Kubernetes client libraries to 1.12.0 [\#196](https://github.com/appscode/guard/pull/196) ([tamalsaha](https://github.com/tamalsaha))
- Typos [\#192](https://github.com/appscode/guard/pull/192) ([tmatias](https://github.com/tmatias))
- Use kubernetes-1.11.3 [\#188](https://github.com/appscode/guard/pull/188) ([tamalsaha](https://github.com/tamalsaha))
- Add readme images to logo folder [\#186](https://github.com/appscode/guard/pull/186) ([tamalsaha](https://github.com/tamalsaha))
- Add Logos for Guard [\#185](https://github.com/appscode/guard/pull/185) ([area55git](https://github.com/area55git))
- Cleanup error handling for Azure provider [\#182](https://github.com/appscode/guard/pull/182) ([tamalsaha](https://github.com/tamalsaha))
- Log userinfo at glog.V\(10\) [\#180](https://github.com/appscode/guard/pull/180) ([tamalsaha](https://github.com/tamalsaha))

## [0.2.1](https://github.com/appscode/guard/tree/0.2.1) (2018-07-10)
[Full Changelog](https://github.com/appscode/guard/compare/0.2.0...0.2.1)

**Closed issues:**

- Support B2B auth for Azure provider by supporting both `oid` or `upn` claims in the token [\#170](https://github.com/appscode/guard/issues/170)
- Update kops docs [\#142](https://github.com/appscode/guard/issues/142)

**Merged pull requests:**

- Fix hugo frontmatter [\#177](https://github.com/appscode/guard/pull/177) ([tamalsaha](https://github.com/tamalsaha))
- Prepare 0.2.1 release [\#176](https://github.com/appscode/guard/pull/176) ([tamalsaha](https://github.com/tamalsaha))
- Format shell scripts [\#175](https://github.com/appscode/guard/pull/175) ([tamalsaha](https://github.com/tamalsaha))
- Use client-go v8.0.0 [\#173](https://github.com/appscode/guard/pull/173) ([tamalsaha](https://github.com/tamalsaha))
- Enable B2B auth for Azure provider by supporting either `oid` or `upn` claim in the token [\#172](https://github.com/appscode/guard/pull/172) ([amanohar](https://github.com/amanohar))
- Add missing image in azure [\#169](https://github.com/appscode/guard/pull/169) ([nightfury1204](https://github.com/nightfury1204))

## [0.2.0](https://github.com/appscode/guard/tree/0.2.0) (2018-06-22)
[Full Changelog](https://github.com/appscode/guard/compare/0.1.4...0.2.0)

**Closed issues:**

- Use a GUARD\_PKI\_DIR env variable [\#158](https://github.com/appscode/guard/issues/158)
- Azure AAD auth provider is using AAD group's displayName instead of unique objectId for auth [\#153](https://github.com/appscode/guard/issues/153)

**Merged pull requests:**

- Prepare 0.2.0 release [\#168](https://github.com/appscode/guard/pull/168) ([tamalsaha](https://github.com/tamalsaha))
- Fix flaky LDAP tests [\#167](https://github.com/appscode/guard/pull/167) ([tamalsaha](https://github.com/tamalsaha))
- Fix bad pointer in frame ldap.handleBind [\#166](https://github.com/appscode/guard/pull/166) ([tamalsaha](https://github.com/tamalsaha))
- Document --azure.use-group-uid flag [\#165](https://github.com/appscode/guard/pull/165) ([tamalsaha](https://github.com/tamalsaha))
- Add GUARD\_DATA\_DIR env variable [\#164](https://github.com/appscode/guard/pull/164) ([tamalsaha](https://github.com/tamalsaha))
- Various fixed based on goreportcard [\#163](https://github.com/appscode/guard/pull/163) ([tamalsaha](https://github.com/tamalsaha))
- Fix test command in make.py [\#162](https://github.com/appscode/guard/pull/162) ([tamalsaha](https://github.com/tamalsaha))
- Skip e2e tests from travis. [\#161](https://github.com/appscode/guard/pull/161) ([tamalsaha](https://github.com/tamalsaha))
- Fix formatting error [\#160](https://github.com/appscode/guard/pull/160) ([tamalsaha](https://github.com/tamalsaha))
- Fix test [\#159](https://github.com/appscode/guard/pull/159) ([nightfury1204](https://github.com/nightfury1204))
- Vendor aws sdk [\#157](https://github.com/appscode/guard/pull/157) ([tamalsaha](https://github.com/tamalsaha))
- User auth info added for AWS EKS [\#150](https://github.com/appscode/guard/pull/150) ([sanjid133](https://github.com/sanjid133))

## [0.1.4](https://github.com/appscode/guard/tree/0.1.4) (2018-06-20)
[Full Changelog](https://github.com/appscode/guard/compare/0.1.3...0.1.4)

**Closed issues:**

- NTP sync causing periodic crashes [\#143](https://github.com/appscode/guard/issues/143)
- Hardcoded Oauth client/secret for google? [\#138](https://github.com/appscode/guard/issues/138)
- Add paging to get around directoryObjects.getByIds limit of 1000 [\#132](https://github.com/appscode/guard/issues/132)

**Merged pull requests:**

- Prepare docs for 0.1.4 release [\#155](https://github.com/appscode/guard/pull/155) ([tamalsaha](https://github.com/tamalsaha))
- Allow Azure AAD auth provider to use AAD group ids instead of display name for authn/authz [\#154](https://github.com/appscode/guard/pull/154) ([amanohar](https://github.com/amanohar))

## [0.1.3](https://github.com/appscode/guard/tree/0.1.3) (2018-06-06)
[Full Changelog](https://github.com/appscode/guard/compare/0.1.2...0.1.3)

**Merged pull requests:**

- Prepare docs for 0.1.3 [\#147](https://github.com/appscode/guard/pull/147) ([tamalsaha](https://github.com/tamalsaha))
- Support ntp server as flag [\#145](https://github.com/appscode/guard/pull/145) ([tamalsaha](https://github.com/tamalsaha))
- Increase NTP clock skew to 2 min and check every 10 min [\#144](https://github.com/appscode/guard/pull/144) ([tamalsaha](https://github.com/tamalsaha))
- Fix typo [\#141](https://github.com/appscode/guard/pull/141) ([ryuheechul](https://github.com/ryuheechul))
- Fix a typo in kubectl invocation [\#137](https://github.com/appscode/guard/pull/137) ([farcaller](https://github.com/farcaller))

## [0.1.2](https://github.com/appscode/guard/tree/0.1.2) (2018-05-04)
[Full Changelog](https://github.com/appscode/guard/compare/0.1.1...0.1.2)

**Merged pull requests:**

- Update docs for 0.1.2 release [\#136](https://github.com/appscode/guard/pull/136) ([tamalsaha](https://github.com/tamalsaha))
- Update client-go to 7.0.0 \(Kubernetes 1.10\) [\#135](https://github.com/appscode/guard/pull/135) ([tamalsaha](https://github.com/tamalsaha))
- Add paging to get around directoryObjects.getByIds limit of 1000 [\#133](https://github.com/appscode/guard/pull/133) ([amanohar](https://github.com/amanohar))

## [0.1.1](https://github.com/appscode/guard/tree/0.1.1) (2018-04-20)
[Full Changelog](https://github.com/appscode/guard/compare/0.1.0...0.1.1)

**Fixed bugs:**

- Error: guard does not provide service for github [\#127](https://github.com/appscode/guard/issues/127)

**Closed issues:**

- Test the big switch statement in server handler [\#96](https://github.com/appscode/guard/issues/96)

**Merged pull requests:**

- Prepare docs for 0.1.1 release [\#130](https://github.com/appscode/guard/pull/130) ([tamalsaha](https://github.com/tamalsaha))
- Revendor dependencies [\#129](https://github.com/appscode/guard/pull/129) ([tamalsaha](https://github.com/tamalsaha))
- Add auth provider case insensitive check [\#128](https://github.com/appscode/guard/pull/128) ([nightfury1204](https://github.com/nightfury1204))
- Improve azure auth provider docs [\#126](https://github.com/appscode/guard/pull/126) ([tamalsaha](https://github.com/tamalsaha))
- Revert "Use image with tag 0.1.0 not canary" [\#125](https://github.com/appscode/guard/pull/125) ([tamalsaha](https://github.com/tamalsaha))
- Use image with tag 0.1.0 not canary [\#124](https://github.com/appscode/guard/pull/124) ([potsbo](https://github.com/potsbo))
- Guard Installation guide for Kubernetes Clusters built with Kubespray [\#123](https://github.com/appscode/guard/pull/123) ([vikas027](https://github.com/vikas027))
- Update docs to indicate node selector bug in Kubespray [\#122](https://github.com/appscode/guard/pull/122) ([tamalsaha](https://github.com/tamalsaha))
- fix error glog undefined [\#119](https://github.com/appscode/guard/pull/119) ([nightfury1204](https://github.com/nightfury1204))
- Generate flag methods using go-enum [\#118](https://github.com/appscode/guard/pull/118) ([tamalsaha](https://github.com/tamalsaha))
- Use github.com/golang/glog library [\#117](https://github.com/appscode/guard/pull/117) ([tamalsaha](https://github.com/tamalsaha))
- Add simple Grafana Dashboard for Guard [\#116](https://github.com/appscode/guard/pull/116) ([alexanderdavidsen](https://github.com/alexanderdavidsen))
- Documentation: how to create serviceMonitors for prometheus-operator [\#115](https://github.com/appscode/guard/pull/115) ([alexanderdavidsen](https://github.com/alexanderdavidsen))
- Add test for auth provider client [\#114](https://github.com/appscode/guard/pull/114) ([nightfury1204](https://github.com/nightfury1204))
- Fix metrics spelling [\#113](https://github.com/appscode/guard/pull/113) ([tamalsaha](https://github.com/tamalsaha))
- Update cli reference docs [\#112](https://github.com/appscode/guard/pull/112) ([tamalsaha](https://github.com/tamalsaha))
- Update GitLab documentation to clarify the usage of base-url [\#111](https://github.com/appscode/guard/pull/111) ([alexanderdavidsen](https://github.com/alexanderdavidsen))

## [0.1.0](https://github.com/appscode/guard/tree/0.1.0) (2018-04-04)
[Full Changelog](https://github.com/appscode/guard/compare/0.1.0-rc.5...0.1.0)

**Closed issues:**

- Refactor token command [\#92](https://github.com/appscode/guard/issues/92)
- Enable code coverage tests [\#84](https://github.com/appscode/guard/issues/84)
- Check NTP perodically [\#83](https://github.com/appscode/guard/issues/83)
- Gitlab [\#53](https://github.com/appscode/guard/issues/53)
- Expose metrics via Prometheus [\#52](https://github.com/appscode/guard/issues/52)
- Run guard in its own namespace [\#29](https://github.com/appscode/guard/issues/29)
- Support basic auth / token auth [\#28](https://github.com/appscode/guard/issues/28)
- Run guard on master by default [\#19](https://github.com/appscode/guard/issues/19)
- Installer.yaml should use /healthz checks. [\#17](https://github.com/appscode/guard/issues/17)
- Support LDAP [\#11](https://github.com/appscode/guard/issues/11)
- Support Azure Active Directory / Office365 [\#10](https://github.com/appscode/guard/issues/10)
- Fix installer [\#91](https://github.com/appscode/guard/issues/91)
- Kerberos [\#58](https://github.com/appscode/guard/issues/58)
- Is the google auth actually working/tested? [\#36](https://github.com/appscode/guard/issues/36)
- Document how to fix bad certificate issue [\#21](https://github.com/appscode/guard/issues/21)
- Fuzz server [\#14](https://github.com/appscode/guard/issues/14)

**Merged pull requests:**

- Support lowercase match for LDAP auth choice [\#110](https://github.com/appscode/guard/pull/110) ([tamalsaha](https://github.com/tamalsaha))
- Update changelog [\#108](https://github.com/appscode/guard/pull/108) ([tamalsaha](https://github.com/tamalsaha))
- Update readme. [\#107](https://github.com/appscode/guard/pull/107) ([tamalsaha](https://github.com/tamalsaha))
- Prepare docs for 0.1.0 [\#106](https://github.com/appscode/guard/pull/106) ([tamalsaha](https://github.com/tamalsaha))
- Reorder auth providers [\#105](https://github.com/appscode/guard/pull/105) ([tamalsaha](https://github.com/tamalsaha))
- Update docs [\#104](https://github.com/appscode/guard/pull/104) ([nightfury1204](https://github.com/nightfury1204))
- Add e2e tests [\#103](https://github.com/appscode/guard/pull/103) ([tamalsaha](https://github.com/tamalsaha))
- Use a global var for pki dir [\#102](https://github.com/appscode/guard/pull/102) ([tamalsaha](https://github.com/tamalsaha))
- Fix installer issues [\#101](https://github.com/appscode/guard/pull/101) ([tamalsaha](https://github.com/tamalsaha))
- Refactor commands [\#99](https://github.com/appscode/guard/pull/99) ([tamalsaha](https://github.com/tamalsaha))
- Add kerberos authentication for LDAP [\#98](https://github.com/appscode/guard/pull/98) ([nightfury1204](https://github.com/nightfury1204))
- Refactor token command [\#93](https://github.com/appscode/guard/pull/93) ([tamalsaha](https://github.com/tamalsaha))
- Add coverage tracking using codecov.io [\#90](https://github.com/appscode/guard/pull/90) ([tamalsaha](https://github.com/tamalsaha))
- Add prometheus metrics [\#89](https://github.com/appscode/guard/pull/89) ([tamalsaha](https://github.com/tamalsaha))
- concourse-ci pipeline [\#87](https://github.com/appscode/guard/pull/87) ([tahsinrahman](https://github.com/tahsinrahman))
- Update docs [\#85](https://github.com/appscode/guard/pull/85) ([nightfury1204](https://github.com/nightfury1204))
- Reorg codebase [\#82](https://github.com/appscode/guard/pull/82) ([tamalsaha](https://github.com/tamalsaha))
- Use github.com/json-iterator/go [\#81](https://github.com/appscode/guard/pull/81) ([tamalsaha](https://github.com/tamalsaha))
- Simplify use cluster command [\#80](https://github.com/appscode/guard/pull/80) ([tamalsaha](https://github.com/tamalsaha))
- Ensure max clock skew is no more than 5 sec [\#79](https://github.com/appscode/guard/pull/79) ([tamalsaha](https://github.com/tamalsaha))
- Add travis.yml [\#78](https://github.com/appscode/guard/pull/78) ([tamalsaha](https://github.com/tamalsaha))
- Add test for google [\#77](https://github.com/appscode/guard/pull/77) ([nightfury1204](https://github.com/nightfury1204))
- Validate google IDToken [\#74](https://github.com/appscode/guard/pull/74) ([nightfury1204](https://github.com/nightfury1204))
- Print id\_token & refresh\_token for Google [\#73](https://github.com/appscode/guard/pull/73) ([tamalsaha](https://github.com/tamalsaha))
- Add test for LDAP [\#70](https://github.com/appscode/guard/pull/70) ([nightfury1204](https://github.com/nightfury1204))
- Bug fixes and add CA cert flag for LDAP [\#69](https://github.com/appscode/guard/pull/69) ([nightfury1204](https://github.com/nightfury1204))
- Add test for azure [\#68](https://github.com/appscode/guard/pull/68) ([nightfury1204](https://github.com/nightfury1204))
- Add test for token auth [\#67](https://github.com/appscode/guard/pull/67) ([nightfury1204](https://github.com/nightfury1204))
- Add test for gitlab [\#66](https://github.com/appscode/guard/pull/66) ([nightfury1204](https://github.com/nightfury1204))
- Add test for github [\#65](https://github.com/appscode/guard/pull/65) ([nightfury1204](https://github.com/nightfury1204))
- Add docs to configure guard for Azure ADDS LDAPS [\#64](https://github.com/appscode/guard/pull/64) ([nightfury1204](https://github.com/nightfury1204))
- Use authentication/v1 api [\#63](https://github.com/appscode/guard/pull/63) ([tamalsaha](https://github.com/tamalsaha))
- Various fixes to installer [\#62](https://github.com/appscode/guard/pull/62) ([tamalsaha](https://github.com/tamalsaha))
- Fix Google groups detection [\#61](https://github.com/appscode/guard/pull/61) ([tamalsaha](https://github.com/tamalsaha))
- Various fixes [\#60](https://github.com/appscode/guard/pull/60) ([tamalsaha](https://github.com/tamalsaha))
- Add support for LDAP [\#59](https://github.com/appscode/guard/pull/59) ([nightfury1204](https://github.com/nightfury1204))
- Add support for Azure [\#57](https://github.com/appscode/guard/pull/57) ([nightfury1204](https://github.com/nightfury1204))
- Add support for static token file authentication [\#56](https://github.com/appscode/guard/pull/56) ([nightfury1204](https://github.com/nightfury1204))
- Update client-go to v6.0.0 [\#55](https://github.com/appscode/guard/pull/55) ([tamalsaha](https://github.com/tamalsaha))
- Gitlab [\#54](https://github.com/appscode/guard/pull/54) ([nightfury1204](https://github.com/nightfury1204))
- Document how to use kube-dns to connect api server to guard server [\#47](https://github.com/appscode/guard/pull/47) ([tamalsaha](https://github.com/tamalsaha))

## [0.1.0-rc.5](https://github.com/appscode/guard/tree/0.1.0-rc.5) (2018-01-04)
[Full Changelog](https://github.com/appscode/guard/compare/0.1.0-rc.4...0.1.0-rc.5)

**Closed issues:**

- kops [\#34](https://github.com/appscode/guard/issues/34)
- Document how to use with kops [\#18](https://github.com/appscode/guard/issues/18)

**Merged pull requests:**

- Prepare docs for 0.1.0-rc.5 [\#51](https://github.com/appscode/guard/pull/51) ([tamalsaha](https://github.com/tamalsaha))
- Fix client id generation [\#49](https://github.com/appscode/guard/pull/49) ([tamalsaha](https://github.com/tamalsaha))
- Reorganize & write front matter for 0.1.0-rc.5 [\#48](https://github.com/appscode/guard/pull/48) ([sajibcse68](https://github.com/sajibcse68))
- Use clientcmd apis to generate webhook config [\#46](https://github.com/appscode/guard/pull/46) ([tamalsaha](https://github.com/tamalsaha))
- Use client scheme to convert to YAML [\#45](https://github.com/appscode/guard/pull/45) ([tamalsaha](https://github.com/tamalsaha))
- Use cert store from kutil [\#44](https://github.com/appscode/guard/pull/44) ([tamalsaha](https://github.com/tamalsaha))
- Add kops documentation [\#43](https://github.com/appscode/guard/pull/43) ([thomaspeitz](https://github.com/thomaspeitz))
- Format error messages [\#42](https://github.com/appscode/guard/pull/42) ([tamalsaha](https://github.com/tamalsaha))
- Generate RBAC roles in installer [\#41](https://github.com/appscode/guard/pull/41) ([tamalsaha](https://github.com/tamalsaha))
- Simplify ClientID generation for analytics [\#40](https://github.com/appscode/guard/pull/40) ([tamalsaha](https://github.com/tamalsaha))
- Correctly set analytics clientID [\#39](https://github.com/appscode/guard/pull/39) ([tamalsaha](https://github.com/tamalsaha))
- Update appscode.com api pkg paths [\#38](https://github.com/appscode/guard/pull/38) ([tamalsaha](https://github.com/tamalsaha))
- Add front mater for docs 0.1.0-rc.4 [\#35](https://github.com/appscode/guard/pull/35) ([sajibcse68](https://github.com/sajibcse68))
- Add front matter for guard cli [\#33](https://github.com/appscode/guard/pull/33) ([tamalsaha](https://github.com/tamalsaha))
- Remove expiration time for appscode token by using validation [\#32](https://github.com/appscode/guard/pull/32) ([sanjid133](https://github.com/sanjid133))
- Cleanup dependencies [\#31](https://github.com/appscode/guard/pull/31) ([tamalsaha](https://github.com/tamalsaha))
- Add appscode authenticator [\#30](https://github.com/appscode/guard/pull/30) ([sanjid133](https://github.com/sanjid133))
- Use client-go 5.x [\#27](https://github.com/appscode/guard/pull/27) ([tamalsaha](https://github.com/tamalsaha))

## [0.1.0-rc.4](https://github.com/appscode/guard/tree/0.1.0-rc.4) (2017-09-25)
[Full Changelog](https://github.com/appscode/guard/compare/0.1.0-rc.3...0.1.0-rc.4)

**Merged pull requests:**

- Add release.sh script [\#26](https://github.com/appscode/guard/pull/26) ([tamalsaha](https://github.com/tamalsaha))
- Add --pki-dir flag [\#25](https://github.com/appscode/guard/pull/25) ([tamalsaha](https://github.com/tamalsaha))
- Revendor dependencies. [\#24](https://github.com/appscode/guard/pull/24) ([tamalsaha](https://github.com/tamalsaha))
- Fix docs of Developer-guide [\#23](https://github.com/appscode/guard/pull/23) ([the-redback](https://github.com/the-redback))

## [0.1.0-rc.3](https://github.com/appscode/guard/tree/0.1.0-rc.3) (2017-09-07)
[Full Changelog](https://github.com/appscode/guard/compare/0.1.0-rc.2...0.1.0-rc.3)

## [0.1.0-rc.2](https://github.com/appscode/guard/tree/0.1.0-rc.2) (2017-09-01)
[Full Changelog](https://github.com/appscode/guard/compare/0.1.0-rc.1...0.1.0-rc.2)

**Merged pull requests:**

- Make sure user of member of Github org or GSuite domain [\#22](https://github.com/appscode/guard/pull/22) ([tamalsaha](https://github.com/tamalsaha))

## [0.1.0-rc.1](https://github.com/appscode/guard/tree/0.1.0-rc.1) (2017-08-30)
[Full Changelog](https://github.com/appscode/guard/compare/0.1.0-rc.0...0.1.0-rc.1)

**Merged pull requests:**

- Improve logging for Guard server [\#20](https://github.com/appscode/guard/pull/20) ([tamalsaha](https://github.com/tamalsaha))

## [0.1.0-rc.0](https://github.com/appscode/guard/tree/0.1.0-rc.0) (2017-08-29)
[Full Changelog](https://github.com/appscode/guard/compare/0.1.0-alpha.0...0.1.0-rc.0)

**Merged pull requests:**

- Document ClusterIP choice [\#16](https://github.com/appscode/guard/pull/16) ([tamalsaha](https://github.com/tamalsaha))
- Various fixes  [\#15](https://github.com/appscode/guard/pull/15) ([tamalsaha](https://github.com/tamalsaha))
- Refactor handlers [\#12](https://github.com/appscode/guard/pull/12) ([tamalsaha](https://github.com/tamalsaha))

## [0.1.0-alpha.0](https://github.com/appscode/guard/tree/0.1.0-alpha.0) (2017-08-28)
**Closed issues:**

- Gtihub Teams [\#2](https://github.com/appscode/guard/issues/2)
- Retrieve all Google groups for a member [\#1](https://github.com/appscode/guard/issues/1)

**Merged pull requests:**

- Add tutorial [\#9](https://github.com/appscode/guard/pull/9) ([tamalsaha](https://github.com/tamalsaha))
- Add kubectl commands. [\#8](https://github.com/appscode/guard/pull/8) ([tamalsaha](https://github.com/tamalsaha))
- Add docs. [\#7](https://github.com/appscode/guard/pull/7) ([tamalsaha](https://github.com/tamalsaha))
- Add `get` commands [\#6](https://github.com/appscode/guard/pull/6) ([tamalsaha](https://github.com/tamalsaha))
- Revise docs [\#5](https://github.com/appscode/guard/pull/5) ([tamalsaha](https://github.com/tamalsaha))
- Implement authN webhook for Google and Github [\#4](https://github.com/appscode/guard/pull/4) ([tamalsaha](https://github.com/tamalsaha))
- Implement init commands [\#3](https://github.com/appscode/guard/pull/3) ([tamalsaha](https://github.com/tamalsaha))

\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*

repository: manashmandal/guard

repo_name: manashmandal/guard


text:
## nsc revocations add_user

Revoke a user

### Synopsis

Revoke a user

```
nsc revocations add_user [flags]
```

### Options

```
  -a, --account string   account name
      --at int           revokes all user credentials created before a Unix timestamp ('0' is treated as now)
  -h, --help             help for add_user
  -n, --name string      user name
```

### Options inherited from parent commands

```
  -i, --interactive          ask questions for various settings
  -K, --private-key string   private key
```

### SEE ALSO

* [nsc revocations](nsc_revocations.md)	 - Manage revocation for users and activations from an account

###### Auto generated by spf13/cobra on 26-Nov-2019

repository: nats-io/nsc

branch_name: refs/heads/main

gha_language: Go

repo_name: nats-io/nsc


text:
+++
title = "aws_route53_record_set Resource"
platform = "aws"
draft = false
gh_repo = "inspec-aws"

[menu.inspec]
title = "aws_route53_record_set"
identifier = "inspec/resources/aws/aws_route53_record_set Resource"
parent = "inspec/resources/aws"
+++

Use the `aws_route53_record_set` InSpec audit resource to test properties of a single specific AWS Route53 record set.

The `AWS::Route53::RecordSet` resource specifies information about the record that you want to create.

For additional information, including details on parameters and properties, see the [AWS documentation on AWS Route53 Record Set](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html).

## Installation

{{% inspec_aws_install %}}

## Syntax

Ensure that a record exists.

```ruby
describe aws_route53_record_set(hosted_zone_id: 'HOSTED_ZONE_ID', start_record_name: 'RECORD_SET_NAME') do
  it { should exist }
end
```

## Parameters

`hosted_zone_id` _(required)

: The ID of the hosted zone that contains the resource record sets that you want to list.

`start_record_name` _(required)_

: The name of the record set.

## Properties

`name`
: The name of a record in the specified hosted zone.

`type`
: The DNS record type.

`set_identifier`
: In a group of resource record sets that have the same name and type, the value of SetIdentifier must be unique for each resource record set.

`weight`
: The weight element for every weighted resource record set.

`region`
: The Amazon EC2 Region of the record set.

`geo_location (continent_code)`
: The two-letter code for the continent. Amazon Route 53 supports the following continent codes: `AF`: Africa, `AN`: Antarctica, `AS`: Asia, `EU`: Europe, `OC`: Oceania, `NA`: North America, `SA`: South America.

`geo_location (country_code)`
: The [two-letter code for a country](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).

`geo_location (subdivision_code)`
: The [two-letter code for a state](https://pe.usps.com/text/pub28/28apb.htm) of the United States.

`failover`
: The failover configuration of resource record set. Valid values are `PRIMARY` and `SECONDARY`.

`multi_value_answer`
: Whether the resource is a Multivalue answer resource record set. Valid values: `true` or `false`.

`ttl`
: The resource record cache time to live (TTL), in seconds.

`resource_records`
: Information about the resource records to act upon.

`alias_target (hosted_zone_id)`
: Alias resource record sets only: The hosted zone ID of the resource.

`alias_target (dns_name)`
: Alias resource record sets only: The applicable domain name for your API.

`alias_target (evaluate_target_health)`
: Applies only to alias, failover alias, geolocation alias, latency alias, and weighted alias resource record sets: When `EvaluateTargetHealth` is `true`, an alias resource record set inherits the health of the referenced AWS resource, such as an ELB load balancer or another resource record set in the hosted zone. Valid values: `true` or `false`.

`health_check_id`
: The ID of a health check.

`traffic_policy_instance_id`
: The ID of the traffic policy instance. When you create a traffic policy instance, Amazon Route 53 automatically creates a resource record set. `TrafficPolicyInstanceId` is the ID of the traffic policy instance that Route 53 created this resource record set for.

## Examples

**Ensure a record is available.**

```ruby
describe aws_route53_record_set(hosted_zone_id: 'HOSTED_ZONE_ID', start_record_name: 'RECORD_SET_NAME') do
  its('name') { should eq 'RECORD_SET_NAME' }
end
```

**Ensure that the failover is `PRIMARY`.**

```ruby
describe aws_route53_record_set(hosted_zone_id: 'HOSTED_ZONE_ID', start_record_name: 'RECORD_SET_NAME') do
    its('failover') { should eq 'PRIMARY' }
end
```

## Matchers

{{% inspec_matchers_link %}}

The controls will pass if the `list` method returns at least one result.

### exist

Use `should` to test that the entity exists.

```ruby
describe aws_route53_record_set(hosted_zone_id: 'HOSTED_ZONE_ID', start_record_name: 'RECORD_SET_NAME') do
  it { should exist }
end
```

Use `should_not` to test the entity does not exist.

```ruby
describe aws_route53_record_set(hosted_zone_id: 'HOSTED_ZONE_ID', start_record_name: 'RECORD_SET_NAME') do
  it { should_not exist }
end
```

### be_available

Use `should` to check if the record name is available.

```ruby
describe aws_route53_record_set(hosted_zone_id: 'HOSTED_ZONE_ID', start_record_name: 'RECORD_SET_NAME') do
  it { should be_available }
end
```

## AWS Permissions

{{% aws_permissions_principal action="Route53:Client:ListResourceRecordSetsResponse" %}}

repository: inspec/inspec-aws

gha_language: Ruby

repo_name: inspec/inspec-aws


text:
---
title: Building a Clojure project
layout: fr
permalink: clojure/
---

### Provided tools

Travis VMs provide

* 32-bit OpenJDK 6
* [Leiningen](https://github.com/technomancy/leiningen) 1.6.x.

### Setting up a Clojure project on travis-ci.org

Clojure projects on travis-ci.org are managed with [Leiningen](https://github.com/technomancy/leiningen). Typical build then has two operations:

 * lein deps
 * lein test

The first command installs the project's [dependencies as listed in the project.clj file](https://github.com/technomancy/leiningen/blob/master/sample.project.clj). The second command runs the test suite.
Projects that find this sufficient can use a very minimalistic .travis.yml file:

    language: clojure

If you need a more fine-grained setup, specify operations to use in your .travis.yml like this:

    language: clojure
    before_script: "lein deps && lein build-jni-extensions"
    script: "lein test && lein integration-test"

### Examples

 * [michaelklishin/langohr](https://github.com/michaelklishin/langohr/blob/master/.travis.yml)


text:
---
layout: post
title: Startup Weekend Austin
excerpt:
category:
---
I got the honor of being one of the three judges at [Startup Weekend Austin][] today.  There were 10 different groups each presenting a company that they had incubated over the weekend.  The ideas were mostly good, some were downright hilarious and a few seemed to have legs.  I don't know that I'd go out and invest in any one of them, but I'd certainly consider taking equity in return for a role as an advisor.

Microsoft hosted the event in their new offices in North Austin and they did a great job providing a forum for these entrepreneurs to work in.  Many came from outside of Austin, Dallas, San Antonio and even one guy from Oklahoma.  Most had day jobs and a few were actually fairly successful and looking for something a bit more challenging that their usual routine.

It was fun and in the end we had to choose a winner.  Not easy, but that is the way the game works.

[Startup Weekend Austin]:http://austin.startupweekend.org/about/

repository: joshkerr/octopress

extension: markdown

gha_language: JavaScript

repo_name: joshkerr/octopress


text:
# React Cash flow.

Is an App for financial control built in ReactJS using real-time firebase database to control inflow and outflow,
with possibility to filter the monthly flow and also present a graphical dashboard.

## Built With

- [ReactJS](https://reactjs.org) - ReactJS
- [styled-components](http://styled-components.com/) - styled-components
- [Firebase](https://firebase.google.com/) - Firebase
- [ChartJS](https://www.chartjs.org/) - ChartJS

## Install

First, clone the repo via git:

```bash
git clone --depth=1 https://github.com/mariorodeghiero/react-cash-flow.git your-project-name
```

And then install dependencies with yarn.

```bash
$ cd your-project-name
$ yarn
```

**Note**: If you can't use [yarn](https://github.com/yarnpkg/yarn), run `npm install`.

## Run

```bash
$ npm run start
```

or

```bash
$ yarn start
```

After run, the browser open window automatically at http://localhost:3000/

## Deployment

Run the command below to deploy, minimizing All Files.

```bash
$ npm run build
```

or

```bash
$ yarn build
```

## Contributing

Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.

## Author

- [Mário Antônio do Amaral Rodeghiero](https://github.com/mariorodeghiero)

## Contributors

| [![Mário Rodeghiero](https://avatars1.githubusercontent.com/u/24671133?s=88&v=4)](https://github.com/mariorodeghiero) |
| --------------------------------------------------------------------------------------------------------------------- |

| [Mário Rodeghiero](https://github.com/mariorodeghiero)

## License

This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details

repository: mariorodeghiero/react-cash-flow

repo_name: mariorodeghiero/react-cash-flow