Задать вопрос
  • Как ReCAPTCHA v3 определяет, что бот это бот?

    kocherman
    @kocherman
    Space Around, от качества ip много чего зависит, а также полезным будет менять разрешение экрана.
  • Как ReCAPTCHA v3 определяет, что бот это бот?

    kocherman
    @kocherman
    Space Around, я занимался бонусхастингом, но давно
  • У гугла (гугл диска) есть способ создавать\хранить\просматривать схемы?

    kocherman
    @kocherman
    Павел, gojs должна работать на мобильниках, touch-события биндятся.

    Но всё же это не готовое решение. А вот текстовые файлы - это 100% поддерживается всеми редакторами и можно примонтировать диск как локальный - будет работать по сети.
    Или работа через SSH.
  • Как лучше сделать 'календарик'?

    kocherman
    @kocherman
    Alex Wells, а у меня много денег, мне не важен бизнес. Прикрывать нехваткой времени беспомощность для меня кажется абсурдом.
    Если бы вы знали Си, то знали бы, что Си и Си++ имеют абсолютно разное назначение. А понимание ассемблерного кода необходимо хотя бы для реверс-инжениринга любого софта (даже программ написанных на java).
    Ну а rust - это удел функционального программирования, о котором вы могли прочитать в википедии. Там же подробно про побочные эффекты и чистые функции.

    Симптомы на лицо:
    1) Невозможность думать над задачей больше 10 секунд подряд.
    2) Незнание правил игры в шахматы.
    3) Незнание школьного курса дискретной математики.
    4) Постановка своих фантазий выше того, чтобы прочитать статью в википедии.

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

    Докажите что я неправ. Прикрутите кнопку отмены последних трех ходов к тому алгоритму. У меня на это потребовалось не больше 7 минут и я сократил код еще на 60 байт. Для вас бы я не ставил никаких ограничений по времени и количеству кода. Можете подключить туда все любимые фреймворки и потратить на одну кнопочку неограниченное время. Если хотите, я вам даже оплачу это время. Но это в первую очередь будет полезным для вас. Мне не надо ничего доказывать. Докажите себе, что вы на это способны!
  • Как ReCAPTCHA v3 определяет, что бот это бот?

    kocherman
    @kocherman
    PhantomJS раза в 3 быстрее конечно, но в PhantomJS половина страниц не работает.
    https://github.com/ariya/phantomjs/graphs/contributors
  • Как лучше сделать 'календарик'?

    kocherman
    @kocherman
    Alex Wells, и вообще причем тут бизнес?
    Вы можете меня обмануть, обмануть родителей, детей, начальство, но себе то зачем врать? Просто скажите себе честно: "я тугодум!". Осознание проблемы - это уже пол пути к исправлению. Я конечно не доктор разбрасывать диагнозы. Но знания можно подтянуть, мышление тренировать.

    Интересно, а как вы ассемблерный код писать будете? с комментариями как в учебниках?.
  • Как лучше сделать 'календарик'?

    kocherman
    @kocherman
    Alex Wells,
    Аргументируй... покажи в реальной математике операцию побитового сдвига вправо. Жду ссылку.


    https://math.wikia.org/ru/wiki/%D0%91%D0%B8%D1%82%...

    Не собираюсь я на это тратить и секунды.

    Тогда вы не умеете играть в шахматы.
  • Как ReCAPTCHA v3 определяет, что бот это бот?

    kocherman
    @kocherman
    Space Around, потому что у IE6 самая плохая поддержка яваскрипта. От него можно чего угодно ожидать. Где-то это может помочь. По сути phantomjs недалеко от IE6-8 ушел. EcmaScript6 он не умеет. Хотя может сейчас и умеет. Но говорить сайтам об этом не обязательно. Чем древнее версия - тем меньше требований к браузеру.
  • У гугла (гугл диска) есть способ создавать\хранить\просматривать схемы?

    kocherman
    @kocherman
    Markdown/reST/GFM - они все "текст", и на 95% одно и тоже.
    TeX - это тоже отчасти форматированный текст (что-то вроде HTML, но гибче).
    TeX имеет много расширений. Одни для работы, например, с сложными математическими
    или химическими формулами. Другие, например, для форматирования данных в виде таблиц, графиков и диаграмм. Есть расширения даже для форматирования электрических схем.

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

    Почему текст - это лучшее представление для графических диаграмм и прочих схем?
    Потому что для редактирования их нам нужен всего-лишь текстовый редактор. Также очень удобно отслеживать версии документа.

    Надеюсь, вы найдете удобный текстовый редактор на мобильном телефоне. Если пока только выбираете, то советую VIM.
  • Как ReCAPTCHA v3 определяет, что бот это бот?

    kocherman
    @kocherman
    Space Around, phantomjs штука классная. Для phantomjs я бы предложил сменить User-Agent на какой-нибудь такой:
    Mozilla/4.0 (compatible; U; MSIE 6.0; Windows NT 5.1)

    или такой
    Mozilla/4.0 (compatible; MSIE 6.01; Windows NT 6.0)
  • Как лучше сделать 'календарик'?

    kocherman
    @kocherman
    Alex Wells,
    потратил 10 минут на разбор

    А у вас реально проблемы с разбором чужого кода.
    Интересно сколько бы ушло времени на разбор, например, вот такого. Поиграйте на этой страничке, и расслабьтесь, там нет отмены хода.
    for(B=i=y=u=b=i=5-5,x=10,I=[],l=[];B++<304;I[B-1]=B%x?B/x%x<2|B%x<2?7:B/x&4?0:l[i++]="ECDFBDCEAAAAAAAAIIIIIIIIMKLNJLKM@G@TSb~?A6J57IKJT576,+-48HLSUmgukgg OJNMLK  IDHGFE".charCodeAt(y++)-64:7);function X(c,h,e,s){c^=8;for(var o,S,C,A,R,T,G,d=e&&X(c,0)>1e4,n,N=-1e8,O=20,K=78-h<<9;++O<99;)if((o=I[T=O])&&(G=o^c)<7){A=G--&2?8:4;C=o-9?l[61+G]:49;do if(!(R=I[T+=l[C]])&&!!G|A<3||(R+1^c)>9&&G|A>2){if(!(R-2&7))return K;n=G|(c?T>29:T<91)?o:6^c;S=(R&&l[R&7|32]*2-h-G)+(n-o?110:!G&&(A<2)+1);if(e>h||1<e&e==h&&S>2|d){I[T]=n;I[O]=0;S-=X(c,h+1,e,S-N);if(!(h||e-1|B-O|T-b|S<-1e4))return W(),c&&setTimeout("X(8,0,2),X(8,0,1)",75);I[O]=o;I[T]=R}if(S>N||!h&S==N&&Math.random()<.5)if(N=S,e>1)if(h?s-S<0:(B=O,b=T,0))break}while(!R&G>2||(T=O,(G||A>2|(c?O>78:O<41)&!R)&&++C*--A))}return-K+768<N|d&&N}function W(){i="<table>";for(u=18;u<99;document.body.innerHTML=i+=++u%x-9?"<th width=60 height=60 onclick='I[b="+u+"]>8?W():X(0,0,1)'style='font-size:50px'bgcolor=#"+(u-B?u*.9&1||9:"d")+"0f0e0>&#"+(I[u]?9808+l[67+I[u]]:160):u++&&"<tr>")B=b}W()
  • Как лучше сделать 'календарик'?

    kocherman
    @kocherman
    Alex Wells, Друг. >> - такая же математическая операция как +, ~, /, %, & или | или даже **.
    2) почему new Array()? = []; - не?

    А до этого спрашивал почему [,,,,,,,] а не new Array(7).
    Понимаешь, в этой функции кроме базового использования for нет алгоритма, есть только формула. И вообще, что может быть непонятно, если написать тот-же комментарий в коде?
    console.log(cal(2020,8));
    [
      [   ,   ,   ,   ,   ,   ,  1 ],
      [  2,  3,  4,  5,  6,  7,  8 ],
      [  9, 10, 11, 12, 13, 14, 15 ],
      [ 16, 17, 18, 19, 20, 21, 22 ],
      [ 23, 24, 25, 26, 27, 28, 29 ],
      [ 30, 31,   ,   ,   ,   ,    ]
    ]

    Зачем это вообще поддерживать, если это и так работает?
    Хочешь исправить - напиши по своему.
    Причем тут ФП?

    Прочитайте страницу википедии еще раз. И в частности про чистоту функции и побочные эффекты.
    Использование Math.trunc, Math.pow - это и есть побочные эффекты.
  • Как лучше сделать 'календарик'?

    kocherman
    @kocherman
    Alex Wells,
    Следуя вашим советам, убрал побитовые сдвиги, расставил отступы и сделал осмысленные имена.
    function cal ( year, month ) {
      const { trunc, pow } = Math;
      const leap = year % 4;
      const result = new Array ( );
      let weekCounter = ( trunc ( 23 * month / 9 ) + ( month < 3 ? year -- : year - 2 ) + 5 + trunc ( year / 4 ) - trunc ( year / 100 ) + trunc ( year / 400 ) ) % 7;
      const monthEnd = 29 + trunc ( ( 62648012 + pow ( 2, 2 * 2 ) * ! leap ) / pow ( 2, month * 2 ) ) % pow( 2, 2 );
      for ( let day = 1, week = 0; day < monthEnd; ++ day ) {
        if ( ! result [ week ] ) {
          result [ week ] = new Array ( 7 );
        }
        result [ week ] [ weekCounter ] = day;
        weekCounter = ++ weekCounter % 7;
        week += ! weekCounter;
      }
      return result;
    }

    Да, теперь решение стало на 100% не читаемым. За длинными именами переменных теряется смысл простых формул. Представьте, если бы математики вместо x и i использовали бы counter и incrementor. Читабельны бы были формулы? - Ну, формулы бы были однозначно длиннее. Теоретически, это придавало бы автору важности, но не среди математиков.

    А теперь, о сравнительных характеристиках кода.

    Я уже заметил. что код стал не читаемым для людей. К сожалению, он также стал более затратно-исполнимым для webkit (полагаю, и для других движков тоже). Видите ли, мой код написан с точки зрения ФП приблизительно идеально (без побочных эффектов), а в последнем решении присутствует аж три замыкания. Я честн попробовал оптимизировать код тремя инструментами: WebPack, Babel, Google Closure Compiler. Что я могу сказать про расхваленный вами WebPack. WebPack не только не оптимизировал ни одного замыкания, он просто наплодил в два раза больше новых замыканий. От чего мне стало даже грустно за WebPack. Но факт остаётся фактом, он справляется хорошо лишь с одной задачей - убирать пробелы там, где они явно лишние. Оптимизатор JavaScript игнорирует код с замыканиями. Безусловно, такой код будет работать в десятки раз медленнее, при этом забирая в десятки раз больше ресурсов. Мой же код будет работать также быстро, как будто я его написал на чистом си.
    Что касается читаемости кода. Вы знаете, я немного слукавил когда отметил что underscore имеет операции "побитовые сдвиги" в своём коде. Позже выяснилось, что они там были, но в комментариях. Так как я запускал поиск используя ack по всему репозиторию, я заметил это не сразу. Похоже, действительно, боженька не всех одарил математикой. Но, лично для меня, например, код m >> n * 2 куда понятнее, чем Math.trunc ( m / Math.pow ( 2, n * 2 ) ). Аналогично этому, если бы, например, я не знал таблицу умножения и категорически избегал таких операций как m = x * y, реализуя циклом
    let res = 0; for(let i = 0; i < y; i ++) res = res + x
    . Вы смеётесь, а такое я встречаю постоянно. Там тоже самое: простая формула в одну операцию с логарифмом заменена целой программой разными циклами. У кого-то вызывает сложности безопасный арктангенс Math.atan2() [ссылку добавлю чуть позже]. Что тут сказать?! И среди программистов порой случаются гуманитарии.

    Вечером опубликую сравнительные тесты производительности, параметры оптимизаций WebPack, Babel и GCC. Будет занятно детально проанализировать огромную разницу в производительности.
  • Как лучше сделать 'календарик'?

    kocherman
    @kocherman
    Alex Wells, Ну а ~~v и >>m&2&3 используется во всех фреймворках. Назовите хоть один, где такого нет. В jquery есть, в underscore, в lodash есть, в Vue есть. То, что вы не используете математические операции, говорит только об одном - для вас это слишком сложно. И оба вопроса из прошлого коммента положительны?
  • Как лучше сделать 'календарик'?

    kocherman
    @kocherman
    Alex Wells, вы считаете лучший код, тот код, который писали не вы? Или просто нравится добавлять на страничку пару мегабайтов кода, когда для решения задачи достаточно 200 байт?