Skip to content

Instantly share code, notes, and snippets.

View backpackerhh's full-sized avatar
🏠
Working from home

David Montesdeoca backpackerhh

🏠
Working from home
View GitHub Profile
@backpackerhh
backpackerhh / core-set.xml
Created May 23, 2014 19:03
XML World-Countries XPath and XQuery Exercises
<!-- 1. Return the area of Mongolia. -->
<!-- Reminder: To return the value of an attribute attr, you must use data(@attr), although just @attr may be used in comparisons. You will need to remember this for some later questions as well. -->
//country[@name = "Mongolia"]/data(@area)
<!-- 2. Return the names of all cities that have the same name as the country in which they are located. -->
//city[name = parent::country/data(@name)]/name
@backpackerhh
backpackerhh / core-set.xsl
Created May 23, 2014 19:05
XML World-Countries XSLT Exercises
<!-- 1. Return all countries with population between 9 and 10 million. Retain the structure of country elements from the original data. -->
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="country[@population &gt; 9000000][@population &lt; 10000000]">
<xsl:copy-of select="." />
</xsl:template>
<xsl:template match="text()" />
</xsl:stylesheet>
@backpackerhh
backpackerhh / benchmark.rb
Last active December 10, 2015 19:36
Performance of different block invocations using Ruby 2.1.2
# Adapted from http://blog.sidu.in/2008/01/ruby-blocks-redux-ruby-190-ruby-186-and.html
require 'benchmark'
def implicit(*args)
yield args.join(' ')
end
def explicit(*args, &block)
block.call args.join(' ')
@backpackerhh
backpackerhh / inflections.rb
Last active September 18, 2017 10:24
Inflections
# Be sure to restart your server when you modify this file.
# Add new inflection rules using the following format
# (all these examples are active by default):
ActiveSupport::Inflector.inflections do |inflect|
# inflect.plural /^(ox)$/i, '\1en'
# inflect.singular /^(ox)en/i, '\1'
# inflect.irregular 'person', 'people'
# inflect.uncountable %w( fish sheep )
inflect.plural /(or)$/i, '\1es'
@backpackerhh
backpackerhh / feature_helpers.rb
Last active March 3, 2017 09:10
Custom helpers for integration/acceptance tests
module FeatureHelpers
# Finds a file field on the page and attach a file given its path
def enhanced_attach_file(path)
field = find('input[type=file]', visible: false)
page.execute_script %($("##{field[:id]}").show())
attach_file field[:id], path.to_s
end
# Finds a file field on the page and attach a file given its path
def enhanced_attach_file(path)
@backpackerhh
backpackerhh / remove-old-snaps.sh
Created October 2, 2023 08:43
Remove old snaps in Ubuntu
#!/bin/bash
# Removes old revisions of snaps
# CLOSE ALL SNAPS BEFORE RUNNING THIS
set -eu
snap list --all | awk '/disabled/{print $1, $3}' |
while read snapname revision; do
snap remove "$snapname" --revision="$revision"
done

Keybase proof

I hereby claim:

  • I am backpackerhh on github.
  • I am backpackerhh (https://keybase.io/backpackerhh) on keybase.
  • I have a public key ASAbGAEAN_vx-W97CRO0GG3xEQReFKUk6y65OpxeZCaPugo

To claim this, I am signing this object:

@backpackerhh
backpackerhh / domain_events_providers.rb
Created March 25, 2024 18:26
Event bus implemented in Ruby
YourApp.register_provider :domain_events, namespace: true do # dry-system
prepare do
Dir[target.root.join("path/to/**/*_event_subscriber.rb")].each { |file| require file }
register "subscribers", EventSubscriber.subclasses
end
start do
register "bus", InMemoryEventBus.new
register "async_bus", SidekiqEventBus.new
@backpackerhh
backpackerhh / config.rb
Last active May 4, 2024 22:12
Configuration holder
class Config
def initialize(options = {})
@config = options.each_with_object({}) do |(key, value), memo|
memo[key.to_sym] = assign_value(value)
end
rescue NoMethodError
raise ArgumentError, "Invalid value name"
end
def method_missing(method_name, *args, &block)
@backpackerhh
backpackerhh / instructions.md
Last active May 7, 2024 13:37
Safebox API Challenge

Safebox API Challenge

Security-ish is a security company which main business is taking care of houses and people belongings.

Their next product launch is Safe-ish, a remote-control safebox that they sell to their customer in order to keep their belongings as safe as possible, providing them the ability to control their safebox remotely through a mobile app.

As you know, the API should be strong and secure enough to avoid leaks and security issues.