• Можно ли писать на чистом Си под Qt? Или для этого нужно именно Си++?

    @sitev_ru
    sitev.ru - мой блог ...
    Чем отличается Си от С++?

    Например, укажем машине ехать со скоростью 10 км/час.

    Это на Си:

    run(car, 10);

    а это на С++

    car->run(10);

    Вот и всё отличие... Переходи на C++! )))
    Ответ написан
    3 комментария
  • Можно ли писать на чистом Си под Qt? Или для этого нужно именно Си++?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Теоретически можно, но вот на практике получится всё печально. C++ и C это два совершенно разных язык, а соотвественно и подход к разработке разный. Хороший C программист, который только начал писать на плюсах, почти на 100% плохой C++ программист, который пишет на "C с классами" и много не понимает. Разумеется после знакомства с C научиться использовать C++ будет легче и это плюс.
    А в Qt надо знать C++ на приличном уровне (и много чего еще), чтобы не спотыкаться на очевидных вещах и не применять GDD подход без понимая происходящего :)
    Ответ написан
    Комментировать
  • С чего начать обновлять компьютер?

    @Wexter
    с продажи этого и покупки нового
    Ответ написан
    Комментировать
  • Как определить свой уровень программирования?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Эти уровни - абстракция, причем зависящая от компании. Пройдите несколько собеседований и спросите, что думает о вас интервьюер.

    Юниор чаще всего - это программист с в основном теоретическими знаниями, либо наоборот только практическими знаниями. Он умеет решать более-менее стандартные задачи. Юниора обязательно надо учить. При получении нового задания он "создает" свое решение.

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

    Синьйор - понимает не только то зачем использовать ту, или иную технологию, а еще и как она работает, например почему при HL форин ключи сожрут io hdd. Может спроектировать и вести средний по размерам проект. Получив новое задание он уже знает как его решить кучей способов, выбор заключается только в правильности интеграции решения.

    -----------------

    Многое зависит от интервьюера.
    У меня был случай, собеседование на php senior developer: поговорили про HL оптимизации, архитектурные предложения для решения неких задач, способы оптимизации и т.д., а потом:
    - перейдем к практике: что произойдет в таком коде:
    $a = 5 + '5abc' + 'abc5';
    - произойдет следующее: я посмотрю blame скрипта и поговорю с автором этой строчки, что бы узнать, что такого хренового в жизни может произойти, что бы он позволил себе это написать.
    - ну, тут вопрос на приведение типов
    - 10, но вы в своей практике с подобным сталкивались?
    - нет
    - вот и я не сталкивался...
    Ответ написан
    1 комментарий
  • Как правильно установить Adobe Flash Player в дистрибутиве Linux Solus?

    @Wexter
    NPAPI в хроме давно отключен.
    Начиная с 69 версии хрома флеш на странице принудительно отключен и включается только вручную.
    Чтобы разрешить ткните в иконку в адресной строке и выберите "Настройки сайтов", там найдёте пункт Flash и выставите разрешить
    Ответ написан
    3 комментария
  • Как обращаться к api.telegram.org?

    bel_poprygun
    @bel_poprygun
    Директор в АйТиЭс
    Я использовал PHP-обёртку telegram-bot/api
    В нём поправил файл vendor/telegram-bot/api/src/BotApi.php:
    public function call($method, array $data = null)
        {
            $options = [
                CURLOPT_URL => $this->getUrl().'/'.$method,
                CURLOPT_PROXY, "socks5://LOGIN:PASSWD@IP:PORT",
                CURLOPT_SSL_VERIFYPEER => false,
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_POST => null,
                CURLOPT_POSTFIELDS => null,
            ];
            ...
    Ответ написан
    1 комментарий
  • Как обращаться к api.telegram.org?

    ksn135
    @ksn135
    Разработка информационных систем с web-интерфейсом
    Использовать SOCKS5 proxy
    #!/bin/bash
    TELEGRAM_AUTH="xxx:yyy"
    TELEGRAM_CHAT="-kkkkk" 
    SOCKS5_PROXY="ip:port"
    TELEGRAM_CMD="curl --silent --show-error --fail -G -o /dev/null -x socks5://${SOCKS5_PROXY} https://api.telegram.org/bot${TELEGRAM_AUTH}/sendSticker -d chat_id=${TELEGRAM_CHAT} "
    ${TELEGRAM_CMD} --data-urlencode "sticker=CAADAgADywAD41AwAAEX57BgtDqyXQI" #"text=Произвожу обновление системы..."

    или на PHP
    $ch = curl_init();
    $url = "https://api.telegram.org/bot$auth/$method";
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_PROXY, "socks5://$proxy");
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, ($parameters));
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    $result = curl_exec($ch);
    Ответ написан
    8 комментариев
  • Как обработать нажатие на кнопку клавиатуры бота, созданном на Telegram Bot API - PHP SDK?

    @easycode Автор вопроса
    не боюсь задавать глупые вопросы ))
    Как я понял в версии 2.2 этой библиотеки можно использовать только обычные текстовые кнопки без callback_data - для передачи которого нужно использовать inline кнопки.

    1) Нужно обновится до dev-версии, если через composer то вот так:
    composer require irazasyed/telegram-bot-sdk:dev-master

    2) Далее код несколько меняется:
    <?php
    
    use Telegram\Bot\Commands\Command;
    use Telegram\Bot\Keyboard\Keyboard;
    
    $telegram = new Telegram\Bot\Api('MY_KEY'); 
            
    $update = $telegram->getWebhookUpdates();
    
    // данные сообщения в зависимости от callback_query
    if ( isset($this->update['callback_query'])) {
        $message = $update['callback_query'];
    } else {
        $message = $update;
    }
    
    $chatId = $message['message']['chat']['id'];
    
    // правильно формируем клавиатуру:
    $keyboard = [
        [
            Keyboard::inlineButton(['callback_data'=>'/butt1','text'=>'Кнопка 1']),
            Keyboard::inlineButton(['callback_data'=>'/buut2','text'=>'Кнопка 2'])
        ]
    ];
    
    $reply_markup = $telegram->replyKeyboardMarkup([ 
        // 'keyboard' => $keyboard, // вместо этого используем:
        'inline_keyboard' => $keyboard,
        'resize_keyboard' => true, 
        'one_time_keyboard' => false 
    ]);
    
    
    // если нажали кнопку:
    if ( isset($this->update['callback_query'])) {
    	$telegram->sendMessage(array(
    	  'chat_id' => $chatId,
    	    'text' => "Вы нажали на кнопку с кодом: " . $message['data'], // именно в $message['data'] - будет то что прописано у нажатой кнопки в качестве callback_data
    	    'reply_markup' => $reply_markup,
    	));
    } else {
    	$telegram->sendMessage(array(
    	  'chat_id' => $chatId,
    	    'text' => 'Нажмите на одну из кнопок:',
    	    'reply_markup' => $reply_markup,
    	));
    }


    Может кому-нибудь еще пригодится )
    Ответ написан
    Комментировать