Skip to content

Instantly share code, notes, and snippets.

@yaroslav
yaroslav / nuke-google-keystone.sh
Created December 14, 2020 11:06
Nuke Google Keystone without removing Google Chrome
sudo rm -R ~/Library/Google/GoogleSoftwareUpdate/
sudo touch ~/Library/Google/GoogleSoftwareUpdate
sudo chmod 444 ~/Library/Google/GoogleSoftwareUpdate
sudo rm ~/Library/LaunchAgents/com.google.keystone.agent.plist
sudo rm ~/Library/LaunchAgents/com.google.keystone.xpcservice.plist
sudo rm ~/Library/Preferences/com.google.Keystone.Agent.plist
sudo rm -R ~/Library/Caches/com.google.Keystone*
# reboot.
# use brew cask to install and update google-chrome.
@yaroslav
yaroslav / cachebuster.rb
Last active July 7, 2023 12:43
Jekyll assets cachebuster (aka fingerprint) filter — no asset pipeline, no nonsense, just a single simple filter. Must-have for CDN-enhanced Jekyll sites.
require 'digest'
module Jekyll
# Jekyll assets cachebuster filter
#
# Place this file into `_plugins`.
module CachebusterFilter
# Usage example:
#
# {{ "/style.css" | cachebuster }}
@yaroslav
yaroslav / guetzli-all
Created March 25, 2017 20:53
A script to run guetzli recursively for all JPEG files in current directory and lower
#!/bin/bash
find . -name '*.jp*' -print0 | xargs -0 -I{} -t guetzli --quality 90 {} {}
@yaroslav
yaroslav / sessions.rake
Created November 2, 2008 19:16
Rake task for Ruby on Rails for cleaning up ActiveRecord session store table from expired sessions. A bit lame (talk about logger.info not working in production) but still.
namespace :db do
namespace :sessions do
desc "Clean up expired Active Record sessions (updated before ENV['EXPIRE_AT'], defaults to 1 month ago)."
task :expire => :environment do
Rails.logger.info "Cleaning up expired sessions..."
puts "Cleaning up expired sessions..."
time = ENV['EXPIRE_AT'] || 1.month.ago.to_s(:db)
rows = CGI::Session::ActiveRecordStore::Session.delete_all ["updated_at < ?", time]
Rails.logger.info "Expired sessions cleanup: #{rows} session row(s) deleted."
puts "Expired sessions cleanup: #{rows} session row(s) deleted."
class Board
class BoardOccupiedError < StandardError
end
attr_reader :board
attr_reader :last_step_successful
def initialize
@board = []
@last_step_successful = true
@yaroslav
yaroslav / keybase.md
Created December 10, 2016 09:25
keybase.md

Keybase proof

I hereby claim:

  • I am yaroslav on github.
  • I am yaroslav (https://keybase.io/yaroslav) on keybase.
  • I have a public key ASDYfVUjNwxEF7PtNPQu3HgQ_FQxkcoYqcoso0Cx14ha-Qo

To claim this, I am signing this object:

Мы поняли: зерги нелюди. Отныне слово «зерг» для нас самое страшное проклятье. Отныне слово «зерг» разряжает ружьё. Не будем говорить. Не будем возмущаться. Будем убивать. Если ты не убил за день хотя бы одного зерга, твой день пропал. Если ты думаешь, что за тебя зерга убьёт твой сосед, ты не понял угрозы. Если ты не убьёшь зерга, зерг убьёт тебя. Он возьмёт твоих и будет мучить их в своем окаянном Улье. Если ты не можешь убить зерга пулей, убей зерга штыком. Если на твоём участке затишье, если ты ждёшь боя, убей зерга до боя. Если ты оставишь зерга жить, зерг сожрет морпеха и опозорит медика. Если ты убил одного зерга, убей другого — нет для нас ничего веселее трупов зергов. Не считай дней. Не считай вёрст. Считай одно: убитых тобою зергов. Убей зерга! — это просит старуха-мать. Убей зерга! — это молит тебя дитя. Убей зерга! — это кричит родная земля. Не промахнись. Не пропусти. Убей!
=== Мое мнение в целом по последним тредам ror2ru:
Я считаю, что любое суждение по отношению к открытому (FOSS) проекту «они делают плохо» [http://www.koziarski.net/archives/2007/12/1/they] без непосредственного вовлечения в проект (см. ниже) а) малоконструктивно б) является оскорбительным по отношению к людям, которые на безвозмездной основе убивают свое время на проект. Если инженер пользуется открытым решением и оно его не устраивает — он может:
1. Ничего не делать и ждать, когда проблему пофиксят за него (но: не умеешь делать — не критикуй других).
2. Перестать пользоваться проектом: переключиться на другой или сделать все самому.
3. Предложить свои услуги по решению и включиться в разработку. В любом нормальном FOSS проекте есть текст "Contributing", где обычно рассказывают, как это сделать. Если патч получился плохим — исправить, если не совпадает с «линией партии» — поговорить с ведущими разработчиками и решить, что можно делать дальше.
4. Если не хватает квалификации или ресурсов, но проект важен дл
[PROJECT_ROOT]/vendor/gems/thinking-sphinx-1.3.16/lib/thinking_sphinx/active_record.rb:192:in `add_sphinx_index'
[PROJECT_ROOT]/vendor/gems/thinking-sphinx-1.3.16/lib/thinking_sphinx/active_record.rb:193:in `add_sphinx_index'
[PROJECT_ROOT]/vendor/gems/thinking-sphinx-1.3.16/lib/thinking_sphinx/active_record.rb:193:in `each'
[PROJECT_ROOT]/vendor/gems/thinking-sphinx-1.3.16/lib/thinking_sphinx/active_record.rb:193:in `add_sphinx_index'
[PROJECT_ROOT]/vendor/gems/thinking-sphinx-1.3.16/lib/thinking_sphinx/active_record.rb:159
[PROJECT_ROOT]/vendor/gems/thinking-sphinx-1.3.16/lib/thinking_sphinx/active_record.rb:174:in `call'
[PROJECT_ROOT]/vendor/gems/thinking-sphinx-1.3.16/lib/thinking_sphinx/active_record.rb:174:in `define_indexes'
[PROJECT_ROOT]/vendor/gems/thinking-sphinx-1.3.16/lib/thinking_sphinx/active_record.rb:173:in `each'
[PROJECT_ROOT]/vendor/gems/thinking-sphinx-1.3.16/lib/thinking_sphinx/active_record.rb:173:in `define_indexes'
[PROJECT_ROOT]/vendor/gems/thinking-sphinx-1.3.16/lib/thinking_sphinx
@yaroslav
yaroslav / Install Ruby Enterprise Edition on OS X.sh
Created January 21, 2010 13:03
Install Ruby Enterprise Edition on OS X
sudo ./installer -a /usr/local --no-tcmalloc -c --with-readline-dir=/usr/local