Как стать автором
Обновить
-2
0
Андрей Янов @Andrew_Lvov

Пользователь

Отправить сообщение

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

Время на прочтение17 мин
Количество просмотров124K

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



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


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;
}

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


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

Читать дальше →
Всего голосов 267: ↑259 и ↓8+251
Комментарии795

Наши руки не для скуки: восстановление кластера Rook в K8s

Время на прочтение6 мин
Количество просмотров6K


Мы уже рассказывали, как/почему нам нравится Rook: в заметной мере он упрощает работу с хранилищами в кластерах Kubernetes. Однако с этой простотой приходят и определённые сложности. Надеемся, новый материал поможет лучше разбираться в таких сложностях ещё до того, как они себя проявят.

А чтобы читать было интереснее, начнём с последствий гипотетической проблемы в кластере.
Читать дальше →
Всего голосов 37: ↑35 и ↓2+33
Комментарии23

Анатомия рекомендательных систем. Часть первая

Время на прочтение14 мин
Количество просмотров75K
Я работаю дата-саентистом в компании CleverDATA. Мы занимаемся проектами в области машинного обучения, и один из наиболее частых запросов на разработку основанных на машинном обучении маркетинговых решений — это разработка рекомендательных моделей.

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

Источник
Читать дальше →
Всего голосов 55: ↑50 и ↓5+45
Комментарии15

10 важных уроков, которые я усвоил за время своего проекта A Year of Productivity (год продуктивности)

Время на прочтение8 мин
Количество просмотров29K
image

Сегодня мы поделимся с вами 10 самыми важными уроками, которые Chris Bailey усвоил за время проекта — «a Year of Productivity». Прошлая наша статья вызвала неоднозначную реакцию у аудитории, если вы ее не читали, то рекомендуем посмотреть ее и остальные статьи от Chris Bailey в нашем блоге.

Давайте начнем!

Читать дальше →
Всего голосов 29: ↑20 и ↓9+11
Комментарии4

Xargs: многообразие вариантов использования

Время на прочтение7 мин
Количество просмотров138K
xargs

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

Сначала мы рассмотрим принцип работы xargs и разберем примеры попроще, а затем перейдем к разбору сложных и интересных кейсов.
Читать дальше →
Всего голосов 68: ↑65 и ↓3+62
Комментарии44

Интроверты в IT. Как использовать особенности своего характера для достижения целей

Время на прочтение13 мин
Количество просмотров105K
Несколько лет назад я работал сценаристом обучающих курсов. Однажды утром, начальник встретил меня с лицом «нам надо поговорить».

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

Я отклонил это заманчивое предложение и благополучно забыл о нем. Но на следующей неделе я снова встретился с этим психологом. Сначала она сидела на диване и разглядывала каталоги. А потом села неподалеку с видом «я здесь если тебе понадобится помощь». Через какое-то время, мне это надоело и я сказал, что я об этом думаю.



Читать дальше →
Всего голосов 73: ↑61 и ↓12+49
Комментарии64

Красота космоса или как я научно-популярную лекцию читал

Время на прочтение6 мин
Количество просмотров70K


28 августа в уфимском антикафе «GoodZone» прошла научно-популярная лекция «Красота космоса». И я хочу представить вашему вниманию адаптацию лекции в Хабрапубликацию, а также небольшой рассказ о технических аспектах и софте, который использовался при подготовке и показе.
Читать дальше →
Всего голосов 90: ↑89 и ↓1+88
Комментарии16

Археология Digg

Время на прочтение10 мин
Количество просмотров825
image

О настоящем


Будучи в прошлом активным пользователем Digg.com меня, как и многих других, расстраивает забвение некогда сверх популярного сервиса поставки новостей. Но, видимо, время пришло: Кевин Роуз уходит из своего детища, а крупнейшие интернет-издания вроде TechCrunch и ReadWriteWeb пишут записки в стиле некролога.

Даже несмотря на 20 млн. уникальных посетителей в месяц, подъеме во времени, проводимом средним пользователем на главной странице, и активности в комментариях, все склоняются к главной мысли — Digg уже никогда не станет тем, чем он был два-три, и более, лет назад.

Нынешний CEO компании Мэтт Уильямс (Matt Williams), однако, по-прежнему оптимистично смотрит в будущее. Но в нем нет той рискованности, которая была в Джее Адельсоне и Кевине Роузе. И несмотря на прогноз выхода на прибыль в этом году, растущей доходности от рекламы и все еще активной, пусть и небольшой, аудитории, 35 сотрудников вряд ли смогут повторить успех двух парней с неплохой идеей.

Несмотря на все это, Уильямс планирует вдохнуть жизнь в умирающий проект: «Через год от текущего момента Digg будет совсем другим. Мы будем поставлять фантастические новостные продукты, а кроме этого будет и множество других вещей для нового читателя». И пусть эта фраза настолько расплывчата, что из нее нельзя почерпнуть почти ничего, некоторые детали готовящихся изменений все же стали известны любопытному блоггеру.
Читать дальше →
Всего голосов 65: ↑54 и ↓11+43
Комментарии19

О теории искусственного интеллекта и работе подсознания и сознания

Время на прочтение7 мин
Количество просмотров14K
Многим знакомы фильмы, в которых искуственный интеллект, порожденный человеком, покушался на жизнь или контроль над своим создателем. Данный вывод может быть абсолютно закономерен для ИИ. Мало того, создание ИИ, подобного человеку, невозможно, а точнее сказать глупо, потому как это будет подобно созданию велосипеда на квадратных колесах, взамен известному классическому. Каким именно образом и почему такое возможно, и хочу вам рассказать. А также вы узнаете, почему человечество такое, какое есть.
Читать дальше →
Всего голосов 140: ↑110 и ↓30+80
Комментарии287

Айтишник 60 уровня. Что дальше?

Время на прочтение5 мин
Количество просмотров130K
У многих из нас есть родители или родственники, которые находятся в одном шаге от пенсии. Хотя мне еще только немного за 30, я предлагаю вам немного расширить кругозор и, может быть, что-то пересмотреть в своей жизни.



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

Да да, именно вы решили, потому что вы стареете именно потому, что вы этого ожидаете.

А главный бонус в том, что можно увеличить продуктивный период жизни в 2 раза, причем на приличные еще 30 лет(!) и более. Т.е. в 60 лет у вас будет 35-40 лет продуктивной жизни, а здесь я расскажу как эту продуктивность сохранить до 90 лет и более. Интересно?

Внимание! Возрастное ограничение 30+, ваша психика может пострадать.
Читайте пост на свой страх и риск!



Читаем подробный лайфхак.
Всего голосов 162: ↑120 и ↓42+78
Комментарии153

Starcraft 2 — Battle Report 4

Время на прочтение1 мин
Количество просмотров631
Наконец-то вышел четвертый Battle Report! К слову сказать изменена моделька SCV :)

Protoss vs Terran @ Lost Temple

За тоссов играет Yeon-Ho Lee, а за теранов David Kim
What a great game!

http://www.youtube.com/watch?v=irhQE9Cfu3Q

http://www.youtube.com/watch?v=a1k752wbmYM

Читать дальше →
Всего голосов 77: ↑65 и ↓12+53
Комментарии59

Помнить все: Evernote и Anki

Время на прочтение12 мин
Количество просмотров257K


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

Я хочу достичь следующих целей при использовании системы:

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

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

  • Мой опыт по описанному вопросу
  • Проблемы запоминания
  • Теоретическое разрешение проблем
  • Практическое разрешение проблем с Evernote
  • Практическое разрешение проблем с Anki
Читать дальше →
Всего голосов 83: ↑78 и ↓5+73
Комментарии65

В микроволновой печи скрывается мощное и опасное СВЧ оружие

Время на прочтение4 мин
Количество просмотров617K
Добрый день, уважаемые хабровчане.

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

В микроволновке находится генератор СВЧ волн огромной мощности


Мощность волн, которые используются в микроволновке, уже давно будоражит моё сознание. Её магнетрон (генератор СВЧ) выдаёт электромагнитные волны мощностью около 800 Вт и частотой 2450 МГц. Только представьте, одна микроволновка вырабатывает столько излучения, как 10 000 wi-fi роутеров, 5 000 мобильных телефонов или 30 базовых вышек мобильной связи! Для того, что бы эта мощь не вырвалась наружу в микроволновке используется двойной защитный экран из стали.
Читать дальше →
Всего голосов 467: ↑426 и ↓41+385
Комментарии398

«Нет времени объяснять!» или Как реализовать трансляцию с IP камеры на сайт?

Время на прочтение7 мин
Количество просмотров114K
image


Пожалуй, мне везет на идиотские задачи в самый неподходящий момент. Это что, карма такая?! Ну да ладно…
В данном «отпускном» посте речь пойдет о том, как при наличии 3g модема и ноутбука реализовать трансляцию с IP-камеры на сайт.
Сам пост я бы не написал, если бы не задал вопрос на «Тостере», где мне подсказали, что гуглить.

Что мы имеем?


  1. Недешевая IP камера AXIS Q1755, которую я даже в руках не держал. Сама камера находится в городе «А» и подключена через тормозной 3g модем.
  2. Сервер на Debian 7, который крутится на почти дохлом Core2Duo. Хотя не такой уж он и дохлый, но для данных задач подходит не очень. Ах, да, сам сервер живет в городе Б.
  3. Сайт, на который необходимо повесить плеер. Находится на другом, более производительном сервере, в том же городе Б.
  4. Я, который находится в городе В, с ноутбуком, 3g-модемом и ограниченным трафиком в 4gb.

Читать дальше →
Всего голосов 57: ↑56 и ↓1+55
Комментарии31

Невредные советы фрилансера электронщика. Что нашему брату делать сегодня и есть ли свет в конце туннеля?

Время на прочтение7 мин
Количество просмотров100K
В моей первой статье цикла я поведал о том, что есть места в России как будто специально созданные для фрилансера-электронщика. Вторая статья повествует о личном опыте в роли фрилансера в течение пяти лет. Взлёте и падении моего микробизнеса в этой области. Третью часть рассказа я специально выделил в отдельный пост — для тех, у кого нет времени и желания читать истории, кто ценит только конкретику.

image

Итак, несмотря на то, что сегодня мой бизнес явно зашёл в тупик, рискну таки дать несколько советов фрилансеру-электронщику. Кстати, многие из них будут полезны и в других сферах деятельности: (к сожалению, я не нашёл в интерфейсе Хабра структурированных списков, поэтому пришлось изобразить вложение как ___)
Читать дальше →
Всего голосов 74: ↑71 и ↓3+68
Комментарии42

Руководство по установке и настройке OpenVPN

Время на прочтение34 мин
Количество просмотров1.4M



Когда у нас появились сотрудники, работающие удаленно, пришлось думать над тем, как обеспечить им защищенный доступ к нашим хостинговым серверам, виртуальным выделенным серверам разработчиков Virtual Dedicated Server (VDS), сайтам обеспечения и сопровождения разработки и к другим ресурсам.



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



Выход нашелся довольно быстро — это использование технологии виртуальных частных сетей Virtual Private Network (VPN) и ее свободной реализации OpenVPN. Эта реализация доступна практически для всех распространенных платформ, в том числе для планшетов и смартфонов. История развития OpenVPN насчитывает уже 12 лет (компания OpenVPN Technologies, Inc. была создана Francis Dinha и James Yona в 2002 году), так что это надежное и проверенное временем решение.



В нашей компании сеть VPN позволила предоставить защищенный доступ сотрудников к VDS, играющей роль сервера OpenVPN. И уже для фиксированного IP этого сервера был разрешен доступ к другим ресурсам компании. Попутно на сервере OpenVPN был установлен прокси Squid, что решило все проблемы доступа сотрудников с динамическими IP к защищенным ресурсам компании.



Теме OpenVPN посвящены многочисленные статьи и сообщения на форумах. Тем не менее, нужную информацию мне пришлось собирать по частям из разных мест. Попутно приходилось разбираться с многочисленными терминами и технологиями. В качестве серверов OpenVPN были использованы VDS на базе FreeBSD и Debian Linux, в качестве клиентов — рабочие станции FreeBSD, Debian Linux, Ubuntu и Microsoft Windows.



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


Читать дальше →
Всего голосов 128: ↑115 и ↓13+102
Комментарии97

Десятка лучших консольных команд

Время на прочтение2 мин
Количество просмотров198K
imageВ данном посте я расскажу о наиболее интересных командах, которые могут быть очень полезны при работе в консоли. Однозначных критериев определения какая команда лучше другой — нет, каждый сам для своих условий выбирает лучшее. Я решил построить список команд на основе наиболее рейтинговых приемов работы с консолью от commandlinefu.com, кладовой консольных команд. Результат выполнения одной из таких команд под Linux приведен на картинке. Если заинтересовало, прошу под кат.
Узнать больше
Всего голосов 382: ↑346 и ↓36+310
Комментарии215

Вы можете развить свой интеллект: 5 способов максимально улучшить свои когнитивные способности

Время на прочтение17 мин
Количество просмотров506K
Не стоит преследовать цели, которые легко достичь. Стоит нацеливаться на то, что удается сделать с трудом, приложив немалые усилия — Альберт Эйнштейн

Несмотря на то, что Эйнштейн не был нейробиологом, он точно знал все, когда говорил о способности человека добиваться чего-либо. Он интуитивно догадывался о том, что лишь сегодня нам удалось подтвердить с помощью данных, а именно: что заставляет когнитивные способности работать на максимально высоком уровне. По существу: То, что тебя не убивает, делает тебя умнее.
Читать дальше →
Всего голосов 167: ↑135 и ↓32+103
Комментарии108

Тренировка памяти

Время на прочтение3 мин
Количество просмотров40K
Вы когда-нибудь задумывались, насколько важна память для человека и конкретно для вас? Что можно достичь, с помощью хорошей памяти? А давайте прикинем прямо сейчас!? Для начала я думаю, стоит вспомнить образование и работу: прочитали книгу за несколько дней и все запомнили, экзамены за вечер на 5, язык программирования за месяц… можно продолжать долго.

Некоторые люди рождаются с феноменальной памятью, а остальные могут память тренировать и достигнуть хоть и не феноменальных результатов, но очень даже приличных, которые позволят достичь очень больших высот, не говоря уже о довольно простых вещах, перечисленных чуть выше… Поэтому моя заметка именно о тренировке памяти обычных людей: сжато и по сути.
Читать дальше →
Всего голосов 88: ↑73 и ↓15+58
Комментарии61

Как понять, сколько ты стоишь, или зарплатные кластеры в действии!

Время на прочтение3 мин
Количество просмотров109K
Совсем недавно мы отрелизили на hh.ru зарплатные кластеры, которые помогают оценить свою стоимость как специалиста. Это достаточно интересная и гибкая фича, такая, что с ее помощью даже можно провести небольшое исследование рынка труда, определив своё место в нем:


Посмотреть статистику зарплат по языкам программирования и СУБД
Всего голосов 108: ↑92 и ↓16+76
Комментарии100

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность