• По какой причине не работает JS?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Почему не работает? Работает.
    5bb671ad01b71990299728.png
    Старательно заменяет каждый символ на пару квадратных скобок.
    Правда, после того, как изменен рутовый элемент (html), других элементов не остаётся.
    Ответ написан
    Комментировать
  • Как проверить, что ip находится в заданном диапазоне?

    dollar
    @dollar Автор вопроса
    Делай добро и бросай его в воду.
    const ip4ToInt = ip =>
      ip.split('.').reduce((int, oct) => (int << 8) + parseInt(oct, 10), 0) >>> 0;
    
    const isIp4InCidr = ip => cidr => {
      const [range, bits = 32] = cidr.split('/');
      const mask = ~(2 ** (32 - bits) - 1);
      return (ip4ToInt(ip) & mask) === (ip4ToInt(range) & mask);
    };
    
    const isIp4InCidrs = (ip, cidrs) => cidrs.some(isIp4InCidr(ip));
    
    isIp4InCidrs('192.168.1.5', ['10.10.0.0/16', '192.168.1.1/24']); // true
    Ответ написан
    Комментировать
  • Есть ли способ из расширения Chrome осуществить nslookup с помощью JS?

    dollar
    @dollar Автор вопроса
    Делай добро и бросай его в воду.
    chrome.webRequest.onCompleted.addListener(function(d) {
    	console.log(d.ip, d.url);
    }, {'urls' : ["<all_urls>"], 'types' : ['main_frame']});
    Ответ написан
    Комментировать
  • Как получить определённую ссылку через preg_match_all?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    preg_match_all('.*rel="gallery002,.*href="(http:\/\/.*?)"', $text0, $out1);

    Соответственно, с параметром:
    $name = 'gallery002';
    preg_match_all('.*rel="'.$name.',.*href="(http:\/\/.*?)"', $text0, $out1);
    Ответ написан
    Комментировать
  • Что делает регулярное выражение?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Сложно сказать словами, что делает.
    Видимо, ищет символы, не являющиеся пробелами (включая \n) в конце строки и заменяет их на "..."
    Причем, перед ними должен быть один пробел (или символ \n) и любое количество специальных символов.
    Как-то так, хотя это не точное объяснение.
    Вообще довольно странный regex, не для всех текстов подходит, а только для очень специфических. Может, что-то другое считает две строки? Не этот код?

    Вот сайтик для развлечения: https://regex101.com/
    Там можно вбить свою регулярку, посмотреть "на словах", что она делает, а также поэкспериментировать с изменяемым текстом.
    Там даже шпаргалка по регуляркам есть, так что можно уже самому начать понимать, что за магия происходит.

    Для трех строк я бы сделал что-то в этом роде:
    $(this).text(function(index, text) {
       return text.replace(/^.*[\r\n].*[\r\n].*([\r\n][\s\S]*)$/, '...');
    });

    Но это совсем не похоже на то, что в вопросе. Прямолинейный тупой подсчёт строк и замена всего, что длиннее, на многоточие.
    Ответ написан
  • Можно ли задать переменную object через id?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    var object = {
      name: $('.class_name').val(), //input.value
      surname: $('.class_surname').val(),
    }
    Ответ написан
  • Как проверить наличие элемента в многомерном массиве?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Рекурсия нужна. Тогда будет поиск на любом уровне вложенности.
    inArr=function(val,arr){if(arr===null)return;for(let i=0;i<arr.length;i++){if(arr[i]==val)return true;if('object'==typeof arr[i])if(inArr(val,arr[i]))return true}return false}; console.log(inArr("22693", orderlist))
    Ответ написан
    Комментировать
  • Как удалить символы из строки?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    3 комментария
  • Как лучше изучать английский что-бы в дальнейшем устроится переводчиком (внутри подробней)?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    1) Для переводчика важен словарный запас. Это тупая зубрёжка. Среда вам не даст этого, потому что нужно знать а) как пишется б) как переводится в) как читается. Дать это может словарь. Но у многих слов несколько значений, и мало слов переводятся на русский 1 в 1 (потому что у русских слов тоже много значений). Поэтому это не просто выучивание слово-перевод, а глубокое понимание каждого слова и тонкостей его употребления.
    2) Нужен носитель. Это тот, кто будет исправлять ваши ошибки "на лету". Учебник не скажет вам, что ваш перевод звучит нелепо. Русский препод тоже может косячить. С носителем можно постигать такие нюансы, которые в учебниках сложно найти или понять. Среда в целом не будет исправлять ваши ошибки, просто вас будут слышать как "я твоя понимать", и отвечать в меру понимания.
    3) Универсальным переводчиком стать невозможно. Потому что в каждой предметной области свои термины. Порой сотни специфических терминов. Попробуйте-ка грамотно перевести статью по медицине. Или по экономике. Я уж молчу про ИТ-сферу для переводчиков, не связанных с нею.

    В остальном понадобятся тонны усердия. Годы обучения. Вообще есть даже уровни владения английским, например такая шкала. Чем выше уровень, тем дольше обучение и сложнее экзамены. А переводчику нужен очень высокий уровень.
    Ответ написан
    Комментировать
  • Как находят баги?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    1) Случайно. Серьёзно - каждый юзер является тестером, шанс найти баг (если он есть) велик, когда ищут миллионы.
    2) Опытным путём, пробуют всякое-разное, брутфорс, инжект.
    3) Если есть доступ к исходникам, то можно долгими вечерами медитировать и в одну звёздную ночь достигнуть просветления.
    4) Есть также соц. инженеринг - это "баги" в людях и в правилах, которым они следуют. И это важный пункт. Много атак происходит именно через слабости людей.

    Вообще поиском багов должен заниматься тестировщик перед релизом. Но у взломщика больше свободного времени (заняться нечем, или вообще школьник) или мотивации (реальный профит, а не з/п).
    Ответ написан
    Комментировать
  • Как анонимно оплатить VPS?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Купить серую симку на рынке.
    Купить самый дешевый смартфон.
    Установить QIWI кошелек. Естественно, через 3G, а не через домашний WiFi.
    Пополнить кошелек в терминале наличными. Естественно, одеть кепку и иметь высокий воротник, и не лишним будут накладные усы.
    Далее у вас будет номер карты. А том хоть куда, например, PayPal.
    P.S. Через пару месяцев симка перестанет работать, если вы её, конечно, не выкинете сразу в помойку вместе со смартфоном, как в крутых шпионских детективах.
    Ответ написан
    7 комментариев
  • Учителю информатике нужно педогодическоое образование?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Да, всем учителям желательно педагогическое образование. Вы же будете иметь дело с детьми. Нужно, чтобы им было интересно, а не просто материал зачитывать. Хотя на работу могут и так взять, если договоритесь, но это вряд ли.

    Ещё бы я на вашем месте обратил внимание на русский язык и построение предложений.
    Ответ написан
    Комментировать
  • Как проверить куда идет идет get запрос с сайта?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Изучай код сайта. Например, ищи вхождения http и https, авось наткнёшься на внешний запрос. Или .com/ .net/ .org/ .ru/

    Если есть доступ к серверу, смотри соединения, логи.

    В конце концов можно погуглить "где взять/скачать... ", "API..." и дальше подробности, связанные с вашими данными. Может и найдете сразу источник.
    Ответ написан
  • Ищется сервис продажи файлов. Есть варианты без бюрократии?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    https://itch.io/

    А как вы себе представляете продажу без регистрации? Куда деньги-то слать будут? Вам обязательно нужно зарегистрироваться, чтобы продавать.

    Клиентам регистрация не обязательна.
    Ответ написан
    Комментировать
  • Как мне найти координаты числа?

    dollar
    @dollar Куратор тега Lua
    Делай добро и бросай его в воду.
    Очевидно, число 4 находится в первом столбце (x==1) и второй строке (y==2).
    Это видно невооруженным глазом.
    Программно это можно выяснить так:
    array = {
        1,2,3,
        4,5,6,
        7,8,9
    }
    
    function getXY(num)
        local x,y,i=1,1,1
        while array[i] ~= num do
            i = i + 1
            x = x + 1
            if x > 3 then
                x = 1
                y = y + 1
            end
            if not array[i] then return end
        end
        return x,y
    end
    
    print(getXY(4)) --1,2
    print(getXY(8)) --2,3
    print(getXY(3)) --3,1

    А если вам нужна обратная задача (по координатам искать число), то вот:
    array = {
        1,2,3,
        4,5,6,
        7,8,9
    }
    
    function find(x,y)
        return array[(y-1)*3 + x]
    end
    
    print(find(1,2)) --4
    print(find(2,3)) --8
    print(find(3,1)) --3

    Но всё же лучше пересмотреть способ хранения данных. Например, так:
    array = {
        { 1,2,3 },
        { 4,5,6 },
        { 7,8,9 },
    }
    Ответ написан
    4 комментария
  • Как обойти ограничение localStorage для расширения?

    dollar
    @dollar Автор вопроса
    Делай добро и бросай его в воду.
    Правильный ответ был - indexedDB.
    Хотя это и мощный инструмент, но с простой задачей хранения строки тоже справляется.
    Для теста сохранил 30 мегабайт - скушал.
    Даже unlimitedStorage не нужен, всё и так работает.
    Ответ написан
    Комментировать
  • Расширение, которое показывает, внесён ли сайт в реестр?

    dollar
    @dollar Автор вопроса
    Делай добро и бросай его в воду.
    Пришлось самому сделать такое расширение.
    Chrome
    Firefox
    Ответ написан
    Комментировать
  • Как вернуть деньги, если оператор связи незаконно подключил услугу?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Всё законно. Они подарили безлимит, но не сказали, что он бесплатный навсегда (потому что это не так). Да и с какой стати ему быть бесплатным?

    Без согласия по закону нельзя подключать услуги, но можно дарить.

    Конечно, это очень плохая практика, но юридически всё чисто. Лично я Билайном не пользуюсь, так что не имею дел с подобным.
    Ответ написан
  • Почему не работает JS-код?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Потому что num - это копия значения элемента.
    Лучше сделать так, чтобы num была указателем на сам элемент:
    var num = document.getElementById("number"); //здесь value опускаем
    var btn = document.getElementById("btn");
     
    btn.addEventListener("click", function() {
      alert(num.value*num.value); //получаем текущее значение
    });
    Ответ написан
    1 комментарий
  • Нужно сделать простую систему,нужен совет?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Конечно нужна авторизация.
    В PHP скрипте происходит вся магия. Если авторизован начальник, то у него одни действия с базой данных, если пользователь, то - другие.

    В базе данных, если отпуск может быть только один на человека, то хватит одной таблицы на все. Если же человек может указать несколько интервалов отпусков, то нужно две таблицы - все пользователи и отпуска.
    В таблице пользователей - имя, пароль, статус начальника. В таблице отпусков - дата начала, дата конца, id пользователя. Примерно так.
    Ответ написан