Knapsack
eap_proxy
Knapsack | eap_proxy | |
---|---|---|
5 | 25 | |
507 | 549 | |
0.6% | - | |
3.4 | 0.0 | |
3 months ago | over 1 year ago | |
Ruby | Python | |
MIT License | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Knapsack
-
Ask HN: What is the most impactful thing you've ever built?
I've created a knapsack ruby gem for CI parallelisation that has over 122 million downloads. Primarily due to the fact, Gitlab is using it.
I spin off https://knapsackpro.com from the knapsack gem and we are helping our customers run fast CI builds.
- Run 1 hour test suite in 2 min with optimal parallelisation on existing CI infra
-
Testing Ruby on Rails on Github Actions with RSpec
name: Main on: [push] jobs: test: runs-on: ubuntu-latest # If you need DB like PostgreSQL, Redis then define service below. # https://github.com/actions/example-services/tree/master/.github/workflows services: postgres: image: postgres:10.8 env: POSTGRES_USER: postgres POSTGRES_PASSWORD: "" POSTGRES_DB: postgres ports: - 5432:5432 # needed because the postgres container does not provide a healthcheck # tmpfs makes DB faster by using RAM options: >- --mount type=tmpfs,destination=/var/lib/postgresql/data --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 redis: image: redis ports: - 6379:6379 options: --entrypoint redis-server # https://help.github.com/en/articles/workflow-syntax-for-github-actions#jobsjob_idstrategymatrix strategy: fail-fast: false matrix: # [n] - where the n is a number of parallel jobs you want to run your tests on. # Use a higher number if you have slow tests to split them between more parallel jobs. # Remember to update the value of the `ci_node_index` below to (0..n-1). ci_node_total: [8] # Indexes for parallel jobs (starting from zero). # E.g. use [0, 1] for 2 parallel jobs, [0, 1, 2] for 3 parallel jobs, etc. ci_node_index: [0, 1, 2, 3, 4, 5, 6, 7] env: RAILS_ENV: test GEMFILE_RUBY_VERSION: 2.7.2 PGHOST: localhost PGUSER: postgres # Rails verifies the time zone in DB is the same as the time zone of the Rails app TZ: "Europe/Warsaw" steps: - uses: actions/checkout@v2 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: # Not needed with a .ruby-version file ruby-version: 2.7 # runs 'bundle install' and caches installed gems automatically bundler-cache: true - name: Create DB run: | bin/rails db:prepare - name: Run tests env: KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC: ${{ secrets.KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC }} KNAPSACK_PRO_CI_NODE_TOTAL: ${{ matrix.ci_node_total }} KNAPSACK_PRO_CI_NODE_INDEX: ${{ matrix.ci_node_index }} KNAPSACK_PRO_LOG_LEVEL: info # if you use Knapsack Pro Queue Mode you must set below env variable # to be able to retry CI build and run previously recorded tests # https://github.com/KnapsackPro/knapsack_pro-ruby#knapsack_pro_fixed_queue_split-remember-queue-split-on-retry-ci-node KNAPSACK_PRO_FIXED_QUEUE_SPLIT: true # RSpec split test files by test examples feature - it's optional # https://knapsackpro.com/faq/question/how-to-split-slow-rspec-test-files-by-test-examples-by-individual-it KNAPSACK_PRO_RSPEC_SPLIT_BY_TEST_EXAMPLES: true run: | bundle exec rake knapsack_pro:queue:rspec
-
How to run fast RSpec tests on CircleCI with parallel jobs and have nice JUnit XML reports in CircleCI web UI
# Ruby CircleCI 2.0 configuration file # # Check https://circleci.com/docs/2.0/language-ruby/ for more details # version: 2 jobs: build: parallelism: 10 # https://circleci.com/docs/2.0/configuration-reference/#resource_class resource_class: small docker: # specify the version you desire here - image: circleci/ruby:2.7.1-node-browsers environment: PGHOST: 127.0.0.1 PGUSER: my_db_user RAILS_ENV: test # Split slow RSpec test files by test examples # https://knapsackpro.com/faq/question/how-to-split-slow-rspec-test-files-by-test-examples-by-individual-it KNAPSACK_PRO_RSPEC_SPLIT_BY_TEST_EXAMPLES: true # Specify service dependencies here if necessary # CircleCI maintains a library of pre-built images # documented at https://circleci.com/docs/2.0/circleci-images/ - image: circleci/postgres:10.6-alpine-ram environment: POSTGRES_DB: my_db_name POSTGRES_PASSWORD: "" POSTGRES_USER: my_db_user # Rails verifies Time Zone in DB is the same as time zone of the Rails app TZ: "Europe/Warsaw" - image: redis:6.0.7 working_directory: ~/repo environment: TZ: "Europe/Warsaw" steps: - checkout # Download and cache dependencies - restore_cache: keys: - v2-dependencies-bundler-{{ checksum "Gemfile.lock" }}-{{ checksum ".ruby-version" }} # fallback to using the latest cache if no exact match is found - v2-dependencies-bundler- - run: name: install ruby dependencies command: | bundle install --jobs=4 --retry=3 --path vendor/bundle - save_cache: paths: - ./vendor/bundle key: v2-dependencies-bundler-{{ checksum "Gemfile.lock" }}-{{ checksum ".ruby-version" }} # Database setup - run: bin/rails db:prepare - run: name: run tests command: | export CIRCLE_TEST_REPORTS=/tmp/test-results mkdir $CIRCLE_TEST_REPORTS bundle exec rake "knapsack_pro:queue:rspec[--format documentation --format RspecJunitFormatter --out tmp/rspec.xml]" # collect reports - store_test_results: path: /tmp/test-results - store_artifacts: path: /tmp/test-results destination: test-results
-
Six things you should consider while designing a test architecture
One, the interesting out-of-the-box solution is Knapsack Pro. It helps run your tests in a parallel efficient way.
eap_proxy
-
ISP charging $14/mth for ethernet capability. A new ISP is coming to my apt complex, with a new utility bill that I cannot refuse. They installed a modem/router in my unit with ethernet out. Is there some way I might bypass this insane fee?
The inspiration is the EAP Proxy that I used to bypass the AT&T router and connect my router to the AT&T fiber, before I learned about the vulnerability that allowed me to copy the 802.1x certificate from the AT&T router to my router. https://github.com/jaysoffian/eap_proxy
- Recently moved. Just set up gig fiber internet!
-
Fiber speed recommendation
I use an EAP proxy to put my router in front of theirs and got a %20 speed improvement.
-
Ask HN: What is the most impactful thing you've ever built?
With my wife, I built two kids both in college now. That's definitely the most impactful.
In the online world, I've contributed bits and pieces to open-source here and there as far back as the late 90s. I think my first contribution was to the shadow package, but I've contributed here and there to Apache, Radius, random packages that I use that I discover bugs in, etc.
A python script I wrote to allow folks to bypass AT&T's residential gateway was used by more people than I ever expected:
https://github.com/jaysoffian/eap_proxy
-
ELI5: Why is 1000mbps internet only guaranteed at 900mbps and what's the equipment needed to get the 1000mbps advertised?
There are forum threads about people rooting these routers to try and extract the certificate/private keys from their provided router, which worked for a limited time with certain router models. For now, the most popular way to do it is with a tool like this: https://github.com/jaysoffian/eap_proxy
- Making a DNS query in Ruby from scratch
-
ATT Fiber modem options
If you use a Ubiquiti router, then another method to bypass your ATT router is called EAP Proxy.
-
Just Got AT&T Fiber and their router. No longer can access Plex remotely.
WEEELLLLLL, there is a way to get into a true bridge mode on some ATT fiber plans/service by using something like EAP-Proxy: https://github.com/jaysoffian/eap_proxy
-
Does att let you use our own modem and router or we have to use theres ?
If you're up for a more complex setup, it is possible to put your home network on AT&T Fiber without going through their boarder gateway. I've had luck using https://github.com/jaysoffian/eap_proxy to bypass the boarder gateway for traffic flows.
- Install and run iPhone apps without using Xcode
What are some alternatives?
Parallel Tests - Ruby: 2 CPUs = 2x Testing Speed for RSpec, Test::Unit and Cucumber
pfatt - Enable true bridge mode for AT&T U-Verse and pfSense (this is a fork of an original repository https://github.com/aus/pfatt. Since it is not available anymore, I'll do my best to maintain a copy for people that still need a bypass)
vcr - Record your test suite's HTTP interactions and replay them during future test runs for fast, deterministic, accurate tests.
bgw210-root
Spring - Rails application preloader
Mosh - Mobile Shell
timecop - A gem providing "time travel", "time freezing", and "time acceleration" capabilities, making it simple to test time-dependent code. It provides a unified method to mock Time.now, Date.today, and DateTime.now in a single call.
arduino_midi_library - MIDI for Arduino
Wrong - Wrong provides a general assert method that takes a predicate block. Assertion failure messages are rich in detail.
miceforest - Multiple Imputation with LightGBM in Python
Appraisal - A Ruby library for testing your library against different versions of dependencies.
automount - Simple devd(8) based automounter for FreeBSD