• Аналог Excelpython для Google Sheets?

    NeiroNx
    @NeiroNx
    Программист
    Можно как внешний запрос ImportDATA выполнить.
    Ответ написан
    1 комментарий
  • Машинное обучение на статистике ГИБДД. Есть идеи?

    Vlad_IT
    @Vlad_IT
    Front-end разработчик
    Можно публиковать результаты исследования в журналах, СМИ и развлекательных площадках. Какой никакой, но результат будет, как минимум осведомленность населения, которое терактов боится больше, чем садиться за руль или идти по улице (где вероятность умереть выше, чем от терактов).
    Я бы если бы было время, сделал как минимум тепловую карту с наиболее аварийными местами в городе с привязкой к времени суток и сезонов, и выложил ее в открытый доступ.
    Причину ДТП сложно будет автоматически анализировать, нужно как минимум категоризировать случаи (пьяный за рулем, заснул, не увидел, не успел).
    Марка/модель имеет смысл рассматривать, если есть результаты аварии (жив/мертв/инвалид - с степенью каждого случая), и детали аварии (с кем врезался, на какой скорости относительно друг-друга, с какой массой и.т.д.) иначе напишите, что форд небезопасный, хотя в статистике в него врезался грузовик.
    По полу классифицировать не советую, засудят :-)
    Чтобы выбрать алгоритм, нужно понимать цель, в каком виде вы ожидаете результаты работы. Он не сможет вам сказать "вон там положите асфальт, таким людям запретите ездить, в 22:00 сидите дома".
    Ответ написан
  • Как выбрать CMS для персональной базы знаний(набора страниц со структурой)?

    Попробуйте notion.so - я нашёл её недавно и просто нарадоваться не могу. Есть дерево страниц, поиск, ссылки между страницами, семантическое форматирование, вставка фото, видео, карт, даже TeX. Нет таблиц и тегов, но обещают, что в ближайших планах.
    Ответ написан
    Комментировать
  • Где лучше всего создать интерактивный учебник?

    Можно взять MkDocs или подобный генератор статических сайтов. Собственно, генерация документации - это их главное назначение.

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

    Ещё одна вещь, которая понравилась мне с первого взгляда и навсегда, теперь пользуюсь постоянно, - notion.so. Там можно сделать вики и открыть её для доступа без регистрации, вот вам и учебник.
    Ответ написан
    Комментировать
  • Как автоматизировать дублирование строк excel?

    Nivalis
    @Nivalis
    Например можно сделать ссылку на втором листе, для этого в лист2 в ячейке А1 написать =лист1!A1 и когда будете писать на первом листе, то текст автоматически будет отображаться и на листе2.
    Ответ написан
    Комментировать
  • KVM-переключатель, как его видят подключенные компьютеры?

    POS_troi
    @POS_troi
    СадоМазо Админ, флудер, троль.
    Зависит от KVM.
    В большинстве случаев комп ничего не поймёт.

    А почему у вас вообще возник такой вопрос? :)
    Ответ написан
    1 комментарий
  • Как настроить backup VDS на Яндекс.Диск?

    @mureevms
    Предисловие.
    Вы должны смонтировать Ядиск как описано в этой статье в каталог /mnt/yadisk, туда будут копироваться все бэкапы
    Для бэкапа всей системы лучше пользоваться инструментами которые предлагает хостер. Если таких нет или планируется переезд всей системы, то используйте п.1.
    Специально оставляю одну копию каждого бэкапа на VDS для удобства восстановления какого-либо файла.
    Прокомментирую только первый файл, остальные сделаны по подобию.
    Каталоги в /home/backup/... и /mnt/yadisk/... должны быть созданы.
    Скрипт бэкапа разбит на 4 штуки намеренно для удобства использования и запуска по крону с разными временными интервалами, что и надо будет сделать отдельно.
    Так же, советую предварительно перед бэкапом проверять смонтирован ли Ядиск, иначе место может внезапно закончится на сервере. Если интересно, то потом дам ссылку как это сделать.

    Бэкап

    1. Бэкап системы осуществляется при помощи команды tar
    Файл system_backup.sh:
    #!/bin/sh
    TIME=`date +%Y-%m-%d`
    # Что бэкапить
    WHAT=/
    # Куда класть бэкап
    WHERE=/home/backup/system
    # Куда копировать бэкап
    COPY=/mnt/yadisk/system
    # Бэкап системы. Файл бэкапа исключает системные каталоги и каталоги куда кладутся сами бэкапы
    tar -cpzf $WHERE/$TIME.tgz --exclude=/dev --exclude=/proc --exclude=/lost+found --exclude=/home/backup --exclude=/mnt /
    # Скопировать на файл бэкапа на Ядиск 
    cp $WHERE/$TIME.tgz $COPY
    ### Удалить старые файлы бэкапов
    # Оставить на VDS только последний
    find $WHERE -mtime +1 -print -delete
    # Удалить с Ядиска бэкапы месячной давности
    find $COPY -mtime +30 -print -delete


    2. Бэкап конфигов осуществляется так же при помощи команды tar (при текущих исходных данных все конфиги лежат в /etc)
    Файл etc_backup.sh:
    #!/bin/sh
    TIME=`date +%Y-%m-%d-%H:%M`
    WHAT=/etc
    WHERE=/home/backup/etc
    COPY=/mnt/yadisk/etc
    tar -cpzf $WHERE/$TIME.tgz $WHAT
    cp $WHERE/$TIME.tgz $COPY
    find $WHERE -mtime +1 -print -delete
    find $COPY -mtime +30 -print -delete


    3. Бэкап сайтов осуществляется аналогично (предполагаю, что они лежат в /var/www/)
    Файл www_backup.sh:
    #!/bin/sh
    TIME=`date +%Y-%m-%d-%H:%M`
    WHAT=/var/www
    WHERE=/home/backup/www
    COPY=/mnt/yadisk/www
    tar -cpzf $WHERE/$TIME.tgz $WHAT
    cp $WHERE/$TIME.tgz $COPY
    find $WHERE -mtime +1 -print -delete
    find $COPY -mtime +30 -print -delete


    4. Бэкап MySQL осуществляется при помощи команды mysqldump
    Файл mysql_backup.sh
    #!/bin/sh
    TIME=`date +%Y-%m-%d`
    # Логин пользователя мускула
    USER=root
    # Пароль пользователя мускула
    PASS=root_password
    WHERE=/home/backup/mysql
    COPY=/mnt/yadisk/mysql
    ### Базы которые надо бэкапить
    for base in base_name1 base_name2
    do
    # Сделать дамп баз
    mysqldump -u$USER -p$PASS -B $base > $WHERE/$base-$TIME.sql
    done
    cp $WHERE/$base-$TIME.sql $COPY
    find $WHERE -mtime +1 -print -delete
    find $COPY -mtime +30 -print -delete


    Восстановление

    Восстановление сайтов и конфигов осуществляется простым копированием в место назначения.
    Восстановление баз:
    mysql -u root -p root_password -f base_name1 < /home/backup/mysql/base_name1.sql
    mysql -u root -p root_password -f base_name2 < /home/backup/mysql/base_name2.sql


    Восстановление системы более сложный процесс, но суть сводится к одному - сделать чистую установку аналогичной ОС, загрузится с LIVE CD, подмонтировать Ядиск и распаковать архив в root директорию (root директорией называют корень файловой системы - / ), за исключением каталога /boot
    ОБЯЗАТЕЛЬНО заранее проделать восстановление на отдельной виртуалке.

    Вместо послесловия
    Такой бэкап, как говорится, и палкой не убить. Единственное, что надо делать - время от времени руками проверять архивы бэкапов на читаемость и прохождению нормального разархивирования. К сожалению, архивы бывают битыми.
    Ответ написан
    16 комментариев
  • Какие современные инструменты следует использовать при создании кроссплатформенного ПО на Python?

    CJay
    @CJay
    Питонистичен
    Я бы посоветовал pyQt, а чтобы всё выглядело одинаково хорошо - писать интерфейс на qml.
    Ответ написан
    Комментировать
  • Как очистить содержимое ячеек Excel, но сохранить формулы в C#?

    AnnTHony
    @AnnTHony
    Интроверт
    А если циклом пробегать каждую ячейку из Range["A4", "A" + firstCellDestination.Row] и не удалять те, которые начинаются со знака "=".
    Ответ написан
    Комментировать
  • Как перенести отдельные данные из одного листа Excel на другой?

    AnnTHony
    @AnnTHony
    Интроверт
    На панели "Разработчик" есть кнопка "Запись макроса":
    - жмакаете на нее;
    - делаете необходимые процедуры (перемещение\удаление слов);
    - останавливаете запись;
    - смотрите получившийся код;
    - удаляете лишнее. добавляете необходимое.

    Не совсем понятно как будут программно отбираться слова?

    UpD (вот что получилось у меня):
    Private Sub CommandButton1_Click()
        Dim key_word As String ' ключевое слово, по которому будем отбирать
        Dim i, count As Integer
            
        key_word = TextBox1.Text
        Sheets("Лист1").Select
        count = 0
        i = 1
        While (Cells(i, 1) <> "") ' проходим до первой пустой ячейки столбец А '
            If (InStr(1, LCase(Cells(i, 1)), LCase(key_word), vbBinaryCompare) > 0) Then ' если совпало '
                count = count + 1
                Cells(i, 1).Select
                Selection.Cut ' вырезаем из Лист1 '
                Sheets("Лист2").Select
                Cells(count, 1).Select
                ActiveSheet.Paste ' вставляем в Лист2 '
                Sheets("Лист1").Select
            End If
            i = i + 1
        Wend
        Label1.Caption = "find: " & count
        
        i = i - 1
        While (i > 0)
            If (Cells(i, 1) = "") Then
                Cells(i, 1).Select
                Selection.Delete Shift:=xlUp ' в Лист1 удаляем все пустые ячейки со сдвигом вверх '
            End If
            i = i - 1
        Wend
    End Sub


    882aadf50b174301ae0b53c9a257fffd.jpg
    Ответ написан
    6 комментариев
  • Не открываются файлы Excel что делать?

    @jaroslavvoskoboynikov
    Мужик)
    Примечание:Если вы плохо владеете компьютером и не продвинутый юзер советую попробывать вот эту программу https://www.repairtoolbox.com/ru/excelrepair.html Excel Repair Toolbox а для программистов тогда предоставляю следующий порядок действий:

    1. Создаем два новых файла в Excel, и называем их, например, «1.xls» и «2.xls».
    2. Открываем оба созданных файла Excel.
    3. В файле «1.xls» на листе «Лист1» выделяем диапазон пустых ячеек A1…E18. Выделенный диапазон должен быть заведомо больше, чем размер утерянной таблицы. Здесь придется напрячь память и вспомнить приблизительные размеры области листа, которую мы хотим восстановить.
    Если выделите меньшую область, чем занимает восстанавливаемая информация, то придется повторить всю описываемую процедуру, выделив бóльшую область.
    4. Нажимаем в главном меню кнопку «Правка» и выбираем «Копировать». Выделенный пустой диапазон оказывается скопированным в буфер обмена информации.
    5. Нажимаем кнопку главного меню «Окно» и переходим к файлу «2.xls», выбрав его на выпавшей вкладке.
    6. Выделяем на листе «Лист1» открывшегося файла «2.xls» верхнюю левую ячейку A1.
    7. Жмем вновь кнопку главного меню «Правка», выбираем в выпавшем меню «Специальная вставка».
    8. В открывшемся одноименном окне «Специальная вставка» нажимаем кнопку «Вставить связь».
    Окно "Специальная вставка"
    9. Снова нажимаем в главном меню кнопку «Правка» и выбираем в выпавшем меню «Связи».
    10. В появившемся окне «Изменение связей» нажимаем кнопку «Изменить».
    Окно "Изменение связей" и кнопка "Изменить"
    11. Для завершения процесса в выпавшем окне «Изменить источник:1.xls» указываем наш проблемный файл «Источник.xls» закрываем окно «Изменение связей».
    Окно "Изменить источник"
    Восстановление информации в excelВ файле «2.xls» мы должны увидеть данные из испорченного файла. Выглядит восстановленная информация так, как показано на рисунке слева от этого текста.
    12. После восстановления информации следует отключить связь файла «2.xls» с файлом «Источник.xls». Для этого нажимаем кнопку главного меню «Правка» и в выпавшем меню выбираем «Связи».
    13. В появившемся окне «Изменение связей» нажимаем кнопку «Разорвать связь» и закрываем окно.
    Окно "Изменение связей" и кнопка "Разорвать связь"
    Важно повторить все шаг в шаг и не игнорировать ни одно из перечисленных действий!
    Ответ написан
    Комментировать
  • Как записать в csv?

    @lPolar
    data scientist
    Ну что за дурацкая привычка к кустарщине - поэлементные циклы и построчное сохранение.
    Используйте высокоуровневые инструменты.
    import pandas as pd
    list1 = ['1', '2', '3']
    list2 = ['a', 'b', 'c']
    list3 = ['x', 'y', 'z']
    frame = pd.DataFrame([list1,list2,list3]) # собираем фрейм
    frame.to_csv('my_csv_export.csv',index=False) #экспортируем в файл
    Ответ написан
    Комментировать
  • Delphi. Как найти значение функции по графику?

    @zedxxx
    Разбиваете график на 5 частей, описываете каждую часть некоторой функцией y = f(x) в математическом выражении. Затем, для каждой математической функции пишите функцию на паскале с её реализацией. Итого у вас получится 5 функций. Ну и в конце, пишите функцию main, в которой в зависимости от входного значения X, вызываете одну из тех 5 функций и печатаете результат.

    Вот такой несложный алгоритм.
    Ответ написан
    Комментировать
  • Как осуществить чтение CSV файла в Python не с 1 строки?

    @iroln
    from pandas import read_csv
    
    out = read_csv(your_file, sep=';', skiprows=[0], header=None)


    Обращаться к полученным данным через индексацию:
    item_str = out[i][j]

    Функция умеет гораздо больше. Pandas - крутая библиотека для анализа данных.
    Ответ написан
    2 комментария
  • Выбор оптимального дистрибутива для Code_aster, Octave, Scilab?

    3vi1_0n3
    @3vi1_0n3
    С базовыми знаниями линукса при компиляции Gentoo вы можете не только не получить заметный прирост, но и наоборот. 10-15% — это на самом деле очень оптимистично даже для людей с опытом. Более реальный показатель не выше 10% в зависимости от задач.
    Лучше сейчас поставьте CAElinux и начинайте изучать Gentoo. Пока CAElinux станет неактуальным, вы уже будете иметь далеко не базовые знания и сделаете всё, что нужно, так, как вам это будет нужно.
    Ответ написан
    Комментировать
  • Каков список базовых книг по математике?

    gra
    @gra
    У меня такая же проблема, как у вас

    Купил «Курс высшей математики» Смирнов В. И. том I, читаю с удовольствием.
    Ответ написан
    1 комментарий