Pull to refresh
8
0
Send message

STM32 + CMSIS + STM32CubeIDE

Reading time4 min
Views120K
Здесь я расскажу как создать минимальный проект на CMSIS с использованием «родной» IDE для микроконтроллеров STM – STM32CubeIDE.

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


Читать дальше →
Total votes 15: ↑14 and ↓1+21
Comments57

5 HTML-трюков, о которых никто не говорит

Reading time5 min
Views28K

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

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

Читать далее
Total votes 36: ↑21 and ↓15+9
Comments17

Про новинки в .NET 5 и C# 9.0

Reading time21 min
Views86K
Добрый день.

В нашей компании .NET используется с самого его рождения. У нас в продуктиве работают решения, написанные на всех версиях фреймворка: от самой первой и до последней на сегодняшний день .NET Core 3.1.

История .NET, за которой мы пристально следим всё это время, творится на глазах: версия .NET 5, которую планируют релизить в ноябре, только что вышла в виде Release Candidate 2. Нас давно предупреждали, что пятая версия будет эпохальной: с нею закончится .NET-шизофрения, когда существовали две ветки фреймворка: классический и Core. Теперь они сольются в экстазе, и будет один сплошной .NET.

Вышедший RC2 уже можно начинать полноценно использовать – никаких новых изменений перед релизом больше не ожидается, будет только фикс найденных багов. Более того: на RC2 уже работает официальный сайт, посвящённый .NET.

А мы представляем вам обзор новшеств в .NET 5 и C# 9. Вся информация с примерами кода взята из официального блога разработчиков платформы .NET (а также ещё из массы источников) и проверена лично.
Читать дальше →
Total votes 131: ↑131 and ↓0+131
Comments152

Эволюция конфигурации .NET

Reading time14 min
Views16K


Каждый программист представлял — ну или может хочет представить — себя пилотом самолета, когда у тебя есть огромный проект, к нему огромная панель датчиков, метрик и переключателей, с помощью которых можно легко настроить всё как надо. Ну, по крайней мере, не бежать самому поднимать шасси вручную. И метрики, и графики — это всё хорошо, но сегодня хочу рассказать про те самые тумблерочки и кнопочки, которые могут менять параметры поведения самолета, конфигурировать его.
Читать дальше →
Total votes 28: ↑28 and ↓0+28
Comments23

Подкаст Chiptune 3x000001 — Пройдя долиной смертной тени

Reading time1 min
Views1.2K


Пройдя долиной смертной тени, не убоюсь зла, потому что Ты со мной (с)

В подкасте использована:

— музыка из игры Journey to Silius, 1990-й год NES. Композитор: Наоки Кодака.
— сэмплы из фильма «Подозрительные лица» (The Usual Suspects, 1995-й, озвучка Петра Карцева)
— сэмплы из фильма «Разрушитель» (Demolition Man, 1993-й, озвучка Андрея Гаврилова)

Читать дальше →
Total votes 12: ↑8 and ↓4+4
Comments5

System.IO.Pipelines — малоизвестный инструмент для любителей высокой производительности

Reading time14 min
Views28K
Здравствуй, читатель. Прошло уже достаточно много времени с момента выхода .NET Core 2.1. И такие крутые нововведения, как Span и Memory, уже рассмотрены весьма широко, про них можно достаточно много прочитать, посмотреть и услышать. Однако, к сожалению, библиотека под названием System.IO.Pipelines не удостоилась такого же внимания. Почти все, что есть по этой теме — единственный пост, который многие перевели и разместили у себя. Информации должно быть однозначно больше, чтобы интересующиеся могли взглянуть на технологию с разных углов.


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

Как происходит рендеринг экрана сообщений ВКонтакте

Reading time14 min
Views19K
Что делает ВКонтакте, чтобы уменьшить лаги отрисовки? Как отобразить очень большое сообщение и не убить UiThread? Как уменьшить задержки при скролле в RecyclerView?



Мой опыт основан на работе отрисовки экрана сообщений в Android-приложении VK, в котором необходимо показывать огромное количество информации с минимумом тормозов на UI.

Я программирую под Android уже почти десять лет, ранее занимался фрилансом для PHP/Node.js. Сейчас — старший Android-разработчик ВКонтакте.

Под катом — видео и расшифровка моего доклада с конференции Mobius 2019 Moscow.
Total votes 34: ↑33 and ↓1+44
Comments16

Аутентификация в .NET Core gRpc с помощью JWT

Reading time6 min
Views14K
В этой статье я расскажу об особенностях аутентификации API в gRpc сервисах с помощью JWT. Я предполагаю, что вы знакомы с JWT и заголовками HTTP, с их использованием в .NET Core WebAPI, поэтому не буду обсуждать эти детали. Когда я пытался реализовать аутентификацию в gRpc, я столкнулся с тем, что большинство примеров написаны с использованием консольных приложений. Это слишком далеко от реальности, в которой, на мой взгляд, живут разработчики. Например, я не хочу создавать канал каждый раз, когда я хочу вызвать метод сервиса. Еще я не хочу заботиться об отправке токена и пользовательской информации с каждым запросом. Вместо этого я хочу иметь инфраструктурный уровень, который будет заботиться обо всём этом за меня. Если эта тема вам интересна, то под катом будет больше. Все примеры в статье справедливы для .NET Core 3.1.
Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments0

Алгоритмы организации тэгов

Reading time3 min
Views27K
Тэги – неотъемлемая часть всех современных сайтов и косвенный признак принадлежности сайта к пресловутому Вэб-Два-Ноль.

В статье я хочу рассказать об способах и алгоритмах тегирования информации.
Читать дальше →
Total votes 42: ↑39 and ↓3+36
Comments48

Оптимизация графики для веба: самое важное

Reading time54 min
Views96K
Автор электронной книги — Эдди Османи, один из руководителей разработки Google Chrome

tl;dr


Cжатие изображений всегда должно быть автоматизировано


Оптимизацию графики обязательно надо автоматизировать. О ней легко забыть, рекомендации меняются, да и сам контент может легко проскользнуть мимо конвейера сборки. Для автоматизации при сборке используйте imagemin или libvips. Есть и много других.

Большинство CDN (например, Akamai) и сторонних решений вроде Cloudinary, imgix, Fastly Image Optimizer, Instart Logic SmartVision и ImageOptim API предлагают комплексные автоматизированные решения для оптимизации изображений.

На чтение статей и настройку конфигурации вы потратите время, которое дороже оплаты их услуг (у Cloudinary есть бесплатный тариф). Но если всё-таки не хотите отдавать работу на аутсорсинг по соображениям стоимости или из-за дополнительной latency, то выбирайте приведённые выше варианты с открытым исходным кодом. Проекты Imageflow или Thumbor предлагают альтернативу на собственном хостинге.
Читать дальше →
Total votes 61: ↑61 and ↓0+61
Comments31

Проблема с обновлением MikroTik RouterOS на роутерах с 16MB FLASH

Reading time3 min
Views84K


Недавно ребята из MikroTik накосячили (опять?) и мой любимый «hAP lite» перестал обновляться. С версии 6.45.1 на 6.45.2 не обновлялся, писал, что недостаточно места. Косяк заметили и в версии 6.45.3 для архитектуры SMIPS уменьшили размер пакета, выкинув из него «лишнее» (smips — reduced RouterOS main package size (disabled LTE modem, dot1x and SwOS support)). Теперь пакет скачивается, места ему хватает, но… После перезагрузки версия остаётся 6.45.1 а в логе видим сообщение «no enough space for upgrade». Факир был пьян и фокус не удался.
Окей, гугл, mikrotik no enough space for upgrade
Total votes 26: ↑26 and ↓0+26
Comments36

Хаки при работе с большим числом мелких файлов

Reading time7 min
Views43K
Идея статьи родилась спонтанно из дискуссии в комментариях к статье «Кое-что об inode».



Дело в том, что внутренней спецификой работы наших сервисов является хранение огромадного числа мелких файлов. На данный момент у нас порядка сотен терабайт таких данных. И мы натолкнулись на некоторые очевидные и не очень грабельки и успешно по ним прошлись.

Поэтому делюсь нашим опытом, может кому и пригодится.
Читать дальше →
Total votes 104: ↑103 and ↓1+102
Comments66

Программа из одного exe

Reading time4 min
Views42K
Как правило, при написании .NET программ используются не только классы из .NET BCL, но и сторонние библиотеки. Во время выполнения программы все используемые библиотеки должны быть найдены. Для этого зависимые dll кладут в одну папку с exe файлом.

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

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

Программа из одного EXE
Total votes 90: ↑75 and ↓15+60
Comments75

Самодокументируемый код – это (как правило) чушь

Reading time7 min
Views37K
Всем привет!

Предваряя сегодняшнюю переводную публикацию, сразу отметим, что этот текст задуман как follow-up недавнему дискуссионному материалу "Прекратите усердствовать с комментариями в коде". Нас настолько впечатлила развернувшаяся там дискуссия и 189 комментариев по состоянию на 19.07.2019, что мы решили дать здесь слово и другому автору с портала Medium (Кристоферу Лейну), который практически по всем принципиальным вопросам полемизирует с тезисами Брайана Норлендера, автора первой статьи. Отметим, что в оригинале данная статья вышла на месяц позже предыдущей (16 мая и 16 июня), но собрала практически вдвое меньше аплодисментов (706 против 1,5K на момент публикации перевода). Посмотрим, что будет на Хабре…



Снимок взят с сайта rawpixels.com от автора Pexels
Читать дальше →
Total votes 70: ↑45 and ↓25+20
Comments214

Некоторые аспекты оптимизации LINQ-запросов в C#.NET для MS SQL Server

Reading time6 min
Views24K
LINQ вошел в .NET как новый мощный язык манипуляции с данными. LINQ to SQL как часть его позволяет достаточно удобно общаться с СУБД с помощью например Entity Framework. Однако, достаточно часто применяя его, разработчики забывают смотреть на то, какой именно SQL-запрос будет генерировать queryable provider, в вашем случае — Entity Framework.
Читать дальше →
Total votes 50: ↑49 and ↓1+48
Comments379

Поддельная «голубая пилюля»

Reading time3 min
Views42K
Я являюсь большим любителем макетных плат «голубая пилюля». Они очень хороши по соотношению цена/возможности. Собственно, моя любовь к ним заметна из первоапрельской статьи про педальную прошивку для игры на балалайке.



Открыть коробочку с такими платами и быстро взять одну для решения каких-то задач — в порядке вещей. Именно так, недавно я взял очередную плату, прошил уже хорошо отлаженной и проверенной «прошивкой» и… получил неопознанное USB-устройство. Взял другую плату, «прошил» её, там устройство заработало. Тут бы делу и конец, но интересно же, в чём дело. Поэтому, как пришли выходные, я занялся детальным исследованием, почему же она не работает.
Читать дальше →
Total votes 105: ↑104 and ↓1+103
Comments138

Японские интерфейсы в реальном мире

Reading time4 min
Views81K
Привет! Хочу рассказать про то, чем японское видение разных интерфейсов в реале отличается от нашего. Как всегда, эти мелочи могут сказать о культурной среде очень многое.

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



А вот термометр. Они здесь часто круглые, и при этом есть цветовая индикация.



Обратите внимание, в этой гостинице уставка 20 градусов, и это создаёт большую часть времени удобное положение стрелки для перфекциониста.

Читать дальше →
Total votes 202: ↑195 and ↓7+188
Comments379

Советские мечты о будущем

Reading time9 min
Views93K


Помните очаровательного котика, которые чихал в заставке советского мультфильма? Мы помним, и нашли его — вместе с ворохом другой рисованной фантастики. В детстве она пугала и обескураживала, поскольку поднимала серьезные, взрослые темы. Настала пора пересмотреть старые мультфильмы, чтобы узнать, о каком будущем мечтали в той стране.
Total votes 138: ↑136 and ↓2+134
Comments144

[Перевод] Круглее круга: оптические эффекты при проектировании интерфейсов

Reading time9 min
Views41K
Какой «круг»воспринимается как самый «круглый»?

image

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

Как создать визуально пропорциональные иконки, правильно расположить объекты разных форм и выполнить идеальное скругление углов. В посте представлено более 50 изображений.
Читать дальше →
Total votes 86: ↑85 and ↓1+84
Comments44

Аутентификация asp .net core через IdentityServer4

Reading time3 min
Views22K
Тут не будет ничего необычного, один фреймворк «IdentityServer4» будет выполнять аутентификацию по логину и паролю на неком Api, плюс еще обрабатывать refresh_token.

Работать он будет с существующим IdentityDbContext, IdentityUser.

По итогу получится сценарий при котором, для каждой аутентификации будет выдан и сохранен в таблицу «PersistedGrants» один refresh_token. Это один из четырех типов разрешений OAuth 2.0:

Учётные данные владельца ресурса (Resource Owner Password Credentials): используются доверенными приложениями, например приложениями, которые являются частью самого сервиса.

Все работы по обслуживанию токенов берет на себя фреймворк.

Итак начнем.
Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments6
1

Information

Rating
Does not participate
Registered
Activity