• Как развиваться в программировании не привязываясь к языку?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    писать код. Как бы это банально не звучало, но многое постигается с практикой. Также полезно читать всякие умные статьи с best practies, умные книжки, но писать код важнее.
    maxresdefault.jpg
    Ответ написан
    Комментировать
  • Зачем программисту работать на кого-то?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Потому что для реализации своих коммерческих проектов нужны больше другие навыки, умение продавать, например.
    Ответ написан
    Комментировать
  • Как скрыть ip делая запрос через CURL (PHP)?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Интересует в основном можно ли замаскировать не используя proxy?

    Чтоб пакет вернулся, нужно отправлять через какой-то шлюз, который знает, кому его возвращать, это может быть прокси, vpn или какой-либо ещё туннель, хоть ssh.
    Может изменение хеадера или еще как.

    можно поменять X-Forwarded-For и некоторые неправльно написанные веб приложения будут учитывать именно этот IP, но это скорее исключение, обычно этот баг пихают в CTF'ы, но на практике ни разу не встречал
    Ну а если нельзя то можно ли при запросе использовать какие-то постоянные proxy, желательно конечно бесплатные,

    Да, есть сайты, которые предоставляют такие прокси, а у меня есть программа для сбора проксей по таким сайтам https://github.com/DevAlone/proxy_py много проксей мрут, но есть такие, которые работают стабильно, самая надёжная работает уже 42 дня.
    так же интересует можно ли сделать запрос через сервера tor.

    Да, на ubuntu установить тор `sudo apt install tor`, запустить `sudo service tor start` и использовать его как socks прокси с адресом `localhost:9050`, адрес можно поменять в настройках, также можно поднять несколько таких проксей и у каждой будет свой IP адрес.
    Ответ написан
    Комментировать
  • Что можно придумать для тестового проекта на SPA(angular)?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    - сервис для подбора музыки по вкусам пользователя
    - сервис вопросов и ответов, как тостер, но не только IT
    - админка для какого-нибудь фреймворка, типа как в django, только удобная
    - удобный интерфейс для какого-нибудь open-source почтового сервера
    Ответ написан
    Комментировать
  • Можно ли хранить данные в сервисе Angular 5?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Можно хранить в local storage, но нужно ли зависит от того, что делает приложение и какие это данные, обычно хранят в удалённой базе, а локально кешируют. Локально обычно хранят какие-то не столь важные данные вроде того, сворачивать просмотренные статьи или нет, но возникают сложности синхронизации(синхронизацию браузера не учитываем).
    Где возможно использовать локальное хранилище(хотя лучше хранить на сервере):
    - сохранять просмотренные статьи
    - пользовательские настройки
    Где нужно использовать локальное хранилище:
    - кеширование
    Где не получится использовать локальное хранилище:
    - комментарии, статьи, лайки/дизлайки и всё такое
    Ответ написан
    1 комментарий
  • Насколько сложно создать свой игровой движок?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Насколько сложно создать автомобиль? Если делать всё самому и с нуля, то невероятно сложно, если брать готовые компоненты(двигатель, кузов, etc), то проще. Также это может быть игрушечный автомобиль, это всё упрощает, но также это может быть уменьшенная модель, но максимально реалистичная, тут уже сложнее.

    Вот также нельзя ответить на ваш вопрос, зависит от того, какой движок, для каких игр(2d, 3d, жанр), насколько с нуля он будет создаваться, будет ли поддержка клиент серверных игр и т.д.
    Ответ написан
    Комментировать
  • Как делать проверку на наличие токена?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Я сделал сервис для API и он следит за этим
    https://github.com/DevAlone/learn_these_fucking_wo...
    менюшка меняется в зависимости от условия тут
    https://github.com/DevAlone/learn_these_fucking_wo...
    Он не дёргает хранилище каждый раз, т.к. это будет медленно
    Ответ написан
  • Выделение границ изменения цвета?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Комментировать
  • Какая есть среда разработки на С?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    6 комментариев
  • Как дать доступ к папке группе пользователей?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    chown :GROUP_NAME DIR_NAME
    Ответ написан
    2 комментария
  • Как правильно передавать указатель или ссылку на динамический массив в функцию?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Зачем усложнять? Динамический массив, как у тебя - это указатель на массив указателей, вот его и передавай. А лучше всего конечно vector.
    #include <iostream>
    #include <vector>
    
    const size_t SIZE = 10;
    
    // const нужен для защиты данных от модификации
    template <typename T>
    void print1DArray(const T* array, const size_t size)
    {
        for (size_t i = 0; i < size; ++i) {
            std::cout << array[i] << " ";
            // благодаря const следующая строка не компилируется
            // array[i] = 55;
        }
        std::cout << std::endl;
        std::cout << std::endl;
    }
    
    template <typename T>
    void print2DArray(const T* const* array, const size_t rows, const size_t columns)
    {
        for (size_t y = 0; y < rows; ++y) {
            for (size_t x = 0; x < columns; ++x) {
                std::cout << array[y][x] << " ";
            }
            std::cout << std::endl;
        }
        std::cout << std::endl;
        std::cout << std::endl;
    }
    
    template <typename T>
    void printVector(const std::vector<T>& vector)
    {
        for (const auto& item : vector) {
            std::cout << item << " ";
        }
        std::cout << std::endl;
        std::cout << std::endl;
    }
    
    int main()
    {
        int* array1D = new int[SIZE];
        array1D[0] = 99;
        array1D[1] = 55;
    
        print1DArray(array1D, SIZE);
    
        delete[] array1D;
    
        int** array2D = new int*[SIZE];
        for (size_t i = 0; i < SIZE; ++i) {
            array2D[i] = new int[SIZE * 2];
            for (size_t j = 0; j < SIZE * 2; ++j) {
                array2D[i][j] = i + j;
            }
        }
    
        print2DArray(array2D, SIZE, SIZE * 2);
    
        for (size_t i = 0; i < SIZE; ++i) {
            delete[] array2D[i];
        }
    
        delete[] array2D;
    
        std::vector<int> vector(SIZE, 14);
    
        printVector(vector);
    
        return 0;
    }
    Ответ написан
  • Как найти наибольшее число в двумерном массиве?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    переделал твой код:
    #include <iostream>
    #include <string>
    #include <ctime>
    #include <iomanip> // setw(отступ)
    #include <limits>
    
    int main() {
    
      setlocale(0, "");
      srand(time(NULL));
    
      const size_t ROWSIZE = 3;
      const size_t COLSIZE = 3;
    
      int arrMaxValue = std::numeric_limits<int>::min();
      int arr[ROWSIZE][COLSIZE] = {};
    
      // Заполняем массив случайными числами
      for (size_t rowNum = 0; rowNum < ROWSIZE; rowNum++) {
        std::cout << "Строка " << rowNum + 1 << ": ";
        for (size_t colNum = 0; colNum < COLSIZE; colNum++) {
        	int value = 1 + rand() % 9;
        	arr[rowNum][colNum] = value;
        	if (value > arrMaxValue)
        		arrMaxValue = value;
        	
        	std::cout << std::setw(2) << arr[rowNum][colNum];
        }
        std::cout << std::endl;
      }
      
      std::cout << "Max value is " << arrMaxValue << std::endl;
      
      return 0;
    };
    Ответ написан
    2 комментария
  • Rust использует виртуальную машину?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Нет, не использует
    Ответ написан
    Комментировать
  • Почему в с++ не могут избавиться от переполнения буфера?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Почему в с++ не могут избавиться от переполнения буфера?

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

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

    Так можно не использовать. А вообще из C++ очень и очень неохотно выпиливают устаревший функционал для обратной совместимости.
    Ответ написан
    Комментировать
  • Как настроить трафик через VPN?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    На просторах интернета что то пишут про open vpn. Не вдавался в подробности, так как хотелось бы использовать свой vpn сервер

    Так бери OpenVPN и используй свой сервер. Вот хорошая статья по настройке OpenVPN на сервере(Linux) и клиенте(Linux, Windows) :
    https://habrahabr.ru/post/233971/
    Ответ написан
    2 комментария
  • При копировании данных из одного массива в другой последний элемент копируется с мусорными значениями. Как это устранить?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Добавь в конце строки символ окончания строки(имеет код 0). А ещё копировать лучше с помощью strncpy
    Ответ написан
    8 комментариев
  • Насколько отвратителен данный код?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    - Не кросплатформерно(хотя вряд ли она тут нужна, если используется lxc)
    - если contname или unid принимаются от пользователя, то это серьёзная уязвимость
    - зачем лишняя зависимость, если форматирование есть в std::?
    - константы лучше выносить в конфиг, удобнее редактировать потом

    Да и такое обычно пишут на python/bash, если конечно это не часть проекта, который уже на C++
    Ответ написан
    Комментировать
  • Что должен уметь/чего ожидают от Trainee .NET девелопера?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    подойдут, особенно курсовые, если хорошо сделаны, имеет ценность любой код, лучше чтобы это был завершённые проект с хоть какой-то документацией/инструкцией по использованию.
    Буду очень благодарен, если подкинете идей для реализации каких-то небольших проектов для новичка на C#, которые могли бы показать знание самого языка, основ ооп и т.д и скажем так подойти для резюме.

    Неужели у тебя самого нет программ/библиотек/проектов, которые ты хотел бы реализовать?
    Ответ написан
    Комментировать
  • Какие языки нужны для создания визуальной новеллы?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    вики говорит, что там этот движок: https://ru.wikipedia.org/wiki/Ren%27Py
    Ответ написан
    Комментировать
  • Что означает конструкция typedef void(*func)();?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Создаёт синоним типа, т.е. func теперь - указатель на функцию https://ideone.com/kWPmcd
    P.S. лучше использовать using, у него более человеческий синтаксис https://ideone.com/vwyp8X
    Ответ написан