Задать вопрос
  • JS fetch(): как отличить ошибку CORS от других?

    @MikUrrey Автор вопроса
    Как выяснилось, из соображений безопасности браузеры не делятся с веб-разработчиками причинами блокировок запросов, но с низкой точностью и по косвенным признакам причину ошибки все же можно определить:
    const url = 'some url';
    try {
          const response = await fetch(url);
          //.....
    } catch {
          if (url.startsWith('http:')) {
            console.log(`It's may be a mixed content error`);
          } else {
            try {
              await fetch(url, {'mode':'no-cors'}); //если ресурс доступен, то ошибки не будет
              console.log(`It's may be a CORS error`);
            } catch {
              console.log('Other error');
            }
          }
    }

    Применяя это решение где-либо, имейте в виду, что этот способ не дает 100% точный ответ, является ли ошибка CORS или нет.
    Ответ написан
    2 комментария
  • Динамическое получение скорости работы процессора?

    gbg
    @gbg Куратор тега Windows
    Любые ответы на любые вопросы
    Вадим Ушаков, Понимаете, ваш вопрос в определенном смысле абсурден, потому что вы хотите дословно "измерить неизвестно что неизвестно как".

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

    Но частота процессора хоть и кореллирует с тем как быстро он выполняет инструкции, но жестко с этим не связана. Потому что скорость выполения определенной программы определенным процессором зависит о от частоты, и от самой программы - можно умножение матриц написать как в MKL, с выравниванием кэша и интрисинками, а можно не написать и получить падение скорости раз так в 40, если не больше.

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

    irtek
    @irtek
    Wordpress-addicted
    DELETE FROM `wp_posts` WHERE `post_type` = "attachment";
    DELETE FROM `wp_postmeta` WHERE `meta_key` = "_wp_attached_file";
    DELETE FROM `wp_postmeta` WHERE `meta_key` = "_wp_attachment_metadata";


    Эти 3 запроса в базе данных удалят все основные записи о медиа, если не создавали каких-то индивидуальных полей для изображений.
    Ответ написан
    1 комментарий
  • Может ли статическое электричество попасть на процессор через радиатор?

    @VT100
    Embedded hardware & software.
    Для этого накопленному электричеству надо пробить сперва (см. анекдот о торможении двигателем) пластиковый корпус процессора RPi. Также - есть вероятность, что сверху корпуса процессора - металлический теплораспределитель, который "заземлён".
    Ответ написан
    Комментировать
  • Чем отличается зарядное устройство от блока питания, могут ли они взаимозаменятся?

    gbg
    @gbg Куратор тега Электроника
    Любые ответы на любые вопросы
    Блок питания (не лабораторный) - это источник напряжения. В нем может быть стабилизатор, тогда это источник стабилизированного напряжения.

    Блок питания лабораторный - может работать как источник стабилизированного напряжения, или как источник стабилизированного тока.

    Зарядное устройство - как правило, реализует специальный (для конкретной химии аккумулятора) алгоритм стабилизации тока или напряжения.

    Например, для свинцового аккумулятора принят метод зарядки стабильным током, равным 1/10 емкости, выраженной в ампер часах. Делаем выводы о пригодности:

    - простой кирпич без стабилизации - не пригоден
    - зарядка от ноутбука (кирпич со стабилизацией по напряжению) - не пригоден, нужен стабильный ток
    - лабораторник - есть стабилизация по току, годится.

    и так далее для всех типов аккумуляторов. Чтобы не угоробить высокоэнергетичные аккумуляторы (например, LiPol), их используют совместно со спецальной схемой управления зарядом/разрядом.
    Ответ написан
    Комментировать
  • Что нужно установить и сделать, чтобы начать пользоваться?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Консоль линукса и команду grep. Там много аргументов и возможностей.
    Команда sed - это фактически консольный потоковый текстовый редактор. Очень мощный, но сложный в понимании. Проще освоить питон и пользоваться для ваших целей вот такими однострочниками:
    $ man py | py 're.compile("\w{10,}").findall(sys.stdin.read())'
    completion
    expression
    DESCRIPTION
    expression
    interpreter
    compatible
    expression
    expression
    arithmetic
    automatically
    distribution

    Что тут происходит:
    Берём справку по консольной тулзе pythonpy, конвейером передаём в эту утилиту, которая выполнит кусочек питоновского кода. Код читает всё, что приходит на вход и находит все слова длинной 10 и более символов.
    Ответ написан
    Комментировать
  • Как самостоятельно оценивать объем работы и стоимость разработки?

    @FernandoErrNando
    обычно есть 2 пути:
    1. Оценка по фикс-прайсу
    2. Или Time&material.

    Первый путь начинается с анализа ТЗ, конечно же. Иногда, у заказчика есть какое-то описание в виде текстового файлика, мокапа, дизайна или ещё чего-нибудь. Если же нет, то тебе придется как-то формализовать его хотелки, перевести в понятный вид и написать тз самому, не для него, а для себя прежде всего. В нем ты описываешь весь функционал, который требуется, поведение пользователей, примерные нагрузки и т.д.
    Чем детальней написано тз - тем лучше.
    Например:
    Плохое ТЗ: В приложении можно авторизоваться через email/соцсети.
    Хорошее ТЗ: В приложении можно авторизоваться через email и соцсети facebook, vk, instagram. Пользователь может проходить авторизацию через любую соцсеть, при этом при авторизации через ещё непривязанную соцсеть мы должны обновлять данные пользователя.

    Дальше ты разбиваешь ТЗ на отдельные части, которые ты можешь оценить.
    Например:
    Авторизация по email: 2-3ч + 3-5 на каждую соцсеть.
    На те вещи, которую ты знаешь и много раз делал закладываешь разброс поменьше, то что не делал - побольше. НА интеграции с третьесторонними сервисами типа соц.сетей, платежных систем, закрытых API, невнятно описанных вещей в ТЗ и т.д. делаешь большой рейндж, т.к. велик риск проблем с доступами, сложностей получения, неактульных документаций и прочим. Если что-то непонятно, лучше спросить у заказчика заранее и описать возможные проблемы, возможно, вы найдете другое решение.

    В конце концов у тебя получится 2 оценки - оптимистичная и пессимистичная. Можно ещё добавить какой-нибудь коэффициент, на который надо умножить, если твои оценки обычно слишком оптимистичны ("да тут работы на 2 дня", а сидишь неделю) или наоборот, излишне пессимистичны ("мне надо месяц, а делаю за неделю").

    Далее ты понимаешь работа займет, к примеру 250-300 чч, умножай её на свою часовую ставку. вот ты и получил примерную стоимость работ. Не забудь прибавить стоимость всех материальных затрат, специфичных для (хостинги, доменное имя, спец. оборудование, доступ к платному АПИ).

    Также не забудь учесть, сколько ты сможешь работать, а то он может подумать, что это 250чч - это 1 месяц работы, а в реальности у тебя основная работа/семья/кошка и ты можешь дать только 100чч/месяц.

    2 путь сложнее:
    Заказчик любит менять концепцию, тз нет и не будет ему важно быстро тестировать свои идеи и что в итоге выйдет он плохо себе представляет - тогда ты просто ему озвучиваешь стоимость часа и сколько времени ты можешь ему уделить. Основные сложности - это то, что можно нагородить говнокода из-за постоянных изменений, и каждая дальнейшая правка будет занимать все больше времени, а рефакторинг в таком случае очень трудно продавить.
    Ответ написан
    Комментировать
  • Сколько килобайтов существует в природе?

    @deliro
    2**(8*1024) == 1090748135619415929462984244733782862448264161996232692431832786189721331849119295216264234525201987223957291796157025273109870820177184063610979765077554799078906298842192989538609825228048205159696851613591638196771886542609324560121290553901886301017900252535799917200010079600026535836800905297805880952350501630195475653911005312364560014847426035293551245843928918752768696279344088055617515694349945406677825140814900616105920256438504578013326493565836047242407382442812245131517757519164899226365743722432277368075027627883045206501792761700945699168497257879683851737049996900961120515655050115561271491492515342105748966629547032786321505730828430221664970324396138635251626409516168005427623435996308921691446181187406395310665404885739434832877428167407495370993511868756359970390117021823616749458620969857006263612082706715408157066575137281027022310927564910276759160520878304632411049364568754920967322982459184763427383790272448438018526977764941072715611580434690827459339991961414242741410599117426060556483763756314527611362658628383368621157993638020878537675545336789915694234433955666315070087213535470255670312004130725495834508357439653828936077080978550578912967907352780054935621561090795845172954115972927479877527738560008204118558930004777748727761853813510493840581861598652211605960308356405941821189714037868726219481498727603653616298856174822413033485438785324024751419417183012281078209729303537372804574372095228703622776363945290869806258422355148507571039619387449629866808188769662815778153079393179093143648340761738581819563002994422790754955061288818308430079648693232179158765918035565216157115402992120276155607873107937477466841528362987708699450152031231862594203085693838944657061346236704234026821102958954951197087076546186622796294536451620756509351018906023773821539532776208676978589731966330308893304665169436185078350641568336944530051437491311298834367265238595404904273455928723949525227184617404367854754610474377019768025576605881038077270707717942221977090385438585844095492116099852538903974655703943973086090930596963360767529964938414598185705963754561497355827813623833288906309004288017321424808663962671333528009232758350873059614118723781422101460198615747386855096896089189180441339558524822867541113212638793675567650340362970031930023397828465318547238244232028015189689660418822976000815437610652254270163595650875433851147123214227266605403581781469090806576468950587661997186505665475715792896


    Хватит?
    Ответ написан
    4 комментария
  • Сколько килобайтов существует в природе?

    @galaxy
    28000 или 28192, в зависимости от того, что вы имеете в виду под килобайтом

    В каждой битовой позиции может быть 0 или 1, по два варианта на каждую из 8000 (8192) позиций.
    Ответ написан
    Комментировать
  • Как максимально просто и быстро переименовать файлы по маске?

    Lynn
    @Lynn
    nginx, js, css
    Ну на bash вручную несложно:
    for i in {1..99}; do a=00$i; mv $i ${a: -3}; done
    Ответ написан
    5 комментариев
  • Как в гугл-таблице получить курс токена на текущий момент?

    idShura
    @idShura
    1. Разбираетесь с API
    https://www.coingecko.com/ru/api/documentation

    Пример:

    Получаете список coins и находите id нужных криптовалют
    https://api.coingecko.com/api/v3/coins/list
    [
        {
            "id": "01coin",
            "name": "01coin",
            "symbol": "zoc"
        },
        {
            "id": "bitcoin",
            "name": "Bitcoin",
            "symbol": "btc"
        }
    ]


    Пример получения курса Bitcoin в rub и usd
    https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=rub%2Cusd


    2. Устанавливаете ImportJSON в google sheets
    ImportJSON

    3. Ипортируете данные
    =ImportJSON("https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=rub%2Cusd"; "/bitcoin/usd";)


    61b97696dea36789907526.png

    Пример Google sheets
    Ответ написан
    Комментировать
  • Что означает "!!~"?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Сокращалка, удобная для indexOf(), который возвращает -1 если не найдено, или индекс от 0 и больше.

    Для логики приложения часто бывает нужно узнать только, найдено или нет: т.е. -1 или иное значение. Можно просто сравнивать if (a.indexOf(b) > -1) { /* найдено! */ } но иногда хочется короче.

    Битовый оператор НЕ ~ хорош тем, что выделяет -1: только -1 с этим оператором даст 0. Прочие числа дадут какое-то ненулевое значение.

    ~(-1) === 0

    Остаётся привести значение из численного в булево. Для этого два воскл. знака — два логических НЕ.
    • для варианта «найдено» из числа от 0 и больше получилось тоже ненулевое число, и !! даст true
    • для варианта «не найдено» из -1 получится уникальный 0, и !!0 вернёт false
    Ответ написан
    4 комментария
  • Как можно найти центроид четырёх точек ( Quadrilateral ), зная координаты этих вершин?

    wataru
    @wataru Куратор тега Математика
    Разработчик на С++, экс-олимпиадник.
    Вот тут хорошо расписано.

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

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

    Итоговая фромула (в векторах):
    C = ((p1+p2+p3)/3*(p1p2*p1p3)+(p3+p4+p1)/3*(p1p3*p1p4))/((p1p2*p1p3)+(p1p3*p1p4))


    Тут pi - i-ая вершина четырехугольника, pipj - вектор между точками i и j. pipj*pkpl - векторное произведение двух векторов.
    Ответ написан
    Комментировать
  • Автоматическое обновление ссылки на файл каждые сутки, Google Drive?

    oshliaer
    @oshliaer
    Google Products Expert
    Вы можете использовать Google Drive API для создания копии файла без физического переноса данных по сети.

    https://developers.google.com/drive/api/v3/referen...

    При успешном ответе вы можете захватить новый id файла. Если вы копируете файл сразу в общедоступную папку, то у него в свойствах также сразу появится ссылка на общий доступ (можно запросить через дополнительные поля fields: "id,name,webViewLink").

    После успешного ответа, вы можете удалить исходный файл.

    Обратите внимание, что при объеме Диска 15Гб вы можете сделать копию файла в 15Гб, и ваш Диск будет функционировать. За это время можно спокойно удалить исходный файл.

    Представления не имею, что у вас там за PHP, но можно или по cron на сервере это делать, либо по триггерам на сервисе, либо вообще через Google Apps Script, в последнем случае, нужно будет знать, куда положить результат работы скрипта, хотя, он может хранить у себя в пропертях и отдавать ссылку по запросу, как внешний сервис.
    Ответ написан
    3 комментария
  • Не могу понять схему проекта для измерения емкости кондесаторов?

    Zoominger
    @Zoominger
    System Integrator
    Всё достаточно просто.
    Длинные линии - это провода.
    Всякие штучки - это радиоэлементы, обозначение которых легко гуглится.
    Большие штуки - это крупные элементы, все их выводы пронумерованы, как и в реальности, если на них посмотреть.
    Берёте и собираете конструктор.

    Если что, Гугл на запрос "как читать радиосхемы" выдаёт и коротенькие статейки, и видосики на 10 минут.
    Ответ написан
    Комментировать
  • Почему Query в Google Spreadsheets возвращает строку не соответствующую запросу?

    oshliaer
    @oshliaer Куратор тега Google Sheets
    Google Products Expert
    На самом деле формула возвращает все верно - заголовок пустого результата своей работы.

    Чтобы обрезать этот заголовок, нужно использовать третий аргумент QUERY(;;0)

    Обратите внимание, что если QUERY вернет больше одного ответа, то будет ошибка. Выбор этой формулы в этих обстоятельствах неудачный.

    Но все же, нужно привести дату C2 к нужному формату =date '"&TEXT(C2;"yyyy-MM-dd")&"'

    =IFNA(
      QUERY(
        'Sales Data'!A:Q;
        "Select P where (F=0 and A="&A2&" and O=date '"&TEXT(C2;"yyyy-MM-dd")&"')";
        0
      );
    )


    619efef8f1487750037542.png
    Ответ написан
    1 комментарий
  • Как сделать флажок, который зачеркивает?

    oshliaer
    @oshliaer Куратор тега Google Sheets
    Google Products Expert
    Вам нужно добавить условное форматирование

    6197bb8f5ace7385624375.png

    Пример в Таблице https://docs.google.com/spreadsheets/d/1-BK1VAbPjm...
    Ответ написан
    1 комментарий
  • Светодиод WS2812B постоянно светится белым цветом. Почему?

    profesor08
    @profesor08
    Ножничками его чик и все.
    Ответ написан
    Комментировать
  • Как создать макрос вычисления суммы чисел Фибоначчи?

    hint000
    @hint000
    у админа три руки
    И зачем тут макрос? Формулами за несколько секунд делается (столбец С - сумма первых чисел):
    61864c4459513513975597.png
    61864c4cd376a228599755.png
    Ответ написан
    Комментировать
  • Как научиться чинить комплектующие ПК?

    Идите на rom.by, там есть Азбука ремонтника, и много чего ещё - да даже просто темы на форуме почитать.
    А также remont-aud.net, и ещё куча форумов.

    И так просто не получится - нет готового рецепта "научиться чинить всё". Начинать можно с блоков питания - это основа. Понимать что такое ШИМ, принцип работы, разные виды схемотехники, PFC APFC, и т.д. На этом этапе нужно уже научиться пользоваться основными приборами - мультиметр, осциллограф, esr-meter.
    Далее браться изучать что-то ещё, например, мониторы. Схемотехника, какие части за что отвечают, как взаимодействуют. На любых этапах обязательно знать английский на уровне чтения документации! починка техники на первых порах без чтения даташитов не даст прогресса в обучении. Попался монитор - смотрим его сервис-мануал (если найдём), находим участок неисправный (обычно там они рекомендуют - replace чего-то там - типа нашли неисправную плату, её меняем), менять платы - не наш путь! Смотрим на неё и выясняем маркировку элементов - микросхем, транзисторов, и т.д. По ней находим даташиты и изучаем как оно должно работать. Дальше работа головой и измерения.

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

    По ноутбукам - форум ноутбук1 ( ascnb1.ru/forma1/ ), и другие.

    Видеокарты - ИМХО, сейчас их не надо чинить начинающим. Ибо даже тупо транзисторы поменять не получится, паяльник на 100Вт не успевает прогревать плату, нужно ещё и нижний подогрев как минимум. И ещё китайцы на каждом шагу левак подсовывают перемаркированный - покупаешь транзистор на 80А, а он при 10 уже дым выпускает.

    И неплохо бы иметь человека, кто может подсказать и показать что-то.
    Я без этого обошёлся. Сейчас наоборот, свернул с пути ремонта, с оборудованием и остатками запчастей и деталей пока не знаю что делать... Продать не выйдет - всё уже заметно б/у, и много самодельных штуковин (нагрузка для БП, переходники всякие, тестеры простые, и т.д.)
    Вот как раз я ушёл работать системным администратором. И его вообще на должно волновать, что там где-то неисправные железки валяются - это проблема владельца оборудования и может быть эникейщика, которого напрягут "сделай с этим что-нибудь". Для мелких контор чаще всего сисадмин и будет за двоих-троих работать, и железо чинить, и сеть тянуть, и сервера настраивать. Это интересно, конечно, но надоест. Мне надоело вот.
    Ответ написан
    3 комментария