Задать вопрос
  • Чтение из sh-файла?

    @Alexander1705
    В unix перевод строки обозначаеться символом line feed (lf, \n, 0x0a, 10).
    В windows - последовательностью carriage return + line feed (crlf, \r\n, 0x0d0a, 13 10).

    Bash не распознаёт carriage return и выводит собщение об ошибке.
    Ответ написан
    3 комментария
  • Не подключается OpenVPN (code=10054). Что не так?

    Radjah
    @Radjah
    Проверь каким-нибудь портчекером доступность 1194 UDP снаружи. Сначала.

    Например, portscanner.standingtech.com показывает, что порт закрыт сейчас. Или фаервол или никто его не слушал на момент ответа.
    Ответ написан
    5 комментариев
  • Как проверить подключение интернета ubuntu?

    @pfg21
    ex-турист
    пинг на ип-адреса внутренней сети. пинг до роутера. и смотреть логи что куда дошло и не дошло.
    проблема локальная - причем здесь сервера гугла ??
    Ответ написан
    Комментировать
  • Как лучше всего управлять консольным приложением?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Смотря, что этот скрипт делает. Если он не отключается от консоли и работает только под активным пользователем, можно прямо в консоль команды вводить. Если это сетевой демон, можно отправлять команды через админский порт или unix-сокет, если скрипт работат под nix'ами. Если это web-сервис, то разумно добавить к нему админский web-интерфейс или админские rest-эндпоинты. Если он работает с брокерами очередей, то можно отправлять команды через специальную очередь. И т.д. и т.п.
    Ответ написан
    2 комментария
  • Какие статьи, книги прочитать по многофайловым проектам?

    @Wentixon
    Я бы посоветовал почитать про паттерны проектирования. Точнее не почитать, а действительно разобраться где и как нужно их применять. Лично меня это очень апнуло, при чем не только в ооп, но и вообще, так как с их знанием приходит понимание, что вообще из себя представляет архитектура. Начинаешь уже думать о зонах ответственности, данных которые должны принадлежать этим зонам, а также как это дело правильно связать между собой, чтобы не получилось куча зависимостей. Тогда про файлы/папки речи не будет идти, ты будешь мыслить другими категориями.

    Из книг по этой теме рекомендую эту "Head First. Паттерны проектирования". Вначале может быть очень сложно и ничего непонятно, в таком случае можно отложить ее на несколько дней и вернуться к чтению после практики.

    Но также добавлю, что пока не пройдешь какой то барьер, то такие книги будут не особо полезны, будешь читать, вроде все понимать, а на деле говнокодить. Можешь прочитать их все, но сразу ничего не получится, надо писать много кода, переписываться и снова писать. Только тогда будет хороший результат
    Ответ написан
  • Как перевернуть рандомный массив в СИ?

    myjcom
    @myjcom
    Из того в чем вопрос и что написано непонятно что вы хотите.

    если у вас 2 массива просто скопируйте один в другой в обратном порядке.

    если у вас один массив то можно написать функцию reverse(first, last) и свопнуть элементы.

    в обоих случаях один цикл.

    Code
    #include <stdio.h>
    #include <stdlib.h>
    
    void swap(int* a, int* b)
    {
        int c = *a;
        *a = *b;
        *b = c;
    }
    
    void reverse(int* first, int* last)
    {
        while((first != last) && (first != --last))
        {
            swap(first++, last);
        }
    }
    
    int* reverse_copy(int* first, int size)
    {
        int* result = (int*)malloc(size * sizeof(int));
        for(int i = 0; i < size; ++i)
        {
            result[i] = first[size - i - 1];
        }
        return result;
    }
    
    int main()
    {
        int a[] = {0,1,2,3,4,5,6,7,8,9};
        reverse(a, &a[10]);
        for(int i = 0; i < 10; ++i)
        {
            printf("%d ", a[i]);
        }
    
        printf("\n");
    
        int* b = reverse_copy(a, 10);
    
        for(int i = 0; i < 10; ++i)
        {
            printf("%d ", b[i]);
        }
        free(b);
    }

    OUT:
    9 8 7 6 5 4 3 2 1 0
    0 1 2 3 4 5 6 7 8 9

    Ответ написан
    Комментировать
  • Как принять чужую рекламную компанию?

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

    yudinikita
    @yudinikita
    Инженер-программист из России
    Вот список программ для отключения телеметрии и любой слежки в Windows 10:

    1. Destroy Windows 10 Spying
    Программа с открытым исходным кодом, что несомненно плюс. Возможностей не очень много, поэтому нужны дополнительные программы.
    Скачать
    Исходники
    Инструкция на русском

    2. O&O ShutUp10
    Антишпионская программа с более расширенными возможностями.
    Офф. сайт

    3. Ashampoo AntiSpy
    Несколько возможностей пригодятся из этой программы, для окончательного отключения слежки
    Офф. сайт

    Все программы использую лично, и они абсолютно бесплатные, так что удачи в борьбе со слежкой.
    Ответ написан
    2 комментария
  • Как взаимодействовать с ОС через python?

    @lyrjie
    psutil -- для мониторинга потребления ресурсов процессами.
    Модуль pywin32 или win32api (что, по сути, одно и то же) -- для использования API Windows (завершение процессов, например)
    Для автозапуска достаточно переместить исполняемый файл или ярлык в папку
    C:\Documents and Settings\All Users\Start Menu\Programs\Startup
    , для копирования файла можно использовать стандартный модуль shutil
    Ответ написан
    Комментировать
  • Есть ли смысл ставить Linux, если локального админа на Винде легко взломать?

    Veneomin
    @Veneomin
    Для защити от взлома локального админа нужно 50% времени потратить на защиту и 50% на систему мониторинга подозрительной активности. Обычно именно вторые 50% помогают найти горе хакеров на первых же попытках. Благо сейчас софта который из коробки шпионит и мониторит вагон и маленькая тележка, вопрос только в цене.
    Ответ написан
    Комментировать
  • Существует ли "карта программиста"? Что и за чем учить?

    Epsiloncool
    @Epsiloncool
    Программер, веб-девелопер, гейм-девелопер
    Я программист с 15-летним стажем активной работы. Программирование - это инструмент для разработки ПО. Такой же как умение ходить для свободного перемещения из точки А в точку Б. Когда ребёнок рождается, нет никакой карты, в которой бы было указано - в какой последовательности он должен изучать ходьбу, чтобы стать в итоге полноценным человеком. Так и в разработке ПО - нет никакой последовательности. Вам нужно изучать всё сразу, понемногу. Причём не теоретически, а практически. Ребёнок не читает книг по развитию умения ходить, не слушает лекции от родителей. Он сразу пробует. Падает, и снова пробует. Пока не научится. С разработкой ПО в точности так же.

    Нет никакого смысла читать книги по изучению конкретного языка. Ставьте задачу - "переместиться из точки А в точку Б" (сделать какое-то конкретное приложение) и гуглите по каждому непонятному моменту, пока программа не будет написана. Научитесь правильно строить поисковые запросы.

    После того как вы с большим трудом запустите свой первый продукт. вы уже будете знать и уметь в десятки раз больше, чем студент, окончивший пятилетний курс по специальности "программирование" и прочитавший пару толстых теоретических книг.
    Ответ написан
    6 комментариев
  • Как научиться создавать сайты, если в программировании полный 0?

    alexfilus
    @alexfilus
    Senior backend developer
    Если нужен быстрый эффект, и более-менее цельное образование, то платные онлайн-курсы.
    Из тех с которыми я сталкивался, Нетология - самое норм. Возможно кто-то знает лучше курсы.
    Можно ещё репетитора найти.
    Практика и гугл это, конечно, хорошо, но я встречал программистов которые годами успешно делали сайты на фрилансе, но были полными нулями на шаг в сторону от их любимой платформы.
    Ответ написан
    Комментировать
  • Как научиться создавать сайты, если в программировании полный 0?

    @nickerlan
    Для начала нужно цель прояснить и срок. Если просто быстро сайтики собирать научиться - то рекомендую сначала с tilda.cc поиграться, потом с webflow.io. Их по крайней мере с нуля быстро можно освоить. И наверное это тоже можно назвать программированием.

    Если же цель - достичь хорошего уровня, то нужно уже профессиональные инструменты осваивать.
    Я бы взял как программу минимум HTML, CSS, JS, NodeJS, React, Mongo. Подача мне вот тут нравится https://codedojo.ru/
    Еще, на базовом уровне алгоритмы хорошо бы изучить. Понять какие бывают структуры данных. Поиграться с функциональным и объектно ориентированным программированием.

    Как бы я построил обучение.
    Я бы выбрал проект, который хочется довести до конца. Реальную задачу.
    И начал бы просто ее делать. Задавая вопросы гуглу, здесь или знакомым программистам. Садится, писать, пробовать и до победного.

    И параллельно решал бы задачи, начиная с простых. Тут список сайтов где можно тренироваться https://tproger.ru/digest/competitive-programming-...
    Ответ написан
    Комментировать
  • Где брать задачи на python?

    igorzakhar
    @igorzakhar
    Ответ написан
    Комментировать
  • Где брать задачи на python?

    dezzignet
    @dezzignet
    Ответ написан
    Комментировать
  • Как добавить Sprut.io в автозагрузку?

    @pfg21
    ex-турист
    написать скрипт сервиса для systemd
    /etc/systemd/system/simple_srv.service
    [Unit]
    Description=Simple service
    # After=network.target

    [Service]
    #User=nobody
    #Group=nogroup
    ExecStart=/path/to/script

    [Install]
    WantedBy=multi-user.targe

    далее
    $ sudo systemctl daemon-reload -- перечитываем скрипты сервиса
    $ sudo systemctl enable simple_srv.service -- включаем на автозапуск при старте системы.
    $ sudo systemctl start simple_srv.service -- стартуем сервис вот прям сейчас.
    Ответ написан
    Комментировать
  • Почему существуют бесплатные прокси?

    CityCat4
    @CityCat4
    Дома с переломом ноги
    Например, перехват трафика :) и сканирование его на предмет интересных вещей. https - скажете Вы. ssl_bump - скажу я ;)
    Ответ написан
  • Как передать переменную из декоратора в функцию не изменяя эту функцию?

    Тут скорее напрашивается контекст менеджер.

    Примерно так:

    @contextmanager
    def mongo_connection():
        server = SSHTunnelForwarder(
                '192.168.20.10',
                ssh_username='username',
                ssh_password='password',
                remote_bind_address=('127.0.0.1', 27017))
    
        server.start()
        yield server
        server.stop()
    
    with mongo_connection() as server:
        client = MongoClient('127.0.0.1', server.local_bind_port)
        ...
    Ответ написан
    1 комментарий
  • Как правильно разделить Си проект на файлы?

    BacCM
    @BacCM
    C++ почти с рождения
    Ну как минимум использование перекрестных переменных уже нелогично. Лучше функциями это обернуть. Как бы инкапсулировать в модуль.
    Правильный способ это на бумаге нарисовать модули/объекты системы и обозначить как они взаимодействуют между собой и внешним миром. И уже исходя из этого разбивать. В идеале чем больше модуль похож на черный ящик тем лучше с точки зрения системности.
    Как лакмусовая бумажка может использоваться то, что из одного модуля вдруг надо копаться в кишках другого, или знать о том как там что-то реализовано.
    Как пример именно для Си - стандартная библиотека. Открываешь файл получаешь указатель на структуру FILE но тебе, абсолютно не важно какие там поля, создается она по malloc или заранее созданный объект из некоего массива таких объектов. Это уже скрыто реализацией. Есть функции которые работают с этим указателем и всё.
    Как плохой пример "не очень черного ящика" можно рассмотреть strtok строка которая передается на вход будет модифицироваться и портится, что может быть не очевидным из семантики. Но сделано в угоду скорости и использования памяти.
    Ответ написан
    2 комментария