Дима Дорошев

Dev

Быстрый коммит и пуш

Хочу поделиться shell-функцией gacp (Git Add, Commit and Push), которую я придумал несколько месяцев назад и с тех пор использую ее примерно каждый час:

# fish
function gacp
    git add .
    git commit -m "$argv"
    git push origin HEAD
end
# bash/zsh
function gacp() {
    git add .
    git commit -m "$*"
    git push origin HEAD
}

Пример использования:

> gacp add some new crazy stuff
[master fb8dcc9] add some new crazy stuff
 <...>
Enumerating objects: 12, done.
 <...>
To github.com:foo/bar.git
   912c95d..fb9dcc9  master -> master

Наконец-то больше не придется городить цепочки с && и вставлять кавычки, когда надо написать в сообщении больше одного слова!

git shell
Жизнь

Мне позвонил мошенник, и я ему надоел

Позвонил чувак, представился следователем МВД по экономическим преступлениям. Затирал про то, что вчера какая-то дама ("племянница") хотела снять все мои деньги с нотариально заверенной доверенностью, потому что я в больнице. Я не в курсе такой схемы развода (и этот звонок у меня первый), поэтому решил поговорить, чтобы понять, куда оно вырулит.

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

Дальше разговор пошел в сторону, видимо, самого "расследования", и он спросил, бывал ли я у нотариуса. Я ответил "нет", тем самым предоставив еще немножко информации.

Но вот на последнем вопросе разговор совсем перестал клеиться: "Когда и кому я в последний раз показывал паспорт?" А я не помню, прям совсем, поэтому решил потупить и повспоминать. Чувака это очень злило, он давил фразами "вы тратите мое время", "вам что, смешно?", "вы будете отвечать?"

Тут мне помог опыт участия в настоящем допросе, и я знаю, что ответ "не помню" вполне допустимый, а следователи не говорят о трате времени, потому что сами его любят потянуть.

А этот "следователь" силой пытался вытащить из меня правильный ответ. Спрашивал, где я работаю и кому я показывал паспорт по этому поводу. Ну а так как я ИП (это открытая информация) и по этому поводу показывал документы только банку, то так и ответил. Но его это не устроило, и он захотел другого ответа.

В итоге я настоял на том, чтобы он записал мое "не помню", и чувак просто молча бросил трубку.

Я не понял, что это было и зачем. Номер, с которого звонили, не значился в спам-базах, а в поисковиках бился как "Горячая линия по вопросам ККТ ИФНС №5 по Москве". Конечно, я написал в банк и попробовал позвонить в ту налоговую, но налоговая вместо ответа сбросила звонок, а банк пока молчит.

На vc.ru есть статья с описанием похожей ситуацией и кучей комментариев про то, что эти ребята хотят добиться, выуживая эту информацию. Как один из вариантов - первичная пробивка личных данных с целью дальнейшего прозвона по другим темам. То есть не стоило этому чуваку ничего выдавать, но что поделаешь, я добрый и честный человек, не могу людей просто так посылать.

А пока я словил ачивку, получил звонок из тех, о которых так много шутят вокруг, и зарепортил номер мошенников одним из первых, ура мне!

UPD: Альфа-Банк подтвердил, что это мошенники.

век живи диалоги мошенники
Работа

Не прокатило

Звонок программисту (П) от рекрутера (HR).

HR: Ало, привет, я Маша из агентства "Олег и таланты", у меня есть классная вакансия в международную компанию! Ищешь работу?

П: Ну так, чуток поглядываю. А расскажите вкратце, чем компания занимается?

HR: читает текст вакансии через строчку

Хм, ну хз.

Давай попробуем! Сколько денег хочешь?

350.

На руки?

Да.

Окей. Мне с тобой надо познакомиться поближе, я расскажу о вакансии, а ты расскажешь о себе.

Хорошо.

Когда тебе удобно?

Прямо сейчас, мы ведь уже разговариваем.

Нет, надо назначить встречу в Зуме с видеосвязью.

Хм, тогда можно завтра.

Окей, до связи!

Пока.


Знакомство рекрутера (HR) и программиста (П).

HR: Привет, как дела, ща расскажу о вакансии в этой крутой международной компании!

П: Давай.

HR: 10 минут зачитывает текст вакансии

HR: Че как?

Да вроде норм.

Тогда расскажи о себе.

П: 10 минут рассказывает о том, какой он классный и софтскиловый

Окей, супер. А сколько ты там денег хочешь?

350.

Ага. На руки?

Да.

Окей, я передам информацию и назначим собеседование!

Ок.


Техническое собеседование программиста (П) с командой программистов (КП)

КП: Привет, как дела, ща расскажем о нас!

П: Давайте.

КП: полчаса рассказывают про компанию, стек и как все дружно пишут REST-апишки

Че как?

Да вроде норм.

Тогда расскажи о себе.

П: полчаса рассказывает в деталях, какой он крутой технический специалист

ЧП: Окей, тогда давай спроектируем REST-апишку!

П: Давай.

П: полчаса проектирует REST-апишку

Супер! А сколько ты денег хочешь?

350.

Это на руки?

Да.

Окей, все круто, жди фидбек.

Пока.


Звонок программисту от рекрутера.

Вы всем понравились, надо назначить второе собеседование.

Какое еще второй собеседование?

Ну с чуваком поглавнее.

Ладно, давайте в такой-то день.

Ок!


Собеседование программиста (П) с чуваком поглавнее (ЧП).

ЧП: Привет, ты классно прошел техническое собеседование в нашу крутую международную компанию!

Супер!

Ща расскажу, че тут у нас в отделе.

ЧП: 20 минут рассказывает, че там у них в отделе

П: Ну неплохо.

А расскажи о себе?

П: 20 минут рассказывает о себе, какой он бизнес-ориентированный

Великолепно! А сколько денег хочешь?

350.

...Это на руки?

На ноги Да.

Окей, норм, жди фидбек.

Пока.


Неделю спустя программист пишет рекрутеру

Привет, че как там?

Отказались в пользу другого кандидата ¯\_(ツ)_/¯

Ок, бывает, приятно было пообщаться, до свидания.


Две недели спустя рекрутер пишет программисту

Ой, я тут все напутала, вы вообще красавчик и всем подходите!

Прикольно.

Тогда надо назначить встречу с еще там одним чуваком.

С каким?

Ну там последний чувак, в общем. Больше уже точно не будет!

Хм, ну давайте.


Собеседование программиста (П) с последним чуваком (ПЧ).

ПЧ: Привет, ты вроде клевый пацан, а мы клевая международная компания, хотим тебя брать!

П: Спасибо, я рад.

У нас тут так классно, так классно! <Рассказывает, как там классно>

Да, я понял.

Расскажешь чуть о себе?

П: рассказывает чуть о себе

ПЧ: Окей. Кстати, что у нас по REST-апишкам?

Эх... <Проектирует REST-апишку>

Окей, сколько денег хочешь?

350.

Ага, хорошо, давай, пока, скоро свяжемся.

Пока.


Звонок от рекрутера.

Знаете, вы всем так сильно понравились, и сейчас вам на почту пришлют оффер!

Ок.

Но там поменьше.

Сколько?

280.

...

...

Не, спасибо, я откажусь.

А почему? Вам денег мало?

Да. Спасибо, до свидания.


Конец истории. Все персонажи вымышлены, все совпадения случайны. По крайней мере, хотелось бы, чтобы так было.

найм диалоги
Dev

Ж К П

В любом текстовом процессоре (Microsoft Word, Google Docs, LibreOffice) кнопки "полужирный", "курсив" и "подчеркнутый" находятся рядом:

Десятилетиями в голове устаканивался паттерн о том, что это свойства одного порядка. Хочешь сделать полужирный курсив, нажимаешь две кнопки рядом:

Хочешь жирный и подчеркнутый:

Про подчеркнутый курсив не буду - это для особенных людей.

В HTML-тегах с этим тоже просто. Есть три тега: b, i и u. Можно вкладывать их друг в друга и получать желаемую комбинацию:

<b><i>полужирный курсив</i></b>
<b><u>полужирный подчеркнутый</u></b>
<i><u>пожалуйста, не надо</u></i>

А в CSS это совершенно разные свойства:

{
/* полужирный */
font-weight: bold;

/* курсив */
font-style: italic;

/* подчеркнутый */
text-decoration: underline;
}

Про font-weight еще более-менее понятно, но правила применения двух остальных свойств я уже 13 лет не могу запомнить. Если нужно сделать подчеркнутый текст, а подсказок взять негде, я могу просто перебрать все варианты, пока не заработает:

text-style: underline;
font-style: underline;
font-decoration: underline;
text-underline: true;

Очень бесит. Хочется либо так:

font-style: bold;
font-style: bold, italic;
font-style: italic, underline;

Либо так:

font-bold: true;
font-underline: true;
font-italic: true;

Большего мне и не надо.

html css