Pull to refresh
-8
0
Иван Левашев @OCTAGRAM

Удалённый программист Delphi+Ada

Send message

Да есть разработчики, которые упорно тащат UUIDv5 в БД, так как у них в источнике данных строка, а в БД у них уже UUID ("исторически так сложилось").

О, даже так. Ну, я в шоке с них.

Просто если не самый новый Постгрес брать, там ничего встроенного, кроме UUIDv4, не было. И если Delphi взять, там ничего, кроме UUIDv4, из коробки нет. И так типично повсюду. Это надо специально заморочиться, чтобы какой-то другой UUID появился, ну вот я и подумал, что тот, кто заморочился, отдаёт себе отчёт, что делает. Когда я заморачивался с UUIDv5 в Delphi, я отдавал себе отчёт.

внутри одной таблицы совместимы UUID любых версий

Имелась в виду не принципиальная возможность набить как в бочку селёдки, а только дружественная к производительности.

Да, есть такая проблема, но она успешно решается в современных СУБД.

Ну, если она и правда так успешно решается, то нет применения v7, когда есть v4, а кто-то изобретательный ещё любит v5 в первичных ключах.

Я бы добавил: вставка записи с первичным ключом UUID

Очень странно, что вы пишете про UUIDv1-5. Я думаю, большинство не знало ни о чём, кроме UUIDv4.

А UUIDv3 и UUIDv5 суть MD5 и SHA-1 от строки, посоленной UUID пространства имён, и их смысл в том, чтобы повторяемо преобразовывать одну и ту же строку в один и тот же UUID. Например, параметризованные интерфейсы Windows Runtime обладают PIID, который по традиции может быть UUIDv4, а специализации интерфейсов имеют IID, вычисленный как UUIDv5 от специально составленных машинных строк с участием PIID и закодированных типов-параметров. Ну и ещё там участвует, конечно, пространство имён специализированных интерфейсов. Это я всё расписал к тому, что в Windows Runtime понятно, как и зачем повторяемо вычислять UUIDv5, а в базе данных применять UUIDv5 почти то же самое, что применять строку в качестве первичного ключа, но если у вас на примете есть строка, подходящая на роль первичного ключа, то почему бы не взять её напрямую.

В UUIDv4 первые шесть байтов заполнены случайно. В UUIDv7 первые шесть байтов заполнены 48-битным временем в миллисекундах с потенциально каким-то смещением. Можно от эпохи Юникс, но стандарт допускает смещение, и тогда это просто какое-то миллисекундное время. Среди прошлых UUIDv4 случайные значения как-то по Пуассону заполнили диапазон, а когда мы начинаем подмешивать UUIDv7, то они интенсивно заполняют очень узкую полосу значений, и всё, что оказалось правее, становится практически вечными кандидатами на смещение. Если не сдвигать время, справа оказывается чуть менее, чем всё.

Устаревшим можно считать UUIDv1, заменённый на UUIDv6 с единственным отличием в порядке байт, чтобы сделать UUIDv1 лексикографически возрастающими со временем. Кто хотел лексикографическое возрастание, вряд ли бы взял UUIDv1, в котором этого свойства не было.

Устаревшим можно считать UUIDv3 (MD5), так как есть UUIDv5 (SHA-1), но если где-то уже принято использование UUIDv3, то от него не представляется возможным отказаться. А UUIDv5 не устарел, замены-то ему нет. Но в базе данных ни то, ни другое вряд ли встретишь из-за их антисуррогатной природы, а на месте UUID в базе данных обычно ожидаются суррогатные ключи. И UUIDv4 не устарел, другое дело, что мы можем больше не хотеть писать UUIDv4 именно в базу данных.

Устаревшим можно считать ULID, с которого и начался сыр-бор с отказом от UUIDv4. У ULID нет номера. Ну или номером ULID можно считать UUIDv7, который его стандартизирует.

Нельзя однозначно считать устаревшим UUIDv6, который просто поменял порядок байт UUIDv1, и больше ни на какую новизну не претендовал. Я так понял, кому-то очень полезно, что в UUID штампуется идентификатор узла, и они осознанно применяют UUIDv6, а не UUIDv7.

Если не использовать сдвиг времени, то ULID, UUIDv6 и UUIDv7 совместимы внутри одной таблицы.

Ну как смело. Работать это будет, но что по сути происходит. Весь этот UUIDv7 сделан для того, чтобы таблица росла по возможности всегда с конца. Тогда не приходится раздвигать записи. Если смешивать разные UUID, тогда снова начинаем раздвигать записи.

Сейчас активно ищу ноут на 486/586 для тестов

Hand386 собирает любитель. Минус, что 386. Плюс, что ISA можно из него наружу вытащить. Не очень понял, подходит ли к нему плата AdLib, или это только для Book8088. Кроме AdLib, встроенного звука там быть не может, но хоть через ISA можно подключить всякое

Учить надо не только ассемблер, но ещё и https://koapp.narod.ru/tehlit/hardware/27videoega/ega_1.htm

А что про UEFI программирование? Уже сделали UEFI Commander и тетрис

Тачскриновые кнопки как-то не очень. Лучше как была панель 123456789, так и воспроизвести. Как ожидают игры J2ME и N-Gage 2.0

И как по волшебству из корпуса вырастут недостающие кнопки?

хотелось как-нибудь свою ISA-карту расширения изобрести

Во что вы её собираетесь вставлять? Присматриваюсь к Orpheus II, но ужасаюсь, что её почти не во что ставить, техника исчезает

Меня удивляет, как выходят мобильные ретроконсоли. Достаточно добротная Retro Genesis 3000 Port, например, особенно, после шаманства с ini. И уже по внешнему виду понятно, что J2ME там ждать не приходится, как и N-Gage 2.0. Выходят всякие FPGA-приставки. Analogue Pocket. Та же беда. В их представлении мобильный гейминг был на GameBoy и GameBoy Advanced, и это разительно отличается от наших воспоминаний про мобильный гейминг.

На Evercade выпустили коллекцию игр про Duke Nukem, но как-то упустили Duke Nukem Mobile. Типично.

Есть для ArcaOS и приложение Odin, которое позволяет запускать 32-битные приложения для Windows.

Интересно, как он поддерживает Supermium

Достоинство её в том, что она способна выполнять программы для оригинальной ОС, а также DOS и 16-битные приложения Windows, Java-приложения

Да, для DOS тоже было бы интересно посмотреть. Там вроде бы не просто встроенный DOS, а достаточно продвинутый MVDM с эмуляцией железа со всякими сторонними плагинами вплоть до MIDI эмуляции.

Когда уже придумают имитацию выданных разрешений

В 2009м был ещё NorthTek Gecko Surfboard на базе XCore86 (Vortex86)

Существует ещё SEGA с клавиатурой SC-3000, но архитектура не Genesis/Mega Drive. 8-bit и, я так понимаю, не совместим с Sega Master System. 2kb RAM что там, что тут. Ну это просто приговор попыткам попрограммировать.

Вот с программатором совсем другое дело, с программаторами китайцы здорово порезвились, и танки на просторах СНГ были их модификацией.

Виноват ли гугл, что сделал на основе XMPP работающую версию, а потом и вовсе забил на обратную совместимость?

Да, тут, скорее, виновато государство, самоустранившееся из IT. Одно государство отказалось от социализма, а другое — от кейнсианства. Третьи как ели груши, так и едят.

ARPAnet был проектом министерства обороны. Основатели Интернета Винт Серф, Боб Кан и Джон Постел работали в Университете Калифорнии (государственном). Их протоколы воплощены в Berkeley Software Distribution, что толсто намекает, в каком университете это делалось. В Университете Беркли, надо же, тоже государственном. Гипертекст был изобретён сотрудником ЦЕРН, который поддерживается многими государствами. Линукс был написан студентом Университета Хельсинки, государственного. Многие трансляторы содержат в своём названии имя университета, откуда происходят. Например, GNAT из Университета Нью-Йорка. Этот университет частный, но заказчиком выступили военно-воздушные силы. Как и заказчиком языка Ада выступило минобороны.

Тем временем история СССР как будто подчищается, маловато в Сети информации, книг мало сканируется, но, например, осталось такое:

А про идентификаторы такое вспомнила.

Меня, когда началось проектирование Ады, откомандировали в тот коллектив. Это была совместная работа 8-й и 3-й лабораторий. Очень долго обсуждали, как именовать процедуры и функции. В конце концов, решили, что процедуры, которые призваны изменять состояние, должны в названии содержать глаголы, а функции обойдутся без них. И тут выяснилось, что Сергей Запреев, который семинары игнорировал, уже все запрограммировал в своей части, присвоив имена объектам и процедурам, как ему захотелось. А вот Виктор Кораблев в именах процедур экономил гласные. Получилось "открть", "зкрть", "схрнть" и т.п. Причем Виктор гласные экономил и в других местах. У него имя на Эльбрусе было КРБЛ8.

Хорошо быть Сергеем Запреевым. Совсем неплохо. Замечательно. А где же он творил так здорово? НФ ИТМ и ВТ АН СССР. Снова орган государства.

Ещё мне понравилось интервью Никлауса Вирта, особенно, вот этот фрагмент:

Его руководство по применению «Паскаля» было переведено на многие языки и до сих пор остается бестселлером, но денег за это Н. Вирт практически не получает. «У меня, собственно, никогда не было цели разбогатеть. Я просто получал удовольствие от исследовательской работы, кроме того, мне в Высшей технической школе и так платили довольно хорошо», — говорит Н. Вирт, и это звучит вполне искренне.

Почему-то мы уже давно не слышим новых таких историй, ни на Западе, ни в России. Вот, например, кому бы поручить разработку отечественной операционной системы? Это же системное программирование, а кто у нас главный в стране за системное программирование? Может быть, ИСП РАН подойдёт. Или ИТМ и ВТ по старой памяти. Но нет, почему-то отечественные операционки закупаются у коммерсов. Ну и зачем сейчас даже пытаться пробиться в ИСП РАН, если операционку закажут не нам.

Даже ГОСТы на языки программирования не может государство актуализировать. Последний ГОСТ на Паскаль состоит из четырёх страниц, и на самой интересной странице «настоящим стандартом следует считать ISO такой-то». Таких четырёхстраничных ГОСТов можно понапринимать, хотя бы чтобы все языки из госзаказов, из допобразования на ГосУслугах и из ЕГЭ были по ГОСТу, чтоб не чёрт-те чему учили, а чему-то понятному стандартному. Некому прикрыть срам.

Самоустранилось государство от инфрастуктурной деятельности, перестало производить общественные блага, остались только барыги, и крутитесь там как хотите. Вот ты, допустим, пекарь, и если к твоей пекарне не проехать, не пройти, купи спецтехнику и проложи асфальт к своей пекарне. Поверь в себя, вон, посмотри, ИКЕЯ даже автобусные маршруты к себе пустила, и ты тоже так сможешь. Каждый пекарь со своим асфальтом.

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

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

Какой посоветуете клиент NNTP «победителям пылесборников», как они про себя думают, особенно, владельцам устройств iOS. С поддержкой PUSH.

Программы-клиенты уже у всех пользователей установлены, либо устанавливаются за минуту.

Ах, да, у них же на iOS клиент NNTP уже установлен, и даже с PUSH. Хм, странно, никогда не слышал про предустановленные NNTP-клиенты на iOS, и даже про устанавливаемые за минуту не слышал.

Поднять nntpd и Majordomo - делов на пару минут.

А вот этот nntpd для каких платформ поддерживает PUSH? Ведь армии «победителей пылесборников» нужен PUSH, а без PUSH они подадутся в рабство, но любая цена, и даже корпоративное рабство, оправдана, чтобы «победить пылесборники».

Все протоколы давно написаны

Я ставил шлюзы RSS2NNTP и вебморду, чтоб это можно было комментировать локально. Прочитали — обсудили. А то чё-то даже до массовой войны с пылесборниками негусто было энтузиастов NNTP. Даже в студенческой локалке, с 2 руб./Мб за внешний Интернет, всё равно как-то недостаточно мотивировало других студентов.

Можно запариться с форматированием flowed text (это когда пробел в конце строки значит, что следующая строка продолжает эту), и всё это не очень когерентно работает в софте. Всё равно кто-то при цитировании сделает trim, и тогда строка не оканчивается на пробел, и тогда текст становится отдельными строками. А если ещё раз процитировать, то дополнительный уровень цитаты переполнит длину строки, и одно слово вывалится на следующую строку, и будет там в одиночестве.

Редактирование в NNTP существует вроде бы, но надо бы каждый конкретный софт проверять. Обзора тем нет. Надо грузить все посты, и клиент, предположительно, рассортирует посты по темам.

Поднять nntpd и Majordomo - делов на пару минут.

А ещё вы совсем ничего не написали про авторизацию. И про регистрацию. Не через e-mail, который, такое впечатление, далеко не все читают, а через PUSH и SMS. Хотя я бы ещё добавил ЕСИА и смарт-карты.

Шансы NNTP сильно повышаются, если сделать шлюз IMAP2NNTP. То есть, чтоб как будто свой почтовый ящик проверяют. Клиенты IMAP действительно более-менее повсеместны. Но рулить подписками тогда надо как-то в обход, и остаются все прочие проблемы.

Почему, кстати?

буду пилить другой open source

Более фундаментальный, и без него и гипотетическую соцсеть пилить больнее, чем хотелось бы

Основная часть протоколов известны: это STUN и TURN, а все вместе они дают работать WebRTC. Я бы в 2023 не стал начинать такой сетевой проект без WebRTC как фундамента. Большинство функционала должно быть доступно из браузера, а в случае WebRTC ещё и сам браузер может побыть сервером.

Остаётся некий базовый набор функций, для которых вынь да положь белый порт, и это обнаружение точек входа WebRTC. Там нечто вроде адреса, рецепт подключения так и сяк, и вот этот адрес хотя бы один как-то обнаружить надо.

Да, говорят, пуш сильно повлиял. Вот почему-то бомбусу не нужен был пуш, а другим почему-то нужен. Они типа новее, но на поверку хуже, не могут того, что могла J2ME с бомбусом.

Помню, как рассматривал возможность перезапустить форум. И, чтобы идти в ногу со временем, перезапустить его уже не как форум, а как соцсеть. И импортировать в неё пользователей, старые посты и комментарии, распарсив старый форум. Однажды все пользователи форума проснулись бы в Федиверсе. А Федивёрс проснулся бы подросший на 60000 пользователей. Так я мечтал.

Поизучав совместимость софта и протоколов, выбрал HubZilla. Всё кончилось в тот момент, когда начал пользователей массово подписывать на группы (заменившие собой разделы форума). Уже где-то на тысячном подписчике нагрузка на процессор подскочила до 100% и с тех пор не падала. Я всё ждал, может, это одноразовая работа доделается и закончится, но нет, сервер помирал на какой-то несчастной тысяче, работал как вечный двигатель наоборот. Да обычный форум держал 60000! И это не предел

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

Ну или не кретинами, но пусть энтузиастами, которым за счастье изобразить Федиверс для полторы калек, а на 60000 масштабировать просто некогда. Проблема ограниченности энтузиазма. Я вот себя кретином не считаю, но я же не могу засесть пилить соцсеть.

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

1
23 ...

Information

Rating
Does not participate
Location
Воркута, Коми, Россия
Date of birth
Registered
Activity