• Маньяки

    Самое главное в споре – вовремя определить, имеешь ли дело с адекватом или маньяком. Маньяками я называю тех, кто фанатично уверовал в превосходство той или иной технологии и не считается ни с какими доводами. У таких людей один аргумент – вера. Пока человек придерживается веры, он игнорирует любые аргументы. Пусть считает себя правым, что нам с того?

    Так, пенсионер доказывает, что в СССР жилось лучше, а Сталин был мудрым вождем. Верующий освящает машину и поощрает уроки православия в школах. А наш маньяк убежден, что Хаскель – лучший в мире язык программирования. Теперь он лепит иконки языка в виде монадного оператора и любую беседу сводит на одну тему.

    Чем он лучше религиозного фанатика или коммуниста?

    Существует единственно верный способ проверить маньяка. Попросите его дать ссылку на рабочий проект, написанный на Хаскеле. Вы должны либо перейти на сайт, либо скачать утилиту. Короче, отклик должен быть мгновенным, либо есть, либо нет.

    Если маньяк кидается ссылками на Гитхаб, то он балабол. Потому что написать код, пусть даже на Хаскеле – это меньше половины дела. Гораздо больше уходит на деплой, обновления, сборки, поддержку. Если проект хоть немного популярный, вам начнут писать пользователи, им придется отвечать. Придется мониторить сервер, настраивать автозапуск, уведомления на почту при аварийных ситуациях.

    Рассуждать о технологии имеет право только тот, у кого крутится рабочий проект.

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

    Мы все читаем книжки и любим почесать языком. Но, ребят, знайте меру. Задачки с Эйлер-проджект или Экзорцизма не доказывают ничего. Точнее, они подтверждают, что в какой-то момент у автора было свободное время и упорство, чтобы посвятить себя этому занятию.

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

    Маньяк зыбывает очевидную вещь. Целое больше суммы деталей. По отдельности обращаться к базе, отдавать джейсон и писать логи легко. Гораздо труднее делать это в рамках единого приложения. Когда сначала идешь в кэш, если нету, запрос в базу, кладешь в кэш, отдаешь джейсон и на каждом шаге логируешь потенциальные исключения. И сразу становится сложно, неважно Хаскель у тебя или Питон.

    В итоге выясняется, что ничего кроме задачек и мертвого проекта, которого нет в продакшене, маньяк не может предоставить публике. Только Громкие Заявления. И зарплату он получает за какой-нибудь Перл или С++. Все понятно.

    Мудрый человек – это человек сомневающийся. Когда нет никаких сомнений в превосходстве чего-то или кого-то, срочно меняйте точку зрения. Мы просто хотим избавиться от выбора, снять ответственность за ошибочное решение. “Мы берем технологию Х, потому что это убер-круто” – большая ошибка.

    Словом, взялся говорить за Хаскель, Эрланг, ФП, ООП – покажи проект. Чтобы я увидел прямо сейчас. Не трать наше время.

  • Бизнес как игра

    cover

    Еще одна отличная книжка. Авторы – те мужики, кто сделали Мосигру. Напомню, Мосигра знаменита тем, что не только продает замечательные игры для детей и взрослых, но и имеет к этому особый подход.

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

    Отдельно отмечу, что книга написана кратко, вернее – плотно. Глава может состоять из одного параграфа, где высказана простая и убедительная мысль. КПД книги стремится к единице. Вместо воды, повторов и прохладных историй читатель получит пачку мощных тезисов с короткими доказательствами их работы.

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

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

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

    Другой принцип о том, как правильно делать работу:

    Предположим, директор звонит дизайнеру из другого города и требует подготовить дизайн листовки. Выслал текст, обсудили основные положения. Затем директор садится в самолет и летит в другой город. А дизайнер забыл спросить, будет ли листовка одно- или двусторонняя. Что делать?

    Здесь становится ясно, хороший ли сотрудник этот дизайнер или нет. Плохой будет ждать три часа прилета директора, чтобы перезвонить и выяснить. То есть пропинает время зазря и будет отпираться – мне не сказали.

    Хороший дизайнер сделает два варианта: с одной стороной и двумя. Когда директор прилетит, понадобится 10 минут, чтобы скомпоновать финальный результат.

    Словом, классная книженция, бодрая, полезная, читается запоем. Даже думаю бумажную версию прикупить, чтобы время от времени черпать идеи.

  • Девятая встреча

    Провели девятый митап!

    cover

    Что у нас нового. Во-первых, перенесли мероприятие в центр города. Теперь это паб Ту Даблин на проспекте Революции. Добираться стало в разы проще.

    Во-вторых, я купил петличный микрофон. После программного подавления шума получается вполне хороший звук.

    Было два доклада. Первым выступил Евгений Рыжков с темой о качестве разработки.

    Слайды

    Юрий Хрусталев продолжил с темой о поиске удаленной работы.

    Слайды

    Напомню, сообщество тусит в группе Фейсбука.

    Скоро анонс десятой, юбилейной встречи. Хотите выступить? Пишите в группу.

  • Отвечайте!

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

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

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

    Другой случай. Понадобилась одна бытовая мелочь, нашел продавца на сайте объявлений. Договорились. Не явился, не позвонил, трубку не берет. Догнал с другого номера, признался, что продал. Разве не мудак? Пусть продал, имеет полное право, по почему не берет трубку?

    И так постоянно. Один не пришел, другой не перезвонил.

    С перепиской по почте вообще беда. Задашь простой вопрос, а отвечают неделями. Например, есть ли вакансии в фирме или нет. Как можно отвечать две недели? Работа или есть или нет, а если не знаешь, то так и пиши или перенаправь.

    Вот я написал одному человеку, он отвечает, что занят. Однако регулярно публикует бред в Фейсбуке. Уже неважно, что он ответит. Работать с ним я не буду однозначно.

    Немножко выводов

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

    Сегодня же перезвоните и отпишите всем, кого вы так регулярно динамили. Объясните причины, назначьте новые встречи. Просто откажитесь от сотрудничества, если не подходят условия.

    Если вы договорились о сделке, но потом передумали – звоните. Просто скажите: извините, планы изменились. И все. Если решили не идти на встречу – тоже звоните. Просто скажите нет, как учат в правильных книгах.

    Если получили письмо, отвечайте в течении суток, даже если не можете помочь. Не молчите. Если сможете ответить только через две недели, попросите собеседника пингануть вас еще раз через этот срок.

    Но самое худшее, чего никогда нельзя делать – это молчать, не брать трубку, избегать встреч. Кому нужно, все равно вас найдут. Они будут думать, что вы мудак, а вы будете знать, что они так думают. Встреча закончится не в вашу пользу.

  • Слоеный интерфейс

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

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

    layer

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

    Отдельный слой для виджета календаря – это вообще жесть.

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

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

  • Двоемыслие

    Столкнулся с каноничным двоемыслием, прям в точности по Оруэллу.

    Человек на страницах блога утверждает, что США – враг. В личной переписке выясняется, что он работает удаленно на фирму, расположенную – сюрприз! – именно в США.

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

    Я теряю ориентиры – как надо самого себя обманывать, как выворачивать мозги, чтобы одновременно стыковать в голове оба факта. Работодатель – враг. Ты на него работаешь. Не клинит?

    Понятно, что все дело в деньгах. Долларовая зарплата удаленщика в США – это 2-3 зарплаты московского специалиста. Для жителя провинции, мягко говоря, очень неплохо.

    Забавный момент: деньги могут не только затуманить мозг, как это часто бывает с ментами или чиновниками, но и протрезвить. Получая такую зарплату, человек напрочь забыл о том, что США – враг. Или, по крайней мере, больше так не пишет.

    Конечно, лучше изначально принять тот факт, что врагов в политике, как и в личной жизни, не бывает. Не дожидаясь удаленки в США.

  • Кложа. Причины успеха

    Я вижу три причины, по которым Кложа стала успешной технологией.

    Новые идеи

    Рич Хики, автор Кложи, предложил радикально новые идеи. Полная неизменяемость структур данных. Специальные типы и операторы для изменяемых ячеек (ссылки, атомы). Транзакционная память. Многозадачность и асинхронность из коробки (core.async ставится отдельно, но пилят ее те же люди).

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

    Платформа

    Если бы Рич принадлежал академической среде, он бы начал писать реализацию на Си. Возможно, через 20 лет, отрастив бороду до колен, он бы решил проблемы со сборщиком мусора, ГИЛом, общим доступом к ресурсам и так далее.

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

    Лисп

    Наконец, S-выражения как способ описать язык. Некоторые думают, что Кложа – это еще один Лисп. Неверно! Каждый месяц на Гитхабе появляется очередной интерпретатор Лиспа на том или ином языке. Но не находит поддержки, потому что решает техническую задачу – как перегнать синтаксис одного языка в другой.

    Кложа – это не Лисп. Это новый язык с инновационными идеями, полный абстракций. Рич мог бы взять за основу синтаксис Джавы или Руби, и получилось бы тоже ОК, что-то вроде Котлина. Но Рич взял Лисп и тем самым добавил в Кложу метапрограммирование, принцип код-как-данные, REPL, декларативный стиль кода, макросы и много чего еще.

    Заключение

    Читали Ерофеева? В человеке есть физическая сторона, духовная сторона и, что самое главное, мистическая, тайная сторона. Вот и Кложа так. Физическая – это JVM, духовная – иммутабельность, коллекции, многозадачность, мистическая – Лисп.

  • Реклама

    У меня очень простое отношение к рекламе: на сайте ее быть не должно.

    Я установил в Хроме Адблок и Гостери, два полезных расширения, которые вырезают до 90% рекламы. Оба периодические подтягивают с серверов информацию о новых рекламных сервисах.

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

    Если реклама пролазит не смотря на все ухищрения, с сайтом приходится расстаться. Что поделать, не судьба.

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

    Или Нью-Йорк Обсервер, мобильная версия. На каждый экран плашка с половину экрана с какой-то чернухой. Знакомства, дейтинги.

    Ребят, вы не охуели?

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

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

    В крупных городах можно устраивать офлайн-мероприятия для платных подписчиков. Подписка есть? Проходи бесплатно в клуб или на конференцию.

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

    Мне несколько раз предлагали добавить рекламу на страницу личного проекта за деньги. Зачем? У меня платная подписка. Почему потребитель должен видеть какое-то говно? Он же целенаправленно зашел на мой сайт. Разве правильно показывать левую инфу по результатам вчерашнего гугления?

    Давайте смотреть правде в глаза. Большинство сайтов в сети рекламные уже по своему содержимому. Откройте Хабр. Половина статей на главной – блоги компаний. Цель публикации в коммерческом блоге – лишний раз напомнить о себе и прорекламировать услуги, иногда даже открыто.

    Или Медуза. На морде обязательно висит несколько “партнерских материалов”. А что это другими словами? Реклама, Карл.

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

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

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

    Правила, добавленные в Адблок, я периодически копирую и комичу в приватный репозиторий на Битбакете. Если Адблок слетит, можно быстро восстановить.

  • Правила работы с почтой

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

    Нулевой инбокс. Письмо остается в списке входящих только если на него требуется реакция. Например, написать ответ, проверить баг, зайти на сайт. В остальных случаях после прочтения письмо отправляется либо в архив, либо в особую папку. Пустой инбокс – нереально круто.

    Фильтры и правила. У меня масса правил, чтобы раскладывать почту по нужным папкам. Это позволяет не отвлекаться на рассылки или уведомления, которые не требуют мгновенной реакции. Мне достаточно окинуть взглядом папки, чтобы понять, что меня ожидает. Например, папки yandex (2) и facebook (1) говорят о том, что пришли уведомления, которые можно посмотреть потом.

    Я уж не говорю о том, что в среднем при платеже приходит три письма – от сервиса, с которого вы платили, от сервиса, куда вы платили и реклама. Это говно должно раскладываться автоматом.

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

    – “А вот уеду я в отпуск, – говорит коллега, – и не хочу видеть письма с работы”. Не вопрос! Скрой эту папку в настройках интерфейса, по возвращению опять верни.

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

    Только Гмейл. Я долго пользовался почтовым клиентом Мака, но все же вернулся к Гуглу и браузеру. Маковый клиент, как любое настольное приложение, временами виснет, падает или грузит систему внезапной индексацией. Кроме того, папки в Маке – это не те папки в Гугле.

    На десктопе плохо сделан поиск. В Гугле он просто охренеть какой классный и работает мгновенно.

    Только плоский текст. Никаких шрифтов, болдов, италиков. Только плейн-текст.

    Никаких подписей. Свое имя в конце письма я вписываю руками. Жирный абзац с должностью, телефонами и ссылками на соцсети – признак неадеквата. Огрызки типа “С ув, Алексей” – тоже.

    Выношу переписку из соцсетей в почту. Если до пользователя можно достучатсья только личным сообщением в каком-то сервисе, обязательно добавляю почту с просьбой отвечать на нее. Если пишут мне в соцсети, добавляю в ответ емейл и прошу, чтобы в следующй раз писали туда.

    Банальности. Стараюсь писать без ошибок, проверять имена, не ставить пробелы перед знаками препинания.

    Не больше одного восклицательного знака на письмо.

    Подумать. Если письмо требует сложного ответа – надо встать, пройтись, попить водички.

  • JSON в 1С на Гитхабе

    Наконец-то дошли руки выложить полезную функцию 1С на Гитхаб. Речь о сериализации любого объекта в JSON. Ранее в блоге я публиковал ссылки на Pastebin, но теперь с этим покончено.

    Ссылка на репозиторий.

    Напомню, функция переводит в джейсон сущности 1С, отталкиваясь от их природы. Например, таблица значений станет списком словарей, дата будет переведена в ISO-формат и т.д.

    Код не требует сторонних модулей и работает с версиями 8.1 и выше. Кажется, в 8.3 грозились добавить аналог в коробку, но я за этим не слежу.

    Пользуйтесь на здоровье.

Страница 52 из 75