воскресенье, 20 декабря 2015 г.

вывод vcs информации в zsh prompt

Захотелось добавить немного радости в рутину кодинга, а именно, чтобы в подсказке шелла
(вы ведь в курсе что есть только один годный шелл и имя ему zsh?) было видно в какой ветке git или hg я сейчас стою. И я даже совсем не удивился, когда узнал что извращаться не нужно, и  под это дело имеется уже готовый zsh-модуль под названием vcs_info.

Чтобы всю эту красоту завести надо в ~/.zshrc добавить следующие строки

autoload -Uz vcs_info
zstyle ':vcs_info:*' actionformats '%F{5}(%f%s%F{5})%F{3}-%F{5}[%F{2}%b%F{3}|%F{1}%a%F{5}]%f'
zstyle ':vcs_info:*' formats '%F{5}(%f%s%F{5})%F{3}-%F{5}[%F{2}%b%F{5}]%f'
precmd () { vcs_info }
PS1='%F{5}[%F{2}%n@%m%F{5}%F{3}:%F{2}%3~%F{5}]%F{3}${vcs_info_msg_0_}%f%# '

тонкости настройки можно узнать пройдя по следующей ссылке.

вторник, 1 декабря 2015 г.

суббота, 7 ноября 2015 г.

ES6, how to avoid stack overflow in toJSON method implementation

class C {
   construcror() {
      this.id = 0;
  }
  toJSON() {
    // this causes stack overflow
    return JSON.stringify(this);
  }
}

Object.assign helps you

// this is right :)

toJSON() {
  return JSON.stringify(Object.assign({}, this));
}

суббота, 17 октября 2015 г.

понедельник, 5 октября 2015 г.

Установка агрументов командной строки для phantomjs в selenium-webriver (iojs)


let webdriver = require('selenium-webdriver'),
     By = require('selenium-webdriver').By,
     until = require('selenium-webdriver').until;

let ph = require('selenium-webdriver/phantomjs');

// global stop variable
let gStop = false;
let cliArgs = [
  '--load-images=no' // <-- catch you
];

let capabilities = new webdriver.Capabilities().
    set('phantomjs.cli.args', cliArgs);

let driver = new ph.Driver(capabilities);

температура воздуха в tmux


Погода у меня везде: в браузере, на таскбаре, в emacs.
Вот в tmux ее до сегодняшнего дня не было.
Для начала выведем в строку статуса температуру

1) устанавливаем curl и jq
aptitude -y install curl jq

2) создаем скрипт openweathermap.sh который получает температуру и записывает ее в файл
#!/bin/sh
curl -s "http://api.openweathermap.org/data/2.5/weather?id=548605" | jq '.main.temp' | awk '{printf "%.02f", $0-273.15}'>  ~/.weather

где id это id населенного пункта

3) запускаем скрипт например раз в 15 минут
crontab -e
15 * * * * $HOME/scripts/openweathermap.sh

4) в ~/.tmux.conf добавляем строку
set -g status-right '#[fg=green]][ #[fg=black]#(hostname -s) %H:%M %d-%b-%y #(< ~/.weather)'

при желании можно добавить влажность скорость ветра направление и любые параметры,
которые отдает api openweathermap.org