Как стать автором
Обновить
0
0
Дмитрий Швалёв @dshster

Frontend-разработчик

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

Bushed Bricks: простая и увлекательная игра на JavaScript

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

Русский вариант названия игры, звучит как «Беспризорные блоки», что достаточно емко передает ее сюжетную линию. Негоже достойным представителям рода «четырехугольных» околачиваться где ни попадя. Основной задачей игрока будет поиск им пристанища за что и будут начисляться игровые баллы. Приютить наших «сироток» можно по бортам игрового поля, но только при условии соответствия цвета и достаточного уровня благонадежности. Далее обо всем по порядку…
Читать дальше →
Всего голосов 26: ↑21 и ↓5+16
Комментарии32

Ref-атрибуты и DOM в React

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

React. Продвинутые руководства. Часть Третья


Продолжение серии переводов раздела "Продвинутые руководства" (Advanced Guides) официальной документации библиотеки React.js.


Ref-атрибуты и DOM в React


В типовом потоке данных React, свойства (props) — это единственный способ, с помощью которого родители взаимодействуют со своими потомками. Для модификации потомка, вам необходимо заново отобразить (произвести ререндеринг) его с новыми свойствами. Однако, в некоторых случаях, вам понадобится модифицировать потомка непосредственно, вне основного потока. Изменение потомка возможно в случаях если он является экземпляром компонента React или элементом DOM. Для обоих этих случаев React имеет особый способ изменения.

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

Эффективный расчёт области видимости и линии взгляда в играх

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

В стратегических играх обычно требуется знать область видимости NPC, чтобы игрок мог продумывать стратегию и делать следующий ход. Мы рассмотрим математику и реализацию рациональной модели, не просаживающей скорость игры при большом количестве NPC на карте. Если вы хотите увидеть готовое интерактивное демо модели, перейдите сюда и играйте прямо в браузере! Вот скриншот демонстрации:

image

Имея параметры видимости наблюдателя (направление взгляда, расстояние видимости и угол поля зрения), нам нужно найти видимую для него область, т.е. определить область видимости (field of view, FoV). Если препятствия отсутствуют, это будет сектор круга, состоящий из двух граней (радиусов) и соединяющей их дуги (см. Рис. 1). Кроме того, имея заданную точку мира, мы должны быстро определить, видима ли она для наблюдателя, т.е. необходимо обрабатывать запросы линии взгляда (line of sight, LOS) для заданной точки. Обе эти операции можно выполнить достаточно эффективно для использования при рендеринге в реальном времени.
Читать дальше →
Всего голосов 130: ↑126 и ↓4+122
Комментарии27

Биологические предпосылки деградации компаний

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


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

  • на личном уровне подталкивают к прокастинации;
  • в стартапе по мере его успеха и роста приводят к потере прежней творческой «внутренней атмосферы» и нарастанию бюрократии;
  • в больших компаниях приводят к «иерархическому регрессу».

Благодаря этим особенностям мышления человека, среднее время нормальной жизни коммерческих компаний составляет 15 лет, а изначальные «Империи добра», типа Гугл и Яндекс, неумолимо со временем приобретают черты «Империй зла».

Некоторые компании сопротивляются этому, а некоторые даже и не понимают, почему приходит в упадок их внутренняя корпоративная культура. Почему попытки привить хорошие и правильные принципы и практики организации бизнеса не дают ожидаемых результатов…
Читать дальше →
Всего голосов 86: ↑81 и ↓5+76
Комментарии160

NoSQL – коротко о главном

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


Сергей Туленцев (TextMaster)


Меня зовут Сергей Туленцев, я уже несколько лет интересуюсь NoSQL базами данных и сегодня попытаюсь поделиться с вами знаниями и опытом.

Кому будет полезен этот доклад? Это обзорный доклад с претензией на структурированность. Если вы что-то где-то когда-то слышали про NoSQL, то через 40 минут вы будете знать гораздо больше, вы будете легче ориентироваться в терминах и более уверенно выбирать базы данных для своего проекта.

Поговорим также про типичные примеры применения и как не надо применять NoSQL базы данных.
Читать дальше →
Всего голосов 94: ↑92 и ↓2+90
Комментарии39

Изоморфные React-приложения: производительность и масштабирование

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


Денис Измайлов ( DenisIzmaylov )


Всем привет! Вкратце расскажу о себе. Я — Денис Измайлов. Последние 5 лет сосредоточился на JS-разработке, делал много Single Page Application, highload, React, выступал на MoscowJS несколько раз, каммитил webpack и т.д.

Сегодня хотел бы поговорить вот о чем: почему от Single Page Application в его классическом виде стоит отказаться; как изоморфные приложения отразятся на Вашей зарплате; и что вы будете делать на этих выходных?
Читать дальше →
Всего голосов 43: ↑26 и ↓17+9
Комментарии55

Как не ослепнуть, используя гаджеты: приложения для зрения

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


Мы настолько привыкли к гаджетам, что уже не расстаемся с ними ни на работе, ни дома. Согласно докладу ВОЗ 2014 года порядка 300 млн человек в мире страдают от нарушения зрения. В частности, в России снижением зрения страдает каждый второй житель, особенно печальна ситуация у детей. Главной причиной такой тенденции становится неограниченное использование компьютеров и гаджетов. И сейчас никого не удивишь тем, что ты носишь очки или контактные линзы. В самих очках нет ничего плохого, но они — дополнительный и не всегда удобный предмет: от детского обзывания “очкариком” до проблем с походом на сеансы в 3D-кинотеатр. С линзами проблем меньше, но спросите любого, кто ими пользуется и узнаете много о мучениях, связанных с поисками линзы в глазу.

Но помимо традиционных способов коррекции зрения на помощь приходят различные приложения, помогающие взять под контроль вашу “неограниченную” цифровую жизнь и выделить время для глаз. Таких приложений сейчас множество, и мы подготовили для вас подборку из самых полезных.
Читать дальше →
Всего голосов 20: ↑18 и ↓2+16
Комментарии44

Let's Encrypt и nginx: настройка в Debian и Ubuntu

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

image


Если вдруг вся эта история прошла мимо вас, Let's Encrypt — центр сертификации от некоммерческой организации ISRG, существующий при поддержке EFF и многих компаний, взявшей на себя миссию дать людям бесплатные SSL/TLS сертификаты для сайтов и серверов. Сертификаты от Let's Encrypt уже используются на более чем 10 миллионах доменов.


Кроме очевидной бесплатности у сертификатов от Let's Encrypt есть особое, отсутствующее у любых других коммерческих сертификационных центров, достоинство: если вы однажды получили сертификат от Let's Encrypt, то, при прочих равных, это навсегда. Не нужно раз в год-два вручную обновлять сертификаты. Не нужно вообще вспоминать что сертификаты где-то есть. Получил, настроил и забыл!


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


Организации автоматического обновления сертификатов в статье уделено пристальное внимание, с тем чтобы вы могли в полной мере оценить это принципиальное преимущество Let's Encrypt.

Читать дальше →
Всего голосов 48: ↑46 и ↓2+44
Комментарии96

Четкий пацан Zone.js

Время на прочтение4 мин
Количество просмотров20K
Публикуется от имени jbubsk. Мы в Тинькофф Банке сто лет боролись с проблемой контекста текущего запроса на сервер. Это момент — когда приходит тикет о том, «что это за ошибка и почему она здесь?» — очень тонкий, и бьет разработчиков по самому больному. В этой статье расскажем, как нам удалось решить эту проблему.
Читать дальше →
Всего голосов 30: ↑20 и ↓10+10
Комментарии14

У «Казаков» секретов нет

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

Думаю, многие из читателей с добрым словом вспомнят серию игр «Казаки», многочасовые баталии, военные хитрости и бесподобное звуковое сопровождение — отличная стратегия своего времени.

Спустя 15 лет они вернулись, и теперь уже в режиме онлайн, о проблемах и уязвимостях новой версии и пойдет речь в данной статье.
Читать дальше →
Всего голосов 52: ↑49 и ↓3+46
Комментарии14

Сложности, с которыми приходится сталкиваться при создании кружков робототехники

Время на прочтение7 мин
Количество просмотров47K
Статью начинал писать в конце ноября, возможно её придётся немного корректировать, так как есть изменения в законодательстве о пед.деятельности.

Чтобы было понятно о чем и из-за чего пишу: я не патриот в том понимании, как это сейчас принято, ура-патриотизмом переболел пару лет назад. И государство это мне уже не жалко. А вот о стране и её людях беспокоюсь не на шутку.

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

image
Читать дальше →
Всего голосов 90: ↑81 и ↓9+72
Комментарии304

Использование Service Worker для создания ботнета

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


Если кратко: в этом посте мы рассмотрим один из множества способов запуска бесконечного выполнения кода Javascript в браузере с помощью Service Worker, а еще немного покритикуем саму технологию.
Читать дальше →
Всего голосов 42: ↑42 и ↓0+42
Комментарии6

Просто Angular

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

Введение


8-9-го декабря 2016 года была проведена первая конференция по Angular в Бельгии. Игор Минар (ведущий разработчик Angular) выступил в качестве основного докладчика с несколькими интересными объявлениями относительно того, по какому графику будет выпускаться Angular. И представьте себе, в марте 2017 года нас ждет релиз Angular 4. При этом, на данный момент уже опубликована бета-версия.


От переводчиков


Всем привет, с вами Максим Иванов и Дмитрий Сергиенков, и сегодня мы выясним куда делась третья версия, и почему мы по-прежнему можем быть верны Angular. Сейчас начинающему фронтенд-разработчику, изучающему JavaScript, довольно трудно определиться: какой же фреймворк или библиотеку им взять и изучить, оставаясь в тренде? Конечно, без слова React, сейчас не обходится ни один разговор на тему фронтенда, однако, в свое время я начал с первой версии Angular, начитался много руководств по написанию фронтенда на ES6 (с классами и прочим добром) и до сих пор не жалею. Да, вы можете писать корпоративные приложения с использованием только jQuery, но по мере развития и сложности проекта вы начнете закапывать себя в спагетти-коде, смешивая логику и представление, MV*-фреймворки же этого сделать вам не дадут.

Всего голосов 36: ↑35 и ↓1+34
Комментарии43

VPN за 60 секунд

Время на прочтение2 мин
Количество просмотров68K
Если Вы предпочитаете простые и красивые решения, или Вам нравится всё, что попадает под категорию It Just Works, то эта статья для Вас. Для запуска шифрованного подключения достаточно иметь на своем компьютере SSH-клиент, установить sshuttle (об этом чуть позже) и приобрести VPS с любым тарифным планом в интересующей Вас стране. На удалённой VPS-машине в большинстве случаев абсолютно ничего настраивать не нужно (достаточно, чтобы были установлены пакеты python и сервер SSH).


Читать дальше →
Всего голосов 40: ↑37 и ↓3+34
Комментарии37

Платформа для быстрого создания RESTful API

Время на прочтение2 мин
Количество просмотров21K
За последние несколько лет мне пришлось создать много API на PHP. Большая часть из них была RESTful. Первый раз это было интересно — часы обсуждения формата ответа, содержимого ошибок, вариантов авторизации и прочей романтики. Во второй раз не покидало чувство дежавю. На третий раз уже было понятно — надо что-то менять…

Ну и на четвёртый раз, когда передо мной поставили задачу создания API, параллельно разработке основного проекта, я приступил к созданию универсальной платформы для создания API в котором уже будут решены все «главные» вопросы:

  1. Формат ответа (в том числе и ошибок)
  2. Форматирование даты
  3. Ведение документации
  4. Авторизации и аутентификации
  5. Валидация запросов
  6. и многое другое
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии11

Методы защиты от CSRF-атаки

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

Что такое CSRF атака?


Ознакомиться с самой идеей атаки CSRF можно на классических ресурсах:



Выдержка из ответа на SO:

Причина CSRF кроется в том, что браузеры не понимают, как различить, было ли действие явно совершено пользователем (как, скажем, нажатие кнопки на форме или переход по ссылке) или пользователь неумышленно выполнил это действие (например, при посещении bad.com, ресурсом был отправлен запрос на good.com/some_action, в то время как пользователь уже был залогинен на good.com).


Как от нее защититься?


Эффективным и общепринятым на сегодня способом защиты от CSRF-Атаки является токен. Под токеном имеется в виду случайный набор байт, который сервер передает клиенту, а клиент возвращает серверу.


Защита сводится к проверке токена, который сгенерировал сервер, и токена, который прислал пользователь.

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

Почему мы выбрали Vue.js (а не React)

Время на прочтение17 мин
Количество просмотров64K
Недавно команда Qwintry начала активную миграцию на Vue.js во всех наших старых и новых проектах:

  • в legacy системе, работающей на Drupal (qwintry.com)
  • в нашей новой, полностью переписанной ветке qwintry.com (бекэнд на Yii2 / Node.js)
  • в наших B2B-системах (работающих на Yii2) (logistics.qwintry.com)
  • во всех наших мелких внутренних и публичных проектах (в основном использующих PHP и Node.js на бэкенде)

Почему наши программисты остановили выбор на Vue.js, рассказывает руководитель департамента разработки Qwintry LLC. Антон Сидашин ➔
Всего голосов 37: ↑33 и ↓4+29
Комментарии64

Разбор: как и зачем применять PureComponent в React

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

29 Июля вышел React 15.3, и первым пунктом в release-notes значилось добавление поддержки React.PureComponent, который заменяет своего предшественника pure-render-mixin. В этой статье обсудим, почему же этот компонент так важен и где его использовать.
Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии11

Оптимизируем redux хранилище для более производительных изменений

Время на прочтение2 мин
Количество просмотров11K
Этот пост является продолжением поста про оптимизацию производительности списка в React приложении.

Внимание. В данном посте примеры подготовлены специально для Redux приложений. Но сам подход возможно применить и с другими библиотеками. Так же нижеприведенный совет работает в react-redux версии 5. Я не смог достичь желаемого результата в версии 4. Глубоко разбираться в причинах я не стал.

И так, стандартный способ хранить некоторое множество элементов в приложении — это хранить их в массиве:

const state = {
  targets: [{id: 'target1', radius: 10}, {id: 'target2', radius: 2}]
};
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии5

Angular2 + Websocket + RxJS + Rails5

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

Всем привет! Эта статья о том как связать клиентское приложение Angular2 с Rails 5 сервером используя Websocket.
Читать дальше →
Всего голосов 17: ↑14 и ↓3+11
Комментарии6

Информация

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