Задать вопрос
  • Как соединить 2 текстовых файла на питоне?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    open("file3.txt","w").write(open("file1.txt","r").read() + open("file2.txt","r").read())
    Ответ написан
    Комментировать
  • Стоит ли писать собственное IDE на Python?

    @towin
    Если программированием занимаетесь только месяц, то нужно писать свою операционную систему.
    Своя IDE - это для тех, кто уже 2 месяца программирует.
    Ответ написан
    Комментировать
  • Какую видеокарту посоветуете для KDE?

    @Tabletko
    никого не трогаю, починяю примус
    Встроенной хватит для работы.
    Ответ написан
    2 комментария
  • Задача на c++. Как определить, есть ли в массиве одинаковые соседние элементы?

    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    int main(){
        string ans = "NO";
        int a[10];
        for (int i = 0; i < 10; i++){
            a[i] = rand() % 4 + 1;
            cout << a[i] << " ";
        }
        for (int i = 0; i < 9; i++){
            if (a[i] == a[i+1]){
                ans = "YES";
                break;
            }
        }
        cout << endl << ans;
        return 0;
    }

    Если что-то не так, говори
    Ответ написан
    1 комментарий
  • Как перевести этот код C++ на python?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    1. Изучить C++
    2. Изучить Python
    3. Перевести код
    4. PROFIT
    Ответ написан
    Комментировать
  • Как выключить Windows через Linux?

    @pfg21
    ex-турист
    поставить на б-мерзкую винду правоверный sshd
    https://habr.com/ru/post/259469/
    Ответ написан
    Комментировать
  • Как реализовать кроссплатформенное ПО с библиотеками для Windows/Linux?

    @MarkusD Куратор тега C++
    все время мелю чепуху :)
    Я с 2011 года занимаюсь совершенствованием игрового фреймворка. Весь его код написан на C++. Целевых платформ раньше было 5 (Win, MacOs, iOs, Android, Bada), теперь 4 (Bada закрылась же) с приглядом за Tizen, WinMo и, когда-нибудь, консолями.
    В общем, уровень требований к кроссплатформенности должен быть понятен. И вот как я этого добился.

    Большая часть кода написана на платформонезависимом C++. Весь платформозависимый код расщеплен на три слоя:
    - Нижний слой, общий интерфейс для всех платформ, общие поля всех платформ.
    - Средний слой, platform-specific решения и поля. Наследуется от нижнего.
    - Верхний слой, ввод platform-spcific кода во фреймворк. Наследуется от среднего слоя.

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

    На уровне файлов этот подход работает так.
    Есть в заголовках проекта папка "platform", где собраны нижние уровни расщепления, мастер-заголовок с условным подключением среднего уровня расщепления и все общие типы для платформ.
    Так же в проекте есть папки "platform.windows", "platform.macos", "platform.###", в которых реализован средний уровень расщепления и мастер-заголовки для условного подключения.
    Верхний уровень или реализуется в своей папке, если он представляет собой целую подсистему, или описывается во все той же папке "platform".
    Исходный код сгруппирован так же, но включает в себя только мастер-заголовок .

    Сценарии сборки на каждую из платформ включают в себя платформозависимый код только своей платформы.
    Все собирается в статические библиотеки и линкуется в один исполняемый файл. Хотя есть возможность вытеснения библиотек в динамические модули (сделано на случай передачи фреймворка аутсорсерам).

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

    UPD:
    Пример с файлом очень хорошо подходит благодаря своей простоте, его я даже по памяти могу выписать из своего фреймворка, но я кое-что все таки упрощу, чтобы никого не смущать и не пугать.
    spoiler
    // PlatformSpecificFile.Windows.h
    class PlatformSpecificFile
    {
    // Platform-specific interface.
    public:
    	inline ::HANDLE GetHandle() const	{ return m_handle; };
    	
    // Platform-independent interface, but platform-dependent implementation.
    public:
    	// RAII.
    	PlatformSpecificFile() = delete;
    	PlatformSpecificFile(
    		const std::string& path,
    		const OpeningMode desired_mode,
    		const AccessOptions& desired_access,
    		const SharingOptions& desired_sharing
    	);
    	
    	virtual ~PlatformSpecificFile();
    	
    	void Close();
    	void Flush();
    	
    	const size64_t GetSize() const;
    	const bool Resize( const size64_t new_size );
    	
    	const size32_t Read( NotNull<uint8_t> buffer, const size32_t buffer_size ) const;
    	const size32_t Write( NotNull<const uint8_t> buffer, const size32_t buffer_size );
    	
    	const size64_t Seek( const size64_t offset, const SeekOrientation orientation );
    	
    	inline const bool IsValid() const	{ return IsHandleValid( m_handle ); };
    	
    private:
    	::HANDLE	m_handle = INVALID_HANDLE_VALUE;
    };
    
    // PlatformSpecificFile.Android.h
    class PlatformSpecificFile
    {
    // Platform-specific interface.
    public:
    	inline int GetHandle() const	{ return m_handle; };
    	
    // Platform-independent interface, but platform-dependent implementation.
    public:
    	// RAII.
    	PlatformSpecificFile() = delete;
    	PlatformSpecificFile(
    		const std::string& path,
    		const OpeningMode desired_mode,
    		const AccessOptions& desired_access,
    		const SharingOptions& desired_sharing
    	);
    	
    	virtual ~PlatformSpecificFile();
    	
    	void Close();
    	void Flush();
    	
    	const size64_t GetSize() const;
    	const bool Resize( const size64_t new_size );
    	
    	const size32_t Read( NotNull<uint8_t> buffer, const size32_t buffer_size ) const;
    	const size32_t Write( NotNull<const uint8_t> buffer, const size32_t buffer_size );
    	
    	const size64_t Seek( const size64_t offset, const SeekOrientation orientation );
    	
    	inline const bool IsValid() const	{ return m_handle >= 0; };
    	
    private:
    	int		m_handle = -1;
    };
    
    // File.h
    class File final : public PlatformSpecificFile
    {
    public:
    	using PlatformSpecificFile::PlatformSpecificFile;
    	
    	const size64_t GetPosition() const; // Seek( 0, SeekOrientation::FromPosition );
    	
    	const bool SetPosition( const size64_t position ); // Seek( position, SeekOrientation::FromBeginning );
    	
    	const bool IsFileEnded() const; // GetPosition() == getSize();
    };


    Мастер-заголовок платформенного кода "platform.h" в зависимости от сценария сборки включает в себя один из мастер-заголовков платформозависимого кода "platform.###.h". Платформозависимый код уже включает в себя соответствующий заголовок файла "PlatformSpecificFile.###.h"
    Ответ написан
  • Куда можно обратиться за поддержкой Linux?

    martin74ua
    @martin74ua Куратор тега Linux
    Linux administrator
    Линукс - очень дружелюбная система. Но она тщательно подбирает себе друзей.
    Вы похоже ей не понравились ;)

    Или действительно поставить платный дистрибутив или купить техподдержку (точно не подскажу, никогда не интересовался), или снести его к черту и поставить винду (потом можно смело говорить всем - пробовал я ваш линукс - г-но, а не система), или все таки сесть и начать разбираться. Ищите в гугле, ищите людей кто рядом с вами работает в линуксе, читайте форумы....
    Ответ написан
    4 комментария
  • После форматирования в ext4 не могу записывать на USB - как вернуть права?

    @Tabletko
    никого не трогаю, починяю примус
    Не правильно. Mount point - точка монтирования (куда смонтировано устройство), а /dev/sdb - блочное устройство. Вместо $user надо указать имя своего пользователя. Хоть иногда читайте man.
    Ответ написан
    5 комментариев
  • Как делают меню в терминале linux?

    bavaria
    @bavaria
    Студент, Python, Ruby
    Ответ написан
    Комментировать
  • Какие книги почитать по радиотехнике и микроконтроллерам?

    gbg
    @gbg Куратор тега Электроника
    Любые ответы на любые вопросы
    ... и уже хочу порвать денди и спектрум.

    Для начала, прочтите весь easyelectronics.ru

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

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Самый верный из прозвучавших советов - ставить тот, по которому есть ближайший гуру.
    Теоретически, source-based дистрибы способны выжать из железа все за счет адаптации к нему и отключения ненужных свистелок. Практически, там выше порог вхождения и есть ненулевой шанс на вопрос получить ответ "ну что ты хотел - это же gentoo/arch/calculate/еще-по-вкусу".
    Ставить любой понравившийся дистриб (ну или тот, по которому есть гуру), при установке выбирать графику полегче - XFCE, LXDE
    Ответ написан
    Комментировать
  • Брелок отправляются уведомление в приложение?

    https://www.alibaba.com/trade/search?fsb=y&IndexAr...

    есть лоты с мин.партией в 1 штуку, но оптом конечно дешевле

    ну и совместимость софта нужно проверить
    Ответ написан
    2 комментария
  • Какой Linux выбрать?

    Neznayka1979
    @Neznayka1979
    Интересы - IT, психология...
    Ответ написан
    Комментировать
  • Возможно ли создать недорогую и надежную систему по передаче видео с касок рабочих в режиме онлайн?

    KonBez
    @KonBez
    Слаботочник
    original.jpg
    Где значок Фэйспалма?1111
    На стройке нет ничего постоянного, а только временное.
    Железобетон переваривает и глушит Wi-fi, тем более подвал.
    Даже смартфон с мощной батареей недолго проработает в режиме съёмки и видеотрансляции.
    Рабочим потребуется таскать приличных размеров аккумулятор.
    Провода до камеры будут рваться.
    Потребуется инфраструктура для подзарядки всего этого хозяйства.
    Камеры должны быть антивандальными.
    Пропускная способность Wi-fi сети, реальная, потребуется не менее 1 Гбита.
    Всё оборудование нужно будет смонтировать, настроить.
    Сигнал от камер будет теряться - сотни часов чтобы настроить всю эту систему.
    Это пока всё что пришло на ум, но это далеко не всё.
    Окститесь. Это не дорого, это супер дорого.
    Для эти целей используюn обычные камеры на обычных столбах. Ну, иногда наш руководитель проекта "летал" по стройке на квадрокоптере.
    Ответ написан
    Комментировать
  • Можно ли подключить мотор пылесоса минуя электронику?

    @nehrung
    Не забывайте кликать кнопку "Отметить решением"!
    Скорее всего это банальный симисторный регулятор, чинить который - одно удовольствие! Включаем лампочку 100 ватт 220 вольт вместо мотора и и смотрим осциллоскопом отрезки синусоиды на симисторе - они должны симметрично сдвигаться при вращении переменного резистора (для не имеющих осциллоскопа придётся следить за плавностью изменения яркости лампочки). Если синусоида режется/сдвигается без симметрии - меняем симистор. А больше там нечему дохнуть.
    А вот мотор (обычно это коллекторный сериесный движок переменного тока) - там есть чему дохнуть! Чаще всего щётки стачиваются или коллектор подгорает, а уже это приводит к крэшу электроники. Щётки надо подобрать по сечению, более толстые обточить напильником под размер щёткодержателя, сильно изношенный коллектор аккуратно проточить (грамотные токаря умеют).
    Самая неприятная неисправность - обрыв подсоединения концов обмоток ротора к ламелям коллектора (оборванные ламели легко идентифицируются по сильному нагару). Контакт обеспечивается только зачеканкой конца провода, пайка там бесполезна - из-за сильного нагрева и огромной центробежной силы припой там держаться не будет.

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

    @malbaron
    0. Ты тут не первый такой умный. Поищи в поиске. Очень частый вопрос.

    Вы преувеличивайте проблему:

    1. Идея ничего не стоит. Пока не реализована.
    2. У хорошего программиста - полно работы с хорошей оплатой. Время сейчас такое. И что важно - с гарантированной оплатой, в отличие от воровства идей.
    3. Даже если программист хочет что-то там украсть - раскрутить идею это куча усилий. За это время программист потеряет кучу бабла (см. пункт 2). Причем бабло из п. 2 - верняк. А раскрутится ли идея - еще непонятно. А вот усилий на нее нужно будет потратить много-много. За это время потерять кучу верного бабла на работу по основной специальности.

    Юридические:

    4. Попробуй патентовать. Для этого патенты и придуманы.
    5. NDA вы, поди, из статей про стартапы в США услышали. У них другое законодательство. Не знаю в нашей юриспруденции понятия - "неразглашение". Есть "коммерческая тайна". Есть куча описаний как правильно оформить "коммерческую тайну". Договора о неразглашении недостаточно.

    Сюрприз:

    6. А еще есть авторское право. Авторские права останутся у программиста. И он сможет воспользоваться своим продуктом (что важно - уже готовым, в который вкладываться не нужно).
    7. Решается правильным оформлением того, что программист создавал продукт именно для вас и только для вас под зарплату.

    P.S.:
    Более серьезные программисты - менее подвержены этой проблеме.
    У них и репутация и зарплата - незачем воровать.

    Начинающие, тем более, что сейчас рекламируется "быстро срубить денег в ИТ" - скорее подвержены искушению украсть.
    Ответ написан
    8 комментариев
  • Как осуществляется работа с консолью средствами php?

    butteff
    @butteff
    Раз в тысячу лет заправляю свитер в носки
    exec() - выполняет команду на сервере и все.
    shell_exec() - выполняет команду и возвращает консольный вывод.
    большие задачи лучше выносить в bash скрипты. Если нужен root - выполнять их с sudo.
    Лучше сделать какую-нибудь "песочницу" для этих скриптов, ограничив их в возможностях, например с помощью chroot jail
    Ответ написан
    1 комментарий
  • Как сделать что бы putty не отключался?

    gbg
    @gbg Куратор тега Linux
    Любые ответы на любые вопросы
    Используйте на сервере screen или tmux. Тогда любой отрыв соединения будет вам грозить, в худшем случае, реконнектом.

    Есть еще вот такая штука - Mosh
    Ответ написан
    Комментировать