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

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

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

Разработка Rich Text Editor: проблемы и решения

Время на прочтение21 мин
Количество просмотров38K
Текстовые редакторы, как тип программного обеспечения, появились чуть позже чем динозавры, и вероятнее всего это был вообще первый софт, с которым вы столкнулись в своей жизни, возможно кто-то даже застал MS-DOS Editor.

Однако с переходом большой части ПО в браузеры актуальны и соответствующие визуальные редакторы Rich Text Editors, и проблемных мест в их разработке масса. Если вы по какой-то причине решили сделать свой собственный редактор, то подумайте еще раз — есть мнение, что делать этого не нужно.



Чтобы вы могли принять более взвешенное решение, Егор Яковишен обобщил весь свой опыт, полученный в процессе создания Setka Editor, и рассказал про проблемы, с которыми придется столкнуться, и что можно предпринять для их решения.

Disclaimer: статья написана на основании доклада Егора на конференции Frontend Conf 2017 в июне 2017 года. Ситуация с поддержкой браузерами определенных API с тех пор уже могла измениться.


Всего голосов 53: ↑52 и ↓1+51
Комментарии25

Еще раз про интеграционное тестирование ASP.NET Core c testserver и testcontainers

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров12K

Хабр, привет!


Сегодня я предлагаю совершить небольшое исследование на тему "как нам обустроить интеграционное тестирование и встроить его в сиайку".
Написать эту заметку меня сподвигла дискуссия, случившаяся недавно на работе. Инициативная группа "четырехглазых в свитерах" пыталась родить меры по улучшению качества нашего изделия и снижения трудозатрат QA-инженеров на проведение рутинного регрессионного тестирования. Как это часто бывает, разработчики если и писали тесты, то только модульные, оставляя интеграционные и end-to-end для тестировщиков. Для выполнения интеграционного тестирования QA-инженеры используют "тестовый стенд", на котором развернуты компоненты приложения (еще около 40, с позволения сказать, "микросервисов"), сервер базы данных (с не всегда ясным наполнением этой самой базы), брокер сообщений (RabbitMQ) и все остальное, что может потребоваться для запуска приложения. На этот тестовый стенд натравливаются автотесты, которые шатают приложение за все доступные снаружи конечные точки, таблицы БД и элементы UI пытаясь проверить максимальное количество тестовых сценариев в границах (и за ними!) возможных входных данных.

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

Влияние дофамина на организм: как работает и как этим управлять

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

Ура! Готов магнум опус про дофамин, по мотивам подкаста Лаборатории Губермана! Это было сложно, долго и дорого, но оно того точно стоило!

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

Она является конспектом и осмыслением 39 выпуска подкаста “Лаборатория Губермана” (Controlling Your Dopamine For Motivation, Focus & Satisfaction | Huberman Lab Podcast #39), который ведет Эндрю Губерман, профессор нейробиологии Стэнфордского Университета. 

Подстрочный перевод выпуска (35 страниц).

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

Читать далее
Всего голосов 71: ↑66 и ↓5+73
Комментарии28

Agile: используем человеческую мотивацию

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

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

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

Поднимаем VPN-туннель из мира домой в обход NAT

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

Хочу рассказать вам про то как имея в интернете свой VPS-сервер можно поднять туннель в домашнюю сеть. И не платить при этом за статический IP провайдеру, и даже находясь за NAT, все равно сделать доступными в интернете свои домашние сервисы.
Читать дальше →
Всего голосов 44: ↑31 и ↓13+18
Комментарии27

Настраиваем домашний почтовый сервер и уходим с «бесплатной» почты

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

С каждым годом рекламы в интернете становится все больше, а подают ее с каждым разом все навязчивее. Дошло уже до почты: реклама в интерфейсе почтового ящика выглядит как первое непрочитанное письмо, которое машинально хочется открыть. Я не против рекламы, особенно когда она в тему и не сбивает с толку. Но маскировать её под непрочитанное письмо ‒ это перебор. Чувствуется, что следующим шагом рекламу начнут вставлять прямо в тело письма.

Читать далее
Всего голосов 87: ↑79 и ↓8+92
Комментарии338

Простейший измеритель CO2 за 2000 рублей и полчаса

Время на прочтение2 мин
Количество просмотров53K
Измеритель уровня углекислого газа (CO2) наверное самый недооценённый прибор, который на мой взгляд должен быть в каждой квартире, ведь он показывает, насколько воздух пригоден для дыхания и с помощью него всегда видно, когда пора проветривать.

Такой измеритель в квартирах большая редкость прежде всего из-за высокой цены. Свой первый измеритель AZ Instruments 7798 CO2 datalogger я покупал за $139 и это была самая дешёвая модель на рынке.

Сейчас готовый измеритель CO2 стоит около 4000 рублей, а самодельный обойдётся вдвое дешевле.

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

Экзамены TOEFL/IELTS как ориентир для развития. Фундаментальные апгрейды языка и их польза для разработчика

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


Экзамены английского языка вызывают у большинства разработчиков негативную реакцию. В сети или в курилке часто можно услышать утверждения о том, что TOEFL/IELTS проверяют не уровень владения языком, а умение соответствовать шаблонам. Разработчики цепляются за свой B1 или даже B2/C1, который им дали на внутреннем ассессменте в компании или при прохождении 10-минутного онлайн-теста. Далее, у нас есть 2 пути. Вы можете принять ваш уровень и не развиваться, думая что вам «не нужно», «не моё» и так далее. Можете найти 100 причин отрицать международные общепринятые тесты и даже обойти их при миграции. А можете согласиться с тем, что ваш уровень не достаточно хорош при объективной оценке по критериям, и подумать над развитием и пользе для карьеры разработчика. Статья будет именно про второй путь, а конкретно:

  1. Развитие скорости чтения и использование правого полушария мозга вместо левого
  2. Накрутка навыка письма через независимые эссе внутри Grammarly
  3. Турбонакрутка разговорной речи через комментирование своих действий в играх (RPG/RTS)
  4. Ускорение с помощью слепой печати
  5. Контроль промежуточных результатов через TOEFL GO
Читать дальше →
Всего голосов 13: ↑12 и ↓1+15
Комментарии50

SEO многоязычного сайта без географической привязки под Google

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

Введение


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

Мой опыт основывается на продвижении сайта для экспатов и путешественников со всего мира, контентные страницы которого формируются из базы данных. Сайт с миллионами страниц генерированного из базы данных контента.
Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии16

О чем молчит EXPLAIN, и как его разговорить

Время на прочтение4 мин
Количество просмотров23K
Классический вопрос, с которым разработчик приходит к своему DBA или владелец бизнеса — к консультанту по PostgreSQL, почти всегда звучит одинаково: «Почему запросы выполняются на базе так долго?»

Традиционный набор причин:

  • неэффективный алгоритм
    когда вы решили сделать JOIN нескольких CTE по паре десятков тысяч записей
  • неактуальная статистика
    если фактическое распределение данных в таблице уже сильно отличается от собранной ANALYZE'ом в последний раз
  • «затык» по ресурсам
    и уже не хватает выделенных вычислительных мощностей CPU, постоянно прокачиваются гигабайты памяти или диск не успевает за всеми «хотелками» БД
  • блокировки от конкурирующих процессов

И если блокировки достаточно сложны в поимке и анализе, то для всего остального нам достаточно плана запроса, который можно получить с помощью оператора EXPLAIN (лучше, конечно, сразу EXPLAIN (ANALYZE, BUFFERS) ...) или модуля auto_explain.

Но, как сказано в той же документации,
«Понимание плана — это искусство, и чтобы овладеть им, нужен определённый опыт, …»
Но можно обойтись и без него, если воспользоваться подходящим инструментом!
Читать дальше →
Всего голосов 38: ↑38 и ↓0+38
Комментарии77

Ультимативное сравнение embedded платформ для AI

Время на прочтение22 мин
Количество просмотров26K
Нейронные сеточки захватывают мир. Они считают посетителей, контролируют качество, ведут статистику и оценивают безопасность. Куча стартапов, использование в промышленности.
Замечательные фреймворки. Что PyTorch, что второй TensorFlow. Всё становиться удобнее и удобнее, проще и проще…
Но есть одна тёмная сторона. Про неё стараются молчать. Там нет ничего радостного, только тьма и отчаяние. Каждый раз когда видишь позитивную статью — грустно вздыхаешь, так как понимаешь что просто человек что-то не понял. Или скрыл.
Давайте поговорим про продакшн на embedded-устройствах.

Всего голосов 43: ↑43 и ↓0+43
Комментарии57

Превращаем робот-пылесос в универсального солдата

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

Все началось с увлечения глубоким обучением, нейронными сетями и далее по списку. Я посмотрел пару курсов, поучаствовал в соревновании на Kaggle… "чем бы еще заняться?". Тут мимо как раз по своим делам проползал робот-пылесос (Xiaomi Vacuum Cleaner V1) и подкинул интересную идею…


Всего голосов 29: ↑26 и ↓3+23
Комментарии11

Как быстро делать прототипы устройств и почему это важно. Доклад Яндекс.Такси

Время на прочтение16 мин
Количество просмотров29K
Любой технически сложный hardware-проект — всегда уравнение с множеством неизвестных: платформа, компоненты, технологии, производство, функциональность, реализуемость. «Пощупать», что получается, можно, когда пройдены дорогостоящие этапы: R&D, выбор комплектующих, разработка программ и поиск фабрики для производства.



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

Читать дальше →
Всего голосов 91: ↑88 и ↓3+85
Комментарии149

Как я осилил английский

Время на прочтение13 мин
Количество просмотров349K
Всем привет. Я – айтишник «за 30», и я люблю английский язык. Так получилось, что на протяжении многих лет английский никак не хотел полюбить меня. Перед вами живой пример человека с «плохой памятью», «неспособностью к языкам», богатейшим опытом неудачного изучения английского как на курсах, так и самостоятельно, упущенными из-за незнания языка шансами и возникшими на этой почве комплексами. Все, что можно было сделать в изучении иностранного языка плохо, я попытался сделать еще хуже. Не смотря на все это, перед вами история с хэппи эндом, которая, верю, поможет кому-то избежать глупых ошибок, сэкономить время, избавится от иллюзий и предрассудков по поводу изучения нового языка с около нулевого уровня.
Читать дальше →
Всего голосов 155: ↑151 и ↓4+147
Комментарии256

Оптимизация портфеля облигаций с применением библиотеки ALGLIB

Время на прочтение12 мин
Количество просмотров6.9K
В статье пойдет речь об опыте разработки программы для составления эффективного портфеля облигаций с точки зрения минимизации его дюрации. Возможно, я не буду оригинален и для всех, кто инвестирует в облигации вопросы определения оптимальных весов давно решены, но все же, надеюсь, описанный подход и приведенный программный код будут кому-то полезны.

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

Исходные коды программы и пример портфеля для оптимизации выложены на GitHub.

UPDATE: Как и обещал, сделал простой веб-сервис, делающий возможности программы доступными всем без копирования и компиляции кода.
ссылка
Инструкция по использованию там же.
Если что-то не будет работать или нужно что-то подправить — пишите в комментарии.

Итак, имеем задачу сформировать эффективный портфель облигаций.
Читать дальше →
Всего голосов 19: ↑18 и ↓1+17
Комментарии17

Где покупать радиодетали и компоненты? Часть I: Россия

Время на прочтение4 мин
Количество просмотров171K
Давайте поговорим о покупке электронных компонентов в интернете. Я собрал список интересных отечественных и зарубежных магазинов:

а) которые заточены под любителей DIY и делают свои собственные крутые продукты: конструкторы, модули, обучающие курсы и т.д.;

б) для профи, с широкой номенклатурой электронных компонентов.

Продолжение: Часть II: зарубежные магазины

Кадр из к/ф «Иван Васильевич меняет профессию»
Продолжение
Всего голосов 130: ↑120 и ↓10+110
Комментарии158

NestJS - тот самый, настоящий бэкенд на nodejs

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

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

Поэтому, NestJS- это не только фреимворк для бэкенда, но и возможность войти в мир передовых концепции, например таких как DDD, Event sourcing и микросервисной архитектуре. Все упаковано в простой и легкой форме, так что выбор за вами - решаете ли вы использовать всю платформу или просто использовать ее компоненты.
Читать дальше →
Всего голосов 23: ↑22 и ↓1+21
Комментарии25

Получаем данные enum в проекции Automapper

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

Немного ликбеза


Я очень люблю Automapper, особенно его QueryableExtensions и метод ProjectTo<>. Если вкратце, то данный метод позволяет делать проекцию типов прямо в SQL-запросе. Это позволяло получать dto фактически из базы данных. Т.е. не нужно получать все entity из базы, грузить их в память, применять Automapper.Map<>, что приводило к большому расходу и трафику памяти.

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

Рассылай и властвуй: вёрстка рассылки тогда и сейчас

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

Их читают миллионы людей по всему миру. Их добавляют в спам, удаляют навсегда, но без них немыслим современный интернет. Многие фронтендеры пойдут на всё, что угодно, лишь бы отвертеться от работы над ними. Мой рассказ — об электронных письмах, о том, как они изменились за 20 лет и о том, как современному фронтендеру не впасть в депрессию, верстая их. Это первая статья из цикла, в которой я расскажу о том, как всё начиналось. Через пару недель поговорим о инструментах разработки и тестирования рассылки.
Утри слёзы, верстальщик
Всего голосов 38: ↑37 и ↓1+36
Комментарии9

Сравниваем TCO покупки «железа» и аренды облака

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


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

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

Цель этой статьи — разобраться в методике TCO для разных вариантов получения права пользования ИТ-инфраструктурой и провести соответствующие расчеты, дабы выявить наиболее экономически эффективную альтернативу.
Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии56
1
23 ...

Информация

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