• Я не понимаю что у меня с процессором?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Intel(R) Core(TM)2 CPU T5600 @ 1.83GHz - это ID процессора, зашитый в нём самом.
    Вторая надпись 1.83 ГГц - частота, определённая системой.
    Ответ написан
    1 комментарий
  • Как узнать, почему debian сервак грузит сеть?

    @vinca
    Как у Вас настроена сеть на неттопе? Убедитесь, что ip-адрес не конфликтует с основным шлюзом.
    Ответ написан
    Комментировать
  • Как узнать, почему debian сервак грузит сеть?

    insiki
    @insiki
    broken pipe
    tcpdump?
    Ответ написан
    Комментировать
  • Как оптимизировать скорость работы Mikrotik без перезагрузки?

    Melkij
    @Melkij
    PostgreSQL DBA
    Разумеется есть.
    Разобраться, в чём проблема.
    Обновите ОС, если проблема останется - напишите в саппорт микротика.
    Посмотрите штатным профилировщиком, чем система занята.
    Ответ написан
  • Как реконструировать программу на CLIPPERе?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Запустите через DOSbox. Исходники можете попробовать получить декомпилятором.
    Ответ написан
    Комментировать
  • Почему в России и СНГ так не популярен фреймворк Pyramid?

    @orgkhnargh
    медленно пишу на django
    Потому что в России и СНГ популярен TurboPascal 7.
    Ответ написан
    Комментировать
  • Какой веб-сервер используется в устройствах (модем, коммутатор, телевизор и т.д.) для организации веб интерфейса?

    vvpoloskin
    @vvpoloskin
    Инженер связи
    Я видел lighthttp и httpd, без субд (нужны в омновном настройки, они заносятся в ini или cfg файл), работают через cgi (fast), по этому обработка на чем угодно, но чаще на баше или php
    Ответ написан
    Комментировать
  • Раз Пи бесконечно, можно сказать, что его значение меняется постоянно?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Число ПИ постоянное, точность знака его бесконечной десятичной дроби (в расчетах) - переменная и зависит от конкретной задачи.
    Ответ написан
    Комментировать
  • Как внутри list, который состоит из элементов string удалить все символы не являющимися цифрами?

    Lerg
    @Lerg
    Defold, Corona, Lua, GameDev
    from string import digits
    digits = frozenset(digits)
    
    a = [ "['9', '8', '7', '4']", "['9', '8', '7', '5']", "['9', '8', '7', '6']"]
    b = []
    for e in a:
        b.append(int(''.join(c for c in e if c in digits)))
        
    print(b)
    Ответ написан
    2 комментария
  • Как развить мышление для программирования?

    Опыт лучший учитель. Занимайся непосредственно программированием от легких задач к сложным. Я закончил физико-технический факультет и когда занялся программированием ничем не отличался от тебя путался в алгоритмах и с трудом строил циклы. Начинал с самого простого, брал учебник и разбирал примеры, придумывал задачки и храбро их решал, читал мануалы, находил толковые видеоуроки по нужному материалу. Терпение и труд делают свое черное дело, я занимаюсь Web-программированием и чем больше изучаю его, тем больше осознаю как много еще не знаю. Думаю, в программировании самое важное то, чтобы тебе самому было интересно им заниматься и ты с удовольствием тратишь на него свободное время и силы, все остальное придет со временем. Еще могу посоветовать найти компанию единомышленников или наставника, с кем можно посоветоваться и попросить помощи, мне в этом повезло, у меня лучший друг хороший программист, даже и не знаю, что бы без него делал)
    Ответ написан
    Комментировать
  • Как задеплоить django?

    ali_aliev
    @ali_aliev
    Разработчик на Django/Python, JavaScript
    где конфиги? почему не связка nginx + uwsgi + supervisor? по моему тут проще некуда.

    Ставим uwsgi: sudo pip install uwsgi
    Ставим supervisor: sudo apt-get install supervisor

    создаем .env в директории в корне проекта командой: virtualenv .env
    source .env/bin/activate

    ставим зависимости вашего проекта
    pip install -r requirements.txt

    File: /etc/supervisor/conf.d/yoursite.conf
    [program:yoursite]
    command=uwsgi --ini /etc/uwsgi.ini
    autostart=true
    autorestart=true
    stderr_logfile = /tmp/uwsgi-err.log
    stdout_logfile = /tmp/uwsgi.log


    File: /etc/uwsgi.ini

    [uwsgi]
    chdir           = /home/projectroot
    wsgi-file          = /home/projectroot/wsgi.py
    home            = /home/projectroot/.env
    logto           = /var/log/uwsgi.log
    
    master          = true
    processes       = 10
    socket          = /tmp/yoursite.sock
    vacuum          = true
    touch-reload    = /tmp/yoursite.reload


    File: /etc/nginx/sites-enabled/yoursite.conf

    server {
        listen   80;
        server_name  yoursite.com;
        access_log  /home/var/log/nginx/yoursite.nginx.access.log;
        error_log  /home/var/log/nginx/yoursite.nginx.error.log;
    
        location / {
            uwsgi_pass   unix:///tmp/yoursite.sock;
            include uwsgi_params;
        }
        location /static/ {
            alias /home/yoursite/assets/;
        }
    }


    перезагружаемся: sudo /etc/init.d/nginx/restart
    sudo supervisorctl reload
    sudo supervisorctl restart yoursite
    Ответ написан
    8 комментариев
  • Какие самые реальные и действенные проекты\работы\фриланс для python-программиста?

    kivsiak
    @kivsiak
    software engineer
    Основной навык для любого программиста это самостоятельный поиск и анализ информации.
    odesk fl и т.п. не являются закрытым элитарным сообществом. Что вам мешает зайти и посмотреть какие задачи там ставят? Что требуют? Сколько платят? Какие сроки?
    Ответ написан
    Комментировать
  • Как получить доступ по ftp в Python?

    winordie
    @winordie
    Лучшая документация -- исходники
    from ftplib import FTP
    
    def download_img(file, folder):
            if ftp_online():
                    ftpConnect = FTP()
                    ftpConnect.connect(server_ftp, port_ftp)
                    ftpConnect.login(login_ftp, pass_ftp)
                    ftpConnect.cwd('/folder_on_ftp/Images/%s' % folder)
                    #st = ftpConnect.pwd()
                    return copy_file(ftpConnect, file, folder)
    
    def ftp_online():
        ftpConnect = FTP()
        try:
            ftpConnect.connect(server_ftp, port_ftp)
            ftpConnect.login(login_ftp, pass_ftp)
            ftpConnect.quit()
            ftpConnect.close()
            enable = True
        except:
            enable = False
        return enable
    
    def copy_file(ftp, path, folder):  # ftp - через что соединяемся, path - абсолютный путь до передаваемого файла
        name_file = path
        try:
            send_file = open('/tmp/%s' % name_file, 'rb')
            ftp.storbinary('STOR ' + name_file, send_file, 1024)
            send_file.close()
        except IOError as err:
            print(err)
            return 'noimage.jpg'
        return name_file
    
    
    download_img(image.gif, folder_on_ftp_for_image)


    Как пример
    Ответ написан
    Комментировать
  • Как отлаживать программы, которые долго выполняются?

    z17
    @z17
    Java, PHP
    Сделайте чтобы программа писала в лог всё подряд во время выполнения.
    Потом этот лог и читайте - будет видно где что-то пошло не так.
    Ответ написан
    Комментировать
  • Нагрузка когда с sqlite нужно уходить?

    Stac
    @Stac
    У SQLITE проблемы могут быть только с записью. Там ведется специальный журнал, что может тормозить. Но его можно отключить. Наверняка есть еще куча настроек.
    Еще можно использовать очереди на запись, если это приемлемо.

    Я делал системы учета трафика, где по 10-20 тыс. переходов в день (с тизерных сетей) записывалось в базу нормально. Правда длился это эксперимент всего неделю.

    Другой опыт с меньшей нагрузкой (до несколько тысяч переходов день) живет третий год с более млн. записей.

    Не знаю, насколько вам будет это полезно.

    И да, SQLITE это полноценная СУБД, только встраиваемая, а не клиент-серверная. Хотя есть и сервера для SQLITE, да и свой сервер можно написать под конкретную задачу, если приспичит.
    Ответ написан
    Комментировать
  • Какого максимального размера должны быть квадраты, чтобы ровно впихнуть их в прямоугольник c известными сторонами?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Наибольший общий делитель длин сторон прямоугольника. Искать алгоритмом Евклида. Это будет сторона. А площадь найдется возведением в квадрат.
    Ответ написан
    2 комментария
  • Безболезненная эволюция работающего локального корпоративного сервера?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Изначально Вам нужно просто поднять nat на сервере и сменить адресацию и шлюз в сети. Сама по себе установка squid ничего не меняет у клиентов пока не измените настройки прокси в браузерах. То же самое и с большинством других сервисов. Осторожно надо только настраивать правила файрвола, там можно легко отрубить всех от интернета.
    Ответ написан
    Комментировать
  • Стоит ли использовать RSA?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    И да и нет одновременно.

    (обновлено, ибо внезапно прочитал и половину не понял - видимо писал на "потоке")
    RSA стоит использовать лишь для шифрования других ключей - ключей симметричных алгоритмов шифрования. AES, ГОСТ 28147-89, 3DES и другие. Почему? Во-первых, симметричные алгоритмы более устойчивы к взлому при большом известном закрытом тексте, тогда как ассиметричное шифрование потенциально имеет изъяны. В том смысле, что (почти) любое ассиметричное шифрование использует задачу NP-класса (точнее - NP-полную задачу): факторизация числа (RSA), декодирование полных (общих) линейных кодов (McEliece), вычисление дискретного логарифма на элептической кривой (ГОСТ Р 34.10-2012), или в конечном поле (Elgamal). Другое дело, что любая эта задача потенциально - решаемая. В случае с симметричным шифрованием действительно стоит лишь надеяться на чудо (в ГОСТе разрешено выбирать любые s-блоки, так что криптоаналитику ничего не остаётся, как молиться пролетариату в надежде на терморектальный криптоанализ). В случае же с ассиметричным шифром в дело вступают две вещи - высокая сложность реализации действительно стойкого алгоритма (ассиметричные шифры очень сложны и полны нюансов, не учитывая которые можно запросто порушить систему), низкая скорость работы (в силу того, что приходиться использовать очень абстрактные математические функции, сложно реализуемые аппаратно и таящие в себе множество низкоуровневых операций) при требовании к очень длинным ключам заставляют использовать небольшие ключи для того, чтобы не ждать вечность.

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

    Окай, посмотрим на стандартную схему с Алисой, Бобом и Евой:
    Алиса -> c = E(m, Eb) -> -------- -> D(c, Db) -> Боб (
                                     |
                                     |
                                     v
                         Ева <- c, E, D, d

    здесь m - текст, который надо передать (сообщение)
    c - шифротекст
    E - функция шифрования (получения из сообщения шифротекста)
    D - функция дешифрования, иначе - обратная функция шифрования (получения из шифротекста - сообщения)
    Eb, Db - секретный и открытый ключи Боба (в литературе используется различное обозначение, здесь так)
    Собственно, Ева знает всё о функциях шифрования и дешифрования, имеет доступ к шифротексту и будем считать, что она получает и открытый ключ.

    Теперь, что нам это даёт? А это нам даёт возможность наплодить большое количество ключей и шифровать каждое сообщение отдельным ключём. Потенциально, но если есть $$$, то можно скупить половину серверов страны, если не планеты и радоваться жизни. Хотя ровно так же можно поступить и с симметричным шифрованием, и называется это одноразовым блокнотом, используют и различные режимы шифрования и всё равно выходит профитнее. Где же профит здесь?
    Во-первых, если нужно передавать по каналу, а не хранить, то можно генерировать ключи налету и после расшифровки их уничтожать. По сути, получиться что для того, чтобы получить сообщение длины l бобу потребуется передать и ключей в общей сумме длины l. Много? Да. Профитно? Очень - ибо мы реализуем
    ассиметричный одноразовый блокнот (упс), который, однако, нет никакого смысла использовать нет - слишком дорого. Да и не всегда возможно - порой обратный канал чрезвычайно узкий.
    Во-вторых, есть способ организовать защиту, основанную на иерархии пользователей. То есть майор Алиса написала отчёт, который ей надо отправить подполковнику Бобу. При этом читать этот отчёт должны иметь право все, кто равен или выше подполковника.
    В-третьих, как писалось выше, сложность взлома достаточно велика. И не только потому, что P != NP. Даже P довольно большое получается, поэтому и используют асимметричный шифр для передачи ключей симметричных ключей. Но и взлом получается очень не простым из-за тяжёлых математических абстракций. Обычно. Да, RSA можно "взломать" перебрав все возможные делители, но это долго из-за астрономического размера ключа. А способы обхода или упрощения опираются на такой зубодробительный матан, что попытка как-то это реализовать заставит использовать сами по себе очень тяжёлые операции. Так это при работе с банальными числами (и это показывает, насколько плохо развита теория чисел), а что если уйти на эллиптическую кривую - аналитическая геометрия развита может чуть лучше, но абстракции намного тяжелее для компьютеров. И даже использование графических карт не помогает, ведь есть ещё и макэлис. Я к тому, что O(2^32) для симметричного шифра и O(2^32) для асимметричного шифра не очень таки равны. Так же не равны, как не равны день и месяц.

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

    Поэтому шифрование надо использовать соразмерно цене риска. Чем выше риск - тем сильнее шифрование, но самое главное - сложнее и дисциплинированнее организационные меры. Согласитесь - бесполезно иметь централизованное хранилище сертификатов с одним сервером в бункере за 200 км под землей и круглосуточной охраной из армии маленькой страны, всего лишь одним портом торчащим во внешний мир с каналом около 200 бит в секунду и постоянным наблюдением за организационными методами (авторизация, доступ и подобной)... Имея пароль на суперюзер - qwerty, и держа на винчестере архив с котиками.
    Ответ написан
    Комментировать
  • Как определить первый и последний сегмент в сырых TCP пакетах при IP фрагментации?

    IP-фрагментация никак не связана с флагами TCP.

    Для сборки нужно только знать ID пакета из IP-заголовка и по нему собирать с учетом позиции.
    Признак последнего фрагмента в пакете - сброшенный флаг MF; при этом нужно не забывать, что фрагменты могут идти не в последовательности, поэтому пакет считается собранным, когда получены все фрагменты.
    Ответ написан
    5 комментариев
  • Как работать с django на vps и вообще как ведется разработка проекта для продакшена?

    @romamo
    Архитектура. Highload. Data mining
    1. БД на сервере. Доступ к ней с сервера и с локальной машины.
    2. Заводим репозиторий проекта в git.
    3. Ставим virtualenv на сервер
    4. Настраиваем среду на сервере
    5. Работаем в PyCharm, умеет сам аплоадить все файлы по ssh.
    6. Запускаем на сервере запускаю вручную (чтобы видеть лог и ошибки). Если нужно, то поверх nginx.
    7. Если код неплатформозависимый, то запускаем локально: серьезно экономит время, не нужно ждать пока зааплоадятся файлы, удаленная БД дает небольшой оверхед.
    8. Платформозависимый - запускать локально в виртуалке.
    9. В довиртуальные времена я использовал отдельный компьютер с настроенной средой и бд, аналогичными продакшену.
    10. На продакшн выкладывается из репозитория. Тут каждый придумывает свою схему деплоя.
    11. virtualenv везде, причем отдельный для разработки, для тестирования, беты и продакшена.
    Часто обновляется внешний пакет, добавляется на дебаг, дорабатывается код, далее внешний пакет обновляется на бете, тестируется и потом только попадает на продакшен.
    Ответ написан
    Комментировать