Музыка
LibGDX_Logo

Пишем игры на Java: библиотека LibGDX

Познакомился с любопытной разработкой — библиотекой LibGDX для Java. Она представляет собой игровой «движок», облегчающий создание компьютерных игр. Конечно, проект куда более скромный, чем такие гиганты как Unity и Unreal Engine. Тем не менее, с его участием разрабатываются в том числе и коммерчески-успешные (пусть и небольшие) игры, которые, например, продаются в Steam или Google Play. Среди подобных проектов можно выделить, например, карточный рогалик Slay the spire, FTL-вариация Space Heaven или клон знаменитой Цивилизации для Android — проект unCiv. На сайте представлена своеобразная «витрина» таких игр.


compare_logo2

Найдите 10 отличий (инструменты сравнения)

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

Конфигуратор

Самый доступный для нас инструмент. Есть 1С — будет и «сравнивалка». Вызывается из меню Файл — Сравнить. Функционал самый скромный среди всех предложенных инструментов. Тем не менее, у него есть полезная для нас функция: утилита помимо классических текстовых файлов умеет сравнивать и табличные документы. Например, таким способом можно узнать, отличия между конфигурациями, выполнив выгрузку Отчёта по конфигурации (Конфигурация — Отчёт по конфигурации).


Как выполнить код в типовой форме отчёта

Сегодня рассмотрим такую задачу: мы добавили в типовую конфигурацию свой отчёт на СКД, и нам нужно выполнить какие-то действия на форме. По умолчанию, если к отчёту не привязано специфических форм, к нему будет подключена типовая форма Библиотеки Стандартных Подсистем (она называется ФормаОтчета и находится в списке общих форм).

ReportCurrency (MetaData)

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


git

Git commit

«Just for fun» — Линус Торвальдс

 

Имя Линуса Торвальдса известно всем, кто хоть как-то имеет отношение к IT. Этот человек дважды изменил отрасль. Первый раз, конечно же, когда создал операционную систему Linux, которая стала стандартом на серверах и всё чаще используется на десктопах. Однако, мало кто знает о втором достижении Торвальдса — создании Git.

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

Однако, среди программистов навык работы с Git наиболее востребован. Неделю назад наткнулся на качественный обучающий курс. Посему и публикую ссылку на него (плейлист в YouTube):

 

 


java

Ещё кофе? (разработка бота для BlackJack на Java)

Некоторое время назад начал изучать Java. Кто не знает — язык программирования от Sun, ныне им владеет Oracle. С первых дней инструмент порадовал своей мощью. В первую очередь продвинутыми средствами объектно-ориентированного программирования. Всё строго, точно и функционально.

Позанимавшись немного с самоучителем, я решил сделать небольшой проект. В образовательных целях. Задачу поставил себе так: написать самообучающийся бот для игры в BlackJack. «Мозгами» боту служит искусственная нейронная сеть, привязанная к каждому из виртуальных картёжников. На вход сети подаём сигналы об имеющихся на руках у игрока картах. Выход ещё более простой — решение взять новую карту или остановиться. Ну и несколько скрытых полносвязных слоёв, где и происходит вся «магия». Обучать агентов будем, используя генетические алгоритмы, заставляя многократно играть с себе подобными.


СКД Лого

Программный вывод СКД

Система Компоновки Данных (СКД) — инструмент, заменивший собой построитель отчётов в 1С:Предприятие версии 8.1. Позволяет гибко компоновать, структурировать и выводить разрозненные данные на форму или в программную коллекцию. Быстро создать отчёт на СКД можно буквально в несколько щелчков мышью, воспользовавшись встроенным мастером в платформе для объекта метаданных Отчёт.

Но как быть, если требуется вывести данные, вне Отчёта? Встроенный язык 1С:Предприятия предлагает гибкие (и достаточно сложные) API для взаимодействия с объектами СКД. Однако, часто задача стоит в простом выводе на форму документа на СКД, задав разве что парочку параметров. Просто вывести. Хотелось бы, чтобы это делалось одной строкой кода, разбираться в перипетиях объектов нет ни сил, ни желания. Предлагаю готовый код для этого с кратким примером.


Условное оформление с группировкой в 1С

Сегодня рассмотрим такую задачу: нам нужно на форме программно установить условное оформление, при этом объединив условия в логические группы.

Постановка

Для примера, предположим, что у нас есть список контрагентов. Каждый контрагент имеет заполненные поля Задолженность и Уровень риска. Задолженность отражает текущий уровень дебиторской задолженности (в рублях) перед нашей компанией. Уровень риска (варианты: Низкий, Средний, Высокий), в свою очередь, отражает уровень риска проведения сделок с данным контрагентом. Требуется выделить красным те из них, которые имеют задолженность свыше 1 миллиона рублей, либо чей уровень риска оценивается как Высокий.

Визуальная настройка

Для начала попытаемся решить задачу с помощью визуальной настройки условного оформления. Для этого выбираем интересующую форму и открываем ссылку УсловноеОформление в Конфигураторе. Задаём Отбор, Оформление и выбираем Оформляемые поля.


Глубокие мечты

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

DeepDream

Некоторое время назад я стал увлекаться искусственным интеллектом и нейронными сетями. Среди них есть и так называемые «мечтающие сети». Одна из реализаций носит название «DeepDream» . Принцип работы примерно следующий: Имеется нейронная сеть, натренированная на наборе ImageNet, включающий в себя около 14 миллионов изображений, разделенных по 21 тысяче категорий. Сети предоставляется какая-то картинка, DeepDream отыскиевает в ней знакомые элементы и «дорисовывает» их, согласно своим представлениям. Получаются своеобразные психоделические картинки. Из побочных эффектов можно отметить большое количество глаз и носов животных в сгенерированных изображениях, что объясняется большим количеством животных в обучающей выборке.


vendor

Современные веяния

Свежий афоризм родился в процессе обсуждения новости об автоматизации одного из банков. Друг иронично обыграл цифровую трансформацию, четвёртую промышленную революцию и тому подобное:

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


Пап, дай порулить Луноход

Мои друзья из родного Стерлитамака, с которыми я когда-то делал warcastle.ru, в минувший вторник выиграли хакатон «Кос Мос Хак» в Москве. Они представили приложение-симулятор вождения Лунохода.

Так, стоп. Что это такое? О чём вообще речь?

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