Skip to content

Instantly share code, notes, and snippets.

View akostadinov's full-sized avatar

Aleksandar N. Kostadinov akostadinov

View GitHub Profile
@akostadinov
akostadinov / xmr-stak.service
Last active May 14, 2021 07:35
Example xmr-stak systemd service unit file.
[Unit]
Description=xmr-stak miner
After=syslog.target network.target
[Service]
Type=simple
# interesting info about starting as regular user: https://bbs.archlinux.org/viewtopic.php?id=162297
User=username
LimitMEMLOCK=256M
EnvironmentFile=-/etc/sysconfig/xmr-stak
@akostadinov
akostadinov / timebench.groovy
Last active May 10, 2021 04:26
Benchmark Java Thread-Safe Time Formatter Implementations
@Grapes([
@Grab(group='org.gperfutils', module='gbench', version='[0.4,)'),
@Grab(group='org.apache.commons', module='commons-lang3', version='[3.7,)'),
@Grab(group='joda-time', module='joda-time', version='[2.9.9,)')
])
/**
* Java 8 DateTimeFormatter
*/
import java.util.Date;
@akostadinov
akostadinov / pipeline_examples.groovy
Last active April 15, 2020 14:11
Jenkins Pipeline code Examples
// clone in sub-directory
checkout([
$class: 'GitSCM',
branches: [[name: 'master']],
doGenerateSubmoduleConfigurations: false,
extensions: [[
$class: 'RelativeTargetDirectory',
relativeTargetDir: 'some/path'
]],
submoduleCfg: [],
@akostadinov
akostadinov / xml_builder.rb
Created January 26, 2017 10:37
Building XML under Rails 5.
require 'builder'
# See more about syntax on
# http://api.rubyonrails.org/classes/ActionView/Base.html
# https://github.com/jimweirich/builder
# http://builder.rubyforge.org/
xml = +""
builder = Builder::XmlMarkup.new(target: xml, indent: 2)
builder.rootelementname { |x|
@akostadinov
akostadinov / post_string_file.rb
Created January 26, 2017 10:19
ruby rest-client posting String as a file multipart/form-data
# rest-client recognizes files in multipart/form-data by checking
# the object type passed as the field content. We need to craft
# our string to appear as a file IO. `#stringfile` does that.
# An alternative approach is to just write string to a file and
# pass file IO to rest-client but this would be suboptimal
# provided we already have the content as a String.
def stringfile(string,
filename="file_#{rand 100000}",
type=MIME::Types.type_for("xml").first.content_type)
@akostadinov
akostadinov / quine.rb
Created January 26, 2017 09:42
my first suboptimal ruby quine
pr = %q{puts %{pr = %q{#{pr}}}, pr}
puts %{pr = %q{#{pr}}}, pr
@akostadinov
akostadinov / rails_test.rb
Last active November 9, 2016 21:40
Rails Active Record simple test
# run by `ruby rails_test.rb`
# credits to https://github.com/rails/rails/issues/13744#issuecomment-32670636
gem 'activerecord', '5.0.0.1'
require 'active_record'
require 'minitest/autorun'
require 'logger'
# Ensure backward compatibility with Minitest 4
Minitest::Test = MiniTest::Unit::TestCase unless defined?(Minitest::Test)
@akostadinov
akostadinov / stack_trace.sh
Last active February 20, 2025 05:44
Get stack trace in Bash shell script/program.
# LICENSE: MIT, wtfpl or whatever OSS license you like
function get_stack () {
STACK=""
local i message="${1:-""}"
local stack_size=${#FUNCNAME[@]}
# to avoid noise we start with 1 to skip the get_stack function
for (( i=1; i<$stack_size; i++ )); do
local func="${FUNCNAME[$i]}"
[ x$func = x ] && func=MAIN
local linen="${BASH_LINENO[$(( i - 1 ))]}"
@akostadinov
akostadinov / wsse_xml.rb
Last active June 13, 2016 14:59
generate XML WSSE credentials with the simple `wsse` gem.
require 'io/console'
require 'wsse'
header = WSSE::header('username', STDIN.noecho(&:gets).chomp)
def wsse_xml(user, password)
raw = WSSE::header(user, password)
# username = raw.gsub(/^.* Username="(.*)", PasswordDigest=".*(?!PasswordDigest)$/, '\\1')
digest = raw.gsub(/^.*, PasswordDigest="(.*)", Nonce=".*$/, '\\1')
nonce = raw.gsub(/^.*, Nonce="(.*)", Created=".*$/, '\\1')
#!/usr/bin/env ruby
# see https://github.com/sparklemotion/nokogiri/issues/1200
require 'nokogiri'
src =<<EOD
<wrapper xmlns="ns">
<record xml:id="r1" xmlns:extra="extra">
<field>aaa</field>