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

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

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

Безопасность веб-приложений для самых маленьких фронтов

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

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

Статья подготовлена по материалам внутреннего митапа по информационной безопасности.

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

Книги по C# для новичков в разработке: что стоит почитать в 2024 году

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

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

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

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

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

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

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

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

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

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

35+ бесплатных ресурсов для начинающих разработчиков С++

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

Привет. Предположим, вы захотели начать изучать языĸ программирования C++ или, возможно, тех материалов, что уже изучили, вам недостаточно.

Я — Савва, программирую уже больше 7 лет, работаю менеджером команды наставников в Практикуме на курсе «Разработчик С++», а с недавнего времени — разработчиком в Positive Technologies. В этой статье мы с вместе с Практикумом собрали леĸции, ĸниги, курсы и всяĸое таĸое, чтобы шансов выстрелить себе в ногу самостоятельно было меньше :) По C++ существуют и другие подборĸи, но, ĸ удивлению, на Хабре их всего две.

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

Сортировка слабой кучей

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

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

При сортировке с помощью слабой кучи всегда меньше количество сравнений и обменов, чем если использовать обычную кучу. Так что да, слабая куча сильнее, чем обычная куча.
Траффик
Всего голосов 19: ↑18 и ↓1+25
Комментарии10

C# Тренажер

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

Хочу представить вашему вниманию бесплатный курс C# Тренажер, который недавно опубликовал на платформе Stepik.

Курс включает в себя множество практических задач по программированию на языке C#, которые способствуют повышению вашего уровня навыков в этой области. В ходе обучения вы столкнетесь с разнообразными заданиями, включая как классические, так и те, которые часто встречаются на собеседованиях в ведущих компаниях, таких как Microsoft, EA, Intel, Amazon, Uber и Unity. Это обеспечит разностороннее развитие ваших навыков работы с переменными, типами данных, операторами, циклами, функциями и алгоритмами. 

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

Сортировки обменами

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


Если описать в паре предложений по какому принципу работают сортировки обменами, то:

  1. Попарно сравниваются элементы массива
  2. Если элемент слева* больше элемента справа, то элементы меняются местами
  3. Повторяем пункты 1-2 до тех пор, пока массив не отсортируется

* — под элементом слева подразумевается тот элемент из сравниваемой пары, который находится ближе к левому краю массива. Соответственно, элемент справа находится ближе к правому краю.
Траффик
Всего голосов 12: ↑12 и ↓0+12
Комментарии10

Введение в нейросети: что, зачем и как?

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

Это модное слово всё чаще используется в разговорной речи: обывателей плотнее окутывают угрозами бунта искусственного интеллекта и войны с роботами — с одной стороны, и рекламой нейросетевых продуктов — с другой. Отдельный котёл в аду — для тех, кто впаривает «курсы дата‑саентистов». А когда бедный юзернейм в поисках истины обращается к Гуглу своему любимому поисковику — то вместо простого ответа на простой вопрос, получает ещё больше вопросов — таких как тензорфлоу, сигмоида и, не дай Бог, линейная алгебра.

Как же нейросети рисуют картинки?
Всего голосов 48: ↑46 и ↓2+54
Комментарии27

Курс «PostgreSQL для начинающих»: #4 — Анализ запросов (ч.1 — как и зачем читать планы)

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

Продолжаю публикацию расширенных транскриптов лекционного курса "PostgreSQL для начинающих", подготовленного мной в рамках "Школы backend-разработчика" в "Тензоре".

В этой лекции мы узнаем, что такое план выполнения запроса, как и зачем его читать (и почему это совсем непросто), и о каких проблемах с производительностью базы он может сигнализировать. Разберем, что такое Seq Scan, Bitmap Heap Scan, Index Scan и почему Index Only Scan бывает нехорош, чем отличается Materialize от Memoize, а Gather Merge от "просто" Gather.

Как обычно, для предпочитающих смотреть и слушать, а не читать - доступна видеозапись (часть 1, часть 2).

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

Как в C# быстро извлечь подстроку

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

Извлечение подстроки. Казалось бы, что тут может быть сложного? В любом современном языке программирования это можно сделать через функцию substring или через slicing. За время работы C# разработчиком я повидал разный код, в том числе разные способы извлечения подстроки. В этой статье мы рассмотрим самые распространённые из них, сделаем замеры производительности и проанализируем результаты.

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

Самый простой гайд по созданию бота для анализа сообщений в Telegram

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

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

В этой статье рассказываем, как с помощью нейросети создать бота, который собирает и обрабатывает информацию из сообщений, и задеплоить его на облачный сервер.
Читать дальше →
Всего голосов 27: ↑24 и ↓3+30
Комментарии5

Easy English с левой задней ноги

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

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

Меня зовут Дмитрий и я многократный чемпион по бесплодным попыткам освоить английский язык. Гениальные Д.Петров, С.Дружбинский и десятки талантливых блогеров — не приблизили меня к мечте. Замечательные Duolingo, Memrise, Anki и прочие, помогающие миллионам учащихся — на мне обломались. Два репетитора вернули деньги и рыдая, умоляли больше не приходить. На запрос «таблетка для английского — быстро, недорого и желательно во сне» Google до сих пор недоуменно пожимает плечами.

В конце концов мне пришлось признать, что «God helps those who help themselves», и, собрав в кулак свою лень и немного VSC, я за сравнительно небольшой срок закрыл этот гештальт, ну или почти закрыл.

Мне кажется, что способ, который я предложу ниже, будет полезен многим из тех, кто изучает иностранный язык самостоятельно.

Под катом много скриншотов и незримое «IMHO» перед каждым утвердительным предложением. Скриншоты взяты из моей программы «5 фраз» — предлагаю закрыть глаза на самопиар, а сосредоточиться на подходах.

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

Самый лучший в мире курс по Машинному обучению — Алгоритмы Машинного обучения с нуля

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

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

Курс бесплатный: https://stepik.org/course/68260/promo

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

Российская микроэлектроника — два года спустя

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

За эту статью попрошу благодарить патриотично размороженных граждан в целом, и @WebPeople (регистрация 2012, разморожен с первым комментарием 8 июл 2023 в 20:47) в частности. Глобальное потепление, ничего не поделать.

В мае 2022 в комментариях @hippohood отметился не имеющим аналогов текстом:
Примерно опишу мыслительный процесс позитивно (патриотично) настроенных граждан.

Оборудование можно сделать и самим, но пока можно и просто привезти серым импортом. Оборудование выглядит примерно как большой ящик с дырками, включённый в розетку; в одну дырку складываешь кремний, в другую заливаешь фоторезистор. Под третью дырку надо подставить ведро - в него будут ссыпаться чипы. Вёдра мы делать умеем (хотя и импортируем сейчас, но чертежи-то остались), фоторезистор научатся намешивать в Зелинограде; с кремнием разберемся, не всё сразу. Надо ещё заранее заказать в Китае переходник с европейской розетки на нормальную - лучше сразу 3 или 4, они постоянно горят. Вроде все ясно.

Читать далее
Всего голосов 564: ↑539 и ↓25+599
Комментарии452

Надежный обход блокировок в 2024: протоколы, клиенты и настройка сервера от простого к сложному

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

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

Вы, наверняка, помните отличный цикл статей на Хабре в прошлом году от пользователя MiraclePtr, который рассказывал о разных методах блокировок, о разных методах обхода блокировок, о разных клиентах и серверах для обходов блокировок, и о разных способах их настройки (раз, два, три, четыре, пять, шесть, семь, восемь, десять, десять, и вроде были еще другие), и можете спросить, а зачем еще одна? Есть две основные причины для этого.

Читать далее
Всего голосов 446: ↑438 и ↓8+490
Комментарии358

Другой способ понять, как работает async/await в C#

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

Про закулисье async/await написано предостаточно. Как правило, авторы декомпилируют IL-код, смотрят на IAsyncStateMachine и объясняют, вот дескать какое преобразование случилось с нашим исходным кодом. Из бесконечно-длинной прошлогодней статьи Стивена Тауба можно узнать мельчайшие детали реализации. Короче, всё давно рассказано. Зачем ещё одна статья?

Я приглашаю читателя пройти со мной обратным путём. Вместо изучения декомпилированного кода мы поставим себя на место дизайнеров языка C# и шаг за шагом превратим async/await в код, который почти идентичен тому, что синтезирует Roslyn.

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

Самый простой и подробный гайд по конкурентным коллекциям в C#

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


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

Конкурентные коллекции в C# предлагают встроенные механизмы для обработки конкурентного доступа, что делает их мощным инструментом в программировании с конкурентным доступом.

В рамках статьи я попробую объяснить System.Collections.Concurrent настолько, насколько это возможно, включая примеры и сценарии использования. Также будет затронута тема сравнения с неизменяемыми (immutable) и замороженными (frozen) коллекциями.
Читать дальше →
Всего голосов 43: ↑41 и ↓2+60
Комментарии26

Современные команды и фичи Git, которыми стоит пользоваться

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

Мы, разработчики ПО, пользуемся git каждый день, однако большинство из нас применяет только самые основные команды, например, addcommitpush и pull, как будто на дворе по-прежнему 2005 год.

С тех пор в Git появилось множество фич, пользование которыми может сильно упросить вашу жизнь. Так давайте исследуем некоторые из недавно добавленных современных команд git, о которых вам стоит знать.

Читать далее
Всего голосов 60: ↑58 и ↓2+71
Комментарии39

Переезд на линукс .NET разработчика. Как изменился линукс за 15 лет

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

Привет, Хабр! После написания двух статей про недостатки Windows и непонимание развития системы, я решил устроить бунт на своем компьютере, пересев на Линукс. Не то, чтобы я прям планировал всерьёз менять операционную систему, но чётко осознавал, что мои «знания» о линуксе сильно устарели, так как помимо хостинга и деплоя, я им пользовался дома очень давно, практически 15 лет назад. Тогда было много проблем со стабильностью как различных приложений, так и графический окружений в частности. Ну и как-то не очень объективно сравнивать современные версии от майкрософт со своими старыми воспоминаниями о линуксе, ведь прогресс не стоит на месте, дистрибутивы развиваются, а интерфейс приложений становится все более дружелюбным и приятным для использования. Так ведь?

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

Разработка синхронизированных многопоточных приложений на C# и .NET

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

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

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

Информация

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