Skip to content

Instantly share code, notes, and snippets.

View cjavdev's full-sized avatar
👉

CJ Avilla cjavdev

👉
View GitHub Profile
@cjavdev
cjavdev / keybindings.json
Last active September 5, 2024 13:42
hjlk vim nav and test runner in vs code
// Place your key bindings in this file to override the defaultsauto[]
[
{
"key": "ctrl+e",
"command": "-extension.vim_ctrl+e",
"when": "editorTextFocus && vim.active && vim.use<C-e> && !inDebugRepl"
},
{
"key": "ctrl+a",
"command": "-extension.vim_ctrl+a",
@cjavdev
cjavdev / test.rb
Created August 27, 2024 13:48
Rails 7.2 ApplicationSystemTestCase missing host
# config/environments/test.rb
# ...
# Already had this:
config.action_mailer.default_url_options = { host: "www.example.com" }
# Had to add this:
Rails.application.routes.default_url_options = { host: "www.example.com" }
rails r 'require "redis"; redis = Redis.new; pattern = "jbuilder/*"; cursor = 0; loop do;cursor, keys = redis.scan(cursor, match: pattern);redis.del(*keys) unless keys.empty?;break if cursor == "0";end;'
@cjavdev
cjavdev / dump.rake
Created October 5, 2023 13:17
Handy little rake task for dumping prod db locally then redacting
namespace :dump do
task db: :environment do
if !Rails.env.development?
raise "This task is only available in development environment"
end
puts "Removing potential existing backups..."
if File.directory?("/tmp/backups")
FileUtils.rm_rf("/tmp/backups")
end
ActiveRecord::Base.connection.execute(<<-SQL)
UPDATE projects
SET comments_count = (
SELECT COUNT(*)
FROM comments
WHERE comments.commentable_id = projects.id
AND comments.commentable_type = 'Project'
)
SQL
// TODO: Make typescript happy here.
type JSONValue =
| string
| number
| boolean
| { [x: string]: JSONValue }
| Array<JSONValue>;
interface JSONObject {
[x: string]: JSONValue;
if ARGV.empty?
data = DATA.readlines(chomp: true)
else
data = File.readlines(ARGV[0], chomp: true)
end
solved = {}
expressions = {}
data.each do |line|
if ARGV.empty?
data = [1, 2, -3, 3, -2, 0, 4]
else
data = File
.readlines(ARGV[0], chomp: true)
.map(&:to_i)
end
def mix(data)
# iterate over all the elements and
if ARGV.empty?
data = DATA.readlines(chomp: true)
else
data = File.readlines(ARGV.first, chomp: true)
end
def blueprints(data)
data.map do |line|
match = /Blueprint (?<id>\d+): Each ore robot costs (?<ore_robot_ore>\d+) ore. Each clay robot costs (?<clay_robot_ore>\d+) ore. Each obsidian robot costs (?<obsidian_robot_ore>\d+) ore and (?<obsidian_robot_clay>\d+) clay. Each geode robot costs (?<geode_robot_ore>\d+) ore and (?<geode_robot_obsidian>\d+) obsidian./.match(line)