• Организация сети в школе. Как быть?

    flexus__gk
    @flexus__gk
    Системный администратор, в прошлом - преподаватель
    Вопрос при реализации любых проектов в школе не "что?", а "сколько?". Сначала подбейте возможный бюджет, получите все согласования, соберите коммерческие предложения и прочее. Возможно, еще и тендер придется организовывать. А по согласованной сумме сразу будет виден уровень оборудования. Опыт работы в школе подсказывает, что желания никогда не совпадают с возможностями :)
    Ответ написан
    7 комментариев
  • Как провести анализ продаж, чтобы выявить сопутствующие товары с помощью Python?

    @axce1
    имхо, для уровня coursera задачка сильная...
    для gui -- pyqt5
    хранить в базе -- sqlite
    для excel -- поробуйте www.python-excel.org
    про нахождение сопутсвующих товаров ищите инфу в книге "Программируем коллективный разум"
    Ответ написан
    1 комментарий
  • Как сделать связь с допофисом на микротиках?

    ifaustrue
    @ifaustrue
    Пишу интересное в теллеграмм канале @cooladmin
    Используйте туннель GRE, зашифрованный поверх IPSec в транспортном режиме. Если останутся проблемы с паролями и логинами при работающих пингах, ДНС и правильных маршрутах - значит проблема не в сети, а выше уровнем.

    Чтобы все ходили в интернет локально таблица маршрутов должна содержать запись 0.0.0.0/0 на шлюз провайдера, и 192.168.24.0/24 на интерфейс туннеля или на туннельный адрес главного микротика.

    Про кучу разных вариантов туннелей вот дельная статья
    Ответ написан
    Комментировать
  • Какое железо купить для небольшого офиса?

    nightvich
    @nightvich
    ITman
    По сути для таких целей можно использовать что угодно. На мой взгляд, один из наиболее выгодных вариантов с заделом на будующее - это взять и поставить linux "шлюзик" и обычный dlink на 24 порта. Если не нужна отказоустойчивость и т.д. Этого достаточно. Ещё и трафик можо будет считать.
    Ответ написан
    4 комментария
  • Как реализовать peer-to-peer технологию?

    tsarevfs
    @tsarevfs Куратор тега C++
    C++ developer
    Программировать на чистых сокетах дело достаточно трудоемкое. Кроме того, что вам приходится работать на достаточно низком уровне, для обеспечения их неблокирующей работы(например при ожидании данных от другого клиента) надо использовать или потоки или poll/select.
    Хорошим выходом может стать использования обертки, например из Qt. Так вы получите кросплатформенный код с меньшими затратами. Стоит также взглянуть на более высокоуровневые варианты, например ZeroMQ (не знаю как у них с p2p, но для общения между 2 клиентами это может упростить жизнь).
    В простейшем случае для уведомления о своем присутствии клиент рассылает broadcast udp пакеты с информацией о себе. Основная проблема такого подхода, что такие пакеты будут зарезаны ближайшим маршрутизатором (наивно полагать что нам дадут разослать пакет каждому пользователю интернета). Поэтому такой подход работает только в простой локальной сети. Bittorent умеет хранить информацию децентрализовано, но для первоначального подключения необходимо знать адрес хотя бы одного подключенного участника.
    После того как вы знаете адрес другого клиента вы можете установить с ним непосредственное соединение. На самом деле тут тоже не все так просто. Если он находится за NAT, а до распространения ip-v6 для большинства(?) клиентов так оно и есть, то придется что-то придумывать. По этой теме можно поискать по запросу "p2p over NAT".
    Ответ написан
    Комментировать
  • Scrapy - как собрать данные со всех товаров на странице по очереди?

    @egorsmkv
    Для начала, вам нужно выбрать xpath-запросом все товары на странице.

    Например, здесь запрос будет выглядеть так //div[@class='bOneTile inline']
    После чего проитерировать их через for и, снова, выбрать через xpath-запрос цену и название для каждого элемента:
    # название
    a[@class='jsUpdateLink bOneTile_link']
    # цена
    //span[@class='eOzonPrice_main']

    Чтобы перейти на следующую страницу - нужно найти ссылку для неё и снова спарсить данные товаров.
    Ответ написан
    Комментировать
  • Детектирование голоса в (телефонном) аудио файле и вырезание, какую библиотеку использовать в Python?

    alexeygrigorev
    @alexeygrigorev
    Переворачиватель пингвинов
    Я это делал без библиотеки. Для этого можно использовать энергию сигнала в окошке, и если энергия превышает определенный порог, то значит в окошке есть голос. В телефонном аудиофайле часто присутствует шум, поэтому есть смысл сначала "выровнять" сигнал в окошке - т.е. отнять среднее от каждого элемента.

    Примерно так:

    window = signal[i:(i+win_len)]
    energy = ((window - window.mean()) ** 2).sum()
    voice = energy > threshold


    Алгоритм - автомат с двумя состояниями "тишина" и "голос":
    • Заводим очередь с макс. вместимостью t
    • Начинаем с состояния "тишина"
    • Проверяем, есть ли голос в окошке
    • Если есть, то создаем новый файл, берем все данные из очереди, добавляем в файл, переходим в состояние "голос"
    • Нет - добавляем данные из окошка в очередь
    • В состоянии "голос" записываем текущее окошко в файл, пока не встретим t подряд идущих окошек с тишиной - в этом случае сохраняем файл и переходим в "тишину" опять


    Можно переходить в режим "голос" только после того, как встретилось несколько подряд идущих окошек с голосом, чтобы не выдергивать из записи всякие щелчки и прочие артефакты.

    В моем случае t = 10 и ширина окошка 512 давали самые лучшие результаты, но в вашем случае результат может отличаться. Уровень тишины, который я использовал, я точно не помню. Можно просто взять тишину и посмотреть, какая у нее энергия и сравнить с энергией голоса, и взять среднее значение между ними.
    Ответ написан
    Комментировать
  • Какие есть годные книги на русском по программированию web на python3?

    Tark
    @Tark
    Pyramid'альный мир
    Pure Python не применяется в веб-разработке потому, что... придётся писать свой веб-сервер, который будет слушать 80-ый порт, принимать запросы и вертать взад ответы. Хотя постойте, зачем писать веб-сервер? Есть же nginx! А приложения на Python веб-сервер отдаёт через uwsgi. Да! Тогда надо написать что-то, что будет отдавать в uwsgi сгененированный ответ. Получится что-то типа Werkzeug (часть Flask). Или что-то типа Gevent. Или что-то типа Twisted. Или что-то типа Tornado. Или что-то типа wheezy.web. Что-то, что называется WSGI-сервером. А потом на нём придётся сделать что-то типа фреймворка Bottle, чтобы можно было быренько и красиво делать то, ради чего это всё было написано.

    Но... Тут возникают странные мысли насчёт того, есть ли в этом смысл? Может, стоит переложить эту задачу на чужие плечи? Даже в этом ответе уже есть до черта WSGI-серверов, которые написаны людьми, куда более сведущими в этом вопросе. Может быть, стоит сосредоточиться на самом процессе написания приложений, используя уже готовые фреймворки? Рождение ещё одного фреймворка не сделает мир лучше.
    Ответ написан
    1 комментарий
  • Как правильно настроить?

    Spetros
    @Spetros
    IT-шник
    Как думаете, можно это реализовать?

    Можно.

    В сети есть куча инструкций как включить/настроить раздачу интернета.

    Чтобы не было двойного NAT, сервер лучше в LAN-порт роутера подключать, в настройках сети в качестве шлюза тогда ip внутренней сетевой сервера указать надо будет.
    Ответ написан
    3 комментария
  • Какой python библиотекой парсить Html?

    Недавно рекомендовали для парсинга сайтов вот это решение
    scrapy.org
    Ответ написан
    Комментировать
  • Какую книгу выбрать по Delphi?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Пусть меня закидают камнями, но Delphi дал мне очень много: знаний, опыта, денег.
    Просто, теперь PR-ят веб-технологии и спрос упал, а стоимость и сложность работ stand-alone приложений - повысилась, т.к. специалистов почти не осталось...
    Лучшая на сегодня книга по Delphi (Д.Осипов - Delphi XE2): тут
    Ответ написан
    Комментировать
  • Как понять суть работы SSL сертификатов?

    ifaustrue
    @ifaustrue
    Пишу интересное в теллеграмм канале @cooladmin
    Вопрос можно разбить на две составляющие.

    1. Что такое сертификаты и какова их суть работы?
    Для того, чтобы разобраться во всех перипетиях сертификации и сути центров сертификации обратимся к аналогии из физического-реального мира.
    Сертификаты, созданы для того, чтобы подтвердить что я - это я. И что Петя - это Петя. В реальном мире для этого используются всяческие уникальные признаки - фотография, отпечатки, ДНК и рукописная подпись. Последняя в свою очередь работает только в двух случаях: первый - я вижу что Петя подписал документ - никто другой этого сделать же не мог, я же видел что это сделал Петя, и второй случай - я знаю что документ подписал Петя, так как у меня есть доказательства того, что вот эта вот закорючка - Петина подпись.
    Такие доказательства в реальности очень распространены, но ближайшая аналогия - это просто паспорт. В паспорте, помимо прочего, есть образец подписи. Паспорт мы можем предъявить для доказательства того что я это я, а Петя это Петя. Этот паспорт мне выдал наш общий удостоверяющий центр, которому мы оба доверяем.

    С сертификатами примерно та же история, у меня есть подпись, которую я передаю вместе с неким документом (или просто объектом), но доверять мне можно только если я приложу отсылку на некий контролирующий орган, которому мы оба (но главное получатель) доверяем. Т.е. получив некий объект, на котором есть чья то подпись я иду в центр сертификации (контролирующий орган) и спрашиваю "У меня вот тут штука - она норм?", мне говорят да или нет.

    Если я готов доверить центру сертификации, который и выпустил сертификат - то ок, буду ему доверять. Это будет само-подписанный серт. Если не готов, то подавайте сюда сертик выданный УЦ, да ещё и чтобы зелёная плашечка ставилась в браузере.

    2. Вопрос про то чем же сертики отличаются?
    Из выше описанного следует, что они отличаются классом "доверия" и количеством\типом объектов которые я могу ими подписывать. Есть ещё всякие плюшки и мелочи, но основное я описал =)
    Ответ написан
    2 комментария
  • Как просто интегрировать на сайт ввод формул, кода?

    xSkyFoXx
    @xSkyFoXx
    Лучше всего рендерить подобные штуки не на стороне сервера, а на стороне клиента. Я использую для этого mathjax.

    Тогда вы вводите формулы в привычном LaTeX формате в удобном для вас редакторе, будь то markdown или raw-текст (формочка в админке Django), а на клиенте (в браузере) всё отрисовывается. (Вот, например, как это выглядет: cherrypiethoughts.com/from-2-to-infinity.html )

    Батарейка для Django: https://github.com/kaleidos/django-mathjax
    Ответ написан
    3 комментария
  • Как сделать сбор SNMP данных свитча D-link в БД mysql?

    Disen
    @Disen
    Если узлов у Вас достаточное количество, то может использовать специализированное ПО - Zabbix, Zennos, Nagios, MRTG, Cacti и т.д.?

    Можно, конечно, складировать в БД, но ведь эти данные мониторинга необходимо не только накоплять, но и отображать в удобочитаемом виде, сообщать о событиях и т.д, поэтому рекомендую Вам использовать все-таки систему мониторинга.
    MRTG и Cacti - попроще, Zabbix, Nagios - "полнофункиональные комбайны".
    Выбирайте, какая Вам больше по душе и вперед!

    Я бы порекомендовал Вам Zabbix. Есть версия и под mysql.
    Ответ написан
    2 комментария
  • Какие есть развивающие игры для будущих программистов?

    @tematk
    CodeCombat - javascript,python,coffescript etc...
    Какая-то игра -возможность переключатся между многими языками программирования
    Ответ написан
    Комментировать
  • На сколько законно использовать краулер?

    kumaxim
    @kumaxim
    Web-программист
    Информация о товаре, его характеристиках, цене, гарантийном обслуживании, условиях обмена, возврата, доставки и т.д. является частью публичной оферты магазина.

    Вы спокойно можете брать эту информацию и публиковать где-то у себя на сайте/группе ВК/рассылке и т.д.

    Основание? Ок, заходим в Вики и читаем:


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


    Надеюсь суть и выделенным словам уловили )))
    Ответ написан
    Комментировать
  • Как настроить eBGP failover между двумя сайтами на Cisco?

    vvpoloskin
    @vvpoloskin
    Инженер связи
    Теоретически можно сконвертить в PI-адреса и оставить их одинаковые на обоих сайтах. Тогда к оператору будут отдаваться ваши префиксы с двух мест. Посмотрите, как организовывала CDN ivi.
    Ответ написан
    Комментировать
  • Чем БД отличается от СУБД?

    @zedxxx
    Но вот вопрос SQLLite. Где тут СУБД?

    Вот тут: sqlite3.dll
    А БД - файлики *.db3 которые появляются на диске и хранят ваши данные.

    Базы данных - это специально разработанное хранилище для различных типов данных. Каждая база данных, имеет определённую модель (реляционная, документно-ориентированная), которая обеспечивает удобный доступ к данным. Системы управления базами данных (СУБД) - специальные приложения (или библиотеки) для управления базами данных различных размеров и форм.

    devacademy.ru/posts/sqlite-vs-mysql-vs-postgresql
    Ответ написан
    3 комментария
  • Почему тормозит интернет через Linux-шлюз?

    @e1ferapontov Автор вопроса
    Админю всякую виртуализацию
    Виноват оказался PMTU Discovery blackhole. У провайдера где-то перекрыт ICMP трафик, а мое правило iptables для сжимания mtu на внешнем интерфейсе не работало.
    Оказывается, TCP MSS правила можно и нужно записывать исключительно в таблицу mangle, чего я как раз и не понял в первый раз ввиду отсутствия документации. После этого все заработало:
    iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1300
    Ответ написан
    Комментировать
  • Как получить рекурсиво список каталогов в python3?

    os.walk чем не устраивает? И без рекурсий.
    Ответ написан
    Комментировать