Skip to content

Instantly share code, notes, and snippets.

View rashkur's full-sized avatar
:octocat:

Roman S rashkur

:octocat:
View GitHub Profile
В 2005 годe телеканал «National Geographic» показал многосерийный документальный фильм о способностях человека убивать человека.
В 1947 году американский генерал Маршалл организовал опрос ветеранов Второй мировой войны из БОЕВЫХ пехотных частей с целью определить поведение солдата и офицера в реальных боевых действиях. Результаты оказались неожиданными. Менее 25% солдат и офицеров боевых пехотных частей армии США во время боя стреляли в сторону противника. И только 2% сознательно целились во врага.
Аналогичная картина была и в ВВС: более 50% сбитых американскими летчиками самолетов противника приходилось на 1% летчиков.
Выяснилось, что в тех видах боев, где противник воспринимается как человек и личность (это пехотные бои, авиационные дуэли истребителей и пр.), - армия неэффективна, и практически весь урон, причиняемый противнику, создается только 2% личного состава, а 98% не способны убивать.
Совсем иная картина там, где военные не видят противника в лицо. Эффективность танков и артиллерии тут на порядок в
-- Хаос во всей инфраструктуре Майл Ру (вспомнить только колхоз при правке зон и мониторинга. мониторинг - отдельная грустная песня)
-- Монотонный неавтоматизированный труд. Большинство операций делается вручную или какими-то скриптами, которые каждый админ сам себе пишет. Даже нет интерфейсов для заведения админов. Это следствие следующего пункта
-- Расхождение интересов эксплуатации с интересами программистов:они работают чтобы сдать побольше тасков, реализующих новую бизнес-логику и ляпают нежизнеспособный код, который помимо плачевной стабильности ещё и в рабочем состоянии управляется инструментальным образом. Это выглядит, как если бы каналы на телевизоре можно было бы переключать только перемкнув отвёрткой нужные контакты под кожухом вместо удалённого управления пультом. Контакты тоже нужно знать или спрашивать у коллег, потому что документация неполна или отсутствует. Мы работаем, чтобы его эксплуатировать, нам выгоднее, чтобы он был стабильным и легко управляемым.
-- Непродвижение интересов руководств
@rashkur
rashkur / chrome_icon_fixer
Created September 7, 2014 19:59
chrome icon fixer
import ConfigParser, mmap
config_file = "/usr/share/applications/google-chrome.desktop"
add_string_to_each_section = ["StartupWMClass", "Google-chrome-stable"]
option = add_string_to_each_section[0]
value = add_string_to_each_section[1]
class Fixer:
def check(self, cf, option, value):
1) Modify /usr/lib/python2.4/site-packages/grub/GrubConf.py on the XenServer machine
2) Line 428, change:
if arg.strip() == "${saved_entry}":
to
if arg.strip() == "${saved_entry}" or arg.strip() == "${next_entry}":
driftfile /var/lib/ntp/ntp.drift
statsdir /var/log/ntpstats/
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 14
$def[1] .= "".
# incoming
"DEF:inbytes=$RRDFILE[1]:$DS[1]:MAX ".
"CDEF:intraffic=inbytes,$unit_multiplier,* ".
"CDEF:inmb=intraffic,1048576,/ ".
"VDEF:consumed=intraffic,TOTAL ".
"AREA:inmb#00e060:\"in \" ".
"GPRINT:intraffic:LAST:\"%7.1lf %s$unit/s last\" ".
"GPRINT:intraffic:AVERAGE:\"%7.1lf %s$unit/s avg\" ".
"GPRINT:intraffic:MAX:\"%7.1lf %s$unit/s max\\n\" ".
Section "ServerLayout"
Identifier "Layout0"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
Screen 0 "Acer V243H"
Screen 1 "Samsung S27C650" LeftOf "Acer V243H"
EndSection
Section "Files"
EndSection
@rashkur
rashkur / buildgraph.sh
Last active August 29, 2015 14:26
build png from nginx access log
#!/bin/bash
FILE=$1
FDATE=$(head -1 $FILE |awk '{print $4}'|sed -e 's/\[//'|sed -e 's/\//-/g'|sed -e 's/:/ /')
FDATE_S=$(date -d "$FDATE" '+%s');
FDATE_T=$((FDATE_S + 3600));
COUNT=0
DATAFILE=$(mktemp)
import urllib2, simplejson as json
manager = urllib2.HTTPPasswordMgrWithDefaultRealm()
manager.add_password(None, 'https://robot-ws.your-server.de', 'login', 'password')
handler = urllib2.HTTPBasicAuthHandler(manager)
opener = urllib2.build_opener(handler)
def get_rdns(addr):
try:
rdns = opener.open('https://robot-ws.your-server.de/rdns/'+addr)
@rashkur
rashkur / post-receive
Last active November 26, 2015 11:11
update remote nginx configs from gitlab hook
...
if repo_path.include? "YOUR_REPO.git"
system('/some/path/update-front.sh')
end
...