Мало кто знает, но уже несколько недель, как Mozilla обновила функцию синхронизации браузера. Было принято решение убрать неудобные секретные коды для синхронизации и пароли для восстановления утерянных ключей.
Читать полностью »
Рубрика «synchronization» - 2
Firefox вводит общий аккаунт и обновляет систему синхронизации
2014-02-13 в 14:16, admin, рубрики: Firefox, mozilla, sync, synchronization, браузеры, метки: firefox, mozilla, sync, synchronizationРеактивный манифест
2013-09-28 в 10:44, admin, рубрики: actors, akka, asynchronous, callbacks, closure, clusters, distributed computing, elasticity, erlangvm, event loops, event-driven programming, failover, fault handling, fault tolerant, functional programming, futures, http, hyperthreading, immutability, interactive, jvm, lambda, latency, load balancing, location transparency, louse coupling, multicore, multithreading, network, no side effects, observable, Observer, parallel computing, performance, play framework, promises, pure functions, push-model, referential transparency, reliability, remoting, resilience, responsiveness, rxjava, scalability, self-heal, supervisors, synchronization, thread-safety, web applications, Анализ и проектирование систем, параллельное программированиеВ последние годы требования к приложениям значительно изменились. Десятки серверов, время отклика в несколько секунд, оффлайновое обслуживание, которое могло длиться часами, гигабайты данных — такими были большие приложения буквально несколько лет назад. Сегодня же приложения работают абсолютно на всём, начиная с простых мобильников и заканчивая кластерами из тысячи процессоров. Пользователи ожидают миллисекундного времени отклика и стопроцентного аптайма, в то время как данные выросли до петабайтов.
Первоначально эту нишу занимали крупные инновационные интернет-компании типа Google или Twitter, однако такие требования к приложениям начали всплывать во многих областях индустрии. Финансовые и телекоммуникационные компании первыми начали внедрять новые практики, чтобы удовлетворить новым требованиям, а теперь подтягиваются и остальные.
Новые требования требуют новых технологий. Предыдущие решения делали упор на управляемые сервера и контейнеры. Масштабирование достигалось засчёт покупки более крутых серверов и использования многопоточности. Для добавления новых серверов приходилось применять комплексные, неэффективные и дорогие проприетарные решения.
Однако прогресс не стоит на месте. Архитектура приложений эволюционировала в соответствии с изменившимися требованиями. Приложения, разработанные на основе этой архитектуры, мы называем Реактивными Приложениями. Такая архитектура позволяет программистам создавать событийно-ориентированные, масштабируемые, отказоустойчивые и отзывчивые приложения — приложения, работающие в реальном времени и обеспечивающие хорошее время реакции, основанные на масштабируемом и отказоустойчивом стеке и которые легко развернуть на многоядерных и облачных архитектурах. Эти особенности критически важны для реактивности.
Альфа-версия SyncApp от BitTorrent будет доступна для публичного использования к концу апреля
2013-04-01 в 18:50, admin, рубрики: bittorrent, synchronization, torrent, Сетевые технологии, синхронизация, синхронизация данных, метки: bittorrent, synchronization, torrent, синхронизация, синхронизация данныхНебольшое вступление для тех, кто еще не знает: SyncApp от BitTorrent — это система синхронизации данных между разными компьютерами. В отличие от DropBox и других аналогов, у нее отсутствует серверная часть, что позволяет вам полностью контролировать приватность ваших данных. Для передачи данных используется протокол BitTorrent.
Когда я услышал об этой системе, я зарегистрировался у них на сайте (думаю, как и многие другие) для получения новостей. И вот сегодня получил письмо с извещением о том, что ранняя альфа-версия будет доступна для публичного тестирования к концу апреля. Те же счастливчики, кто зарегистрировался, получат приватные ссылки для скачивания на пару недель раньше, к середине апреля.
Перевод текста письма под катом.
Читать полностью »
А как же всё-таки работает многопоточность? Часть I: синхронизация
2012-05-28 в 3:57, admin, рубрики: concurrency, java, kernel, multithreading, scheduler, switching, synchronization, Программирование, системное программирование, метки: concurrency, java, kernel, multithreading, scheduler, switching, synchronization, ОС (пост из серии «я склонировал себе исходники hotspot, давайте посмотрим на них вместе»)
Все, кто сталкивается с многопоточными проблемами (будь то производительность или непонятные гейзенбаги), неизбежно сталкиваются в процессе их решения с терминами вроде «inflation», «contention», «membar», «biased locking», «thread parking» и тому подобным. А вот все ли действительно знают, что за этими терминами скрывается? К сожалению, как показывает практика, не все.
В надежде исправить ситуацию, я решил написать цикл статей на эту тему. Каждая из них будет построена по принципу «сначала кратко опишем, что должно происходить в теории, а потом отправимся в исходники и посмотрим, как это происходит там». Таким образом, первая часть во многом применима не только к Java, а потому и разработчики под другие платформы могут найти для себя что-то полезное.
Перед прочтением глубокого описания полезно убедиться в том, что вы в достаточной мере разбираетесь в Java Memory Model. Изучить её можно, например, по слайдам Сергея Walrus Куксенко или по моему раннему топику. Также отличным материалом является вот эта презентация, начиная со слайда #38.
Читать полностью »
Проект Lombok, или Объявляем войну бойлерплейту
2012-04-18 в 20:58, admin, рубрики: boilerplate, java, synchronization, метки: boilerplate, java, synchronization Открою не Америку, но шкатулку Пандоры: в Java-коде много бойлерплейта. Типовые геттеры, сеттеры и конструкторы, методы ленивой инициализации, методы toString, hashCode, equals, обработчики исключений, которые никогда не выбрасываются, закрывалки потоков, блоки синхронизации. Проблема заключается даже не в том, чтобы написать всё это — современные среды разработки справляются с такими задачами нажатием нескольких клавиш. Сложность в поддержании бойлерплейта в актуальном состоянии по мере внесения модификаций в код. А в некоторых случаях (многопоточность, реализация методов hashCode и equals) и сам шаблонный код написать без ошибок — далеко не простая задача. Одним из решений проблемы является генерация кода, и в этой статье я расскажу про проект Lombok — библиотеку, которая не только может избавить вас от бойлерплейта, но и сделать это максимально прозрачно, с минимальной конфигурацией и, что немаловажно, с поддержкой на уровне среды разработки.
Читать полностью »
Рабочие потоки — синхронизационный канал
2012-04-05 в 19:00, admin, рубрики: c++, multithreading, SyncChannel, synchronization, WinAPI, Проектирование и рефакторинг, системное программирование, метки: multithreading, SyncChannel, synchronization, WinAPIПредставте себе типичное приложение:
Есть рабочий поток движка, выполняющий какую-то функциональность, допустим копирование файлов.
Данный поток должен периодически сообщать информацию о текущем копируемом файле, а также уметь обрабатывать ошибки, допустим ошибка нехватки места на диске.
Графический интерфейс такого приложения должен позволять запускать процесс копирования файлов, уметь приостановить копирование, а также, в случае ошибки, отобразить соответствующий диалог с вопросом к пользователю.
Казалось бы, как можно допустить ошибку в такой типичной ситуации?
Читать полностью »
Организация рабочих потоков: синхронизационный канал
2012-04-05 в 19:00, admin, рубрики: c++, multithreading, SyncChannel, synchronization, WinAPI, Проектирование и рефакторинг, системное программирование, метки: multithreading, SyncChannel, synchronization, WinAPIПредставте себе типичное приложение:
Есть рабочий поток движка, выполняющий какую-то функциональность, допустим копирование файлов.
Данный поток должен периодически сообщать информацию о текущем копируемом файле, а также уметь обрабатывать ошибки, допустим ошибка нехватки места на диске.
Графический интерфейс такого приложения должен позволять запускать процесс копирования файлов, уметь приостановить копирование, а также, в случае ошибки, отобразить соответствующий диалог с вопросом к пользователю.
Казалось бы, как можно допустить ошибку в такой типичной ситуации?
Читать полностью »