Search
Write a publication
Pull to refresh
75
0.6

User

Send message

Программирование с PyUSB 1.0

Reading time15 min
Views57K
От переводчика:
Это перевод руководства Programming with PyUSB 1.0
Данное руководство написано силами разработчиков PyUSB, однако быстро пробежавшись по коммитам я полагаю, что основной автор руководства — walac.


Позвольте мне представиться


PyUSB 1.0 — это библиотека Python обеспечивающая легкий доступ к USB. PyUSB предоставляет различные функции:

  • На 100% написана на Python:
    В отличии от версий 0.x, которые были написаны на C, версия 1.0 написанна на Python. Это позволяет программистам на Python без опыта работы на C лучше понять как работает PyUSB.
  • Нейтральность платформы:
    Версия 1.0 включает в себя фронтенд-бэкенд схему. Она изолирует API от специфичных с точки зрения системы деталей реализации. Соединяет эти два слоя интерфейс IBackend. PyUSB идет вместе со встроенными бэкендами для libusb 0.1, libusb 1.0 и OpenUSB. Вы можете сами написать свой бэкенд, если хотите.
  • Портативность:
    PyUSB должен запускаться на любой платформе с Python >= 2.4, ctypes и, по крайней мере, одним из поддерживаемых встроенных бэкендов.
  • Простота:
    Взаимодействие с устройством USB никогда не было таким простым! USB — сложный протокол, а у PyUSB есть хорошие предустановки для наиболее распространенных конфигураций.
  • Поддержка изохронных передач:
    PyUSB поддерживает изохронные передачи, если лежащий в основе бэкенд поддерживает их.

Несмотря на то, что PyUSB делает программирование USB менее болезненным, в этом туториале предполагается, что у Вас есть минимальные знания USB протокола. Если Вы ничего не знаете о USB, я рекомендую Вам прекрасную книгу Яна Аксельсона «Совершенный USB» (Jan Axelson «USB Complete»).
Читать дальше →

Враг внутри: как я попался на инсайдерском редтиминге

Reading time10 min
Views92K


У меня были все преимущества. Я уже был внутри сети. Я был вне подозрений. Но они обнаружили мой взлом, выкинули из сети… и выследили физически.
Читать дальше →

Методы наименьших квадратов без слёз и боли

Reading time10 min
Views51K


Итак, очередная статья из цикла «математика на пальцах». Сегодня мы продолжим разговор о методах наименьших квадратов, но на сей раз с точки зрения программиста. Это очередная статья в серии, но она стоит особняком, так как вообще не требует никаких знаний математики. Статья задумывалась как введение в теорию, поэтому из базовых навыков она требует умения включить компьютер и написать пять строк кода. Разумеется, на этой статье я не остановлюсь, и в ближайшее же время опубликую продолжение. Если сумею найти достаточно времени, то напишу книгу из этого материала. Целевая публика — программисты, так что хабр подходящее место для обкатки. Я в целом не люблю писать формулы, и я очень люблю учиться на примерах, мне кажется, что это очень важно — не просто смотреть на закорючки на школьной доске, но всё пробовать на зуб.

Итак, начнём. Давайте представим, что у меня есть триангулированная поверхность со сканом моего лица (на картинке слева). Что мне нужно сделать, чтобы усилить характерные черты, превратив эту поверхность в гротескную маску?



В данном конкретном случае я решаю эллиптическое дифференциальное уравнение, носящее имя Симеона Деми Пуассона. Товарищи программисты, давайте сыграем в игру: прикиньте, сколько строк в C++ коде, его решающем? Сторонние библиотеки вызывать нельзя, у нас в распоряжении только голый компилятор. Ответ под катом.
Читать дальше →

Домашняя электросеть

Reading time12 min
Views43K
Здесь часто возникает тема защиты оборудования в домашней электросети, но очень часть при описании базовых параметров устройств защиты информация не соответствует действительности или же, в лучшем случае, основана на отдельных примерах. Потому далее будет своеобразный ликбез о том, как правильно сделать вводный электрощиток.

Это не столько инструкция, сколько объяснение, что должно быть сделано, так как каждое подключение по сути индивидуально. В любом случае необходима консультация с учетом реальной ситуации.
Читать дальше →

96-ядерный суперкомпьютер на одноплатниках NanoPi Fire3

Reading time14 min
Views67K
Создание высокопроизводительного кластера с 12 узлами NanoPi-Fire3 менее чем за £100 (£550, включая двенадцать Fire3)

Мой прошлый кластер на Raspberry Pi 3 в прошлом году немало заинтересовал публику, так что я попробовать сделать аналогичные проекты на других отличных одноплатных компьютерах, которые есть на рынке. FriendlyARM из Китая очень щедро отправила мне 12 своих последних 64-битных ARM плат NanoPi-Fire3, на каждой из которых восьмиядерный ARM A53 SoC, работающий на частоте 1,4 ГГц, с гигабитным Ethernet.


Читать дальше →

Настраиваемый беспроводной диммер Noolite SUF-1-300

Reading time3 min
Views12K
Белорусская компания Ноотехника выпустила диммер, предназначенный специально для светодиодных ламп и способный регулировать их яркость в максимально широких пределах.


Читать дальше →

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

Reading time11 min
Views72K

Источник: Wikipedia License CC-BY-SA 3.0

Если вы часто ездите на общественном транспорте, то наверняка встречались с такой ситуацией:

Вы приходите на остановку. Написано, что автобус ходит каждые 10 минут. Засекаете время… Наконец, через 11 минут приходит автобус и мысль: почему мне всегда не везёт?

По идее, если автобусы приходят каждые 10 минут, а вы придёте в случайное время, то среднее ожидание должно составлять около 5 минут. Но в действительности автобусы не прибывают точно по расписанию, поэтому вы можете ждать дольше. Оказывается, при некоторых разумных предположениях можно прийти к поразительному выводу:

При ожидании автобуса, который приходит в среднем каждые 10 минут, ваше среднее время ожидания будет 10 минут.

Это то, что иногда называют парадоксом времени ожидания.
Читать дальше →

Moral Machine: беспощадный или бессмысленный?

Reading time12 min
Views22K

Данную статью я решил написать по следам вот этого поста.




Напомню краткую суть: в журнале Nature были опубликованы результаты исследования, проводившегося при помощи вот этого теста.

О чем же хочу написать я?


Во-первых, почему это исследование – абсолютно бесполезное именно для решения заявленной задачи, и именно в той форме, в которой было проведено.


Во-вторых, как стоило бы расставить приоритеты в подобном исследовании.


И в-третьих, попробовать провести симуляцию различных вариантов ДТП в рамках заданных тестом условий.

Читать дальше →

Сколько зарабатывает Хабр + инструкция как узнать сколько зарабатывают другие компании

Reading time3 min
Views75K
Предыстория: после того, как мы с командой в прошлом году закрыли компанию и еще не начали работу над новой, мы решили обновить наш старый, но довольно большой сайт с кулинарными рецептами. Чтобы понять насколько серьезно стоит углубляться в работу над ним, я проанализировал данные по выручке сайтов, которые тоже зарабатывают на рекламе.

В этом году уже вышли новые данные, которыми тоже решил поделиться. Доходы, расходы и прибыль приведены в миллионах рублей.

image
Читать дальше →

Завтра мы начнём вас убивать, или Зачем нужны инженеры

Reading time12 min
Views136K
Привет, Хабр. Под этим пафосным заголовком я бы хотел поговорить о том, что такое «инженерная наука», в чём состоит главная обязанность инженера и что бывает, если он с ней не справляется — мне кажется, в последнее время эта тема становится всё более актуальной, при этом её публичного обсуждения я не вижу.

Сподвигла меня на это разразившаяся (при моём активном участии) в минувшие выходные история с «нейроинтерфейсами» компании Bitronics Lab — детскими учебными наборами для снятия ЭЭГ и мышечной активности, которые при ближайшем рассмотрении оказались попросту небезопасны в использовании из-за несоблюдения их производителем базовых требований к электробезопасности медицинского оборудования.

История это очень показательна в том, что она демонстрирует, как по мере роста сложности система, составленная из кажущихся её авторам безопасными компонентов, становится опасной — причём на примере системы простой, бытовой и интуитивно понятной, а не атомного реактора или реактивного лайнера, которые любят брать в качестве примеров авторы книг вроде моей любимой "Inviting Disaster".

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

Итак, уважаемая российская компания, имеющая целую пачку не менее уважаемых партнёров, делает недешёвые, но пользующиеся спросом современные учебные наборы, используя для этого проверенные временем и считающиеся совершенно безопасными компоненты — Arduino, датчики, персональный компьютер.



Казалось бы, что может пойти не так?
Читать дальше →

Ассортимент — классическая задача оптимизации

Reading time7 min
Views29K


Ассортимент очень влияет на выручку магазина, но управляется не самим магазином. Судя по последним исследованиям, ассортиментом в России в целом мало кто управляет эффективно. Просто если поддерживать нужные товары в нужном количестве в нужных местах, можно дико поднять эффективность продаж многих магазинов. Дико — это, например, на треть.

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

Первый вопрос в том, почему вообще может не быть какого-то товара. Это очевидная вещь для любого человека из розницы, но крайне нелогичная для человека со стороны. Столетиями работает рынок, так почему, чёрт побери, до сих пор случаются неувязки?
Читать дальше →

Как подружить питон с Невидимым Интернетом? Основы разработки I2P приложений на Python и asyncio

Reading time4 min
Views11K


Проект Невидимый Интернет (далее просто I2P) представляет разработчикам платформу для разработки приложений с усиленными требованиями по приватности пользователей. Это виртуальная сеть поверх обычного Интернета, в которой узлы могут обмениваться данными и при этом не раскрывать свой настоящий IP адрес. Вместо IP адресов внутри Невидимого Интернета соединения происходят между виртуальными адресами, которые называются I2P Destination. Можно иметь сколько угодно таких адресов и менять их хоть для каждого соединения, они не предоставляют другой стороне никакой информации о настоящем IP адресе клиента.


В этой статье описаны базовые вещи, которые нужно знать для написания I2P приложений. Примеры кода приведены на Python с использованием встроенного асинхронного фреймворка asyncio.

Читать дальше →

Zeppelin OS — ещё один шаг к безопасным смарт-контрактам

Reading time3 min
Views5.8K

Ethereum сейчас одна из самых популярных платформ для создания децентрализованных приложений, которая активно развивается. Одно из новшеств Zeppelin мы сегодня попробуем своими руками. А для тех кто в «танке», Zeppelin — это компания, занимающаяся разработкой и проверкой безопасности смарт-контрактов. Библиотека смарт-контрактов OpenZeppelin их самый известный продукт. 



Так вышло, что инструменты разработки для Solidity ещё только развиваются, порой не позволяя разработчикам использовать всю мощь технологии смарт-контрактов. Например, ограничением являются «стандартные библиотеки», так как каждый раз в сеть перезаливается уже существующий код, что приводит к увеличению стоимости «развёртывания» кода и количества потенциальных ошибок. Всё это ведёт к существенным ограничениям в создании больших и многофункциональных децентрализованных приложений.


Какой такой zeppelin OS?


Читать дальше →

Демпинг Маска: миф или реальность

Reading time5 min
Views86K


В Роскосмосе распространено мнение, что коммерческие успехи компании SpaceX объясняются исключительно господдержкой и искусственно заниженной ценой на ракеты — демпингом. Компания Илона Маска оставила Роскосмос практически полностью без коммерческих заказов на тяжелые ракеты, поэтому оправдание приходится искать в происках Пентагона, Госдепа или ЦРУ. Пора отделить факты от домыслов и узнать в чем секрет коммерческого успеха SpaceX.
Читать дальше →

Мне не страшен ваш NDA

Reading time14 min
Views126K
Это громкая и страшная аббревиатура из трёх неприличных букв. Хотите поучаствовать в тендере, устраиваетесь на работу, нужно получить данные — вам подсовывают эту бумажку, мол, подпиши сначала, а то нашли дураков без NDA тебе что-нибудь рассказывать. При этом в большинстве случаев вы ничего сверхсекретного или коммерчески важного не узнаете, но процедура подписания NDA стала неким таинством посвящения, которое стороны выполняют не особо задумываясь над смыслом.

Это так же как вы неизбежно получите требование вместе с учредительными документами предоставить выписку из ЕГРЮЛ не старше 30 дней. Хотя всё доступно в онлайне, все распечатывают эту выписку из интернета, заверяют её и передают контрагенту, который даже не смотрит её, потому что всё есть в интернете. Ну, вы поняли, короче, отечественную любовь к таинствам.

image
Читать дальше →

Browser Fingerprint – анонимная идентификация браузеров

Reading time14 min
Views225K


Валентин Васильев (Machinio.com)


Что же такое Browser Fingerprint? Или идентификация браузеров. Очень простая формулировка — это присвоение идентификатора браузеру. Формулировка простая, но идея очень сложная и интересная. Для чего она используется? Для чего мы хотим присвоить браузеру идентификатор?


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

Как защитить своего ребенка от мусора на YouTube и сделать кастомный плеер с белым списком каналов

Reading time9 min
Views123K

Можно долго спорить на тему, стоит ли давать маленьким детям доступ к планшетам и смартфонам. Кто-то говорит что это вредно для глаз или для психики, кто-то — что родителям надо бы самим играть и читать с детьми, а не пытаться отгородится от них гаджетами. Что характерно, чаще всего такое говорят люди, у которых своих детей нет. И которые не знают, какое это блаженство — когда чадо замолкает хотя бы на полчаса, перестает крушить все вокруг, спокойненько лежит на диване и смотрит мультики. Есть и еще один аргумент — дети чутко все повторяют за родителями, если родители непрерывно сидят уткнувшись в телефон, то очень сложно объяснить детям, почему родителям можно, а им — нет.



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


К сожалению, я очень быстро уяснил, что детский ютуб — это просто АДОВЫЙ ТРЕШ. Про это даже на Хабре уже был перевод статьи. Детские каналы — это какие-то бездонные клоаки, наполненные вырвиглазными видео типа "разворачиваем сто киндер-сюрпризов", "дурацкие стишки с убогой 3д графикой под крикливую музыку" и "гоняем машинки в Beam NG под дурацкие комментарии". По какой-то причине все это является очень привлекательным для маленьких детей, которые бросаются кликать на такие видео как только увидят их в рекомендованных. А YouTube не позволяет управлять рекомендациями. Даже дав своему сыну планшет с включенными "нормальными" мультиками, я уже через пару минут наблюдаю, как он за два клика по рекомендациям опять находит эти чертовы шоколадные яйца и снова начинает в них залипать.


Все, с меня хватит, решил я. И начал пилить свое приложение для просмотра ютуба, позволяющее выбрать список каналов и показывающее только видео с этих каналов. Как я это делал — под катом.

Читать дальше →

Интересности и полезности python

Reading time6 min
Views41K
Я уже несколько лет программирую на python, однако, недавно осознал, что множество полезных приёмов и интересных моментов прошли мимо меня, возможно, я не один такой, поэтому решил перечислить их здесь, надеюсь, данные приёмы пригодятся кому-то в работе или побудят познакомиться с этим языком поближе.
Читать дальше →

Новые возможности FLProg – ESP8266 как контроллер, а не модем

Reading time4 min
Views33K


Источник

Добрый день.

Я уже очень давно не рассказывал о своем проекте FLProg. Последний пост был ещё на Geektimes.
Пора исправить это безобразие. С этого поста я начинаю серию уроков по использованию новых возможностей программы.

Если Вы не знакомы с проектом, можно посмотреть его историю в блоге.

Сейчас на сайте программы ведётся тестирование предрелизовой версии с номером 3.1.4. Начиная с версии 3.1, в программе появилась поддержка контроллеров ESP8266 как полноценного контроллера.

Эффект акрасии: почему мы не выполняем своих планов, и что с этим делать

Reading time5 min
Views32K

Виктор Гюго; фотографию сделал Этьен Карьят в 1876

К лету 1830 года Виктор Гюго столкнулся с невозможным дедлайном. За двенадцать месяцев до этого знаменитый французский автор договорился со своим издателем, что напишет для него новую книгу, "Собор Парижской Богоматери".

Но вместо работы над книгой, весь год Гюго занимался другими проектами, развлекал гостей, и откладывал работу с текстом. Его издатель всё больше раздражался из-за продолжавшейся прокрастинации автора, и среагировал, установив пугающий крайний срок для сдачи книги. Он потребовал, чтобы Гюго закончил книгу к февралю 1831 – то есть, менее, чем за шесть месяцев.

Гюго разработал план борьбы с прокрастинацией. Он собрал всю одежду, вынес её из комнат и закрыл её на замок. Ему больше нечего было надеть, кроме большой шали. В отсутствии подходящей одежды для выхода наружу, Гюго больше не испытывал искушения покидать дом и отвлекаться. Ему оставалось лишь оставаться дома и писать.
Читать дальше →

Information

Rating
3,682-nd
Location
Екатеринбург, Свердловская обл., Россия
Registered
Activity