Как стать автором
Обновить
2
0
Кулицкий Александр @iJoy

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

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

Основы реактивного программирования с использованием RxJS

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

Часть 1. Реактивность и потоки


Данная серия статей посвящена реактивности и ее применению в JS с использованием такой замечательной библиотеки как RxJS.

Серия статей «Основы реактивного программирования с использованием RxJS»:



Для кого эта статья: в основном, здесь я буду объяснять основы, поэтому в первую очередь статья рассчитана на новичков в данной технологии. Вместе с тем надеюсь, что и опытные разработчики смогут почерпнуть для себя что-то новое. Для понимания потребуются знания js(es5/es6).

Мотивация: впервые я столкнулся с RxJS, когда начал работать с angular. Именно тогда у меня возникли сложности с пониманием механизма реактивности. Сложности прибавлял еще тот факт, что на момент начала моей работы большинство статей было посвящено старой версии библиотеки. Пришлось читать много документации, различных мануалов, чтобы хоть что-то понять. И только спустя некоторое время я начал осознавать, как “все устроено”. Чтобы упростить жизнь другим, я решил разложить все по полочкам.
Читать дальше →
Всего голосов 21: ↑18 и ↓3+15
Комментарии13

Работа с часовыми поясами в JavaScript

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


Недавно я работал над задачей добавления часовых поясов в JS-библиотеку календаря, которую ведёт моя команда. Мне было хорошо известно о никудышной поддержке часовых поясов в JavaScript, но я надеялся, что абстрагирование имеющихся объектов данных позволит легко решить большинство трудностей.

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

В этой статье я хочу обсудить, с чем я столкнулся и как это решал. Пока я писал текст, осознал, что причиной всех невзгод было плохое понимание мной самой темы часовых поясов. В свете этого осознания я предлагаю сначала подробно поговорить об определении и стандартах, а уже потом переходить к JavaScript.
Читать дальше →
Всего голосов 90: ↑84 и ↓6+78
Комментарии14

Знакомство с XACML — стандартом для Attribute-Based Access Control

Время на прочтение26 мин
Количество просмотров65K
В предыдущей статье мы рассказывали о том, что такое Attribute-Based Access Control и в чем его преимущества по сравнению с наиболее распространенным на сегодняшний день Role-Based Access Control. Пришло время рассмотреть ABAC более детально, через существующий стандарт под названием XACML.

Стандарт переживает уже третью и, скорее всего, не последнюю редакцию, история его ведет свой отсчет с 2003 года. Курирует и поддерживает стандарт организация OASIS. Этот стандарт описывает необходимые компоненты системы, их назначение, способ их взаимодействия и использования. По сути, он охватывает все, что нужно, до мелочей.

В данной статье будут рассматриваться способ выражения бизнес-правил в виде политик безопасности, основные компоненты системы безопасности, ее интеграция и другие моменты, стандартом не затрагиваемые, но не менее важные и интересные. Приглашаю всех читателей познакомиться с этими вопросами подробнее. Также приветствуются любые замечания, комментарии, вопросы и критика.
Читать дальше →
Всего голосов 19: ↑17 и ↓2+15
Комментарии6

Натив или гибрид? Специалисты Яндекса отвечают на главный вопрос мобильной разработки

Время на прочтение11 мин
Количество просмотров32K
Осталось буквально четыре дня до момента, когда мы закончим принимать заявки на участие во второй «Мобилизации» Яндекса. Она вновь объединит четыре летние школы для начинающих специалистов: Школу менеджмента, Школу мобильного дизайна, Школу разработки интерфейсов и Школу мобильной разработки под Android.



Своим опытом и знаниями с участниками будут делиться не только сотрудники Яндекса, которые делают приложения для миллионов пользователей, но и приглашенные специалисты. Мы не обойдемся только теорией. Будет много практики и командной работы над настоящими продуктами. Как всегда, обучение бесплатное, а всем иногородним студентам Яндекс оплатит проезд и проживание. Если вы еще не отправили заявку, есть немного времени это сделать. Занятия стартуют 3 июля и закончатся 23 сентября — в день двадцатилетия Яндекса.

В мобильной разработке одни из самых горячих споров ведутся вокруг нативной и гибридной разработки. Мы решили дать трём преподавателям «Мобилизации» порассуждать на эту тему. Получилось небольшое интервью, которое может быть интересно как новичкам в разработке, так и тем, кто уже определился со своим выбором.
Читать дальше →
Всего голосов 49: ↑46 и ↓3+43
Комментарии38

Agile API — возможно ли?

Время на прочтение11 мин
Количество просмотров13K
Множество статей и книг посвящено тому, как правильно проектировать API, но едва ли кто-то затрагивал тему постоянно меняющихся (гибких) API. Динамично развивающаяся компания зачастую выпускает по несколько релизов в неделю, а иногда и в день. При этом для добавления новых функций необходимо постоянно вносить изменения в существующее API. В этой статье мы расскажем о том, как мы в Badoo решаем эту задачу, какие подходы и идеи мы используем в своей работе.

Для начала я должен немного подробнее рассказать о Badoo, чтобы вы понимали, кто работает с нашим API и почему оно так часто меняется.

Читать дальше →
Всего голосов 35: ↑34 и ↓1+33
Комментарии0

Как HTTP/2 сделает веб быстрее

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


Протокол передачи гипертекста (HTTP) — это простой, ограниченный и невероятно скучный протокол, лежащий в основе Всемирной паутины. По сути, HTTP позволяет считывать данные из подключённых к сети ресурсов, и в течение десятилетий он выступает в роли быстрого, безопасного и качественного “посредника”.
В этой обзорной статье мы расскажем об использовании и преимуществах HTTP/2 для конечных пользователей, разработчиков и организаций, стремящихся использовать современные технологии. Здесь вы найдёте всю необходимую информацию о HTTP/2, от основ до более сложных вопросов.
Читать дальше →
Всего голосов 35: ↑22 и ↓13+9
Комментарии41

Гарвардский курс по основам программирования CS50 теперь на русском

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

Предыстория: кто мы и как дошли до жизни такой

Мы — команда проекта JavaRush. А JavaRush, кто еще не в курсе, — это полностью автоматизированный обучающий онлайн-курс по Java. Когда-то давно, именно благодаря поддержке хаброюзеров и статьям на хабре, JavaRush и появился. В то время мы собирались переучить на программистов миллион человек.
Читать дальше →
Всего голосов 47: ↑47 и ↓0+47
Комментарии38

Роскомнадзор заблокировал веб-сервисы Amazon S3

Время на прочтение1 мин
Количество просмотров60K
В реестр заблокированных сайтов попал домен s3.amazonaws.com. В реестр внесена только одна страница игрового проекта 888poker, но Дом.ру блокирует целиком весь домен, т.к. заблокированная страница внесена в реестр с протоколом HTTPS со всеми вытекающими последствиями. Хотя блокировка была внесена в реестр 11 мая по каким-то причинам она начала действовать только сегодня. На данный момент домен заблокирован в сети Дом.ру, ТТК, Акадо и некоторых других провайдеров. В результате не доступны все веб-сервисы S3, ну и соответственно контент размещенный в корзинах S3.

Обновление: Дом.ру блокировку снял
Читать дальше →
Всего голосов 49: ↑40 и ↓9+31
Комментарии248

Как стать профессиональным веб-разработчиком: практическое руководство

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

Дорога длинна и трудна, но интересна и полезна!

Статья задумывалась как практическое руководство для желающих стать профессиональным веб-разработчиком. Я уже более 20 лет пишу код для веба. Я ежедневно работаю с веб-разработчиками и помогаю им. В статье я опишу, что вам нужно выучить, когда вам нужно это выучить и где взять информацию (чаще всего даже бесплатно). Затем я дам совет по получению реального опыта, и что самое важное – по получению денег за написание кода.

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

Что нужно помнить:

1. Статью разрешается пролистывать

Руководство может помочь вам вне зависимости от вашего положения на дороге к профессиональной разработке. Прокрутите его к тому заголовку, который лучше всего описывает ваше сегодняшнее положение, и читайте оттуда. Если вы только начали этот путь, или пока размышляете об этом – последуйте совету Короля из «Алисы в стране чудес»:

Начните с начала, и продолжайте, пока не дойдёте до конца; и там уже остановитесь.
Читать дальше →
Всего голосов 49: ↑38 и ↓11+27
Комментарии129

CTO «Медузы» — Самат Галимов кратко о том, каково быть главным по разработке в медиа

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


У Самата samat Галимова интересный опыт: от практики в «Яндексе», через Bookmate, до технического директора издания «Медуза». Мы задали Самату несколько вопросов, для того чтобы быстро прояснить, каково это — разрабатывать современный медиа-продукт для многомиллионной аудитории.

Текущее место работы
Meduza.io

Должностные обязанности
— Отвечаю за всё техническое, что есть в Медузе.
Читать дальше →
Всего голосов 36: ↑20 и ↓16+4
Комментарии7

Создание компонента движения для системы лазания в Unreal Engine

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

Здравствуйте меня зовут Дмитрий. Я занимаюсь созданием компьютерных игр на Unreal Engine в качестве хобби.

Как вы знаете недавно вышла Mirror's edge 2. Судя по отзывам критиков игра получилась очень слабая. И вы наверно уже захотели сделать свой Mirror's edge. Поэтому сегодня я расскажу как создать компонент движения, чтобы ваш персонаж двигался как героиня Mirror's edge.

Здесь будет описано создание компонента движения (дальше КД) который позволит персонажу:
1) Запрыгивать на стену.
2) Бегать по стене.
3) Перескакивать через небольшие препятствия
4) Делать ускорение при непрерывном беге
5)Делать подкат при нажатие Shift
6) Скатываться с наклонных поверхностей
7) А также мы создадим интерактивный объект веревку по которой тоже можно будет скатится

Все исходники приведены в конце статьи.
Читать дальше →
Всего голосов 28: ↑23 и ↓5+18
Комментарии6

Функциональное программирование непопулярно, потому что оно странное

Время на прочтение7 мин
Количество просмотров67K
Я знаю людей, которые искренне недоумевают по поводу того, что функциональное программирование не очень популярно. К примеру, сейчас я читаю книжку «Из смоляной ямы» (Out of the Tar Pit), в которой авторы после аргументов в пользу функционального программирования говорят:
Читать дальше →
Всего голосов 65: ↑57 и ↓8+49
Комментарии320

На рынке ЦОД. Мировые корпорации Apple и Microsoft расширяют свои владения

Время на прочтение4 мин
Количество просмотров5.4K
Наблюдается постоянный рост объема медиа-контента, который хранится в мировой паутине. Многие факторы сейчас способствуют активному и быстрому наращиванию вычислительных и сетевых ресурсов на серверных фермах во всем мире. Не раз уже писалось о том, что вектор многих корпораций-гигантов, таких как Apple и Microsoft, направлен в сторону строительства гипермасштабных дата-центров. Корпорации не стеснены в суммах на возведение новых ЦОД, их детища представляют собой гипермасштабные постройки мощностью в десятки мегаватт и площадью в десятки тысяч квадратных метров. Собственные мощные центры обработки и хранения данных позволяют уменьшить расходы не только благодаря более низкому коэффициенту PUE, но и благодаря самостоятельным разработкам и мелкосерийному производству серверного оборудования, операторы получают больше возможностей для оптимизации ИT оборудования, вспомогательного оборудования, это все дает возможность улучшить технологические процессы, повысить уровень загрузки серверных систем, автоматизировать инфраструктуру.



Раньше, в одной из статей, шла речь о том, что в феврале прошлого года Apple заявила о своем намерении построить новый мега дата-центр на территории Ирландии. Для этого был выбран живописный участок незастроенной земли на территории графства Голуэй. Проект был одобрен местными властями, но строительство так и не началось из-за жалобы активистов, плюс ко всему этому американская корпорация обвиняется ирландскими оппозиционерами в неуплате государственных налогов. Apple и некоторые другие высокотехнологичные компании «нашли» в Ирландии, так сказать, налоговое убежище
читать далее
Всего голосов 14: ↑13 и ↓1+12
Комментарии0

Асинхронность в JavaScript: Пособие для тех, кто хочет разобраться

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

image


На JavaScript легко писать. Достаточно взять пару библиотек или модный фреймворк, прочитать несложный туториал и все — через пару часов у вас простой работающий интерфейс.


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

Читать дальше →
Всего голосов 38: ↑31 и ↓7+24
Комментарии38

Базовые различия при работе с базами данными MySQL и PostgreSQL Дилетантский обзор

Время на прочтение3 мин
Количество просмотров18K
Продолжая свое знакомство с БД PostgreSQL, с уже имеющимися навыками работы в БД MySQL, обнаружил ряд интересных полезных особенностей которые на практике часто не хватало в MySQL. Цель этого обзора не в создании бесконечного спора, что лучше, а дать легкое сравнение, которое обычно обсуждается программистами на обеденном перерыве в ближайшей кафешке. В сравнении обретаются новые знания и опыт, поэтому оно того стоит.
Читать дальше →
Всего голосов 26: ↑18 и ↓8+10
Комментарии8

15 тривиальных фактов о правильной работе с протоколом HTTP

Время на прочтение7 мин
Количество просмотров232K
Внимание! Реклама! Пост оплачен Капитаном Очевидность!

Ниже под катом вы найдёте 15 пунктов, описывающих правильную организацию ресурсов, доступных по протоколу HTTP — веб-сайтов, «ручек» бэкенда, API и прочая. «Правильный» здесь означает «соответствующий рекомендациям и спецификациям». Большая часть ниженаписанного почти дословно переведена из официальных стандартов, рекомендаций и best practices от IETF и W3C.



Вы не найдёте здесь абсолютно ничего неочевидного. Нет, серьёзно, каждый веб-разработчик теоретически эти 15 пунктов должен освоить где-то в районе junior developer-а и/или второго-третьего курса университета.

Однако на практике оказывается, что великое множество веб-разработчиков эти азы таки не усвоило. Читаешь документацию к иным API и рыдаешь. Уверен, что каждый читатель таки найдёт в этом списке что-то новое для себя.
Читать дальше →
Всего голосов 191: ↑186 и ↓5+181
Комментарии120

RxJS: реактивное расширение для фронтенд разработки

Время на прочтение8 мин
Количество просмотров82K
Про реактивное программирование уже написаны сотни статей. Фронтенд не смог избежать этого тренда, но интерес к теме до сих пор очень и очень высок. Поэтому мы просто не могли не взять интервью у одного из наших будущих докладчиков.

Итак, прошу любить и жаловать, Виктор Русакович. Родом из Минска, работает в компании GP Software.travel.
Виктор последние пять лет занимается (в основном) фронт-енд разработкой. Ну а начинал, как и большинство из нас, с jQuery.

Потом был backbone, angular v1. Последние полгода он работает в проекте на Redux/React.js (часто их путают с RxJS, но это немного другое).


Читать дальше →
Всего голосов 26: ↑22 и ↓4+18
Комментарии50

Принципы работы IQueryable и LINQ-провайдеров данных

Время на прочтение8 мин
Количество просмотров74K
Средства LINQ позволяют .Net-разработчикам единообразно работать как с коллекциями объектов в памяти, так и с объектами, хранящимися в базе данных или ином удаленном источнике. Например, для запроса десяти красных яблок из списка в памяти и из БД средствами Entity Framework мы можем использовать абсолютно идентичный код:

List<Apple> appleList; 
DbSet<Apple> appleDbSet;
var applesFromList = appleList.Where(apple => apple.Color == “red”).Take(10);
var applesFromDb = appleDbSet.Where(apple => apple.Color == “red”).Take(10);

Однако, выполняются эти запросы по-разному. В первом случае при перечислении результата с помощью foreach яблоки будут отфильтрованы с помощью заданного предиката, после чего будут взяты первые 10 из них. Во втором случае синтаксическое дерево с выражением запроса будет передано специальному LINQ-провайдеру, который транслирует его в SQL-запрос к базе данных и выполнит, после чего сформирует для 10 найденных записей объекты С# и вернет их. Обеспечить такое поведение позволяет интерфейс IQueryable<T>, предназначенный для создания LINQ-провайдеров к внешним источникам данных. Ниже мы попробуем разобраться с принципами организации и использования этого интерфейса.
Читать дальше →
Всего голосов 26: ↑26 и ↓0+26
Комментарии3

Ликбез по типизации в языках программирования

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

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

В полной версии находится подробное описание всех видов типизации, приправленное примерами кода, ссылками на популярные языки программирования и показательными картинками.
Читать дальше →
Всего голосов 239: ↑232 и ↓7+225
Комментарии180

Построение таблиц «Один-к-разным»

Время на прочтение4 мин
Количество просмотров17K
Передо мною встала задача — «объединить» несколько типов объектов с разными свойствами в одной таблице для «глобального» поиска. Я перепробовал несколько решений такой задачи. Возможно, вы предложите что-то новое, чего я не смог разглядеть в потенциале SQL.

Рассмотрим задачу более конкретно:
Читать дальше →
Всего голосов 33: ↑30 и ↓3+27
Комментарии66
1

Информация

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