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.
class Board
class BoardOccupiedError < StandardError
end
attr_reader :board
attr_reader :last_step_successful
def initialize
@board = []
@last_step_successful = true
@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 / 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:

@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 }}
Мы поняли: зерги нелюди. Отныне слово «зерг» для нас самое страшное проклятье. Отныне слово «зерг» разряжает ружьё. Не будем говорить. Не будем возмущаться. Будем убивать. Если ты не убил за день хотя бы одного зерга, твой день пропал. Если ты думаешь, что за тебя зерга убьёт твой сосед, ты не понял угрозы. Если ты не убьёшь зерга, зерг убьёт тебя. Он возьмёт твоих и будет мучить их в своем окаянном Улье. Если ты не можешь убить зерга пулей, убей зерга штыком. Если на твоём участке затишье, если ты ждёшь боя, убей зерга до боя. Если ты оставишь зерга жить, зерг сожрет морпеха и опозорит медика. Если ты убил одного зерга, убей другого — нет для нас ничего веселее трупов зергов. Не считай дней. Не считай вёрст. Считай одно: убитых тобою зергов. Убей зерга! — это просит старуха-мать. Убей зерга! — это молит тебя дитя. Убей зерга! — это кричит родная земля. Не промахнись. Не пропусти. Убей!
=== Мое мнение в целом по последним тредам 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
From ebb2c8b312361be7dc02ab6761e551ed199df409 Mon Sep 17 00:00:00 2001
From: Yaroslav Markin <yaroslav@markin.net>
Date: Fri, 11 Dec 2009 01:39:28 +0300
Subject: [PATCH] readline: build with --enable-multibyte
---
Library/Formula/readline.rb | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/Library/Formula/readline.rb b/Library/Formula/readline.rb