26 заметок с тегом

Полезное

Позднее Ctrl + ↑

Выбирайте выражения

Это второй мой пост, касающийся лингвистики, написан он в результате рефлексии по вчерашним хождениям по граблям, по которым я уже давно находился и забыл что они лежат на местах и ждут.

Переговорных ситуаций бывает много разных: бывают жесткие переговоры, когда вы кого-то требуете, от вас что-то требуют и отжимают, бывают партнерские, построенные на взаимоуважении и нацеленные на win-win. Понимание того, в какой переговорной ситуации и какое положение вы в этих переговорах занимаете — очень важно, это влияет и на то, какие языковые конструкции следует использовать.

Вчера вместо нужного мне действия я получил на свой запрос возмущение и посыл подальше :) Подумал что-то о людях, о том как я лично к этому всему отношусь, а дело-то по сути в том, что это именно я мог бы сделать так, чтобы все склеилось так как мне было нужно.

Aggression

Повелительное наклонение в переписке и переговорах звучит как агрессия. Это иногда уместно в жестких переговорах, но в целом гораздо более экологично строить нейтральные дзен-фразы:

— «Внесите в ваш белый список наши новые IP-адреса, с которых мы будем обращаться к вашему API»

— «Нужно внести в ваш белый список наши новые IP-адреса, с которых мы будем обращаться к вашему API»

— «Когда пришлете запрошенный список активных сервисов?»

— «Когда можем ждать запрошенный список активных сервисов?»

Восток дело тонкое.

Imperio!

Волшебное слово, которое позволяет на русском языке сконструировать фразу, косвенно и мягко побуждающую к действию звучит как вопрос «Можешь ..?» или «Можете ...?»

«Можете, пожалуйста, посмотреть, есть ли привязка префиксов к указанным id сервисов и прислать их список?»

Звучит не агрессивно, мягко, ненавязчиво и в абсолютно не приказном тоне. У получателя такого запроса есть возможность легко отказать в таком, ни к чему не обязывающем, вопросе. Но в большинстве случаев, вторая сторона предпочтет сделать это, чтобы получить удовольствие от того, что помогла такому вежливому собеседнику.

«Пожалуйста, посмотрите есть ли привязка префиксов к указанным id сервисов и пришлите их список»

Strike

Некоторые наши HR являются потрясающими коммуникаторами и иногда бомбят меня конструкциями вроде:

— Можешь сказать время, когда ты будешь готов встретиться с Леонидом Гудковым?

Да, конечно, могу сказать, язык же есть. Называю время и автоматически подписываюсь на то, что встречаюсь с господином Гудковым, хотя может быть я и не хотел вовсе :-)

2016   Люди   Полезное   Управление проектами

Про деловую переписку в мессенджерах

На основе некоторых рекомендаций для деловой переписки в письмах решил составить свой топ 10 правил для деловой переписки в Skype, Telegram и прочих мессенджерах:

1. Записывайте контакты в адресную книгу только по имени и фамилии + название компании. Это не только поможет вам быстро находить нужный чат, но и убережет от неприятностей при добавлении в группы и цитировании сообщений.

2. Говорите с человеком на одном языке. Это не только касается языка русский/английский, но и формы текста. Неформальный ответ на формальное обращение — неуважение к респонденту и демонстрация собственной низкой культуры.

3. В 2016 году net ni odnoj prichini ispolzovat translit

4. Сообщение должно быть точным, конкретным и лаконичным.

  • Точность — указывайте точные данные, на которые вы ссылаетесь: дату встречи, пункт повестки встречи, дату и тему какого-то письма или имя файла.
  • Конкретность — из письма должно быть точно понятно, ЧТО ИМЕННО требуется от получателя.
  • Лаконичность. Кто ясно мыслит, тот ясно излагает, и это видит ваш адресат. Поэтому не стоит излагать в трёх абзацах то, что можно было бы написать в трёх предложениях. Лаконичный деловой текст — это не сухость, а экономия времени и точность мысли.

Ваши эмоции или отношение к чему либо никого не интересуют. Пишите кратко и по делу.

5. Если сообщение содержит несколько вопросов, тем или задач, структурируйте их и отделяйте. Сплошной «поток мыли» сложно читать и можно пропустить, собственно, основной вопрос.

6. Как можно точнее отвечайте на просьбы, изложенные в сообщении. Ответ на просьбу или задачу «Сделаем!» неполон. «Сделаем к такой-то дате», «через столько-то дней», «после такого-то события» — это более определенный и точный ответ.

7. Текст не должен содержать ошибок! Опечатки не страшны, но если Вы в каждом письме пишете слова неверно, это становится заметно очень быстро и накладывает негативный отпечаток на имидж всей компании.

8. Исправьте сообщение, если заметили, что уже отправили сообщение с ошибкой.

9. Цитируйте текст оригинального сообщения или используйте функцию ответить.
При полном цитировании пишите текст ответа в конце сообщения (в письмах — наоборот)!

10. Помните о том, что все что вы пишете в мессенджер, может быть прочитано кем-то еще. Конфиденциальную информацию нужно отправлять в шифрованном чате или письмом.

Ссылки по теме:
Правила бизнес-общения в мессенджерах
11 неловких моментов при общении по email
Все про деловое письмо
Стикеры с котами

2016   Полезное

Про типы личности по Адизесу

Ицхак Адизес — эксперт в сфере повышения эффективности ведения бизнеса в своей книге «Идеальный руководитель. Почему им нельзя стать и что из этого следует» написал, что для эффективного управления компанией необходимо, чтобы в ней было 4 типа руководителей:

  • P. Производитель — нацеленный на краткосрочные результаты
  • A. Администратор — нацеленный на процессы и эффективность
  • E. Энтерпренер (предприниматель) — нацеленный на долгосрочные результаты и видение перспектив
  • I. Интегратор — нацеленный на эффективное взаимодействие людей в компании и блгоприятную психологическую атмосферу

Обычно в каждом управленце есть все эти качества, но наиболее ярко выражается какое-то одно или два, в то время как оставшиеся бывают на удовлетворительном уровне. Поэтому для гармонизации и эффективности управления, следует усиливать команду людьми с другими сильными сторонами.

Более подробно:
Типы руководителей
Стили управления PAEI
Тест на тип личности по Адизесу
Funky и Sexy менеджеры

Когда находится под самым носом то, что давно искал

Очень странное чувство, когда ты оперируя данными выгружеными из БД в эксельчике, выполняешь задачи быстрее, чем это делают программисты с SQL на перевес.

Да, и когда тебе нужно будет сравнивать списки и удалять дубли, не ходи больше сюда: http://www.esqsoft.com/tools/dedupe-list.htm

Эксель это умеет в 1 клик

И да, эксельчик позволяет писать/скриптовать SQL запросы без участия программистов.
Для этого в формулу нужно вписать запрос, и указать координаты значений. Как в старом добром Visual Basic кавычки нужно дублировать, а клеем является амперсанд (&).

="UPDATE ""service"" SET ""name"" = '"& D3 &"', ""description"" = '"& E3 &"', ""price"" = '"& C3 &"', ""out_prefix"" = '"& I3 &"', ""notify_text"" = '" & E3 & "', ""type"" = '" & G3 & "', ""url"" = '"& D3 &"' WHERE ""service_id"" = '"& A3 &"';"
2015   Полезное

Skype для iPad

Знаете почему скайп для iPad за день выжирает весь заряд аккумулятора?
Я долго не мог понять этого, и вдруг заметил: каждый раз, когда в скайп приходит сообщение, даже не мне лично, а в общий чатик, скайп заботливо включает экран push уведомлением, даже если экран укрыт smartcover. В итоге экран в течение дня просто долгое время находится во включенном состоянии.

2013   Полезное

Правило трех секунд

Правило трех секунд вообще прекрасно работает не только с девушками. Все сводится к тому, что нужно успеть сделать что-то до того, как успел испугаться, а потом уже поздно решаться, все уже произошло.

Многие челленджи, которые я совершал, происходили в основном с использованием этого способа.

2013   Полезное   Про себя

Чекины вконтакте

Мы с друзьями любим бывать в разных местах, и обычно чекинимся в разных «узловых» местах. Обычно это парки, кафе, гостиницы или театры. Честно говоря, я не знаю для чего мы это делаем :-)

Вокруг чекинов выросла целая индустрия. Например, в некоторых кафе за первый чекин дают бесплатную колу или печенье. А мэры Циферблатов могут посещать их бесплатно!
Появляются различные интересные сервисы. Вот, например, тепловая карта чекинов. Я её сделал на http://www.wheredoyougo.net/

Мои чекины автоматически транслируются на фейсбук и в твиттер, а вот с Вконтакте у Foursquare нет интеграции из коробки. Но и на старуху бывает проруха! Сразу же после путешествия в Петербург Сергей Рульков запустил сервис Re:chekin, позволяющий кросспостить чекины из foursquare вконтакте.

Выглядит симпатично, и посты попадают в ленту мгновенно.

2013   Полезное

Code sniffer

Снова копирую собственную статью из вики в бложек. Половина авторства принадлежит Сергею Бухарову.

Code sniffer — инструмент для инспекции кода на соответствие стандартам. Существует огромное количество стандартов кодирования на PHP. В нашей команде, например, используется стандарт Zend для кода, и стандарт PEAR для док-блоков. Это пояснение важно, поскольку к статье приложен файл с именно этим шаблоном проверки.

Что такое:
Комплекс инструментов, позволяющий держать код в рамках стандарта.
Основной этих инструментов является Code Sniffer — консольная утилита, проверяющяя соотвествие стандарту файлы на PHP, JavaScript и CSS. Это важный инструмент для развитя и поддержания кода в чистоте

Инсталяция

Инсталяция Code Sniffer:

pear install PHP_CodeSniffer

у Code Sniffer’a кодировка по умолчанию iso-8859-1, поэтому кириллицу в уникоде символ считает за 2. Чтобы этого не было, нужно поставить кодировку по умолчанию utf-8:

sudo phpcs --config-set encoding utf-8

Установка стандарта кода TRS
создать папку «TRS» в /usr/share/php/PHP/CodeSniffer/Standards.
Скопировать туда файл ruleset.xml

Использование:

phpcs --standard=TRS trunk/library/SOA/Contract

Интеграция CodeSniffer и PHPStorm

Как интегриовать:
1) File -> Settings
2) Editor -> External tools
3) Add
4) в форме указать:
Имя: <любое понятное тебе>
Program: phpcs
Parametrs: report=emacs standard=TRS $FilePath$
Добавить Output Filter: $FILE_PATH$:$LINE$:$COLUMN$

Что получится в итоге:
Запуск CodeSniffer горячей клавишей из Шторма
Вывод результата в интерфей шторма
Все ошибки будут паривязаны к строкам кода, возможен быстрый переход на проблемное место

Использование:
После правки любого файла необходимо пройтись по нему CodeSniffer’ом для выявления не соотвествующему стандарту кода.
Для этого в контекстном меню появится пункт с именем, которое было задано при интеграции с PHPStorm’ом

Результат будет примерно следующий:

Строки кликабельны.
После фикса всех предупреждений можно комитить изменения в репозиторий. Делать это можно при помощи любого инструмента.

Реформат кода в PHP Storm


PhpStorm для реформатирования кода можно использовать команду Code/Reformat Code..., которая делает отступы/выравнивания/итд для php-скриптов. Можно просто импортировать настройки (settings.jar) моего phpStorm, много ручной работы будет делать за вас он сам.

Использование:
Открываем в Шторме нужный файл, в контекстном меню появится дополнтельный пункт с именем, указаном выше.

CodeSniffer and git hooks


Положить в папку opencity/.git/hooks/ файлы pre-commit, pre-commit-phpcs, pre-commit-debug-output и asker c правами 0755 из архива http://redmine.trs.io/attachments/4453/pre-commit.zip
Пример (предварительно необходимо скачать pre-commit.zip):

cd /var/www/opencity/.git/hooks
cp <ваш путь к pre-commit.zip> pre-commit.zip
unzip pre_commit.zip
chmod 0755 pre-commit pre-commit-phpcs pre-commit-debug-output
rm pre_comment.zip
pre-commit — скрипт хука
pre-commit-phpcs — скрипт проверяющий на соответствие стандартам кодирования
pre-commit-debug-output — проверяет наличие функций для отладочного вывода (var_dump, var_export, etc)
asker — программа запроса действия

На этом установка завершена.

Теперь при попытке закомитить файлы расширения php и phtml они будут пропущены через codeSniffer стандарта TRS
Коммит завершится успешно в случае соответствия стандарту.
В случае не соотвесвия стандарту будут выданы ошибки, похожие на эти

Игнорирование не стандартизованого кода
Бывают ситуации, когда изменение кода, не проходщего валидацию codeSniffer’ом не целесообразно. Например, вы включили в проект чужую библиотеку и никогда в жизни никто не полезет в ее исходники, тогда можно воспользоваться конструкцией:

<?php
много кода
// @codingStandardsIgnoreStart
здесь тоже много кода, но он не будет проверен
// @codingStandardsIgnoreEnd
дальше много кода

В этом случае код, находящийся между

@codingStandardsIgnoreStart

и

@codingStandardsIgnoreEnd

не будет проверен. Но в этом случае надо создать шапку файла и в ней подробно описать почему именно так сделано.

2013   Полезное   Программирование

Про Git

Скопипащу сюда свой собственный мануал для новеньких разработчиков.

Установка git


$ sudo su
$ apt-get install git-core git-gui git-doc

SSH ключи


Шаг 1. Проверяем есть ли у вас уже ключи.

cd ~/.ssh
Если отвечает “No such file or directory“ идем на шаг 3. Иначе идем на шаг 2.

Шаг 2. Бекапим имеющиеся

mkdir key_backup
cp id_rsa* key_backup
rm id_rsa*

Шаг 3. Создаем новый ключ

ssh-keygen -t rsa -C «your_email@domain.ru»
[enter]

Шаг 4. Нужно добавить ваш ключ на репозиторий, например gitorius, gitlab, bitbucket

cat id_rsa.pub
ctrl+c ctrl+v в браузер.

Шаг 5. Добавляем персональную информацию

git config —global user.name «Firstname Lastname»
git config —global user.email «your_email@domain.ru»

Использование


git init — создать в этой папке git репозиторий
git status — получить информацию на какой ветке мы сейчас находимся, список внесенных изменений
git checkout development — переключиться на основную девелоперскую ветку.
git pull origin development — скачать с серевра самую свежую версию ветки development и залить ее в текущую ветку.
git checkout -b new_branch_name — создать новую ветку из текущей (на которой вы сейчас находитесь).
git reset —hard — отменяет все изменения сделанные до коммита
git commit -a — сохраняет на вашем локальном компе в ветке все изменения, которые вы внесли
git push origin branch_name — закачивает на сервер вашу модифицированную ветку

Для работы в общем-то и этого набора команд достаточно :)

Ништяки


Вывод названия текущей ветки в строку приглашения bash.
Выглядит примерно так: /var/www/site (master) $
Создать в домашней директории файл .gitbranch.sh с правами на исполнение для владельца:

#!/bin/bash
 
GIT_BR=`git symbolic-ref HEAD 2&gt; /dev/null | cut -b 12-`
 
if [ "$GIT_BR" = "" ]; then
    echo -n
else
    echo -n "($GIT_BR)"
fi
</pre>
в файле .bashrc, находящейся в домашней директории найти строку
<pre class="brush:shell">if [ "$color_prompt" = yes ]; then
PS1='...

и заменить ее на

if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\e[1;31m\]:\[\e[01;34m\]\w\[\e[00m\]`~/.gitbranch.sh`\[\e[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w`~/.gitbranch.sh`\$ '
fi

так же 10 строками выше можно раскоментировать force_color_prompt=yes

GUI

Многие разработчики в нашей команде используют либо командную строку, либо gtk-шный Git Gui. Я же рекомендую SmartGit, пожалуй это лучший клиент из всех что я видел. Еще весьма неплохо работает с гитом клиент, встроенный в PHP Storm.

Из очень удобных клиентов под Linux я бы еще назвал Gitg. Он особенно полезен для просмотра дерева веток и истории слияний веток между собой. Устанавливается он с полпинка по apt-get install gitg.

Вот забавно, хотел сейчас причитать о том, как жаль, что под Mac нет такого классного инструмента, как оказалось, что Gitg это клон GitX, содранного с маков :)

Под Windows я использую тот же самый SmartGit и консоль (mingw), которая поставилась самим инсталлятором. Скачать git для windows можно на http://git-scm.com/

Ссылки по теме:
Прекрасная книга Pro Git
Магия Git — другая прекрасная книга про гит

Ранее Ctrl + ↓