Skip to content

Instantly share code, notes, and snippets.

@ciastek
ciastek / README
Created April 28, 2024 21:01
Encryption Key Vault on USB drive for Synology's Full Volume Encryption
Synology DSM 7.2 introduced Full-Volume Encryption.
Encryption Key Vault can by stored locally or on a remote Synology NAS (KMIP server).
Local Encryption Key Vault is protected with a password, but it doesn't protect against
loss of an entire NAS device (by design, see [1]), because encrypted volumes are
automatically unlocked on boot. See [2] for a way to access an encrypted volume.
I don't know why Synology doesn't offer to store the Encryption Key Vault on USB drive
as it does with Key Manager/Key Store used by encrypted shared folders.
Anyway, DSM 7.2 does support Encryption Key Vault on USB drive, it's just not exposed
to the user. Maybe it's not yet ready for prime time?
@ciastek
ciastek / private.xml
Last active October 25, 2016 01:19 — forked from Quenz/private.xml
Steam Controller fixes, for Karabiner
<?xml version="1.0"?>
<root>
<item>
<name>Steam Controller fixes</name>
<item>
<name>Volume Up [from F17]</name>
<identifier>private.steam_controller.change_f17_to_volume_up</identifier>
<device_only>DeviceVendor::RawValue::0x28de, DeviceProduct::RawValue::0x1147</device_only>
<autogen>__KeyToKey__ KeyCode::F17, ConsumerKeyCode::VOLUME_UP</autogen>
@ciastek
ciastek / README
Created February 23, 2016 10:51 — forked from anonymous/README
Use bootstrap-sass npm package with Phoenix's brunch
1) install npm packages
2) update brunch-config.js
3) remove Bootstrap from web/static/css/app.css
4) rename web/static/css/app.css to web/static/css/app.scss
5) update web/static/css/app.scss
@ciastek
ciastek / gist:b9d64d31bf473b2aaf77
Created July 2, 2014 09:06
Ubuntu 14.04, IPv6
vagrant@ubuntu:~$ curl --head github.com
curl: (6) Could not resolve host: github.com
vagrant@ubuntu:~$ curl --head --ipv4 github.com
HTTP/1.1 301 Moved Permanently
(...)
vagrant@ubuntu:~$ sudo sysctl -p
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
vagrant@ubuntu:~$ ip addr
@ciastek
ciastek / gist:4f37888d82b805848cd2
Created June 8, 2014 06:09
JPG+EXIF, add timezone info
EXIF doesn't support timezone info, but XMP do.
Add XMP tag with timezone info based on EXIF tag:
$ exiftool '-xmp:dateTimeOriginal<${CreateDate}+02:00' dir-with-images
@ciastek
ciastek / README
Last active July 28, 2022 13:33
[SOLVED] Why sudo asks for user password in tmux/ssh session?
In console:
root# passwd -d user
In console:
login: user
user$ sudo whoami
root
user$ tmux
$ rvm requirements ruby-2.1.0 --autolibs=fail
Checking requirements for suse.
/srv/app/.rvm/scripts/functions/pkg: line 6: pkg-config: command not found
Missing custom packages: yaml
(...)
$ rvm requirements ruby-2.1.0 --autolibs=disable
$
@ciastek
ciastek / gist:9389264
Created March 6, 2014 13:11
delayed_job + upstart
description "Start up app's delayed_job"
start on runlevel [2345]
stop on runlevel [06]
script
exec sudo -u rate bash -c 'export RAILS_ENV=production && cd /var/www/app/current && ./script/delayed_job start'
end script
@ciastek
ciastek / lxc-attach substitute
Created January 22, 2014 03:30
Run script in LXC container, non-interactive
# create container with key authentication
sudo lxc-create -t ubuntu -n test -- -S /root/.ssh/id_rsa.pub
sudo lxc-start -n test -d
sudo lxc-wait -n test -s RUNNING
# enable passwordless sudo for ubuntu user
chroot /var/lib/lxc/test/rootfs sh -c "echo 'ubuntu ALL=NOPASSWD:ALL' > /etc/sudoers.d/ubuntu; chmod 440 /etc/sudoers.d/ubuntu"
# now you can run commands in container, example: install avahi-daemon
ssh `cat /var/lib/misc/dnsmasq.leases | grep --word-regexp test | awk '{print $3}'` -l ubuntu -o "StrictHostKeyChecking no" sudo apt-get install -y avahi-daemon
@ciastek
ciastek / fatfree-to-highrise.rb
Created April 3, 2013 11:03
Export contacts from Fat Free CRM and import into Highrise. Copied from https://github.com/tractis/crm_export .
class Export
def perform
@contacts = Contact.where('id > ?', 272)
@organizations = Account.where('id > ?', 261)
@single_address_field = Setting.single_address_field
unless @contacts.blank?
require 'csv'
csv_string = CSV.generate(force_quotes: true, row_sep: "\r\n") do |csv|
csv << ['Name' , 'First name', 'Last name', 'Company', 'Title', 'Background', 'LinkedIn URL', 'Address - Work Street', 'Address - Work City', 'Address - Work State', 'Address - Work Zip', 'Address - Work Country', 'Address - Home Street', 'Address - Home City', 'Address - Home State', 'Address - Home Zip', 'Address - Home Country', 'Address - Other Street', 'Address - Other City', 'Address - Other State', 'Address - Other Zip', 'Address - Other Country', 'Phone number - Work', 'Phone number - Mobile', 'Phone number - Fax', 'Phone number - Pager', 'Phone number - Home', 'Phone number - Skype', 'Phone number - Other', 'Email address - Work', 'Email address - Home', 'Email address - Other', 'Web address