• Как сделать приложение популярным?

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

    Есть вариант самому пошуметь в Интернете, но это особо ничего не даст.

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

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    function enoughTime() { // Возвращает true, если прошло больше 2 секунд
      let now = (new Date()).getTime();
      if (!enoughTime.save) enoughTime.save = now/2;
      if (now - enoughTime.save < 2000) return false;
      enoughTime.save = now;
      return true;
    }
    Ответ написан
    Комментировать
  • Как прервать setTimeout?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Потому что timerId у тебя локальный. Он виден только внутри функции, и не сохраняется по завершению функции. Так что где бы ты его ни использовал, timerId будет не определён. Объявляй его вне функции или запоминай в чём-то, что существует дольше.
    spoiler
    var header = document.querySelector('.sticky');
    var timerId; //объявляем глобально!
    
    window.onscroll = function showHeader () {
      if (window.pageYOffset > 138) {
        header.classList.remove('goback');
        header.classList.add('sticky-header');
      } else {
        header.classList.add('goback');
        timerId = setTimeout(function () {
      		header.classList.remove('sticky-header');
        }, 250)
      }
    }
    
    if (window.pageYOffset > 138) {
      header.classList.add('sticky-header');
    }
    Ответ написан
  • Как изменить состояния всех чекбоксов?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    function setCheckAll() {
    	let c;
    	document.querySelectorAll('input[type=checkbox]').forEach(e=>{
    		if (e.id=='main-checkbox') return (c=e.checked);
    		e.checked=c;
    	});
    }
    Ответ написан
    Комментировать
  • Можно добавить собственный тег?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Можно, напишите в суппорт (внизу кнопка "Обратная связь"). Коротко и внятно обоснуйте им. Ждите около 1 суток.
    Ответ написан
    Комментировать
  • Как обезопасить себя от кидка с оплатой?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    В коде JS зашить бекдор или плановое устаревание, а сам код сильно обфусцировать. После оплаты предоставить клиенту бесплатное обновление без всего этого. Если клиент захочет исходники, то также только после оплаты. Универсальных рецептов нет.

    Но об этом надо думать заранее. А когда УЖЕ отдал готовый проект, то ситуация такая же, как если вы захотите сделать плохо любому другому незнакомому человеку. Сразу скажу, что это возможно. Но вам придется тратить СВОИ время и силы на то, чтобы сделать плохо. Это называется месть (а не справедливость, как вы сказали). В целом, месть - это не очень разумно, имхо. Но реально. Так что если хотите, можете заниматься этим. Для этого нужно будет изучить врага, что ему дорого, слабые места, и бить по ним. Например, затаскать по судам (тратить время клиента, даже если проиграете). Или бить по репутации, по отзывам и т.д. Можно, например, агрессивно продвигать сайт клиента за свой счет, чтобы в какой-то момент поисковики исключили его из выдачи. Ну хотя я не в курсе, сработает ли такое в наши дни. Но суть та же - это война. В общем, дорогое удовольствие. Не советую. Проще в будущем быть мудрее.
    Ответ написан
    2 комментария
  • Очень много вкладок браузера, как решить?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    • Запоминаю расположение вкладок визуально, и ориентируюсь по как бы координатам.
    • Больше 70 вкладок в экран не влезает у Chrome (1280px), поэтому периодически (1 раз в день) устраиваю зачистку.
    • Чистить всё равно приходится, потому что бесконечно нельзя открывать, т.к. это всё оперативная память, 32 гигов не хватает.

    Ещё в Firefox есть возможность как-то делать дерево вкладок. Говорят, очень удобно организует их.
    Ответ написан
  • UserAgent у сервиса?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Такой и есть: a.pr-cy.ru
    Ответ написан
    Комментировать
  • Как доработать кнопку?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    <button type="button" onclick='demo=document.getElementById("demo");!window.mysave?(mysave=demo.innerHTML):0;demo.innerHTML = demo.innerHTML==mysave?"Hello JavaScript!":mysave'> Click Me!</button>

    https://codepen.io/anon/pen/agvdQv
    Ответ написан
  • Почему перегревается новый игровой ноутбук?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Это нормально.

    Официально у процессора Intel Core i5-8300H максимальная температура 100 градусов. Но, думаю, система не даст превысить это значение, либо превысит незначительно. Заработают кулера и троттлинг. Так что переживать не стоит.

    У меня была история как раз про холодный i5, когда кулер (правда, в пк) после нескольких лет использования начал шуметь. Менять было лень. Не долго думая, я заглянул во внутренности и просто вставил в него стержень, чтобы он заглох (лень было даже искать, где он отключается). После чего проц прослужил мне верой и правдой ещё несколько месяцев на пониженной частоте, пока я не удосужился всё сделать по-нормальному.
    Ответ написан
    Комментировать
  • Хитрый алгоритм Инстаграмма?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Причина может быть, в чём угодно. Но даже если вы её выясните, и эта информация решит вашу проблему, то, скорее всего, решение будет временным. Ведь Инстаграмм заинтересован в том, чтобы филтровать ботов, а значит:
    а) им не выгодно раскрывать карты и объяснять, как они вычисляют ботов.
    б) механизм отсева постоянно будет совершенствоваться.

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

    Навскидку могу назвать способ детекта ботов, который бы я сделал, если бы меня эта тема волновала - это отслеживание движений мыши. Ведь User Agent и ip давно не показатель. Но мышь - это только начало. Даже обфусцированный скрипт хакер при желании расковыряет. Так что я бы не только проверял движения мыши на наличие, а записывал бы траекторию движения и отправлял на сервер, а там уже хитрый алгоритм анализировал бы форму движений и выдавал своё экспертное заключение. Дальше война (пули и брони) развернулась бы в плоскости психологии кисти руки, если её можно так назвать. Это касается десктопов. В мобайле, соответственно, - координаты тапов, характер скролла, тайминги между действиями и всякое такое. Конечно, это всё не в ущерб юзер экспириенсу. А так можно просто капчу выводить при малейшем подозрении.
    Ответ написан
    5 комментариев
  • За счет чего можно добиться вау-эффекта в Landing page?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    По сути ваш вопрос касается только одной темы - маркетинга.

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

    Например, если сайт посвящен юридическим услугам, то анимешная девочка или хитрый шейдер могут уменьшить конверсию, а не увеличить.

    Так что однозначных рецептов дать нельзя. Смотреть нужно в сторону маркетинга и просто здравого смысла. Например, A/B тестирование - это технология именно маркетинга, а не дизайна или программирования (и порой она даёт очень необычные результаты).

    Вспоминая прошлое, могу сказать, что в начале 2000х была мода делать всякие свисто-перделки на своих сайтах, всякие анимации, выезжающие меню, выпрыгивающих персонажей, падающий снег и т.д. Авторы таких творений почему-то думали, что это безумно круто и должно нравиться всем. По факту это нравилось только авторам этих поделок. Большинству же важно наполнение сайта контентом, удобство восприятия контента. А всякие типа вау-эффекты на самом деле только отвлекают и на них вырабатывается аналог рекламной слепоты (но не у всех, некоторых просто бесит). Так что если лендинг посвящен, скажем, пылесосам, то сделайте ознакомление удобным - например, обзор продукта в 3D. Это будет лучший вау-эффект в данной конкретной тематике.
    Ответ написан
    1 комментарий
  • Если комп оставить долго включенным с запущенным furmark то видеокарта сгорит?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Были времена, когда процессоры без охлаждения сначала нагревались, потом дымились, но продолжали работать до тех пор, пока не сгорят. Но это было очень-очень давно. В наши дни практически все системы снабжены защитой от этого, так что можете не переживать и делать любые стресс-тесты. Изнашиваются, в первую очередь, вентиляторы системы охлаждения, но 3-4 часа погоды точно не сделают.
    Ответ написан
    5 комментариев
  • Сколько жрет NTFS? И как ей пользоваться?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    А вы откройте свойства папки и посмотрите.
    Пример в винде
    5d024d8886396477913239.png

    Также можете сделать меньше размер кластера при форматировании, если у вас очень много мелких файлов.
    Пример в винде
    5d024ecdf0966522223088.png


    P.S. Странно, что вас при этом не интересует износ диска и все хитрости под капотом с этим связанные.

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

    Ещё есть тонкость, что на NTFS дисках минимум 12% места желательно держать свободными, это тоже влияет на скорость. А в случае SSD лучше ещё больше места оставлять незанятым.
    Ответ написан
    1 комментарий
  • Как принять только N-ный параметр функции?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Обработать последний аргумент функции:
    Код
    function foo() {
      console.log(arguments[arguments.length-1]);
    }
    
    foo(1,2,3,4,5,6,7); // 7
    Ответ написан
    Комментировать
  • Как сделать тест знаний на чистом javascript?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Я делаю все вопросы в отдельной структуре.
    Примерно так
    var data = [
    	{
    		name:'Психотип - это',
    		radio:['темперамент','акцентуация','соционический тип','экстраверсия','архетип','характер','ничего из этого'],
    		answer: 7,
    	},
    	{
    		name:'Что позволяет игра с точки зрения социологов?',
    		checkbox:['выразить себя','снять запреты','снять напряжение',],
    		answer: 1 + 10, //+100
    	},
    	{
    		name:'Что есть игра с точки зрения биогенетиков?',
    		checkbox:['атавизм','приготовление к жизни','снятие напряжения',],
    		answer: 1, // +10 +100,
    	},
    	// и так далее
    ];

    А на экране показываю одновременно только один вопрос и кнопку "Дальше". То есть DOM формируется динамически. Причем, при показе вопроса варианты ответов перемешиваются (кроме вариантов "ничего из вышеперечисленного" и "всё вышеперечисленное", которые добавляются в конец).

    Собственно, порядок вопросов тоже можно перемешать. Но здесь уже начинаются тонкости. Потому что некоторые вопросы стоит показывать в определенном порядке. А некоторые вопросы не стоит показывать вообще, если был дан неправильный ответ на определенный предыдущий вопрос. Не знаю, стоит ли вам заморачиваться так, как я.

    К слову, тест знаний делать на js - так себе идея. Ведь шпаргалка открывается в два клика (или комбинацией Ctrl+U) и читается без навыков программирования. По уму вопросы и ответы должны перемешиваться на сервере, id ответов должны быть каждый раз произвольные типа fGx9PeL7, подсказки ответа в js коде не должно быть вообще (проверка ответа только на сервере), вопросы должны отдаваться не все сразу, а порциями через ajax, ну и на каждый вопрос должно отводиться ограниченное время. А если лимита времени нет, то придется физически стоять над душой респондента и смотреть, чтобы он не лез в Гугл за подсказками. Ведь тест знаний должен проверять знания в предметной области, а не хакерские способности или скорость гугления.
    Ответ написан
    4 комментария
  • Как сравнять значения в localStorage?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    localStorage.Mam = localStorage.Dad;
    Ещё
    localStorage["Mam"] = localStorage["Dad"];
    Ответ написан
    7 комментариев
  • Query Google Таблицы, Как вывести только уникальные?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    В ячейке D2 впишите формулу:
    =IF(COUNTIF($C$2:$C2;C2)<2;"Unique";"Duplicate")
    Растяните её на весь столбец D - в нём будут помечены уникальные значения и дубликаты.

    Теперь можно поменять основную формулу на:
    =UNIQUE(QUERY(FILTER(A1:D4;D1:D4="Unique");"Select Col1, Col2, Col3"))
    Ответ написан
    1 комментарий
  • Что это за разъем?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Тогда что-то вроде этого. Без названия. Просто кабель 8-пин.
    Там на оф. сайте ещё есть варианты.
    Ответ написан
    Комментировать
  • Архитектурный вопрос. Может ли клиент иметь бизнес логику?

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

    Назвать тонким клиентом можно. Но зависит от того, сколько логики выносится на клиент. Если много, то это уже не тонкий клиент. Например, игра типа шутера - основная логика на сервере, но и на клиенте прилично вычислений.
    Ответ написан
    Комментировать