profile
viewpoint

capitalone/checks-out 70

Checks-Out pull request approval system

capitalone/go-future-context 53

A simple Future (Promise) library for Go.

capitalone/modtracker 7

JSON unmarshaling in Go that includes detection of modified fields

jonbodner/golang-lucene 6

Read, write, and search Lucene indexes with Go

jonbodner/dbtimer 4

A small library for timing database interactions

jonbodner/geofilter 3

A simple IP-based filtering proxy, written in Go

jonbodner/channel-talk-2-extended 1

Sample code for my DevFest DC talk on Go Concurrency

jonbodner/comb 1

Permutations and Combinations

jonbodner/gdb 1

A simple tool for automatically generating daos from sql queries

gus-maurizio/sre-agent 0

Agent for monitoring compute environments with extensibility via plugins

created tagjonbodner/proteus

tagv0.13.0

A simple tool for generating an application's data access layer.

created time in 14 days

release jonbodner/proteus

v0.13.0

released time in 14 days

delete branch jonbodner/proteus

delete branch : array_support

delete time in 14 days

push eventjonbodner/proteus

Jon Bodner

commit sha c395cd4c43dbc18d6f9d723f38510ff7df02f11f

add support for pulling values from arrays and slices. (#50) * add support for pulling values from arrays and slices. Switch to stackerr for errors. Rename proteus.ProteusError to proteus.Error and add Unwrap() support. * add readme info on nested access. Add test to validate that it works.

view details

push time in 14 days

PR merged jonbodner/proteus

add support for pulling values from arrays and slices.

major changes:

  • add support for pulling values from arrays and slices.

minor changes:

  • Switch to stackerr for errors.
  • Rename proteus.ProteusError to proteus.Error and add Unwrap() support.
+339 -100

0 comment

14 changed files

jonbodner

pr closed time in 14 days

push eventjonbodner/proteus

Jon Bodner

commit sha e2d0d1d420b10b89ec6e6d03e760f61a02457576

add readme info on nested access. Add test to validate that it works.

view details

push time in 14 days

PR opened jonbodner/proteus

add support for pulling values from arrays and slices.

major changes:

  • add support for pulling values from arrays and slices.

minor changes:

  • Switch to stackerr for errors.
  • Rename proteus.ProteusError to proteus.Error and add Unwrap() support.
+207 -101

0 comment

13 changed files

pr created time in 14 days

create barnchjonbodner/proteus

branch : array_support

created branch time in 14 days

issue commentgolang/go

cmd/cover: (html output) UI accessibility issues, unfriendly to screen reader

In light of https://commandcenter.blogspot.com/2020/09/color-blindness-is-inaccurate-term.html and #37796 being closed in favor of this issue, would it be possible for there to be a first step where there's an option for code coverage HTML to use a white background instead of a black background? Maybe with bold to indicate covered code, regular text to indicate uncovered code, and italics to indicate code that can't be covered? Screen reading and UX is important, but maybe some steps along the way could also help.

dr2chase

comment created time in 25 days

create barnchlearning-go-book/circular_dependency_example

branch : master

created branch time in a month

created repositorylearning-go-book/circular_dependency_example

created time in a month

create barnchlearning-go-book/internal_example

branch : master

created branch time in a month

created repositorylearning-go-book/internal_example

created time in a month

create barnchlearning-go-book/package_example

branch : master

created branch time in a month

created repositorylearning-go-book/package_example

created time in a month

create barnchlearning-go-book/region_tax

branch : master

created branch time in a month

created repositorylearning-go-book/region_tax

created time in a month

create barnchlearning-go-book/money

branch : master

created branch time in a month

create barnchlearning-go-book/formatter

branch : master

created branch time in a month

created repositorylearning-go-book/formatter

created time in a month

push eventlearning-go-book/taxes

Jon Bodner

commit sha 2d959252e9524bbf3836ee4dd6d0adcae00afc49

move packaging to learning-go-book

view details

push time in a month

created repositorylearning-go-book/money

created time in a month

create barnchlearning-go-book/function_examples

branch : master

created branch time in a month

created repositorylearning-go-book/function_examples

created time in a month

issue commentgolang/go

proposal: embed, cmd/go: add support for embedded files

@mvdan If this proposal happens, Go syntax has changed. It's just changed in a way that doesn't break existing tooling. Maybe that seems pedantic.

@iand I'm not fussy about the specific syntax for compiler directives. I just think that it needs to be formalized at some point and the rules specified.

I think this proposal is a good idea. It solves a common problem. My concern is that the cost of adopting it should be made a little more explicit.

rsc

comment created time in 2 months

issue commentgolang/go

proposal: embed, cmd/go: add support for embedded files

I have similar concerns as @tristanfisher . Go has been using magic comments as compiler directives for a long time (since the beginning?), but they are meant for corner cases and it is rare for them to appear in code. Given the popularity of embedding static content in Go binaries, //go:embed is likely to be more common. Maybe it's time to consider a different syntax for compiler directives?

rsc

comment created time in 2 months

push eventjonbodner/proteus

Jon Bodner

commit sha 7c9520b176bee973127e4ccdb3422a11a8acb41e

Create golangci-lint.yml

view details

push time in 2 months

create barnchlearning-go-book/test_examples

branch : master

created branch time in 2 months

created repositorylearning-go-book/test_examples

created time in 2 months

created tagjonbodner/proteus

tagv0.12.2

A simple tool for generating an application's data access layer.

created time in 2 months

release jonbodner/proteus

v0.12.2

released time in 2 months

push eventjonbodner/proteus

Jon Bodner

commit sha fbbe783560e87a363c163ed5b61b15446a1c7c07

Fix mysql for real (#49) * fix problems with mysql. * use a prepared statement explicitly to make mysql happy when there are no query parameters * only attempt to use the prepared statement if there are no query parameters, as that's the bug in the mysql driver * simplify code The problem with MySQL's Go driver (https://github.com/go-sql-driver/mysql) is that it won't translate numbers in the response when the text protocol is used (which happens when a query is run without any parameters). Multiple issues have been filed against this for years, but the developers have responded with a wontfix due to the dubious claim that it's too much of a performance hit. See go-sql-driver/mysql#861 for an example. This update checks to see if a query has no query args. If it does, it checks to see if the Querier/ContextQuerier also implements Prepare/PrepareContext and if so, it creates a statement, forcing MySQL to use the binary protocol. (Postgres will also be using a prepared statement unnecessarily, but it probably has minimal performance difference).

view details

push time in 2 months

PR merged jonbodner/proteus

Fix mysql for real

The problem with MySQL's Go driver (https://github.com/go-sql-driver/mysql) is that it won't translate numbers in the response when the text protocol is used (which happens when a query is run without any parameters). Multiple issues have been filed against this for years, but the developers have responded with a wontfix due to the dubious claim that it's too much of a performance hit. See https://github.com/go-sql-driver/mysql/issues/861 for an example.

This update checks to see if a query has no query args. If it does, it checks to see if the Querier/ContextQuerier also implements Prepare/PrepareContext and if so, it creates a statement, forcing MySQL to use the binary protocol. (Postgres will also be using a prepared statement unnecessarily, but it probably has minimal performance difference).

+93 -2

0 comment

2 changed files

jonbodner

pr closed time in 2 months

push eventjonbodner/proteus

Jon Bodner

commit sha 135059293bb2ff5c30a66c811289c12119666c23

simplify code

view details

push time in 2 months

PR opened jonbodner/proteus

Fix mysql for real

The problem with MySQL's Go driver (https://github.com/go-sql-driver/mysql) is that it won't translate numbers in the response when the text protocol is used (which happens when a query is run without any parameters). Multiple issues have been filed against this for years, but the developers have responded with a wontfix due to the dubious claim that it's too much of a performance hit. See https://github.com/go-sql-driver/mysql/issues/861 for an example.

This update checks to see if a query has no query args. If it does, it checks to see if the Querier/ContextQuerier also implements Prepare/PrepareContext and if so, it creates a statement, forcing MySQL to use the binary protocol. (Postgres will also be using a prepared statement unnecessarily, but it probably has minimal performance difference).

+103 -1

0 comment

2 changed files

pr created time in 2 months

push eventjonbodner/proteus

Jon Bodner

commit sha e16badcd54008b93b058934a128ebbd9751e2b74

fix problems with mysql. (#48)

view details

Jon Bodner

commit sha 9fa686940adad7130813f2de07c32aa606c10317

Merge branch 'master' into fix_mysql

view details

push time in 2 months

push eventjonbodner/proteus

Jon Bodner

commit sha d8ed81308d05ed9c94c522b0ec92d9dc1c0c589c

use a prepared statement explicitly to make mysql happy when there are no query parameters

view details

Jon Bodner

commit sha da95f08e0fe0ff97ebc2d0da66766f2c2f69bef7

only attempt to use the prepared statement if there are no query parameters, as that's the bug in the mysql driver

view details

push time in 2 months

created tagjonbodner/proteus

tagv0.12.1

A simple tool for generating an application's data access layer.

created time in 2 months

release jonbodner/proteus

v0.12.1

released time in 2 months

push eventjonbodner/proteus

Jon Bodner

commit sha e16badcd54008b93b058934a128ebbd9751e2b74

fix problems with mysql. (#48)

view details

push time in 2 months

create barnchjonbodner/proteus

branch : fix_mysql

created branch time in 2 months

created tagjonbodner/proteus

tagv0.12.0

A simple tool for generating an application's data access layer.

created time in 2 months

release jonbodner/proteus

v0.12.0

released time in 2 months

issue closedjonbodner/proteus

Update the examples to demonstrate latest best practices

The example code should demonstrate using Proteus with context and show off declaring a function without a struct and running an ad-hoc query.

The README should generally be tightened up.

closed time in 2 months

jonbodner

issue commentjonbodner/proteus

Update the examples to demonstrate latest best practices

Fixed by v0.12.0

jonbodner

comment created time in 2 months

issue closedjonbodner/proteus

SIGSEGV can occur when using structs with bad function return types

I recently tried to create and use a malformed function type like so. The return value is error whereas it should be (int64, error) to receive an error properly.

type UserDao struct {
  Insert func(ctx context.Context, e proteus.ContextExecutor, email string) error `proq:...`
}

I was able to instantiate this struct with proteus.Build, and everything worked out fine until I tried to use Insert, which failed with a confusing SIGSEGV at the point of failure.

closed time in 2 months

kalexmills

issue commentjonbodner/proteus

SIGSEGV can occur when using structs with bad function return types

Fixed in v0.12.0

kalexmills

comment created time in 2 months

push eventjonbodner/proteus

Jon Bodner

commit sha 5fa7b27f2f18dd4bf396feec158d0490c5ee2314

Remove sqlite, fix bugs, update README to encourage context usage. (#47) * remove sqlite, part 1 * tests all pass with postgres. Still have more cleanup. * Remove Wrap, split sample into context and non-context versions, remove references to sqlite, add makefile * remove sudo from docker-compose commands * cleanup and update Makefile * fix up README

view details

push time in 2 months

PR opened jonbodner/proteus

Remove sqlite, fix bugs, update README to encourage context usage.

Addresses #46

+818 -704

0 comment

24 changed files

pr created time in 2 months

push eventjonbodner/proteus

Jon Bodner

commit sha 82220c10e3018d6aeb6c664388df83d1ce86b390

cleanup and update Makefile

view details

Jon Bodner

commit sha 5503fff0eb6a13472669de4e6fbf74070fda6f34

fix up README

view details

push time in 2 months

create barnchjonbodner/oom-demo

branch : master

created branch time in 2 months

created repositoryjonbodner/oom-demo

created time in 2 months

startedcockroachdb/errors

started time in 2 months

push eventlearning-go-book/unsafe_examples

Jon Bodner

commit sha 8be37cb365b304e3698d689f79ab1467907c1d2f

update examples after feedback

view details

push time in 3 months

issue openedjonbodner/proteus

Validate that Proteus can map results into a nested/embedded struct

The code is there to do the mapping, but I don't think there is a test to validate this.

created time in 3 months

issue openedjonbodner/proteus

Update the examples to demonstrate latest best practices

The example code should demonstrate using Proteus with context and show off declaring a function without a struct and running an ad-hoc query.

The README should generally be tightened up.

created time in 3 months

more