Pull to refresh
3
0.4

Пользователь

Send message

Фантастические книги на тему искусственного интеллекта

Reading time6 min
Views86K
image

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

Радиоприёмник из DVB стика за $8 — изучаем SDR с GNURadio

Reading time11 min
Views60K
Каждый день мы пользуемся множеством радио устройств. Однако редко понимаем, как они работают. Эпоха радиолюбителей фактически прошла, оставив в прошлом любителей спаять приёмник ДВ или СВ своими руками. Да и в методах кодирования техника ушла далеко вперёд. Мы часто слышим рассуждения о взломе умных домов на радио протоколах, о ненадёжности радио связи и т.д. Но многие ли из вас пробовали, например, подслушать Z-Wave сеть умного дома соседа и тем более поуправлять ей? Насколько велика эта угроза для вас?

К счастью в наши дни стали доступны очень удобные средства для работы с радио, а именно SDR.

SDR (Software Defined Radio) позволяет программно перестраивать приёмник и передатчик для работы на различных частотах от 20 до 2000 МГц, после чего произвести обработку сигнала на компьютере с помощью цифровых методов. Это существенно отличает SDR от аналоговых схем радиопрёмников и передатчиков, позволяя легко менять алгоритм обработки полученного сигнала.




Существует множество разных программ для обработки радио сигналов. Я изучил наиболее популярную из них GNURadio. Этот пакет позволяет строить процесс обработки из различных блоков, стыкуя их друг с другом в формате потоковой обработки (pipe). Каждый следующий блок принимает данный от одного или нескольких предыдущих, а вывод передаётся другим блокам.

Под катом я расскажу об основах SDR и GNURadio и о том, как за 8 баксов сделать приёмник AM/FM, китайской управляемой розетки, телеметрии со спутника и всего, что вздумается.

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

Mikrotik — Дополнительные настройки для Yota

Reading time2 min
Views58K
Не так давно подключили дополнительного провайдера в виде беспроводной йоты, простого «свистка». Имеем Mikrotik CCR1009-8G-1S-1S+, на котором есть usb. Но возникла проблема, йота периодически зависает и пока не перезагрузишь — ничего не работает. Обращался в техническую поддержку Йоты, предложили купить роутер Zyxel, либо поставить между йотой и микротиком устройство которое будет отключать и включать электропитание 1 раз в сутки. Покупать дополнительный роутер который будет использоваться для йоты никто не хотел, а ставить переключатель тоже не вариант-вдруг йота подвиснет днем, а переключатель настроен на 23:00. Конечных решений для данной проблемы в ресурсах сети не нашел (а возможно плохо искал). Поэтому решено было настроить автоматический reset yota.
Читать дальше →

Курс для начинающих. Основы IP телефонии на Cisco Packet Tracer

Reading time2 min
Views47K
Приветствую, друзья. Не так давно писал статью про объединение всех устройств в симуляторе Cisco Packet Tracer. Данная статья была принята довольно тепло, что сильно обрадовало.
В связи с этим, данный факт мотивировал на продолжение статей о IP телефонии. Да, на данный момент в интернете огромное количество материалов по данной тематике, будь то сайты, блоги, книги и многое другое. Однако новичку тяжело разобраться во всех терминах и еще тяжелее понять, с чего все-таки начать.
Раздумывая над данной темой, родилась идея создать курс для начинающих, желающих понять основы IP телефонии.



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

Математика на пальцах: методы наименьших квадратов

Reading time8 min
Views236K

Введение




Я математик-программист. Самый большой скачок в своей карьере я совершил, когда научился говорить:«Я ничего не понимаю!» Сейчас мне не стыдно сказать светилу науки, что мне читает лекцию, что я не понимаю, о чём оно, светило, мне говорит. И это очень сложно. Да, признаться в своём неведении сложно и стыдно. Кому понравится признаваться в том, что он не знает азов чего-то-там. В силу своей профессии я должен присутствовать на большом количестве презентаций и лекций, где, признаюсь, в подавляющем большинстве случаев мне хочется спать, потому что я ничего не понимаю. А не понимаю я потому, что огромная проблема текущей ситуации в науке кроется в математике. Она предполагает, что все слушатели знакомы с абсолютно всеми областями математики (что абсурдно). Признаться в том, что вы не знаете, что такое производная (о том, что это — чуть позже) — стыдно.

Но я научился говорить, что я не знаю, что такое умножение. Да, я не знаю, что такое подалгебра над алгеброй Ли. Да, я не знаю, зачем нужны в жизни квадратные уравнения. К слову, если вы уверены, что вы знаете, то нам есть над чем поговорить! Математика — это серия фокусов. Математики стараются запутать и запугать публику; там, где нет замешательства, нет репутации, нет авторитета. Да, это престижно говорить как можно более абстрактным языком, что есть по себе полная чушь.
Математика для программистов!

От действий над матрицами к пониманию их сути…

Reading time5 min
Views147K
Очень уважаю людей, которые имеют смелость заявить, что они что-то не понимают. Сам такой. То, что не понимаю, — обязательно должен изучить, осмыслить, понять. Статья "Математика на пальцах", и особенно матричная запись формул, заставили меня поделиться своим небольшим, но, кажется, немаловажным опытом работы с матрицами.

Лет эдак 20 назад довелось мне изучать высшую математику в вузе, и начинали мы с матриц (пожалуй, как и все студенты того времени). Почему-то считается, что матрицы — самая лёгкая тема в курсе высшей математики. Возможно — потому, что все действия с матрицами сводятся к знанию способов расчёта определителя и нескольких формул, построенных — опять же, на определителе. Казалось бы, всё просто. Но… Попробуйте ответить на элементарный вопрос — что такое определитель, что означает число, которое вы получаете при его расчёте? (подсказка: вариант типа «определитель — это число, которое находится по определённым правилам» не является правильным ответом, поскольку говорит о методе получения, а не о самой сути определителя). Сдаётесь? — тогда читаем дальше…
Читать дальше →

Подборка: Более 70 источников по машинному обучению для начинающих

Reading time5 min
Views103K


Индикатор кулачкового аналогового компьютера / Wiki

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

Что на самом деле может виртуальная память

Reading time7 min
Views34K


Мы в 1cloud стараемся рассказывать о различных технологиях — например, контейнерах, SSL или флеш-памяти.

Сегодня мы продолжим тему памяти. Разработчик Роберт Элдер (Robert Elder) в своем блоге опубликовал материал с описанием возможностей виртуальной памяти, которые известны не всем инженерам. Мы представляем вашему вниманию основные мысли этой заметки.
Читать дальше →

Лучшие дистрибутивы для проведения тестирования на проникновение

Reading time4 min
Views174K


Существует несколько популярных securty дистрибутивов, содержащих большинство популярных утилит и приложений для проведения тестирования на проникновение. Обычно они основаны на существующих Linux-дистрибутивах и представляют из себя их переработанные версии. В этой статье будут представлены наиболее известные из них.
Читать дальше →

Визуализация concurrency в Go с WebGL

Reading time12 min
Views38K
Одной из самых сильных сторон языка программирования Go является встроенная поддержка concurrency, основанная на труде Тони Хоара «Communicating Sequential Processes». Go создан для удобной работы с многопоточным программированием и позволяет очень легко строить довольно сложные concurrent-программы. Но задумывались ли вы когда-нибудь, как выглядят различные паттерны concurrency визуально?

Конечно, задумывались. Все мы, так или иначе, мыслим визуальными образами. Если я попрошу вас о чём-то, что включает числа «от 1 до 100», вы мгновенно их «увидите» в своей голове в той или иной форме, вероятно даже не отдавая себе в этом отчёт. Я, к примеру, ряд от 1 до 100 вижу как линия с числами уходящая от меня, поворачивающая на 90 градусов вправо на числе 20 и продолжающая до 1000+. И, покопавшись в памяти, я вспоминаю, что в самом первом детском саду в раздевалке вдоль стены были написаны номерки, и число 20 было как-раз в углу. У вас же, вероятно, какое-то свое представление. Или вот, другой частый пример — представьте круглый год и 4 сезона года — кто-то их видит как квадрат, каждая грань которого принадлежит сезону, кто-то — как круг, кто-то ещё как-то.

Так или иначе, позвольте мне показать мою попытку визуализировать основные паттерны concurrency с помощью Go и WebGL. Эти интерактивные визуализации более-менее отражают то, как я вижу это в своей голове. Интересно будет услышать, насколько это отличается от визуализаций читателей.

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

Загрузка Windows Recovery Environment (или любого WIM-образа) с USB flash

Reading time5 min
Views108K
Windows Recovery Environment


Загрузиться в WinRE может быть полезно для быстрого ремонта установленной Windows: восстановление запуска системы, восстановление из образа, откат к точке восстановления, изменение параметров загрузки, наконец, доступ к командной строке, а значит возможность делать много разных интересных вещей, типа format C:.
Кроме того, можно запускать regedit.exe и другие системные программы, и даже некоторое стороннее ПО, если конечно для работы оно не требует запущенной «нормальной» Windows.
Альтернативным решением конечно является загрузка с установочного DVD или ISO-образа, но запуск WIM-образа Среды восстановления напрямую будет происходить быстрее — он весит гораздо меньше, чем целый DVD.
К тому же, на одной USB-флешке можно расположить несколько WIM-образов, например, 2 образа WinRE разной разрядности (x32 + x64), и другие образы с «ремонтных» DVD. У меня таким же образом загружается AntiWinLocker, и это без необходимости иметь отдельный ISO с ним.
В общем, возможность загрузить WIM-образ может быть очень полезной. Поэтому перейдем к делу.

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

Скрипт автоматического обновления DDNS для No-IP

Reading time4 min
Views40K
Прочитав множество руководств и примеров написания скрипта для работы Mikrotik с сервисом noip.com, так и не удалось найти готового решения.
Что не устраивало в других руководствах, например, здесь:
при написании необходимо прямо в тексте скрипта указывать имя интерфейса, с которого он будет получать внешний IP-адрес, а что если интерфейсов два, три или десять?
В моем случае имеется 2 канала: pppoe-client и ethernet без пароля, но с динамически получаемым адресом…
Читать дальше →

Атака клонов: Современные технологии ботовождения

Reading time35 min
Views12K
«Сейчас вы напишите самую сложную в своей жизни программу, которая будет просто складывать два числа»
Рыжова Ирина Михайловна


Интеллектуально-азартные онлайн-игры – лакомый кусок для ботоводов. Даже если разработчики игрового софта тратят большие деньги на отлов ботов, – как в онлайн покер-румах, например – всё равно велика вероятность наткнуться на «умного бота», игра с которым будет в одни ворота. Особенно, если бот абсолютное неуязвим… Ибо никакие деньги не защитят систему, через которую проходят большие деньги.


Рис. 1. Ботоводы наступают


Скрытая угроза


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

Разработчики софта для игры в покер тратят большие деньги на разоблачение ботов, и тем не менее, ботоводство в онлайн-покере процветает. Ибо никакие деньги не смогут защитить систему, через которую проходят большие деньги. Ботоводы и ловцы ботов, – анализируя уловки оппонентов и принимая соответствующие контрмеры, – попеременно одерживают победу. Кто-то может думать, что битве между ними никогда не будет конца. Однако, существует схема безопасного ботовождения, перед которой ловцы ботов – пасуют. Она интересна тем, что даже если «борцы за справедливость» будут иметь на руках подробно прокомментированные исходные коды бота, они не смогут установить факт его использования. Реализация данной схемы – мероприятие дорогостоящее, однако поскольку потенциальная выгода велика, схема вполне актуальна.

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

Linux в кармане — на службе у фотографа

Reading time6 min
Views50K
Так получилось, что фотография, это мой основной профессиональный вид деятельности, а программирование — хобби, которое иногда позволяет размять мозг. Кроме непосредственно разминки для мозга, программирование помогает и в работе. Например, писал полезные штуки, такие как это или это, или это.

Недавно поставил себе задачу, как бы еще порадовать своих клиентов. Вспомнил многочисленные просьбы клиентов на свадебную съемку: «Как хорошо было бы, если бы на банкете вы смогли показать коротенькое слайдшоу из фотографий, которые отсняли за день». На эти просьбы приходилось отказывать, по нескольким причинам: лень таскать с собой ноутбук для сборки слайдшоу, нет времени на отбор пары десятков снимков из сотен, из raw опять же нужно конвертировать, и самое главное — на это все нужно время, которого нет.

Это рассказ, о том, как мне удалось сделать для себя инструмент, который с минимальным моим участием и минимальным дополнительным весом в рюкзаке, помогает сделать красивые слайдшоу. И конечно же рассказ о python, ffmpeg и linux на android.
Читать дальше →

3d принтер на рельсах за «25 тысяч рублей» своими руками.Основные комплектующие

Reading time2 min
Views34K
После публикации поста меня попросили написать о комплектующих, что-же, пожалуйста :)
В кавычках, потому что курс рубля слабо поддается прогнозу, но я уложился в такую сумму с курсом доллара 55-60 рублей.
Все запчасти относятся только к данному корпусу, который можно заказать написав этому человеку или если вы решите собирать в другой корпус, то могут быть незначительные изменения, но в целом комплектующие совпадают.
Читать дальше →

Собственный поисковик по раздачам The Pirate Bay

Reading time10 min
Views18K
В последнее время на хабре стало популярно делать собственные поисковики по RuTracker. Мне это показалось прекрасным поводом для того, чтобы отойти от скучной enterprise разработки и попробовать что-нибудь новое.



Итак, задача: реализовать на локалхосте поисковик по базе The Pirate Bay и попутно попробовать, что же такое frontend разработка и с чем её едят. Задача осложняется тем, что TPB не публикует своих дампов, в отличие от RuTracker, и для получения дампов требуется распарсить их сайт. В результате гугления и осмысления задачи я решил в качестве поисковика использовать Elasticsearch, для которого написать client-side only фронтенд на AngularJS. Для получения данных я решил написать собственный парсер сайта TPB и отдельный загружатель дампа в индекс, оба на Go. Пикантность выбору придавал тот факт, что ни к Elasticsearch, ни к AngularJS я до этого ни разу не прикасался и именно их опробывание было моей настоящей целью.
Читать дальше →

Делаем беспроводной сетевой мост на 2-х Mikrotik

Reading time4 min
Views67K
Ситуация: на Mikrotik на разных портах заведены свои сетки:
  • ether2 — 192.168.2.0/24
  • ether3 — 192.168.3.0/24
  • ether4 — 192.168.4.0/24
  • ether5 — 192.168.5.0/24
  • wlan0 — 192.168.10.0/24


В этих сетях Mikrotik (модель RB751G-2HnD) раздаёт настройки по DHCP.

Задача: используя Wi-Fi подключить ещё оборудование так, чтобы оно оказалось в сети 192.168.3.0/24.
У меня такая задача возникла из-за того, что на балконе сетевое хранилище (NAS) подключено проводом к роутеру (сам роутер в прихожей). А в гостинной — медиапроигрыватель, который должен показывать фильмы с NAS-устройства. Но в гостинной Ethernet-кабеля нет (т.е. был, но я от него отказался).

Для этого будем использовать второй Mikrotik (модель hAP lite). Оба Mikrotik будут образовывать беспроводной сетевой мост. Для этого на основном Mikrotik создадим ещё один беспроводной интерфейс — виртуальную точку доступа (Virtual AP). В итоге схема должна получиться примерно такой:



Т.е. в этой схеме оборудование NAS и Comp должно находиться в сети 192.168.3.0/24. При этом NAS и Comp физически разнесены и подключены к разным Mikrotik.
ether1 на основном Mikrotik — источник Интернета.

В конце настройки средняя скорость между микротиками за 5 мин составила 220 Мбит/с (по данным утилиты ping test, входящей в RouterOS):


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

Простой тестер ёмкости аккумуляторов на Arduino

Reading time5 min
Views100K
В последнее время я начал замечать, что мой смартфон стал разряжаться быстрее. Поиски программного «пожирателя» энергии плодов не принесли, поэтому стал задумываться, не пришло ли время заменить АКБ. Но абсолютной уверенности в том, что причина в батарее не было. Поэтому прежде чем заказывать новый аккумулятор решил попробовать измерить реальную емкость старого. Для этого было решено собрать простой измеритель емкости АКБ, тем более что идея эта вынашивалась уже давно – уж очень много батареек и аккумуляторов окружает нас в повседневной жизни, и было бы неплохо иметь возможность время от времени тестировать их.

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

Настраиваем ИК управление кондиционером с гаджетов или «Готовь телегу летом»

Reading time5 min
Views38K
В современных системах домашней автоматизации управление климатом чаще всего в списке решаемых задач стоит на втором месте после работы с осветительными приборами. Спектр применяемого оборудования в данном сценарии очень широк. Верхние строки занимает профессиональные устройства для HVAC (Heating, Ventilation, & Air Conditioning – отопление, вентиляция и кондиционирование), включая теплые полы, системы рециркуляции воздуха и холодные потолки. В доступном сегменте мы видим традиционные бытовые кондиционеры и многочисленные электронагревательные приборы и газовые котлы, а задачи вентиляции чаще всего решаются «ручным» методом открытия окон.

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

К счастью, есть и другой способ управления кондиционером – использование ИК-канала. В плюсы этого подхода стоит отнести универсальность (один ИК-передатчик может одновременно обслуживать различное оборудование в комнате) и невысокую стоимость. Минусом является полное отсутствие обратной связи от управляемого устройства. Кроме того, это решение не гарантирует даже доставку команд. Насколько такой способ подойдет – решать вам, однако, на наш взгляд, наличие такого варианта лучше, чем полное отсутствие управления.
Читать дальше →

Asterisk: ngrep, sipgrep, sngrep, protocol diagram

Reading time2 min
Views27K
Это небольшая заметка о паре утилит, которые использую время от времени для работы с астериском (для отладки телефонии и просмотра SIP пакетов). Многие коллеги не знают о более простых утилитах, которые могли бы сэкономить минутку-другую рабочего времени.

Далее речь пойдет о ngrep, sipgrep, sngrep, js-sequence-diagrams
Читать дальше →

Information

Rating
3,643-rd
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity

Specialization

Backend Developer, Разработчик Directum RX
Lead
From 350,000 ₽
.NET Core
PostgreSQL
DevOps
Reverse development
C#