• Как сделать расчет на сервере с данными html-формы?

    valerium
    @valerium
    Изобретая велосипед
    Не понимаю, почему PHP считается лёгким для старта. По моему опыту, один лишь факт существования файла php.ini вызвал дичайшее количество баттхерта у новичков. Не говоря уже о том, что сам язык довольно сумбурен.

    Попробуйте начать с Python. Сначала прочтите руководство по самому языку (можно прямо вот с этого начать), потом прочтите такое же руководство к Flask (миниатюрный веб фреймворк, каркас приложения, который делает всю рутину, и вам останется лишь реализовать логику). Правда, я не уверен, что по Flask есть хорошая русская документация, я обошёлся оригиналом.
    Ответ написан
    1 комментарий
  • Как скачать свой проект с koding.com?

    valerium
    @valerium
    Изобретая велосипед
    Создать репозиторий git и сделать push на Github или Bitbucket.
    Ответ написан
    Комментировать
  • Python subrocess wsgi. Как правильно считать значение из файла?

    valerium
    @valerium
    Изобретая велосипед
    RTFM внимательно, господа.

    subprocess.call() возвращает код завершения. cat успешно считывает значение из файла, то есть код завершения всегда 0 (да, именно int).

    А всё потому, что Вы изначально выбрали трансректальное решение. Зачем из программы на Python вызывать cat, если можно просто открыть файл и считать из него?

    with open('/sys/devices/virtual/gpio/gpio27/value') as f:
        result = f.read()


    В данном случае, кстати, это будет строковая единица.
    Ответ написан
    5 комментариев
  • Возможно ли восстановить винчестер в моем случае?

    valerium
    @valerium
    Изобретая велосипед
    Загрузитесь с флешки, установите smartmontools и запустите sudo smartctl -a /dev/sda

    Имя устройства может быть другим в Вашем случае. Во всём этом выводе найдите табличку с вот таким заголовком.
    SMART Attributes Data Structure revision number: 16
    Vendor Specific SMART Attributes with Thresholds:
    ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
      5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
    196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
    197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       0


    В ней должно быть больше строк, я выделил только самые интересные. Их текстовое описание может отличаться, но всегда одинаков ID (первый столбец).

    Если значения в самом правом столбце (RAW_VALUE) отличаются от нуля (особенно 5 и 196), значит диск готовится отдать богу душу. Сколько он проживёт с этого момента неизвестно (вопрос везения), но процесс уже начался. Пора копить на новый диск. Если же значения не нулевые, и при этом VALUE >= THRESH, то это уже однозначно конец. Лимит зарезервированных секторов исчерпан, диск больше не может компенсировать выпадающие сектора.

    Если 5 и 196 по нулям, но 197 больше нуля, значит ещё есть шанс. Нужно запустить упомянутые здесь mhdd или victoria для проверки записью. Это уничтожит все данные на диске, но может оказаться, что сектора помечены битыми по ошибке. После того, как mhdd отработает (это, кстати, может занять очень много времени, до нескольких часов, в зависимости от объёма диска), счётчик 197 может обнулиться, тогда форматируйте диск и спокойно используйте дальше. Если же он обнулился, но при этом выросли 5 и 196, то см. предыдущий абзац :-)

    И да пребудут Ваши бекапы во множестве и в сохранности ;-)
    Ответ написан
    Комментировать
  • Как начать путь кибернетика?

    valerium
    @valerium
    Изобретая велосипед
    Во-первых, поступите в любой вуз на специальность «вычислительная техника и программирование» или любую смежную. Это самое простое и очевидное начало. Позволит погрузиться в тему и получить общие знания (включая очень важные фундаментальные знания в математике).

    Во-вторых, осознайте, что «минимум сухой теории» и «сложные технические задачи» — это взаимоисключающие параграфы. Либо хавать теорию огромной ложкой за обе щеки, либо быдлокодить скриптики на PHP (без претензий к самому PHP, просто как пример). Инженер в первую очередь решает задачу, а не использует инструмент. Можно быть виртуозом гаечного ключа и отвёртки, но чтобы спроектировать автомобиль, этого мало.

    Ну и в-третьих, определитесь с задачей, которая интересна, и под неё выбирайте инструменты. Для десктопных приложений в моде C#, нестареющей классикой считается C++, имеет множество преимуществ Java и её производные вроде Scala (это к вопросу блокнот с анимацией). Для работы с текстами (составление компиляций) неплохо подходят скриптовые языки, вроде Python, Ruby, JavaScript, Perl.

    И в-четвёртых, больше никогда не говорите, что HTML и CSS — это программирование. Это вёрстка, она к программированию имеет очень мало отношения. Но раз Вы кое-что в этом понимаете, попробуйте начать с изучения JavaScript, как раз умение верстать и понимание DOM пригодятся. И инструменты знакомые.
    Ответ написан
    Комментировать
  • Какой поисковый алгоритм используют поисковые системы?

    valerium
    @valerium
    Изобретая велосипед
    Индексирование и последующий поиск по индексу.

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

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

    Дальше происходит определение релевантности, и это самый сложный и наукоёмкий этап, не знаю подробностей, но, возможно, по ключевым словам «релевантность», «полнотекстовый поиск», «индексирование» сможете что-то найти.
    Ответ написан
    5 комментариев
  • Как получить последние х строк из mysql?

    valerium
    @valerium
    Изобретая велосипед
    SELECT * FROM `имя_таблицы` ORDER BY `Дата` DESC LIMIT 10;


    И если нужно именно последние x в хронологическом порядке, то сортировать по полю с датой — это единственное правильное решение, потому что никто не гарантирует, что id привязан к хронологии. Например, данные о погоде могли быть добавлены «задним числом».

    UPD. Действительно, допустил ошибку в ответе, поправил.
    Ответ написан
    Комментировать
  • Как подключиться к localhost из гостевой ОС в Virtual Box?

    valerium
    @valerium
    Изобретая велосипед
    Именно к localhot (127.0.0.1) обратиться нельзя никак. Но в Вашем случае, наверное, достаточно обратиться к тому адресу, который назначен физическому сетевому интерфейсу (если есть роутер, то что-то вроде 192.168.1.2). Главное, чтобы OpenServer слушал этот адрес.
    Ответ написан
    1 комментарий
  • Как узнать что за объект на сайте под курсором на Python?

    valerium
    @valerium
    Изобретая велосипед
    Вам нужен JavaScript, чистый или библиотека вроде jQuery.

    С его помощью вешаете на каждый элемент в DOM событие onhover, и далее в функции-обработчике делаете то, что хотите, например, шлёте отчёт на сервер, или показываете XPath в окошке. Только не забудьте, что у некоторых элементов может уже быть свой обработчик onhover, его надо не забывать запускать из своего обработчика, чтобы ничего не сломать.

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

    valerium
    @valerium
    Изобретая велосипед
    К строке можно обращаться как к массиву символов по индексам. У Вас уже есть список индексов и необходимых значений, нужно только взять и подставить.
    Ответ написан
    Комментировать
  • Какой SSD выбрать под торренты?

    valerium
    @valerium
    Изобретая велосипед
    Предлагаю финт ушами :-) 32+ ГБ оперативной памяти и RAM диск под загрузки. Качаете файл туда, первый раз смотрите оттуда же, а потом тихо и спокойно полночи сбрасываете на жёсткий диск.
    Ответ написан
    3 комментария
  • Почему apache + nginx при обработке изображений отдает 500 ошибку?

    valerium
    @valerium
    Изобретая велосипед
    Запись в логах nginx «upstream prematurely closed connection while reading response header from upstream» означает именно преждевременное закрытие соединение проксируемого сервера, то есть ошибку в ходе выполнения скрипта. Смотрите логи самого скрипта или апача. Либо скрипту не хватает ресурсов, либо каких-то библиотек/модулей, либо в самом коде содержатся ошибки.

    Кстати, код состояния 500 (Internal server error) как бы намекает на ошибку. Если проксируемый сервер не отвечает слишком долго, возвращается код состояния 504 (Gateway timeout).
    Ответ написан
    1 комментарий
  • Выбор версии python для новичка?

    valerium
    @valerium
    Изобретая велосипед
    На дворе скоро начнётся 2016 год. Пора бы уже считать третий пайтон пайтоном по умолчанию.

    Да, есть несколько библиотек, которые не работают под третий пайтон, но практически всем им есть замена.
    Ответ написан
    4 комментария
  • Можно ли сделать автоматический запуск видео html 5?

    valerium
    @valerium
    Изобретая велосипед
    Так вот кто делает эти гребучие сайты, которые без спросу посреди ночи начинают орать на полквартиры?!
    Ответ написан
    Комментировать
  • Как обойти блокировку роскомнадзора для десктоп программ (не браузеров)?

    valerium
    @valerium
    Изобретая велосипед
    Самый простой способ — завернуть весь траффик в VPN и иногда ручками отключать его, когда нужна полная ширина канала.

    Но можно заморочиться. Написать скрипт, который будет регулярно проверять IP адреса pastebin.com и записывать их куда-нибудь в hosts, а потом по этим адресам составлять правила маршрутизации так, чтобы траффик на них шёл через VPN, а всё остальное через основной канал.
    Ответ написан
    Комментировать
  • Почему веб хостинги сайтов блокируют SMTP?

    valerium
    @valerium
    Изобретая велосипед
    Почту, отправленную через mail(), можно пропустить через собственный спам фильтр. А через 25-й порт можно подключаться напрямую к SMTP серверу получателя и отправлять почту без авторизации. Отсюда вполне логичный вывод, что 25-й порт лучше прикрыть.

    Если хотите отправлять почту по SMTP с авторизацией (со своего ящика на Яндексе), используйте 993-й порт и TLS шифрование.
    Ответ написан
    1 комментарий
  • Как используя библиотеку paromiko при подкл к серверу использовать авторизацию по ключу и паролю?

    valerium
    @valerium
    Изобретая велосипед
    У объекта paramiko.SSHClient есть методы load_system_host_keys и load_host_keys. Первый подгружает ключи того пользователя, от имени которого запущен, второй подгружает указанный ключ. Если ключ запаролен, будет выброшено исключение (не помню какое, но это легко проверить экспериментом). Соответственно, в случае исключения нужно запросить с консоли пароль, это лучше делать встроенным модулем getpass (он позволяет легко сделать ввод пароля без эха).
    Ответ написан
    Комментировать
  • Обратный no ip сервис, есть решение?

    valerium
    @valerium
    Изобретая велосипед
    Судя по всему, Ваша задача отлично решается с помощью VPN. Соберите все машины в одну виртуальную сеть и внутри неё уже рулите доступами, как Вашей душе угодно.

    Если нужно, чтобы конкретный сервер для всех внешних (по отношению к VPN) машин имел заданный IP, дайте VPN серверу дополнительный белый статический IP и научите VPN сервер весь трафик от этого сервера во внешнюю сеть отдавать с этого дополнительного IP. Так же и весь входящий трафик на этот IP можно целиком слать на исходный сервер.
    Ответ написан
    1 комментарий
  • Запускаю скрипт на Python, а он выдает ошибку. На компьютере все отлично, как исправить?

    valerium
    @valerium
    Изобретая велосипед
    Либо запускайте как
    python vk.py
    Либо пропишите ша-банг, т. е. в самую первую строку
    #!/usr/bin/python

    Если скрипт написан под третью версию питона, в обоих случаях замените python на python3.
    Ответ написан
    5 комментариев
  • Простейший парсинг на питоне?

    valerium
    @valerium
    Изобретая велосипед
    .split() — это метода строкового объекта, разбивает строку по заданному символу или набору символов, возвращает список строк.

    Префикс r означает, что внути строки нужно игнорировать экранирование, использовать её «как есть» (сокращение от raw). В данном конкретном случае она ни на что не влияет.
    Ответ написан
    4 комментария