Pull to refresh
44
0
Андрей Кулешов @kaatula

User

Send message

Неизвестно полезный CSS

Level of difficultyMedium
Reading time6 min
Views16K

CSS не отстаёт от JavaScript. Постоянно развивается. Классно же. Мне особенно радостно видеть, как старые задачи, которые я решал при помощи костылей, теперь можно сделать при помощи одного свойства.


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


Я собрал фишки, которые могут быть полезны в разного рода проектах. Неважно, верстаете ли вы сайт для малого бизнеса или создаёте супермодное React приложение. Они поддерживаются большинством браузеров, начиная с 2021 года. Отдельно отмечу, что я не считаю IE11 браузером, который поддерживается в современной разработке. По этой причине я не учитывал его.


Больше не буду затягивать. Давайте посмотрим, что я вам подготовил.

Читать дальше →
Total votes 77: ↑76 and ↓1+75
Comments16

В России всего 2000 проектировщиков чипов. Что с этим делать?

Reading time8 min
Views44K

Согласно статье Ивана Покровского «Возможности и проблемы отечественной микроэлектроники», в России всего две тысячи разработчиков микросхем. Для сравнения: в каждой крупной международной электронной компании есть несколько команд, работающих над чипом или над IP, в каждой по паре сотен разработчиков (хотя бывает и меньше ста, и больше тысячи).

Две тысячи человек — это мало для любого сценария развитии России:

1. Как для сценария, в котором санкции будут сняты и российские компании будут безпроблемно работать с TSMC и западными партнерами для разработки маркетируемых на мировом рынке чипов.

2. Так и для сценария, в котором российские разработчики будут строить экосистему проектирования в условиях изоляции, ориентироваться на производство микроконтроллеров и встроенных микросхем на зеленоградском Микроне, а также на сотрудничество в разработке semiconductor IP с китайскими производителями.

В других стран бывшего СССР ситуация еще хуже.

Что же делать? Для ответа на этот вопрос мы привлекли Машу Горчичко — выпускницу МИФИ, которая защитила диссертацию в Университете Вандербильда в Теннесси. Маша работала инженером в Роскосмосе, а сейчас работает в Кремниевой Долине, разработчиком в компании Applied Materials — одного из лидеров в оборудовании для производства микросхем.

Представим Машу, которая будет пояснять и иллюстрировать наши тезисы на видео. От себя прибавлю, что МИФИ — крутой вуз, в нем внутри есть ядерный реактор, а на входе стоит автоматчик:

Читать далее
Total votes 102: ↑81 and ↓21+60
Comments814

Как я построила прогнозную модель call-центра, чтобы их звонки не бесили пользователей

Reading time7 min
Views11K
Ничто так не раздражает, как заставший врасплох телефонный звонок с неизвестного номера. В наш век мессенджеров и общения перепиской зловеще мерцающий на экране смартфона незнакомый номер телефона может стать причиной как минимум небольшого волнения. Вдвойне бесит, когда звонок поступает не только внезапно (вот такие они, эти звонки), но еще и в неудобное для тебя время. Например, когда ты еще толком не успел проснуться или наоборот, уже вовсю заглядываешься на такую манящую после долгого дня постель. Какие-то деловые звонки по выходным, после девяти вечера или ночью — вообще за гранью добра и зла.



Кстати, обо мне. Меня зовут Наташа, я работаю в Skyeng на позиции Data Scientist и вовлечена в разработку различных продуктов компании. Почему я заговорила о внезапных звонках? Общение голосом с клиентам, которые только хотят начать или по какой-то причине резко прервали обучение — часть модели работы в компании. Звонки помогают вовлечь и вернуть людей в процесс изучения языка, либо напрямую узнать, что же пошло не так. Одна из моих последних задач — анализ работы нашего колл-центра. Я помогла им подобрать оптимальное время для выхода на контакт со студентами по всей России и СНГ: потому что звонки в случайное время суток никто не любит, а бесить собственных пользователей — последнее дело.

Настроение людей в ходе таких звонков для нас крайне важно, потому что оно напрямую влияет на конверсию. Так что давайте я расскажу подробнее о том, как Skyeng звонит студентам и какую прогнозную модель я построила для того, чтобы нашим клиентам было хорошо и комфортно, а мы вышли на показатели конверсии в 60-70%.
Читать дальше →
Total votes 28: ↑23 and ↓5+18
Comments22

Длинные имена слишком длинные

Reading time6 min
Views17K

Привет, Хабр! Представляю вашему вниманию перевод статьи "Long Names Are Long" автора Bob Nystrom.


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


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


Использование языка Dart в Google постепенно набирает обороты, и я много занимался подобными code review. Для разработчика языка это очень увлекательный процесс. Я получаю из первых рук представление о том, как люди используют Dart, что действительно полезно для его развития. У меня есть более четкое представление о том, какие ошибки являются общими, и какие функции интенсивно используются. Я чувствую себя как этнограф, ведущий дневник о жизни туземцев.


Но, в любом случае, дело не в этом. Черт бы его побрал, дело даже не в Darts. То, о чем я хожу поговорить, — это то, что я вижу во многих кодах, и что сводит меня с ума: излишне длинные имена.

Читать дальше →
Total votes 42: ↑38 and ↓4+34
Comments18

Сравнение BI систем (Tableau, Power BI, Oracle, Qlik)

Reading time2 min
Views47K
Привет, Хабр!

В прошлом году я проводил небольшой конкурс на выбор BI для нашего проекта. Я руковожу направлением BI и аналитики Питерской клинике «Скандинавия». Никакого BI до этого в нашей клинике не было и одна из моих задач была в его создании. Я попросил представителей 4-х известных вендоров (Tableau, Power BI, Qlik, Oracle) провести для меня презентацию. Ниже я собрал в кучу то, что они они мне рассказали про свои системы и краткое субъективное впечатление от каждой из них. Почему субьективное? Потому что я не поставил все системе себе и не проработал с ними пару лет (хотя с Tableau я до этого работал), чтобы составить более полное представление, а скорее опирался на то, как представили мне все менеджеры. Ну а менеджеры бывают разные, презентации бывают разные. Так что смотрите, что вышло:
Читать дальше →
Total votes 15: ↑12 and ↓3+9
Comments33

Сравнение топ-4 популярных BI платформ. Какую выбрать?

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

Пытаясь оценить различные BI платформы часто сложно понять, где миф, а где правда, поскольку каждый вендор позиционирует свой продукт, как “лучший на рынке”, приводя в качестве аргумента сотни субъективных обзоров, заполонивших Интернет. Если же вы хотите разобраться, какой инструмент подходит именно вашей компании, не пролистывая сотни страниц “честных” мнений, то ниже будет то, что нужно.

Мы рассмотрим наиболее популярные платформы, такие как QlikView, Klipfolio, Tableau и Power BI, и сравним их ключевые параметры: удобство использования, цену, легкость установки, поддержку, работу с различными типами данных и многое другое. Итак, вперед!


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

Дашборд — что это и почему он будет вам полезен или современный способ сделать тайное явным

Reading time12 min
Views261K


Наверное, мало кто из нас задумывался, что практически с рождения пользовался дашбордами. Мы получали некую информацию, анализировали, принимали решение или даже испытывали какие-то эмоции благодаря им. Да-да, градусник, измеряющий температуру, когда вы болели; часы; стрелка спидометра, перевалившая за 200 км/час (ну, это может быть не у всех) — все эти приборы по сути являются дашбордами или их элементом. Но мне бы хотелось рассказать об интерактивных аналитических дашбордах. И, самое главное — показать, что в наше время такие дашборды могут быть полезны каждому человеку, а не только крупным банкам или корпорациям.

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

Вы не используете дашборды и думаете, что вам это не нужно? Мнение может поменяться, а кругозор расширится, так как далее: что такое дашборды, какие цели достигаются с помощью них, ключевые понятия и сферы использования, существующие инструменты, множество ссылок на актуальные ресурсы по теме, а также реальный пример, как из обычных на первый взгляд данных, можно извлечь интересные знания…
Читать дальше →
Total votes 39: ↑36 and ↓3+33
Comments24

Оно само упало, или следствие ведут колобки

Reading time9 min
Views18K

Вот задеплоили мы своё приложение, и, как правильные и опытные разработчики, не забыли вставить в него крэш-репортер. Получаем первые репорты, открываем стек, смотрим на окружение, пробуем воспроизвести, обламываемся и задаём в пространство вопрос «чем ты это сказал? а как так получилось-то?» Что же там пользователь сделал такого, что приложение завалилось?
Читать дальше →
Total votes 52: ↑48 and ↓4+44
Comments13

Drone CI в облаке AWS для DevExtreme

Reading time5 min
Views5K

В этой статье я расскажу о том, как настраивал непрерывную интеграцию в Amazon AWS для репозитория DevExtreme.


Супер-коллаж от нашего дизайнера Димы


Уже несколько месяцев мы ведём разработку DevExtreme в открытом репозитории на GitHub. Непрерывная интеграция у нас с самого начала была построена на базе Docker, чтобы не зависеть от CI-платформы (будь то Travis, Shippable или что-то другое), но с момента публикации репозитория мы не выделялись и использовали для прогона тестов хорошо знакомый Travis CI. На GitHub у нас "бегает" только небольшая часть автоматических тестов, так сказать, первая линия, и возможностей Travis для техники Fork and Pull Request хватало.


Со временем коллеги начали сетовать на очередь из пулл-реквестов (но терпели). Мысль о том, что пора уже что-то предпринять, возникла в конце октября, когда на два дня Travis потерял связь с Docker Hub, а мы как раз готовились к beta-релизу DevExtreme 17.2.


Получив добро на эксперименты в корпоративном AWS-аккаунте, я решил дать второй шанс проекту Drone. Почему второй? Потому что мы его уже пробовали в процессе "обкатки выхода на GitHub". Тогда наш репозиторий был приватным, Drone был ещё более сырым, чем сегодня, и запускали мы его на временной наколеночной инфраструктуре, точнее на старых рабочих станциях, оставшихся после апгрейда рабочих мест (наш IT-отдел обещал их вот-вот забрать, но не торопился).

Читать дальше →
Total votes 29: ↑28 and ↓1+27
Comments11

DevExtreme: теперь на GitHub и с бесплатной лицензией

Reading time3 min
Views20K

У нас сразу две отличные новости. DevExtreme, наш набор компонентов для фронтенд-разработки, переехал на GitHub и стал доступен бесплатно для некоммерческого использования!


DevExpress 😍 GitHub


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


Вести разработку на GitHub — одно удовольствие. Механизм pull-реквестов с удобным code review — то, чего нам не хватало, пока мы жили во внутреннем Mercurial-репозитории. Теперь каждое изменение видят несколько пар глаз, что обеспечивает больший уровень прозрачности и позволяет процессам разработки плавно интегрироваться в методологии, принятые в команде (© SeOd).


В первые дни репозиторий выглядит пустовато, так как при импорте кода мы схлопнули историю коммитов. Но это продлится недолго! В дополнение к традиционным релизам, которые никуда не денутся, мы будем также оформлять Releases на GitHub и там же выпускать промежуточные pre-release и hotfix версии. Подписавшись на DevExpress/DevExtreme, например, с помощью сервиса Sibbell вы всегда будете в курсе наших последних новостей.

Читать дальше →
Total votes 48: ↑43 and ↓5+38
Comments9

React, Web Components, Angular и jQuery — друзья навеки. Универсальные JavaScript-компоненты

Reading time7 min
Views24K

image
Эта статья о том, как написать универсальный JavaScript-компонент, который можно будет использовать


  • как React-компонент;
  • как Preact-компонент;
  • как Angular-компонент;
  • как Web Component;
  • как jQuery функцию для рендеринга в DOMElement;
  • как нативную функцию для рендеринга в DOMElement.

Зачем и кому это нужно


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

Total votes 57: ↑54 and ↓3+51
Comments53

Смарт лампы MiLight, или как найти приключений на свою gluteus maximus

Reading time5 min
Views23K
image
На дворе стояла весна. В облаках пели птички, а на грешной земле им вторили коты и запойный сосед Дядя Миша. Заканчивался второй месяц безудержного ремонта в новой квартире. Остались позади мучительный выбор обоев и ускоренные курсы таджикского языка по методике «Конечно, мы знаем, как сделать Ethernet-розетку!» Всё закончилось. Все ушли с тем же количеством пальцев, с которым пришли два месяца назад.

Я никогда не видел особой пользы от «умного дома» в тех реализациях, про которые обычно пишут на Хабре рукастые парни. Ну да, можно хлопнуть в ладоши, и веб-камера под потолком автоматически выложит ваше сэлфи в хипстограм. А что если вы однажды приведёте домой девушку, которая почему-то любит хлопать в ладоши в самый ответственный момент? Вот то-то и оно. Именно поэтому я и не стал закладывать в электропроводку никаких дополнительных проводов с заделом на будущий «умный дом». Вокруг и так полно умников, так хоть дома от них отдохну.
Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments28

React.js: собираем с нуля изоморфное / универсальное приложение. Часть 1: собираем стек

Reading time22 min
Views195K
image

Лицо моей жены, когда она вычитывала эту статью


Я решил написать цикл статей, который и сам был бы счастлив найти где-то полгода назад. Он будет интересен в первую очередь тем, кто хотел бы начать разрабатывать классные приложения на React.js, но не знает, как подступиться к зоопарку разных технологий и инструментов, которые необходимо знать для полноценной front-end разработки в наши дни.


Я хочу с нуля реализовать, пожалуй, наиболее востребованный сценарий: у нас есть серверная часть, которая предоставляет REST API. Часть его методов требует, чтобы пользователь веб-приложения был авторизован.

Читать дальше →
Total votes 51: ↑46 and ↓5+41
Comments78

Однажды программисты погубят этот мир

Reading time8 min
Views70K


1. История первая: воспоминание


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

А ведь самое логичное объяснение — он сам упал. Просто он рос, выбрасывал новые побеги, развивал и наращивал массу. Тянулся к солнцу. Однажды проекция центра тяжести цветка вышла за пределы опоры и он опрокинулся.

Не знаю, зачем я это все пишу. Возможно меланхолия пришла вместе с осенью и желтыми листьями. Иногда мне кажется, что наука программирования так стремительно развивается, так идет вперед семимильными шагами, так быстро создает новые технологии, что однажды человек не сможет все это обуздать.
Читать дальше →
Total votes 134: ↑121 and ↓13+108
Comments199

Все врут, а ты не ври, или Развенчание мифа о запоминании

Reading time5 min
Views92K
Сколько человек запоминает после пройденного им обучения? Обучаемый в среднем запоминает 10% прочитанного, 20% услышанного, 30% увиденного … 90% того, что сделал сам. Многие сталкивались c этими цифрами. Они приводятся отдельно или часто совмещаются с так называемой пирамидой обучения или конусом опыта. И все было бы хорошо и замечательно, если бы этими цифрами не был заполнен весь интернет, а сами они не являлись обманом и мистификацией.


Читать дальше →
Total votes 47: ↑36 and ↓11+25
Comments51

Пора рассказать, как я 4 года был Билайном на Хабре — и что за это время узнал про Хабр

Reading time16 min
Views62K
Вчера был очередной семинар Хабра о том, как надо делать корпоративные блоги, и я там не выдержал и рассказал эту историю.



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

Но начну с самого начала. Итак, Хабр тогда был торт — большой и зверски агрессивный, хабов не было, а корпоративные блоги были чем-то вроде раздела «тупиковый отстой». За любую ссылку или рекламу тогда почти банили. Или забивали до -50 за час, например. С корпоративным рылом в такой калашный ряд было никак нельзя.

И ещё – Билайн, как и любой сотовый оператор, имел тысячи людей, не очень довольных его существованием. Поэтому первый пункт стратегии был довольно необычным, и мало кто мог позволить себе его повторить. Всё просто: пишут исключительно технари, а маркетинг на пушечный выстрел не подходит к постам.

Технари, кстати, оказались совершенно офигенные. Только плевать они хотели на Хабр, по большому счёту. Как и везде.
Читать дальше →
Total votes 228: ↑217 and ↓11+206
Comments108

Ворочаем большими объёмами документации

Reading time5 min
Views12K


  • А как вы поддерживаете справку по API в актуальном состоянии?
  • Как можно организовать и хранить локализованные версии?
  • Вы проверяете текст на наличие недопустимых символов и на валидность разметки?
  • Как организовать проверку (вычитку) топиков?


Эти и другие вопросы я часто слышу от технических писателей на конференциях. Для небольших объёмов документации достаточно вручную пересмотреть документы и обновить/подставить/поправить всё, что нужно. А если объёмы документации выросли?

Наша документация выросла до более чем 154 000 документов только по .NET-линейке продуктов, из них около 140 000 документов — это справка по API. Около 8-10 тысяч топиков добавляются каждый мажорный релиз (т.е. дважды в год). В этой статье я расскажу как мы справляемся с такими объёмами.

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

Секрет успеха прост
Total votes 41: ↑41 and ↓0+41
Comments18

Иммутабельность в JavaScript

Reading time10 min
Views164K

habracut


Что такое иммутабельность


Неизменяемым (англ. immutable) называется объект, состояние которого не может быть изменено после создания. Результатом любой модификации такого объекта всегда будет новый объект, при этом старый объект не изменится.

Читать дальше →
Total votes 54: ↑53 and ↓1+52
Comments57

Как решить семейные разногласия с помощью 4 контроллеров и 2 умных часов за 1 месяц

Reading time12 min
Views54K
image

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

Немного о розетках


Моя жена очень любит выключать всё из розеток. Уходя, она всё выдергивает, а я потом возвращаюсь домой и вставляю обратно. Мне это не нравится. Я пробовал разное: просил, уговаривал, убеждал, угрожал — ничто не помогло. И тогда я решил, что надо найти высокотехнологичный способ уладить конфликт: каким-то образом коммутировать розетки, чтобы не нужно было физически вытаскивать штекеры по всей квартире.
Читать дальше →
Total votes 46: ↑42 and ↓4+38
Comments119

Волшебный интерфейс

Reading time11 min
Views33K
Powered Interface

Как-то на днях у меня возникла необходимость распечатать более десяти чеков из моей истории платежей, используя банкомат одного из крупнейших банков. Я перешёл в платежи, выбрал “История”, прокрутив скроллер списка до нужного платежа, выбрал его, а затем нажал кнопку “Операции” и выбрал печать. И так повторялось для каждого чека: каждый раз происходил переход в главное меню и всё начиналось заново. Я задумался — неужели, несмотря на обилие источников информации по UX, до сих пор тратятся огромные бюджеты на подобные неудобные интерфейсы? Почему разработчики не хотят делать интерфейс, позволяющий пользователю почувствовать себя волшебником, а делают пользователей беспомощными в достижении своих целей? Возможно, причина в том, что, несмотря на обилие теории, эти источники предоставляют мало примеров из реальных проектов.

Так как мы буквально на прошлой неделе завершили большой Web-проект, в котором как раз стояла цель разработки удобного интерфейса, я решил осветить в статье, на какие основные моменты при проектировании интерфейса стоит обратить внимание, и привёл примеры нашего решения.
Читать дальше →
Total votes 35: ↑33 and ↓2+31
Comments27

Information

Rating
Does not participate
Location
Тула, Тульская обл., Россия
Date of birth
Registered
Activity