Pull to refresh
24
0
Андрей Сумской @a696385

User

Send message

Пиринговая сеть base.network

Reading time22 min
Views29K
base.network
«Свобода — это возможность сказать, что дважды два – четыре. Если дозволено это, всё остальное отсюда следует.»
Джордж Оруэлл — «1984»

В современном мире активно развиваются различные распределенные технологии. Уже не первый год успешно функционируеют такие проекты как пиринговая платежная система Bitcoin, распределенные микроблоги (Twister), распределенные мессенджеры (например, Tox). Дошло дело и до полноценных распределенных сайтов.

Частично функционал распределённых сайтов уже реализован в таких проектах как Freenet и I2P. Однако подобные проекты имеют ряд недостатков. Например, в настоящее время Freenet не может быть использован для создания или распространения динамического контента, такого, который использует базы данных или скрипты. Для доступа к подобным сетям часто необходимо устанавливать специальное программное обеспечение или скачивать базы данных огромных размеров. Многие пиринговые сети имеют большое время отклика. Между публикацией информации и тем когда ее увидят остальные пользователи проходит немало времени.

Предлагаемая система base.network призвана устранить подобные недостатки пиринговых сетей и объединить в себе все технические преимущества централизованных систем со свободой обмена информации в распределенных сетях.
Это своего рода попытка создать защищённую децентрализованную сеть с малым временем отклика и свойствами автономности, отказоустойчивости и масштабируемости. Ключевой целью проекта является способность функционировать даже под давлением организаций, осуществляющих контроль, пресечение публикации, а также ограничение доступа к информации в Интернете. Все аспекты проекта доступны в виде открытого исходного кода и бесплатны. Это позволяет убедиться, что программное обеспечение делает именно то, что заявлено, и дает возможность всем разработчикам совершенствовать защиту сети от попыток ограничить свободное распространение информации.
Читать дальше →
Total votes 25: ↑25 and ↓0+25
Comments43

Особенности резолвера DNS в Windows 10 и DNS Leak

Reading time3 min
Views114K
image

TL;DR: DNS-резолвер в Windows 10 отправляет запросы на все известные системе адреса DNS-серверов параллельно, привязывая запрос к интерфейсу, и использует тот ответ, который пришел быстрее. В случае, если вы используете DNS-сервер из локального сегмента, такое поведение позволяет вашему провайдеру или злоумышленнику с Wi-Fi-точкой подменять записи DNS, даже если вы используете VPN.

Современные версии Windows добавляют головные боли активным пользователям VPN. DNS-резолвер до Windows 7 включительно имел предсказуемое поведение, совершая запросы к DNS-серверам в порядке очереди и приоритета DNS-серверов, в общем-то, как и все остальные ОС. Это создавало так называемый DNS Leak (утечка DNS-запроса через внешний интерфейс при подключенном VPN) только в том случае, если DNS-сервер внутри VPN-туннеля не ответил вовремя, или ответил ошибкой, и, в целом, не являлось такой уж вопиющей проблемой.
Читать дальше →
Total votes 64: ↑61 and ↓3+58
Comments65

Увеличение LVM диска в виртуальной машине на лету

Reading time3 min
Views50K
Продолжая тему, описанную здесь habrahabr.ru/post/252973, опять пишу про увеличение дисков виртуальных машин.
Конфигурация следующая:
Гипервизор сервер Supermicro с KVM и libvirt на Ubuntu.
Гости — Ubuntu с LVM2.
Задача:
Увеличить размер системного дисков без выключения/перезагрузки гостевой ОС.

В комментариях к предыдущей статье habrahabr.ru/post/252973/#comment_8330673 farcaller написал:
Системный тоже можно на лету отресайзить. Для этого в libvirt есть команда:
virsh qemu-monitor-command resized-virtual-machine --hmp «block_resize $DRIVENAME $NEWSIZE»

Для HA проектов это очень важный момент, необходимо непрерывное функционирование сервиса.
Я решил попробовать изменить размер диска при помощи virsh.
Ниже результаты этого успешного эксперимента.
Читать дальше →
Total votes 18: ↑14 and ↓4+10
Comments7

Типовая схема биллинга

Reading time6 min
Views58K
Я как человек измученный различными АСР и сам принимавший участие в разработке АСР регулярно сталкивался с отсутствием какой-то типовой схемы, которую можно было бы посмотреть для оценки АСР, а так же перед созданием своей АСР. В сети есть некоторое количество работ по этой теме к примеру я в свое время при написании диплома изучал вот этот вот труд Методы моделирования и разработки биллинговых систем. Диплом же и есть диплом и тащить из него схемы странное занятие, так-как реалиям он не отвечает.
Читать дальше →
Total votes 17: ↑15 and ↓2+13
Comments62

Шпаргалка по mongodb: e-commerce, миграция, часто применяемые операции и немного о транзакциях

Reading time40 min
Views67K

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


Не хотелось бы, чтобы пост воспринимался в ключе холиваров на тему SQL vs. NOSQL И так понятно что везде есть свои плюсы и минусы, в данном случае это просто где-то немного справки, где-то немного примеров из того, с чем приходилось сталкиваться. Примеры на mongo shell и на python.


  1. Миграция в на новые версии в mongodb
  2. Запросы сравнения и логические
  3. Полнотекстовый поиск в Mongodb, regexp, индексы и пр.
  4. Атомарные операторы (модифицирующие данные )
  5. Немного о транзакциях в Mongodb
  6. Агрегационный фреймворк и JOIN-ы в Mongodb
  7. Примеры
  8. Небольшая песочница на Python

Читать дальше
Total votes 47: ↑42 and ↓5+37
Comments14

Реактивный мессенджер, или CQRS и ES вместе с Akka и Scala

Reading time21 min
Views23K
В последнее время мы часто слышим о реактивном программировании и видим различные баззворды: message-driven архитектура, event-sourcing, CQRS. К сожалению, на Хабре об этом пишут довольно мало, поэтому я решил исправить ситуацию и поделиться своими знаниями со всеми желающими.

В этой статье мы узнаем об основных особенностях реактивных приложений, рассмотрим, как паттерны CQRS и EventSourcing помогут нам в их создании, а чтобы не было скучно, мы с вами шаг за шагом сделаем свой мессенджер с вебсокетом и акторами, соответствующий всем канонам реактивного программирования. Для реализации всего этого добра, мы будем использовать замечательный язык Scala вместе с не менее превосходной библиотекой Akkа, реализующей модель акторов. Еще, мы будем использовать Play Framework для написания веб-составляющей нашего приложения. Итак, приступим.

Статья предназначена для тех, кто уже знаком со Scala и слышал о модели акторов. Все остальные тоже приглашаются к прочтению, принципы реактивного программирования можно применять вне зависимости от языка и фреймворка.
Читать дальше →
Total votes 20: ↑20 and ↓0+20
Comments33

Обзор докладов конференции QCon London 2015

Reading time17 min
Views6.1K
Привет, меня зовут Макс Матюхин, я PHP-программист в компании Badoo. В прошлом месяце в Лондоне прошла очередная Международная конференция разработчиков QCon 2015. Я побывал на ней и теперь хочу поделиться с вами своими впечатлениями о мероприятии и рассказать о самых интересных, на мой взгляд, выступлениях. Из этой статьи вы узнаете чуть больше про архитектуру Uber, Spotify, CloudFlare, а также о том, как Google управляет своей инфраструктурой и многом другом.

Впервые QCon состоялась в 2007 году в Лондоне и Сан-Франциско. С тех пор она стабильно набирает популярность и расширяет географию, и в этом году она пройдет в 8 городах. Лондонская QCon проходит в самом сердце британской столицы, в двух шагах от Вестминстерского Аббатства. В разное время на QCon выступали такие известные личности, как Martin Fowler, Kent Beck, Erik Meijer, Steve Vinoski, Joe Armstrong, Rich Hickey и многие другие.
Читать дальше →
Total votes 24: ↑22 and ↓2+20
Comments0

How-to: Правила вёрстки email-писем

Reading time16 min
Views185K


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

Вёрстка HTML для электронной почты — интересная и довольно сложная задача. Письма должны одинаково хорошо отображаться на старых устройствах и версиях программных клиентов.

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

Примечание переводчика: Представленный ниже материал содержит значительное количество технических терминов, при переводе которых могут возникнуть неточности. Если вы заметили опечатку, ошибку или неточность перевода — напишите нам, и мы оперативно всё исправим.
Читать дальше →
Total votes 30: ↑26 and ↓4+22
Comments21

Ionic framework. Обзор экосистемы

Reading time6 min
Views118K

Ionic framework — один из самых широко обсуждаемых фреймворков. Как гласит официальный сайт, Ionic — это SDK для создания гибридных мобильных приложений, набор CSS и JS компонент, созданный на основе AngularJS, SASS, Apache Cordova.

На момент написания статьи репозиторий Ionic насчитывает 15300 звездочек, а сумма инвестиций в компанию Drifty, чьим продуктом является Ionic, уже достигла $3.7 миллиона.

Посмотрим, что интересного предлагает Ionic для разработчика.
Читать дальше →
Total votes 21: ↑19 and ↓2+17
Comments28

HomeKit для Z-Wave, Raspberry GPIO и устройств с HTTP API с помощью контроллера RaZberry

Reading time4 min
Views28K


Тема интернета вещей сейчас как никогда наиболее популярна. Каждый день выходят новые интересные устройства способные общаться друг с другом через интернет. Пока различные производители договариваются о общем протоколе общения, Apple решила взять дела в свои руки и выпустила Framework HomeKit стандартизирующий способы управления устройствами различных производителей. В перспективе с помощью мобильного приложения HomeKit можно будет управлять различными лампочками, термостатами, розеточными модулями по wifi или bluetooth. Но это все в ближайшем будущем, хотя нет, постойте…
Вы уже сейчас можете работать более чем с 1000 HomeKit устройствами или создавать свои HomeKit совместимые устройства!!!
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments17

JSONB запросы в PostgreSQL

Reading time7 min
Views286K
Ранее я писал, как включить поддержку jsonb в postgres/psycopg2. Сегодня экспериментировал с тем, как запрашивать данные в колонках типа JSON.
На эту тему есть документация, но мне было не совсем понятно, как работают различные операции:

CREATE TABLE json_test (
  id serial primary key,
  data jsonb
);

INSERT INTO json_test (data) VALUES 
  ('{}'),
  ('{"a": 1}'),
  ('{"a": 2, "b": ["c", "d"]}'),
  ('{"a": 1, "b": {"c": "d", "e": true}}'),
  ('{"b": 2}');

Читать дальше →
Total votes 34: ↑33 and ↓1+32
Comments12

Сравнение онлайн-консультантов для сайта: муки выбора

Reading time5 min
Views30K
Сразу предупрежу, что статья не носит рекламный характер. Написана она исключительно с целью поделиться своим опытом в подборе качественного инструмента для онлайн-консультирования, так как сами, пока искали, не могли нигде найти подходящий материал с подробным анализом.

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


Читать дальше →
Total votes 16: ↑14 and ↓2+12
Comments69

Спокойной ночи: обзор трекера сна RestOn Sleepace и условий, в которых он возник

Reading time5 min
Views14K
Новый трекер сна RestOn приехал к нам с Indiegogo буквально на прошлой неделе, и несмотря на внушительные коробку и стоимость, стал чуть ли не центром внимания. Сегодня я расскажу вам о своем коротком опыте и напомню, какие еще гаджеты с «похожей» конфигурацией есть на текущий момент.



Читать дальше →
Total votes 10: ↑8 and ↓2+6
Comments15

Clickberry — пожалуй самая мощная видео-платформа на MS Azure теперь open source

Reading time4 min
Views10K
Сколько существует индустрия разработки ПО, столько и идет вечная битва закрытого кода с открытым. Сколько копий было сломано, не пересчитать. Мы, в Clickberry, тоже в этой битве, 3 года на одной стороне, а вот теперь, можете считать нас перебежчиками, мы на другой. Встречайте нас в стане open source. Для тех кто не знает, Clickberry — это платформа создания, хранения и дистрибуции видео в общем и интерактивного видео в частности.
Читать дальше →
Total votes 19: ↑15 and ↓4+11
Comments7

Грид, группировка данных и OData

Reading time4 min
Views8.5K
В одной из прошлых статей мы кратко рассказали, как грид контролы работают с удаленным сервером, используя OData протокол. Большинство современных грид контролов позволяют удобно группировать данные по нескольким колонками. Рассмотрим подробнее, как формулируются запросы к REST серверу, в случае, когда грид производит автоматическую группировку данных.

Удобство (зачем это нужно)


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

image
Читать дальше →
Total votes 26: ↑25 and ↓1+24
Comments0

Новый инструмент проверки структурированных данных, документация и не только

Reading time2 min
Views19K
Разметка структурированных данных позволяет показывать дополнительную информацию с вашего сайта в результатах поиска и сервисах Google. Мы рады представить несколько обновлений, которые помогут создавать разметку на сайте:

Инструмент проверки структурированных данных


Новый Инструмент проверки структурированных данных лучше показывает то, как Google интерпретирует разметку структурированных данных на странице сайта.
Инструмент проверки структурированных данных
Что именно можно тестировать
Total votes 17: ↑14 and ↓3+11
Comments1

Как создать веб-сайт, используя видео с YouTube в качестве фона?

Reading time9 min
Views86K


Большие видео на заднем плане веб-сайтов — довольно популярный тренд в веб-дизайне. Умело примененные видео могут сделать веб-сайт более драматичным и привлекательным для пользователей.

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

Существуют компании, как, например, Powerhouse или Adidas, которые используют видео в качестве заднего плана сайта, чтобы донести до пользователя определенное сообщение или историю о продукте или услуге.

Хотя и наиболее популярным способом создания видео-фона является использование HTML5 видео тега вместе с некоторыми параметрами CSS, стоит также обратить внимание на альтернативные источники видео, например, YouTube. В этом случае, вам не придется переживать о медленном ответе сервера, потому что запрос будет отправляться напрямик в YouTube.

В этой статье, я покажу вам, как можно построить клевый сайт, использующий видео с YouTube в качестве фона. Мы будем использовать jQuery.mb.YTPlayer.js для редактирования и управления внешним видом нашего видео. Итак, приступим!

Скачать исходники
Демо
Читать дальше →
Total votes 75: ↑45 and ↓30+15
Comments55

Собеседование на позицию разработчика, как оно есть

Reading time8 min
Views51K
Доброго времени суток. На данный момент я занимаю должность Senior/Team Lead IOS Developer. Так вышло, что за последний год мне довелось побывать на огромном количестве собеседований, так сказать, по обе стороны баррикад. Поэтому мне бы хотелось поделиться своим опытом и поговорить о том, как, на мой взгляд, надо проводить собеседование, ведь в общей суматохе можно упустить ряд важных моментов, что, впоследствии, может негативно отразиться на качестве собеседования.

image

Данная статья будет полезна людям, которые волею судьбы вынуждены проводить собеседования, но при этом не имеют необходимого опыта и плана, как и я когда-то. Все, что описано ниже, является выводами из большого количества проведенных собеседований. Но, как говорится, любое совпадение имен или событий с реальными являются случайностью.
Читать дальше →
Total votes 38: ↑34 and ↓4+30
Comments51

Встраиваем бэкдор в Bitcoin (ECDSA) или еще раз о клептографии

Reading time3 min
Views43K
Привет, %username%!
Пользуешься неофициальными bitcoin клиентами? Есть повод присмотреться к ним повнимательней.
После реализации бэкдора для RSA мне стало интересно, как обстоят дела с остальными криптографическими примитивами. Оказывается, целая наука под названием клептография занимается передачей информации в так называемых «подсознательных» каналах. Таких, о которых никому не известно кроме отправителя и получателя. Вроде стеганографии, только внутри криптоалгоритмов.
Читать дальше →
Total votes 61: ↑60 and ↓1+59
Comments36

Как мы дружили Neo4j и Meteor

Reading time6 min
Views7.3K

Пишем драйвер поддержки графовой базы данных Neo4j для Meteor


В Meteor любая работа с даными связана с двусторонней реактивностью. На данный момент 100% реактивностью обладают встроенная в Meteor MongoDB и Redis (оба драйвера разработаны в стенах Meteor), частично реактивность реализована для MySQL и MSSQL (сторонними разработчиками).

Для вышеуказанных баз данных реактивность реализована посредством observer'ов, которые сообщают где, как, когда и какие данные изменились, для того чтобы драйвер, обслуживающий связь [данные <-> представление], знал какие данные и у каких Клиентов обновить. Neo4j лишен каких-либо watcher'ов и observer'ов, но это нас не остановило. Как мы вышли из данной ситуации и зачем нам нужен Neo4j читайте под катом.
Вперед за реактивностью!
Total votes 11: ↑10 and ↓1+9
Comments1

Information

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