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

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

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

«Ой, ещё ж текст в прилу нужен»: зачем продуктовой команде UX-писатель — на 3 примерах

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

Если в вашей компании интерфейсные тексты пишет первый освободившийся оператор разработчик/дизайнер/менеджер/HR/доставщик пиццы, и получается не очень, то эта статья для вас.

Читать далее
Всего голосов 8: ↑7 и ↓1+10
Комментарии10

Удвойте скорость написания кода на React с помощью этих простых трюков

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

Если вы работаете с React или React Native и чувствуете, что у вас медленная скорость написания кода, вы тратите много времени на поиск ошибок, а не на добавление нового функционала, работаете с большими исходными файлами и вам сложно находить нужные части кода, а также многократно реализуете одну и ту же логику, то эта статья для вас. Вы удвоите скорость написания кода, если отрефакторите код в повторно используемые строительные блоки.

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

Читать далее
Всего голосов 17: ↑10 и ↓7+4
Комментарии15

Как меня чуть не уволили за выбор React для корпоративного приложения

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

Предполагалось, что React облегчит разработку, но он создал препятствия


Летом 2018 года, мой босс, Эдриан, попросил меня присоединиться к его звонку по Skype с Джеймсом, техническим директором крупной канадской компании.

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

Мне нравится его дружелюбное отношение, и я могу сказать, что он готов сотрудничать с нами. У Джеймса уже есть партнёр по развитию в Индии, но ему не хватает опыта в создании веб-приложений. Казалось бы, что может пойти не так?


Приятного чтения!
Всего голосов 44: ↑32 и ↓12+31
Комментарии333

Каскадные SFU: улучшаем масштабируемость и качество медиа в WebRTC-приложениях

Время на прочтение7 мин
Количество просмотров7.1K
В развертывании медиасерверов для WebRTC есть две сложности: масштабирование, т.е. выход за рамки использования одного сервера и оптимизация задержек для всех пользователей конференции. В то время как простой шардинг в духе «отправить всех юзеров конференции X на сервер Y» легко масштабируется горизонтально, он все же далеко не оптимален в плане задержек. Распределять конференцию по серверам, которые не только близко расположены к пользователям, но и взаимосвязаны – звучит как решение для обеих проблем. Сегодня мы подготовили перевод подробного материала от Бориса Грозева из Jitsi: проблемы каскадных SFU, с описанием подхода и некоторых трудностей, а также подробности внедрения. Стоит сказать, что конференции Voximplant тоже используют SFU; сейчас мы работаем над каскадированием SFU, которое должно появиться в нашей платформе в следующем году.


Мышиные нейроны. Изображение NIHD (CC-BY-2.0)
Читать дальше →
Всего голосов 28: ↑28 и ↓0+28
Комментарии0

Как построить полнотекстовый поиск с помощью нейронных сетей

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

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


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

Drag'n'Drop API: пример использования

Время на прочтение7 мин
Количество просмотров8.6K
Доброго времени суток, друзья!

В данном туториале мы рассмотрим встроенный механизм перетаскивания элементов на странице.

Справедливости ради следует отметить, что указанный механизм можно реализовать с помощью событий мыши, как показывает Илья Кантор в своем учебнике, однако мы будем использовать нативные средства, опираясь на спецификацию.

Поддержка технологии:



Превью:



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

Для стилизации будет использоваться Bootstrap.

Если вам это интересно, прошу следовать за мной.
Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии1

Добавляем Refresh Token

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


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

Читать дальше →
Всего голосов 21: ↑19 и ↓2+17
Комментарии26

Пять простых шагов для понимания JSON Web Tokens (JWT)

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

jwt


Представляю вам мой довольно вольный перевод статьи 5 Easy Steps to Understanding JSON Web Tokens (JWT). В этой статье будет рассказано о том, что из себя представляют JSON Web Tokens (JWT) и с чем их едят. То есть какую роль они играют в проверке подлинности пользователя и обеспечении безопасности данных приложения.

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

Я больше не хочу работать, никогда и ни над чем. Но из меня научились выжимать результаты

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


Дерьмовое утро удалёнщика всегда начинается одинаково. Если детский плач не смог вытащить меня из кровати, то нытье жены сделает это с гарантией. Сумасшедшие девять утра, через час дейли-синк-ап, а за вчера, как всегда, сделано нихрена. Быстро варю кофе и за комп. За пять минут до созвона пулл реквест с кодом энтерпрайзного качества увесисто встал в очередь на билд. Иду курить, но по дороге телефон заорал — я зачем-то установил на него скайп, и теперь работа может добраться до меня где угодно. Курение откладывается, я готовлюсь возмущаться, что мне позвонили раньше положенного. Напялил наушники, принял вызов. Вместо привычной девушки менеджера созвон начал какой-то незнакомый мне чел. «Всем привет, Аня заболела, я буду её замещать». Окей, кому какое дело, с таким же успехом они могли бы прислать нам в качестве менеджера собаку — ничего бы не изменилось.
Читать дальше →
Всего голосов 420: ↑345 и ↓75+353
Комментарии780

Возвращение «Эпохи империй»: всё, что известно про Age of Empires IV

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

На прошедшей неделе в ночь с четверга на пятницу на конференции X019 в Лондоне произошло долгожданное событие — компания Microsoft показала геймплей продолжения знаменитой стратегической серии Age of Empires IV. На первый взгляд проект, окруженный «туманом войны» на протяжении вот уже нескольких лет, напоминает выполненный в 3D ремейк Age of Empires II — самой популярной части серии, в которую до сих пор играют миллионы любителей RTS и истории. Предупреждаем: «кидать деньги в монитор» пока ещё рано — игровые издания называют ориентировочной датой релиза 2020 2021 год.

Под катом вас ждет рассказ о том, почему выхода новой Age of Empires пришлось ждать целых 15 лет, максимум известных подробностей про четвертую часть легендарной стратегической серии, а также обзор закрытого показа игры, основанный на показаниях свидетелей и игровой прессы.
Всего голосов 83: ↑80 и ↓3+77
Комментарии21

Разбираемся с асинхронностью в JavaScript [Перевод статьи Sukhjinder Arora]

Время на прочтение8 мин
Количество просмотров35K
Привет, Хабр! Представляю вашему вниманию перевод статьи «Understanding Asynchronous JavaScript» автора Sukhjinder Arora.


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

Переход с AngularJS на Angular: цели, планы и правила переноса элементов (1/3)

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


В январе мы в Skyeng закончили перевод нашей платформы Vimbox с AngularJS на Angular 4. За время подготовки и перехода у нас накопилось много записей, посвященных планированию, решению возникающих проблем и новым конвенциям работы, и мы решили поделиться ими в трех статьях на Хабре. Надеемся, что наши заметки окажутся полезными структурно похожим на наш Vimbox проектам, которые только начали переезжать или собираются сделать это.

Читать дальше →
Всего голосов 29: ↑28 и ↓1+27
Комментарии5

Оптимизируем торгового робота: генетический алгоритм

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


В предыдущей статье я занялся сравнением методов параметрической оптимизации, т.е., подбора параметров, оценивая прибыльность торговли робота в ходе последующего бэктеста. Выяснилось, что банальный метод Монте-Карло — генерация случайных некоррелированных комбинаций параметров робота — работает вполне неплохо. Сейчас же я хочу протестировать популярный, в том числе, в сообществе программирующих трейдеров, алгоритм: генетический алгоритм оптимизации.
Читать дальше →
Всего голосов 13: ↑11 и ↓2+9
Комментарии10

Как работает JS: системы хранения данных

Время на прочтение16 мин
Количество просмотров40K
При проектировании веб-приложения чрезвычайно важно выбрать подходящие средства для локального хранения данных. Речь идёт о механизме, который позволит надёжно хранить информацию, будет способствовать снижению объёма данных, передаваемых между серверной и клиентской частями приложения, и при этом не ухудшит скорость реакции приложения на воздействия пользователя. Хорошо продуманная стратегия локального кэширования данных является центральным звеном в разработке мобильных веб-приложений, которые могут работать без подключения к интернету. Современные пользователи всё чаще и чаще относятся к подобным возможностям как к чему-то привычному и ожидаемому.



Сегодня, в переводе 16 части серии материалов, посвящённых всему, что связано с JavaScript, мы поговорим о механизмах хранения данных на стороне клиента, которые могут использоваться в веб-разработке, и о выборе системы хранения данных для конкретного проекта.
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии2

Правдоподобная реконструкция Инстаграм-подобных фильтров

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

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


https://github.com/homm/color-filters-reconstruction


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


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



Для сравнения, это результат применения того же фильтра из коммерческого набора «Инстаграм-подобных фильтров», который вы без труда сможете нагуглить:


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

How-to: Пишем торговых роботов на TradeScript

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

Тема создания механических торговых систем или попросту биржевых роботов вызывает на Хабре определенный интерес. Мы частенько освещаем теоретические аспекты алгоритмической торговли, но не так часто говорим о ее практической составляющей. Поэтому в сегодняшнем топике будут рассматриваться реальные примеры различных роботов, созданных с помощью скриптового языка TradeScript.
Читать дальше →
Всего голосов 31: ↑20 и ↓11+9
Комментарии9

Шаблоны проектирования в React

Время на прочтение7 мин
Количество просмотров44K
Шаблоны проектирования, которые возникли и развились в экосистеме React за время её существования, улучшают читабельность и чистоту кода, облегчают повторное использование компонентов.

Автор этого материала говорит, что начал работать с React около трёх лет назад. В то время ещё не было устоявшихся практик, изучая которые и следуя которым можно было бы улучшить качество своих разработок.

Сообществу React понадобилось около двух лет для того, чтобы выработать несколько идей, которые теперь стали популярными. Тут можно отметить переход с React.createClass к классам ES6 и к чистым функциональным компонентам, отказ от миксинов и упрощение API. Теперь, учитывая то, что число React-разработчиков постоянно растёт, то, что в развитие этого проекта вкладываются серьёзные силы, можно наблюдать эволюцию нескольких интересных шаблонов проектирования. Этим шаблонам и посвящён данный материал.
Читать дальше →
Всего голосов 21: ↑17 и ↓4+13
Комментарии5

Будущее с Proxy

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

Мы, программисты — мечтатели. Идем на поводу у хайпа, мечтая о новой серебряной пуле, которая решит все наши проблемы. А также, мы любим писать новые велосипеды, тем самым не решая проблемы, а создавая новые. Давайте в этой статье немного помечтаем об архитектуре, разрабатывая «Псевдо-новый» велосипед.
Читать дальше →
Всего голосов 10: ↑8 и ↓2+6
Комментарии4

Телеграм-бот для домашнего видео-наблюдения из подручных материалов

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

Disclaimer


Эта статья содержит некоторое количество программного кода, написанного на языке Python. Ввиду того, что автор статьи по профессии является сисадмином, но не программистом — стиль и качество этого кода, могут вызвать проявление неконтролируемых эмоций у профессионалов. Пожалуйста, немедленно прекратите чтение если вид неаккуратного или неоптимального кода может негативно сказаться на вашем психическом состоянии.


Постановка задачи


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



Из всего перечисленного, было решено построить систему домашнего видео-наблюдения с функционалом оповещения о вторжении. В качестве платформы был выбран телеграм-бот. Бот имеет следующие преимущества перед другими возможными реализациями (веб, мобильное приложение):


  • Не требуется установки дополнительного клиентского ПО
  • Серверная часть может работать с приватным IP адресом через NAT, при этом предъявляются минимальные требования к подключению (вплоть до 3G модема)
  • Большая часть инфраструктуры находится на стороне сервис-провайдера, который за меня решил вопросы авторизации, безопасности итп...

С помощью беглого анализа интернет-публикаций, существующие решения обнаружены не были.

Читать дальше →
Всего голосов 29: ↑27 и ↓2+25
Комментарии52
НЛО прилетело и оставило необычный электронный дневник из будущего. К сожалению, большая часть материалов повредилась – все, что осталось – в нашей текстовой расшифровке.
Подробности – под катом
Всего голосов 52: ↑41 и ↓11+30
Комментарии25

Информация

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