В предыдущей статье были рассмотрены задачи, необходимые для построения I2P маршутизатора, способного принимать участие в работе сети, включающие взаимодействие с другими маршутизаторами через обычный Интернет, построение тоннелей разных видов и сбор информации о других узлах сети. Несмотря на важность этих задач, I2P клиент, выполняющий лишь функции маршутизатора, с точки зрения пользователя является «вещью в себе», поскольку не делает ничего интересного пользователю. Данная статья посвящена протоколам прикладного уровня, предназначенных для передачи пользовательских данных через сеть I2P.
Filipp Frizzy @MrFrizzy
devops
Сервис для логов за 5 минут
2 min
15KВо время разработки под мобильные устройства появилась проблема наблюдать и сравнивать несколько характеристик производительности и параметров на разных устройствах. (iPad/Samasung Galaxy Note 10.1/Nexus и т.д.). Можно было бы просто записывать логи в файл, потом свести их воедино, но хочется, чтобы информация с устройств поступала сразу после отладки в единую таблицу, да и не все устройства находятся у разработчиков на руках.
Единственным быстрым решением, приходящим на ум, был небольшой сервис на flask/bottle, но для этого пришлось бы поднять хранилище данных. Сказать честно, даже использование облачных решений на Azure/Heroku/AWS — это небольшая кучка дополнительных проблем для такой простой задачи: пароли, пути, зависимости и т.д. Нам же надо вести одну небольшую таблицу с несколькими параметрами, которые поступают с устройств. К тому же, данная утилита требовалась исключительно для удобства разработки, а не для продуктивного использования с тысячами пользователей.
Я постоянно записываю в свою базу знаний в Evernote различные хаки для повседневных задач, и недавно нашел там пример кода из какого-то open source проекта, где идет обращение с формой Google Docs через post запросы. И понеслось.
Единственным быстрым решением, приходящим на ум, был небольшой сервис на flask/bottle, но для этого пришлось бы поднять хранилище данных. Сказать честно, даже использование облачных решений на Azure/Heroku/AWS — это небольшая кучка дополнительных проблем для такой простой задачи: пароли, пути, зависимости и т.д. Нам же надо вести одну небольшую таблицу с несколькими параметрами, которые поступают с устройств. К тому же, данная утилита требовалась исключительно для удобства разработки, а не для продуктивного использования с тысячами пользователей.
Я постоянно записываю в свою базу знаний в Evernote различные хаки для повседневных задач, и недавно нашел там пример кода из какого-то open source проекта, где идет обращение с формой Google Docs через post запросы. И понеслось.
+38
Антивирусное сканирование по доступу на Samba
3 min
13KДоброго времени суток, уважаемые пользователи Хабра.
После очередной вспышки вирусной активности в сетевой папке нашей организации я задумался об ее антивирусной защите. Речь идет о сетевой папке, за которую отвечает Samba, работающая на Debian Wheezy.
Обратившись в гугл за информацией, я нашел 2 актуальных на текущий момент способа:
После очередной вспышки вирусной активности в сетевой папке нашей организации я задумался об ее антивирусной защите. Речь идет о сетевой папке, за которую отвечает Samba, работающая на Debian Wheezy.
Обратившись в гугл за информацией, я нашел 2 актуальных на текущий момент способа:
+19
Основы разработки клиента сети I2P
8 min
22KДанная статья предназначена для тех, кто хотел бы разработать собственного I2P клиента «с нуля». Предполагается знакомство с основными концепциям и понятиями I2P. На настоящий момент на это счет имеется достаточно документации и статей, в том числе и переведённых на русский язык. С другой стороны имеется официальная документация, достаточно хорошо описывающая протоколы и форматы сообщений. К сожалению она носит разрозненный характер, при этом многие неочевидные вещи там отсуствуют. Данная статья написана в первую очередь на основе изучения и отладки официального I2P джава-клиента. Конечной целью является реализация полностью на C++. Исходный код проекта в текущем состоянии располагается на github.
+52
Строим свой Gmail с куртизанками и преферансом
7 min
205KВместо предисловия
В один прекрасный, а может и не такой уж и прекрасный, день настигла паранойя и меня. Было принято решение бежать от Google подальше. При чем, бежать куда-нибудь на свою площадку, чтобы быть спокойным за сохранность своих любимых сервисов.
Итак, в этой статье я расскажу о том, как я поднимал и настраивал на своем сервере почту, календарь, контакты, RSS-аггрегатор и, в качестве бонуса, хранилище файлов.
+114
Настроим Ubuntu shell под себя
3 min
33KTutorial
Итак. Абстрагируемся от мощных высокотехнологичных постов на хабре — я им апплодирую. Но жизнь рядового программиста начинается с его рабочего места, куда он неустанно возвращается снова и снова.
Если это про вас. Если вы хотите добавить в свою жизнь немного изюминки — отвлекитесь на минутку, расслабьтесь и открывайте хабракат!
Если это про вас. Если вы хотите добавить в свою жизнь немного изюминки — отвлекитесь на минутку, расслабьтесь и открывайте хабракат!
+29
Производящие функции — туда и обратно
9 min
108K«Производящая функция является устройством, отчасти напоминающим мешок. Вместо того чтобы нести отдельно много предметов, что могло бы оказаться затруднительным, мы собираем их вместе, и тогда нам нужно нести лишь один предмет — мешок».
Д. Пойа
Математика делится на два мира — дискретный и непрерывный. В реальном мире есть место и для того и для другого, и часто к изучению одного явления можно подойти с разных сторон. В этой статье мы рассмотрим метод решения задач с помощью производящих функций — мостика ведущего из дискретного мира в непрерывный, и наоборот.
Идея производящих функций достаточно проста: сопоставим некоторой последовательности <g0, g1, g2, ..., gn> — дискретному объекту, степенной ряд g0 + g1z + g2z2 +… + gnzn +… — объект непрерывный, тем самым мы подключаем к решению задачи целый арсенал средств математического анализа. Обычно говорят, последовательность генерируется, порождается производящей функцией. Важно понимать, что это символьная конструкция, то есть вместо символа z может быть любой объект, для которого определены операции сложения и умножения.
Д. Пойа
Введение
Математика делится на два мира — дискретный и непрерывный. В реальном мире есть место и для того и для другого, и часто к изучению одного явления можно подойти с разных сторон. В этой статье мы рассмотрим метод решения задач с помощью производящих функций — мостика ведущего из дискретного мира в непрерывный, и наоборот.
Идея производящих функций достаточно проста: сопоставим некоторой последовательности <g0, g1, g2, ..., gn> — дискретному объекту, степенной ряд g0 + g1z + g2z2 +… + gnzn +… — объект непрерывный, тем самым мы подключаем к решению задачи целый арсенал средств математического анализа. Обычно говорят, последовательность генерируется, порождается производящей функцией. Важно понимать, что это символьная конструкция, то есть вместо символа z может быть любой объект, для которого определены операции сложения и умножения.
+67
Десктоп в домашнем сервере или «всё-в-одном»
4 min
89K
Цель: недорого собрать систему поддерживающую проброс PCI-устройств в виртуальную машину (c IOMMU). Создать полноценное рабочее место, поднять виртуальный маршрутизатор и еще полезные мелочи.
+28
Игра в 0 строк кода на чистом JS
2 min
179K
Я не хотел принимать участие в недельном тренде хабра — «Все пишем в 30 строк кода!», нет времени лишнего. Но пост theaqua про Hello world в 1 строчку на чистом JavaScript вдохновил меня побить этот рекорд. Я написал игру, используя JavaScript, HTML и CSS, при этом использовал всего 0 строк кода. После этого поста я не мог спать. Я мучался бессоницей и, взяв себя в руки, сел писать игру. Понимая что мне придется использовать 0 строк кода на Javascript — я сильно боялся. Написать программу в 1000 строк кода и больше — не составляет проблем. Но вот написать 0 строк кода… Это безумие. Это переворачивает мозг. Меняет отношение к вебу. Понимаешь, что раньше ты писал как-то не так…
Для тех, кто не привык ждать — ДЕМКА.
Это не фейк, а полноценная игра. Подробности под катом.
+291
Python-digest #2. Новости, интересные проекты, статьи и интервью [8 ноября 2013 — 15 ноября 2013]
5 min
14K
Увы, все также мало материалов на русском языке. Присылайте мне пожалуйста ссылки если находите достойные и актуальны статьи.
Огромное спасибо гитхабо-пользователю и земляку axcel, благодаря которому на нашем инструменте для сбора новостей появились rss лента и optimistic locks при сохранении объектов.
+59
Миссия невыполнима. Мертворожденные проекты
4 min
112K«Когда человек не знает, к какой пристани он держит путь, для него ни один ветер не будет попутным». (С) Сенека, Луций Анней

Предисловие
Как-то один из топов уважаемой компании, которая занимается продуктовой разработкой ПО, пригласил меня, как эксперта, чтобы я оценил качество нового продукта. Я внимательно просмотрел и прослушал презентацию. Видно было, что коллеги очень старались и работали по 10-12 часов, чтобы продукт выглядел на высшем уровне. После чего меня спросили: «хороший получился продукт или нет?» Я поблагодарил за представленную презентацию, но попросил ответить на свой последний вопрос: «А какие процессы, и с какой целью вы собираетесь автоматизировать с помощью этого инструмента?» Вопрос почему-то вызвал замешательство у докладчиков. После небольшой паузы, топ, который, видимо, был идеологом нового продукта, ответил: «Был бы инструмент хороший, а какие процессы с его помощь автоматизировать мы найдем!» Мне пришлось сказать, что оценить продукт я не смогу. Не зная бизнес-целей, невозможно понять степень их достижения.
Большинство провалившихся программных проектов, которые приходилось наблюдать, были провальными еще до их старта. Миссия изначально была невыполнима потому, что никто не удосужился ответить на девять простых, но обязательных вопросов, которые определяют концепцию будущего проекта. Судьба подобных проектов плачевна. Вложив существенные средства в разработку какой-то хрени, которая не полетела, инвестор, как правило, продолжает вкладывать средства дальше и дальше, в надежде на то, что она, таки, полетит и затраты окупятся. И только озаботившись концептуальным определением проекта, он понимает, что миссия невыполнима и, чтобы не впасть в еще большие убытки, проект надо срочно закрывать.
Для иллюстрации используем проект «Экспедиция за сокровищами Флинта»
+91
Радиомодем за 7 долларов
6 min
137KTutorial
Доброе время суток!
Расскажу я как можно собрать себе радиомодем мощностью 100мВт на 433МГц, по стоимости выходящий примерно на 6-7 долларов. Мощный радиомодем за 200 рублей — заманчиво? Тогда начнём.

Требуются скиллы пайки немного выше среднего и опыт заказа в интернет-магазинах.
Расскажу я как можно собрать себе радиомодем мощностью 100мВт на 433МГц, по стоимости выходящий примерно на 6-7 долларов. Мощный радиомодем за 200 рублей — заманчиво? Тогда начнём.

Требуются скиллы пайки немного выше среднего и опыт заказа в интернет-магазинах.
+83
jor1k: Linux в браузере с поддержкой сети
1 min
12KТо, что мы давно ждали, появилось.
Встречайте: jor1k: OpenRISC OR1K Javascript Emulator Running Linux With Network Support
У меня на ноутбуке выдает 120 MIPS с ядром asm.js.
Более подробная информация в блоге автора.
Have fun!
Встречайте: jor1k: OpenRISC OR1K Javascript Emulator Running Linux With Network Support
- У каждой виртуалки есть общая сеть с доступом в интернет
- У каждой виртуалки есть telnetd с root без пароля
- У каждой виртуалки есть nmap ;)
- Виртуалка получает IP по DHCP
- Есть поддержка framebuffer
У меня на ноутбуке выдает 120 MIPS с ядром asm.js.
Более подробная информация в блоге автора.
Have fun!
+36
Я параноик или Почему Большой Брат уже следит за нами
5 min
113KНачал писать комментарий к собственному переводу статьи о приватности пользовательских данных и неожиданно понял, что он выливается в нечто большее.
Дело в том, что я занимаюсь технологиями data mining и text mining последние лет пятнадцать. И поэтому все недавние скандалы, связанные с делом Сноудена и PRISM, XKeyScore, Muscular, СОРМ, чтением почты Гуглом, передачей конфиденциальных и гео данных с мобильников, и множество прочих оставили меня абсолютно равнодушным.
По очень простой причине – я уже знаю, что Большой Брат давно существует.

Если точнее, я абсолютно в этом уверен – так же, как не могу знать, что Солнце завтра взойдет, но весьма и весьма в этом убежден. И все новые доказательства существования Большого Брата полезны, но уже не обязательны.
А объяснение уверенности очень простое: при наличии необходимых ресурсов я сам мог бы его построить.
Дело в том, что я занимаюсь технологиями data mining и text mining последние лет пятнадцать. И поэтому все недавние скандалы, связанные с делом Сноудена и PRISM, XKeyScore, Muscular, СОРМ, чтением почты Гуглом, передачей конфиденциальных и гео данных с мобильников, и множество прочих оставили меня абсолютно равнодушным.
По очень простой причине – я уже знаю, что Большой Брат давно существует.

Если точнее, я абсолютно в этом уверен – так же, как не могу знать, что Солнце завтра взойдет, но весьма и весьма в этом убежден. И все новые доказательства существования Большого Брата полезны, но уже не обязательны.
А объяснение уверенности очень простое: при наличии необходимых ресурсов я сам мог бы его построить.
+123
Сравнение производительности различных систем шифрования под linux
8 min
19KВ данной статье я попытаюсь сравнить производительность различных систем шифрования под linux. В теории, конечно, известно, какая система производительнее, и попытки посчитать производительность разных систем были (например). Truecrypt даже содержит встроенный бенчмарк (который показывает, однако, производительность на RAM, его можно использовать разве что для оценки скорости разных алгоритмов шифрования). Я же сделаю несколько другое — измерю скорость файловой системы, зашифрованной разными средствами, в процентном соотношении по сравнению с обычной нешифрованной файловой системой.


+6
Программирование как образ жизни
5 min
79KTranslation
«Человек добился успеха, если он встает утром и ложится спать вечером, а в промежутке занимается тем, чем хочет»— Боб Дилан
Я – программист по образу жизни. Я в одиночку работаю программистом, чтобы обеспечить себя интересной, полезной, гибкой и хорошо оплачиваемой работой. У меня нет инвесторов, я не собираюсь нанимать сотрудников, не говоря уже о том, чтобы стать следующим Google или Facebook. У меня нет личного самолета, и мое лицо вряд ли скоро появится на обложке Newsweek. Меня это устраивает.
+129
Пара лайфхаков нашего интернет-магазина
5 min
99KКогда у вас есть интернет-магазин, российская сеть и производство, тяжело сохранять серьёзность. Для нас бизнес – это игра. Поэтому мы не боимся пробовать разные весёлые штуки. Про часть из них я сейчас расскажу. Ниже несколько историй, среди которых есть две полезных, которые могут немного увеличить ваши продажи.
Самое крутое – это когда магазин создаёт позитив, о котором хочется рассказать друзьям. Когда только-только вышла игра «Бригада», мы просто купили паяльников (по 64 рубля за штуку) и первой полусотне покупателей выдали по одному.
Происходило это так: аниматор в зале играет с покупателем в нашу пародийную игру про лихие девяностные, потом покупатель идёт с коробкой к кассе. После оплаты кассир достаёт паяльник и кладёт его в пакет к игре со словами: «Вам пригодится».

Первый покупатель с паяльником
Какой профит? Да никакого, просто классная история. Точнее, она задумывалась таковой, пока про эту тему не написало какое-то крупное сообщество про партизанскую рекламу в интернете – в этот день мы продали ещё несколько десятков коробок.
Бесплатный криптоанализатор
Самое крутое – это когда магазин создаёт позитив, о котором хочется рассказать друзьям. Когда только-только вышла игра «Бригада», мы просто купили паяльников (по 64 рубля за штуку) и первой полусотне покупателей выдали по одному.
Происходило это так: аниматор в зале играет с покупателем в нашу пародийную игру про лихие девяностные, потом покупатель идёт с коробкой к кассе. После оплаты кассир достаёт паяльник и кладёт его в пакет к игре со словами: «Вам пригодится».

Первый покупатель с паяльником
Какой профит? Да никакого, просто классная история. Точнее, она задумывалась таковой, пока про эту тему не написало какое-то крупное сообщество про партизанскую рекламу в интернете – в этот день мы продали ещё несколько десятков коробок.
+246
Десятка лучших консольных команд
2 min
198K
+310
Что такое Entity System Framework и зачем он нужен в геймдеве?
18 min
53KНа Хабре уже есть очень много интересных статей про создание игры с нуля, но мало статей, описывающих что делать, чтобы своя любимая поделка не превратилась во Франкенштейна и дошла до вменяемого состояния. Автор оригинальной статьи рассказывает, как эволюционировал код игрового движка от кучи хлама в основном цикле к продуманной, расширяемой архитектуре, использующей Entity Component System. В статье много кода, который почти весь часто повторяется — но я не стал его выбрасывать, поскольку с ним будет понятнее, какие изменения вносит автор и как это отражается на всей структуре. Статья рассчитана на новичков, вроде меня, которые уже настрочили несколько «гениальных» прототипов, но теперь не знают, как разобраться в их коде.
+19
Пара интересных книг для революционеров-стартаперов
4 min
21KЗдравствуй, уважаемое хабросообщество! Сегодня я хочу представить свою рецензию (хотя, скорее, свое видение) на две интересные книги Гая Кавасаки, вышедшие на русском языке. Речь идет о “Стартап” и “Революционный продукт. Как создать и вывести на рынок”.
Возможно, это действительно кому-то поможет, а может и нет. В любом случае, сразу хочу предупредить, что состоявшимся АйТишникам, не нуждающимся в изменениях, а также тем, кто по разным причинам испытывает личную неприязнь к Кавасаки под кат не нужно. Серьезно, вы просто не найдете там какой-либо полезной информации.
Всех остальных прошу за мной!

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

+6
Information
- Rating
- Does not participate
- Registered
- Activity