Тоді хіба що через білд сервер.
Колись безкоштовно був доступний Unity Cloud Build, не знаю як зараз з ним справи

2

(18 відповідей, залишених у Інше)

koala написав:

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

Тому я і навів приклад з бібліотекою, яких на гітхабі повно з прикріпленими до них ліцензіями.
Схоже це тяжка доля відкритого коду, якщо так легко можна проігнорувати їх.


Прихований текст
koala написав:

Тільки слово "безпрецедентно", боюся, вживаєте неправильно.

Боюся, вжив його я там спеціально)

3

(18 відповідей, залишених у Інше)

frz написав:

Чи існує поняття оренди ліцензії для домашнього користувача на декілька місяців?

Мабуть сервіси з моделлю підписки якось її реалізують

4

(18 відповідей, залишених у Інше)

koala написав:

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

Якраз хто відповідальний за дотримання ліцензій мене і цікавить (та в який спосіб відбувається контроль за цим).

Ситуація:
Є комерційний продукт у якому використовувалась стороння бібліотека. Проте вимоги ліцензії під якою розповсюджувалась бібліотека не були виконані, та й взагалі відсутні жодні згадки про неї.

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

5

(18 відповідей, залишених у Інше)

Як відбувається перевірка чи під час розробки продукту дотримано вимог відповідно з ліцензіями сторонніх бібліотек які у ньому використовувались?
Програма може реверс інжиніритись, чи код проходить якусь сертифікацію?

6

(14 523 відповідей, залишених у Інше)

adziri написав:

У кого слабкі нерви не дивитися.

Прихований текст
#include <algorithm>
#include <cctype>
#include <iostream>
#include <sstream>
#include <string>
///////////////////////////////////////////////////////////////////////////////
typedef std::string     T_str;
///////////////////////////////////////////////////////////////////////////////
bool    is_correct_num_in_segm
    (
        T_str   const   &   s,
        int                 min,
        int                 max
    )
{
    bool    bool_res{};
 
    try
    {
        auto    num     =   std::stoi(s);
 
        bool_res        =       num     >=  min
                            &&  num     <=  max;
    }
    catch(...)
    {
        bool_res    =   false;
    }
 
    return  bool_res;
}
///////////////////////////////////////////////////////////////////////////////
bool    ip_adr_is_correct( T_str    const   &   s )
{
    const   char    POINT_SYMB      {'.'};
    const   int     NUMBERS_TOTAL   {4};
 
    bool    bool_res    =       s.back()    !=  POINT_SYMB
 
                            &&      std::find_if
                                        (
                                            s.begin     (),
                                            s.end       (),
 
                                            [POINT_SYMB]    ( auto  symb )
                                            {
                                                return      !std::isdigit( symb )
                                                        &&  symb    !=  POINT_SYMB;
                                            }
                                        )
 
                                ==  s.end();
 
    if( bool_res )
    {
        std::istringstream  ssin(s);
 
        int     counter{};
        T_str   num_str;
 
        while   (
                    getline( ssin,  num_str,    POINT_SYMB )
                )
        {
            ++counter;
 
            bool_res    =   counter     ==  NUMBERS_TOTAL
                                ?   is_correct_num_in_segm  ( num_str,  1,  255 )
                                :   is_correct_num_in_segm  ( num_str,  0,  255 );
 
            if( !bool_res )
            {
                break;
            }
        }//while
 
        bool_res    =       bool_res
                        &&  counter     ==  NUMBERS_TOTAL;
    }//if
 
    return  bool_res;
}
///////////////////////////////////////////////////////////////////////////////
int     main()
{
    for(;;)
    {
        T_str   s;
        std::cout   <<  "IP adress: ";
        std::cin    >>  s;
 
        std::cout   <<  "IP adress "
                    <<  s
 
                    <<  (
                            ip_adr_is_correct(s)
                                ?   " is correct"
                                :   " is incorrect"
                        )
 
                    <<  std::endl
                    <<  std::endl
                    <<  std::endl;
    }//for
}

Схоже на результат роботи форматувальника, типу clang-format

7

(2 відповідей, залишених у Обговорення)

Посилання на онлайн інсталятор. Пропустіть крок авторизації та виберіть необхідні вам компоненти.
Це open source версія, якщо плануєте комерційну розробку під lgpl, потрібно буде динамічно прилінкувати бібліотеку.
Якщо для навчання, то просто качайте, а з ліцензіями пізніше розберетесь

8

(7 відповідей, залишених у Python)

P.Y. написав:

(можливо, пан sensei цим псевдокодом умовно позначив якусь послідовність дій, потрібну для досягнення певного результату, або ж крапки слід поміняти на снейк_кейс, камелКейс чи ще якось)

Так, я позначив як добратися до ID відправника в контексті самого Telegram API
update.message.from.id

9

(7 відповідей, залишених у Python)

Залогінених користувачів зберігайте у якійсь структурі, наприклад списку

Надалі коли приходить кожне нове повідомлення перевіряйте чи id користувача, який його надіслав (update.message.from.id) знаходиться у списку залогінених, якщо ні запропонуйте залогінитись

Коли надсилаєте відповідь, то шліть її на ту ж id, яка прийшла у повідомленні - update.message.from.id

10

(6 відповідей, залишених у C++)

adziri написав:

Третє, у вас в коді UB в цьому рядку

m[i]=new int [y];

Нагадайте в чому тут проблема?

Підтримуйте 5.10, щоб позбутись податкового ярма

12

(30 відповідей, залишених у Інше)

Знайомі у залізничному за 6к і знімають. Квартира зі всім необхідним і в пристойному стані. Десь другий третій поверх у хрущовці.

13

(14 відповідей, залишених у Розробка ігор)

Monolith написав:

А що вам заважає рекламувати гру? Зрозумійте мене правильно, ви молодець, але просто видавець бере % за свої послуги, тому він зацікавлений витрачати свої ресурси та час на ті проекти, які точно принесуть гроші. Без образ, але ваша гра мільйони не принесе. Що зробить видавець, чого не можете зробити ви?

Видавець має навички, зв'язки та ресурси для просування продукту. Краще отримати 50% від 1000$ ніж 100% від 100$.
Існують видавці які спеціалізуються на продуктах не найкращого рівня. Отримати копієчку таким чином всяко краще ніж нічого, особливо якщо ти початківець.

14

(8 відповідей, залишених у Python)

Так я з вами і згідний. Код має бути максимально коротким не втрачаючи простоти сприйняття.
Щоб не кидатись з крайності в крайність від надлишкового розжовування до однострічкових рішень

15

(8 відповідей, залишених у Python)

В широкому розумінні красивий код для мене це такий, який максимально легко читається та розуміється.
Рідше так можна назвати якесь елегантне неочевидне рішення.

Супер оптимізаця найчастіше получається прямо протилежна красі, але тому і оптимізувати треба вже по потребі

16

(8 відповідей, залишених у C++)

int const n = 4;
int main (void)
{
int i,n; //тут

проблема в тому, що ви перекрили глобальну константу неініціалізованим значенням
щоб це поправити ви або заберіть оголошення n у main'i, або ж в main'i не просто оголосіть n, а ініціалізуйте його як константу (аналогічно як ви це зробили з глобальним n)

Раджу почитати про оголошення\ініцілазіацію та про області видимості у с++

Ідіть в фізмат

18

(7 відповідей, залишених у Розробка ігор)

FakiNyan написав:

так raycast стосується фізики

підозрюю, що в юніті рейкаст запхали в модуль фізики для оптимізації, щоб не шукати перетин з кожним полігоном меша, а лише з колайдером

19

(11 відповідей, залишених у C++)

дізнайтесь спершу що роблять оператори *(окрім множення) та ++ без прив'язки до ітераторів

20

(8 відповідей, залишених у Інше)

gitlab - хостинг репозиторія + борда для тасків
trello - борда + по першому ж запиту є інтеграція з бітбакетом