Рубрика «никто не читает теги» - 7

Чему я научился за 10 лет на Stack Overflow - 1

Близится десятая годовщина моего присутствия на Stack Overflow. За эти годы мой подход к использованию сайта и его восприятие сильно изменилось, и я хочу поделиться с вами своим опытом. И пишу я об этом с точки зрения среднестатистического пользователя, который не сильно вовлечён в жизнь сообщества сайта или его культуру. В последние дни я отвечаю лишь на вопросы, относящиеся к VS Code — продукту, над которым я работаю. Однако раньше я активно участвовал в обсуждении широкого набора тем. За 10 лет я задал около 50 вопросов и дал 575 ответов, просмотрел несметное количество чужих комментариев.

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

Итак, вот чему я научился за 10 лет использования Stack Overflow.
Читать полностью »

Хабра-детектив: тайна редакторов новостей - 1
Вы ведь знаете, что у Хабра есть редакторы? Те, которые люди. Именно благодаря им новостном раздел никогда не пустеет, а у вас всегда есть возможность пошутить про наследие alizar.

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

Сегодня мы попробуем узнать, какой же продолжительности их рабочий день, отдыхают ли они вообще и бывает ли у них отпуск. А может всё-таки они роботы? Как минимум, некоторые. Новая детективная история на Хабре. Будет интересно. Начнём!

Читать полностью »

Пару недель назад я случайно открыл резюме всему интернету и прошел пару собеседований. Это навело меня на мысли о процессе отбора в целом.

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

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

Держа в голове все вышесказанное, я начал анализировать процесс отбора кандидатов с обеих сторон. У меня в запасе был небольшой курс по теории игр, щепотка матстатистики и здравый смысл. А результаты — под катом.
Читать полностью »

Индексируем миллиарды текстовых векторов - 1

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

Что такое энтропия в ПО и как ею управлять? - 1

Сегодня солнечный день. Вы едете по дороге в вашу деревню, в которой живут все ваши друзья, ваша семья и ваша любимая собака. Прекрасный день! Неожиданно вы слышите ужасный, кошмарный вопль, разрывающий окрестности. Огромная отвратительная Гидра приближается к деревне, чтобы её уничтожить! Вы хватаете меч (конечно, у вас есть меч!) и стараетесь защитить всех, кого любите. Но есть небольшая проблема: у чудовища много голов, и когда вы отрубаете одну из них, быстро вырастает новая!

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

В роли Гидры выступает энтропия в ПО: это ваш враг, он вас измотает, но вы никогда не сможете полностью от него избавиться. Но с ним всё равно нужно бороться, чтобы ваши приложения (и коллеги) оставались здоровыми и вменяемыми.

Мы узнаем:

  1. Что такое энтропия в ПО и как заметить её в своём коде.
  2. Что является её возможными причинами и как сохранить энтропию на низком уровне.

Хватит болтовни, к делу!
Читать полностью »

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

Функциональное программирование — это не то, что нам рассказывают - 1

Хотя люди обычно признают удобства ФП фич, ведь намного приятнее писать:

int Factorial(int n)
{
    Log.Info($"Computing factorial of {n}");
    return Enumerable.Range(1, n).Aggregate((x, y) => x * y);
}

чем ужасные императивные программы вроде

int Factorial(int n)
{
    int result = 1;
    for (int i = 2; i <= n; i++)
    {
        result *= i;
    }
    return result;
}

Так ведь? С одной стороны да. А с другой именно вторая программа в отличие от первой является функциональной.

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

Читать полностью »

Хабра-анализ: что заказывают пользователи в подарок от Хабра - 1
Вы ведь заметили, что на календаре уже декабрь? Вероятно, вы уже почти готовы к празднованию, купили подарки, поучаствовали в Хабра-АДМ и запаслись мандаринками. Естественно, каждый Хабра-пользователь хочет не только дарить, но и получать что-то на новый год. А поскольку каждый из нас достаточно переборчивый, то часто мы сами заказываем себе подарки.

В том числе мы заказываем подарки и от Хабра. Причём целый год без перерывов. Давайте посмотрим, что же мы заказали в этом году и что из этого уже получили. А также, что мы ещё можем получить.

Итак, самый полный список того, что же пользователи просили у Хабра за этот год. Начнём!

Читать полностью »

Хабра-детектив и праздничное настроение - 1
Вы ведь слышали фразу "часто комментарии намного полезнее самой статьи"? На Хабре она встречается достаточно регулярно. В основном речь идёт о дополнительных технических подробностях, взгляде с точки зрения другой технологии или просто альтернативных мнениях.

Но сегодня меня интересуют вовсе не технические комментарии. Дело в том, что недавно на Хабре открылась регистрация в "Клуб анонимных Дед Морозов" (а закрывается она уже завтра). Давайте попробуем выяснить "всё, что только возможно" и есть ли на Хабре новогодний дух.

Итак, что же можно узнать о Хабра-АДМ? Приступим.

Читать полностью »

Применение зашифрованных данных для машинного обучения без их расшифровки - 1

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

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

Как работает оптимизирующий компилятор - 1

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

В этой статье мы рассмотрим некоторые из основных методик приведения (inference techniques) в оптимизирующих компиляторах: как спроектировать программу, с которой компилятору будет легко работать; какие приведения можно сделать в вашей программе и как использовать их для её уменьшения и ускорения.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js