Рубрика «синхронизация» - 5

С 30 января 2013 года только пользователи пакетов Google Apps for Business, Google Apps for Education и Google Apps for Government могут подключить синхронизацию Google Sync на мобильных устройствах.

Технология Google Sync предназначена для синхронизации почты, контактов и календаря через протокол MS Exchange ActiveSync. Например, благодаря синхронизации мобильный телефон выдаёт оповещения о приходе новой почты. MS Exchange ActiveSync — это проприетарный протокол, за использование которого нужно платить лицензионные отчисления в Microsoft.

Читать полностью »

Работа с временем в Google
Высокоточный рубидиевый осциллятор PRS10

Компания Google решила отказаться от использования NTP (Network Time Protocol) и создала свою собственную систему проверки времени с GPS и атомными часами, более точную и надёжную. Её назвали TrueTime API. Система работает для обеспечения целостности крупнейшей в мире базы данных Google Spanner, распределённой по всему миру.
Читать полностью »

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

Поскольку ошибки, связанные с синхронизацией потоков крайне сложно отлаживать, то самым эффективным способом тут является предупреждение этих самых ошибок. Для этого используются различные парадигмы программирования на разных уровнях абстракции. Нижним уровнем абстракции будем считать работу с объектами синхронизации (критические секции, мьютексы, семафоры). Верхним — такие парадигмы программирования, как Futures and promises, STM (software transactional memory), обмен асинхронными сообщениями и т.п. Верхний уровень абстракции зачастую всегда основан на нижнем.

В данной статье я поделюсь своим стилем написания кода на нижнем уровне абстракции. Поскольку я дельфист, то все примеры будут на Delphi, однако все нижесказанное справедливо и для других языков программирования (позволяющих работать с объектами синхронизации конечно)
Читать полностью »

Есть такой сайт — РосЯма. Когда-то давно о нём даже писали на хабре. Я его поддерживаю и хочу поделиться решением одной маленькой проблемки, с которой столкнулся в процессе. Возможно, кому-то это будет интересно.

Ну так вот. На РосЯме есть два справочника, которые обновляются из внешних источников. Это справочник подразделений ГИБДД и справочник региональных Прокуратур. Они заполняются данными из официальных сайтов ГИБДД и Генпрокуратуры. Однако данные на этих сайтах иногда оказываются ошибочными (например индекс Нижегородского ГИБДД), а иногда обновляются недостаточно оперативно. И пользователи сообщают нам об этом, поскольку хотят пользоваться актуальными данными.

В классической системе простого зеркалирования данных с официальных сайтов эта проблема неразрешима. Либо мы отказываемся от регулярных обновлений и все пользуются неверными данными, либо наши правки будут затёрты очередным обновлением.

Читать полностью »

Мне по работе часто приходится сталкиваться с высоконагруженными многопоточными или многопроцессными сервисами (application-, web-, index-server).
Достаточно интересная, но иногда неблагодарная работа — оптимизировать все это хозяйство.
Растущие потребности клиентов часто упираются в невозможность просто заменить железную составляющую системы на более современную, т.к. производительность компьютеров, скорость чтения-записи жестких дисков и сети растут много медленнее запросов клиентов.
Редко помогает увеличение количества нодов кластера (система как правило распределенная).
Чаще приходится запустив профайлер, искать узкие места, лезть в source code и править ляпы, которые оставили коллеги, а иногда и сам, чего греха таить, много лет назад.
Некоторые из проблем, связаных с синхронизацией, я попытаюсь изложить здесь. Это не будет вводный курс по многопоточному программированию — предпологается, что читатель знаком с понятием thread и context switch, и знает для чего нужны mutex, semaphore и т.д.
Читать полностью »

Удивительно, но на Хабре до сих пор никто не посвятил отдельной статьи сервису Cubby. Скромное творение компании LogMeIn совсем потерялось на фоне весеннего «облачного бума», когда свои сервисы для синхронизации файлов в «облаке» почти одновременно запустили Google, Яндекс и Microsoft. А между тем, у Cubby есть несколько интересных особенностей, которые заслуживают внимания.
Читать полностью »

Написать интересную статью на техническую тему очень сложно. Приходится балансировать между тем, чтобы не скатиться в технические дебри и тем, чтобы совсем ничего не сказать. Сегодня я попробую в общих словах (без деталей) поговорить о том, как обстоят дела с разработкой многопоточных desktop-приложений в не столь популярной на сегодняшний день, но наверняка знакомой многим российским разработчикам среде Delphi. Статья ориентирована на НЕ новичков в программировании, являющихся при этом новичками в области создания многопоточных приложений.
Читать полностью »

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

У Яндекс.Диска есть отдельные клиентские программы для ОС Windows и Mac OS X, которые поддерживают локальную копию файлового хранилища. Это невероятно удобно! Надо отдать должное Дропбоксу, который, кажется, первым предложил именно такой способ использования облачного файлового хранилища.

Для Линукса клиента нет, но зато Яндекс.Диск поддерживает доступ к файлам по открытому и отлично себя зарекомендовавшему за многие годы протоколу WebDAV. Поддержка WebDAV в ядре Линукса позволила относительно малой кровью создать прототип синхронизирующего клиента Яндекс.Диска.

Текущая версия доступна на гитхабе — это примерно 130 строк кода на Перле, а здесь я очень кратко расскажу, как она устроена и работает.

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

Читать полностью »

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

У Яндекс.Диска есть отдельные клиентские программы для ОС Windows и Mac OS X, которые поддерживают локальную копию файлового хранилища. Это невероятно удобно! Надо отдать должное Дропбоксу, который, кажется, первым предложил именно такой способ использования облачного файлового хранилища.

Для Линукса клиента нет, но зато Яндекс.Диск поддерживает доступ к файлам по открытому и отлично себя зарекомендовавшему за многие годы протоколу WebDAV. Поддержка WebDAV в ядре Линукса позволила относительно малой кровью создать прототип синхронизирующего клиента Яндекс.Диска.

Текущая версия доступна на гитхабе — это примерно 130 строк кода на Перле, а здесь я очень кратко расскажу, как она устроена и работает.

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

Читать полностью »

Синхронизация вКонтакте с адресной книгой для iPhone. Как это делалосьПредыстория приложения — на андроидофонах при установке приложения ВКонтакте есть возможность использовать его как провайдер контактной книги — синхронизировать контакты из соцсети с контактами в адресной книге. При этом тянется аватар, дата рождения, адрес, телефоны и т.д. Когда я после длительного использования HTC Wildfire S оценил и настолько привык к этой возможности, что захотел найти подобное на айфон. Не нашел, поэтому мы взяли и сделали свое — Синхронизатор вКонтакте :)
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js