Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
#Круги добра
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Герои Войны - микс стратегии и РПГ. Собери лучшую армию и победи всех врагов. В игре 7 различных режимов - как для любителей PvE, так и PvP.

Герои Войны

Стратегии, Мидкорные, Экшены

Играть

Топ прошлой недели

  • SpongeGod SpongeGod 1 пост
  • Uncleyogurt007 Uncleyogurt007 9 постов
  • ZaTaS ZaTaS 3 поста
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
22
trapwalker
trapwalker
Умный дом, проекты, философия ИИ, ностальгия, ПУТЕШЕСТВИЯ, футурология, критическое мышление, научпоп, выживалово, геймдев, просто о сложном
Серия У меня вопрос
11 месяцев назад

Ответ на пост «Она в воде, но жива!»⁠⁠1

Вопрос @LizaAlert по методике применения нейросетей для поиска.

А можно подробный пост как запрягаете и какую нейросеть для поиска потеряшек на местности? Она в опенсорсе где-то лежит? Где её запускаете? Примеры фоток с положительным откликом сети (в сыром виде, как есть). Как именуются фото, сохраняется ли в них EXIF с локацией, или как там геолокация отражается? Какие типовые объёмы этих снимков с одного полёта?

Нельзя это в виде сервиса сделать, чтоб через инет туда фотки лить, а она их отсматривала бы?

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

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

Главное, что такие вещи можно автоматизировать так, что ничего не потеряется, а заливаться и проверяться снимки начнут настолько рано, насколько это возможно.

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

Это решаемая задача.

Я понимаю, что у вас наверняка всем этим занимаются умные ребята, но всегда есть способы немного (или много) улучшить процессы, что-то где-то оптимизировать, автоматизировать, ускорить, сделать более удобным... Почему не решать это в рамках opensource?

И да, я понимаю, что у вас есть там профильные форумы про всё это, волонтёры, который занимаются разработкой, крутые ребята, которые знают куда нейросети запрягать. Но раз уж вы приходите на такую площадку как Пикабу, то хорошо бы прислушиваться к аудитории этой площадки. У многих возникает ощущение недосказанности от ваших отчетов о поиске. Вы этот негатив могли бы перекрывать просто и элегантно - просто добавив чуть-чуть подробностей. Без персональных данных, ничего лишнего, просто факты из отчета. У вас же есть подробные внутренние отчеты? Да, я понимаю, что уйдут одни вопрос, придут другие, и на каждый не ответишь, а вы здесь просто хотите популяризовать участив поисках, привлечь к себе людей, которые тоже будут гореть в теме. Так вот же, я тоже об этом. Людям надо не фантик показать, их можно макнуть в ту лужу с подробностями, понимаете? Это наверняка многих подстегнёт к действию. Не всех, конечно. Кому-то нужно лишь побухтеть в комментах и выразить недовольство. Ничего страшного.

Ну да это не суть. Напишите про opensource-проекты, которые помогают вашей работе. Опишите инструментарий хотя бы немного, опешите методологию, хотя бы поверхностно (с соответствующими упоминаниями). Да, все понимают, что там всё безумно сложно и всё не передашь даже серией статей где угодно. Никто не заставляет передать ВСЁ. Вы же решаете где надо остановиться в подробностях о поиске?

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

Показать полностью
[моё] Спасение Лиза Алерт Добровольцы Поиск людей Длиннопост Квадрокоптер Нейронные сети Ответ на пост Идея Open Source Текст
7
8
empenoso
empenoso
11 месяцев назад
Физкультура и Спорт

Как я улучшил своё взаимодействие с фитнес-клубом World Class, найдя и используя их API⁠⁠

Уже полгода хожу в фитнес клуб World Class или как пишут в самом клубе - являюсь его резидентом. Выбрал этот клуб в основном из-за наличия в нём бассейна. Потом заинтересовался групповыми программами и частенько хожу на сайкл тренировки - это тренировки на специальном велотренажере.

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

Как я улучшил своё взаимодействие с фитнес-клубом World Class, найдя и используя их API Программирование, API, Программист, Open Source, Длиннопост

Автоматически созданное при помощи скрипта событие в моём гугл календаре

В какой-то момент мне это надоело и я подумал, а не написать ли скрипт, который раз в неделю будет ходить на их сайт с расписанием и добавлять в мой календарь занятия на сайкле автоматически?

Некоторым препятствием стало то, что сайт World Class динамически загружает контент с помощью JavaScript после начальной загрузки страницы. Зато нашлась конечная точка API и теперь занятия по сайклу каждый понедельник ночью добавляются в мой календарь за 3 секунды работы скрипта вместо 15 минут моей жизни каждую неделю.

Веб-сайт с общедоступным расписанием клуба World Class

Как я улучшил своё взаимодействие с фитнес-клубом World Class, найдя и используя их API Программирование, API, Программист, Open Source, Длиннопост

Обычно расписание приветствует вот так

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

Конечная точка API - это определенный URL-адрес, который позволяет внешним приложениям взаимодействовать с ним. API позволяют различным программным системам взаимодействовать друг с другом, отправляя запросы и получая ответы.

Когда взаимодействую с сайтом, который динамически загружает контент, то сайт часто запрашивает данные со своего сервера с помощью API. Сервер обрабатывает запрос и возвращает необходимые данные, которые затем отображаются на веб-странице. В контексте фитнес-клуба World Class конечной точкой API будет определенный URL-адрес, который предоставляет данные о расписании занятий. Отправив запрос на эту конечную точку, можно получить данные о расписании напрямую, минуя необходимость вручную перемещаться по сайту.

Поворотный момент и техническая проблема

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

https://my.worldclass.ru/scheduling?clubs=d35ba5fc-1f7e-11ec-b664-50e548298f06

Где вместо d35ba5fc-1f7e-11ec-b664-50e548298f06 должен стоять идентификатор вашего клуба. Выше это идентификатор клуба в городе Перми.

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

Как я улучшил своё взаимодействие с фитнес-клубом World Class, найдя и используя их API Программирование, API, Программист, Open Source, Длиннопост

Список доступных клубов

Поскольку World Class динамически загружает расписание с помощью JavaScript после начальной загрузки страницы, то стало некоторой проблемой найти конечную точка API и обратиться к ней за этим общедоступным и свободно опубликованным в интернете расписанием.

ICG Color Cycle (сайкл)

В пермском клубе World Class не обязательно записываться на занятия по сайклу заранее - достаточно прийти примерно за полчаса до занятия и взять на входе черную карточку для участия - места есть до тех пор пока карточки не закончатся. Правда бывают приходят и те кто записались онлайн, но карточку не взяли - просто не знали про это и мест не хватает. Это некоторая путаница.

Как я улучшил своё взаимодействие с фитнес-клубом World Class, найдя и используя их API Программирование, API, Программист, Open Source, Длиннопост

Примерно так выглядят занятия по сайклу

Создание решения

Поскольку я использую Гугл календарь, то написал Google Apps скрипт. Apps Script - платформа на основе JavaScript для быстрой и простой разработки решений.

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

Скрипт работает следующим образом:

  1. Получение расписания: скрипт отправляет запрос в API World Class с идентификатором определенного спортзала. Далее извлекает расписание на следующие семь дней.

  2. Фильтрация соответствующих занятий: после извлечения расписания скрипт отфильтровывает занятия «ICG Color Cycle» и «CORE», которые я хочу посещать. Все дальнейшие действия происходят только для отобранной выборки.

  3. Создание событий календаря: для каждой отфильтрованной тренировки скрипт автоматически создает событие в Google календарь по умолчанию. Каждое событие включает:

  • Название: название тренировки (в моём случае либо «ICG Color Cycle», либо «CORE»).

  • Продолжительность: каждое событие запланировано на один час.

  • Описание: подробное объяснение зачем нужна эта тренировка.

  • Расположение: конкретный адрес клуба World Class, где проходит занятие.

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

Как я улучшил своё взаимодействие с фитнес-клубом World Class, найдя и используя их API Программирование, API, Программист, Open Source, Длиннопост

Файл где можно посмотреть токен, который понадобится для обращения к API

По сути, этот скрипт - инструмент экономии времени для резидентов клуба World Class, которые могут быть уверены, что всегда будут знать когда проходят их любимые занятия.

Версия скрипта полного дня:

function WorldclassAPISchedulingPerm() {

console.log(`Функция WorldclassAPISchedulingPerm начала работу в ${(new Date()).toLocaleString("ru-RU")}`);

const url = 'https://my.worldclass.ru/api/v1/clubs/scheduling';

const currentDate = new Date();

const endDate = new Date(currentDate);

endDate.setDate(currentDate.getDate() + 7);

// Подробное описание: https://pikabu .ru/story/kak_ya_uluchshil_svoyo_vzaimodeystvie_s_fitnesklubom_world_class_naydya_i_ispolzuya_ikh_api_11835205

// Это версия скрипта полного дня

const payload = {

"gymList": [

"d35ba5fc-1f7e-11ec-b664-50e548298f06" // это World Class в Перми

],

"startDate": currentDate.toISOString().split('.')[0],

"endDate": endDate.toISOString().split('.')[0],

"chain": 1,

"token": "70a69ca6-XXXX-XXXX-a975-005056b1372d"

};

const options = {

method: 'post',

contentType: 'application/json',

payload: JSON.stringify(payload),

muteHttpExceptions: true,

headers: {

'brand': 'WorldClass',

'language': 'Ru',

'chain': '1',

'Accept': '*/*',

'Origin': 'https://my.worldclass.ru',

'Referer': 'https://my.worldclass.ru/scheduling?clubs='

},

timeoutSeconds: 30

};

try {

const response = UrlFetchApp.fetch(url, options);

const responseCode = response.getResponseCode();

console.log(`Код ответа: ${responseCode}`);

const responseText = response.getContentText();

const responseData = JSON.parse(responseText); // Разбираем JSON-строку

if (responseCode === 200) {

// Фильтрация для "ICG Color Cycle (сайкл)" и "CORE"

const filteredDates = responseData.data

.filter(item => item.service.name === "ICG Color Cycle (сайкл)" || item.service.name === "CORE")

.map(item => ({

name: item.service.name,

startDate: item.startDate,

employee: item.employee.firstName + " " + item.employee.lastName,

shortDescription: item.service.shortDescription

}));

console.log('Отфильтрованные даты:', filteredDates);

// Создаем события в календаре для каждой отфильтрованной даты

filteredDates.forEach(eventData => {

const startTime = new Date(eventData.startDate);

const endTime = new Date(startTime);

endTime.setHours(startTime.getHours() + 1); // Устанавливаем продолжительность события на 1 час

let eventTitle = `${eventData.name} - ${eventData.employee}`;

let eventDescription = '';

eventDescription = eventData.shortDescription +

'\n\nhttps://my.worldclass.ru/scheduling?clubs=d35ba5fc-1f7e-11ec...' +

'\nСоздано автоматически ' + (new Date()).toLocaleString("ru-RU");

CalendarApp.getDefaultCalendar().createEvent(

eventTitle,

startTime,

endTime, {

description: eventDescription,

location: 'Фитнес клуб World Class, Пермская ул., 33, Пермь, Пермский край, Россия, 614045'

}

);

console.log(`Событие создано для: ${startTime} - ${eventTitle}`);

});

} else {

console.error(`Ошибка: получен статус ${responseCode} с ответом: ${responseText}`);

}

} catch (error) {

console.error('Ошибка запроса:', error.message);

}

console.log(`Функция WorldclassAPISchedulingPerm закончила работу в ${(new Date()).toLocaleString("ru-RU")}`);

}

Как я улучшил своё взаимодействие с фитнес-клубом World Class, найдя и используя их API Программирование, API, Программист, Open Source, Длиннопост

Результат выполнения скрипта

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

Ниже версия скрипта для дневного браслета, когда обязательный выход из зала до 17:00:

// Фильтрация для "ICG Color Cycle (сайкл)" и "CORE", а также по времени начала (до 17:00)

const filteredDates = responseData.data

.filter(item => (item.service.name === "ICG Color Cycle (сайкл)" || item.service.name === "CORE") &&

new Date(item.startDate).getHours() < 17)

.map(item => ({

name: item.service.name,

startDate: item.startDate,

employee: item.employee.firstName + " " + item.employee.lastName,

shortDescription: item.service.shortDescription

}));

console.log('Отфильтрованные даты:', filteredDates);

Как Вы можете воспользоваться этим скриптом?

Если вы новичок и хотите тоже автоматизировать получение определенных занятий, то скрипт Google Apps это мощный инструмент, который может вам помочь:

Шаг 1: Доступ к скрипту Google Apps

  1. Откройте Google Drive: начните с перехода на Google Drive.

  2. Создайте новый скрипт:

  • Нажмите кнопку Создать в верхнем левом углу.

  • Выберите Еще в раскрывающемся меню.

  • Нажмите Скрипт Google Apps. Откроется редактор скриптов Google Apps на новой вкладке.

Шаг 2: Назовите свой проект

  1. Назовите свой скрипт: как только откроется редактор скриптов приложений, вы увидите проект без названия. Нажмите на заголовок (обычно это «Проект без названия») и дайте ему осмысленное имя, например «Расписание World Class».

Шаг 3: Скопируйте код

  1. Удалите код по умолчанию: в редакторе вы увидите код по умолчанию (function myFunction() {}). Вы можете удалить его, чтобы освободить место для нового скрипта.

  2. Скопируйте и вставьте код:

  • Перейдите к статье с кодом скрипта Google Apps.

  • Скопируйте весь скрипт, предоставленный в статье.

  • Вернитесь в редактор скриптов приложений и вставьте код в пустое место.

Шаг 4: Сохраните свой скрипт

  1. Сохраните свою работу: Щелкните значок дискеты или нажмите Ctrl + S (или Cmd + S на Mac), чтобы сохранить свой скрипт.

Шаг 5: Запустите скрипт

  1. Запустите свой скрипт: Чтобы протестировать скрипт, щелкните значок воспроизведения (▶) в верхней части редактора. Если вы запускаете скрипт впервые, Google запросит авторизацию.

  2. Авторизуйте свой скрипт: Следуйте инструкциям, чтобы разрешить скрипту доступ к вашему Google Calendar и другим необходимым службам.

Шаг 6: Проверьте вывод

  1. Проверьте журналы: После запуска скрипта вы можете проверить сообщения журнала, чтобы убедиться, что он работает правильно. Перейдите в Просмотр > Журналы в редакторе скриптов приложений, чтобы увидеть вывод.

Шаг 7: Автоматизируйте его

  1. Установите триггер: если вы хотите, чтобы этот скрипт запускался автоматически через регулярные интервалы, вы можете настроить триггер:

  • Нажмите на значок часов на панели инструментов (Триггеры).

  • Нажмите + Добавить триггер в правом нижнем углу.

  • Установите запуск скрипта еженедельно, например на ночь между понедельником и вторником.

И это все! Вы успешно создали скрипт Google Apps, который автоматизирует добавление расписания в ваш календарь Google.

Результаты

При использовании гугл календаря этот скрипт представляет удобный инструмент который ищет интересующие групповые события и добавляет их автоматически в Ваш собственный Гугл Календарь.

Автор: Михаил Шардин

Показать полностью 6
[моё] Программирование API Программист Open Source Длиннопост
5
zer0hexen
zer0hexen
11 месяцев назад
Лига Сисадминов

Nextcloud как увеличить объем⁠⁠

Не давно узнал, что есть такое опенсорс ПО. И запробовал его. Установил на сервак win клиента, подвезал пару телефонов. На серваке отдал ему папку под 500Гб. И не могу понять почему у меня на акаунте всего 8ГБ. Да я понимаю что там есть палатная подписка за доп.объем. Но читая в саппорт форуме темы, вижу что у комрадов и терабайты и 100ни гигбайт хранилище. Т.е. отличается от тарифа. Значит подняли сами.

Поднято в двух местах. Рабочая часть на win10Ltsc сервак. От туда идет синхра. Отдано 500гб.

Второй поднят (как тестовый на другом компе) на ubuntuserver 20.04.6 на нем же развернута CASAOS и в ней так же поднят Nextcloud . И разницы нет.

что не так я делаю? можно, как-то без оплаты увеличить объем хранилища. Уже базовые 8Гб забиты только синхрой, с одного телефона.

ВСЕ РЕШЕНО. СПАСИБО ВСЕМ КТО ОТВЕТИЛ. ПОМОГЛИ!!

Nextcloud Windows server Open Source Компьютерная помощь Текст
19
93
Admin911GPO
Admin911GPO
11 месяцев назад

Ответ на пост «Сто процентов»⁠⁠3

Ответ на пост «Сто процентов» Айтишники, IT, IT юмор, Разработка, Разработчики, Видео, Вертикальное видео, Open Source, Импортозамещение, Программист, Программирование, Комментарии на Пикабу, Ответ на пост

© #comment_322317431

Показать полностью 1
Айтишники IT IT юмор Разработка Разработчики Видео Вертикальное видео Open Source Импортозамещение Программист Программирование Комментарии на Пикабу Ответ на пост
2
11
mknews
mknews
11 месяцев назад

Замена Neofetch. Утилиты Linux с данными о системе⁠⁠

Вы все видели такие картинки с параметрами системы. Для новичков это Neofetch — утилита командной строки, которая позволяет отображать данные о системе в окне терминала Linux. К сожалению, разработка популярного инструмента прекращена, репозиторий Neofetch заархивирован. Инструмент все еще работает, и доступен в большинстве дистрибутивов, но изменения вносить больше нельзя.

Замена Neofetch. Утилиты Linux с данными о системе Linux, Компьютер, Программа, Open Source, Длиннопост

Существует множество форков и альтернатив, например Fastfetch, описываемая разработчиками как «подобно neofetch, но гораздо быстрее».

Замена Neofetch. Утилиты Linux с данными о системе Linux, Компьютер, Программа, Open Source, Длиннопост

Чтобы установить Fastfetch на дистрибутивы на базе Ubuntu:

sudo add-apt-repository ppa:zhangsongcui3371/fastfetch

sudo apt update

sudo apt install fastfetch

На другие системы Linux, используйте одну из команд:

sudo yum install fastfetch [RHEL/CentOS/Fedora/Alma]

sudo emerge -a sys-apps/fastfetch [Gentoo Linux]

sudo apk add fastfetch [Alpine Linux]

sudo pacman -S fastfetch [Arch Linux]

sudo zypper install fastfetch [OpenSUSE]

sudo pkg install fastfetch [FreeBSD]

Еще есть screenFetch, которая существует дольше, чем Neofetch. Он предоставляет аналогичные возможности отображения системной информации и активно поддерживается.

Замена Neofetch. Утилиты Linux с данными о системе Linux, Компьютер, Программа, Open Source, Длиннопост

Установка:

sudo apt install screenfetch [Debian,Ubuntu,Mint]

sudo yum install screenfetch [RHEL/CentOS/Fedora/Alma]

sudo emerge -a sys-apps/screenfetch [Gentoo Linux]

sudo apk add screenfetch [Alpine Linux]

sudo pacman -S screenfetch [Arch Linux]

sudo zypper install screenfetch [OpenSUSE]

sudo pkg install screenfetch [FreeBSD]

Ну и наконец macchina, она более функциональная и отображает не только системную информацию, но и предоставляет дополнительные сведения, например, информацию о ваших Git-репозиториях.

Замена Neofetch. Утилиты Linux с данными о системе Linux, Компьютер, Программа, Open Source, Длиннопост

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

wget https://github.com/Macchina-CLI/macchina/releases/download/v...

chmod +x macchina-linux-x86_64

./macchina-linux-x86_64

А каким софтом пользуетесь вы?

Вступайте в Linux Club в Telegram

Показать полностью 4
[моё] Linux Компьютер Программа Open Source Длиннопост
17
22
sirDranik
sirDranik
11 месяцев назад

Герои Меча и Магии 2. Игровой движок fheroes2. Обновление 1.1.2⁠⁠

Дорогие поклонники Героев Меча и Магии и проекта fheroes2!

Наша команда рада объявить о выпуске новой версии игрового движка fheroes2 – 1.1.2!

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

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

Герои Меча и Магии 2. Игровой движок fheroes2. Обновление 1.1.2 Герои меча и магии, Герои, Стратегия, Ретро-игры, HOMM III, Homm II, Open Source, Инди, Пошаговая стратегия, Игры, Компьютерные игры, Игры на Android, Обновление, Моды, Hota, Длиннопост

Теперь при создании карт можно определить какие из игроков будут в союзе между собой.

Также были добавлены новые объекты, такие как горизонтально направленные дельты рек.

Герои Меча и Магии 2. Игровой движок fheroes2. Обновление 1.1.2 Герои меча и магии, Герои, Стратегия, Ретро-игры, HOMM III, Homm II, Open Source, Инди, Пошаговая стратегия, Игры, Компьютерные игры, Игры на Android, Обновление, Моды, Hota, Длиннопост

В оригинальной игре были только дельты направленные вверх или вниз.

Стараниями команды ИИ развивается, и теперь компьютерные игроки будут лучше защищать свои замки. Также они будут делать более разумный выбор при повышении навыков героев. Кроме того, герои ИИ с ограниченной областью патрулирования теперь точно соблюдают границы данной области, и, что самое важное, команда аннулировала]большинство бонусов для ИИ. Это значит, что теперь ИИ и обычные игроки-люди играют в равных условиях — больше никаких несправедливых преимуществ.

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

Герои Меча и Магии 2. Игровой движок fheroes2. Обновление 1.1.2 Герои меча и магии, Герои, Стратегия, Ретро-игры, HOMM III, Homm II, Open Source, Инди, Пошаговая стратегия, Игры, Компьютерные игры, Игры на Android, Обновление, Моды, Hota, Длиннопост

Виртуальная клавиатура позволяет играть на устройствах без физической клавиатуры.

Кроме того, мы ускорили преобразование MIDI музыки при чтении её из ресурсов игры, улучшили поддержку 3D-аудио и обновили несколько переводов.

Всего с момента последнего выпуска было закрыто более 40 тем с проблемами или улучшениями проекта.

Надеемся, вам понравится играть с обновленной версией движка fheroes2!

Руководство по установке. Для полноценной игры небходима лицензионная копия оригинальных Героев 2.

Помочь с осуществлением будущих улучшений игры можно подпиской на Boosty или Patreon.

Показать полностью 3
[моё] Герои меча и магии Герои Стратегия Ретро-игры HOMM III Homm II Open Source Инди Пошаговая стратегия Игры Компьютерные игры Игры на Android Обновление Моды Hota Длиннопост
0
4
rick1177
rick1177
11 месяцев назад

Моментальная синхронизация и бех облаков⁠⁠

На фоне отвратительных моментов различных блокировок и отключения сервисов, приходится изыскивать пути решения проблем и рабочих задач.

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

Открыл для себя приложение SYNCTHING.

Что оно умеет, простыми словами: по торрент логике синхронизировать папки на нескольких машинах прям за мгновения. Есть решение для Windows, Mac, Linux, Android. Для iOS решения от разработчика нет, однако есть сервисы, которые поддерживают функционал (подробности можно найти в документации приложения).

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

В сети есть достаточное количество роликов, которое быстро показывает, как сие настроить.

В общем, не теряйтесь, юзайте, очень удобно.

Windows Linux Android Синхронизация Облачные технологии Сервис Open Source Текст
11
44
neverlene
neverlene
1 год назад
Лига Сисадминов

Как безопасно использовать открытый код и не лишиться прав на ПО⁠⁠

Коллега — юрист ispmanager рассказал, что там с лицензиями на открытый код. Eсли пригодится — забирайте. Рассказывал Олег, редактировала я, но тег «мое» не ставлю =))

«Привет! Я Олег Макаров, ведущий юрист ispmanager. Эта статья будет полезна всем, кто зарабатывает на ПО с открытым кодом. Расскажу, как безопасно работать с лицензиями Open source и что бывает с нарушителями — а уже попадались D-Link и Cisco Systems. Российский разработчик Антон Мамичев выиграл дело о нарушении его авторских прав на открытый код у Veeam Software, дочерней компании Amazon.

Больше всего рискуют разработчики коммерческого кода — умные конкуренты обязательно сделают ревизию кода. Если найдут копилефтную часть, то могут потребовать раскрыть код и сделать его доступным всем. И по закону будут правы. Пострадают все — собственники бизнеса,  разработчики, продакты и юристы.

Что такое копилефт, как его безопасно использовать, какие еще бывают лицензии и каковы условия их использования — ниже подробно обо всем.

Какие вообще бывают лицензии для открытого кода и чем отличаются

Свободные лицензии бывают двух видов. Их главное отличие — в требованиях, как использовать производное ПО.

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

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

Дальше расскажу о самых распростаненных лицензиях и условиях их использования. Данные о долях лицензий на рынке я привел по данным рейтинга Statista.com.

Разрешительные лицензии, их отличия, условия использования и последствия нарушений

Чаще всего на рынке используют три вида разрешительных лицензий:

MIT, «Massachusetts Institute of Technology» — дает возможность свободно использовать, менять и распространять взятое ПО. В 2021 году лицензия MIT занимала самую большую долю рынка Open source — 26%.

Условия использования. Условия обязательные, если взяли код в чистом виде, без переработок. Если вы внесли изменения в Open source компонент кода — укажите в коде, что лицензия и уведомление о правах распространяются только на заимствованную часть.

Нужно включить уведомление об авторском праве и текст лицензии на английском языке:

  • в код — если разделяем свой код и заимствованный;

  • в интерфейс исполняемого файла или файла license в репозитории.

Уведомление об авторском праве выглядит так: Copyright (c) <год> <владельцы прав>

BSD, «Berkeley Software Distribution» — разрешает использовать, менять и распространять взятый код, если вы указываете его авторство. У BSD есть разные виды — например, FreeBSD, OpenBSD, BSD 1-4. Рассмотрю наиболее распространенные — BSD 2 и BSD 3. Они занимают около 7% всех Open source проектов.

Условия использования:

  • Включить информацию об авторском праве в уведомления в интерфейсе исполняемого файла или файла license в репозитории, если код используется в чистом виде.

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

  • Указать в коде, что лицензия и уведомление о правах распространяются только на заимствованную часть кода — как и в лицензии MIT.

  • Только для BSD 3: не использовать имена авторов ПО и разработчиков, если планируете продвигать ПО в коммерческих целях.

Apache. Разработчик лицензии — Apache Software Foundation. В России Apache считается самой безопасной лицензией — никто не сможет подать в суд, если в коде оригинала окажется запатентованный компонент, потому что по российским законам код не патентуется по п. 5 ст. 1350 ГК РФ.

Рассмотрю версию Apache 2.0 — она занимает 22% всех Open source компонентов.

Условия использования:

  • Вставить текст лицензии на английском языке в дистрибутив или иное заметное пользователю место — например, в репозиторий, UI или в исходный код. Требование нужно выполнить независимо от того, переработали ли вы оригинал или взяли код в чистом виде — в отличие от MIT и BSD.

  • Отметить любыми доступными средствами кусок оригинального кода, в котором были изменения — например, в комментариях к исходному коду.

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

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

  • Вписать текст файла Notice.txt, документа для информации или уведомлений в ПО, в одно из мест: в дистрибутив / в исходный код / в специальную вкладку «О программе» на экране ПО или в другое предназначенное для этого место. Текст файла Notice.txt нужно обязательно включить в ПО, если файл сопровождал исходный код — даже если вы добавили текст лицензии на английском языке в дистрибутив или другое место.

Что будет, если нарушить условия разрешительных лицензий. Компанию или разработчика могут обвинить в незаконном использовании заимствованного ПО и подать в суд за компенсацией по нарушению авторских прав. Ее сумма зависит от масштабов бизнеса правообладателя и от того, как именно использовали его ПО. В РФ подобной судебной практики нет, да и за рубежом я не видел громких дел, связанных с нарушением требований разрешительных лицензий — обычно все можно урегулировать в досудебном порядке. Но лучше максимально обезопасить себя и выполнить все требования.

Копилефтные лицензии — когда подойдут, условия использования, последствия нарушений

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

Чаще всего на рынке используют 6 видов копилефтных лицензий:

GNU GPL v3 (General Public License) — разрешает свободно использовать, менять и распространять ПО. Модифицированное ПО можно свободно распространять только под лицензией GPL v3. Условие — ваш продукт с заимствованным кодом должен быть под лицензией оригинала кода — GNU GPL v3. Занимает 16% всех Open source проектов.

Лицензию написали юристы — в GPL v3 подробно «разжевали» терминологию, учли проблему патентов, тивоизации и добавили информацию о последствиях нарушения условий.

→ Тивоизация — ситуация, когда разработчик технически запрещает пользователям менять установленное на устройстве ПО. Например, из-за тивоизации нельзя дорабатывать программы на iPhone — можно использовать только ПО из App Store. Термин назвали в честь цифрового видеоплеера Tivo, который запрещал модифицировать установленное на нем ПО. Лицензия GPL v3 пресекла тивоизацию для бытовых товаров, но сохранила запрет на модификацию для важных устройств, где это критично — например, медицинских приборов и аппаратов для голосования.

Условия использования:

  • Включить в UI и в код уведомление об авторском праве, праве на патенты и товарные знаки. Условие актуально, даже если заимствованный код не менялся.

  • Включить текст лицензии на английском языке в уведомления в интерфейсе исполняемого файла, в файл license в репозитории. А еще — ссылку на текст лицензии, если в ПО не менялся исходный код.

  • Указать в исходном коде, в какую часть внесли изменения, кто их автор и когда поменяли оригинал.

  • Выложить в открытый доступ исходный код программы или информацию, где его можно получить. Требование нужно соблюдать, если вы доработали и продаете ПО в объектном коде. Не касается ситуации, когда производное ПО распространяется по SaaS-модели — без физического устройства, в облачном формате.

  • Предоставить неограниченному кругу лиц права на использование патента, если он есть в производном ПО.

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

GPL v2 — похожа на GPL v3, но в GPL v2 не учтена проблема тивоизации и патентов. Лицензия писалась разработчиком для разработчиков, поэтому ее текст более понятный и простой. Занимает 10% рынка Open source.

Условия использования:

  • Включить в UI и в код уведомление об авторском праве.

  • Добавить текст лицензии на английском языке в уведомления в интерфейсе исполняемого файла, в файл license в репозитории. А еще — ссылку на текст лицензии, если в ПО не менялся исходный код.

  • Указать в исходном коде, в какую часть внесли изменения, кто их автор и когда поменяли оригинал.

  • Выложить в открытый доступ исходный код программы или информацию, где его можно получить. Требование нужно соблюдать, если вы доработали и распространяете объектный код. Не касается ситуации, когда производное ПО распространяется по SaaS-модели — без физического устройства, в облачном формате.

LGPL v2.1 (Lesser GPL), применяется только для лицензирования библиотек и дополняет GPL v2. Доля среди всех Open source проектов — 6%.

Условия использования:

  • Отметить измененную часть кода, если была модификации библиотеки, указать авторов и дату изменений.

  • Дать пользователю вашего ПО инструменты модификации «втянутой» библиотеки. Запрещено ограничивать право на модификацию соглашением с пользователем (EULA). Это требование касается только статического линкования — «втягивания» кода библиотеки в ваше ПО. Для динамического линкования, когда библиотека не «втягивается» в код, ограничений нет.

AGPL (Affero General Public License) — содержит такие же положения, как GPL v3 и GPL v2. Единственное отличие — лицензия касается и SaaS решений, когда производное ПО распространяется в облачном формате, без физического устройства.

Условия использования — те же, что для GPL v3 и GPL v2.

Microsoft Public License (Ms-PL) — лицензия Microsoft для распространения исходного кода своих проектов. Не вынуждает раскрывать исходный код программы — достаточно распространять производный код под лицензией MPL. Используется в 3% всех Open source проектов.

Условия использования:

  • Распространять ПО с MPL-компонентами в исходном коде только под этой же лицензией.

  • Распространять ПО с компонентами под MPL в объектном коде можно только с лицензией, по условиям которой не нужно раскрывать исходный код ПО.

    Невозможно не противоречить MPL с классической проприетарной лицензией, потому что она предполагает сокрытие кода исходного и распространяется только в обьектном. Как вариант, можно разделить в коде условия для «своего» и свободного ПО.

  • Предоставить неограниченному кругу лиц права на использование патента, если он есть в производном ПО.

  • Не использовать товарные знаки и имена авторов в производном ПО.

Eclipse Public License v.1 — единственная лицензия, которая прямо разрешает коммерческое использование в определенных случаях. Используется для продуктов компании Eclipse Foundation — разработчика одноименной среды разработки IDE. Занимает всего 1% сферы Open source.

Условия использования похожи на MPL, но обязывают включить в текст вашей лицензии положения для охраны авторов оригинала от любых претензий третьих лиц и сведения, как получить исходный код производной программы. Важно оградить авторов Open source ПО от претензий третьих лиц, если ПО используется в коммерческих целях. Если возникнут проблемы, то придется отвечать на претензии самостоятельно.

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

Вот несколько примеров из судебной практики.

Германия. Юрист-программист Харальд Велте в проекте gpl-violations.org успешно засуживал компании, которые попадались на нарушении условий GPL. Например, программист подал иск на D-Link — в сентябре 2006 года Мюнхенский суд подтвердил, что компания нарушила условия GPL и обязал D-Link предоставить исходный код и покрыть судебные издержки.

США. Free Software Foundation и Artiflex удалось через суд принудить Cisco Systems, Palm, Inc., раскрыть исходный код их ПО с GPL-компонентами кода.

Россия — дело Антона Мамичева против Veeam Software. Компания удалила его имя из программного кода и использовала программу в коммерческих целях. В ответ в ходе судебных разбирательств Антона обвинили, что он нарушил условия лицензии GNU GPL v2 и поэтому не имеет право защищать свои авторские права. После 7-летних разбирательств Антону удалось доказать, что даже если нарушены условия копилефтной GPL-лицензии, разработчик не теряет права на защиту своего ПО.

Вот некоторые выводы, которые Антон Мамичев сформулировал из своего опыта судебных разбирательств:

  • Копилефтные лицензии очень опасны для проприетарных продуктов, даже не подпадающих под ограничения.

  • Решения судов полностью непредсказуемы, поэтому нужно избегать самого предмета спора.

  • Десять раз подумайте об использовании копилефтных лицензий наподобие GNU GPL.

Все самое важное о лицензиях Open source коротко

Подойдут для коммерческих целей все разрешительные лицензии— например, MIT, BSD, Apache. Они позволяют распространять ПО как угодно — нужно только указать в коде информацию о лицензии и разделить, какой кусок кода скопировали, а какой написали самостоятельно. Самая безопасная для РФ разрешительная лицензия — Apache, защищает от судебных исков, если в коде был запатентованный компонент.

Не подойдут для коммерческих целей большиство копилефтных лицензий — по их условиям нужно распространять модифицированное ПО. Важно, чтобы ваши наработки были открытые и бесплатные для других пользователей. Единственная копилефтная лицензия, которую можно использовать в коммерческих целях — Eclipse Public License v.1. Важно — на все претензии к ПО с такой лицензией придется отвечать самостоятельно.

Три главных мысли на тему Open source:

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

Штрафы, иски, потеря прав на ПО — возможные последствия нарушения условий лицензий. Сумма компенсаций зависит от того, насколько крупная компания, права которой вы нарушили.

Если нужно запретить пользователям менять ПО на устройстве, то подойдут копилефтные лицензии GPL v2, LGLP v2.1 и AGPL».

Первоначально статья опубликована в блоге ispmanager

Показать полностью
IT Linux Open Source Программирование Лицензия Законодательство Текст Длиннопост
19
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии