Search
Write a publication
Pull to refresh
14
-0.4

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

Send message

Если бы языки программирования могли рассказать о себе сами

Reading time3 min
Views12K

Фото Lee Soo hyun

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

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

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

Android в промышленном контроллере

Reading time7 min
Views5.1K
При любой инженерной работе, мысль движется так, чтобы применить в разработке наиболее подходящие одновременно по всем параметрам решения. А в промышленности, где требуется автоматизация, молчаливый контроль каких-то процессов, вмешательство человека — даже нежелательно.

Т.е. если нужно бесконтактным способом контролировать какие-то объекты в промышленных цехах, без длиннющих проводов собирать статистику в базу данных для анализа, то почему бы и не попробовать всем уже давно привычные… Android-смартфоны.
Читать дальше →

Повторная проверка Newton Game Dynamics статическим анализатором PVS-Studio

Reading time10 min
Views1.9K

Рисунок 1

Недавно на просторах интернета мной был обнаружен физический движок Newton Game Dynamics. Зная, что в таких проектах обычно большой объём сложного кода, я подумал, что будет интересно проверить его статическим анализатором PVS-Studio. Мой энтузиазм ещё больше подстегнуло то, что мой коллега Андрей Карпов уже проверял данный проект в 2014 году, а значит, это ещё и хорошая возможность продемонстрировать развитие нашего анализатора за последние шесть лет. Также стоит отметить, что на момент написания статьи последний релиз Newton Game Dynamics датирован 27 февраля 2020 года, то есть данный проект тоже активно развивается последние 6 лет. Таким образом, надеюсь, что помимо нашей команды, данная статья будет интересна и разработчикам движка, которые смогут избавиться от некоторых багов и исправить свой код.
Читать дальше →

Вещи, которые я бы хотел знать до начала разработки собственной игры

Reading time6 min
Views27K


Последние два года я в свободное от основной работы время разрабатывал личный проект — игру, которую выпустил в Steam пару месяцев назад. На протяжении всего процесса я делал много ошибок, и вел записи для своего «прошлого я». Этот список может не относиться ни к вашей игре в частности, ни к вашему движку или языку (я использовал Unity и C#). Но я верю, что кому-то эти советы могут помочь. Поехали.
Читать дальше →

Свой сервер или публичное облако?

Reading time15 min
Views32K
image

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

Ситуации с облаками бывают разными. Например, в одной компании, далёкой от ИТ, несколько лет назад, я с большим трудом убеждал директора вывести пару сервисов в публичное облако, так как содержание штата квалифицированных серверных администраторов только ради сопровождения этих виртуалок никогда не окупилось бы, а эникейщики, обслуживающие персоналки, не совсем подходят для таких задач. Тогда меня не послушали, но затем жизнь безжалостно доказала мою правоту: на имеющийся бюджет толкового специалиста взять не смогли, железа не купили и в итоге это всё крепко прилегло, после чего сервера таки переехали в облако. В другом случае очень крупный оператор связи настойчиво хотел 500 виртуальных машин нашей (уже другой) компании перенести к себе. С парадоксально низкой арендной платой. И тут я уже придерживался прямо противоположной, антиоблачной, позиции. Ведь публичные облака – это отличный инструмент, но, к сожалению, не серебряная пуля. Почему – попробую раскрыть свою точку зрения под катом.
Читать дальше →

Да мой старый laptop в несколько раз мощнее, чем ваш production server

Reading time5 min
Views99K
Именно такие претензии я услышал от наших девелоперов. Самое интересное, что это оказалось правдой, дав начало длительному расследованию. Речь пойдет про SQL servers, которые крутятся у нас на VMware.


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

Discord как корпоративный мессенджер и не только

Level of difficultyMedium
Reading time11 min
Views124K
(Написано в 2020, обновлено в 2023 г.)
Хочу рассказать про использование мессенджера Discord как основного средства коммуникации в команде. Опыт может быть полезен другим командам, использующим бесплатные мессенджеры, а также всем, кто ищет пути повышения эффективности использования мессенджеров.

Discord – программа странная и выдающаяся одновременно. Почему? Хотя бы потому, что про способы работы в Discord получилась целая статья.


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

Самодельный антисептик из того, что есть в аптеке. Делаем спирт из водки без самогонного аппарата дедовским способом

Reading time8 min
Views257K

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


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

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

Цикл уроков по SDL 2.0: урок 5 — Нарезка листа спрайтов

Reading time5 min
Views5.1K
image

От переводчика:

Это продолжение серии переводов туториалов от Twinklebear, в оригинале доступных тут. Перевод отчасти вольный и может содержать незначительные поправки или дополнения от переводчика. Перевод первых двух уроков — за авторством InvalidPointer, а третьего и четвертого — за k1-801.


Список уроков:


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

История жанра roguelike: от Rogue до Binding of Isaac

Reading time29 min
Views26K
image

Отдадим должное игре, ставшей прародительницей целого жанра. Имя ей Rogue.

Распространённость игр Roguelike росла на протяжении всех 40 лет существования жанра, даже несмотря на то, что в нём реализованы идеи, кажущиеся «анафемой» для популярности: высокая степень случайности, ASCII-графика, перманентная смерть (permadeath), огромная сложность и многое другое. Тем не менее, сегодня шагу нельзя ступить, не наткнувшись на игру, на которую по крайней мере не повлияли roguelike.

В духе историй об игровых жанрах (мы уже рассказывали о стратегиях реального времени [перевод], градостроительных играх, шутерах от первого лица [перевод], симуляторах [перевод: первая и вторая части], графических адвенчурах [перевод], гонках на картах и играх с открытым миром [перевод]) давайте теперь начнём разбираться, как мы к этому пришли и что это всё означает. Мы совершим экскурсию по дереву эволюции roguelike, начав с самой Rogue и пройдя весь путь до современных игр с «элементами roguelike».

Но для начала нам нужно ответить на важный вопрос.

Что такое «roguelike»?


Невозможно подобрать точное определение этому термину, кроме его буквального значения («игра наподобие Rogue»). Можно сказать, что roguelike — это путешествия по рандомизированным подземельям почти без сюжета или с полным его отсутствием; игрок сражается и с самим подземельем, и с монстрами внутри, бесконечно повторяя этот процесс, чтобы освоить схемы, содержание и системы, определяющие природу игры, пока не умрёт и не начнёт заново.

Но кое-кто пытался сузить это определение. Можно взять для примера «факторы высокого значения» Берлинской интерпретации, которые были приняты на Международной конференции по разработке roguelike 2008 года (International Roguelike Development Conference 2008). (Да, ежегодно проводится конференция для разработчиков roguelike, а также ещё одна для игроков.)
Читать дальше →

Embox RTOS на Raspberry Pi

Reading time4 min
Views12K
image Привет!

У нас часто спрашивают есть ли в Embox поддержка Raspberry Pi. Да, есть. Описание как запустить теперь тут. В этой статье я хочу чуть подробней об этом рассказать.
Читать дальше →

STM32MP1 — ядра + Linux = идеальный микроконтроллер

Reading time5 min
Views42K
По роду своей деятельности занимаюсь разработкой различных приборов: измерительных, управляющих, контролирующих и т.п. В подавляющем большинстве устройство делится на 2 части:

  1. Требующий больших ресурсов микроконтроллера и не требующий жесткого реального времени графический интерфейс пользователя (GUI).
  2. Потребляющая немного ресурсов и работающая в жестком реальном времени аппаратная часть прибора.

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

Но с появлением у STM новой линейки микроконтроллеров STM32MP1 мои терзания закончились и вот что пока получилось.
Читать дальше →

Программирование видео слоя в Raspberry Pi с использованием DispmanX API

Reading time7 min
Views4.4K

В этой статье я хочу продемонстрировать использование DispmanX API одноплатных компьютеров Raspberry. DispmanX API предоставляет возможность создавать на десктопе Raspberry новые отображаемые слои. Слои висят над слоями. Их можно динамически создавать, удалять, перемещать, их можно масштабировать. При этом, сам видеоконтроллер будет их объединять и отображать на экране монитора. Интересно, что слои могут иметь альфа канал, и тогда, изображения всех слоев будут сами собой смешиваться. Так же, кроме 32-ти двухбитных ARGB слоев можно создавать, например, YUV420 слои, или слои других типов. В Raspberry по умолчанию уже есть два слоя. Самый нижний содержит изображение десктопа. Весь вывод через иксы идет в этот слой. И есть второй, самый верхний слой, в котором живет изображение курсора мыши.

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

Базовый вирус за 20 минут или почему стоит пользоваться антивирусом

Reading time11 min
Views24K
Приветствую.

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

Под катом — пример написания подобного вредоносного ПО и немного мыслей о том — почему это стало настолько доступным.
Читать дальше →

Ваш C# уже «функциональный», просто позвольте ему это

Reading time4 min
Views20K
Привет, Хабр! Представляю вашему вниманию перевод оригинальной статьи «Your C# is already functional, but only if you let it» автора Igal Tabachnik.

Несколько дней назад я написал в Твиттере фрагмент кода C#, реализующий FizzBuzz, используя некоторые из новых «фичи» в C# 8.0 . Твит “стал вирусным”, несколько человек восхищались его лаконичностью и функциональностью, в то время как другие спрашивали меня, почему я не написал его на F#?

Прошло уже более 4 лет с тех пор, как я в последний раз писал на C#, и то, что я обычно использую функциональное программирование, явно повлияло на то, как я пишу код сегодня. Фрагмент, который я написал, кажется очень аккуратным и естественным, однако некоторые люди выразили опасения, что он не похож на код на C#.
«Он выглядит слишком функциональным.» – писали мне они.
В зависимости от того, кого вы спрашиваете, «функциональное программирование» означает разные вещи для разных людей. Но вместо того, чтобы обсуждать семантику, я хотел бы предложить объяснение того, почему эта реализация FizzBuzz кажется функциональной.

15 лучших советов разработчику по настройке быстродействия Oracle APEX

Reading time9 min
Views4.2K
Всем горячий хабрапривет!

Сегодня нашей компании исполняется 28 лет, и в честь этого приятного события мы решили поделиться с вами новым материалом.

Благодарим за помощь с переводом нашего постоянного автора Юрия Пономарева OBIEESupport.

Автор статьи – Мишель Скэмин, основатель и управляющий партнер компании, предоставляющей сервис Reading Rewards. В далеком 2009 году Мишель страдала от того, что ее сыновья 8 и 9 лет слишком мало читали. Книги просто не могли конкурировать с компьютером и видеоиграми, поэтому Мишель со своим мужем решили разработать систему, в которой дети зарабатывали время на компьютерные игры, читая книжки.

Будучи IT-консультантом и разработчиком веб-приложений, Мишель разработала софт, позволяющий детям фиксировать время чтения и просмотра телевизора, а родителям – отслеживать это время. Это и стало началом сервиса Reading Rewards.

А теперь, собственно, статья.
Читать дальше →

Тестируем видеокарты для работы с КОМПАС-3D

Reading time5 min
Views57K
Продолжаем тему железа для САПР. В прошлой статье мы тестировали процессоры при работе в КОМПАС-3D, сегодня речь пойдёт о видеокартах. На связи вновь Станислав Ермохин, руководитель отдела техподдержки и обучения регионального центра АСКОН-Волга.


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

ROS2 vs ROS1.Установка ROS2 на Ubuntu 18.04

Reading time5 min
Views25K
ROS (Robotic operation system) уверенно занимает лидирующие позиции в стандартах робототехники. Говоря словами известного политика, ею уже пользуются «не только лишь все».
В данной статье попробуем взглянуть на следующий этап развития ROS — систему ROS2, подходящую для более «рукастых» разработчиков. Сравним обе системы в общих чертах, а заодно установим ROS2 на систему Ubuntu 18.04.

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

Сравнение D и C++ и Rust на примерах

Reading time8 min
Views37K
Данный пост основывается на Сравнение Rust и С++ на примерах и дополняет приведенные там примеры кодом на D с описанием различий.

Все примеры были собраны с помощью компилятора DMD v2.065 x86_64.
Читать дальше →

Кроссплатформенная разработка мобильных приложений в 2020 году

Reading time7 min
Views51K
Всем привет!

Я – Сергей Якимов, CTO Omega-R, международной компании по разработке и интеграции IT-решений. На базе многолетнего опыта в сфере информационных технологий и экспертизы компании хочу поделиться своим видением настоящего и ближайшего будущего кроссплатформенной разработки мобильных приложений.

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

Information

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