Pull to refresh
-13
0

Программист

Send message

Немного про Google Home Hub, или как я купил фоторамку за 130 Евро

Reading time5 min
Views79K
Привет, Хабр.

Концепция «умного дома» и его использования с отдельного экрана давно казалась мне интересной. Одно время я было начал проект с OpenHAB и Raspberry Pi — весьма продвинутая штука, но необходимость настраивать кучу конфигов быстро надоела. И случайно увидев в продаже Google Nest Hub (ранее называвшийся Google Home Hub), я решил что это как раз то, что нужно — все в одном устройстве от Google, с настройкой через тач-скрин и с возможностью голосового управления.



Теперь-то можно будет иметь единый «центр управления» умным домом, подумалось при покупке. Если кратко, то я лоханулся. Но все же посмотрим, как это работает.
Читать дальше →
Total votes 73: ↑70 and ↓3+67
Comments40

Команда WikiLeaks опубликовала информацию о ПО, при помощи которого ЦРУ годами заражало домашние маршрутизаторы

Reading time3 min
Views34K


Похоже на то, что программный инструментарий ЦРУ неисчерпаем. Команда WikiLeaks опубликовала уже несколько подборок такого ПО, но каждая новая публикация становится еще одним сюрпризом. Несколько дней назад команда WikiLeaks выложила информацию о еще одной подборке эксплоитов ЦРУ, которые использовались для атаки на роутеры 10 наиболее известных производителей сетевого оборудования, включая Linksys, Dlink и Belkin. ПО позволяло злоумышленникам наблюдать за трафиком, а также манипулировать им, причем это касается как входящих, так и исходящих пакетов данных. Кроме того, это же программное обеспечение использовалось и для заражения подключенных устройств.

Пакет программного обеспечения, о котором идет, речь, получил название CherryBlossom. Сообщается, что наиболее эффективно это ПО в отношении нескольких моделей маршрутизаторов, включая D-Link DIR-130 и Linksys WRT300N. Все потому, что эти устройства уязвимы к удаленному взлому даже в том случае, если используется сложный пароль администратора. Один из эксплоитов из пакета, который называется Tomato, позволяет извлекать пароли, какими бы сложными они ни были. При этом функция universal plug and play остается включенной и может использоваться злоумышленниками.
Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments37

Увеличиваем потенциал брошенного производителем сетевого хранилища

Reading time17 min
Views47K

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


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


Эта история о том, что можно сделать самостоятельно, имея начальные навыки, желание и время разобраться в процессе обновления програмного обеспечения ПО встраиваемых устройств.


image


Для нетерпеливых: в конце получился полноценный аппарат с актуальной версией загрузчика U-Boot, image Debian Jessie и image OpenMediaVault на борту.

Читать дальше →
Total votes 38: ↑38 and ↓0+38
Comments34

Синхронизация состояний в многопользовательских играх

Reading time13 min
Views45K
image

Проблема многопользовательских игр


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

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

Обычно программа игры должна симулировать следующее:

изменения в окружении с учётом времени и вводимых игроками данных.

Игра — это программа, хранящая состояние, поэтому она зависит от времени (реального или логического). Например, PACMAN симулирует окружение, в котором постоянно перемещаются призраки.

Многопользовательская игра не является исключением, однако из-за взаимодействия игроков её сложность намного выше.
Читать дальше →
Total votes 48: ↑48 and ↓0+48
Comments38

Роскомнадзор пытается добить Rutracker. Блокировки серверов-анонсеров и методы обхода

Reading time5 min
Views119K
image

Rutracker толком не потерявший свою аудиторию вполне закономерно вызывает недовольство Роскомнадзора и других ведомств. Они все-таки старались, деньги тратили, выступали с заявлениями, а оно все работает и помирать не собирается. Под блокировкой был основной сайт rutracker.org, который, по сути, был просто каталогом magnet-ссылок и torrent-файлов. Новый виток борьбы привел в добавлению в списки блокировок серверов-анонсеров. Именно они поддерживают инфраструктуру ресурса и позволяют отдельным пирам найти друг друга.

Update
2 мая СМИ запестрели заголовками о начале массовой блокировки всех анонсеров и зеркал Rutracker: lenta.ru, Вести, Известия, Ведомости. Однако в интервью Газете.Ру представитель Роскомнадзора сообщил, что блокировки проводятся в плановом режиме и ничего глобального в плане тотальных блокировок они не производили за последние дни.
«Мы не проводим никакие массированные атаки. Мы ведем целенаправленную работу по повышению эффективности блокировки пиратского контента», — подчеркнул пресс-секретарь Роскомнадзора в беседе с корреспондентом «Газеты.Ru».

Он уточнил, что ни о каком замедлении трафика для пользователей трекера речи не идет, а блокировка RuTracker проводится в плановом режиме.

Тем не менее проблема реальна, сервера блокируются, а в посте есть полезные ссылки на открытые трекеры. Поэтому решил не удалять материал.
Читать дальше →
Total votes 101: ↑100 and ↓1+99
Comments173

Революция в JavaScript. Буквально

Reading time11 min
Views16K
Сегодня 22 апреля юбилейного 2017 года, день рождения человека, без которого не состоялись бы события столетней давности. А значит, есть повод поговорить о революционной истории. Но причём тут Хабр? — Оказалось, всё в этом мире может иметь самую неожиданную связь.

Владимир Ильич Ленин
Читать дальше →
Total votes 78: ↑40 and ↓38+2
Comments19

Обзор образовательных наборов по электронике для детей (7+)

Reading time5 min
Views49K


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

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

Мы взяли для обзора наборы на базе макетных плат, что обеспечивает быстрый старт — позволяет получить работающую схему без необходимости пайки, разработчики наборов — российские компании, и целевой возраст от 7 лет.

Обзор будет включать три набора, от компаний Амперка, Киберфизика и Мастер-Кит:

  • Детский электронный конструктор Амперка Микроник
  • Киберфизика. Основы электроники. Начало
  • Конструктор Мастер-Кит NR03, Азбука электронщика — Основы cхемотехники

Эти наборы мы предоставили участнику хакспейса, и он с братом (7 лет) — сделали TestDrive всех наборов, и про это рассказ от первого лица:
Читать дальше →
Total votes 29: ↑27 and ↓2+25
Comments57

sudo rm -rf, или Хроника инцидента с базой данных GitLab.com от 2017/01/31

Reading time15 min
Views64K

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

Аркадий и Борис Стругацкие

31 января 2017 года произошло важное для мира OpenSource событие: один из админов GitLab.com, пытаясь починить репликацию, перепутал консоли и удалил основную базу PostgreSQL, в результате чего было потеряно большое количество пользовательских данных и сам сервис ушел в офлайн. При этом все 5 различных способов бэкапа/репликации оказались нерабочими. Восстановились же с LVM-снимка, случайно сделанного за 6 часов до удаления базы. It, как говорится, happens. Но надо отдать должное команде проекта: они нашли в себе силы отнестись ко всему с юмором, не потеряли голову и проявили удивительную открытость, написав обо всем в твиттере и выложив в общий доступ, по сути, внутренний документ, в котором команда в реальном времени вела описание разворачивающихся событий.


Во время его чтения буквально ощущаешь себя на месте бедного YP, который в 11 часов вечера после тяжелого трудового дня и безрезультатной борьбы с Постгресом, устало щурясь, вбивает в консоль боевого сервера роковое sudo rm -rf и жмет Enter. Через секунду он понимает, что натворил, отменяет удаление, но уже поздно — базы больше нет...


По причине важности и во многих смыслах поучительности этого случая мы решили целиком перевести на русский язык его журнал-отчет, сделанный сотрудниками GitLab.com в процессе работы над инцидентом. Результат вы можете найти под катом.

Читать дальше →
Total votes 93: ↑87 and ↓6+81
Comments129

Стильный код на Python, или учимся использовать Flake8

Reading time7 min
Views158K

Автор: Анатолий Соловей, developer

Язык программирования Python очень востребован на современном рынке, он развивается изо дня в день, и вокруг него сложилось активное сообщество. Во избежание конфликтов между разработчиками-питонистами, создатели языка написали соглашение PEP 8, описывающее правила оформления кода, однако даже там отмечено, что:
Many projects have their own coding style guidelines. In the event of any conflicts, such project-specific guides take precedence for that project.

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

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

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

На помощь в этом случае приходят линтеры — инструменты, контролирующие оформление кода в проекте. Именно они помогают поддерживать его чистоту и, в нашем случае, предотвращать создание коммитов, которые могут содержать ошибки. Я для контроля качества использую Flake8 и сейчас постараюсь объяснить, почему выбрал именно его, и расскажу, как его настроить, чтобы получить максимальный результат. Заинтересовались? Добро пожаловать под кат.
Читать дальше →
Total votes 28: ↑26 and ↓2+24
Comments16

С днем рождения, Аарон Шварц

Reading time17 min
Views13K
Журналист: Почему вы не монетизируете свои сайты?
Аарон: Интернет был создан не для этого.

Аарон Шварц родился 8 ноября 1986 года. У него была головокружительная карьера. Интернет-легенды восхищались им. Пол Грэм ставил его во главу списка самых талантливых людей. Но бунтарский дух Аарона не позволил ему быть равнодушным к той фигне, что происходит в мире и очень быстро он перешел дорогу правительству. Вспомним его наследие.


Шварц и легенды ИТ: Тед Нельсон и Дуглас Энгельбарт.

  • В 12 лет создал сайт Info, где каждый мог писать о том, что знает (а другие могли дополнять и комментировать). Это был предвестник Википедии. Учитель сообщил ему в ответ, что затея идиотская, потому что люди в мире делятся на ученых, которые пишут энциклопедии, и неученых, которые их не пишут.
  • В 13 лет выиграл ArsDigita Prize, соревнование молодых людей, создающих «полезные, образовательные и объединённые» некоммерческие веб-страницы.
  • В 14 лет Шварц стал соавтором спецификации RSS 1.0.
  • Аарон Шварц работал под руководством Тима Бернерса-Ли в составе основной рабочей группы RDF в Консорциуме W3C.
  • Поступил в Стэнфордский университет, но бросил учёбу через год.
  • Попал на первую программу в Y Combinator со стартапом Infogami, который впоследствии слился с популярным сайтом Reddit.
  • Работал над Open Library, Creative Commons и watchdog.net.
  • Работал над созданием Deaddrop позже переименованный в SecureDrop, платформой для анонимного слива информации. Сейчас этой платформой пользуются крупнейшие мировые СМИ: The Intercept, The Guardian, and The Washington Post.
  • Внес существенный вклад в Markdown.
  • В 2008 вместе с Virgil Griffith разработал Tor2web, HTTP proxy для Tor-сервисов.

Под катом пара фоток и статьи Аарона, а так же кино про этого талантливого парня.
Total votes 48: ↑47 and ↓1+46
Comments1

Образовательные решения LEGO Education. Кем могут вырасти ваши дети

Reading time11 min
Views31K


Внедрение развивающих различные навыки программ для школьников происходит во всех странах мира. В недрах отдельных Министерств образования все больше задумываются о том, как воспитать учеников, способных жить в современном технологичном мире, развить у них универсальные знания и навыки, которые будут востребованы в стремительно меняющемся XXI веке. Немалый вклад в популяризацию этой темы вносят крупные компании — Microsoft, Intel, Google, IBM, LEGO Group и прочие разрабатывают образовательные программы для школ и «кружков» юных техников. Продвинутые учителя и преподаватели вузов перенимают знания на их курсах и включают актуальные наработки в свои занятия. Впрочем, до подключения государственных структур все эти мероприятия проводятся неравномерно и спонтанно.

Более структурированным процесс становится после согласования с государственной системой образования, появления специализированных курсов для учителей, введения занятий в школах, начиная с младших классов. Таким путем, например, идет Lego Education — ее концепция интегрированного обучения робототехнике и программированию внедряется в учебных заведениях по всему миру, включая Россию.
Читать дальше →
Total votes 32: ↑31 and ↓1+30
Comments69

Техника безопасности при работе с PostgreSQL

Reading time7 min
Views27K
Так получилось, что я начал работать с PostgreSQL три года назад и за это время умудрился методично собрать все возможные грабли, которые можно вообразить. И сказать по правде, если бы была возможность поделиться с собой трехлетней давности нынешним горьким опытом, моя жизнь была бы куда проще и нервные клетки целее. Именно поэтому я решил написать абсолютно субъективную статью со сводом правил, которых придерживаюсь при разработке на PostgreSQL. Возможно, кому-то эта статья поможет обойти собранные мной грабли (и наступить на другие, ха-ха!).


Читать дальше →
Total votes 75: ↑71 and ↓4+67
Comments43

Проверяем партнера по открытым источникам

Reading time3 min
Views40K


В нашей стране никто не застрахован от «кидалова» партнером по договору: заказчики не платят фрилансерам, соучредители выходят из проекта, а поставщики отказываются от выполнения контрактов. Хорошие закупщики за то и ценятся, что имеют хорошие базы и связи в налоговой и могут неофициально проверить любого контрагента. К счастью, непрозрачный российский рынок в последние годы проясняется: появилось сразу несколько бесплатных государственных сервисов для проверки контрагента на честность. О них и пойдет речь в статье.
Читать дальше →
Total votes 35: ↑34 and ↓1+33
Comments19

Обзор пакетов Node.js для разбора опций командной строки

Reading time9 min
Views23K

Node.js, как и другие среды разработки, предоставляет базовые средства работы с опциями командной строки. В нашем случае это массив process.argv. Но обычно, кроме простейших случаев типа A + B, обрабатывать опции командной строки вручную очень неудобно. Для этого есть несколько популярных пакетов. Автор написал небольшую программу, которая построила сводную таблицу по этим пакетам, выбрал из них три самых популярных и рассмотрел их поближе.


(Материал статьи на 7 января 2020 года по прежнему актуален, сводная таблица обновлена и дополнена.)

Читать дальше →
Total votes 27: ↑24 and ↓3+21
Comments34

Все же хотим сытого и светлого будущего для своих детей?

Reading time9 min
Views32K
Вы — ИТ-родитель и ваше чадо недавно сдало ЕГЭ? Спорим, я угадаю про вас две вещи:

1. скорее всего, одним из предметов ЕГЭ была профильная математика,
2. сейчас вы вместе с отпрыском находитесь в раздумьях, куда отнести аттестат — хотите максимально попасть в яблочко с перспективными ВУЗом и специальностью.

Если я угадала, прочитайте мою статью – она как раз для родителей, которым актуально понять, какие инженерные профессии будут пользоваться спросом в 2020.
Читать дальше →
Total votes 10: ↑2 and ↓8-6
Comments26

Куда и как уходят e-mail? Интерактивное объяснение от Google

Reading time1 min
Views1.4K


Корпорация Google не только создает интересные сервисы и продукты, но и старается объяснять принцип работы своих сервисов. На днях было создано интерактивное руководство, показывающее путь обычного электронного сообщения от отправителя к адресату. При этом попутно объясняется, откуда берется дополнительная энергия на нужды дата-центров компании, как ящик пользователя оберегается от вирусов и спама, плюс еще несколько интересных моментов.

Читать дальше →
Total votes 50: ↑41 and ↓9+32
Comments23

Сеть на кристалле — мини-интернет внутри процессора

Reading time4 min
Views12K
Мы уже смирились с тем, что рост тактовой частоты процессоров остановился и производители пошли по пути распараллеливания вычислений. Однако и число ядер типичного процессора общего назначения, быстро одолев отметки 2 и 4, остановилось в районе 8. Некоторые даже собрались хоронить закон Мура.

У такого застоя есть объективная причина. Если разница между 2, 4 или 8 ядрами скорее количественная, то уже 16-ядерный процессор сталкивается с принципиальными ограничениями традиционной архитектуры. Дело в том, что на протяжении последних нескольких десятилетий основой коммуникации между отдельными IP-блоками чипа служила шина. Пока блоков было немного, она справлялась, но когда начали плодиться ядра, эта архитектура исчерпала себя. Шина представляет собой общую среду передачи данных, к которой подключено несколько блоков процессора. В каждый момент времени один блок может передавать данные, а все остальные — получать. Если нескольким блокам нужно передавать одновременно — возникает коллизия, а значит и задержка. При числе ядер больше восьми задержки становятся неприемлемо большими, практически полностью перечёркивая преимущества параллельной работы нескольких ядер.

Число ядер можно увеличить ещё немного, разделив шину на несколько сегментов, объединённых мостами, однако это скорее «костыль», который плохо масштабируется и не решает основную проблему. Настоящее решение, которое позволит объединять сотни блоков на одном чипе — это хорошо известная всем сеть с коммутацией пакетов, или Network on Chip.
Читать дальше →
Total votes 128: ↑123 and ↓5+118
Comments64

Электричество и вода из воздуха — спускаемся с небес на землю

Reading time1 min
Views26K
К моему удивлению, топик "Новая технология для полностью экологичного получения электричества" набрал уже больше полусотни плюсов. Я считаю, что описанный в статье способ добычи электричества и воды фантастичен и имеет мало общего с реальностью. Тем не менее, идея получения пресной воды из воздуха путём конденсации показалась мне довольно интересной. Вот что мне удалось нагуглить.
Читать дальше →
Total votes 87: ↑78 and ↓9+69
Comments83

Как умирают софтварные компании

Reading time3 min
Views34K

Условия, которые питают креативных программистов, убивают менеджеров и маркетологов — и наоборот. Программирование — Великая Игра. Оно поглощает игрока полностью, включая и душу и тело. Если ты попался — то ты попался, и ничего уже больше не имеет значения. Когда ты в следующий раз вылезешь из своей берлоги, вполне могут обнаружиться лишние десять киллограммов, борода до колен и такое количество пустых коробок из-под пиццы вокруг, что уже, наверное, наступила весна? Но для тебя это всё не важно. Потому, что твоя программа работает, а код быстр и элегантен. Ты победил.
Читать дальше →
Total votes 263: ↑235 and ↓28+207
Comments84

Разница между bin, sbin, usr/bin, usr/sbin

Reading time3 min
Views56K
30 ноября 2010 года Дэвид Коллиер (David Collier) писал:
Я заметил, что в busybox ссылки разложены по этим четырём директориям.
Есть ли какое-то простое правило, чтобы определить, в какой директории какая из ссылок должна лежать…
К примеру, kill лежит в /bin, а killall — в /usr/bin… Я не вижу никакой логики в таком разделении.

Вы, наверное, знаете, что Кен Томпсон и Дэннис Ритчи создали Unix на PDP-7 в 1969-ом. Так вот, примерно в 1971 они проапгрейдились до PDP-11 с парой дисков RK05 (по 1,5 мегабайта каждый).

Когда операционная система разрослась и перестала помещаться на первом диске (на котором была расположена корневая ФС), они перенесли часть на второй, где располагались домашние директории (поэтому точка монтирования называлась /usr — от слова user). Они продублировали там все необходимые директории ОС (/bin, /sbin, /lib, /tmp ...) и складывали файлы на новый диск, потому что на старом кончилось место. Потом у них появился третий диск, они примонтировали его в директории /home и перенесли туда домашние директории пользователей, чтобы ОС могла занять всё оставшееся место на двух дисках, а это были целых три мегабайта (огого!).
Читать дальше →
Total votes 243: ↑233 and ↓10+223
Comments149
1

Information

Rating
Does not participate
Registered
Activity