Pull to refresh
8
0
Максим @MaxLevs

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

Send message

Установка VNC сервера, и настройка его работы поверх SSH

Reading time6 min
Views199K

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

В данной статье будет рассмотрен пример установки и настройки VNC server и графической оболочки (GUI) на примере OC Debian 8 jessie.

читать дальше

Взлом программ для чайников

Reading time5 min
Views492K
Disclaimer: всё ниженаписанное написано исключительно с просветительскими и исследовательскими целями, а также понимания механизмов защиты от взлома. Автор ни в коем случае не рекомендует использовать данную информацию для взлома программ.

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

Я не буду углубляться в детали и использовать сложные инструменты для взлома. Всё будет расписано «для чайников», т.е. все инструменты будут простыми, легкодоступными и бесплатными. А основным будет Reflector, декомпилятор программ под .NET

В качестве подопытного кролика я выбрал Expresso — анализатор регулярных выражений. Данная программа бесплатная, в лицензии вроде бы ничего не указано про взлом, но при этом без регистрации она будет работать всего 60 дней. Другими словами, вред от взлома данной программы минимальный, к тому же внутреннее её устройство очень уж хорошо подходит для тренировки. Буду надеяться, что автор данной программы не обидится на меня.
Читать дальше →

Формальные языки и грамматики

Reading time9 min
Views121K

Мотивация


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

Этот текст задуман как популярное введение в теорию формальных языков и грамматик. Эта теория считается (и, надо сказать, справедливо) довольно сложной и запутанной. На лекциях студенты обычно скучают и экзамены тем более не вызывают энтузиазма. Поэтому и в науке не так много исследователей в этой тематике. Достаточно сказать, что за все время, с зарождения теории формальных грамматик в середине 50-х годов прошлого века и до наших дней, по этому научному направлению было выпущено всего две докторских диссертации. Одна из них была написана в конце 60-х годов Алексеем Владимировичем Гладким, вторая уже на пороге нового тысячелетия — Мати Пентусом.

Далее в наиболее доступной форме описаны два основных понятия теории формальных языков: формальный язык и формальная грамматика. Если тест будет интересен аудитории, то автор дает торжественное обещание разродиться еще парой подобных опусов.
Читать дальше →

Умный замок, взгляд параноика

Reading time3 min
Views32K
Привет, GT. Я бы хотел предложить сообществу свой взгляд на умные замки, взгляд со стороны исследователя безопасности и параноика. Эта статья родилась как попытка дать развернутый комментарий в ответ на эту статью Умный замок Dooris. Но в итоге комментарий стал слишком отвлечен от самой статьи, и я решил доработать его и представить независимо.

Я не консерватор в вопросах прогресса. Я считаю, что IoT очень перспективная вещь, жду автомобилей без водителей, верю в носимую электронику и от вживления NFC метки меня останавливает только отсутствие реально интересных дополнительных возможностей, которые я потенциально бы получил. Именно поэтому я рад, когда вещи получают прилагательное «умный». Но умной должна быть не только техника, но и ее разработчик (ну и пользователь, желательно, тоже).

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

Необыкновенный способ генерации лабиринтов

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

Вас ждет много анализа и немного частных производных. Код прилагается.
Прошу под кат!

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

Автономный способ обхода DPI и эффективный способ обхода блокировок сайтов по IP-адресу

Reading time7 min
Views756K
Провайдеры Российской Федерации, в большинстве своем, применяют системы глубокого анализа трафика (DPI, Deep Packet Inspection) для блокировки сайтов, внесенных в реестр запрещенных. Не существует единого стандарта на DPI, есть большое количество реализации от разных поставщиков DPI-решений, отличающихся по типу подключения и типу работы.

Существует два распространенных типа подключения DPI: пассивный и активный.

Пассивный DPI

Пассивный DPI — DPI, подключенный в провайдерскую сеть параллельно (не в разрез) либо через пассивный оптический сплиттер, либо с использованием зеркалирования исходящего от пользователей трафика. Такое подключение не замедляет скорость работы сети провайдера в случае недостаточной производительности DPI, из-за чего применяется у крупных провайдеров. DPI с таким типом подключения технически может только выявлять попытку запроса запрещенного контента, но не пресекать ее. Чтобы обойти это ограничение и заблокировать доступ на запрещенный сайт, DPI отправляет пользователю, запрашивающему заблокированный URL, специально сформированный HTTP-пакет с перенаправлением на страницу-заглушку провайдера, словно такой ответ прислал сам запрашиваемый ресурс (подделывается IP-адрес отправителя и TCP sequence). Из-за того, что DPI физически расположен ближе к пользователю, чем запрашиваемый сайт, подделанный ответ доходит до устройства пользователя быстрее, чем настоящий ответ от сайта.
Читать дальше →

Сколько стоит перевести Хабр?

Reading time5 min
Views21K
Привет, Хабр! Мы с ребятами из Smartcat решили сойти с ума и попробовать перевести на английский все посты, которые были опубликованы здесь до 19 июля 2017 года, а потом оценить, сколько это будет стоить в среднем, если будет переводить Человек VS Машина. Под катом вы узнаете, что у нас из этого получилось.


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

На сказочном Бали выпал снег или как же легко обмануть GPS

Reading time6 min
Views37K

image


Добрый день, судя по фотографии, на Бали выпал снег! Как же так получилось?


Плач


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


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


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


В общем, нелегка доля разработчика.


Удача


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

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

Расширенная регуляризация нейронных сетей в интернет-магазинах — с помощью… напалма

Reading time9 min
Views10K
Подмигнув дедушке Энштейну, поправив ранец с напалмом и пригладив стильную черную маечку с изображением формулы закона нормального распределения, ведущий аналитик распахнул двери PR-отдела, блистательно улыбнулся и спросил: «Ребят, продолжаете собирать e-mail клиентов в эксельках и креативите методом блуждания левой руки с закрытыми глазами?». Получив радостное «ага :-)», боец мысленно поблагодарил Джона Непера за проделанную работу на благо просвещения человечества и сокращение рутинного труда и… бодро нажал на гашетку.

Альберт Энштейн всегда вдохновлял аналитиков на внедрение передовых алгоритмов

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

Нейронные сети в картинках: от одного нейрона до глубоких архитектур

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

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

Генерация и решение лабиринта с помощью метода поиска в глубину по графу

Reading time6 min
Views117K
image

В этой статье речь пойдет о самом простом в реализации алгоритме генерации «идеального» лабиринта и его применении для поиска пути.

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

Заинтересовавшихся — прошу под кат.
Читать дальше →

Алгоритм Эллера для генерации лабиринтов

Reading time5 min
Views155K
Это топик-перевод статьи Eller's Algorithm. В ней рассказывается о способе программной генерации лабиринтов. Дальнейшее повествование идет от лица автора.

 __ __ __ __ __ __ __ __ __ __ __ __ __ __ __  
|__   |__       __ __|__   |   __|  |  |  |  |
|__   |__   |__|   __ __|   __ __      |     |
|        |  |  |     |  |__      |__|  |  |  |
|__|__|  |  |   __|   __|__   |   __|__|  |__|
|   __|  |     |__ __ __|  |  |__|  |     |  |
|  |  |  |  |__|  |__   |  |   __|__ __|  |  |
|  |__    __    __ __    __|  |   __   |  |  |
|  |  |  |  |      __|  |   __|  |  |__|  |  |
|  |     |     |__   |  |  |  |  |  |__    __|
|  |  |__|__|__ __|  |     |  |  |      __|  |
|__ __|  |  |  |__   |__|   __|     |   __ __|
|   __|  |   __|__      |__   |__|  |__    __|
|  |  |     |  |     |__|  |   __    __|   __|
|   __|  |__ __|__|      __|  |  |     |  |  |
|   __ __   |      __|__|  |__   |  |  |__|  |
|__ __ __|__ __|__ __ __ __ __|__|__|__ __ __|


Алгоритм Эллера позволяет создавать лабиринты, имеющие только один путь между двумя точками. Сам по себе алгоритм очень быстр и использует память эффективнее, чем другие популярные алгоритмы (такие как Prim и Kruskal), требуя памяти пропорционально числу строк. Это позволяет создавать лабиринты большого размера при ограниченных размерах памяти.

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

Алгоритм поиска пути Jump Point Search

Reading time6 min
Views125K
Этот алгоритм является улучшенным алгоритмом поиска пути A*. JPS ускоряет поиск пути, “перепрыгивая” многие места, которые должны быть просмотрены.  В отличие от подобных алгоритмов JPS не требует предварительной обработки и дополнительных затрат памяти. Данный алгоритм представлен в 2011 году, а в 2012 получил высокие отклики. Что из себя представляет данный алгоритм и его реализацию можно прочитать дальше в статье.


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

Алгоритм поиска путей в лабиринте

Reading time5 min
Views129K
Доброго времени суток, уважаемое сообщество.

Предыстория



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

Вот собственно и он:




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

Кого заинтересовал, прошу под кат

Графы для самых маленьких: DFS

Reading time3 min
Views181K
В этой статье хотелось бы рассказать об одном из самых распространенных алгоритмов на графах — об обходе в глубину — на примере решения задачи о нахождении пути сквозь лабиринт. Всем, кому это интересно — добро пожаловать под кат!

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

Алгоритмы на графах — Часть 0: Базовые понятия

Reading time5 min
Views264K

Вступление


Как оказалось тема алгоритмов интересна Хабра-сообществу. Поэтому я как и обещал, начну серию обзоров «классических» алгоритмов на графах.
Так как публика на Хабре разная, а тема интересна многим, я должен начать с нулевой части. В этой части я расскажу что такое граф, как он представлен в компьютере и зачем он используется. Заранее прошу прощения у тех кто это все уже прекрасно знает, но для того чтобы объяснять алгоритмы на графах, нужно сначала объяснить что такое граф. Без этого никак.

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

Алгоритм обучения многослойной нейронной сети методом обратного распространения ошибки (Backpropagation)

Reading time19 min
Views299K
Тема нейронных сетей была уже ни раз освещена на хабре, однако сегодня я бы хотел познакомить читателей с алгоритмом обучения многослойной нейронной сети методом обратного распространения ошибки и привести реализацию данного метода.
Читать дальше →

Реализация графов и деревьев на Python

Reading time17 min
Views291K
Продолжаем публикацию наиболее интересных глав из книги Magnus Lie Hetland «Python Algorithms». Предыдущая статья расположена по адресу habrahabr.ru/blogs/algorithm/111858. Сегодня же речь пойдет об эффективной работе с графами и деревьями и особенностях их реализации в Python. Базовая терминология теории графов уже обсуждалась (например здесь: habrahabr.ru/blogs/algorithm/65367), так что я не включил часть главы о терминах в эту статью.

Реализация графов и деревьев


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

Neural conversational models: как научить нейронную сеть светской беседе. Лекция в Яндексе

Reading time20 min
Views25K
Хороший виртуальный ассистент должен не только решать задачи пользователя, но и разумно отвечать на вопрос «Как дела?». Реплик без явной цели очень много, и заготовить ответ на каждую проблематично. Neural Conversational Models — сравнительно новый способ создания диалоговых систем для свободного общения. Его основа — сети, обученные на больших корпусах диалогов из интернета. Борис hr0nix Янгель рассказывает, чем хороши такие модели и как их нужно строить.


Под катом — расшифровка и основная часть слайдов.

Что читать о нейросетях

Reading time6 min
Views134K


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


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


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

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

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity