Skip to content

Instantly share code, notes, and snippets.

@kascote
kascote / json_sqlite.md
Last active May 22, 2022 22:03
SQlite JSON queries

JSON and virtual columns in SQLite

reference: https://antonz.org/json-virtual-columns/

select value from events;

{"timestamp":"2022-05-15T09:31:00Z","object":"user","object_id":11,"action":"login","details":{"ip":"192.168.0.1"}}
{"timestamp":"2022-05-15T09:32:00Z","object":"account","object_id":12,"action":"deposit","details":{"amount":"1000","currency":"USD"}}
{"timestamp":"2022-05-15T09:33:00Z","object":"company","object_id":13,"action":"edit","details":{"fields":["address","phone"]}}
@kascote
kascote / spinner.dart
Created July 11, 2019 16:45
flutter icon spinner
//
// https://stackoverflow.com/questions/55431496/font-awesome-spinners-icons-not-spinning-in-flutter
//
// Usage:
// Spinner(
// icon: FontAwesomeIcons.spinner,
// )
//
class Spinner extends StatefulWidget {
final IconData icon;
@kascote
kascote / blob_authenticatable.rb
Created September 4, 2018 15:53 — forked from dommmel/blob_authenticatable.rb
Devise authentication for Rails' ActiveStorage
# Rails controller concern to enable Devise authentication for ActiveStorage.
# Put it in +app/controllers/concerns/blob_authenticatable.rb+ and include it when overriding
# +ActiveStorage::BlobsController+ and +ActiveStorage::RepresentationsController+.
#
# Optional configuration:
#
# Set the model that includes devise's database_authenticatable.
# Defaults to Devise.default_scope which defaults to the first
# devise role declared in your routes (usually :user)
#
@kascote
kascote / uglifier.rb
Created December 7, 2017 21:31
Uglifiers don't return the filename with the error
JS_PATH = "app/assets/javascripts/**/*.js";
Dir[JS_PATH].each do |file_name|
puts "\n#{file_name}"
puts Uglifier.compile(File.read(file_name))
end
@kascote
kascote / msgbox.js
Created October 2, 2017 19:42
Replace Rails 5 alert dialog
promiseBasedConfirmPopup = new Promise((resolve) => {
// Show a nice popup and resolve to true/false
setTimeout(() => resolve(true), 2000)
})
$("a[data-confirm]").on("confirm", function(evt) {
// evt.target hold the clicked anchor from where
// can be extracted some data to build the popup
@kascote
kascote / dnsmasq
Last active July 22, 2017 22:39
add TLD to local dnsmask
# /etc/NetworkManager/dnsmasq.d/hosts.conf
address=/dev/127.0.0.1
address=/spk/192.168.1.98
address=/nfx/192.168.1.99
address=/spk2/192.168.1.97
@kascote
kascote / sql.sh
Created May 24, 2017 19:15
Parse Rails's database.yml and start psql
#!/bin/bash
parse_yaml() {
local prefix=$2
local s='[[:space:]]*' w='[a-zA-Z0-9_]*' fs=$(echo @|tr @ '\034')
sed -ne "s|^\($s\)\($w\)$s:$s\"\(.*\)\"$s\$|\1$fs\2$fs\3|p" \
-e "s|^\($s\)\($w\)$s:$s\(.*\)$s\$|\1$fs\2$fs\3|p" $1 |
awk -F$fs '{
indent = length($1)/2;
vname[indent] = $2;
@kascote
kascote / config.ru
Created November 2, 2016 20:35
Rails 2.3.x. config.ru to use with passenger for example
# Reference: http://guides.rubyonrails.org/v2.3.11/rails_on_rack.html#rackup
#
ENV["RAILS_ENV"] ||= ENV["RACK_ENV"]
# Require your environment file to bootstrap Rails
require ::File.dirname(__FILE__) + '/config/environment'
# Serve static assets from RAILS_ROOT/public directory
# use Rails::Rack::Static
# Dispatch the request
run ActionController::Dispatcher.new
@kascote
kascote / full_text_search.sql
Last active February 16, 2016 22:02
Postgres Full Text Search
CREATE TABLE messages (
title text,
body text,
tsv tsvector
);
CREATE TRIGGER tsvectorupdate BEFORE INSERT OR UPDATE
ON messages FOR EACH ROW EXECUTE PROCEDURE
tsvector_update_trigger(tsv, 'english', title, body);
# Natively, Enumerators get JSONized like "#<Enumerator::Lazy:0x007f8714807080>", or they explode, either of which is a problem.
# We want them to make an array, and do it lazily so we don't have to keep the items in memory!
class Enumerator
def to_json(state)
state.depth += 1
string = "[\n"
first_item = true
self.each do |item|