Pull to refresh
@Matisumiread⁠-⁠only

User

Send message

Собственный голосовой помощник off-line

Reading time12 min
Views13K

Microphone вектор создан(а) storyset - ru.freepik.com

Никогда не был любителем голосового интерфейса, но пробовал дома и Amazon Echo, и Алису. Все-таки очень долго это и недостаточно надежно - произносить фразу и думать потом - правильно ли меня поняли и всё ли сделано, как я хотел.
Но после прочтения статьи и, главное, обсуждений после нее я пришел к выводу, что есть варианты, когда это правда удобно. Собственно, самым ярким мне показался пример с кухонным таймером - не хочется грязными руками что-то трогать - голосовой интерфейс тут идеален. А попробовав приложение и почитав код коллеги @janvarev я понял, что современные средства распознавания уже вышли на очень приличный уровень и легко подключаются в проекты с открытым кодом. Дальше стало интересно сделать что-то более удобное и более стабильно работающее (без обид, но проект "Ирина" у меня не весь заработал при вменяемых затратах времени и настроек там меньше, чем мне хотелось бы).

Читать далее
Total votes 14: ↑14 and ↓0+14
Comments8

Управляем командой и продуктом: 7 SCRUM-инструментов для команд и компаний

Reading time6 min
Views6.6K

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

Как бы там ни было, многим компаниям эта методология успешно помогает. Не так давно мне понадобилось найти SCRUM-инструменты для работы: по итогам масштабного поиска я выбрал несколько, которые заслуживают особого внимания. Лучшие из них я решил описать и разместить в этой подборке. Возможно, кому-то она пригодится. 

Читать далее
Total votes 12: ↑11 and ↓1+10
Comments1

Блокировки MySQL: виды, проблемы и способы обнаружения

Reading time27 min
Views44K

Рано или поздно любой разработчик или администратор СУБД, имеющий дело с MySQL, сталкивается с проблемой блокировок. Всё дело в природе MySQL как системы с конкурентным доступом на чтение/запись. Я расскажу о видах блокировок в MySQL, их преимуществах и недостатках, о проблемах, которые они вызывают, а также дам полезные советы по обнаружению и способам борьбы с блокировками.

Читать далее
Total votes 18: ↑17 and ↓1+16
Comments2

8 способов вызвать утечки памяти в .NET

Reading time9 min
Views21K

Опытные .NET-разработчики знают, что даже несмотря на наличие в .NET сборщика мусора (Garbage Collector), утечки памяти все равно возникают с завидной регулярностью. Утечки возможны не из-за ошибок в сборщике мусора, а потому что даже в управляемом коде есть множество способов их появления.

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

Читать далее
Total votes 28: ↑25 and ↓3+22
Comments44

Worker Services в .NET

Reading time5 min
Views8.7K

Написание воркер-сервисов на .NET часто сопряжено с написанием большого количества повторяющегося boilerplate-кода. Однажды мне это надоело и я попытался успростить этот процесс, перенеся часть бойлерплейта в отдельную библиотеку, которой и посвящена эта статья.

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments24

GitHub Flow

Reading time4 min
Views101K

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


Создайте ветвь



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

Читать дальше →
Total votes 48: ↑32 and ↓16+16
Comments23

Консольное приложение, которое рисует сердечко на C#

Reading time3 min
Views27K

Данный код не является оптимизированным или идеализированным, он очень простой и будет понятен новичкам(кем я и являюсь), потому надеюсь на понимание). Ну и еще это приложение было создано скорей смеха ради.

Читать далее
Total votes 19: ↑17 and ↓2+15
Comments8

Использование Identity Server 4 в Net Core 3.0

Reading time26 min
Views79K

Введение


На одном из моих поддерживаемых проектов недавно встала задача проанализировать возможность миграции с .NET фреймворка 4.5 на .Net Core по случаю необходимости рефакторинга и разгребания большого количества накопившегося технического долга. Выбор пал на целевую платформу .NET Core 3.0, так как, судя по утверждению разработчиков от Microsoft, с появлением релиза версии 3.0, необходимые шаги при миграции legacy кода уменьшатся в несколько раз. Особенно нас в нем привлекли планы выхода EntityFramework 6.3 для .Net Core т.е. большую часть кода, основанную на EF 6.2, можно будет оставить «как есть» в мигрированном проекте на net core.


С уровнем данных, вроде, стало понятно, однако, еще одной большой частью по переносу кода остался уровень безопасности, который, к сожалению, после беглых выводов аудита придется почти полностью выкинуть и переписать с нуля. Благо, на проекте уже использовалась часть ASP NET Identity, в виде хранения пользователей и других приделанных сбоку «велосипедов».


Тут возникает логичный вопрос: если в security часть придется вносить много изменений, почему бы сразу же не внедрить подходы, рекомендуемые в виде промышленных стандартов, а именно: подвести приложение под использование Open Id connect и OAuth посредством фреймворка IdentityServer4.

Читать дальше →
Total votes 21: ↑20 and ↓1+19
Comments5

Хостим WASM-приложения на github pages в два клика

Reading time4 min
Views9K

Приветствую. Хочу донести гениальную и простейшую идею о том, как можно бесплатно хостить несложные бессерверные веб-приложения на Blazor WASM на github pages.

Это особенно полезная инструкция для тех, кто хотел бы сделать элементарнейшие утилиты, но не хочет/не может для этого поднимать сервер или использовать js для всех вычислений.

Прошу под кат!

Читать далее
Total votes 13: ↑12 and ↓1+11
Comments8

Введение в непрерывную поставку (CD) при помощи GitLab

Reading time19 min
Views44K

Введение в непрерывную поставку (CD) при помощи GitLab


Введение в непрерывную поставку (CD) при помощи GitLab


Данный туториал позволит вам быстро прочувствовать как происходит командная работа с использованием GitLab. В целом, начать практиковать DevOps/CD с GitLab проще чем с использованием других продуктов потому что GitLab — это решение "всё в одном".


В процессе этого туториала мы


  • настроим базовое управления проектом на GitLab.com;
  • создадим конвейер непрерывной поставки
  • проведём несколько циклов работы с GitLab Flow
  • изучим метрики CI/CD в GitLab

Желательны но необязательны базовые знания


  • Git;
  • Node.js;
  • React;
  • Docker;
Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments2

Авалония для самых маленьких

Reading time8 min
Views26K
В свежем превью Rider, помимо прочего, появилась поддержка Авалонии. Авалония — это самый крупный .NET фреймворк для разработки кроссплатформенного UI, и его поддержка в IDE — отличный повод наконец разобраться, как писать десктопные приложения для любых платформ.

В этой статье я на примере простой задачи по реализации калькулятора покажу:

  • как управлять разметкой,
  • как связывать функциональность с компонентами,
  • как управлять стилями.


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

Визуальное сравнение 13 CSS-фреймворков

Reading time3 min
Views18K
Доброго времени суток, друзья!

Предлагаю Вашему вниманию результаты небольшого исследования — визуального сравнения 13 CSS-фреймворков.

Цель исследования — определить, какой из фреймворков лучше всего справляется со стилизацией по умолчанию, т.е. без добавления специальных (предусмотренных фреймворком) классов.

В исследовании представлены следующие фреймворки:


Использовались следующие версии стилей:


Total votes 20: ↑16 and ↓4+12
Comments16

.NET Core: Взаимодействие микросервисов через Web api

Reading time21 min
Views45K

Введение


Практически все, кто имел дело с микросервисами в .NET Core, наверняка знают книгу Кристиана Хорсдала “Микросервисы на платформе .NET”. Здесь прекрасно описаны подходы к построению приложения на основе микросервисов, подробно рассмотрены вопросы мониторинга, журналирования, управления доступом. Единственное, чего не хватает — это инструмента автоматизации взаимодействия между микросервисами.

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

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

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

Web-клиент для микросервиса должен генерироваться автоматически на основе интерфейса и предоставляться через Dependency Injection.

Должен быть механизм организации редиректов на конечные точки микросервисов из главного приложения, взаимодействующего с пользовательским интерфейсом.
Читать дальше →
Total votes 6: ↑4 and ↓2+2
Comments24

Как я использую AirDrop вместо Тиндера

Reading time10 min
Views169K


В устройствах Apple есть прекрасная функция Airdrop — она сделана для пересылки данных между устройствами. При этом никакой настройки и предварительного сопряжения устройств не требуется, все работает из коробки в два клика. Для передачи данных используется надстройка над Wi-Fi, и поэтому данные передаются с огромными скоростями. При этом используя некоторые трюки, можно не просто пересылать файлы, но и узнать телефонный номер человека, находящегося с тобой в одном вагоне метро.

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

Под катом я расскажу за всю хурму.
Компания RUVDS.COM не несёт ответственности за повторение действий описанных в данном материале.
Читать дальше →
Total votes 308: ↑294 and ↓14+280
Comments174

Опасный алгоритм SHA-1 убирают из библиотек SSH

Reading time5 min
Views25K

Сложность атак на SHA-1. Стоимость указана из расчёта стоимости аренды одного GTX 1060 в 35 долларов/месяц

Намного позже всех остальных, но разработчики библиотек для SSH приняли решение наконец-то отключить по умолчанию устаревшую криптофункцию SHA-1. Сегодня подбор серверного ключа аутентификации SHA-1, то есть коллизия с выбранным префиксом, на арендованном кластере GPU обойдётся в $45 тыс., как указано в таблице вверху. Это делает атаку доступной не только для государственных спецслужб, но и для коммерческих клиентов.

Об отключении SHA-1 по умолчанию одновременно объявили разработчики опенсорсных библиотек OpenSSH (release notes) и libssh (изменение кода).
Читать дальше →
Total votes 46: ↑46 and ↓0+46
Comments38

Руководитель на новом месте: инструкция по выживанию

Reading time8 min
Views42K
Не так давно меня пригласили на позицию CTO в крутой продуктовый стартап и я решил перезагрузить свою карьеру. После нескольких лет работы в крупной и стабильной компании я понимал, что будет непросто, меня ждет миллион мелких и больших задач, на первых порах придется жестко овертаймить и строить почти все с нуля.

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

Инструкция написана в общем стиле и подойдет для руководителя почти любого уровня при смене места работы. Поехали!
Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments8

7 опасных ошибок, которые легко совершить в С#/.NET

Reading time8 min
Views11K
Перевод статьи подготовлен в преддверии старта курса «C# ASP.NET Core разработчик».




C# — великолепный язык, и .NET Framework также очень хорош. Строгая типизация в C# способствует уменьшению количества ошибок, которые вы способны спровоцировать, по сравнению с другими языками. Плюс его общая интуитивная конструкция тоже очень помогает, по сравнению с чем-то наподобие JavaScript (где true это false). Тем не менее, в каждом языке есть свои грабли, на которые легко наступить, наряду с ошибочными представлениями об ожидаемом поведении языка и инфраструктуры. Я попытаюсь подробно описать некоторые из этих ошибок.
Читать дальше →
Total votes 25: ↑21 and ↓4+17
Comments14

Обзор GUI-интерфейсов для управления Docker-контейнерами

Reading time5 min
Views162K


Работа с Docker в консоли — привычная для многих рутина. Тем не менее, бывают случаи, когда GUI-/веб-интерфейс может оказаться полезным даже для них. В статье представлен обзор наиболее заметных на сегодняшний день решений, авторы которых попытались предложить более удобные (или подходящие для каких-то случаев) интерфейсы для знакомства с Docker или даже обслуживания больших его инсталляций. Некоторые из проектов совсем молоды, а иные — наоборот, уже отмирают…
Читать дальше →
Total votes 41: ↑40 and ↓1+39
Comments26

Пишем Ретровейв на Angular

Reading time10 min
Views6K

Web Audio API существует уже давно, и про него есть немало статей. Поэтому про сам API много говорить не будем. Расскажем, что Web Audio и Angular могут стать лучшими друзьями, если их правильно познакомить. Давайте сделаем это!


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

Создаем свою CRUD API на Express и MySQL: часть первая

Reading time6 min
Views27K
Всем привет. В преддверии старта курса «Fullstack разработчик JavaScript», хотим поделиться небольшим материалом, который был написан нашим внештатным автором.



Express один из самых популярных веб-фреймворков, который поддерживает роутинг, миддлвейрс и систему шаблонов. Делать бэкенд на Node.js без Express в 2020 году — довольно странное занятие, ведь Express де-факто — каркас для создания веб-приложения на Node.js.
Сегодня мы попробуем создать несложное CRUD API используя базу данных MySQL. Опытный в Node.js читатель спросит, а где же MongoDB, с которым Node.js обычно применятся в паре но, скажу сразу, это статья больше для PHP разработчиков, которые хотят немного потрогать Node.js, и чтобы смягчить переход в новую экосистему мы воспользуемся MySQL. API мы будем создавать для несложного Todo приложения, на тот случай, если кто-то захочет к своей todo (и даже неважно, написанной с помощью React или нет), присоединить немного бэка и поиграть с ним.
Читать дальше →
Total votes 11: ↑8 and ↓3+5
Comments4
1
23 ...

Information

Rating
Does not participate
Registered
Activity