• Как сделать перебор свойств объекта с последующим вызовом функции?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    А в чём сложность? Перебор свойств объекта - это же основы языка. Вы JS на каком уровне знаете?
    var obj = inputs.properties;
    for (let key in obj) {
    	console.log(key);
    	// myfunc(obj[key]);
    }
    Ответ написан
    5 комментариев
  • Как в JS объявить объект-функцию?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Так и добавьте.
    this.appendChunk = function(a){Logger.log('ActiveXObject ('+this.fileName+') appendChunk('+a+')');return 'appendChunk'};
    Ответ написан
    3 комментария
  • Как удалить слушателя "самого себя" removeEventListener?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Нужно сохранить ссылку на функцию в имени какой-то переменной, и дальше использовать эту переменную. Или можно просто объявить функцию с именем отдельно, что то же самое. Анонимная функция не подходит.
    let fn = function (e) {
      document.removeEventListener('click',fn);
    }
    document.addEventListener('click', fn);
    Ответ написан
    Комментировать
  • Как создать очередность выполнения функций в js?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    function a() {}
    function b() {}
    function c() {}
    
    let fn_arr = [a,b,c]; //Массив функций
    let current = 0;
    
    function onclick() { //Событие
    	fn_arr[current]();
    	current++;
    	if (current == fn_arr.length) current = 0;
    }
    Ответ написан
    Комментировать
  • Один белый IP адрес от провайдера редирект на mikrotik'е на 2 сервера?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Единственное решение "в лоб" вижу - это чтобы на микротике был отдельный веб-сервер или веб-прокси.

    Дело в том, что информация о домене передается в протоколе HTTP или HTTPS, а разбором этого протокола занимается веб-сервер. Далее этот веб-сервер может перенаправлять обращение к другому серверу - это уже детали.

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

    И раз уж такая песня пошла, то почему, собственно, микротик? Тогда уж можно ставить полноценный сервер в качестве маршрутизатора со всей вытекающий гибкостью.

    Ну и как ещё один вариант - перенести ваши сайты на один сервер, например 192.168.10.240.
    Ответ написан
    4 комментария
  • Как правильно посчитать координаты точки?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Решение в лоб. Вам нужно сначала получить уравнение прямой на плоскости, а потом проекцию точки на прямую на плоскости. Можете начинать гуглить. Это легко. Оба момента имеют конкретные известные формулы.
    Ответ написан
    Комментировать
  • Как сделать цикл в Photoshop?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Самое простое в голову приходит - сделать скрипт на каком-нибудь пхп или чем угодно, что под рукой. Времени скрипт отнимет, ну, максимум 2 часа у самого, извиняюсь, слоупока. А так где-то 30 минут. Если знакомых программистов нет, то биржа фриланса вам в помощь.
    Ответ написан
  • Как работать командой над большим проектом?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Организацией работы проекта занимается ПМ (project manager) со всеми вытекающими требованиями к умениям и навыкам, можно гуглить.

    Защиту можно сделать разными способами. И в целом безопасностью занимаются, извиняюсь, безопасники. То есть в идеале это должен быть кто-то из вашего костяка команды. Собственно, если это будете не вы, то отправьте одного из ваших на обучение, пусть хотя бы гуглит тему и изучает самостоятельно.

    Придумать можно много чего. Письменный договор - полезно в качестве подстраховки. А так можно использовать разграничение доступа к файлам и папкам, можно сделать что-то типа онлайн редактора (я так понял у вас проект - это сайт). Новые фичи можно как-то обкатывать на отдельных страничках, а может и на отдельном сервере, так заранее и не скажешь без понимания всей кухни. В некоторых организациях, например, запрещают доступ в Интернет и выдергивают нафиг все USB разъёмы, чтобы скопировать нельзя было. Но еще раз повторюсь - это отдельная работа и ответственность. И много всяких тонкостей. Ею занимается безопасник. То есть, к примеру, сотрудник без прав вполне сможет подружиться, а потом попросить друга одолжить доступ. Прикольный пример можно увидеть в сериале "24 часа" - там примерно половина времени это борьба хороших и плохих с бюрократией и разграничением доступа, обман, интриги, разоблачение, использование служебных полномочий, и периодически плохие оказываются у власти, а хорошие не могут до них добраться как раз из-за этих ограничений. Суть в том, что идеальной системы нет, и ни вы, никто другой, не сможете всё контролировать.
    Ответ написан
    1 комментарий
  • Законно ли использовать второстепенные названия из чужих произведений (игр, фильмов и т.п.) в качестве своего доменного имени?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Зарегистрированные торговые знаки - нельзя, остальное - можно.

    Например, Fallout - нельзя, гуль (Ghoul) - можно.

    В принципе, домен зарегистрировать в любом случае можно, но в случае нарушения домен потом могут отжать. Но не обязательно. Полно примеров, например, сайтов со словом "sims" или "sims3" в названии. Просто правообладатель не чешется, вот и всё (и, кстати, разумно поступает).

    Опять же, если это составной домен типа mods-for-fallout.com - то вряд ли кто-то будет возмущаться, потому что вы не присваиваете торговый знак. Но в случае конфликта суд решит спор.

    Королевства из романа, название империи - это всё можно. Более того, авторам не принадлежат права на эти названия, так что об этом не нужно писать. Ещё примеры: хоббит, эльф, мордор, чужой и т.д.
    Ответ написан
    Комментировать
  • Почему конструкция "1 больше 1 меньше 1" в JavaScript возвращает true?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    В каждом языке программирования есть правила, которые определяют порядок выполнения операций в выражениях. Самый простой пример - умножение считается всегда раньше, чем сложение. Скобки могут менять порядок (затем они и нужны), но без скобок работают эти правила.

    Чтобы их выяснить, нужно набрать в гугле "javascript precedence". Советую эту таблицу знать очень хорошо, чтобы считалось, что язык вы знаете.

    Погуглив, вы выясните две вещи:
    1) Операции > и < имеют одинаковый приоритет.
    2) Ассоциативность "left-to-right", то есть слева направо.

    Второе означает, что сначала будет посчитано левое выражение 1>1, которое false. А затем результат (false) будет посчитан с правым: false<1, где false автоматически преобразуется в 0.

    В качестве тренировки посчитайте на бумажке, используя только таблицу приоритетов операций, такое выражение:
    0 / 0 ^ 0 === 0 ? 'a' : 'b';
    Решение и ответ, для самопроверки
    0 / 0 ^ 0 === 0 ? 'a' : 'b';
    0 / 0 ^ (0 === 0) ? 'a' : 'b'; // "===" has more priority than "^"
    0 / 0 ^ true ? 'a' : 'b';
    (0 / 0) ^ true ? 'a' : 'b'; // "/" has more priority than "^"
    NaN ^ true ? 'a' : 'b';
    NaN ^ 1 ? 'a' : 'b'; //converted to number
    1 ? 'a' : 'b'; //for some reason
    'a'
    Ответ написан
    2 комментария
  • Какие современные методы защиты программного обеспечения?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Самый современный метод - это активация по сети. Дело в том, что это удобно. То есть если у вас уникальный софт, и аналогов ему нет, то можете издеваться над пользователем, как хотите. Но если покупка у конкурентов проще, то вы просто потеряете клиентов.

    В частности, довольно надежный способ защиты, когда работа приложения возможна только в онлайне. Оно осуществляет подсоединение к вашему серверу, который не позволяет запускать другие копии софта с тем же ключом. Из минусов - надо держать свой сервер и четко следить за его работой. Из плюсов - пользователь получает гибкость в плане переноса софта на другие машины. Такой подход меняет соответственно и оплату - услуга становится подпиской, а софт сдается в аренду.

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

    А если приложение простое, которое конкуренты могут слепить за месяц, то здесь важно, извиняюсь, не защищать приложение вообще. Его наверняка спиратят, если оно хорошее, но это только на пользу идёт, реклама, и его больше будут покупать. Опять же, смотря какие цены, но на простое приложение цена должна быть копеечной, а основной упор на массовость продаж в купе с микроскопической себестоимостью.
    Ответ написан
    Комментировать
  • Как подсчитать количество тегов p в блоке div?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    (document.getElementsByClassName('wrap')[0].innerHTML.match(/<p[\s>]/gi)||[]).length;
    Ответ написан
  • Проблема с конструкцией IF и сравнением логических значений?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    В общем виде как-то так:
    function foo() {
    	return foo.x=!foo.x;
    }
    console.log(foo()); //True
    console.log(foo()); //False
    Ответ написан
  • Как объединить объекты с одинаковыми свойствами?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Например, так:
    var data = [{pageID: "190", amount: "1"}, {pageID: "190", amount: "2"}];
    
    function combineObjects(data) {
    	let arr = [];
    	data.forEach(obj=>{
    		let pageID = obj.pageID;
    		arr[pageID] = arr[pageID] || {pageID: pageID, amount: 0};
    		arr[pageID].amount = +arr[pageID].amount+ +obj.amount+'';
    	});
    	return arr.filter(e=>e);
    }
    
    console.log(sumObjects(data)); // [{pageID: "190", amount: "3"}]
    Ответ написан
    3 комментария
  • Как проверять вхождение подстроки в любом регистре?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    let value = "Иван";
    let text = "ив";
    let result = (value.toLowerCase().indexOf(text.toLowerCase()) !== -1); // true
    Ответ написан
    Комментировать
  • Как сделать сайт на двух языках?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Если языка всего два, то удобнее всего (для клиента) загрузить оба языка в одной странице, тем более это лендинг и далёкое путешествие по сайту и море контента не планируется.

    Таким образом, нужно:
    1) Хранение текущего языка в куках или в локальном хранилище.
    2) Если пользователь в первый раз на сайте, то автоматически определить язык. Проще всего это сделать путём JS через navigator.language, navigator.languages и т.д. (надо гуглить).
    3) Кнопка переключения языков, где хотите.
    4) Язык меняется без перезагрузки страницы. Это тоже JS.
    5) Имхо, также важно, чтобы сайт работал без JS - например, на английском. Хотя на сервере тоже можно определять язык, и менять местами контент, но в целом это лишнее, если мало платят за работу.
    Ответ написан
    Комментировать
  • Можно ли автоматически создавать столбцы в Google таблице?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Ссылки по теме
    https://www.quora.com/How-can-I-periodically-run-a...
    https://developers.google.com/apps-script/guides/t...
    В общем, легко гуглится. Там дальше знания JS нужны.
    Ответ написан
    Комментировать
  • Как запретить использование двух или более одинаковых символов подрят?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    В общем случае проверить наличие одинаковых подряд символов можно так:
    (.)\1

    А какой язык программирования?
    Ответ написан
  • Почему отправка сообщений через ajax работает не во всех браузерах?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Пусть клиент перечислит браузеры, для которых хочет совместимости.
    Дальше, думаю, не проблема отладить скрипт для каждого в отдельности.
    Ни вы, ни мы не должны гадать, что там за "не все" браузеры у клиента, может он вообще имеет в виду Netscape Navigator.
    Ответ написан
  • Что нужно, чтобы создать бота для браузерной игры?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Вообще JavaScript. Как вариант - расширение для браузера.

    Но если игра спрятана в безымянной функции, то перехват трафика, это чуть сложнее. Хотя, возможно, это могут делать опять-таки расширения: поправьте меня, кто знает, но вроде webRequest позволяет менять код страницы до её загрузки.
    Ответ написан
    Комментировать