• Почему не работает обращение из бесед к сообществу?

    MaxLevs
    @MaxLevs
    В офф. документации сказано, что для получения любых сообщений из бесед (по-умолчанию берутся только те, в которых есть обращение к боту) надобно в настройках бота выдать ему права "Доступ ко всей переписке" или "Администратор" и убедиться, что версия API не ниже 5.80

    5c3fb3b03ff27738195466.png
    Ответ написан
  • Присвоить значение через аргумент?

    MaxLevs
    @MaxLevs
    Использовать ссылочные типы.
    let bufer = {};
    function foo(buf, a, b) {
        buf.foo_ans = a + b;
    }
    function bar(buf, a, b) {
        buf.bar_ans = a * b;
    }
    foo(bufer, 3, 5);
    bar(bufer, 3, 5);
    console.log(bufer); //{foo_ans: 8, bar_ans: 15}
    Ответ написан
  • Как настроить бота в вк принимать сообщенияя из бесед?

    MaxLevs
    @MaxLevs
    Возможно, проблема кроется в правах бота.
    На странице документации, посвященной CallbackAPI, можно увидеть информацию о том, что:
    • Для доступа к групповым сообщениям версия API должна быть не меньше 5.80
    • Для получения всехсообщений нужно выдать боту права "Доступ ко всей переписке" или выше


    ==================================================================================
    5c3bfe0ae0e83409804583.png
    Ответ написан
    Комментировать
  • Как починить регистр * в vim?

    MaxLevs
    @MaxLevs Автор вопроса
    Короче, поставил пакет vim-gui-common, который ставит gVim, и в консольном vim все тоже встало на свои места.
    Вот только мне все еще интересно, как работают регистры * и + и что конкретно фиксит указанный выше пакет, но но это уже оффтоп.
    Ответ написан
  • Можно ли в WinApi использовать slider control для получения целочисленного значения в заданном диапазоне?

    MaxLevs
    @MaxLevs Автор вопроса
    Вопрос снят. Все-таки смог найти решение. (сложно как-то мне в документации искать: не то все время получаю)

    Для начала нужно подключить вот этот файл для получения кодов сообщений для слайдера
    #include <Commctrl.h>

    Диалог вызывается так
    DialogBox(
    	hInst,
    	MAKEINTRESOURCE(IDD_USER_TERN),
    	hWnd, 
    	(DLGPROC)(AskNumber)
    );


    Затем сама процедура обработки диалога
    AskNumber
    LRESULT CALLBACK AskNumber(
    	HWND hDlg,
    	UINT Msg,
    	WPARAM wParam,
    	LPARAM lParam
    ) {
    	
    	HWND sliderBar = GetDlgItem(hDlg, IDC_NUMBER));
    	switch (Msg)
    	{
    	case WM_INITDIALOG:
    		SendMessage(sliderBar, TBM_SETRANGEMIN	, false, 1);   //минимум
    		SendMessage(sliderBar, TBM_SETRANGEMAX, false, 10); //максимум
    		SendMessage(sliderBar, TBM_SETTICFREQ	, false, 1);   //шаг
    		return static_cast<LRESULT>(true);
    
    	case WM_HSCROLL:
    	{
    		if (sliderBar == (HWND)lParam) //если речь идет о нашел слайдере
    		{
    			int curNumb = SendMessage(sliderBar, TBM_GETPOS, 0, 0); // Получаем текущее положение слайдера
    			/* Делаем с ним, что хотим */
    		}
    
    		break;
    	}
    
    	case WM_COMMAND:
    		switch (LOWORD(wParam)) {
    		case ID_DO_TERN:
    			int curNumb= SendMessage(sliderBar, TBM_GETPOS, 0, 0);
    			wchar_t buff[100];
    			wsprintfW(buff, L"%d", curNumb); // Преобразуем число к строке
    			MessageBox(hWnd, buff, L"Число!", MB_OK); // Выводим выбранное значение
    			EndDialog(hDlg, LOWORD(wParam));
    			return static_cast<LRESULT>(true);
    			break;
    		}
    		break;
    	return static_cast<LRESULT>(false);
    }



    Единственная моя проблема - навигация по документации...
    Ответ написан
    Комментировать
  • Как правильно использовать ssh-agent?

    MaxLevs
    @MaxLevs
    А зачем обращаться к ssh username2@100.100.100.1, если можно обратиться к ssh username2@bind-hostname?
    Тогда никаких проблем с ключами нет, если будете использовать для каждого пользователя bind-hostname один и тот же ключ. А если ключи разных пользователей машины уникальны, то можно их в том же конфиге перечислить или, если их больше 6, называть ключи по определенной системе с использованием имени хоста и пользователя, а имя ключа в конфиге задавать с использованием %h и %r.
    Ответ написан
    Комментировать
  • Куда записывать xorg.conf из nvidia-settings? Как настроить расположение мониторов для non-free дров?

    MaxLevs
    @MaxLevs Автор вопроса
    Проблема решилась банально просто:
    1. удалил старый /etc/X11/xorg.conf.d/10-monitor.conf (был создан ранее вручную)
    2. выхлоп nvidia-settings (то, что прописывалось в /etc/X11/xorg.conf) записал в /etc/X11/xorg.conf.d/10-xorg.conf


    p.s. Пытался сделать это ранее, но, видимо, где-то накосячил с резервными копиями оных файлов, поэтому таскал одно и тоже :D
    p.p.s. Возможно, цифру можно сделать поменьше.
    Ответ написан
    Комментировать
  • Как в Sublime Text 3 настроить нормальное определение синтаксиса для gulpfile?

    MaxLevs
    @MaxLevs Автор вопроса
    Окей, вопрос решен. Оказалось, пакет SoDaReloaded Theme перебивал все установки. В нём были syntax для gulpfile.js и gulpfile.coffee, которые почему-то подгружались сами по себе и не имели некоторого функционала. Выпилил - все встало на свои места.
    Ответ написан
    Комментировать
  • Парсинг HTML без подгрузки данных по ссылкам?

    MaxLevs
    @MaxLevs Автор вопроса
    Вопрос снят. Решил не вставлять все налево и направо, а просто использовать регулярки.
    Если кому интересно (лол), вот код:
    var news_id = window.location.pathname.match(/\d*-/)[0].match(/\d*/)[0];
    var bestComm = document.getElementsByClassName('comm_best')[0].children;
    var bestCommsIds = [];
    var lastPage =  document.getElementsByClassName('navigation')[0].lastElementChild.innerHTML;
    var compl = 0;
    lastPage = parseInt(lastPage, 10);
    for (var i = 0; i < bestComm.length; ++i) {
        bestCommsIds.push(new RegExp(bestComm[i].id));
    }
    
    function getCommentPage(page) {
        $.get(dle_root+"engine/ajax/comments.php", {cstart:page,news_id:news_id,skin:dle_skin}, function(data){
            for(i = 0; i < bestCommsIds.length; ++i){
                if (data.comments.match(bestCommsIds[i])){
                    bestComm[i].onclick = function(){CommentsPage(page, news_id); return false;};
                    if(++compl === bestCommsIds.length){
                        return 0;
                    }
                }
            }
        },"json");
    }
    
    for(var page = 1; page < lastPage; ++page){
        getCommentPage(page);
    }
    Ответ написан
    Комментировать
  • Какие есть книги или статьи про то, что в коде делать не рекомендуют?

    MaxLevs
    @MaxLevs
    Одна из лучших в этом роде, на мой взляд, - "Сlean Сode" Боба Матрина. Что-то вроде "Качество написанного кода определяется количеством ЧеЗаНах-ов в секунду вылетающих из офиса во время проведения unit-тест-ов"
    Ответ написан
    Комментировать