Обновить
-6
Иван Левашев@OCTAGRAM

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

11
Подписчики
Отправить сообщение
Очень радует такое начинание. Давно назрело, и лучше поздно, чем никогда.

У меня осталось два вопроса.

На ноутбуки и ПК с Windows будет установлен «МойОфис Стандартный. Домашняя версия».


Этот софт стоит денег. Лицензии OEM или как у кое-какого другого офиса, который просит доплатить, иначе открывает только на чтение?

Второй вопрос: со всеми этими предустановками смогут ли пользователи в кой-то веки открывать сайты с сертификатами ГОСТ? Хочу себе купить такой здесь, не маяться, не переводить документы у нотариусов, чтоб всякие заграничные шаражки их соизволили проверить. Зачем это всё, если у нас свой ГУЦ МинКомСвязи есть. Всё жду не дождусь, когда государство будет хоть что-то делать, чтоб эти сертификаты работали. И на счёт Яндекс.Браузера у меня как раз некоторые сомнения имеются. Этот редиска просто сказал, что без платного КриптоПРО он сайт ГОСТ не откроет. Вот и интересно, их додавили, чтоб они из коробки начали работать как следует или ещё нет. В принципе, если сначала додавить, а потом предустановить, или если сначала предустановить, а потом додавить, и он после автообновления научится нормально работать, результат одинаковый.
Это не их откопали, а они откопались. А почему нет? У них там обновления под новые веяния, голосовые сообщения и всё такое. И они в этот реестр попросились. Ну и всё.
Владельцы доменов SU смотрят с недоумением на администраторов YU и EU
Расскажу свой опыт с Hubzilla. Есть некий форум, на нём несколько тысяч человек. Но это же форум. 2021? Форум? Вот захотелось его «сконвертировать» в соцсеть, и, кажется, у Hubzilla мосты лучше всех налажены с другими соцсетями. Тысячи людей однажды проснулись бы в Федиверсе. Так думал я. Составил план, как я буду переносить посты. С точки зрения Hubzilla все посты — посты, а на форуме есть посты, а есть темы, и надо это всё проецировать как-то. Ну ничего, разберёмся.

Зарегал всех пользователей. Сделал канал форума. Начал подписывать все несколько тысяч на форум. И тут сервак начало таращить. То Master/Daemon.php Onepoll, то Master/Daemon.php Queue, кучей сидят, наваливаются и кладут сервер с базой. Уж я и опкеш для PHP CLI включал на файловой системе, и SSL в PostgreSQL отключал, и буфера PgSQL увеличивал. Всё без толку. В базе нет почти ещё ни одного поста, а сервер постоянно загружен на 100%. 3 тысячи транзакций в секунду без остановки. Что же будет, если загнать в систему посты. Я так понимаю, это связано с тем, что по своим нуждам Хабзилла постоянно вытаскивает полный список контактов, и пересылать эти несколько тысяч тупо долго, и сериализовать и парсить тупо тяжело. Подобный софт, наверное, может нормально работать только если социальный граф лежит в памяти процесса, и это не может быть PHP. А всё самое вкусное с точки зрения связности — на PHP.

Второй подвох — это то, что форумы-группы-сообщества — это отнюдь не само собой разумеющаяся возможность. Их часто тупо нет. И на Fediverse Party я даже галочки такой не вижу для фильтрации. А в Хабзилла это очень свежая возможность пятой версии. Я-то думаю, почему в Zot API нет нормальной возможности постинга на стену форума. А как посты-то загонять тогда в систему? Опять через вебку, что ли? Видимо, тупо не успели ещё сделать.

100% загрузка CPU хоронит всю идею. Такому софту не могу доверить данные.
Как-то грустно у них с виджетами для вебмастера. Интересует, в первую очередь, чтоб уведомления показывались не только лишь на странице соцсети, но так же и на произвольном собственном сайте. А также виджеты сообщества, чата с администрацией, и прочее, что есть у ВК, FB.
Как на счёт того, чтобы обсудить СТАРЫЕ проекты?

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

web.eecs.umich.edu/~weimerw/p/p232-condit.pdf

Под него портировали sendmail, ftpd, bind. И где это всё? Куда пошли эти достижения?

Вот есть ACSL, но единственный инструмент, который с ним работает, это верификатор Frama-C, то есть, программа должна быть верифицируема, а это надо с нуля уметь так писать. Нет инструмента, чтоб с тем же синтаксисом добавлять языковые проверки.

После того, как код на Си инкрустирован CCured и аннотациями ACSL, его можно было бы автоматом переводить в более безопасный язык программирования, такой, как Ада. Ну и кто этим занимается.

Как вышел профессор Некула на пенсию, так и заглохло всё с CCured.
/var/lib/knot/zones/objective.pe.zone.gen.sh:
#!/bin/sh

NOW_DATE_TIME=`date -u +'%Y%m%d%H%M'`

{

echo 'objective.pe. 3600  IN SOA   objective.pe. hostmaster.octagram.name. ( '`date -u +'%s'`' 86400 7200 3600000 200 )
objective.pe. 86400 IN NS    ns3.toom.su.
objective.pe. 86400 IN NS    ns4.toom.su.
objective.pe. 86400 IN A     173.249.20.221
*             86400 IN A     173.249.20.221
localhost     86400 IN A     127.0.0.1'

if [ "X$CERTBOT_VALIDATION" != "X" ]; then
    echo '_acme-challenge 86400 IN TXT   ( "'"$CERTBOT_VALIDATION"'" )'
fi

} > /var/lib/knot/zones/objective.pe.zone

/usr/sbin/knotc reload > /dev/null

sleep 4


monthly cron:
certbot certonly --manual --preferred-challenges=dns --manual-auth-hook /var/lib/knot/zones/objective.pe.zone.gen.sh -d \*.objective.pe --manual-public-ip-logging-ok --expand --renew-by-default --text --agree-tos > /dev/null 2>&1
certbot certonly --manual --preferred-challenges=dns --manual-auth-hook /var/lib/knot/zones/objective.pe.zone.gen.sh -d objective.pe --manual-public-ip-logging-ok --expand --renew-by-default --text --agree-tos > /dev/null 2>&1
/var/lib/knot/zones/objective.pe.zone.gen.sh # cleanup

# sftp to all servers
# reload config, ssh to reload config on all servers
А кому-то штрафы за SEO опасны, за сайты, на которые простой человек даже войти не может
Хочу предложить тыжпрограммистам изначально закладывать возможность подключения из JavaScript, и поэтому чтоб в основе был WebRTC. Но при этом чтоб адреса были ipv6.

Предлагаемая схема: нарезаем в приватном пространстве ipv6 кусок, резервируем часть оставшихся битов под верхний домен. Берём publicsuffixlist, нумеруем tld и прочее его содержимое, а дальше предлагаем желающим получить место в этом пространстве регать домены вида base32.tld и поднимать там сервер WebRTC и/или WebSocket. Для обычных программ делаем движок, который через драйвер tuntap умеет установить подключение.
Я имел в виду: строки, размер которых известен динамически, но не статически, в языке Ада могут быть на стеке. Я имел в виду случай, когда выделяется не максимальный объём, а сколько надо.

Да, в Расте строки делали по подобию адских
почему декларация класса вынесена отдельно от имплементации в Delphi


Возможно, вам бы понравился Оберон. А мне не понравился. Мусорка.

Мне нравится вот так:

package Ada.Real_Time
  with Nonblocking is

  type Time is private;
  Time_First : constant Time;
  Time_Last : constant Time;
  Time_Unit : constant := implementation-defined-real-number;

  type Time_Span is private;
  Time_Span_First : constant Time_Span;
  Time_Span_Last : constant Time_Span;
  Time_Span_Zero : constant Time_Span;
  Time_Span_Unit : constant Time_Span;

  Tick : constant Time_Span;
  function Clock return Time;

  function "+" (Left : Time; Right : Time_Span) return Time;
  function "+" (Left : Time_Span; Right : Time) return Time;
  function "-" (Left : Time; Right : Time_Span) return Time;
  function "-" (Left : Time; Right : Time) return Time_Span;


То есть, вот есть Time и Time_Span. Если к Time прибавить Time_Span, получим Time. Time можно получить у функции Clock, а Time_Span можно получить как разность двух Time. Самая суть выражается, читать одно удовольствие. А детали выносятся в «примечания» (private).

Delphi, хоть и не такой мусорный язык, но там уже is private нет. Вынь да положь содержимое всех кишков на всеобщее обозрение вперемешку с действительно интересными методами.

Вот аналог на Delphi.

unit System.Diagnostics;

interface
{$HPPEMIT LEGACYHPP}

uses System.Classes, System.TimeSpan;

type
  TStopwatch = record
  strict private
    class var FFrequency: Int64;
    class var FIsHighResolution: Boolean;
    class var TickFrequency: Double;
  strict private
    FElapsed: Int64;
    FRunning: Boolean;
    FStartTimeStamp: Int64;
    function GetElapsed: TTimeSpan;
    function GetElapsedDateTimeTicks: Int64;
    function GetElapsedMilliseconds: Int64;
    function GetElapsedTicks: Int64;
    class procedure InitStopwatchType; static;
  public
    class function Create: TStopwatch; static;
    class function GetTimeStamp: Int64; static;
    procedure Reset;
    procedure Start;
    class function StartNew: TStopwatch; static;
    procedure Stop;
    property Elapsed: TTimeSpan read GetElapsed;
    property ElapsedMilliseconds: Int64 read GetElapsedMilliseconds;
    property ElapsedTicks: Int64 read GetElapsedTicks;
    class property Frequency: Int64 read FFrequency;
    class property IsHighResolution: Boolean read FIsHighResolution;
    property IsRunning: Boolean read FRunning;
  end;

implementation


Ну что, приятно такое читать? А со встроенными телами методов ещё больший кошмар.
GNAT и GNOGA бесплатные
А с чего бы ему не мочь?

Другое дело, позор тем, кто для nginx выбрал не Аду или хотя бы Паскаль. Фу таким быть
В C++ ублюдочная модульность. Пространства имён с исходниками не связаны, кто угодно может подкладывать куда угодно.

Ещё типично, когда на одной операционке #include сделал вроде бы для всего, а эти #include потащили другие #include, а на другой целевой платформе не потащили. И вот, значит, в неподходящий момент мы узнаём об этом. Сильнейшее желание свалить из этого дурдома.
Строки на стеке — это Ада, но не Delphi
PDF вывод есть в Cairo, а привязки к Cairo стараниями Мигель де Каза (GNOME) я бы ожидал найти в Mono
Любой продакшн же с чего-то начинался
Вот тут ещё движок блога сделали
Поддержка WebAssembly есть в GNAT и FPC

Информация

В рейтинге
Не участвует
Откуда
Воркута, Коми, Россия
Дата рождения
Зарегистрирован
Активность