profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/Arkham/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.
Ju Liu Arkham @NoRedInk London https://juliu.is Italian. Working @NoRedInk. I like Elixir, Ruby, JavaScript and Machine Learning. I climb a lot.

Arkham/asset_crawler 1

Crawl a website and list static assets dependencies

Arkham/bobkonf-2020 1

Materials for my BobKonf 2020 talk

Arkham/builds 1

All my AUR packages

Arkham/capybara 1

Acceptance test framework for web applications

Arkham/carmen 1

A simple collection of geographic names and abbreviations for Rails apps (includes replacements for country_select and state_select)

Arkham/datePicker 1

An unobtrusive, framework free datepicker

Arkham/active-model-adapter 0

Adapters and Serializers for Rails's ActiveModel::Serializers

delete branch Arkham/juliu.is

delete branch : ditch-your-version-manager

delete time in 20 hours

push eventArkham/juliu.is

Ju Liu

commit sha 4f1143a17163596ffe37bae42cd4a48285121c8e

Add first draft of post on Nix

view details

Ju Liu

commit sha f2447421fd403426c84ea0c524a403d805ead15d

Finish blog post on Nix

view details

Ju Liu

commit sha 5daa3db37b52eb84ef51b249b03248c3cf5ee7f8

Add feedback from andrew

view details

Ju Liu

commit sha 890fb8e3823c95235dd7441745232fc49908baf6

Merge pull request #14 from Arkham/ditch-your-version-manager Add first draft of post on Nix

view details

push time in 20 hours

PR merged Arkham/juliu.is

Add first draft of post on Nix

🍵

+337 -0

1 comment

1 changed file

Arkham

pr closed time in 20 hours

push eventArkham/juliu.is

Ju Liu

commit sha 5daa3db37b52eb84ef51b249b03248c3cf5ee7f8

Add feedback from andrew

view details

push time in 21 hours

push eventArkham/juliu.is

Ju Liu

commit sha f2447421fd403426c84ea0c524a403d805ead15d

Finish blog post on Nix

view details

push time in 21 hours

push eventArkham/dotfiles.nix

Ju Liu

commit sha 1cb1dac241b25bbfc538bbe70a3ae51a21c87eb2

Add idris.vim

view details

Ju Liu

commit sha dca4018b1b2dd88806974c6d5f9540b68a191c78

Update nixpkgs

view details

push time in a day

PR opened Arkham/juliu.is

Add first draft of post on Nix

🍵

+309 -0

0 comment

1 changed file

pr created time in a day

create barnchArkham/juliu.is

branch : ditch-your-version-manager

created branch time in a day

PR opened blunderdome/PR-opener

Make script point to deployed prod branch

🎉

+2 -2

0 comment

1 changed file

pr created time in 8 days

create barnchArkham/PR-opener

branch : fix-other-one

created branch time in 8 days

fork Arkham/PR-opener

Open all the PRs in a diff

fork in 8 days

delete branch Arkham/debugir

delete branch : fix-compile-error

delete time in 18 days

pull request commentvaivaswatha/debugir

Ignore unused lambda warning

hey @vaivaswatha gladly! updated and pushed :)

Arkham

comment created time in 18 days

push eventArkham/debugir

Ju Liu

commit sha ef31e4ef1fa55f3a47f51624eb4c3162db8a2253

Force use of variable inside lambda Otherwise clang complains that lambda capture 'I' is not used

view details

push time in 18 days

PR opened vaivaswatha/debugir

Ignore unused lambda warning

Trying to compile this on nix 21.05 caused this error:

[ 33%] Building CXX object CMakeFiles/debugir.dir/DebugIR.cpp.o
/tmp/nix-build-debugir.drv-0/source/DebugIR.cpp:322:34: error: lambda capture 'I' is not used [-Werror,-Wunused-lambda-capture]
    auto returnFallback = [this, I]() {
                               ~~^
1 error generated.
make[2]: *** [CMakeFiles/debugir.dir/build.make:82: CMakeFiles/debugir.dir/DebugIR.cpp.o] Error 1

Here are the files I used:

$ cat debugir/shell.nix
let
  sources = import ./nix/sources.nix { };
  nixpkgs = import sources.nixpkgs { };
in with nixpkgs;
mkShell { buildInputs = [ cmake libxml2 llvmPackages_12.llvm.dev ]; }
$ cat debugir/nix/sources.json
{
    "nixpkgs": {
        "branch": "release-21.05",
        "description": "Nix Packages collection",
        "homepage": "",
        "owner": "NixOS",
        "repo": "nixpkgs",
        "rev": "5f244caea76105b63d826911b2a1563d33ff1cdc",
        "sha256": "1xlgynfw9svy7nvh9nkxsxdzncv9hg99gbvbwv3gmrhmzc3sar75",
        "type": "tarball",
        "url": "https://github.com/NixOS/nixpkgs/archive/5f244caea76105b63d826911b2a1563d33ff1cdc.tar.gz",
        "url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
    }
}

After making this change, the project compiles fine!

+1 -0

0 comment

1 changed file

pr created time in 18 days

create barnchArkham/debugir

branch : fix-compile-error

created branch time in a month

fork Arkham/debugir

DebugIR: Debugging LLVM-IR Files

fork in a month

push eventNoRedInk/servant-ruby

Ju Liu

commit sha 207b27cf4413b4a515af7dc80c1d837c002e85e9

Fix typo

view details

push time in 2 months

delete branch NoRedInk/servant-ruby

delete branch : foxen/actually-keepalive

delete time in 2 months

push eventNoRedInk/servant-ruby

Juliano Solanho

commit sha b9b963ba0384b9c3e87fcb7bae4d29ef960a05d4

Fix client so connections are really kept alive Ju found this out. Unless we .start the https client before making our first request, connections aren't really kept alive, plus the default keepalive time is 2s. I bumped the default keepalive_timeout to 2min so we get a chance to keep connections alive for all our services. I'm not sure if this will have performance implications, so I made it configurable, so we can feature-flag this on our applications' side.

view details

Ju Liu

commit sha df9005ff1a946ed9b725e237543e26a28a440ee1

Merge pull request #9 from NoRedInk/foxen/actually-keepalive Fix client so connections are really kept alive

view details

push time in 2 months

PR merged NoRedInk/servant-ruby

Fix client so connections are really kept alive

@Arkham found this out. Unless we .start the https client before making our first request, connections aren't really kept alive, plus the default keepalive time is 2s.

I bumped the default keepalive_timeout to 2min so we get a chance to keep connections alive for all our services.

I'm not sure if this will have performance implications, so I made it configurable, so we can feature-flag this on our applications' side.

This is a preview of the impact of this inside our production kubernetes cluster:

Before

<details><summary>Code Snippet</summary>


require 'net/http'
require 'benchmark'

http = Net::HTTP.new("quiz-engine.noredink.com", 443)
http.use_ssl = true

req = Net::HTTP::Get.new "https://quiz-engine.noredink.com/health/readiness"

while true
  bm = Benchmark.measure { response = http.request req
    response.body
  }
  puts "real #{'%.3f' % bm.real} system #{'%.3f' % bm.stime} user #{'%.3f' % bm.utime} total #{'%.3f' % bm.total}" 
  sleep 1
end

</details>

real 0.013 system 0.000 user 0.002 total 0.002
real 0.010 system 0.000 user 0.001 total 0.001
real 0.015 system 0.000 user 0.003 total 0.003
real 0.013 system 0.000 user 0.002 total 0.002
real 0.013 system 0.000 user 0.002 total 0.002
real 0.010 system 0.000 user 0.001 total 0.001
real 0.012 system 0.000 user 0.002 total 0.002
real 0.012 system 0.000 user 0.002 total 0.002
real 0.010 system 0.002 user 0.000 total 0.002
real 0.013 system 0.002 user 0.000 total 0.002
real 0.012 system 0.000 user 0.001 total 0.002
real 0.013 system 0.000 user 0.002 total 0.002
real 0.011 system 0.000 user 0.002 total 0.002
real 0.012 system 0.000 user 0.002 total 0.002
real 0.014 system 0.000 user 0.002 total 0.002
real 0.013 system 0.000 user 0.002 total 0.002
real 0.008 system 0.000 user 0.001 total 0.001
real 0.010 system 0.000 user 0.002 total 0.002

After

<details><summary>Code Snippet</summary>


require 'net/http'
require 'benchmark'

http = Net::HTTP.new("quiz-engine.noredink.com", 443)
http.use_ssl = true
# ruby's default is 2 seconds, which seems too small
http.keep_alive_timeout = 30
http.start

req = Net::HTTP::Get.new "https://quiz-engine.noredink.com/health/readiness"

while true
  bm = Benchmark.measure { response = http.request req
    response.body
  }
  puts "real #{'%.3f' % bm.real} system #{'%.3f' % bm.stime} user #{'%.3f' % bm.utime} total #{'%.3f' % bm.total}" 
  sleep 1
end

</details>


real 0.004 system 0.000 user 0.000 total 0.000
real 0.004 system 0.000 user 0.000 total 0.000
real 0.003 system 0.000 user 0.000 total 0.000
real 0.004 system 0.000 user 0.000 total 0.000
real 0.004 system 0.000 user 0.000 total 0.000
real 0.004 system 0.000 user 0.000 total 0.000
real 0.004 system 0.000 user 0.000 total 0.000
real 0.004 system 0.000 user 0.000 total 0.000
real 0.004 system 0.000 user 0.000 total 0.000
real 0.005 system 0.000 user 0.000 total 0.000
real 0.003 system 0.000 user 0.000 total 0.000
real 0.004 system 0.000 user 0.000 total 0.000
real 0.004 system 0.000 user 0.000 total 0.000
real 0.004 system 0.000 user 0.000 total 0.000
real 0.004 system 0.000 user 0.000 total 0.000
real 0.004 system 0.000 user 0.000 total 0.000
real 0.004 system 0.000 user 0.000 total 0.000
real 0.004 system 0.000 user 0.000 total 0.000
real 0.004 system 0.000 user 0.000 total 0.000
real 0.004 system 0.000 user 0.000 total 0.000
real 0.004 system 0.000 user 0.000 total 0.000
+77 -11

1 comment

8 changed files

omnibs

pr closed time in 2 months

pull request commentNoRedInk/servant-ruby

Fix client so connections are really kept alive

All righty!

omnibs

comment created time in 2 months

startedrtfeldman/rbt

started time in 2 months

pull request commentNoRedInk/haskell-libraries

Prelude logs for all

Tests are passing consistenly on my machine now :)

jwoudenberg-nri

comment created time in 2 months

create barnchNoRedInk/haskell-libraries

branch : prelude-logs-for-all

created branch time in 2 months

push eventArkham/dotfiles.nix

Ju Liu

commit sha b0e60abc11dc27678801abe495a564645e4be283

Only run elm make

view details

push time in 2 months

push eventArkham/dotfiles.nix

Ju Liu

commit sha d1b86a8fea7ba866888ab00437ae0ef625b00365

Update to 21.05

view details

push time in 2 months

issue openednewrelic/newrelic-ruby-agent

`newrelic deployments` does not work with newly created API keys

newrelic deployments only works with the original license key that came with the account.

Description

We have recently cycled our NewRelic License Key and updated config/newrelic.yml. Running newrelic deployments -e production -r 1234567890 'Testing new api key' yields:

Deployment not recorded: Forbidden

After reverting the key inside config/newrelic.yml to the previous INGEST - LICENSE key works again.

Expected Behavior

Should record the deployment.

Troubleshooting or NR Diag results

Posting to the API manually works with the newly created key

 curl -X POST "https://api.newrelic.com/v2/applications/${MY_APPI_ID}/deployments.json" \
                                    -H "Api-Key: ${NEW_RELIC_ACCESS_KEY}" \
                                    -i \
                                    -H "Content-Type: application/json" \
                                    -d \
                               '{
                                 "deployment": {
                                   "revision": "1234567890",
                                   "changelog": "",
                                   "description": "Testing new api key",
                                   "user": "Arkham",
                                   "timestamp": "2021-07-07T17:26:00Z"
                                 }
                               }'

created time in 2 months

issue commentNoRedInk/haskell-libraries

Issue with `/tmp/nri-prelude-logs` file

could we not create the file with 777 permissions as a quick fix?

jwoudenberg-nri

comment created time in 3 months

issue openedNoRedInk/haskell-libraries

Issue with `/tmp/nri-prelude-logs` file

I saw this failure on Travis:

TEST RUN PASSED

Passed:    47

tests: /tmp/nri-prelude-logs: openFile: permission denied (Permission denied)

any idea what might have caused this?

created time in 3 months