Как стать автором
Обновить
87
0

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

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

Функторы, аппликативные функторы и монады в картинках

Время на прочтение5 мин
Количество просмотров192K
Вот некое простое значение:


И мы знаем, как к нему можно применить функцию:


Элементарно. Так что теперь усложним задание — пусть наше значение имеет контекст. Пока что вы можете думать о контексте просто как о ящике, куда можно положить значение:


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


data Maybe a = Nothing | Just a

Позже мы увидим разницу в поведении функции для Just a против Nothing. Но сначала поговорим о функторах!
Читать дальше →
Всего голосов 184: ↑175 и ↓9+166
Комментарии60

Обзор анимации с codepen для страниц загрузки сайта

Время на прочтение14 мин
Количество просмотров26K
Обзор анимации с codepen для страниц загрузки сайта

Программисты проверяют идеи для сайтов на площадках: codepen, jsbin, jsfiddle, cssdesk. Потому что там они мгновенно видят результат написанного кода и могут показать его другим.


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


Я решил делать подборки полезных решений с codepen. Первую уже выпускал на хабре «Обзор многоуровневых меню». Теперь вторая — «Обзор анимации для страниц загрузки сайта».


Подборку разделил на 3 статьи.


Читать дальше →
Всего голосов 26: ↑25 и ↓1+24
Комментарии13

Функциональное программирование на Javascript

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


Краткое содержание:

Возьмем немного функций высшего порядка, добавим частичное применение функций, приправим fold с map-ом и получим Javascript DSL для работы с DOM.

Человеческим языком:
Простое и понятное введение в функциональное программирование на чистом и понятном Javascript.

В отличие от «Через тернии к Haskell» все разжевано (возможно даже слишком) и разложено по полочкам.

Прочтение статьи развоплотит миф о неприменимости ФП в реальной жизни. Вы сможете смотреть на решение одной и той же задачи с разных точек зрения. Прямо как на картинке.

Читать дальше →
Всего голосов 123: ↑114 и ↓9+105
Комментарии54

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

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

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

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

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

50 оттенков Go: ловушки, подводные камни и распространённые ошибки новичков

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


Go — простой и забавный язык. Но в нём, как и в любых других языках, есть свои подводные камни. И во многих из них сам Go не виноват. Одни — это естественное следствие прихода программистов из других языков, другие возникают из-за ложных представлений и нехватки подробностей. Если вы найдёте время и почитаете официальные спецификации, вики, почтовые рассылки, публикации в блогах и исходный код, то многие из подводных камней станут для вас очевидны. Но далеко не каждый так начинает, и это нормально. Если вы новичок в Go, статья поможет сэкономить немало часов, которые вы бы потратили на отладку кода. Мы будем рассматривать версии Go 1.5 и ниже.
Читать дальше →
Всего голосов 80: ↑76 и ↓4+72
Комментарии270

Подводные камни Bash

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


В этой статье мы поговорим об ошибках, совершаемых программистами на Bash. Во всех приведённых примерах есть какие-то изъяны. Вам удастся избежать многих из нижеописанных ошибок, если вы всегда будете использовать кавычки и никогда не будете использовать разбиение на слова (wordsplitting)! Разбиение на слова — это ущербная легаси-практика, унаследованная из оболочки Bourne. Она применяется по умолчанию, если вы не заключаете подстановки (expansions) в кавычки. В общем, подавляющее большинство подводных камней так или иначе связаны с подстановкой без кавычек, что приводит к разбиению на слова и глоббингу (globbing) получившегося результата.


Читать дальше →
Всего голосов 143: ↑141 и ↓2+139
Комментарии63

Жаргон функционального программирования

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


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


В примерах используется JavaScript ES2015). (Почему JavaScript?)


Работа над материалом продолжается; присылайте свои пулл-реквесты в оригинальный репозиторий на английском языке.


В документе используются термины из спецификации Fantasy Land spec по мере необходимости.


Arity (арность)


Количество аргументов функции. От слов унарный, бинарный, тернарный (unary, binary, ternary) и так далее. Это необычное слово, потому что состоит из двух суффиксов: "-ary" и "-ity.". Сложение, к примеру, принимает два аргумента, поэтому это бинарная функция, или функция, у которой арность равна двум. Иногда используют термин "диадный" (dyadic), если предпочитают греческие корни вместо латинских. Функция, которая принимает произвольное количество аргументов называется, соответственно, вариативной (variadic). Но бинарная функция может принимать два и только два аргумента, без учета каррирования или частичного применения.

Читать дальше →
Всего голосов 91: ↑87 и ↓4+83
Комментарии113

С чего начать новичку в Go

Время на прочтение2 мин
Количество просмотров160K
Если вы решили попробовать замечательный язык Go, но не знаете с чего начать, вам прямая дорога в этот пост, где я постарался перечислить все необходимые для новичков ресурсы.
Читать дальше →
Всего голосов 56: ↑50 и ↓6+44
Комментарии50

[ПЕРЕВОД] Аутентификация на основе JSON Web Token в Django и AngularJS: часть первая

Время на прочтение7 мин
Количество просмотров72K
Наиболее распространенным методом аутентификации является аутентификация с использованием cookie файлов. Более современный метод аутентификации основан на использовании JSON Web Token (дословно: вэб маркер в формате JSON) и он быстро набирает популярность. В этой статье мы сосредоточимся на нем.

Что такое JSON Web Token?


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

JSON Web Token – это простой маркер в специальном формате. Пока формат не стандартизован, но многие уже используют одну из его реализаций (JWT).

JWT (произносится как jot) состоит из трех частей:
  • Заголовок
  • Полезная нагрузка
  • Подпись

Давайте рассмотрим каждую из них, прежде чем углубимся в реализацию.
Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии5

Как начать летать, хоть на чем-то, самостоятельно

Время на прочтение7 мин
Количество просмотров287K
Мое детство прошло среди людей которые все время на чем то летали. Строили, разрабатывали новое и тут же на нем летали. В 5 лет для меня стало открытием, что кто то в этом мире может не летать. К своим 26 годам я успел попробовать почти все на чем можно летать. Хочу поделиться своим опытом и рассказать о доступных возможностях.
Что бы начать летать у Вас есть такие варианты:

1. Парители (в этой статье)
  • Параплан
  • Дельтаплан
  • Планер

2. Моторный полет (вторая статья)
  • Легкий самолет
  • Мотодельтаплан
  • Паратрайк
  • Парамотор
  • Мотопланер



Начать летать самостоятельно
Всего голосов 281: ↑261 и ↓20+241
Комментарии270

Интересующимся мозгом/ИИ: ссылки на почитать

Время на прочтение18 мин
Количество просмотров82K
Расчищая Авгиевы конюшни на своем компе, взялся за структурирование накопившихся линков. Подумал, может и другим будет интересно то, что когда-то мне показалось достойным. Опять же, будет к чему отсылать с вопросом есть чо? «что почитать?»

Этот набор (порядка 400 ссылок) ни в коей мере не претендует на полноту или объективность. Наоборот, приглашаются все желающие дополнить и исправить (например раздел «Онлайн Курсы» подозрительно пуст). Если будет интерес, буду апдейтить этот пост новыми линками + апдейты отдельными постами оформлять.

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

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

PS: я оставил ссылки как есть, чтобы было видно куда ведет. Если кого напрягает — пишите, апдейтом спрячу.

Знание - сила!
Всего голосов 86: ↑79 и ↓7+72
Комментарии11

OAuth: описание протокола простым и понятным языком

Время на прочтение16 мин
Количество просмотров194K
OAuth — популярный протокол, который позволяет социальным сервисам интегрироваться между собой и дает безопасный способ обмена персональной информацией. OAuth может связать между собой 2 сервиса, каждый из которых имеет свою пользовательскую базу — именно их я в данном случае называю «социальными». Когда начинаешь работать с OAuth, первое ощущение — что протокол весьма сложен и избыточен. В этой статье я попытаюсь объяснить основы OAuth человеческим языком.

Пример кросс-авторизации


Вернемся в 2005-й год и представим, что мы пишем социальную сеть. В ней имеется форма импорта контактов из адресной книги GMail. Что нужно для доступа к контактам GMail? Конечно, логин и пароль от ящика. Но если мы попросим ввести их на нашем сайте, пользователь заподозрит неладное. Где гарантия, что мы не сохраняем на сервере введенные пароли? Поэтому нам хочется, чтобы пароль вводился только на сайте GMail, и после этого доступ к контактам через API GMail предоставлялся нашей социальной сети (возможно, на время).
Под катом - повествование с примерами
Всего голосов 134: ↑124 и ↓10+114
Комментарии34

Social commerce & social shopping

Время на прочтение3 мин
Количество просмотров2.7K
Что это за диковинные термины, и что за ними стоит? Очередная вебдванольная надуманная конструкция, или реальный тренд?
Рискну предложить на ваш суд свою трактовку, т.к. давно изучаю эти явления.

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

image

Для начала попытаемся понять основу social commerce и social shopping, как, для чего и для кого они появились.
Не буду утомлять пересказом всем известных различий между веб 1.0 и веб 2.0, но именно переход интернета из одной эпохи в другую сильно повлиял на электронную коммерцию.
Благодаря этим изменениям появились не просто социальные сети и сообщества, о которых мы много говорим, и которые активно обсуждаем, – появилась потребность и возможность влиять на бизнес.
Читать дальше →
Всего голосов 42: ↑36 и ↓6+30
Комментарии23

Создание палитры

Время на прочтение1 мин
Количество просмотров2.8K
imageОнлайн инструмент для создания цветовых схем. Есть 6 вариантов подборки цветов, возможность корректировки яркости контрастности отобранных цветов или выбор из имеющихся вариантов (темное / светлое и т. п.), возможность просмотреть шестнадцатеричные коды основного цвета и дополнительных, есть функция предпросмотра «сайта» с выбраными цветами со светлым / темным фоном, симуляция различных нарушений восприятия цветов людьми, рандомайзер, а так же API для интеграции с вашим сайтом. www.colorschemedesigner.com
Читать дальше →
Всего голосов 63: ↑59 и ↓4+55
Комментарии20

Не дают играть на работе? Не проблема, запускайте PowerPoint

Время на прочтение1 мин
Количество просмотров3.3K
И снова меня поражают возможности PowerPoint. В этот раз игры, смотрите:



Скачать для PowerPoint 2007.

Или такая:



Скачать для PowerPoint 2007.

Круто, да?
Всего голосов 37: ↑26 и ↓11+15
Комментарии15

Как не дать диаграммам себя обмануть

Время на прочтение4 мин
Количество просмотров13K
Мы продолжаем развивать тему манипуляций с диаграммами в презентациях (и не только в них) и сегодня я представлю интересную статью. Вы сможете на себе испытать все приемы приведенные в ней :)

Кстати, мы продолжаем записывать всех на бесплатный онлайн видеосеминар «Манипулятивная диаграммология», который пройдет 5 марта 2009 года.

Итак, налейте себе вкусного чая или кофе, возьмите что-нибудь вкусненькое и начинайте читать:
Всего голосов 80: ↑77 и ↓3+74
Комментарии30

Ещё о нашем любимом кризисе

Время на прочтение2 мин
Количество просмотров646
Недавняя публикация заставила очередной раз задуматься о проблемах глобальной экономики :)

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

Совершенно очевидно, что при современном состоянии технологий лишь небольшая часть людей работает на удовлетворение базовых потребностей человека — то есть на выращивание еды, строительство скромного жилища и выкачку газа, достаточного для его обогрева. Гораздо больше людей работает на удовлетворение «условно важных», потребностей. И ещё столько же, наверно, занимается исключительно роскошью. Под роскошью я понимаю роскошь в самом широком смысле — т.е. ту вещь, без которой можно легко обойтись.
Читать дальше →
Всего голосов 68: ↑43 и ↓25+18
Комментарии109

Коллекции иконок? Легко! Тысячи иконок в сетах.

Время на прочтение2 мин
Количество просмотров39K
В продолжении поста "Ресурсы по поиску качественных иконок" представляю свою коллекцию сайтов, на которых вы найдёте очень(!) много качественных наборов иконок. Все сайты проверены руками, следовательно открываются и скачиваются легко.
Читать дальше →
Всего голосов 156: ↑134 и ↓22+112
Комментарии36

IT блоггеры Рунета, где вы?

Время на прочтение2 мин
Количество просмотров13K
Буквально вчера я понял, что кроме Хабра в моем RSS ридере нет ни одного русскоязычного источника IT информации. Несправедливость какая-то, подумал я и принялся составлять список блоггеров, которых было бы интересно почитать и за которыми хотелось бы активно следить. Задача эта, как ни странно, оказалась не из самых простых. Поэтому и обращаюсь за помощью к Хабрачеловекам.

Интерес вызывают специалисты и любители, программисты, дизайнеры, предприниматели и маркетологи, пишущие аналитические статьи, обзоры на айти и околоайти-шные темы, прогнозы и новости. Пусть они будут не особо известными, главное чтобы информация была свежей и интересной. Поэтому если вы ведете IT блог, или следите за интересным IT блогом, пожалуйста, оставьте ссылку на него в комментариях к этому хабратопику (или, если вы не зарегистрированы на Хабре, отправьте URL мне через twitter) — таким образом я смогу составить наиболее полный список самых интересных IT блоггеров рунета и, конечно же, поделиться им со всеми.

Сразу скажу, что лично меня не интересует: блоги с превалирующей информацией на личные темы; переводчики-кросспостеры информации с западных мейнстримовых блогов (TC, Mashable, Technorati и т.п.), ну и наверное всё.

UPD: Огромное спасибо всем, кто прислал линки! Под катом находится лишь малая доля ссылок, присланных хабрапользователями, основные сливки в комментариях
Читать дальше →
Всего голосов 119: ↑111 и ↓8+103
Комментарии160

Выравниваем блок по центру страницы

Время на прочтение5 мин
Количество просмотров979K
Очень часто стоит задача выровнять блок по центру страницы / экрана, да ещё и так, чтобы без ява-скрипта, без задания жёстких размеров или отрицательных отступов, ещё чтобы и скроллбары работали у родителя, если блок превышает его размеры. В сети ходят достаточно много однообразных примеров как выровнять блок по центру экрана. Как правило большинство из них основаны на одних принципах.
Читать далее
Всего голосов 69: ↑51 и ↓18+33
Комментарии49

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность