Pull to refresh
0
0
Михаил @Mikaelo

User

Send message

Compiler Explorer — уникальный проект для исследования компилируемого кода

Level of difficultyMedium
Reading time7 min
Views7.3K
Этот пост посвящён замечательному инструменту, полезному для каждого, кто интересуется компиляторами или архитектурой компьютеров. Это Compiler Explorer, который я в дальнейшем будут называть CE.

CE — потрясающий инструмент. Если вы с ним не знакомы, то прервите чтение и перейдите на веб-сайт CE, где вы увидите примерно такой экран:

Предупреждение: вы забираетесь в «кроличью нору», на которую можете потратить несколько часов своего времени.


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

CE поддерживает 69 языков, более двух тысяч компиляторов и широкий спектр архитектур, включая x86, arm, risc-v, avr, mips, vax, tensa, 68k, PowerPC, SPARC и даже древний 6502.

То есть теперь для просмотра результата работы компилятора достаточно открыть godbolt.org и скопировать туда блок кода.

Это само по себе удивительно, но у CE есть гораздо больше возможностей. Это инструмент, который должны знать все интересующиеся компиляторами и архитектурами компьютеров. В статье мы сможем лишь поверхностно рассмотреть функции CE. Вам стоит самим перейти на сайт CE и попробовать всё самостоятельно.
Читать дальше →
Total votes 54: ↑52 and ↓2+65
Comments11

Пример деплоя Web-приложения на C# Mono на хостинг

Level of difficultyMedium
Reading time3 min
Views1.4K

Для развертывания на сервере мы применим GitOps подход. 

Чтобы развернуть приложение, выполним следующие шаги:

1. Напишем приложение

2. Создадим конфигурационный файл

3. Выгрузим все файлы (можно через git, а можно через интерфейс) на сервер и запустим сборку. 

Рассмотрим процесс подробнее.

Читать далее
Total votes 7: ↑4 and ↓3+1
Comments6

Создание собственного графического клиента ChatGPT с помощью NextJS и Wing

Level of difficultyEasy
Reading time9 min
Views2.2K

К концу этой статьи вы создадите и развернете клиент ChatGPT с помощью Wing и Next.js.

Это приложение может запускаться локально (в локальном облачном симуляторе) или развертываться у вашего собственного облачного провайдера.

Читать далее
Total votes 6: ↑4 and ↓2+2
Comments11

Работа с XML в C#

Level of difficultyMedium
Reading time6 min
Views2.7K

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

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

В статье рассмотрим как работать с XML в C#.

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

Предметно-ориентированное проектирование (DDD) как математическое моделирование

Level of difficultyMedium
Reading time4 min
Views1.2K

В статье будут проведены аналогии между предметно-ориентированным проектированием и математическим моделированием

С математическим моделированием школьники знакомятся в 7 классе общеобразовательной школы. Грубо говоря, это перевод задачи из неформального человеческого языка на язык математики для последующего её решения.

Читать далее
Total votes 3: ↑0 and ↓3-3
Comments0

Как торгуют профессиональные трейдеры — анализ результатов конкурса Лучший Частный Инвестор

Level of difficultyEasy
Reading time8 min
Views4.1K

Каждый год Московская Биржа проводит конкурс Лучший Частный Инвестор (ЛЧИ). В 2023 году конкурс проходил с 5 октября по 21 декабря. В конкурсе мог поучаствовать любой желающий, а итоговые результаты опубликованы на странице со статистикой. Но чем же примечателен этот конкурс? Дело в том, что кроме результатов биржа также публикует полную историю торгов всех участников конкурса! Когда я впервые об этом узнал, то очень обрадовался. До сих пор я нигде не встречал такой же подробной статистики для реальных трейдеров по торгам на бирже. Все статьи на Хабре, которые я читал по данной тематике, обычно оперируют данными из отчетов бирж, которые обычный пользователь никак не может использовать и проверить самостоятельно. Здесь же нам доступно все. Поэтому я решил проанализировать эти замечательные результаты и выяснить насколько хорошо торгуют профессиональные трейдеры! Кого-то результаты удивят, а для кого-то они покажутся очевидными. Моя основная цель в том, чтобы просто изучить их и продемонстрировать сам способ анализа и визуализации.

Читать далее
Total votes 10: ↑9 and ↓1+9
Comments8

Топ-100 вопросов на собеседовании по системному анализу

Level of difficultyEasy
Reading time4 min
Views1.4K

Салют!

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

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

Читать далее
Total votes 7: ↑3 and ↓4-1
Comments1

Как работать с MassTransit и RabbitMQ: реализуем RPC с Saga и без

Level of difficultyMedium
Reading time6 min
Views1.5K

Привет, Хабр! Меня зовут Евгений, я backend-разработчик SimbirSoft. В этой статье я разберу два варианта решения нетривиальной задачи создания RPC через брокер сообщений RabbitMQ и библиотеку MassTransit. Подробно разберём подключение MassTransit и работу с Saga. Тема будет полезна как для начинающих, так и опытных backend-разработчиков .NET.

🚌 Поехали!
Total votes 1: ↑1 and ↓0+1
Comments1

Реверс-инжиниринг нативно скомпилированных .NET-приложений

Level of difficultyHard
Reading time9 min
Views2.9K


Изучение внутреннего устройства приложений, созданных с использованием нативной опережающей компиляции (AOT).


На платформе .NET 7 впервые была представлена новая модель развертывания: опережающая нативная компиляция. Когда приложение .NET компилируется нативно по методу AOT, оно превращается в автономный нативный исполняемый файл, оснащённый собственной минимальной средой исполнения для управления выполнением кода.
Читать дальше →
Total votes 25: ↑23 and ↓2+35
Comments3

Анализ рынка акций мировых компаний на брокерской платформе Tinkoff Инвестиции

Level of difficultyEasy
Reading time28 min
Views779

В мире, где цифровые технологии играют все более важную роль в повседневной жизни, рынок ценных бумаг становятся объектом увеличивающегося интереса исследователей, инвесторов, а также экономических и финансовых институтов. Цифровые активы и способы прогнозирования их стоимости быстро привлекают внимание своей децентрализованной природой, возможностью проведения глобальных финансовых транзакций и перспективой защиты от инфляции. Однако, они также характеризуются высокой волатильностью, что делает их предметом повышенного финансового риска. Этот рынок играет ключевую роль в экономике, поскольку предоставляет компаниям доступ к капиталу для финансирования своей деятельности, а также дает инвесторам возможность вложить свои деньги с целью получения прибыли [1, 2].

Платформа Tinkoff Инвестиции — это онлайн-сервис от Tinkoff Bank, который предоставляет клиентам возможность инвестировать в различные финансовые инструменты, включая акции, облигации, фонды, ETF и другие. Широкий выбор активов, удобный интерфейс и наглядная аналитика, и отчетность на платформе делает ее привлекательной для новичков и опытных инвесторов. Онлайн-брокерские компании позволяют инвесторам быстро и легко зарегистрироваться и приступить к торговле [3].

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

Читать далее
Total votes 10: ↑3 and ↓70
Comments3

Асинхронный веб: WebSocket, Server-Sent Events, Long Polling и Short Polling

Level of difficultyMedium
Reading time13 min
Views6K

Веб-разработка часто требует реализации механизмов обновления контента на странице в реальном времени. Существуют различные сценарии, где это необходимо, например, отображение прогресса выполнения тяжелых задач на бекенде, обновление каких-либо часто меняющихся данных, будь то курсы валют или мониторинг какой-то активности, чаты, различные уведомления. Эти сценарии объединяет одна общая особенность: источник события необходимости обновления данных находится не на клиентской стороне, поэтому мы хотим получать события с бекенда. В данной статье мы рассмотрим четыре популярных подхода к реализации этой функциональности: WebSocket, Server-Sent Events (SSE), Long Polling и Short Polling.
Мы проанализируем каждый метод, выявим их плюсы, минусы и сложность реализации.

Читать далее
Total votes 14: ↑12 and ↓2+15
Comments11

Бегство от реальности: как перестать подгонять свой код под устаревшие шаблоны

Level of difficultyEasy
Reading time22 min
Views4.3K


Как описать хороший код в трех словах? Исходя из опыта — это код, который [приятно поддерживать и эксплуатировать]. СОЛИД, SOLID, СОЛИД... Редко код ревью обходится без упоминания этих принципов, но для разработчика это не означает ничего хорошего. А что, если я скажу вам, что есть альтернатива? Недавно я наткнулся на одну англоязычную статью в блоге автора по имени Dan North. Он поднимает крайне интересные темы: написание хорошего кода, поддержка кодовой базы, порочные практики следования устаревшим трафаретам. 

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

Читать далее
Total votes 15: ↑11 and ↓4+12
Comments7

Разбор вердикта суда в отношении разработчика Tornado Cash

Level of difficultyEasy
Reading time8 min
Views12K

В результате беспрецедентного судебного разбирательства Алекс Перцев, ключевой разработчик инструмента для обеспечения приватности на базе Ethereum под названием Tornado Cash, был приговорен сегодня к более чем пяти годам тюремного заключения за свою работу над проектом. Вынесенный приговор был максимальным, запрошенным прокуратурой, и стал первым приговором разработчику, создавшему децентрализованный инструмент достижения приватности с использованием криптовалют.

Читать далее
Total votes 63: ↑56 and ↓7+65
Comments253

История: Redis и его создатель antirez

Level of difficultyEasy
Reading time10 min
Views3.2K

В мире баз данных Redis занимает особое место. Вместо обычных таблиц или документов, являющихся главным элементом большинства баз данных, в Redis вы работаете напрямую с низкоуровневыми структурами данных: связанными списками и хэш-таблицами.

Всё это стало возможно благодаря инновационному дизайну, разработанному создателем Redis Сальваторе Санфилиппо: он известен под ником antirez. Он мастер системного программирования, и поэтому он предпочитает думать, оперируя понятиями структур данных — списками, хэшами и множествами. Более высокоуровневые описания данных, например, таблицы и документы, ему не очень интересны. В начале разработки Redis antirez был новичком в сфере баз данных. Но, возможно, именно нехватка опыта позволила ему привнести в эту отрасль свежие идеи.

Сегодня Redis стал мейнстримом, а его влияние заметно почти во всех веб-сервисах. Согласно опросам на Stack Overflow, Redis пять лет подряд остаётся самой любимой пользователями базой данных.

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

.NET Community Meetup 29/10

Reading time4 min
Views2.2K
Были рады встретиться онлайн на .NET Community meetup 29 октября. Общались на тему дизайна и использования асинхронного Success/Failure-пайплайна в микросервисах и погрузились в историю языков программирования — что позаимствовали авторы C# у людей, про которых мы даже и не знаем?

Пропустили митап? Делимся записью и презентациями спикеров :)

Total votes 12: ↑11 and ↓1+12
Comments2

Prompt engineering — путь к эффективной работе с ChatGPT

Reading time16 min
Views6.5K

Привет, Хабр! Меня зовут  Илья Козырёв, я — CTO и Co-Founder в Raft. Много работал в консалтинге в сфере ритейла и фармацевтики, имею экспертизу в обработке данных, специализируюсь на ML/AI. А ещё я — участник опенсорсного продукта по обработке данных Apache Beam, помогаю запускать продукт по ценообразованию.

В этой статье расскажу, как эффективно работать с ChatGPT в разных задачах и архитектуре. Многие пробовали, но не у всех получилось.

Читать далее
Total votes 20: ↑19 and ↓1+26
Comments11

Как я разработал квадрокоптер на ESP32 с нуля (ушло 4 года)

Level of difficultyMedium
Reading time12 min
Views38K

При сборке квадрокоптеров и других БПЛА обычно используют готовую плату полетного контроллера, содержащую все необходимые датчики и периферию, и готовую полетную прошивку, например, Betaflight, ArduPilot или PX4. Полетный контроллер управляет моторами квадрокоптера и обеспечивает стабильный полет.

Занимаясь БПЛА с 2016 года, я решил разобраться в устройстве полетных контроллеров максимально глубоко и создать квадрокоптер с нуля, не используя готовый полетный контроллер и готовый софт. Спустя долгое время разработки мне удалось это сделать. Я написал прошивку с максимально простым исходным кодом и выложил ее на GitHub. В этой статье я расскажу о теории и практике разработки полетного софта для квадрокоптера и проиллюстрирую это на примере своего дрона на базе микроконтроллера ESP32, который можно увидеть на картинке выше.

Читать далее
Total votes 285: ↑285 and ↓0+339
Comments126

«IT-Планета 2024»: задачи второго этапа по PostgreSQL

Reading time32 min
Views2.9K

Вдохновившись прошлогодним опытом, мы продолжили начинание и снова проводим конкурс по SQL на международной олимпиаде «IT-Планета».

Конкурс состоит из трех этапов. Заочный теоретический тест собрал почти 3000 человек, из которых на следующий этап мы отобрали примерно 200. Вопросы для этого этапа были подготовлены моим коллегой, Евгением Давыдовым.

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

Третий — очный — этап пройдет в конце мая; постараюсь не затягивать с отчетом, но пока храню интригующее молчание.

Поскольку все вводные слова про мотивацию я уже сказал в прошлый раз, сразу приступим к делу.

Приступить к делу
Total votes 16: ↑16 and ↓0+23
Comments10

Паттерн Poison Pill в Java

Reading time5 min
Views4.5K

Сегодня поговорим о паттерне Poison Pill и его реализацию в Java.

Poison Pill, или «ядовитая пилюля», — это шаблон, используемый для мягкой остановки потока или процесса. Суть его заключается в отправке специального, заранее определенного сообщения, которое сигнализирует о необходимости завершения работы. Это сообщение обрабатывается в рамках нормального потока сообщений и позволяет потоку корректно завершить работу, освободить ресурсы и закрыть все активные соединения.

Читать далее
Total votes 8: ↑7 and ↓1+10
Comments9
1
23 ...

Information

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