Задать вопрос
  • Какие темы матана надо знать, чтобы начать изучать дифуры?

    @AVKor
    Математика - не та наука, где "тут учу, там не учу". Там многочисленные внутренние связи.

    Осваивайте весь курс матана, который давали.
    Ответ написан
    1 комментарий
  • NodeMCU ESP 8266 с встроенным oled дисплеем. Как запустить?

    Этот дисплей на контроллере SSD1306. Ищи любую библиотеку для дисплеев на этом контроллере для ESP8266. Самая популярная от Адафрут, качать тут: https://github.com/adafruit/Adafruit_SSD1306, там же есть примеры использования.
    Ответ написан
    2 комментария
  • Зачем менять полярность в переменном токе?

    Как минимум это удобно в плане того, что можно передавать по ЛЭП сотни килоВольт, а затем трансформаторами приводить к обычным 0.4 кВ. Трансформатор относительно прост и не требует электроники.

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

    Да и генератором проще сразу переменку делать.

    Электродвигатели на переменке проще и не требуют к себе столько внимания, сколько щеточные на постоянке. (Хотя сейчас уже все это несколько меняется, но раньше очень даже актуально было)
    Ответ написан
    7 комментариев
  • Как к Android Studio подключить телефон через USB?

    @Kinhagen
    - включаем режим разработчика на телефоне, как описано выше (появляется надпись, типа "вы разработчик". На телефоне в итоге должны быть включены: параметры разработчика и ниже: 'Stay awake' и 'USB-Debugging' (по-русски только)
    - устанавливаем Driver на компьютер: в Google задаём OEM Android, переходим на страницу, выбираем модель телефона, переходим по ссылке и устанавливаем нужный Driver.
    - подключаем телефон к компьютеру, через USB. Проверяем: он (название телефона) должен появиться в диспетчере устройств.
    - теперь запускаем Android Studio -> нужный проект -> Run -> выбираем телефон вместо эмулятора и т.д.
    Ответ написан
    Комментировать
  • Можно ли задавать кривые Безье для функций js?

    @alexalexes
    https://easings.net/ru#
    Открываете любой график.
    Внизу приведена формула математической функции.
    Ее используете для создания своего JS аналога.
    Ответ написан
    Комментировать
  • Какой шрифт для написания буквы v (скорость) в формулах?

    hint000
    @hint000
    у админа три руки
    c059 italic: https://www.google.com/search?q=c059+italic&tbm=isch
    скачать можно здесь, например: https://blogfonts.com/c059.font
    5fc24e9c36beb079574324.png
    Ответ написан
    Комментировать
  • Как проверить наполнение таблицы?

    oshliaer
    @oshliaer Куратор тега Google Sheets
    Google Products Expert
    К сожалению, API по истории так и нет.

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

    lsoul
    @lsoul
    Неожиданно - юрист
    «Что такое Хабр?»
    Так ли важно, как расшифровывается биос? Сразу вспоминается известный сериал, про отдел техподдержки и расшифровку аббревиатуры IT )
    Ответ написан
    Комментировать
  • Как правильно написать функцию в ячейке EXCEL, чтобы появлялся определенный ряд последовательности чисел?

    @ComodoHacker
    По сути нам нужно узнать размер всего диапазона и место текущей ячейки в нем. Главная проблема — избежать циклических ссылок.

    Например, с помощью COUNTA() можно определить, сколько ячеек заполнено слева. Или справа. Но вот использовать и то, и другое в одной формуле не получается, т.к. возникают циклические ссылки.

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

    Дальше уже простая арифметика. Получаем распределение в диапазоне 0-1, умножаем на 3, округляем.

    Например, для начальной ячейки C4:
    =CEILING((COUNTA(D4:$XFD4) + 1) / (COUNTA(D4:$XFD4) + COLUMN() - 2) * 3; 1)

    Для другой начальной ячейки нужно поправить константу в "COLUMN() - 2".
    Ответ написан
    1 комментарий
  • Какие книги помогут стать Junior на JS?

    like-a-boss
    @like-a-boss
    Признайся,тебяТянетНаКодМужика,ты—программный гей
    Книги - вода, прочтите learn.javascript.ru и станете кем захотите, хоть единорогом.
    Ответ написан
    Комментировать
  • Почему происходит "Сайт localhost выполнил переадресацию слишком много раз"?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Заходит пользователь на admin/login чтобы зарегистрироваться. А там ваш кусочек кода срабатывает, смотрит есть ли куки, кук нет, значит отправляем пользователя на admin/login. Идет пользователь на admin/login чтобы зарегистрироваться. А там ваш кусочек кода срабатывает, смотрит есть ли куки, кук нет, значит отправляем пользователя на admin/login. Идет пользователь на admin/login чтобы зарегистрироваться. А там ваш кусочек кода срабатывает, смотрит есть ли куки, кук нет, значит отправляем пользователя на admin/login. Идет пользователь на admin/login чтобы зарегистрироваться. А там ваш кусочек кода срабатывает, смотрит есть ли куки, кук нет, значит отправляем пользователя на admin/login. Заходит пользователь на admin/login ....
    .... проходит время ...

    браузеру это все надоедает и он останавливает этот веселый процесс.
    Ответ написан
    Комментировать
  • Кайфую от геометрии и физики, есть какие-то ресурсы на подобии описанного в вопросе?

    15432
    @15432
    Системный программист ^_^
    Не уроки, но я надолго залип

    Я.И. Перельман
    • Занимательная физика
    • Занимательная механика
    • Занимательная геометрия
    • Занимательная арифметика
    • Занимательная астрономия
    Ответ написан
    4 комментария
  • Чем защитить лидар от погоды?

    Ocelot
    @Ocelot
    Обычный поликарбонат, он нормально пропускает ближний ИК до 1100 нм (лидар работает на 960нм обычно). "Цветное стекло" - это узкополосный фильтр, чтобы лидар не слепило внешней засветкой.
    Ответ написан
    Комментировать
  • Какие существуют практические примеры применения арифметики колец и полей?

    wataru
    @wataru Куратор тега Математика
    Разработчик на С++, экс-олимпиадник.
    В криптографии просто куча применений. Всякие RSA, DH, эллиптические кривые - это все основано на свойствах некоторых особых конечных полей.

    Но мне нравится такой пазл: есть таблица из лампочек-кнопок n x m. Какие-то горят, какие-то - нет. Можно нажать на какую-то лампочку и она переключится. Но вместе с ней переключатся и 4 соседние лампы (если нажали на угловую кнопку - то только 2). Нужно погасить все лампы за минимальное количество нажатий. Как ее вообще решать без полного или частичного перебора? Важно заметить, что 2 раза нажимать на лампу бессмысленно, потому что эти 2 нажатия просто отменят друг друга. Еще не важно, в каком порядке нажимать на лампы. Конечный результат будет одинаковый.

    А дальше, подключается математика! Введем переменные x_ij - сколько раз мы нажимаем на лампочку в позиции i, j. Эти переменные - это элементы поля по модулю 2. Потому что 2 раза нажать на кнопку - то же самое, что и 0 раз нажать. Составляем линейные уравнения, что сумма нажатий на все кнопки, влияющие на данную лампу - дает 0 или 1 по модулю 2 (в зависимости от того, горит ли эта лампа изначально).

    А дальше эту систему уравнений можно просто решать методом гаусса. Почему? Ведь он работает с вещественными числами? Но нет! Гауссу по-фигу над каким полем работать. Делаем все вычисления по модулю 2 - и получим решение в виде 0 и 1 для всех переменных.

    Поля по модулю простых чисел еще можно, например, использовать для реализации быстрого преобразования фурье для быстрого умножения длинных чисел без использования операций с float, что требуется в стандартной реализации (она вообще с комплексными числами работает). И такая реализация быстрее и точнее.
    Ответ написан
    1 комментарий
  • Как выбрать элементы со ссылкой установленного формата (regex)?

    fallus
    @fallus
    $('a[href^="#"]')

    Выборка всех <a>, href которых начинается с #

    Если ссылка именно что в формата site.com/url.html#id, то можно так:
    $('a[href*=".html#"]')
    Ответ написан
    1 комментарий
  • Как правильно отправить запрос с заголовками и куками?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    Можно еще так - "Copy as cURL", далее идёте на сайт curl.trillworks.com и конвертируете в код Python.
    Ответ написан
    Комментировать
  • Как узнать уровень заряда аккумулятора через ардуино нано?

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

    @dmitry-toster
    Для глубоко изучения JS

    Вряд ли есть что-то лучше серии книг Kyle Simpson - You don't know JS, где одной только теме про thisили замыканию уделена целая книга

    Интересен супер подробный разбор event loop

    Помимо книг выше, есть также отличное видео на YouTube после которого отпадут все вопросы как оно работает

    Что можно считать лучшим источником

    Собственно Standard ECMA-262
    Ответ написан
    1 комментарий
  • Как оптимизировать работу с файлами в Python?

    Или лучше в VBA погрузиться для решения подобных задач?

    VBA - однопоточный, расспаралелить не получится.

    но если только собрать названия листов, то странно большое время у Вас для такой задачи.
    Я тут на коленке набросал код на VBA, так он 200 файлов за 4 минуты обработал, и это без оптимизации кода (excel 32, win 10, 4ядра по 3ГГц).
    Можете запустить у себя, для этого открыть новую книгу, открыть редактор макросов, выбрать лист на котором будете работать и вставить следующий код (полной заменой)
    Код для сбора списка листов из всех книг директории
    Function FilenamesCollection(ByVal FolderPath As String, Optional ByVal Mask As String = "", _
                                 Optional ByVal SearchDeep As Long = 999) As Collection
        ' © EducatedFool  excelvba.ru/code/FilenamesCollection
        ' Получает в качестве параметра путь к папке FolderPath,
        ' маску имени искомых файлов Mask (будут отобраны только файлы с такой маской/расширением)
        ' и глубину поиска SearchDeep в подпапках (если SearchDeep=1, то подпапки не просматриваются).
        ' Возвращает коллекцию, содержащую полные пути найденных файлов
        ' (применяется рекурсивный вызов процедуры GetAllFileNamesUsingFSO)
    
        Set FilenamesCollection = New Collection    ' создаём пустую коллекцию
        Set FSO = CreateObject("Scripting.FileSystemObject")    ' создаём экземпляр FileSystemObject
        GetAllFileNamesUsingFSO FolderPath, Mask, FSO, FilenamesCollection, SearchDeep ' поиск
        Set FSO = Nothing     ' очистка строки состояния Excel
    End Function
     
    Function GetAllFileNamesUsingFSO(ByVal FolderPath As String, ByVal Mask As String, ByRef FSO, _
                                     ByRef FileNamesColl As Collection, ByVal SearchDeep As Long)
        ' перебирает все файлы и подпапки в папке FolderPath, используя объект FSO
        ' перебор папок осуществляется в том случае, если SearchDeep > 1
        ' добавляет пути найденных файлов в коллекцию FileNamesColl
        On Error Resume Next: Set curfold = FSO.GetFolder(FolderPath)
        If Not curfold Is Nothing Then    ' если удалось получить доступ к папке
    
            ' раскомментируйте эту строку для вывода пути к просматриваемой
            ' в текущий момент папке в строку состояния Excel
            ' Application.StatusBar = "Поиск в папке: " & FolderPath
    
            For Each fil In curfold.Files    ' перебираем все файлы в папке FolderPath
                If fil.Name Like "*" & Mask Then FileNamesColl.Add fil.Path
            Next
            SearchDeep = SearchDeep - 1    ' уменьшаем глубину поиска в подпапках
            If SearchDeep Then    ' если надо искать глубже
                For Each sfol In curfold.SubFolders    ' перебираем все подпапки в папке FolderPath
                    GetAllFileNamesUsingFSO sfol.Path, Mask, FSO, FileNamesColl, SearchDeep
                Next
            End If
            Set fil = Nothing: Set curfold = Nothing    ' очищаем переменные
        End If
    End Function
    
    Sub LoopThroughFiles(ByVal sDirName As String, ByRef lRow As Long, ByVal sMask As String)
       On Error Resume Next
       Dim folder$, coll As Collection
       Dim EX As Excel.Application
       Dim wkb As Workbook
       Dim wks As Worksheet
       Dim file As Variant
       Dim i As Long
       Dim v As Variant
       
     
        folder$ = sDirName
        If Dir(folder$, vbDirectory) = "" Then
            MsgBox "Не найдена папка «" & folder$ & "»", vbCritical
            Exit Sub        ' выход, если папка не найдена
        End If
     
        Set coll = FilenamesCollection(folder$, sMask)        ' получаем список файлов по маске из папки
        If coll.Count = 0 Then
    '        MsgBox "В папке «" & Split(folder$, "\")(UBound(Split(folder$, "\")) - 1) & "» нет ни одного подходящего файла!", _
                   vbCritical, "Файлы для обработки не найдены"
            Exit Sub        ' выход, если нет файлов
        End If
     
       Set EX = New Application
       EX.Visible = False
       
       ' перебираем все найденные файлы
       For Each file In coll
        
          Cells(lRow, 2) = CStr(file)
          
          Set wkb = EX.Workbooks.Open(Filename:=file)
    
          ' Если книга не пуста
          If wkb.Sheets.Count > 0 Then
             i = 1
             ReDim v(1 To wkb.Sheets.Count)
             ' Получаем названия листов
             For Each wks In wkb.Sheets
                v(i) = wks.Name
                i = i + 1
             Next wks
    
          End If
    
          Cells(lRow, 3) = Join(v, ",")
    
          wkb.Close False
                
          DoEvents
          
          lRow = lRow + 1
        
          DoEvents
        Next file
        
       Set wks = Nothing: Set wkb = Nothing: Set EX = Nothing
       Set colShts = Nothing
        
    End Sub
    
    Sub LoopThroughDirs()
       Dim lLastRow As Long
       Dim lRow As Long
       Dim i As Long
       Dim v As Variant
       Dim dTime As Double
    
       lRow = 2
       lLastRow = Cells(Rows.Count, 1).End(xlUp).Row
       
       v = Range(Cells(2, 1), Cells(lLastRow, 2))
       
       dTime = Time()
       For i = LBound(v) To UBound(v)
          Application.StatusBar = "Обрабатывается директория " & i & " из " & UBound(v)
          Call LoopThroughFiles(v(i, 1), lRow, "*.xls")
          Call LoopThroughFiles(v(i, 1), lRow, "*.xlsx")
          Call LoopThroughFiles(v(i, 1), lRow, "*.xlsm")
          DoEvents
       Next i
       MsgBox "Готово за " & CStr(CDate(Time() - dTime))
    End Sub


    для запуска в первой колонке заполнить директории которые он будет смотреть. Просматриваются вложенные директории до 999 грубины.

    Запустить процедуру LoopThroughDirs, для этого поставить курсор на название и нажать F5

    Результат
    5f05adc35867d361594006.png
    Ответ написан
    1 комментарий