Pull to refresh
0
0
Сергѣй Батанов @dmpas

Программист 1С

Send message

Реалистичные тени для roguelike

Reading time 4 min
Views 9.7K
image

Доброго времени, Хабр-сообщество.

Много лет назад, натолкнулся на пост (1). Тогда меня озадачила возможность создать интересные элементы для геймплея в roguelike (2). Допустим противник может находиться за стеной, мы его не видим, пока мы не столкнёмся с ним в зоне прямой видимости. Но более мне по душе ситуация, когда мы, путешествуя по коридорам подземелья, раскрываем особенности расположения объектов постепенно на основе области видимости.
Читать дальше →
Total votes 42: ↑41 and ↓1 +40
Comments 26

Вы не умеете работать с транзакциями

Reading time 11 min
Views 112K


Заголовок вышел броским, но накипело. Сразу скажу, что речь пойдет об 1С. Дорогие 1С-ники, вы не умеете работать с транзакциями и не понимаете что такое исключения. К такому выводу я пришел, просматривая большое количество кода на 1С, рождаемого в дебрях отечественного энтерпрайза. В типовых конфигурациях с этим все достаточно хорошо, но ужасающее количество заказного кода написано некомпетентно с точки зрения работы с базой данных. Вы когда-нибудь видели у себя ошибку "В данной транзакции уже происходили ошибки"? Если да — то заголовок статьи относится и к вам. Давайте под катом разберемся, наконец, что такое транзакции и как правильно с ними обращаться, работая с 1С.

Читать дальше →
Total votes 38: ↑33 and ↓5 +28
Comments 237

Telegram MTPROTO Proxy — всё что мы знаем о нём

Reading time 4 min
Views 278K
image

Сразу после событий с блокировками Telegram в Иране и России, в бета-версиях мессенджера начал появлятся новый тип Proxy, а если быть точным, новый протокол — MTProto Proxy.

Этот протокол был создан командой Telegram для решения проблем обхода блокировок, но так ли он хорош?
Читать дальше →
Total votes 69: ↑60 and ↓9 +51
Comments 166

Dive into Ethereum

Reading time 14 min
Views 116K

Сегодня платформа Ethereum стала одним из самых узнаваемых брендов блокчейн сферы, вплотную приблизившись по популярности (и капитализации) к Bitcoin. Но из-за отсутствия "полноценного" рускоязычного гайда, отечественные разработчики все еще не очень понимают, что это за зверь и как с ним работать. Поэтому в данной статье я попытался максимально подробно охватить все аспекты разработки умных контрактов под Ethereum.


Я расскажу про инструменты разработки, сам ЯП, процесс добавления UI и еще много интересного. В конечном итоге мы получим обычный сайт-визитку, но "под капотом" он будет работать на умных контрактах Ethereum. Кого заинтересовало — прошу под кат.


preview


Читать дальше →
Total votes 18: ↑16 and ↓2 +14
Comments 12

Заделываем дыры в сервере приложений 1С и вокруг него

Reading time 5 min
Views 62K


В сегодняшней статье я расскажу об уязвимостях сервера 1С в корпоративной сети.


Как показала практика, в инсталляциях с 1С все допускают одни и те же ошибки разной степени серьезности. Я не буду касаться очевидных вещей вроде установки обновлений, но пройдусь по специфике работы сервера приложений под Windows. Например, по возможности бесконтрольно манипулировать базами Microsoft SQL с помощью инструментов 1С.

Читать дальше →
Total votes 22: ↑20 and ↓2 +18
Comments 96

Релиз первой беты кросс-платформенного XAML UI-тулкита Avalonia

Reading time 6 min
Views 22K

Состоялся релиз первой бета-версии Авалонии.


Avalonia — кроссплатформенный .NET UI-тулкит, вдохновлённый технологиями WPF и распространяемый под лицензией MIT. Он полностью поддерживает .NET Core 2.0, XAML, дата-биндинги, lookless-контролы и многое другое. Avalonia позволяет писать на C# приложения под Windows, Linux и Mac OS X. Возможность запуска на iOS и Android находится в экспериментальном состоянии.



Данная версия стабильна и имеет полное право называться бетой: тулкит не разваливается в руках и имеет приличный базовый набор контролов (см. видео). На нём создано два достаточно больших приложения с открытым исходным кодом: AvalonStudio — кроссплатформенная IDE для разработки на C# и C++ и Core2D — редактор 2D-схем и диаграмм.

Total votes 100: ↑97 and ↓3 +94
Comments 77

Измерение и формирование частотных характеристик электрогитар

Reading time 10 min
Views 16K
Поговорим об искусстве. Например, о музыке. Например, о гитарах.

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


Читать дальше →
Total votes 22: ↑22 and ↓0 +22
Comments 9

Что, собственно, такое персональные данные?

Reading time 8 min
Views 27K
image

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

Представьте, что вы нашли трёх друзей, которые родились с вами в один и тот же день. У вас одинаковая дата рождения, одинаковый пол, и вы можете определёнными усилиями сменить имена в рамках закона. В итоге получится четверо одинаковых людей. Будет ли набор «Ф. И. О. + дата рождения + пол» персональными данными?

Ответ, как это ни странно, — да.

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

Ранее в законодательном определении содержалось указание на конкретные примеры, которые каждый в отдельности или в совокупности с другой информацией составляли персональные данные. В текущей же редакции ст. 3 Федерального закона № 152-ФЗ примеров персональных данных не приводится, т. к. законодатель сделал упор на «духе закона», прямо оговорив, что к таким данным относится «любая информация, относящаяся к прямо или косвенно определённому или определяемому физическому лицу», отдав решение этого вопроса на откуп судебной практике.

Поэтому давайте разбирать на примерах, что есть ПДн, а что — нет.
Читать дальше →
Total votes 44: ↑42 and ↓2 +40
Comments 115

Трехэтажные C++ные шаблоны в реализации встраиваемого асинхронного HTTP-сервера с человеческим лицом

Reading time 14 min
Views 16K
Наша команда специализируется на C++ проектах. И нам время от времени приходилось создавать HTTP-точки входа в C++ компоненты. Для чего использовались разные инструменты. Тут были и старые-добрые CGI, и различные встраиваемые библиотеки, как сторонние, так и самописные. Все это работало, но всегда оставалось ощущение, что следовало бы делать такие вещи и проще, и быстрее, и производительнее.

В итоге мы решили, что пора прекращать смотреть по сторонам и нужно попробовать сделать что-то свое, с преферансом и куртизанками кроссплатформенностью, асинхронностью, производительностью и человеческим отношением к конечному пользователю. В результате у нас получилась небольшая C++14 библиотека RESTinio, которая позволяет запустить HTTP-сервер внутри C++ приложения всего несколькими строчками кода. Вот, например, простейший сервер, который на все запросы отвечает «Hello, World»:

#include <restinio/all.hpp>

int main()
{
   restinio::run(
      restinio::on_this_thread()
         .port(8080)
         .address("localhost")
         .request_handler([](auto req) {
            return req->create_response().set_body("Hello, World!").done();
         }));

   return 0;
}

В реализации RESTinio активно используются C++ные шаблоны и об этом хотелось бы сегодня немного поговорить.
Читать дальше →
Total votes 42: ↑41 and ↓1 +40
Comments 19

Технопорно с WebAssembly

Reading time 13 min
Views 9.7K

По просьбам трудящихся, пишу о внутреннем устройстве WebAssembly.


WebAssembly — байткод для стековой виртуальной машины. Значит, для запуска кода такой нужны интерпретатор, стек и хранилище кода. Если мы хотим взаимодействовать с внешним миром, нужен интерфейс к внешней машине, хосту. Дополнительно стандарт определяет две структуры: непрерывную память и таблицы. В версии MVP стандарта их может быть по одной штуке каждого, или не быть вовсе.


В итоге, наш технобордель выглядит так:



  • Интерпретатор
  • Интерфейс к хосту
  • Стек
  • Хранилище кода
  • Память
  • Таблица

Займёмся делом!

Читать дальше →
Total votes 37: ↑36 and ↓1 +35
Comments 11

Визуальное программирование на языке ДРАКОН

Reading time 15 min
Views 55K

Визуальное и текстовое программирование


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


Исторически сложилось, что алгоритмы в программах записываются в виде исходных текстов. Почти никто не ставит под сомнение, что текст — это и есть лучшее средство представления алгоритмов. Алгоритм кодируется внутри функций на языке программирования, например, C или JavaScript. Для тех, кто хочет разобраться в алгоритме с высоты птичьего полёта, предусмотрен псевдокод. Однако с текстом есть серьезные проблемы. Дело в том, что человек не оптимизирован под сплошной текст. Человек оптимизирован на восприятие графики. Текст — это относительно новое изобретение, а вот графическую информацию организмы обрабатывают уже миллионы лет.


Исходя из этого, логично было бы составлять алгоритмы в графическом виде. Посмотрите на инженеров. Они повсеместно используют чертежи. Чем же программисты хуже? Они тоже могли бы составлять чертежи алгоритмов. Некоторые здесь возразят: визуальное программирование якобы неэффективно. UML неудобен, а в блок-схемах легко запутаться. Уж лучше программировать традиционным способом — текстом. В структурном программировании есть хотя бы структура, и она обеспечивает порядок и единообразие. А кроме того, рисовать диаграммы долго и трудно. Печатать быстрее, чем рисовать.


Так что же, программисты обречены всю жизнь работать только с текстом?
Возможно, не всё так плохо. Существуют визуальные языки для представления алгоритмов, в которых тоже есть порядок и структура, например ДРАКОН, BPMN и LML Action Diagrams. Здесь мы рассмотрим визуальный алгоритмический язык ДРАКОН.


Как программировать на языке ДРАКОН


ДРАКОН не является самостоятельным языком программирования. Он работает в паре с

Читать дальше →
Total votes 43: ↑36 and ↓7 +29
Comments 123

Git снизу вверх

Reading time 27 min
Views 125K
У этого перевода не совсем обычная история. Системы контроля версий далеки от моих профессиональных интересов. Для рабочих проектов они мне требовались нечасто, причем, разные, так что, каждый раз, когда возникала такая необходимость, я заново вспоминала, как в них делается та или иная операция. А для личных проектов мне хватало возможностей Dropbox, хранящей историю версий файлов.


Изображение из твиттера @girlie_mac

Но вот однажды я на три незабываемых дня попала в роддом — это иногда случается с женщинами. Из развлечений у меня были новорожденная дочь и телефон с большим экраном. Дочь поначалу развлекала плохо (дома она быстро исправилась), а на телефоне помимо книг и фильмов обнаружился текст «Git from the bottom up», который оказался более чем годным… С тех пор прошло почти 3 года, подросшей дочке уже пора самой начинать использовать Git Git стал мейнстримом, если не сказать стандартом в современной разработке, а я с удивлением обнаружила, что перевода на русский этого чуда, полезного не только начинающим, но и продвинутым пользователям Git, до сих пор нет. Исправляю эту ситуацию.
Читать дальше →
Total votes 104: ↑102 and ↓2 +100
Comments 32

Как мы решили внедрять Помидор в компании

Reading time 4 min
Views 29K
Однажды, мы очень сильно устали от отвлекающих факторов при решении задач и задумали внедрить метод помидора на всю компанию. Пара бессонных ночей, несколько версий — и так родилась инструкция, которой мы хотим с вами поделиться.
Читать дальше →
Total votes 46: ↑39 and ↓7 +32
Comments 50

Стоимость операций в тактах ЦП

Reading time 17 min
Views 71K
Всем доброго! Вот мы и добрались до тематики С++ на наших курсах и по нашей старой доброй традиции делимся тем, что мы нашли достаточно интересным при подготовке программы и то, что будем затрагивать во время обучения.

Инфографика:



Когда нам нужно оптимизировать код, мы должны отпрофилировать его и упростить. Однако, иногда имеет смысл просто узнать приблизительную стоимость некоторых популярных операций, чтобы не делать с самого начала неэффективных вещей (и, надеюсь, не профилировать программу позже).
Читать дальше →
Total votes 100: ↑97 and ↓3 +94
Comments 16

Кроссплатформенное использование классов .Net из неуправляемого кода. Или аналог IDispatch на Linux

Reading time 13 min
Views 7.7K
Будучи программистом 1С, мне часто приходится использовать классы .Net через различные прослойки.

Использование сборок .Net через обертку реализующую IReflect
Для подключения .NET сборок используется «CLR Hosting API»
1C.Net: Предприятие – пример коммерческого успеха .Net-решений в России
Как вызвать метод из C# в 1С?

Но все они используют в той или иной степени COM. С появлением .Net Core стало возможным использование сборок .Net и на любой оси отличной от Windows.

На просторах интернета было найдено решение: Hosting .NET Core Clr in your own process и simpleCoreCLRHost и
initializeCoreCLR createDelegate и
unixinterface

Суть подключения заключается в загрузке библиотеки coreclr.dll, получения нужных интерфейсов и запуск CLR Runtime Host.
Читать дальше →
Total votes 11: ↑7 and ↓4 +3
Comments 9

[UPDATED + Комментарии] Сначала они воруют, а когда ты побеждаешь, то тебя убивают

Reading time 9 min
Views 178K
Кому-то может показаться, что это начало какой-то детской загадки, но на самом деле это реальность. Ответ на нее Департамент Информационных Технологий.

Заранее говорю, что статья является лишь сводом информации. Каждый из вас может сделать собственные выводы.

[UPD]: ДИТ ответил в комментариях
[UPD]: ДИТ прислал официальный ответ
[UPD]: Сайты, которые указывают на связь компании Альтрикс и компании Тактик Лабс почистили, но интернет помнит все
Часть 2. Сначала они воруют, а когда ты побеждаешь, то тебя убивают
Читать дальше →
Total votes 536: ↑521 and ↓15 +506
Comments 659

Комиксы Даниэля Стори

Reading time 1 min
Views 27K
Привет, Хабр! Мы подумали, что если среда — это маленькая пятница, значит можно немножко расслабиться и развлечься. Мы подготовили подборку юмористических IT-комиксов от Даниэля Стори (Daniel Stori). Желаем приятного просмотра.

Arduino-проект


Хайп Detected

«Скоро все будут использовать Docker»
Читать дальше →
Total votes 68: ↑64 and ↓4 +60
Comments 33

Непрерывная интеграция (CI) для GitHub проектов на С/C++ с CMake-сборкой

Reading time 15 min
Views 31K
Continuous Integration

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


Данная статья — инструкция по прикручиванию базовой непрерывной интеграции (build-test-deploy) к гитхабовским C/C++ проектам с CMake сборкой — по непонятным причинам, на Хабре такого до сих пор не проскальзывало. Впрочем, если моё гугл-фу подвело меня, и таки проскальзывало — не беда. Лишний туториал, описывающий всё под несколько другим углом и предостерегающий от неповторимого набора набитых автором шишек, совершенно точно не повредит.

Читать дальше →
Total votes 20: ↑19 and ↓1 +18
Comments 12

Что намазать на зубы, чтобы они не выпали

Reading time 8 min
Views 193K


Хорошо зафиксированный пациент в анестезии не нуждается

По многочисленным просьбам трудящихся сегодня мы будем заниматься очень важными вопросами:


  • Как правильно мазать зубы пальцем?
  • Хорошо ли растворяются пломбы в кислоте?
  • Почему больно, когда сверлят зубы дрелью без анестезии?
  • Зачем мазать зубы зеленкой?
  • Лечение кариеса на дому
  • Глубокое микрофторирование эмали

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

Читать дальше →
Total votes 209: ↑206 and ↓3 +203
Comments 693
1

Information

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