Задать вопрос
  • Git передает только измененные строчки файла, или весь файл полностью?

    @deniz1983
    ...
    здесь смотрите . объясняется каким образом гит считывает и сохраняет изменения
    Ответ написан
    1 комментарий
  • Как отключить _id в коллекциях mongo?

    bootd
    @bootd
    Гугли и ты откроешь врата знаний!
    Его нельзя отключить, это уникальный id для каждого объекта. Но вы можете его переопределить, указав в модели своё значение. Вопрос лишь, накой оно вам нужно!!! Ну есть и есть, чем оно мешает
    Ответ написан
    6 комментариев
  • Как выполнить нормализацию адресов?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    После того, как открыли для себя сервис https://dadata.ru/, вообще перестали тратить время и деньги на собственные костыли из граблей. Сервис просто огонь.
    Для нас онлайн режим и скорость обработки не критична, поэтому мы даже уложились в бесплатный пробный тариф.
    Вроде бы у них были решения по установке их ПО в закрытом контуре, а это не что иное, как нужный вам оффлайн. Правда тут уже бесплатно не прокатит точно.

    До дадаты этот вопрос решался жутким нагромождением фильтров, регекспов с заменами и человеко-машинного совокупления.
    Общая схема годится не только для адресов, а вообще любых грязных данных:
    1. Входной датасет сохраняем в CSV и НИКОГДА не меняем.
    2. Обработка многоступенчатая. Каждая ступень состоит из фильтра и модификатора. Фильтр решает применим ли модификатор к каждой записи. Модификатор применяет свою модификацию если фильтр разрешил.
    3. Отладочный выхлоп, который показывает и позволяет быстро просмотреть полностью внесённые изменения.
    4. Каждая ступень должна делать минимальное однотипное улучшение максимально большого числа строк. Цель - каждой ступенью уменьшать разнообразие проблем, увеличивать регулярность, стандартизировать.
    5. При огромных входных датасетах можно сохранять промежуточный выхлоп, но в общем очистка должна выглядеть как пайп их последовательных ступеней обработки.
    - Очень часто бывает, что какая-то ступень незаметно ломает данные, а понимаешь это уже поздно, когда последующие ступени реализованы и отлажены, и сильно опираются на результат ломающей. Благодаря ступенчатости и иммутабельности процесса всегда можно зипнуть текущее состояние с любым предыдущим шагом и очередным фильтром заменить необходимые куски.
    - Часто бывает, что какая-то из ступеней улучшив отдельные записи убирает характерные признаки для фильтрации элемнтов для другой ступени. Благодаря такому инкрементальному процессу можно переставлять ступени местами.
    - При внесении ступенью изменения в запись. ступень должна оставлять свою сигнатуру в отдельном столбце. Удобно для поиска проблем.

    Расскажите подробнее почему не рассматривается онлайн. Заинтриговали.
    Ответ написан
    3 комментария
  • Выражение должно иметь типа указателя на объект. В чем суть ошибки?

    CityCat4
    @CityCat4 Куратор тега C
    Жил да был черный кот за углом...
    Вынужден согласиться с Illia Nezhyhai - этот код - одна большая ошибка :) Причем главная ошибка в том, что у параметров функции нет типа, а следовательно компилятор предполагает, что они имеют тип int (для С, в С++ типа по умолчанию нет, попытка откомпилировать данный код вызовет ошибку). Поэтому разумеется выражение arr[i][j] = что-то там будет неверным.

    Во-первых, все параметры функций всегда должны типизироваться - это Вас и спасет от таких вот нелепых ошибок и напомнит, что передается в функцию, если Вы по собственной лени не напишете комментарий с описанием этого
    Во-вторых, документирование передаваемых параметров и присвоение переменным нормальных имен, а не i,j,k - поможет и другому, кто будет Ваш код читать, и Вам самому - когда Вы в него полезете через год.
    Ответ написан
    4 комментария
  • Как написать bat для поиска и выбора конкретной строчки с сохранением результата?

    wisgest
    @wisgest
    Не ИТ-специалист
    FINDSTR или FIND и перенаправление вывода в файл.
    Ответ написан
    Комментировать
  • Существуют ли консольные аналоги аиды?

    demon416nds
    @demon416nds Автор вопроса
    Разработчик на чем попало
    спасибо res2001 что напомнил про wmic

    в результате сочетания разных нагугленных батников получилась такая система
    первый батник вызывает второй и сохраняет его выдачу на сетевую шару в текстовый файл с именем как у компьютера на котором запущен
    hw2 > \\server\hw\%computername%.txt
    второй батник под именем hw2.cmd
    @echo off
    chcp 1251>nul
    color 70
    title Внимание! Сведения могут быть не точными!
    echo.
    echo Биос
    echo __________________________
    For /F "tokens=2 Delims==" %%J In ('wmic bios get caption /Value^|FindStr .') Do echo Название: %%J
    echo.
    echo Операционная система
    echo __________________________
    if defined ProgramFiles(x86) (set oper=x64) else (set oper=x32)
    FOR /F "tokens=1* delims==" %%A IN ('wmic os get caption /Format:List ^| FIND "="') DO set "s=%%~B"
    echo Название: %s% %oper%
    For /F "tokens=2 Delims==" %%J In ('wmic os get buildnumber /Value^|FindStr .') Do echo Номер сборки: %%J
    For /F "tokens=2 Delims==" %%J In ('wmic os get systemdrive /Value^|FindStr .') Do echo Установлена на диске: %%J
    wmic os get servicepackmajorversion | 1>nul findstr "0" && echo Сервис пак: Не установлен || (
    For /F "tokens=2 Delims==" %%J In ('wmic os get servicepackmajorversion /Value^|FindStr .') Do echo Сервис пак: %%J
    )
    echo Пользователь: %username%
    For /F "tokens=2 Delims==" %%J In ('wmic os get numberofusers /Value^|FindStr .') Do echo Количество пользователей: %%J
    For /F "tokens=2 Delims==" %%J In ('wmic computersystem get domain /Value^|FindStr .') Do echo Рабочая группа: %%J
    echo.
    echo Материнская плата
    echo __________________________
    For /F "tokens=2 Delims==" %%J In ('WMIC baseboard get manufacturer /Value^|FindStr .') Do echo Название: %%J
    For /F "tokens=2 Delims==" %%J In ('WMIC baseboard get product /Value^|FindStr .') Do echo Модель: %%J
    echo.
    echo Процессор
    echo __________________________
    For /F "tokens=2 Delims==" %%J In ('wmic computersystem get numberofprocessors /Value^|FindStr .') Do echo Количество процессоров: %%J
    For /F "tokens=2 Delims==" %%J In ('WMIC CPU Get Name /Value^|FindStr .') Do echo Название: %%J
    FOR /F "tokens=1* delims==" %%A IN ('WMIC CPU Get currentclockspeed /Format:List ^| FIND "="') DO set "s=%%~B"
    echo Частота: %s% Мгц
    FOR /F "tokens=1* delims==" %%A IN ('WMIC CPU Get maxclockspeed /Format:List ^| FIND "="') DO set "s=%%~B"
    echo Максимальная частота: %s% Мгц
    set cachelevel=2
    set cachelevelrus=второго
    call :cache
    set cachelevel=3
    set cachelevelrus=третьего
    call :cache
    goto 1
    :cache
    FOR /F "tokens=1* delims==" %%A IN ('WMIC CPU Get l%cachelevel%cachesize /Format:List ^| FIND "="') DO set "su=%%~B"
    call :mbgb
    if %su% GTR 1024 set /a su=%su%/1000
    echo Кэш %cachelevelrus% уровня: %su% %uu%
    exit /b
    :1
    FOR /F "tokens=1* delims==" %%A IN ('WMIC CPU Get numberofcores /Format:List ^| FIND "="') DO set "s=%%~B"
    FOR /F "tokens=1* delims==" %%A IN ('WMIC CPU Get numberoflogicalprocessors /Format:List ^| FIND "="') DO set "ss=%%~B"
    echo Ядер: %s% Потоков: %ss%
    echo.
    echo Видеокарта
    echo __________________________
    set /a numik=0
    FOR /F "tokens=1* delims==" %%A IN ('WMIC Path Win32_VideoController get AdapterRAM /Format:List ^| FIND "="') DO set "s=%%~B" & call :vdo
    goto 2
    :vdo
    set /a numik=%numik%+1
    set /a sss=%s%/1024/1024
    echo Видеопамять %numik%: %sss% Мб
    exit /b
    :2
    set /a num=0
    for /F "tokens=1* delims==" %%A IN ('WMIC Path Win32_VideoController get Name /Format:List ^| FIND "="') DO set "s=%%~B" & call :vdol
    goto 3
    :vdol
    set /a num=%num%+1
    echo Видеокарта %num%: %s%
    exit /b
    :3
    for /F "tokens=2 delims==" %%A IN ('WMIC Path Win32_VideoController get currenthorizontalresolution /Format:List ^| FIND "="') DO call :hor "%%A"
    :hor
    if not "%~1"=="" set hh=%~1
    for /F "tokens=2 delims==" %%A IN ('WMIC Path Win32_VideoController get currentverticalresolution /Format:List ^| FIND "="') DO call :ver "%%A"
    :ver
    if not "%~1"=="" set vv=%~1
    echo Текущее разрешение: %hh% x %vv%
    echo.
    echo Звуковая карта
    echo __________________________
    set /a num=0
    FOR /F "tokens=1* delims==" %%A IN ('WMIC sounddev get Name /Format:List ^| FIND "="') DO set "s=%%~B" & call :vdol
    goto 3
    :vdol
    set /a num=%num%+1
    echo Название устройства: %num%: %s%
    exit /b
    :3
    echo.
    echo Оперативная память
    echo __________________________
    set /a num=0
    FOR /F "tokens=1* delims==" %%A IN ('WMIC memorychip get capacity /Format:List ^| FIND "="') DO set "s=%%~B" & call :vdols
    goto 33
    :vdols
    set /a num=%num%+1
    echo Слот памяти: %num%: %s% б
    exit /b
    :33
    FOR /F "tokens=1* delims==" %%A IN ('WMIC os get totalvisiblememorysize /Format:List ^| FIND "="') DO set "su=%%~B" & call :vdod
    goto 4
    :vdod
    call :mbgb
    goto after
    :mbgb
    if %su% LSS 1 (set uu=б) else if %su% LSS 1024 (set uu=Кб) else if %su% GTR 1024 set uu=Мб
    exit /b
    :after
    set /a sss=%su%/1024
    echo Доступно: %sss% %uu%
    exit /b
    :4
    for /F "tokens=2 Delims==" %%J In ('WMIC memphysical get memorydevices /Value^|FindStr .') Do echo Слотов для памяти: %%J
    echo.
    echo Переносные устройства
    echo __________________________
    For /F "tokens=2 Delims==" %%J In ('WMIC cdrom get id /Value^|FindStr .') Do echo Диск: %%J
    For /F "tokens=2 Delims==" %%J In ('WMIC cdrom get volumename /Value^|FindStr .') Do echo Название: %%J
    echo Диски
    setlocal enableextensions enabledelayedexpansion
    for /f "skip=1 tokens=1-3" %%i in ('2^>nul ^
    WMIC LogicalDisk ^
    WHERE "DriveType='3'" ^
    GET FreeSpace^, Name^, Size^') do (
    set sFreeSize=%%i
    set sFreeSizeOf=%%k
    if NOT 1%%j==1 (
    set /A Free=1
    set /A Size=!sFreeSizeOf:~0,-3!/1024/1024
    set /A prc=!Size!/100*3
    set /A Size=!Size!-!prc!
    set /A Free=!sFreeSize:~0,-3!/1024/1024
    set /A prcc=!Free!/100*3
    set /A Free=!Free!-!prcc!
    set /A Procent=!Free!*100/!Size!
    set /A a+=!Size!
    set /A al+=!free!
    set /A all+=!Procent!
    echo Свободно %%j !Procent!%%. !Free! Гб из !Size! Гб
    ))
    
    echo.
    echo Настройки сети
    echo __________________________
    ipconfig /all
    
    
    )
    )
    exit
    Ответ написан
    1 комментарий
  • Как настроить маршрутизацию для клиента openvpn в маршрутизаторах mikrotik?

    @Drno
    Поставить настройку в впн клиенте - шлюз по умолчанию в удаленной сети...
    ну или - использовать для интернета по умолчанию. как то так
    Ответ написан
    Комментировать
  • Что не так с логикой if else?

    myjcom
    @myjcom Куратор тега C++
    symbol[answer] == 'x'; // 'о'
    ???
    Ответ написан
    3 комментария
  • Отказоустойчивый удаленный доступ, возможен ли при следующих условиях?

    Нет, данная схема не обеспечит отказоустойчивость для ip, если он арендовал у одного из провайдеров.

    Для обеспечения отказоустойчивость внешнего адреса должны выполняться условия:
    • IP пренадледит вашей организации
    • На вашу организацию зарегистрирована AS
    • С каждым провайдером у вас bgp пиринг и вы анонсируете провайдерам свой ip-адрес
    Ответ написан
    Комментировать
  • Как с помощью .bat файла выполнить определенное действие в зависимости от имени компьютера на котором исполняется файл?

    idShura
    @idShura
    Примерно вот так:
    @echo off
    
    rem Имя компьютера из переменной окружения COMPUTERNAME
    set fullName=%COMPUTERNAME%
    rem echo %fullName%
    
    rem Первые три симовла имени
    set subName=%fullName:~0,3%
    rem echo %subName%
    
    rem Если имя начинается на 001 вывести true иначе false
    IF %subName%==001 (echo true) ELSE (echo false)
    
    rem Если имя начинается на 002 вывести true иначе false
    IF %subName%==002 (echo true) ELSE (echo false)
    Ответ написан
    1 комментарий
  • Как сделать сайлент установщик программы из существующей?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Используйте ProcessExplorer
    https://docs.microsoft.com/en-us/sysinternals/down...
    И Wix для инсталятора
    https://wixtoolset.org/

    Тут сохраняются данные.

    C:\Users\you_profile_name\AppData\Roaming\Yandex\Punto Switcher\User Data\preferences.xml
    Ответ написан
    Комментировать
  • Какую ОС выбрать для корпоративного сервера?

    @MechanID
    Админ хостинг провайдера
    Выбор обычно происходит так - есть какието задачи - под них выбираем софт, исходя из софта понятно какая ОС нужна, и вобще этот сервер может быть гипервизором а внутри виртуальные машины с разными ОС.
    Ответ написан
    Комментировать
  • Как мониторить данные по CPU/memory утилизации для конкретного приложения в Windows?

    Можно использовать typeperf
    Ответ написан
    Комментировать
  • Кто имел опыт удаленной full/part time работы (не фриланс) на США, какие есть нюансы и почему нет?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Работал/работаю, разница во времени может быть крайне важна, а может быть не очень, зависит от того как работа организована, но в любом случае имеет значение и это надо иметь ввиду.
    А какой город если не секрет?

    Мало историй на фоне рассказов про апворк потому что на апворке зарегаться и назваться фрилансером - минут 15 времени, а найти хороший контракт напрямую с фирмой в США - заметно сложнее.

    Хотите работать - ищите и работайте, если хватит скиллов то нет в этом никаких проблем.
    регистрируете ИП, читаете как проходится валютный контроль, как платить налоги и вперед.
    Ответ написан
    6 комментариев
  • Как быстро снова окунуться в свой же код?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    К уже сказанному Сергей Горностаев стоит добавить что надо обязательно делить работу на части, которые доводить до конца. Если у вас есть не завершенные части то уже через несколько дней даже при наличии документации вы о них забудете
    Ответ написан
    Комментировать
  • Какое достустимое напряжение в электросети 220?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Однако это не совсем верный ответ. В настоящее время в России стандартным напряжением в сети является напряжение 230В, но для поставщиков электроэнергии действует 220В. Действительно, ранее в Советском союзе стандартным напряжением было 220В, однако в последствии были приняты решения о переходе на общеевропейский стандарт — 230В. Согласно требований межгосударственного стандарту ГОСТ 29322-92 сетевое напряжение должно составлять 230В при частоте 50 Гц. Переход на этот стандарт напряжения должен был завершиться в 2003 году. В ГОСТ 30804.4.30-2013 так же есть упоминание о необходимости проведения измерений при стандартном напряжении 230В. ГОСТ 29322-2014 определяет стандартное напряжение 230В с возможностью использовать 220В. Электросети поставляют электроэнергию согласно действующего на сегодняшний день ГОСТ 32144-2013, устанавливающего напряжение 220В.

    Знак осторожно 230В, напряжение 230 вольт
    Изменение стандартного значения напряжения было проведено для получения полного соответствия европейским стандартам качества электроэнергии. Из всех бывших республик СССР к стандарту «230В» перешли Россия, Украина, страны Балтии.
    При этом следует понимать, что электрическое оборудование, выпускаемое в России и для России должно нормально работать и при напряжении 220В, и при напряжении 230В. Для приборов, как правило, закладывается диапазон по напряжению от -15 % до +10 % от номинального.

    220 + 10% = 242V
    230 + 10% = 253V

    В общем то ничего не будет, нормальные аппараты рассчитываются с запасом 25% по напряжению.
    Плюс это не прецезионная техника, так что возможно ваш датчик врет на 5-8%
    Ответ написан
    Комментировать
  • Почему бьются файлы при сохранении на другом компе?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Вполне возможно, что домашний компьютер не обеспечивает необходимого уровня тока на USB-порту.
    В отличие от флешек, жеские диски (особенно обычные, с моторами) достаточно прожорливы, им и 500 mA может быть маловато.
    У некоторых HDD например делали провод сразу с двумя USB-штекерами, что бы брать ток из двух USB-портов, с запасом...

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

    Lynn
    @Lynn
    nginx, js, css
    Бинарный если исправить ошибку вычисления mid
    Ответ написан
    Комментировать