Pull to refresh
9
0

User

Send message

Не убивайте свою мотивацию: осваивайте Ruby on Rails на интересных примерах

Reading time8 min
Views43K
Все же помнят, как это бывает: учишься ты чему-то новому, но вдруг раз и приуныл. А все почему? Потому что разработка типовых приложений при обучении скучна до зубовного скрежета.

Подобные задания становятся УБИЙЦАМИ мотивации №1.

Лично я не хочу, чтобы мои ученики теряли мотивацию и сдавались на полпути. Поэтому я создал этот километровый список из 27 забавных идей для приложений, которые вы можете создать, пока обучаетесь использовать React на пару с Ruby on Rails.


Читать дальше →
Total votes 31: ↑28 and ↓3+25
Comments25

Создание движка для блога с помощью Phoenix и Elixir / Часть 4. Добавляем обработку ролей в контроллерах

Reading time20 min
Views4K


От переводчика: «Elixir и Phoenix — прекрасный пример того, куда движется современная веб-разработка. Уже сейчас эти инструменты предоставляют качественный доступ к технологиям реального времени для веб-приложений. Сайты с повышенной интерактивностью, многопользовательские браузерные игры, микросервисы — те направления, в которых данные технологии сослужат хорошую службу. Далее представлен перевод серии из 11 статей, подробно описывающих аспекты разработки на фреймворке Феникс казалось бы такой тривиальной вещи, как блоговый движок. Но не спешите кукситься, будет действительно интересно, особенно если статьи побудят вас обратить внимание на Эликсир либо стать его последователями.

В этой части мы закончим разграничение прав доступа с использованием ролей. Ключевой момент данной серии статей — здесь очень много внимания уделяется тестам, а тесты — это здорово!


На данный момент наше приложение основано на:

  • Elixir: v1.3.1
  • Phoenix: v1.2.0
  • Ecto: v2.0.2
  • Comeonin: v2.5.2

Где мы остановились


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

Создание вспомогательной функции для проверки ролей


Первым шагом на сегодня станет создание простой проверки пользователя на наличие прав администратора. Для этого создайте файл web/models/role_checker.ex и заполните его следующим кодом:
Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments10

Список бесплатных транзакционных, хостинговых и маркетинговых email-провайдеров

Reading time5 min
Views37K
Если вы блоггер или управляете малым или средним бизнесом, то скорее всего вы не против сэкономить. Как раз на электронной почте можно сохранить несколько сотен долларов в год.

Существуют три вида почтовых услуг, которые могут пригодиться блоггеру или владельцу сайта:

  1. Транзакционные. Нужны для отправки писем о событиях, транзакциях, уведомлений о заказе, регистрационных данных и т.д.;

  2. Маркетинговые. Нужны при осуществлении новостной рассылки, проведении акций, обновлениях в блоге и т.д.;

  3. Хостинг почты. Нужен для получения и отправки электронных писем (потребуется, если вы пользуетесь виртуальными серверами, например, DigitalOcean, Linode и т.п.).

image
Читать дальше →
Total votes 19: ↑16 and ↓3+13
Comments11

Руководство по работе с Redux

Reading time80 min
Views283K
Сегодня Redux — это одно из наиболее интересных явлений мира JavaScript. Он выделяется из сотни библиотек и фреймворков тем, что грамотно решает множество разных вопросов путем введения простой и предсказуемой модели состояний, уклоне на функциональное программирование и неизменяемые данные, предоставления компактного API. Что ещё нужно для счастья? Redux — библиотека очень маленькая, и выучить её API не сложно. Но у многих людей происходит своеобразный разрыв шаблона — небольшое количество компонентов и добровольные ограничения чистых функций и неизменяемых данных могут показаться неоправданным принуждением. Каким именно образом работать в таких условиях?

В этом руководстве мы рассмотрим создание с нуля full-stack приложения с использованием Redux и Immutable-js. Применив подход TDD, пройдём все этапы конструирования Node+Redux бэкенда и React+Redux фронтенда приложения. Помимо этого мы будем использовать такие инструменты, как ES6, Babel, Socket.io, Webpack и Mocha. Набор весьма любопытный, и вы мигом его освоите!
Читать дальше →
Total votes 65: ↑59 and ↓6+53
Comments51

DevTips: Советы веб-разработчику (1-16)

Reading time5 min
Views70K
Команда браузера Google Chrome проделывает огромную работу для того, чтобы разработчикам жилось лучше. Chrome DevTools — пример замечательного инструмента, сильно упрощающего отладку вашего веб-приложения. Но подчас не весь функционал этой системы виден с первого взгляда, поэтому Umar Hansa — программист из Лондона — описывает его на своем сайте, причем в весьма удобном формате: немного текста и короткий скринкаст. А мы, в свою очередь, решили сделать эти советы более доступными русскоязычной аудитории.

Содержание:
  1. Перенаправление порта позволит вам открывать локальные ссылки на мобильном устройстве
  2. Активация псевдо-классов DOM-элемента
  3. Повтор сетевого запроса при помощи cURL
  4. Запуск сохранённых блоков кода (сниппетов) на любой веб-странице
  5. Отслеживание изменений файлов через DevTools
  6. Простая запись действий страницы
  7. Поиск элементов DOM-дерева при помощи CSS-селекторов
  8. Копирование изображения в формате Data URI
  9. Переход к нужной строке при открытии файла
  10. Упрощенная навигация между правками
  11. Копирование ответа на сетевой запрос
  12. Работа с несколькими курсорами при редактировании скриптов
  13. Блочное выделение
  14. Быстрый мониторинг событий в консоли
  15. Доступ к выбранному DOM-узлу в консоли
  16. Отслеживание незавершенных сетевых запросов при помощи фильтра is:running

Продолжение: 17-32, 33-48.
Читать дальше →
Total votes 67: ↑62 and ↓5+57
Comments18

Дайджест интересных материалов из мира веб-разработки и IT за последнюю неделю №192 (28 декабря 2015 — 3 января 2016)

Reading time5 min
Views31K
Предлагаем вашему вниманию подборку с ссылками на полезные ресурсы, интересные материалы и IT-новости


Читать дальше →
Total votes 32: ↑28 and ↓4+24
Comments0

Поднимаем сложный проект на Django с использованием Docker

Reading time10 min
Views73K
Добрый день, коллеги.

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

Исходные данные у нас такие: начинается разработка проекта, в которой планируется «тонкий бэкенд». Т.е. бэк у нас состоит из закешированных страниц (рендерятся любым шаблонизатором), объёмных моделей с сопутствующей логикой (ORM) и REST API, выполняющего роль контроллера. Фактически, View в такой системе редуцировано и вынесено в JS, благо есть разные реакты, ангуляры и прочие вещи, которые позволяют фронтендщикам считать себя «белыми людьми».
Читать дальше →
Total votes 21: ↑17 and ↓4+13
Comments49

«Прозрачный» Squid с фильтрацией HTTPS ресурсов без подмены сертификатов (х86, х64 — универсальная инструкция)

Reading time7 min
Views87K
Всем привет! Прошлая статья про прозрачное проксирование HTTPS с помощью Squid'a была вполне успешной. Приходило по почте множество отзывов об успешной установке данной системы. Но также и поступали письма с просьбами о помощи. Проблемы были вполне решаемыми. Но не так давно обратилась ко мне одна коллега с просьбой о помощи в установке этой системы на х64 архитектуре (Debian). Тут мы озадачились. Во-первых, оказалось, что прошлая статья непригодна для этого по причине отсутствия нужных исходников в репозитории Debian (там теперь 3.5.10). Найти нужные в первой статье Debian'овские исходники не удалось, а checkinstall выдавал странные ошибки. Во-вторых, хотелось более универсального решения, которое бы без проблем работало и на х64, и на х86, и (по-возможности) на других дистрибутивах. Решение было найдено. Получилось небольшое дополнение к предыдущей статье + некоторые уточнения. Данная инструкция позволяет скомпилировать как х86, так и х64 версии Squid'a и создать соответствующие пакеты. Инструкция будет разбита на несколько пунктов и подпунктов. Если интересно, идем под кат:
Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments75

Полезные сниппеты для Nginx конфигов

Reading time5 min
Views121K


Доброго времени суток, уважаемые хабравчане! В Elasticweb мы негласно ратуем за Nginx и, наверное, мы одни из немногих хостингов, которые не поддерживают Apache и .htaccess соответственно. В связи с этим, большое количество обращений в тех. поддержку связано с оказанием помощи в написании конфигурационного файла для Nginx. Поэтому мы решили собрать коллекцию полезных сниппетов и коллекцию готовых Nging конфигов для наиболее популярных CMS/CMF/Фреймворков на PHP.

Читать дальше →
Total votes 94: ↑91 and ↓3+88
Comments44

Ресурсы для дизайнеров и front-end-разработчиков

Reading time5 min
Views64K
Ниже представлена подборка инструментов для дизайнеров и front-end-разработчиков. Мы настоятельно рекомендуем вам просмотреть их все. Надеемся, что вы найдете для себя что-то полезное.

Читать дальше →
Total votes 41: ↑30 and ↓11+19
Comments7

Asterisk + LUA: быстрый старт

Reading time6 min
Views29K
За последний год на Хабре появилось несколько статей про использование диалплана lua в asterisk (раз, два, три, четыре). Это достаточно интересный способ написания гибких и мощных диалпланов. Но чтобы попробовать такой способ написания диалпланов надо потратить некоторое количество времени: установить нужные библиотеки, пересобрать с необходимыми опциям астериск.

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

В данной статье я хочу показать всем желающим и работающим с астериском, как, используя docker, можно быстро ощутить вкус гибких сценариев lua. А уж затем решить стоит этим пользоваться дальше на практике или нет. (Кому неинтересно читать, а интересно смотреть и слушать — в конце текста 6-минутное видео с основными моментами и результатом.)


Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments0

Резервирование внутренних и внешних каналов связи, статическая маршрутизация, корпоративная сеть на MikroTik

Reading time16 min
Views49K
Я работаю инженером технической поддержки в ISP. В статье поделюсь опытом построения корпоративной сети со статической маршрутизацией и резервированием каналов связи, а также автоматическим информированием об аварии на email, при ограниченном бюджете для торговой сети магазинов. Для опытных сетевых инженеров статья вряд ли будет интересной. Для админов, которым поставлена подобная задача, данная статья может пригодиться.

Считаю, что динамическая маршрутизация именно в данной задаче работала бы не так быстро и вероятно надежно, как того требует проект. Ничего не имею против динамической маршрутизации, но негативные отзывы о работе ее на оборудовании MikroTik и некоторая специфика сети (об этом ниже), повлияли на выбор в сторону статики и скриптов.
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments14

Дайджест интересных материалов из мира веб-разработки и IT за последнюю неделю №185 (8 — 15 ноября 2015)

Reading time8 min
Views30K
Предлагаем вашему вниманию подборку с ссылками на полезные ресурсы, интересные материалы и IT-новости


Читать дальше →
Total votes 28: ↑25 and ↓3+22
Comments6

FP на Scala: Что такое функтор?

Reading time15 min
Views32K
Специалист, приступающий к изучению функционального программирования, сталкивается как с неоднозначностью и запутанностью терминологии, так и с постоянными ссылками на «серьезную математику».

В этой статье, не используя теорию категорий с одной стороны и эзотерические языковые механизмы Scala с другой стороны, рассмотрены два важнейших понятия
  • ко-вариантный функтор
  • контра-вариантный функтор
которые являются стартовой точкой для понимания всего множества категориальных конструкций, куда можно включить
  • Exponential (Invariant) Functor, BiFunctor, ProFunctor
  • Applicative Functor, Arrow, Monad / Co-Monad
  • Monad Transformers, Kleisli, Natural Transformations

Объяснено происхождение категориальной терминологии, указана роль языковых механизмов в реализации категориальных абстракций и рассмотрено несколько ковариантных (Option, Try, Future, List, Parser) и контравариантных (Ordering, Equiv) функторов из стандартной библиотеки Scala.

Первая статья в «категориальной серии»:
  1. FP на Scala: что такое функтор?
  2. FP на Scala: Invariant Functor

Если Вы желаете сильнее погрузиться в мир Scala, математики и функционального программирования — попробуйте онлайн-курс «Scala for Java Developers» (видео + тесты, всего за 25% цены!).


Читать дальше →
Total votes 25: ↑24 and ↓1+23
Comments7

Состояние экосистемы Common Lisp на 2015 год

Reading time10 min
Views18K
От переводчика:
Мне часто доводилось слышать, что в Common Lisp библиотеки из 80ых, и других вобще нет, а множество его пользователей представляет собой 3.5 профессоров, работающих над искусственным интеллектом в катакомбах DARPA и не имеющих даже близкого представления о повседневных задач рядового программиста. Данная статья хорошо показывает, что хоть вы и можете наткнуться на старые библиотеки, но использовать стоит лишь современные аналоги, что существующие библиотеки развиваются и постоянно появляются новые.

Автор этой статьи, Fernando Borretti, является активным контрибьютором в экосистему Common Lisp'а, автор более 30 библиотек, большинство из которых предназначены для веб-разработки.

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


Читать дальше →
Total votes 21: ↑21 and ↓0+21
Comments12

Как я использую PostCSS

Reading time4 min
Views73K
CSS-препроцессоры в своё время значительно облегчали работу по написанию CSS кода. Однако в некотором роде все они были несовершенны и имели значительные изъяны в работе. А потому на смену препроцессорам пришёл постпрепроцессор PostCSS.

Это довольно таки мощный инструмент, облегчающий работу с CSS. Постпрепроцессор уже сегодня используется в таких крупных компаниях как Twitter и Google. Кроме того, по сообщениям разработчиков Bootstap, пятая версия CSS-фреймворка вероятнее всего также будет написана на PostCSS.
Читать дальше →
Total votes 23: ↑20 and ↓3+17
Comments29

Тонкости ES6: Коллекции (часть 2)

Reading time6 min
Views22K
От переводчика: это вторая часть перевода статьи про коллекции в EcmaScript 6. Первую часть можно прочитать тут. По разным причинам перевод второй части затянулся на достаточно долгий срок.

Map


Map (ассоциативный массив) — это коллекция пар ключ-значение (key-value). Вот что умеет Map:
  • new Map возвращает новый пустой ассоциативный массив.
  • new Map(pairs) создает новый ассоциативный массив и наполняет его данными из существующей коллекции пар [key, value]. Эта коллекция может быть другим Map объектом, массивом из двухэлементных массивов, генератором который возвращает двухэлементые массивы, и т.д.
  • map.size возвращает количество элементов в ассоциативном массиве.

Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments26

Подборка актуальных и полезных материалов по Ruby #1: статьи, доклады, подкасты, гемы

Reading time3 min
Views17K


Всем привет! Я работаю в AT Consulting и представляю команду разработчиков портала Beeline.kz, который мы пишем на Ruby on Rails. Поскольку информация в нашей сфере быстро устаревает, приходится постоянно следить за новостями и обучаться новым технологиям. По мере накопления новостей и полезных материалов, связанных с Ruby, я буду публиковать Ruby-дайджест.
Большинство материалов, которые я собрал в дайджесте, написаны на английском, но я надеюсь, что это не проблема, ведь первый шаг к Ruby – это изучение языка.
Читать дальше →
Total votes 21: ↑19 and ↓2+17
Comments15

Веб-приложение на Clojure. Часть 2

Reading time11 min
Views12K
Здравствуйте, уважаемые пользователи и посетители Хабра. В первой статье Веб-приложения на Clojure были рассмотрены базовые инструменты и библиотеки для построения веб-проектов на Clojure. А именно Leiningen, Ring, Compojure, Monger, Buddy и Selmer. Здесь же речь пойдет об их практическом применении.
Читать дальше →
Total votes 16: ↑15 and ↓1+14
Comments5
1
23 ...

Information

Rating
Does not participate
Location
Реутов, Москва и Московская обл., Россия
Registered
Activity