Search
Write a publication
Pull to refresh
14
-0.4

Инженегр АСУТП

Send message

Как мы решаем проблему неинициализированной стековой памяти в Windows

Reading time19 min
Views21K
В этой заметке я расскажу в общих чертах о том, как в Microsoft устраняют уязвимости, связанные с неинициализированной стековой памятью, и почему мы вообще этим занимаемся.
Читать дальше →

Топ-10 причин для перехода в Oracle Cloud. Как бизнесу ускорить инновации?

Reading time9 min
Views2.8K
Привет, Хабр!

Сегодня хотим поделиться со всеми, кому интересна облачная тема, переводом whitepaper от Oracle на тему перехода на облачную инфраструктуру. За перевод благодарим нашего коллегу и постоянного хаброавтора obieesupport.

РДТЕХ — один из старейших партнеров Oracle в России (первое партнерское соглашение между компаниями было подписано в 1993 году). Сегодня наша компания имеет высший партнерский статус Oracle Platinum Partner, а Учебный центр РДТЕХ — один из главных центров авторизованного обучения Oracle в России (думаем, кто-то из числа наших читателей посещал курсы в нашем Учебном центре или даже учится в нем сейчас дистанционно).

Еще наши коллеги создали легендарный глоссарий терминов Oracle, которым пользуются многие представители «базоданческого сообщества» (спойлер: в одном из последующих постов мы расскажем подробнее о глоссарии).

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



Читать дальше →

Что делает Rust универсальным языком программирования

Reading time17 min
Views44K

Владей и заимствуй


Долгое время Rust позиционировался исключительно как язык для системного программирования. Попытки использовать Rust для высокоуровневых прикладных задач зачастую вызывали усмешку у значительной части сообщества: зачем использовать инструмент в том качестве, на которое он не рассчитан? Какая польза от возни с типами и анализатором заимствований (borrow checker), если есть Python и Java со сборкой мусора? Но другая часть сообщества всегда видела потенциал Rust именно как языка прикладного, и даже находила его удобным в использовании для быстрого прототипирования — во многом благодаря его особенностям, а не вопреки им.

Читать дальше →

Текстовая игра на Blazor с нуля (+сорсы +демо)

Reading time6 min
Views6K
Идея о том, что можно писать веб приложение без JavaScript интересна многим, а особенно тем кто начинал свой путь в программирование с серверного языка. Внедрение Web Assembly может (наконец-то) позволить это полноценно реализовать. Писать всю логику приложения на одном языке — звучит довольно заманчиво. Тем более, если этот код компилируется в бинарник, а не в промежуточный язык.

Эту технологию хотелось бы увидеть в не типичных веб-приложениях. Например, как это — писать что-то более интерактивное на Web Assembly (Blazor). Предлагаю попробовать создать простую текстовую интерактивную игру. В игре есть возможность создать свой вопрос и отвечать на вопросы других игроков, набирая очки за правильные ответы. Всё на одной странице и с помощью Blazor.



Результат:

Github
Demo
Читать дальше →

Веб-разработка с .NET: Представляем Blazor WebAssembly 3.2.0

Reading time5 min
Views14K
Привет, Хабр! Я рад сообщить, что Blazor WebAssembly теперь официально выпущена и доступна для всех. Это полнофункциональный и поддерживаемый выпуск Blazor WebAssembly, готовый к использованию в продакшене. Фулл-стак веб-разработка с .NET! Подробности под катом.

Читать дальше →

Разработка встроенного ПО: введение

Reading time7 min
Views20K
Привет, Хабр! Представляю вашему вниманию перевод статей Chris Svec, оригинал здесь. Публикуется с разрешения автора по лицензии CC-A-NC-ND.

Embedded software engineering 101: введение


Я запускаю цикл статей по обучению разработке встроенного программного обеспечения. Мы начнем с описания простого микроконтроллера, и после того, как Вы поймете, как он работает, разовьем это до понимания работы относительно сложных систем, таких как Fitbit или Nest.
Я назвал эту серию Embedded Software Engineering 101, и она начинается с этой недели прямо здесь в этом блоге.

Продолжайте читать для дальнейших объяснений и подробностей.


Одни строительные блоки на других строительных блоках.
Читать дальше →

Веб-сервисы в Oracle

Reading time39 min
Views39K


Веб-сервисы широко применяются для интеграции между компонентами одной системы или между различными системами. Популярность веб-сервисов как способа интеграции обусловлена их универсальностью, а также простотой реализации и отладки. Универсальность связана с передачей данных с помощью интернета и протокола HTTP. Веб-сервисы дают возможность относительно легко построить интеграции между компонентами, написанными на разных языках, запускаемыми на разных операционных системах и платформах. Простота реализации веб-сервисов достигается за счет встроенных во многие IDE средств и компонентов, позволяющих быстро разработать как сам веб-сервис (provider side), так и необходимый код для вызова сервиса на стороне клиента (client side). Отладку сервисов упрощает использование понятных человеку форматов обмена данными — XML и JSON. Кроме того, существует множество утилит для отладки и тестирования сервисов, в том числе нагрузочного.

В этой статье рассмотрим несколько способов создания веб-сервисов непосредственно из СУБД Oracle, то есть без использования сторонних средств.
Читать дальше →

Документооборот в Google Drive?

Reading time2 min
Views7.2K
Казалось бы, вот оно общее информационное пространство, в котором можно распределять права доступа, систематизировать файлы и добавлять к ним дополнительные поля. Чего не хватает для электронного документооборота? Уже на нескольких крупных строительных объектах мы испробовали Google Drive в деле документооборота, нашли популярные грабли и удачные решения. В майские праздники я (наконец-то!) упаковал этот опыт в 7-минутный ролик, отобрав самые полезные приемы.

image

Лучшие практики повышения производительности в C#

Reading time8 min
Views21K
Всем привет. Мы подготовили перевод еще одного полезного материала в преддверии старта курса «Разработчик С#». Приятного прочтения.




Поскольку недавно мне довелось составлять список лучших практик в C# для Criteo, я подумал, что было бы неплохо поделиться им публично. Цель этой статьи — предоставить неполный список шаблонов кода, которых следует избегать, либо потому что они сомнительны, либо потому что просто плохо работают. Список может показаться немного рандомным, потому что он слегка выдернут из контекста, но все его элементы в какой-то момент были обнаружены в нашем коде и вызывали проблемы в продакшене. Надеюсь, это послужит хорошей профилактикой и предотвратит ваши ошибки в будущем.

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

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

C++/Qt: пора валить?.

Reading time14 min
Views114K

image


Если бы раньше я запускал новый долгоживущий проект, в котором основные функции связаны с большим объёмом вычислений при каком-то взаимодействии с пользователем через графический интерфейс, я бы не задумываясь использовал С++/Qt. Это позволяло использовать один фреймворк/язык везде, независимо от структуры проекта и его компонентов, без дополнительных сложностей с зоопарком технологий и зависимостей.

Сейчас, в свете присходящего с Qt, придётся менять подход...


Читать дальше →

Большое тестирование процессоров различных архитектур

Reading time19 min
Views38K

Предисловие


Попытка сравнить производительность процессоров на разнородных архитектурах x86-64, e2k (Эльбрус), mips и arm.


Все тесты написаны на языке C (взяты из исходных кодов, которые я не модифицировал и не оптимизировал) и компилируются под конкретную архитектуру с использованием конкретного компилятора для данной архитектуры и тесты производятся на различных дистрибутивах операционных систем на ядре Linux. На результаты может влиять как тип так и версия компилятора, а также режим оптимизаций. Хотя даже таким способом можно примерно сравнить производительность процессоров на разных архитектурах.


P.S.: Знаю, что большинство тестов для очень старых компьютеров, но они работают везде. Что даже очень неплохо.

Читать дальше →

C# 8 и null-допустимость. Как нам с этим жить

Reading time10 min
Views14K
Здравствуйте, коллеги! Пришло время упомянуть, что у нас в планах — выпуск фундаментальной книги Иэна Гриффитса по C#8:


Тем временем, в своем блоге автор опубликовал две взаимосвязанные статьи, в которых рассматривает тонкости таких новых явлений, как «nullability», «null-obliviousness» и «null-awareness». Мы перевели обе статьи под одним заголовком и предлагаем их обсудить.
Читать дальше →

Rust для Java разработчиков

Reading time15 min
Views16K

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

Читать дальше →

Кругом сплошные плюсы: топ-10 докладов конференции C++ Russia 2019 Piter

Reading time3 min
Views9.6K
C++ требует серьезного подхода. Поэтому мы верим, что большинство плюсовиков — серьезные профессионалы, и если на праздниках требуется сидеть дома — они не будут выбираться на шашлыки тайными тропами, а предпочтут в это время расти как специалисты. И таким профессионалам на этих праздниках пригодится наш топ-10 докладов с конференции C++ Russia 2019 Piter:


Список известных SMR дисков

Reading time7 min
Views127K
Англоязычный оригинал опубликован в форуме ixsystems и вряд ли широко известен всем, кто может столкнуться с проблемой. Хотя оригинал датирован 16 апреля 2020, он ссылается в том числе на более поздние публикации, то есть обновлялся.

Жесткие диски, которые записывают данные в перекрывающихся,
Читать дальше →

Опять про BLE, температуру и датчики Xiaomi

Reading time7 min
Views23K

Не так давно, удалось мне обзавестись известными датчиками температуры и влажности от Xiaomi. Эти датчики заслуженно приобрели широкую известность, так как при своей достаточно низкой цене, достаточно удобны в использовании, а также умеют передавать свои показания по протоколу BLE в тот же Mi Home. К тому же весь Интернет завален вариантами подключения этих сенсоров к Home Assistant, MajorDoMo и другим системам.


Но мне этого показалось мало и захотелось все сделать по-своему (не спрашивайте меня зачем и почему, просто захотелось). А именно, захотелось прочитать данные с датчиков, которые развешены по всему дому и как-нибудь интересно с ними поработать. Потому я покопался в своих электронных закромах и нашел там модуль ESP32.



Быстрое гугление показало: ESP32 — это то, что мне нужно. Он умеет Bluetooth и WiFi, программируется из Arduino IDE и позволит мне получить показания с датчика и отправить их по WiFi куда нужно (хоть на домашний сервер, хоть в облако). К тому же, очень быстро нашелся простой и понятный туториал, который как раз решал мою задачу. Но как выяснилось, не все так просто...

Читать дальше →

Qbs: Шаблон настольного приложения

Reading time9 min
Views6K
Введение

Давным давно, когда Qbs только вышла, я начинал писать эту статью, но так её и не закончил… Кажется, пришло время ее дописать. С тех пор многое изменилось, у Qbs наконец-то появилась документация, но примеров (к сожалению) в ней по-прежнему не так много. В этой статье я расскажу как написать шаблон (почти) полноценного десктопного приложения с использованием Qt.Widgets. По-хорошему, было бы неплохо сделать это на чистом C++, но я слишком ленив, чтобы сделать тестовый UI с помощью нативного АПИ под 3 платформы. Для примера я написал простое приложение ("рыбу"), состоящее из основного приложения, библиотеки и плагина, которое мы и будем разбирать


Кого заинтересовало, добро пожаловать под кат.

Читать дальше →

Руководство Google по стилю в C++. Часть 10

Reading time15 min
Views27K
Часть 1. Вступление

Часть 9. Комментарии
Часть 10. Форматирование
Часть 11. Исключения из правил


Эта статья является переводом части руководства Google по стилю в C++ на русский язык.
Исходная статья (fork на github), обновляемый перевод.
Читать дальше →

Двигатель вашего инди проекта. Краткий обзор доступных игровых движков

Reading time4 min
Views11K
Как известно создание игр не самое простоё занятие. Чем больше мы узнаем об этом процессе, тем более невозможным кажется то, что это работает.


«Самый полезный найденный мною способ — подумать об игре как о психически больном пациенте. Она полностью потеряла разум, поэтому каждая написанная вами инструкция будет исполнена, как какая-то нелепая чушь.» Том Фрэнсис, создатель Gunpoint.

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

Rust. Borrow checker через итераторы

Reading time8 min
Views11K
Привет, Хабр!

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

Последнее время scala является моим основным языком, так что сравнения будут с ней, но их не много и все интуитивно понятные, без магии :)

Статья рассчитана на тех кто что-то слышал о rust'e, но в детали не вдавался.


фотографии взяты отсюда и отсюда
Читать дальше →

Information

Rating
Does not participate
Location
Россия
Registered
Activity