Skip to content

Instantly share code, notes, and snippets.

@lkfken
lkfken / SearchTextInWord.ps1
Last active October 13, 2017 17:52
Search docx files that contain the given text in a given folder
# User Inputs --------------------------------------------------------------------------------------
[cmdletBinding()]
Param(
$Path = "C:\usr\documents\msdoc"
) #end param
$findText = "find specific text"
$docs = Get-childitem -path $Path -Recurse -Include *.docx,*.doc |
where {$_.LastWriteTime -gt [datetime]"1/1/2000" -AND $_.lastwritetime -le [datetime]"12/31/2020"}
#---------------------------------------------------------------------------------------------------
@lkfken
lkfken / 001_msoffice_files.rb
Created June 21, 2017 00:04
Ruby Sequel Blob datatype
Sequel.migration do
up do
create_table(:office_files) do
primary_key :id
column :uuid, 'uniqueidentifier'
String :name
Date :created_at
File :file # datatype File = blob
end
end
@lkfken
lkfken / password_salt.rb
Created May 8, 2017 23:52
To demostrate how to add/use salt on password
require 'bcrypt'
require 'pp'
require 'base64'
require 'yaml'
require 'ostruct'
SECRET = 'my password'
puts '********** Base64 (not safe because it produces the same string every time)**********'
enc_64_string = "bXkgcGFzc3dvcmQ=\n"
@lkfken
lkfken / extract_year.rb
Created March 28, 2017 23:36
Sequel: add modulus support
ds_1 = People.select(:birth).select_append{year(:birth).as(:year)}
ds_1.first ##<Member @values={:birth=>1980-09-15 00:00:00 -0700, :year=>1980}>
ds_2 = People.select(:birth).select_append{(year(:birth) % 100 ).as(:year)}
# ds_2.first
# NoMethodError: undefined method `%' for #<Sequel::SQL::Function @name=>:year, @opts=>{}, @args=>[:birth]>
# Mostly because it is less common. It's defined in BitwiseMethods, which is only included in NumericExpression by default.
# Some of the BitwiseMethods overlap with the BooleanMethods that are included in GenericExpression.
@lkfken
lkfken / vlc_d100.rb
Last active December 1, 2017 17:34
save audio stream to .m4a file using VLC
require 'uri'
require 'pp'
require 'pathname'
url = URI('http://66.55.135.155:8000/Channel1')
##### VLC #####
stop_time = ARGV.shift # duration in secords
abort 'no stop tiime defined' unless stop_time
@lkfken
lkfken / sequel_sqlite_example.rb
Last active July 25, 2016 01:18
Convert CSV to Sqlite records.
require 'sequel'
require 'csv'
csv_records = CSV.read('records.csv')
DB = Sequel.connect('jdbc:sqlite::memory:')
DB.create_table(:records) do
Integer :id, :primary_key => true
String :member_id, :null => false
@lkfken
lkfken / bcrypt_example.rb
Created June 11, 2016 00:41
Ruby BCrypt example
require 'bcrypt'
require 'pp'
secret = 'my password'
BCrypt::Engine.cost = 4 # default is 10
password = BCrypt::Password.create(secret)
puts '********** create **********'
puts ['version:', password.version].join(' ')
@lkfken
lkfken / app.rb
Created November 3, 2015 22:41
Sequel #with_recursive CTE
DB = Sequel.connect('jdbc:sqlite::memory:')
DB.create_table(:categories) do
Integer :id, :primary_key => true
foreign_key :parent_id, :categories
String :name, :null => false
end
DB[:categories].import([:id, :parent_id, :name], [[1, nil, 'GPS'], [2, 1, 'Vehicle GPS'], [3, 1, 'Handheld GPS'], [4, nil, 'GPS Accessories']])
DB.create_table(:products) do
@lkfken
lkfken / Gemfile
Created November 3, 2015 22:30
Using JDBC & Sequel to connect to SQLite3
source 'https://rubygems.org'
gem 'jdbc-sqlite3', :platform => :jruby
gem 'sequel'
@lkfken
lkfken / gist:3014516
Created June 28, 2012 22:54
Random URL-safe tokens with SecureRandom
require 'securerandom'
SecureRandom.urlsafe_base64(8)