profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/nathanl/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.
Nathan Long nathanl @DockYard Athens, GA http://nathanmlong.com I write clear, tested code, mainly in Elixir. I work remotely.

nathanl/authority 1235

*CURRENTLY UNMAINTAINED*. Authority helps you authorize actions in your Rails app. It's ORM-neutral and has very little fancy syntax; just group your models under one or more Authorizer classes and write plain Ruby methods on them.

iamvery/elixir-koans 17

:loudspeaker: We've combined our efforts with

adamhunter/named 8

give anonymous modules and classes names when they are inspected

nathanl/.dotfiles 6

Vim configuration, etc

adamhunter/rekon-ruby 5

Scout into your riak cluster

adamhunter/state_machine_setters 3

Adds setter methods for defined state machine events (for triggering them from a form)

nathanl/caches 3

A small collection of Ruby caches with good performance and hash-like access patterns

nathanl/bookfinder 1

A demo app for the Searchlight ruby gem

push eventnathanl/simple_quizzes

Nathan Long

commit sha 9415bbc453e8295d1036f2ff9d1971931ade9422

TODO

view details

push time in 14 hours

issue closedglejeune/Ruby-Graphviz

Any way to set edge direction?

When running the digraph example in the README, I don't see any way to set the edge direction.

The direction is the same regardless of the order of these two node arguments.

g.add_edges( hello, world )
# vs
g.add_edges( world, hello )

In contrast, if I use dot directly, these two things produce different outputs:

digraph graphname{
  a -> b;
}

// vs

digraph graphname{
  b -> a;
}
dot mygraphdata.dot -T svg -o some.svg

I tried reading the code to find a way to set edge direction, but didn't see a way.

closed time in 14 days

nathanl

issue commentglejeune/Ruby-Graphviz

Any way to set edge direction?

Thanks!

nathanl

comment created time in 14 days

pull request commenterlang/otp

Correct extended error for binary_to_term/2

👏 🎉 😄 Thank you!

bjorng

comment created time in 14 days

issue commenterlang/otp

Incorrect error message from `binary_to_term/2` with `safe`

If the error message were unclear, like "one of the arguments is bad", clarifying it would be an improvement. But it clearly indicates the wrong information - it says the second argument is bad when in fact the first one is bad. I would call that a bug.

But since this does not actually cause incorrect execution, but only makes debugging difficult, maybe you wouldn't call it a bug. I'm happy to leave classification to the maintainers.

nathanl

comment created time in 18 days

issue commenterlang/otp

Incorrect error message from `binary_to_term/2` with `safe`

I agree that failing with a badarg error is expected. That's not the bug.

The bug is that the badarg error indicates the wrong argument as being bad. It says that [safe] is an invalid option, which is not the case.

nathanl

comment created time in 18 days

issue openederlang/otp

Incorrect error message from `binary_to_term/2` with `safe`

Describe the bug If binary_to_term/2 is called with the safe option and the binary contains a non-existent atom, the error message indicates that the safe option itself is invalid.

To Reproduce

binary_to_term(<<131,100,0,10,97,95,110,101,119,95,97,116,111,109>>, [safe]).

The bad argument error says argument 2: invalid option in list. This is not correct; safe is a valid option.

If we then call the function without safe, it will allocate the atom a_new_atom.

binary_to_term(<<131,100,0,10,97,95,110,101,119,95,97,116,111,109>>, []).
a_new_atom

Now that the atom has been allocated, the safe option works just fine.

binary_to_term(<<131,100,0,10,97,95,110,101,119,95,97,116,111,109>>, [safe]).
a_new_atom

Expected behavior

The error message should indicate that the binary is unsafe.

Affected versions

This bug is present on master as of the latest commit, b2f0302f009b426fa81364d1115713ae3d07397b on 2021-07-23.

created time in 18 days

push eventnathanl/absinthe_relay

Nathan Long

commit sha fab6d068e935822d9658caa3305e91f9cbb6f445

WIP

view details

Nathan Long

commit sha ffe00a08bbffde5c114f1d8f33d3ccdab5f3a24d

WIP

view details

push time in 25 days

create barnchnathanl/absinthe_relay

branch : keyset_pagination

created branch time in 25 days

fork nathanl/absinthe_relay

Absinthe support for the Relay framework

fork in a month

push eventnathanl/simple_quizzes

Nathan Long

commit sha 865693d87d5b706de4ace0f1b6b52542adf1d6d0

Add more silly messages

view details

push time in a month

push eventnathanl/simple_quizzes

Nathan Long

commit sha 5192eb030618165bc3952eb009571a38544e59aa

Fix - accidentally made it 1 question

view details

push time in a month

push eventnathanl/simple_quizzes

Nathan Long

commit sha c868d6ee39bd8ccc252beaa3f52b20b0730d26a6

Prompt before starting the game

view details

push time in a month

push eventnathanl/simple_quizzes

Nathan Long

commit sha be15aabae7e3506e78811507bdf37ecf655f4486

Add automator applescript and 'play again'

view details

push time in a month

PublicEvent

push eventnathanl/simple_quizzes

Nathan Long

commit sha 09931c13ca6161ae02164dafbb693d0ff7bfd9a7

Random messages and clips

view details

push time in a month

push eventnathanl/.dotfiles

Nathan Long

commit sha 57c2068718eb3536fbfe44ce1dc5a0320bb9bed1

Neovim tweaking

view details

push time in a month

push eventnathanl/speed_quiz

Nathan Long

commit sha 408a7de3fcceef84a768958bf7a6b035a036c36a

WIP trying to get running properly in container

view details

push time in 2 months

create barnchnathanl/speed_quiz

branch : main

created branch time in 2 months

created repositorynathanl/speed_quiz

created time in 2 months

PR closed erlang/otp

Early draft: showing non-unique labels in observer team:PS

This PR is nowhere close to complete. I'm posting it in the hopes of getting guidance and help to carry it through.

In observer, we sometimes have a number of "generic" processes, like database connections in a pool. Because they do not have registered names, they are labeled only with a pid, which is not informative. The process architecture would be more understandable if we could use non-unique labels, like database_connection.

I brought this up on the erlang-questions mailing list a while back (see "Support for non-unique process labels?") and people seemed to like the idea.

I am inexperienced with Erlang (I mostly use Elixir), and I was not at all familiar with the code behind observer, but I've stumbled far enough to get a tiny demo working:

non_unique_labels

Here, processes which do not have a registered name, but do have a '$label' entry in their dictionary, are labeled accordingly in observer.

There are probably numerous things wrong with my approach so far. And manually adding a label to the process dictionary is not very discoverable - ideally we could specify this label when (for example) starting a gen_server.

Does this seem like a worthwhile effort? If so, any pointers about how to proceed?

+18 -2

2 comments

2 changed files

nathanl

pr closed time in 2 months

pull request commenterlang/otp

Early draft: showing non-unique labels in observer

@RaimoNiskanen yes it is! I was the one who suggested this and didn't see that someone else was working on it. Closing.

nathanl

comment created time in 2 months

PR opened erlang/otp

WIP showing non-unique labels in observer

This PR is nowhere close to complete. I'm posting it in the hopes of getting guidance and help to carry it through.

In observer, we sometimes have a number of "generic" processes, like database connections in a pool. Because they do not have registered names, they are labeled only with a pid, which is not informative. The process architecture would be more understandable if we could use non-unique labels, like database_connection.

I brought this up on the erlang-questions mailing list a while back (see "Support for non-unique process labels?") and people seemed to like the idea.

I am inexperienced with Erlang (I mostly use Elixir), and I was not at all familiar with the code behind observer, but I've stumbled far enough to get a tiny demo working:

non_unique_labels

Here, processes which do not have a registered name, but do have a '$label' entry in their dictionary, are labeled accordingly in observer.

There are probably numerous things wrong with my approach so far. And manually adding a label to the process dictionary is not very discoverable - ideally we could specify this label when (for example) starting a gen_server.

Does this seem like a worthwhile effort? If so, any pointers about how to proceed?

+18 -2

0 comment

2 changed files

pr created time in 2 months

push eventnathanl/otp

Maxim Fedorov

commit sha d2bccf4a4a9060995868b8e7a4f91865ccdffd8d

alloc_SUITE, distribution_SUITE: fix race conditions Distribution suite suffers from the race between logger warning emitted, and "true" printed by the test code. There seems to be no specific order, logger may print before or after test suite outpit. Alloc may fail when stop_node stops the node really fast, and linked process causes test case to exit with `{'EXIT', noconnection}`

view details

Dominic Letz

commit sha 3e398c1d6b2be8b684cb3e3224cea1821bf49b7f

Completed list of handled MacOS app events So far only `new_file` was handled and there was only an undocumented function to fetch those events. Now all currently existing application events are captured and can be subscribed to from a client application.

view details

Tomas Abrahamsson

commit sha ce2c4ab42d0628c5be73a17972389a37053063b4

common_test: Allow floats to -multiply_timetraps N For the ct_run option -multiply_timetraps N, allow N to be a float as well as previously an integer. This makes it possible to scale down timetraps. This applies also to the associated test spec option.

view details

Tomas Abrahamsson

commit sha 70298a3b16bbbcf99f1bdee0ba5680694e60a49a

common_test: Fix doc typo for a ct_run option

view details

Lukas Larsson

commit sha 62d3a61102e87f38958b641b2a5d785b28af0b61

erts: Hibernate system procs to save memory The code checker and literal checker sometimes use a lot of memory so their heaps will becomes pretty large. So we hibernate them when they have not done anything for 60 seconds in order to shrink the heap size back to 0.

view details

Lukas Larsson

commit sha ecd02ee73935ac6273b44ccf801183f52c116495

observer: Fix parsing of monitor_node/2 in cdv The link entry for monitor_node looks like this: {to,'node@name',[]} and before this fix cdv crashed when encountering this.

view details

k32

commit sha e38219c286e8a23041b7d28f80bae55c57892cd6

Fix io_lib_pretty:printable_latin1_list/2 Fixes #4801

view details

Ingela Anderton Andin

commit sha 3fb2290222391dadc9afd679975ad0303035ff4d

ssl: Add test cases to cover handling of max session table

view details

Hans Nilsson

commit sha d2607b9e614ac217bff9bec7e5d9649d7c69b2cd

crypto: Disable fips if cryptolib < 1.0.1 and it is configured with --enable-fips FIPS is not supported by OpenSSL for other versions than 1.0.1 and 1.0.2

view details

Hans Nilsson

commit sha dd30e0bd36194fd9c55dbe2aa59d61c0b658bca5

crypto: Fixed coredump if bad enc-flag

view details

Maxim Fedorov

commit sha 919435a6bd07420faffa9ac851f5c254ba6d96be

base64: introduce new types for base64 alphabet No change in logic, but specs are updated to reflect RFC 4648 compliance.

view details

Henrik Nord

commit sha a20c39812082068a8b9e3b73276de41fbb0338af

Prepare for development

view details

Henrik Nord

commit sha 3a8e65972ac1d0c4ae1412eae2dc2b3e5b3d758d

Merge branch 'maint'

view details

Henrik Nord

commit sha 570de52b6d76477ee03afa6168ad2b963878dc57

Prepare for development

view details

Micael Karlberg

commit sha b56a2c4a9f382b37bc457221b3035d46f1e54702

[megaco|config|test] Tweaked counter test case(s) Try to figure out where the time is spent. Also add explicit timeout the 'events' call when timeout timetrap message has been received.

view details

Micael Karlberg

commit sha 3417575e70707d8b0c5abab103306096a5f8eec8

[megaco|test] Add a skip clause for another linux version We get random failures in the timer suite on some *old* VMs. So add a general skip (easier than special handle this specific suite).

view details

Micael Karlberg

commit sha f2360f5cf383b1ea8b77ab34b429ad5d06f79875

[kernel|gen-udp|test] Tweaked buffer-size test case

view details

Micael Karlberg

commit sha 2f26615af29df826266f9ba2bcfb1d6853a42a34

[kernel|inet-sockopt|test] Skip for eaddrinuse When creating the IPv4 (inet) socket, we must handle that the IPv4 port could already be used = eaddrinuse and therefor skip (instead of fail).

view details

Micael Karlberg

commit sha fbad384d1ae476126c29fa6c63b6a4d9083aea36

[kernel|gen-tcp-misc|test] Tweaked 'killing multi acceptors' Timeout on virtual Linux Mint 19: Add some printouts...

view details

Jakub Witczak

commit sha 68df92876d53121d05d195b39bc4ea37198eacea

inets: httpd dir listing fix Before this change httpd was generating HTML dir listing with corrupted hrefs (GH-4677). Closes #4677.

view details

push time in 2 months

push eventnathanl/.dotfiles

Nathan Long

commit sha 9ea81e19cbeb8bdbaff81861d68ef1e56f0c4070

Starting over with NeoVim configuration

view details

Nathan Long

commit sha 624138c445c8e52f68a11f0d6fb3b651ee3bfd91

Add elixir language server support but comment it out for now It does provide some fanciness, like tab completion based on the stdlib and the project, and hover definitions, etc. But it seems buggy, produces weird error messages sometimes like saying the language server crashed, makes things slower (eg switching tabs), and makes the computer heat up. So I'm not sold on it yet.

view details

push time in 2 months

push eventnathanl/.dotfiles

Nathan Long

commit sha 9ea81e19cbeb8bdbaff81861d68ef1e56f0c4070

Starting over with NeoVim configuration

view details

push time in 2 months

push eventnathanl/.dotfiles

Nathan Long

commit sha 46aa48a11dc0a0b9568d3d8fa7a035d0eb0fe251

WIP

view details

Nathan Long

commit sha df1bd759a671cee14e4e28bfb12803ea09ca882f

WIP

view details

push time in 2 months

push eventnathanl/.dotfiles

Nathan Long

commit sha 31d12cb987f781bd757d9eb752ae48288720900c

WIP still working

view details

push time in 2 months

create barnchnathanl/.dotfiles

branch : neovim_fresh_start

created branch time in 2 months

push eventnathanl/otp

Nathan Long

commit sha 5873f7ee04cf80b0ddd0c7987c9f6129a8b2557b

Use RPC so we don't copy the process dictionary

view details

push time in 3 months