Как стать автором
Обновить
23
Карма
0
Рейтинг
Анастасия Васильева @facedancer

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

FPConf 2017. Интервью с Денисом Шевченко

Программирование *Haskell *Функциональное программирование *Конференции
Привет!

Начинаем публиковать разговоры со спикерами FPConf 2017. Павел Аргентов расспросил самого зажигательного евангелиста ФП и Haskell Дениса Шевченко.



В начале разговора — расскажи немного о себе.

Меня зовут Денис Шевченко. Я основатель сообщества ruHaskell. В данный момент тружусь Haskell-разработчиком в компании IOHK. Бывший С++-разработчик, ныне Хаскелист, начинающий ФП-евангелист и автор незаконченной книги “Haskell по-человечески”.
Читать дальше →
Всего голосов 14: ↑12 и ↓2 +10
Просмотры 4.4K
Комментарии 1

FPConf 2017. Интервью с Александром Вершиловым

Программирование *Haskell *Функциональное программирование *Конференции
Привет!

Продолжаем говорить про Haskell со спикерами FPConf 2017.

Павел Аргентов задал несколько вопросов Senior Software Engeneer в Tweag I/O Александру Вершилову, программисту, который уже 10 лет продвигает Haskell в индустрии.
Читать дальше →
Всего голосов 13: ↑12 и ↓1 +11
Просмотры 3.3K
Комментарии 0

Функциональное программирование для всех

Программирование *
Перевод

Доброго времени суток. Это статья — перевод заинтересовавшего меня поста в блоге аспиранта Университета штата Нью-Йорк в Стоуни-Брук. Статья в доступной форме описывает основные концепции функционального программирования, их преимущества и недостатки. Думаю она будет полезна широкому кругу читателей, которые сомневаются, нужно ли им углубляться в мир функционального программирования или нет. Пожелания, предложения и замечания по переводу и терминологии принимаются по личной почте.

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

UPD: альтернативный вариант перевода вы можете найти на rsdn (спасибо flamingo за ссылку).
Читать дальше →
Всего голосов 188: ↑181 и ↓7 +174
Просмотры 335K
Комментарии 151

Введение в функциональное программирование на Python

Python *Программирование *Функциональное программирование *
Перевод
Рассуждая о функциональном программировании, люди часто начинают выдавать кучу «функциональных» характеристик. Неизменяемые данные, функции первого класса и оптимизация хвостовой рекурсии. Это свойства языка, помогающие писать функциональные программы. Они упоминают мапирование, каррирование и использование функций высшего порядка. Это приёмы программирования, использующиеся для написания функционального кода. Они упоминают распараллеливание, ленивые вычисления и детерменизм. Это преимущества функциональных программ.

Забейте. Функциональный код отличается одним свойством: отсутствием побочных эффектов. Он не полагается на данные вне текущей функции, и не меняет данные, находящиеся вне функции. Все остальные «свойства» можно вывести из этого.

Нефункциональная функция:

a = 0
def increment1():
    global a
    a += 1


Функциональная функция:

def increment2(a):
    return a + 1


Вместо проходов по списку используйте map и reduce
Читать дальше →
Всего голосов 33: ↑30 и ↓3 +27
Просмотры 139K
Комментарии 51

Играем в Haskell

Программирование *Haskell *Функциональное программирование *
Перевод
Tutorial


Я замечательно провел время изучая Haskell в последние месяцы, и мне кажется, что сделать первые шаги в этом занятии сложнее, чем это могло бы быть на самом деле. Мне повезло работать в нужное время и в нужном месте, и в Facebook я прошел курс по Haskell от Bryan O'Sullivan, но Вы определенно сможете влиться в тему и без чужой помощи. Для этого можно поиграть в Haskell на сайте Try Haskell, а в конечном счете установить себе GHC.
Читать дальше →
Всего голосов 47: ↑45 и ↓2 +43
Просмотры 57K
Комментарии 17

Через тернии к Haskell. 1/2

Программирование *Haskell *
Перевод
Tutorial


Первая часть короткого и жесткого введения в Haskell. Вторую часть можно найти здесь

tl;dr: Очень краткое и сжатое введение в Haskell.


UPD. Если туториал вам понравился, черкните пару строк автору оригинальной статьи. Человеку будет приятно ;)
Классные картинки, много текста и вынос мозга
Всего голосов 137: ↑133 и ↓4 +129
Просмотры 197K
Комментарии 52

Haskell. Монады. Монадные трансформеры. Игра в типы

Haskell *Функциональное программирование *
Tutorial
Еще одно введение в монады для совсем совсем начинающих.

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

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

С обычными функциями все понятно. Если имеется функция типа «a->b», то подставив в неё аргумент типа «a», вы получите результат типа «b».

С монадами все не так очевидно. Под катом подробно расписано, как работать с do-конструкцией, как последовательно преобразуются типы, и зачем нужны монадные трансформеры.
Читать дальше →
Всего голосов 32: ↑29 и ↓3 +26
Просмотры 22K
Комментарии 51

Магия newtype в Haskell

Haskell *
Из песочницы

Основной способ задать новый тип данных в Haskell — это использование конструкции data. Однако, есть ещё и newtype. Практикующие программисты Haskell пользуются конструкцией newtype постоянно, популярный линтер hlint предлагает заменять data на newtype если это возможно.


Но почему?


Читать дальше →
Всего голосов 23: ↑23 и ↓0 +23
Просмотры 7.7K
Комментарии 3

Теория категорий для программистов: предисловие

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

Я постараюсь в нескольких параграфах убедить вас, что эта книга написана для вас, и развеять все ваши сомнения в необходимости изучения этой, одной из самых абстрактных областей математики, в свое драгоценное свободное время.
Читать дальше →
Всего голосов 55: ↑51 и ↓4 +47
Просмотры 103K
Комментарии 25

Категории, большие и малые

Программирование *C++ *Haskell *Математика *Функциональное программирование *
Перевод
Это четвертая статья в цикле «Теория категорий для программистов».

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

Без объектов


Самая простая категория — без объектов и, как следствие, без морфизмов.
Читать дальше
Всего голосов 36: ↑33 и ↓3 +30
Просмотры 33K
Комментарии 29

Категория Hask

Haskell *

Вступление


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

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

Эта статья во многом повторяет (в том числе заимствует иллюстрации) раздел из английской Haskell Wikibook, но тем не менее не является непосредственным переводом.

Что такое категория?



Примеры


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

Красные кружочки изображают «объекты», а стрелки – «морфизмы».

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

Можно считать города «объектами», а перемещения между городами – «морфизмами». Например, можно представить себе карту авиарейсов (как-то не нашёл я удачную картинку) или карту железных дорог – они будут похожи на картинки выше, только сложнее. Следует обратить внимание на два момента, которые кажутся в реальности само собой разумеющимися, но для дальнейшего имеют важное значение:
  • Бывает, что из одного города в другой никак не попасть поездом или самолётом – между этими городами нет морфизмов.
  • Если мы перемещаемся в пределах одного и того же города, то это тоже морфизм – мы как бы путешествуем из города в него же.
  • Если из Санкт-Петербурга есть поезд до Москвы, а из Москвы есть авиарейс в Амстердам, то мы можем купить билет на поезд и билет на самолёт, “скомбинировать” их и таким образом попасть из Санкт-Петербурга в Амстердам – то есть можно на нашей карте нарисовать стрелку от Санкт-Петербурга до Амстердама изображающую этот скомбинированный морфизм.
Надеюсь, с этим примером всё понятно. А теперь немного формализма для чёткости.
Читать дальше →
Всего голосов 52: ↑49 и ↓3 +46
Просмотры 14K
Комментарии 101

Как сохранить здоровье, работая за компьютером?

Здоровье
Из песочницы
Иллюстрация

Вы заботитесь о своем здоровье?


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

Что оказалось непросто. В данной статье я расскажу о моем способе организации «правильного» рабочего дня, о том, что следует для этого делать, и где лежат грабли, на которые нельзя наступать. Тема «компьютер и здоровье» уже несколько раз поднималась на Хабре, поэтому я задумывал этот пост как статью, которую можно добавить в закладки и использовать в качестве «руководства к действию».

Читать дальше →
Всего голосов 272: ↑259 и ↓13 +246
Просмотры 49K
Комментарии 139

12 способов не накосячить со вспышкой

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

Ниже — достаточно известные вещи, которые, однако, вызывали facepalm у тех, кто был вместе со мной или же у меня. В списке грабель вы с некоторой вероятностью можете найти что-нибудь новое. Если хотя бы она фича использования вспышки окажется для вас полезной, то мою задачу можно считать выполненной.
Читать дальше →
Всего голосов 228: ↑223 и ↓5 +218
Просмотры 210K
Комментарии 73

Краткая заметка по некоторым дополнительным возможностям Kindle третьего поколения

Гаджеты

В заметке я постараюсь начать описание нескольких интересных дополнительных возможностей этой замечательной читалки,. Речь пойдет о вариантах Kindle 3g и Kindle Wi-fi третьего поколения и некоторых штуках, не описаных в мануалах. Хотел бы заметить, что информацию о Киндле найти относительно не сложно, однако собрать все в одной заметке на русском, думаю, неплохая идея.

приступим
Всего голосов 127: ↑116 и ↓11 +105
Просмотры 13K
Комментарии 117

Использование старых ручных объективов на современных камерах

Фототехника
Из песочницы


Мне «по наследству» достался фотоаппарат «PRAKTICA» и два объектива c резьбовым соединением «M42». Этот тип крепления использовался на многих камерах в 70х-90х годах, в частности на советских Зенитах. Кстати у Зенита был штатный объектив Гелиос-44. У меня же Pentacon automatic mc с фокусным расстоянием 50мм и фокусным 1.8.

Читать дальше →
Всего голосов 91: ↑73 и ↓18 +55
Просмотры 32K
Комментарии 130

Береги глаза

Здоровье
imageЭта статья про то, насколько безопасно сидеть за компьютером часами, чем это чревато и как этого избежать, но обо всём по порядку.

Наше зрение — совершенный и удивительный механизм. Глаз имеет сложную систему подстройки-аккомодации, которая позволяет быстро и незаметно переходить от дальнего зрения к рассматриванию самых мелких предметов вблизи.
Читать дальше →
Всего голосов 62: ↑46 и ↓16 +30
Просмотры 7K
Комментарии 43

Задачи со склонов Фудзи

Чулан
На Хабре регулярно упоминают книгу Уильяма Паундстоуна «Как сдвинуть гору Фудзи». Я тут как-раз ее прочитал и решил для всеобщего удовольствия собрать в кучу все задачи, которые в ней упоминаются.

Обратите внимание — тут приведены только те задачи, которые имеют точное решение. Вопросы на рассуждение, типа «сколько в мире настройщиков роялей», я пропустил.
Читать дальше →
Всего голосов 31: ↑21 и ↓10 +11
Просмотры 4.7K
Комментарии 53

Запасаемся на зиму

Профессиональная литература
Книги — пища для мозгов программиста. А художественные — десерт. Хорошая книга — как вкусное блюдо, которое хочется дочитать растянув удовольствие, испробовать снова и снова. Но есть куча книг, которые мы еще не нюхали и, возможно, никогда не попробуем, потому что нам их не посоветовали несколько человек.

У каждого есть одна-две любимые книги, которые могут понравится другим, поделитесь пожалуйста, заразите. Думаю многим будет интересно поставить в очередь «к прочтению» несколько новых. Давайте устроим «дегустацию» книг в формате: одна книга — один комментарий. Чтобы другие могли добавить в избранное (и оценить, и обсудить) каждую книгу по отдельности.

Читать дальше →
Всего голосов 158: ↑148 и ↓10 +138
Просмотры 14K
Комментарии 476

Подключаемся к камерам наблюдения

Информационная безопасность *
image

Зачем нужны камеры наблюдения? Правильно — чтобы наблюдать за происходящим и контролировать ситуацию! В наше неспокойное время эти самые камеры развешаны повсюду — от денежных хранилищ до придорожных кафе. Однако защищая свои владения, хозяева порой забывают о защите самой камеры путем банальной установки пароля на доступ из Интернета. И очень зря. Если пароль не установить — ваша камера «безопасности» превращается в публичную вэб-камеру с реалити шоу для всех желающих.
Читать дальше →
Всего голосов 258: ↑245 и ↓13 +232
Просмотры 17K
Комментарии 133

Информация

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