<feed xmlns='http://www.w3.org/2005/Atom'>
<title>pakakeh.go, branch v0.21.0</title>
<subtitle>Collections of packages and tools for working with Go programming language.</subtitle>
<id>http://git.kilabit.info/pakakeh.go/atom?h=v0.21.0</id>
<link rel='self' href='http://git.kilabit.info/pakakeh.go/atom?h=v0.21.0'/>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/'/>
<updated>2020-12-05T21:11:04Z</updated>
<entry>
<title>Release share v0.21.0 (2020-12-06)</title>
<updated>2020-12-05T21:11:04Z</updated>
<author>
<name>Shulhan</name>
<email>m.shulhan@gmail.com</email>
</author>
<published>2020-12-05T21:11:04Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=11e7727cec1a94a57ecec541149c8c1b53ad95b4'/>
<id>urn:sha1:11e7727cec1a94a57ecec541149c8c1b53ad95b4</id>
<content type='text'>
===  Breaking changes

* test: refactoring Assert with better error message

  The new Assert function use the reflect.DoEqual that return an error
  which describe which field have unmatched value.

===  New features

* http: allow Endpoint to register custom error handler

  The new field ErrorHandler on Endpoint allow the implementor to define
  their own function to handler error from Endpoint.Call.

  If the ErrorHandler is nil it will default to DefaultErrorHandler.

* totp: new package that implement TOTP protocol

  Package totp implement Time-Based One-Time Password Algorithm based on
  RFC 6238.

===  Bug fixes

* parser: fix Line method that always return non-empty line

  In case of content end without new line, for example "a\nb", the Line()
  method always return "b, 0" on the last line.

* smtp: update the expired test certificate

* websocket: create buffered channel for running queue.

  This is to fix Stop() method waiting for running channel to be consumed.

===  Enhancements

* big: update the latest expected error message with Go tip

* http: add an example on how to write custom HTTP status code

  The example show how to use http.ResponseWriter.WriteHeader to write
  custom HTTP status code instead of relying on errors.E.

* net: always return the host name or IP on ParseIPPort.

  Previously, if the address is an IP address the returned value is empty,
  for example "127.0.0.1" will return empty host but with non-nil IP and
  port.

  This changes always return the host either as host name (the same as
  paremeter) or valid IP address.

===  Chores

* all: replace the tasks to serve and generate docs using ciigo as library

  This way, one does not need to install ciigo binary, only require Go
  tools.
</content>
</entry>
<entry>
<title>all: replace the tasks to serve and generate docs using ciigo as library</title>
<updated>2020-12-05T20:49:02Z</updated>
<author>
<name>Shulhan</name>
<email>m.shulhan@gmail.com</email>
</author>
<published>2020-12-05T20:49:02Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=3f958900109323b8c66c2ee6847ba337f0b054bf'/>
<id>urn:sha1:3f958900109323b8c66c2ee6847ba337f0b054bf</id>
<content type='text'>
This way, one does not need to install ciigo binary, only require Go
tools.
</content>
</entry>
<entry>
<title>README: rewrite to make it readable on pkg.go.dev and sr.ht</title>
<updated>2020-12-05T20:20:22Z</updated>
<author>
<name>Shulhan</name>
<email>m.shulhan@gmail.com</email>
</author>
<published>2020-12-05T20:20:22Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=66069b9e49fe79f869e66037a9985905d7842f21'/>
<id>urn:sha1:66069b9e49fe79f869e66037a9985905d7842f21</id>
<content type='text'>
The "Documentation" section is moved as index.adoc on _doc directory.
</content>
</entry>
<entry>
<title>lib/totp: new package that implement TOTP protocol</title>
<updated>2020-12-03T11:22:43Z</updated>
<author>
<name>Shulhan</name>
<email>m.shulhan@gmail.com</email>
</author>
<published>2020-12-03T11:22:43Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=9c581567a0d2b134a163b84f2100f687398e5be7'/>
<id>urn:sha1:9c581567a0d2b134a163b84f2100f687398e5be7</id>
<content type='text'>
The implemenation of Time-based One-Time Password algorithm is based
on RFC 6238 [1].

[1] https://tools.ietf.org/html/rfc6238
</content>
</entry>
<entry>
<title>http: allow Endpoint to register custom error handler</title>
<updated>2020-11-27T12:49:50Z</updated>
<author>
<name>Shulhan</name>
<email>m.shulhan@gmail.com</email>
</author>
<published>2020-11-27T12:49:50Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=caa050939faabc96a7c5a7ca53d1f844d64d010d'/>
<id>urn:sha1:caa050939faabc96a7c5a7ca53d1f844d64d010d</id>
<content type='text'>
The new field ErrorHandler on Endpoint allow the implementor to define
their own function to handler error from Endpoint.Call.

If the ErrorHandler is nil it will default to DefaultErrorHandler.
</content>
</entry>
<entry>
<title>http: add an example on how to write custom HTTP status code</title>
<updated>2020-11-27T11:59:36Z</updated>
<author>
<name>Shulhan</name>
<email>m.shulhan@gmail.com</email>
</author>
<published>2020-11-27T11:59:36Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=e46ab6bc3b6aed18fd11269a578c7b9614fc2e4b'/>
<id>urn:sha1:e46ab6bc3b6aed18fd11269a578c7b9614fc2e4b</id>
<content type='text'>
The example show how to use http.ResponseWriter.WriteHeader to write
custom HTTP status code instead of relying on errors.E.
</content>
</entry>
<entry>
<title>websocket: create buffered channel for running queue</title>
<updated>2020-11-26T10:20:31Z</updated>
<author>
<name>Shulhan</name>
<email>m.shulhan@gmail.com</email>
</author>
<published>2020-11-26T10:20:31Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=0df82da7a8cd0678ed845f2284b7d3f84ba84687'/>
<id>urn:sha1:0df82da7a8cd0678ed845f2284b7d3f84ba84687</id>
<content type='text'>
This is to fix Stop() method waiting for running channel to be consumed.
</content>
</entry>
<entry>
<title>smtp: update the expired test certificate</title>
<updated>2020-11-22T17:34:11Z</updated>
<author>
<name>Shulhan</name>
<email>m.shulhan@gmail.com</email>
</author>
<published>2020-11-21T14:30:54Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=e8b3bf5ee6e9c4a68fb11a1d04aa082c0862a0e1'/>
<id>urn:sha1:e8b3bf5ee6e9c4a68fb11a1d04aa082c0862a0e1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>test: refactoring Assert with better error message</title>
<updated>2020-11-22T17:34:11Z</updated>
<author>
<name>Shulhan</name>
<email>m.shulhan@gmail.com</email>
</author>
<published>2020-11-16T13:18:04Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=dcf00280684899154b9633c946dc4efeede2ebf9'/>
<id>urn:sha1:dcf00280684899154b9633c946dc4efeede2ebf9</id>
<content type='text'>
The new Assert function use the reflect.DoEqual that return an error
which describe which field have unmatched value.

This changes affect other test that use "false" as the last parameter.
</content>
</entry>
<entry>
<title>paseto: add unit test to validate JSON token</title>
<updated>2020-11-15T08:33:51Z</updated>
<author>
<name>Shulhan</name>
<email>m.shulhan@gmail.com</email>
</author>
<published>2020-11-15T08:33:51Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=06c7987909976d799aa0ebb086fe22e34d44c13b'/>
<id>urn:sha1:06c7987909976d799aa0ebb086fe22e34d44c13b</id>
<content type='text'>
</content>
</entry>
</feed>
