Как стать автором
Обновить
-1
0.1
Роман @dryja

software developer, team lead

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

Кастомизация окна прогресса в оболочке Windows

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

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

Но есть здесь и нюанс: загрузчик — это первое, что встречают пользователи, поэтому ему нужен GUI. А поскольку написан он на C# и с целью сохранения лёгкости компилируется перед исполнением (AOT, ahead-of-time), традиционные решения исключаются. Соблазнительным вариантом выглядит Avalonia, но в этом случае сам установщик станет больше той программы, которую он должен устанавливать.

Итак, что у нас остаётся? Можно углубиться в Windows API и создать собственное «окно», но это кроличья нора, сулящая кошмары при обслуживании. К счастью, в Windows есть диалоговое окно прогресса.
Читать дальше →
Всего голосов 31: ↑30 и ↓1+42
Комментарии10

Заметки по сериализации + System.Text.Json

Уровень сложностиСредний
Время на прочтение31 мин
Количество просмотров2.8K

Сериализация - важнейший механизм любого приложения, от поиска по фильтрам в онлайн магазинах, до сохранения прогресса в играх. Давайте коротко пройдемся по основным форматам сериализации и рассмотрим использование System.Text.Json.

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

Замедление YouTube с технической стороны: ограничение и обход

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

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

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

Сразу скажу, что буду говорить обо всём, что известно на данный момент. Понятно, что с этим разбирался далеко не один я: огромное спасибо обывателям ntc party форума за проделанный ресёрч.

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

UPD 10.08.2024 Многие жалуются на недоступность ютуба в целом: не грузит домашнюю страницу. Переживать не стоит, оно обрабатывается всё тем же ТСПУ по всё той же стратегии, обходы должны работать.

Читать далее
Всего голосов 540: ↑540 и ↓0+631
Комментарии434

5 удобных Телеграм-ботов с Chat GPT для написания кода

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

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

По популярности лидирует нашумевший Chat GPT, но в России сервис не работает без VPN. Как тебе такое, Илон Маск? Неудобство? — Да. Разочарование? — return false; Давно есть решение — Телеграм-боты со встроенным GPT для кода и борьбы с багами.

Читать далее
Всего голосов 12: ↑8 и ↓4+4
Комментарии42

Решение проблемы дымки на изображениях с использованием .NET: Простой и эффективный подход

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров2.9K

Простое .NET решение для четких фото: избавьтесь от дымки или тумана на изображениях всего за несколько шагов!

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

Сравнение технологий WebSockets, Server-Sent-Events, Long-Polling, WebRTC и WebTransport

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

При работе с современными веб-приложениями реального времени незаменима возможность отправлять события с сервера на клиент. Именно этой необходимостью продиктовано то, что за годы работы было изобретено несколько методов для этой цели, каждый с собственным набором достоинств и недостатков. Первоначально единственным вариантом был длинный опрос. Затем в качестве альтернативы появились веб-сокеты — более надёжное решение для двунаправленной коммуникации. Вслед за веб-сокетами появились события, отправляемые сервером (SSE), более простой метод, обеспечивающий однонаправленную связь от сервера к клиенту. Забегая вперёд, сейчас разрабатывается ещё и протокол WebTransport, который может тем более изменить ландшафт этой области, обеспечивая более эффективный и гибкий подход, располагающий к масштабированию. В некоторых нишевых случаях можно присмотреться и к технологии WebRTC, предназначенной для работы с событиями в направлении сервер-клиент.

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

Читать далее
Всего голосов 24: ↑22 и ↓2+27
Комментарии4

На какие AI Coding Assistants стоит обратить внимание в 2024?

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

Не является секретом, что LLM в настоящее время являются неотъемлемой частью нашего рабочего процесса. Особое внимание заслуживает AI Coding Assistant — искусственный интеллект, или просто программный помощник, который поддерживает разработчиков, помогая писать более качественный и точный код, тем самым экономя время и ресурсы.

Давайте рассмотрим различные программные помощники, доступные на рынке для разработчиков с разными уровнями навыков, включая как бесплатные, так и платные варианты.

Но прежде чем мы погрузимся в детали этих инструментов, давайте ответим на вопрос: "Что такое эти помощники?".

Приятного прочтения(:

Читать далее
Всего голосов 19: ↑19 и ↓0+20
Комментарии11

Ускоряем Dictionary в C# при помощи структур и CollectionsMarshal

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

Если вы C# разработчик, то наверняка вам знаком класс Dictionary. В качестве значений вы, скорее всего, использовали классы. Но что если я скажу, что в Dictionary можно использовать структуры? Не стоит бояться того, что структуры копируются при передаче в метод или возврате из него. Есть способ этого избежать, и это работает быстро.

Узнать как
Всего голосов 14: ↑12 и ↓2+11
Комментарии21

Мне плевать на твой браузер, я все равно открою ссылку в Edge! Боремся с новыми методами продвижения браузера MS

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

Начиналось все прозаично - я приобрел новую версию Microsoft Office и решил ее переустановить с полным удалением и зачисткой всех "хвостов". Операционную систему использую Microsoft Windows 11 Pro. Установка прошла "без сучка и задоринки". Проверил что работает корпоративный Teams, Outlook резво гоняет корпоративную почту, все приложения корректно работают. Выключил ПК и пошел спокойно заниматься своими делами.

"Сюрприз" ожидал меня в следующий рабочий день, когда разработчик из команды прислал мне MR на ревью. Ссылка на МР в репозитории открылась, но отсутствовало автозаполнение, настроенное как удобно мне, например не вставлялись автоматически данные авторизации из защищенного хранилища. Сначала я даже не обратил внимания что:

Читать далее
Всего голосов 48: ↑45 и ↓3+55
Комментарии102

Топ необходимых Linux-команд для разработчика [Шпаргалка]

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

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

Цель этой статьи - ближе познакомить пользователей с основными командами, которые разработчики используют в повседневной работе.

Читать далее
Всего голосов 32: ↑21 и ↓11+13
Комментарии35

Dependency Injection контейнеры .NET, допускающие полиморфное поведение

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


Иногда случается так, что при разработке приложения на платформе .NET с внедрением зависимостей и сервисами от контейнера требуется поддержка полиморфного поведения.

Когда, например, у интерфейса есть несколько реализаций, и их нужно грамотно расфасовать по правильным конструкторам так, чтобы всё из коробки работало.

Однако стандартный DI контейнер платформы долгое время не давал этой возможности.

В рамках этой статьи я решил напомнить альтернативы для решения этой задачи на тот случай, если вы ещё не успели переехать на .NET 8 или работаете в каком-нибудь Иннотехе, где в наличии только зеркало NuGet-пакетов, выпущенных до начала 2022 года.
Читать дальше →
Всего голосов 41: ↑38 и ↓3+54
Комментарии147

Немного про OR в SQL запросах

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

Несмотря на избитость темы и многочисленные рекомендации избегать OR в выражениях WHERE/ON SQL запросов, жизнь вносит свои коррективы. Иногда сама постановка задачи подразумевает необходимость использовать OR. Я не собираюсь здесь рассматривать простые случаи, а сразу возьму быка за рога и рассмотрю случай, когда OR должно привести к двум разным выборкам по разным индексам одной и той же таблицы.

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

Разворачиваем и заворачиваем в docker проект ASP.NET core на Ubuntu в связке с PostgreSQL

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

На просторах интернета заметил, что довольно мало статьей про ASP.NET под Linux. К сожалению, новички вроде меня копаются часами в поисках нужной информации, поэтому в этой статье мы вместе развернём минимальное приложение ASP.NET core под Linux в среде Ubuntu и в связке с PostgreSQL и с котиками на сервере nginx, а также упакуем всё в docker контейнеры. В ходе этой статьи мы разберём некоторые консольные команды для ежедневного пользования.

Приступить к чтению
Всего голосов 8: ↑5 и ↓3+4
Комментарии20

Как можно использовать .NET из Javascript (React) в 2023 году

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров7.1K

Статья показывает опыт использования .NET из JavaScript (React) с помощью компиляции .NET кода в WebAssembly с помощью новых возможностей .NET 7. Включает инструкцию по созданию проекта для .NET для использования из Javascript, и интеграции его в веб-приложение, написанного с использованием React. Рассматривается также сборка такого проекта с помощью GitHub Actions (CI) и хостинг его на GitHub Pages. Содержатся ссылки репозитории на GitHub тестового и реального проекта, использующие данный подход.

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

Создаем свой VPN с защищенным от блокировок протоколом AmneziaWG, или WireGuard на максималках

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


Всем привет! Возможно уже совсем скоро разные новостные и  IT-ресурсы будут подчищать информацию о способах обхода блокировок. А пока этого не случилось, запасаемся полезными гайдами и разворачиваем свои собственные VPN с защищенными от блокировок протоколами. Расскажу как это сделать, как изменилась Amnezia и как мы защитили WireGuard от блокировок.

Читать далее
Всего голосов 91: ↑89 и ↓2+111
Комментарии123

Как программисту использовать ИИ на практике (Bard, ChatGPT, Midjourney)

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

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

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

Генерировать статью
Всего голосов 28: ↑13 и ↓150
Комментарии40

10 полезных англоязычных ресурсов для программистов

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

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

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

Читать далее
Всего голосов 9: ↑7 и ↓2+6
Комментарии6

6 полезных инструментов на основе ИИ для разработчиков

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

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

Читать далее
Всего голосов 11: ↑8 и ↓3+14
Комментарии2

Передача и обработка IAsyncEnumerable в Typescript с ASP.NET Core Web

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

Всем привет, Меня зовут Олег и я .NET разработчик в компании Bimeister. Я хотел поделиться своим интересным опытом по связи проекта на ASP.NET Core Web App с использованием IAsyncEnumerable коллекций и современного фронт-енд SPA приложения на Typescript.и Vue.js 3 версии.

Все эти технологии не новы и, на самом деле, фреймворк и технологии для веб части могут быть любые на ваш вкус: Angular, или React, или что-либо еще. Весь интерес представляет собой именно унификация процесса обмена с бэкендом на C# с современной асинхронной коллекцией. Я не буду заострять внимание на структуре обеих половин приложения подробно, скажу лишь, что использовал один из сложившихся в моей практики шаблонов для запуска  ASP.NET Core Web приложения с SPA. Все детали можно будет посмотреть в приложенном репозитории.

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

Проксируем OpenVPN с помощью Cloak

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

Cloak — это подключаемый транспорт, который расширяет возможности традиционных прокси-инструментов, таких как OpenVPN, Shadowsocks и Tor для обхода сложной цензуры и дискриминации данных.

Руководство будет включать:

1. Предисловие

2. Описание работы Cloak

3. Настройку сервера Cloak

4. Настройку клиента Cloak на OpenWRT

5. Настройку клиента OpenVPN

Читать далее
Всего голосов 34: ↑34 и ↓0+34
Комментарии59
1

Информация

В рейтинге
3 821-й
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Backend Developer, Fullstack Developer
Lead
C#
SQL
.NET
Git
Bash