Skip to content

Instantly share code, notes, and snippets.

@olmstadfm
olmstadfm / 01 application_helper.rb
Last active September 7, 2015 12:06
Generic edit and destroy buttons
module ApplicationHelper
def button_destroy(object)
link_to_destroy(object, class: 'btn btn-default')
end
def button_destroy_small(object)
link_to_destroy(object, class: 'btn btn-default btn-xs')
end
@olmstadfm
olmstadfm / insanity.py
Created November 14, 2015 13:42
В питоне можно переопределить true и false через обычное присваивание
True=False
print True # => False
if True:
print "boring..."
else:
print "wait, what?!"
# => wait, what?!
@olmstadfm
olmstadfm / key-redefine-trick.el
Created November 14, 2015 13:55
Прикольный способ для изготовления кнопок с переключателем в emacs
;; Когда ты нажимаешь на кнопку в первый раз, выполняется функция,
;; которая делает то, что ей положено (в этом примере - начинает
;; записывать макрос) и переопределяет клавишу по которой была
;; вызвана функция на другую функцию (в этом примере - остановка записи
;; макроса).
(defun toggle-kbd-macro-recording-on ()
"One-key keyboard macros: turn recording on."
(interactive)
(define-key global-map (this-command-keys) ; <= HERE
@olmstadfm
olmstadfm / prepare-commit-msg.sh
Created December 3, 2015 12:03
Включить номер задачи в текст комментария для коммита
#!/bin/sh
issue_id=$(git rev-parse --abbrev-ref HEAD | grep --only-matching -P '^\d+')
if [ -n "$issue_id" ]; then
echo "Связано c #$issue_id" >> $1
fi
exit 0
@olmstadfm
olmstadfm / what_have_i_done.sh
Last active December 3, 2015 12:58
Посмотреть коммиты во всех репозиториях в папке за определенную дату
# Run like this:
# what_have_i_done 2015-12-01
function what_have_i_done {
cd /opt/redmine/plugins/
DATE=$1;
NAME=$(git config --global user.name);
for repo in $(find . -maxdepth 1 -type d);
do
echo $repo;
@olmstadfm
olmstadfm / tap.rb
Created December 4, 2015 07:25
Ruby: Object#tap
# Прикольное форматирование. Мне нравилось в два столбца
# логи писать параллельно с кодом (за это меня все ненавидели),
# а тут на уровне синтаксиса языка.
(1..10) .tap {|x| puts "original: #{x.inspect}"}
.to_a .tap {|x| puts "array: #{x.inspect}"}
.select {|x| x%2==0} .tap {|x| puts "evens: #{x.inspect}"}
.map { |x| x*x } .tap {|x| puts "squares: #{x.inspect}"}
# via http://ruby-doc.org/core-2.1.1/Object.html
@olmstadfm
olmstadfm / 01_README.md
Last active July 19, 2016 08:35
Emacs polymode for LaTex with erb-chunks

Emacs polymode for LaTex with erb-chunks

Коллега генерировал pdf c помощью latex, а для подстановки переменных в шаблон использовал erb. Ну и огорчался конечно, что ни подсветка синтаксиса не работает, ни автодополнение. И тут мне стало интересно. Поэтому с помощью библиотеки Polymode был изготовлен режим для emacs, который внутри erb-блоков включал ruby-mode со всеми плюшками, а на всем остальном тексте работал как latex-mode.

@olmstadfm
olmstadfm / themerc
Created December 5, 2015 07:25
Get rid of light window border in openbox
!! /usr/share/themes/#{your theme}/openbox-3/themerc
border.width: 1
border.color: #000
window.active.border.color: #000
window.inactive.border.color: #000
@olmstadfm
olmstadfm / proxy.el
Last active July 19, 2016 08:23
Emacs behind HTTP proxy with authentification
(setq url-proxy-services
'(("http" . "ip:port")
("https" . "ip:port")))
(setq url-http-proxy-basic-auth-storage
(list (list "ip:port"
(cons "Input your LDAP UID !"
(base64-encode-string "login:pass")))))
# via some good guys from stackoverflow
@olmstadfm
olmstadfm / unlimited_random_pdfs.rb
Last active January 11, 2016 14:55
Бесконечная генерация рандомных pdf через fuse
# Для тестирования было нужно много pdf, различающихся хеш-суммой.
# Скрипт внизу через fuse создает папку с одним виртуальным файлом.
# Каждый раз, когда кто-то обращается к файлу, скрипт вычисляет что
# он отдаст. В моем случае это тупо врем десять раз, потому что мне
# достаточно чтобы просто хеши у файлов разные были.
#
# Это просто немного исправленный hello world из примеров работы с
# гемом, но полезно, да.
require 'rfusefs'