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

    • Translation
    Вот некое простое значение:


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


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


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


    data Maybe a = Nothing | Just a
    

    Позже мы увидим разницу в поведении функции для Just a против Nothing. Но сначала поговорим о функторах!
    Читать дальше →
  • Обзор анимации с codepen для страниц загрузки сайта

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

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


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


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


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


      Читать дальше →
    • Функциональное программирование на Javascript

      • Translation
      • Tutorial


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

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

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

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

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

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

      • Translation

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

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

      UPD: альтернативный вариант перевода вы можете найти на rsdn (спасибо flamingo за ссылку).
      Читать дальше →
    • 50 оттенков Go: ловушки, подводные камни и распространённые ошибки новичков

      • Translation
      • Tutorial


      Go — простой и забавный язык. Но в нём, как и в любых других языках, есть свои подводные камни. И во многих из них сам Go не виноват. Одни — это естественное следствие прихода программистов из других языков, другие возникают из-за ложных представлений и нехватки подробностей. Если вы найдёте время и почитаете официальные спецификации, вики, почтовые рассылки, публикации в блогах и исходный код, то многие из подводных камней станут для вас очевидны. Но далеко не каждый так начинает, и это нормально. Если вы новичок в Go, статья поможет сэкономить немало часов, которые вы бы потратили на отладку кода. Мы будем рассматривать версии Go 1.5 и ниже.
      Читать дальше →
    • Подводные камни Bash

      • Translation


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


      Читать дальше →
    • Жаргон функционального программирования

      • Translation


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


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


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


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


      Arity (арность)


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

      Читать дальше →
    • С чего начать новичку в Go

      • Tutorial
      Если вы решили попробовать замечательный язык Go, но не знаете с чего начать, вам прямая дорога в этот пост, где я постарался перечислить все необходимые для новичков ресурсы.
      Читать дальше →
    • [ПЕРЕВОД] Аутентификация на основе JSON Web Token в Django и AngularJS: часть первая

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

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


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

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

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

      Давайте рассмотрим каждую из них, прежде чем углубимся в реализацию.
      Читать дальше →
      • +14
      • 68.5k
      • 5
    • Как начать летать, хоть на чем-то, самостоятельно

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

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

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



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

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

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

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

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

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

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

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

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


            Вернемся в 2005-й год и представим, что мы пишем социальную сеть. В ней имеется форма импорта контактов из адресной книги GMail. Что нужно для доступа к контактам GMail? Конечно, логин и пароль от ящика. Но если мы попросим ввести их на нашем сайте, пользователь заподозрит неладное. Где гарантия, что мы не сохраняем на сервере введенные пароли? Поэтому нам хочется, чтобы пароль вводился только на сайте GMail, и после этого доступ к контактам через API GMail предоставлялся нашей социальной сети (возможно, на время).
            Под катом - повествование с примерами
          • Social commerce & social shopping

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

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

              image

              Для начала попытаемся понять основу social commerce и social shopping, как, для чего и для кого они появились.
              Не буду утомлять пересказом всем известных различий между веб 1.0 и веб 2.0, но именно переход интернета из одной эпохи в другую сильно повлиял на электронную коммерцию.
              Благодаря этим изменениям появились не просто социальные сети и сообщества, о которых мы много говорим, и которые активно обсуждаем, – появилась потребность и возможность влиять на бизнес.
              Читать дальше →
            • Создание палитры

              • Translation
              imageОнлайн инструмент для создания цветовых схем. Есть 6 вариантов подборки цветов, возможность корректировки яркости контрастности отобранных цветов или выбор из имеющихся вариантов (темное / светлое и т. п.), возможность просмотреть шестнадцатеричные коды основного цвета и дополнительных, есть функция предпросмотра «сайта» с выбраными цветами со светлым / темным фоном, симуляция различных нарушений восприятия цветов людьми, рандомайзер, а так же API для интеграции с вашим сайтом. www.colorschemedesigner.com
              Читать дальше →
            • Как не дать диаграммам себя обмануть

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

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

                Итак, налейте себе вкусного чая или кофе, возьмите что-нибудь вкусненькое и начинайте читать:
              • Ещё о нашем любимом кризисе

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

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

                  Совершенно очевидно, что при современном состоянии технологий лишь небольшая часть людей работает на удовлетворение базовых потребностей человека — то есть на выращивание еды, строительство скромного жилища и выкачку газа, достаточного для его обогрева. Гораздо больше людей работает на удовлетворение «условно важных», потребностей. И ещё столько же, наверно, занимается исключительно роскошью. Под роскошью я понимаю роскошь в самом широком смысле — т.е. ту вещь, без которой можно легко обойтись.
                  Читать дальше →
                • Коллекции иконок? Легко! Тысячи иконок в сетах.

                    В продолжении поста "Ресурсы по поиску качественных иконок" представляю свою коллекцию сайтов, на которых вы найдёте очень(!) много качественных наборов иконок. Все сайты проверены руками, следовательно открываются и скачиваются легко.
                    Читать дальше →
                  • Новые модули для Internet Information Server 7

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

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

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

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

                        UPD: Огромное спасибо всем, кто прислал линки! Под катом находится лишь малая доля ссылок, присланных хабрапользователями, основные сливки в комментариях
                        Читать дальше →