|
Какой рейтинг вас больше интересует?
|
Главная /
Каталог блоговCтраница блогера Журнал Витуса./Записи в блоге |
|
Журнал Витуса.
Голосов: 2 Адрес блога: http://vitus-wagner.livejournal.com/ Добавлен: 2008-02-19 12:48:41 блограйдером Lurk |
|
Концепция владельца данных
2015-09-10 11:12:34 (читать в оригинале)В традиционной парадигме 70-х годов у данных, которые лежат на диске владельца (не в смысле пользователя в многопользовательской системе, а в смысле какого-то куска программного кода) нет.
Приходи кто хочешь, бери файл, копируй, перемещай, меняй в нем байтики.
И у этого подхода есть масса преимуществ. Во-первых, прекраснореализуется toolbox phylosophy. Во-вторых, авторам приложений не нужно думать о поддержке таких операций как бэкап, или о способах передачи данных по сети - это можно поручить отдельным программам - сетевым FS, ftp-клиентам и т.д, и они прекрасно справятся с любыми данными.
Но чего-то в этой парадигме не хватает, и ее постоянно пытаются поломать. Из тех примеров, с которыми приходилось сталкиваться лично мне, первым была MacOS classic, с атрибутами creator и owner у файла. Концепция была, конечно. сильно кривая и мешала, когда нужно обрабатывать некие данные несколькими программами.
Но тем не менее, почему-то подобные концепции постоянно пытаются пролезть в энд-юзресккие операционные системы. Причем не только в виде необязательных настроек вроде ассоциации расширений с приложениями.
Вот в Андроиде, например, появился механизм Intents, который позволяет опять же работать в парадигме тулбокса, но уже над набором приложений-обработчиков данных, а не файлов. Ему, правда не хватает стандартизованных механизмов для бэкапа и обмена данными с другими устройствами, но это задумка такая - привязать пользователей к чужим облачным сервисам, чтобы нельзя было список покупок с компьютера на телефон скопировать, не пропусти в его через индексатор фирмы, торгующей контекстной рекламой.
Или для обмена данными по шнурку вместо избыточно низкоуровневого для этой цели USB Storage используют не протокол уровня файловой системы (SMB, например), а какой-нибудь PTP или MTP.
Если вдуматься, то вообще-то клиент-серверные базы данных и всякие веб-сервисы это примерно то же самое. Вместо того, чтобы хранить данные в файловом хранилище, к ним приделывают процесс, который реализует свою собственную политику доступа, и реализуют какой-то протокол взаимодействия с этим процессом. Иногда не один - вот у ЖЖ, например. есть один протокол для доступа из браузера, а второй - API для всяких программ-клиентов.
Я регулярно сталкиваюсь с описаниями OpenSource проектов, которые норовят использовать D-Bus в качестве аналога андридных интентов и передавать по ней данные от процесса-владельца данных к процессу-потребителю данных. Получается, естественно, плохо. Но упорство таких попыток о чём-то свидетельтсвует.
Я вот тут задумался над вопросом, а какая нужна надстройка над протоколом, подобным интентам, чтобы реализовать те полезные возможности файловой системы, которых нас лишает андроид, стремящийся максимально изолировать приложения друг от друга.
1. Нужен стандартизированный протокол бэкапа. То есть любое приложение, которое хоть что-то хоть где-то хранит (ну кроме очень специальных случаев вроде HSM, должно поддерживать операцию "скачать всё" и, по возможности - "скачать изменения со времен такого-то бэкапа", а также "восстановить вот это".
В принципе, даже HSM-ы можно бэкапить, если предусмотреть защиту бэкапа секретом, который хранится где-то отдельно от бэкапа.
2. Нужен стандартизованный object sharing протокол. Что-то вроде того же PTP или MTP - посмотреть какие объекты есть в библиотеке у данной программы, вытащить указанный объект в виде, пригодным для того, чтобы скормить аналогичному приложению на другом устройстве, положить объект.
Возможно, в обоих случаях нужно поддерживать что-то типа rsync-протокола, то есть возможность передачи по кускам с контролем целостности.
Ну и нужен качественный набор паттернов разделения менеджера данных и приложения с пользовательским интерфейсом. Хотя все равно хрен соблюдать будут. В мире где наиболее распространенным языком является php, созданный для того, чтобы смешивать логику и представление, идея разделения этих двух сущностей будет оставаться благим пожеланием.
Upd А придумает ли кто-нибудь третий случай операции кроме "забэкапить все" и "поделиться избранным", применимый к ЛЮБОЙ информации хранящейся на устройстве? (понятно что варианты "открыть в соответствующем приложении" и "стереть нафиг" не в счет).
This entry was originally posted at http://vitus-wagner.dreamwidth.org/1120256.html. Please comment there using OpenID. Now there are
База данных - не единственный способ организовать дурацкий поиск
2015-09-09 15:15:08 (читать в оригинале)Напоролся тут на ограничения SQLite. Выяснилось что она совершенно не работает при наличии нескольких процессов, которые одновременно пишут в базу. Ну то есть, для начала пришлось лочить базу внешними по отношению к ней средствами. В таком режиме оно перестало вылетать по Database is locked, но при 4 активных процессах тянуло примерно 2 транзакции в секунду. Поменял базу на настоящую, в смысле на PostgreSQL, на том же железе производительность возросла на порядки. Ну то есть минимум на два. А больше я не тестировал. Учитывая что на том же компьютере крутилиись и скрипты, создающие нагрузку, и пользователсякая сессия.
Но сам процесс замены оказался неожиданно трудоемким. Всего-то там было 7 или 8 табличек, считая классификатор (он был только у одного поля). Но синтаксическая всеядность SQLite, которую я так хвалил, сыграла со мной дурную шутку. Выяснилось что где-то у меня в поле NUMERIC хранился текст, а sqlite и пофиг, где-то неправильно были прописаны referential integrity constraints, а она их вообще игнорирует (впрочем, я помню времена, когда Postgres вел себя так же), специальных полей для дат и логических значений там нет, поэтому и то и другое хранилось в виде integer, а psycopg2 почему-то обиделся на попытку вставить результат питоновского логического выражения в поле типа integer. В общем на перенос жалких 2600 строк кода потратил целый день. Зато производительность возросла на пару порядков.
This entry was originally posted at http://vitus-wagner.dreamwidth.org/1120090.html. Please comment there using OpenID. Now there are
Мототехническое
2015-09-05 14:47:48 (читать в оригинале)Сегодня посадил ребенка на мотоблок с прицепом. Мотоблок в таком режиме - почти идеальная машина для обучения ребенка вождению.
1. Одноместная. Ребенок чувствует себя самостоятельным
2. Едет со скоростью пешехода
3. Все органы управления вполне досягаемы для идущего рядом взрослого.
4. Ездит по огороду, где никакого постороннего траффика кроме кота, а тот пускай сам свой хвост бережет.
5. Ребенок прекрасно понимает, что это - не игра, а серёзные сельскохозяйственные работы.
Вывод - руки коротки. В смысле, повороты с нормальным разиусом требуют несколько большей длины рук чем у Артура сейчас. Ну ничего, за зиму подрастет, будет справляться. И надо качать кисти рук - а то сцепление одной рукой ему выжать тяжело. А там сцепление чуть ли не главный орган управления.
В общем, ребенок метров пятнадцать проехал самостоятельно, чем был очень горд - вывозит с огорода настоящую ботву на "настоящем грузовике".
This entry was originally posted at http://vitus-wagner.dreamwidth.org/1119846.html. Please comment there using OpenID. Now there are
К вопросу о мирном космосе
2015-09-05 09:57:38 (читать в оригинале)Направил на конкурс на название нового российского космического корабля название "Мирный". С мотивировкой "Потому что Восток уже был".
This entry was originally posted at http://vitus-wagner.dreamwidth.org/1119594.html. Please comment there using OpenID. Now there are
Фэнтезийное программирование
2015-09-05 00:23:00 (читать в оригинале)ТУт в одном ЖЖ словил совершенно замечательный образ: представтье себе, что похмельный программист сталкивается с эльфом, а тот тоже оказывается программистом (и тоже с похмелья).
Вот я и задумался - как известно у эльфов вся культура и, в частности стиль мышления, заметно отличаются от человеческих. Как вы полагаете, какие парадигмы и стили программирования будут предпочитать эльфы? А гномы? А орки?
This entry was originally posted at http://vitus-wagner.dreamwidth.org/1119389.html. Please comment there using OpenID. Now there are
Категория «Религия»
Взлеты Топ 5
|
| ||
|
+87 |
119 |
ershow |
|
+85 |
94 |
Annelle |
|
+83 |
92 |
Сергей Каменев |
|
+76 |
149 |
_Музыка_Души_ |
|
+73 |
91 |
yashar |
Падения Топ 5
|
| ||
|
-1 |
6 |
Дневник белого колонизатора |
|
-5 |
155 |
Bill4iam |
|
-5 |
70 |
Новый завет |
|
-19 |
76 |
Планета Земля |
|
-19 |
12 |
ГОРОСКОП |
Популярные за сутки
Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.
взяты из открытых общедоступных источников и являются собственностью их авторов.

