April 22nd, 2025
vak: (Аристипп)
Проект на Гитхабе: tsoding/good_training_language

Классический пример Hello World:
про главная() нч
печать(«Привет, Мир!\н»);
кц
Компилируем, запускаем.
$ хуяк комп примеры/01-привет.хуя
$ ./примеры/01-привет
Привет, Мир!
vak: (Знайка)
Полезные примитивы управления путём PATH. Вставляются в ~/.bashrc. Правятся по вкусу.
append_path() {
    local dir="$1"
    if [[ -d "$dir" ]]; then
        if [[ -d "$dir" && ":$PATH:" != *":$dir:"* ]]; then
            export PATH="$PATH:$dir"
        fi
    fi
}
prepend_path() {
    local dir="$1"
    if [[ -d "$dir" ]]; then
        if [[ -d "$dir" && ":$PATH:" != *":$dir:"* ]]; then
            export PATH="$dir:$PATH"
        fi
    fi
}
remove_path() {
    local dir="$1"
    if [[ ":$PATH:" == *":$dir:"* ]]; then
        local new_path=":$PATH:"
        new_path="${new_path//:$dir:/:}"
        new_path="${new_path#:}"
        export PATH="${new_path%:}"
    fi
}
remove_path /usr/games
remove_path /usr/local/games
remove_path .
append_path /usr/sbin
append_path /usr/bin
append_path /snap/bin
prepend_path /usr/local/bin
prepend_path /usr/local/sbin
prepend_path $HOME/.local/bin
vak: (Робот 1)
https://www.automotiveworld.com/articles/software-centric-chips-anticipate-the-ai-defined-vehicle/

"SiMa.ai is positioning its unique MLSoC platform as the gateway for unlocking next-generation ADAS/AV performance. Importantly, it has been conceived specifically for automotive applications."

"SiMa.ai’s MLSoC has an ML performance of 50 TOPS and a ResNet-50 (an image classifying architecture) performance of more than 300 FPS per watt. The company claims latency can be reduced by a factor of ten, with all compute in Level 2/3 systems achieved at less than 25W, or less than 100W at Level 4."

"SiMa.ai designed the chip according to three foundation pillars: to be compatible with any computer vision and generative AI application using ML at the edge, regardless of vehicle type; to offer best-in-class performance per watt; and to provide an interface usable by anyone instead of a small demographic of hardware experts."

"In December 2024, SiMa.ai combined its AI/ML capabilities with silicon design and verification firm Synopsys to maximise customisation for automotive-centric IP, subsystems, chiplets, and SoCs."
April 21st, 2025
vak: (Робот 1)
posted by [personal profile] vak at 06:26pm on 21/04/2025 under
...Фирма делает чипы. Целенаправленно для искусственного интеллекта и машинного обучения. Но какие нейронные сетки на наших чипах можно гонять, и с какой эффективностью? А вот вам рисунок. По горизонтали количество обрабатываемых изображений в секунду. По вертикали точность распознавания. Точность получается повыше, если модель работает в плавающей точке FP32, и пониже, если она квантована в целые числа INT8.

Подробнее на сайте: https://sima.ai/model-browser/

vak: (бэсм-6)
(Я послал этот текст в список рассылки БЭСМ-6, но сохраню и здесь для памяти.)

Раз уж у нас тут постепенно актуализировалась тема написания компиляторов, я тоже увлёкся и реализовал давнишнюю мечту: портонул Би с PDP-7 на БЭСМ-6.

Исходник компилятора: b-besm.b

Проект на Гитхабе: besm6/b-compiler

История вопроса следующая. В 1969 году Кен Томпсон создал язык Би для машины PDP-7. Компилятор порождал так называемый шитый код, который интерпретировался во время выполнения. Позже в 1971-м Деннис Ритчи портонул Би на машину Honeywell GE 645, но без всякого шитого кода, а уже с нормальной генерацией бинарного кода целевого процессора. А когда Ритчи взялся тащить Би на PDP-11, оказалось, что наличие байтовой адресации существенно меняет дело. Пришлось добавить в Би типы, и он быстро превратился в знакомый нам Си.

Исходники компилятора Би считались потерянными. Но девять лет назад Robert Swierczek чудесным образом сумел восстановить тексты Би из обрывков распечаток в рамках проекта pdp7-unix.

Я взял эти исходники и вместо выдачи шитого кода для PDP-7 вставил генерацию машинных команд БЭСМ-6 для ассемблера Madlen. Добавил минимальную рантайм библиотеку и запихнул в мониторную систему Дубна. Компилятор пишет ассемблерный текст на барабан и, если не случилось ошибок, выполняет как бы команду *READ:1. Дальше обычным образом стартует Мадлен и формирует объектные модули. Компилятор Би и рантайм библиотеку я поместил на отдельную ленту, её можно подключать командой *TAPE:7/B. Покажу пример на симуляторе dubna.

Вот скрипт с исходным текстом классического примера Hello World. Компилятор запускается с ленты командой *TRANS.
*name B compiler
*tape:7/b,40
*library:40
*trans-main:40020
main() {
printf("Hello, B!*n");
}
*execute
*end file
Запускаем. Я не стал убирать таблицу загрузки, чтобы вам было видно размер кода:
$ dubna hello.dub
...
*NAME B COMPILER
*TAPE:7/*,40
*LIBRARY:40
*TRANS-MAIN:40020
OVERLAY OT 20/04/25
B COMPILER FOR BESM-6, VERSION 04/2025
COMPILED 3 LINES OF CODE, FOUND 0 ERRORS

*NO LIST
*CALL BLOCKERR
*MADLEN
MAIN CP 0.0, ST 0.0, RT 1.0*
*READ OLD
*EXECUTE
*LIBRA:40 = B/DIV B/EQ B/GT B/LT B/MUL B/NE B/RET B/SAVE0 B/SAVE
B/TOUT B/TRUE CHAR PRINTD PRINTO PRINTF WRITE WRITEB OUT*CNT OUT*SHFT
OUT*BUFF FLUSH FOUT

MAIN 01000 PRINTD 01413 B/MUL 01757 ISOTCOSY 06002
PROGRAM E 01000 PRINTO 01466 B/GT 01766 ISOTCOS1 E 06053
B/SAVE0 01011 WRITE 01517 FOUT 01771 DRUMTAP* 06073
B/RET 01016 B/TRUE 01622 WRCARD 01772 CHKWORD* C 06124
PRINTF 01023 OUT*CNT 01623 WRWORD E 02014 PRINT8 06125
B/SAVE 01256 OUT*SHFT 01624 WBEGIN E 02033 STOP* 06306
CHAR 01263 OUT*BUFF 01625 WRIEND E 02042 EXIT E 06307
B/NE 01301 FLUSH 01654 B/TOUT 02075 CBOБOДHO 06335
B/EQ 01304 B/LT 01744 WRWORD/ C 04000
WRITEB 01307 B/DIV 01747 XWRITE/ C 06000

HELLO, B!
Вот ещё несколько примеров для Би из разных мест. Все они работают под Дубной:Мандельброт выглядит забавно: mandelbrot.txt

Выводы из всей этой затеи:
  • Би вполне был возможен на БЭСМ-6 уже тогда, в середине 70-х. Увы, никто из аксакалов-бэсмачей про него не знал.
  • Если бы Би тогда состоялся, он мог бы стать важным средством системной разработки. Не судьба. Позже язык ЯРМО пытался занять нишу.
  • Результат примерно соответствует мечте Игоря Григорьевича Пасынкова, когда в 1986 году он позвал меня в курчатник заниматься Си для Эльбруса-Б. Ему хотелось видеть Си не только под юниксом, но и в мониторке.
vak: (Default)
Вот такая програмулина:
main() {
auto cx, cy, x, y, x2, y2;
auto iter;
auto xmin, xmax, ymin, ymax, maxiter, dx, dy;

xmin = -8601;
xmax = 2867;
ymin = -4915;
ymax = 4915;

maxiter = 32;

dx = (xmax - xmin) / 79;
dy = (ymax - ymin) / 24;

cy = ymin;
while (cy <= ymax) {
cx = xmin;
while (cx <= xmax) {
x = 0;
y = 0;
x2 = 0;
y2 = 0;
iter = 0;
while (iter < maxiter) {
if (x2 + y2 > 16384)
goto next;

y = ((x * y) / 2048) + cy;
x = x2 - y2 + cx;
x2 = (x * x) / 4096;
y2 = (y * y) / 4096;
iter++;
}
next:
write(' ' + iter);
cx = cx + dx;
}
write('*n');
cy = cy + dy;
}
return(0);
}
Запускаем mandelbrot.dub, получаем mandelbrot.txt:
$ dubna mandelbrot.dub
...
!!!!!!!!!!!!!!!"""""""""""""####################################""""""""""""""""
!!!!!!!!!!!!!"""""""""#######################$$$$$$$%'+)%%%$$$$$#####"""""""""""
!!!!!!!!!!!"""""""#######################$$$$$$$$%%%&&(+,)++&%$$$$$$######""""""
!!!!!!!!!"""""#######################$$$$$$$$$$%%%%&')*5:/+('&%%$$$$$$#######"""
!!!!!!!!""""#####################$$$$$$$$$$%%%&&&''),@@@@@@@,'&%%%%%$$$$########
!!!!!!!"""####################$$$$$$$$%%%&'())((())*,@@@@@@/+))('&&&&)'%$$######
!!!!!!""###################$$$$$%%%%%%&&&'+.@@=/<@@@@@@@@@@@@@@@/++@..93%%$#####
!!!!!"################$$$%%%%%%%%%%&&&&'),+2@@@@@@@@@@@@@@@@@@@@@@@@@1(&&%$$####
!!!!"##########$$$$$%%&(-(''''''''''''(*,5@@@@@@@@@@@@@@@@@@@@@@@@@@@@+)-&%$$###
!!!!####$$$$$$$$%%%%%&'(*-@1.+.@-4+))**@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@4-(&%$$$##
!!!!#$$$$$$$$$%%%%%%'''++.6@@@@@@@@@8/0@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3(%%$$$$#
!!!#$$$$$$$%&&&&''()/-5.5@@@@@@@@@@@@@>@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@?'&%%$$$$#
!!!(**+/+<523/80/46@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@4+)'&&%%$$$$#
!!!#$$$$$$$%&&&&''().-2.@@@@@@@@@@@@@@?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'&%%$$$$#
!!!!#$$$$$$$$$%%%%%&'''/,.7@@@@@@@@@;/0@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@0'%%$$$$#
!!!!####$$$$$$$$%%%%%&'(*-:2.,/?-5+))**@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@4+(&%$$$##
!!!!"##########$$$$$%%&(-(''''(''''''((*,4@@@@@@@@@@@@@@@@@@@@@@@@@@@4+).&%$$###
!!!!!"################$$$%%%%%%%%%%&&&&')<,4@@@@@@@@@@@@@@@@@@@@@@@@@/('&%%$####
!!!!!!""##################$$$$$$%%%%%%&&&'*.@@@0@@@@@@@@@@@@@@@@1,,@//9)%%$#####
!!!!!!!"""####################$$$$$$$$%%%&(())((()**-@@@@@@/+)))'&&&')'%$$######
!!!!!!!!""""#####################$$$$$$$$$$%%%&&&''(,@@@@@@@+'&&%%%%%$$$########
!!!!!!!!!"""""#######################$$$$$$$$$$%%%%&')*7@0+('&%%%$$$$$#######"""
!!!!!!!!!!!"""""""######################$$$$$$$$$%%%&&(+-).*&%$$$$$$######""""""
!!!!!!!!!!!!!"""""""""#######################$$$$$$%%'3(%%%$$$$$######""""""""""
!!!!!!!!!!!!!!!""""""""""""#####################################""""""""""""""""
vak: (Default)
posted by [personal profile] vak at 12:01am on 21/04/2025 under
Много интересных подробностей про исторический компилятор Би для PDP-7 и про первый юникс.

April 20th, 2025
vitus_wagner: My photo 2005 (Default)

Вообще, конечно идеальная схема снабжения деревенского дома интернетом должна выглядеть так:

Точка доступа в режиме бриджа, висящая напротив устья печи (так она с гарантией покроет более-менее все места, где может возникнуть желание устроиться с ноутбуком или планшетом, и более того - и сама точка доступа, и источник бесперебойного питания к ней окажутся внутри отапливаемого помещения (сейчас у меня точка доступа она же LTE модем висит на стене неотапливаемой терраски, спасибо хоть на внутренней) и LTE-модем в уличном исполнении с ethernet-интерфейсом, питанием по POE и внешней антенной децибел на 25, выставленной на шесте метров на пять над крышей.

Беда в том, что такие модемы (а они в продаже есть) стоят довольно дорого. Правда, если модем торчит над крышей. то можно над ним прикрутитть имеющуюся внешнюю антенну. Она по-моему правда всего децибелл на 12. Еще при этом почти во все такие модемы встраивают свой wi-fi модуль, который в данном сетапе, вероятно лишний. Если что и может покрыть, то садовые скамейки на участке. Потому как от дома его экранирует шиферная крыша. Шифер очень хорошо глушит что wi-fi, что сотовый сигнал, неоднократно в этом убеждался. Поэтому сейчас у меня антенна висит на первом этаже, ниже шифера. Хотя подними я ее хотя бы на уровень второго эатажа, прием станет лучше. Но надо не просто на уровень второго этажа, а чтобы шифер между антенной и базовой станцией не попал.

Точку доступа вообще говоря необязательно держать в режиме бриджа. Можно в режиме роутера, будет отдельная сетка между основным роутером и модемом, примерно как бывает, если usb-свисток воткную в usb-порт обычного дешевого роутера. Тут зависит от того, что за прошивка в самом модеме, можно ли ей доверять.

Недостаток этого решения заключается в том что LTE-модемы с POE и эзернетом стоят заметнро дороже тревел-роутеров и даже устройств вроде Tlink TL MR150 или OLAX MC-60 (которому и UPS не нужен, правда POE-инжектором в отличие от 9-вольтового UPS он работать не умеет).

X-Post to LJ

vak: (Default)
Я затащил компилятор Би под мониторную систему Дубна. Сделал отдельную ленточку 7/b, на которой лежит бинарник компилятора и рантайм библиотека. Вот классический пример Hello World:
*name B compiler
*tape:7/b,40
*library:40
*trans-main:40020
main() {
printf("Hello, B!*n");
}
*execute
*end file
Запускаем:
$ dubna b.dub
...
*NAME B COMPILER
*TAPE:7/*,40
*LIBRARY:40
*TRANS-MAIN:40020
OVERLAY OT 20/04/25
B COMPILER FOR BESM-6, VERSION 04/2025
COMPILED 3 LINES OF CODE, FOUND 0 ERRORS

*NO LIST
*CALL BLOCKERR
*MADLEN
MAIN CP 0.0, ST 0.0, RT 1.0*
*READ OLD
*EXECUTE
*LIBRA:40 = B/DIV B/EQ B/GT B/LT B/MUL B/NE B/RET B/SAVE0 B/SAVE
B/TOUT B/TRUE CHAR PRINTD PRINTO PRINTF WRITE WRITEB OUT*CNT OUT*SHFT
OUT*BUFF FLUSH FOUT

MAIN 01000 PRINTD 01413 B/MUL 01757 ISOTCOSY 06002
PROGRAM E 01000 PRINTO 01466 B/GT 01766 ISOTCOS1 E 06053
B/SAVE0 01011 WRITE 01517 FOUT 01771 DRUMTAP* 06073
B/RET 01016 B/TRUE 01622 WRCARD 01772 CHKWORD* C 06124
PRINTF 01023 OUT*CNT 01623 WRWORD E 02014 PRINT8 06125
B/SAVE 01256 OUT*SHFT 01624 WBEGIN E 02033 STOP* 06306
CHAR 01263 OUT*BUFF 01625 WRIEND E 02042 EXIT E 06307
B/NE 01301 FLUSH 01654 B/TOUT 02075 CBOБOДHO 06335
B/EQ 01304 B/LT 01744 WRWORD/ C 04000
WRITEB 01307 B/DIV 01747 XWRITE/ C 06000

HELLO, B!
Компилятор генерит ассемблерный код и пишет его на барабан, то есть временный файл фактически. И переключает мониторку на чтение этого барабана, как бы командой *READ:1. Вызывается Мадлен и превращает ассемблерный код в бинарные объектные модули.
April 19th, 2025
vitus_wagner: My photo 2005 (Default)
posted by [personal profile] vitus_wagner at 10:02am on 19/04/2025 under ,

Вышла ubuntu 25.04. Как-то даже странно, что не надо срочно бежать настраивать сборочные среды для нее, проверять какие пакетировочные файлы нуждаются в правке, пинать QA-щиков чтобы организовали тестирование.

April 18th, 2025
vak: (Знайка)
Here is a more detailed elaboration.
  1. Make it work.
  2. Make it right (the code is readable [uses intention revealing names] and every idea is expressed once and only once).
  3. Make everything work.
  4. Make everything right.
  5. Use the system and find performance bottlenecks.
  6. Use a profiler in those bottlenecks to determine what needs to be optimized. See Profile Before Optimizing.
  7. Make it fast. You maintained unit tests, right? Then you can refactor the code mercilessly in order to improve the performance.
-- Guillermo Schwarz
vak: (бэсм-6)
Переписал некоторые функции рантайм библиотеки с ассемблера на Би. К примеру, было:
    writeb: ,name,
         12 ,base,*
c
c Append one byte to output buffer.
c
 b/output:lc,block, w_count, b_shift, buffer(22)
c
    flush:  ,subp,
            ,aax, =377
            ,aex, =12       . compare to linefeed
            ,uza, flush
            ,aex, =12
c
            ,utc, w_count
            ,xts,
            ,aex, =26       . 22 words
            ,u1a, putchar
            ,ita, 13
            ,its,
            ,call, flush
            ,sti,
            ,ati, 13
c
 putchar:   ,bss,           . append byte to buffer
            ,sti,
         11 ,vtm, b/output
         11 ,wtc, 1         . b_shift
            ,asn, 64-40     . shift left
         11 ,wtc, 0         . w_count
         11 ,aox, 2         . read word from buffer
         11 ,wtc, 0         . w_count
         11 ,atx, 2         . write word to buffer
c
         11 ,xta, 1         . b_shift
            ,aex, =50
            ,uza, next_w
            ,aex, =50
            ,arx, =10       . increase shift
         11 ,atx, 1         . b_shift
         13 ,uj,
c
 next_w:    ,bss,           . advance to next word
         11 ,atx, 1         . clear b_shift
         11 ,xta, 0         . w_count
            ,arx, =1        . increment word count
         11 ,atx, 0         . w_count
         13 ,uj,
            ,end,
Стало:
/*
 * Append one byte to output buffer.
 */
writeb(b) {
    extrn out_cnt, out_shft, out_buff;
    auto p;

    b = b & 0377;
    if (b == '*n') {
        flush();
        return;
    }

    if (out_cnt == 22) {
        flush();
    }

    p = &out_buff[out_cnt];
    *p = *p | (b << (40 - out_shft));

    if (out_shft == 40) {
        /* next word */
        out_shft = 0;
        ++out_cnt;
    } else {
        /* next byte */
        out_shft = out_shft + 8;
    }
}

out_cnt;
out_shft;
out_buff[22];
Так ведь понятнее выходит, правда?
vak: (Украина)

Меморандум о намерениях между правительством США и правительством Украины по завершению официального соглашения об экономическом партнерстве и инвестиционном фонде для восстановления.
  • Учитывая, что Соединенные Штаты Америки оказали значительную финансовую и материальную поддержку Украине с момента полномасштабного вторжения России в Украину в феврале 2022 года; 
  • Учитывая, что американский народ желает инвестировать вместе с украинским народом в свободную, суверенную и безопасную Украину;
  • Учитывая, что Соединенные Штаты Америки и Украина стремятся к длительному миру в Украине и крепкому партнерству между их народами и правительствами;
  • Учитывая, что Соединенные Штаты Америки и Украина признают вклад Украины в укрепление международного мира и безопасности путем добровольного отказа от третьего по величине в мире ядерного арсенала;
  • Учитывая, что Соединенные Штаты Америки и Украина намерены создать инвестиционный фонд для восстановления как часть экономического партнерства между двумя народами и правительствами;
  • Учитывая, что Соединенные Штаты Америки и Украина провели продуктивные технические обсуждения в Вашингтоне, округ Колумбия, недавно, с 11 по 12 апреля 2025 года, чтобы завершить переговоры по соглашению о создании инвестиционного фонда для восстановления;
  • Учитывая, что Соединенные Штаты уважают намерение Украины избежать конфликтов в разработке соглашения с ее обязательствами в рамках вступления в Европейский Союз или соглашений с международными финансовыми учреждениями и другими официальными кредиторами;
  • Учитывая, что без ущерба для любых остаточных политических или юридических процедур, необходимых для завершения договоренностей, премьер-министр Украины Шмыгаль посетит Вашингтон, округ Колумбия, на неделе с 21 апреля 2025 года, чтобы встретиться с министром финансов США Бессент и оказать поддержку на самом высоком уровне для завершения технических обсуждений условий соглашения о создании инвестиционного фонда для восстановления. От переговорных команд ожидается отчет о прогрессе до 26 апреля 2025 года, с целью завершения обсуждений к этой дате и подписания соглашения как можно скорее;
Итак, в результате этого, как подтверждается подписями ниже, правительство Соединенных Штатов Америки и правительство Украины подписывают этот меморандум о намерениях с целью скорейшего завершения подготовки необходимых документов для официального заключения соглашения об экономическом партнерстве между народами Америки и Украины и создания инвестиционного фонда для восстановления.
April 17th, 2025
vitus_wagner: My photo 2005 (Default)

Решил тут прикрутить к openwrt-шному web-интерфейсу сертификат, которому браузер бы доверял. Выяснилгось что выученный четверть века назад способ генерации сепртифкатов с помощью скрипта CA.pl для этого не годится.

Потому что там хостнейм пишется в CN. А мозилле теперь подавай обязательно dns name в subjectAltName.

Правда, команда openssl req в 3-й версии openssl зато научилоась ключику -addext. Поэтому сгенерировать правильную заявку на сертификат (после подписания которой тем же CA.pl палучается правильный сертификат) можно безо всяких скриптовых обвязок.

 openssl req -newkey -keyout mysite.key -out mysite.req -subj "/CN=mysite.domain/C=RU/L=Moscow" \
    -addext "subkectAltName=DNS:mysite.domain"

Надо еще покопаться. может еще и вокруг openssl ca скрпитовая обвязка тоже лишняя, и можно непосредственно ей пользоватья.

Еще выяснил что в /usr/local/share/ca-certificates на десктопе у меня лежит уже два года как заэкспайрившийся сертификат моего собственного CA. Последнее время я этот CA использовал исключительно для openvpn, потому что все, что торчит во внешний интернет испольузет сертификаты с Let's Encrypt, а локальные https-сайты в своей домашней сети я как-то не очень использую.

vitus_wagner: My photo 2005 (Default)
posted by [personal profile] vitus_wagner at 09:22am on 17/04/2025 under ,

Интересную идею подкинули в комментах к предыдущему посту. Организовать таки работу нескольких точек доступа с хэндовером/роамингом.

Если повесить TL MR3020 на середине южной стены дома, то он хорошо покроет не только запечное пространство на первом, но и район изголовья кровати на втором этаже. Розетка на этой стене есть. И есть даже полочка, куда можно положить точку доступа.

Правда, придется на это дело выделить какой-нибудь повербанк - кратковременные перерывы в подаче электричества у нас там случаются. Но повербанки в хозяйстве все равно есть, (как и M3020), И можно таскаемый с собой сапгрейдить на умеющий USB-C и могущий при необхдимости подкортмить ноутбук, а предыдущий пустить на UPS для точки доступа.

Часа на два-три его хватит, а на большее не хватит холодильников. Поэтому если свет отключится более чем на 2-3 часа, все равно придется заводить генератор.

Можно было бы конечно (и с точки зрения конфигурации железа даже лучше) прикуипить точку доступа с POE, благо свободный порт POE-инжектора есть в 9v UPS питающем основной роутер. Но что-то у меня есть сомнения, что доступные по осмысленной цене точки доступа с POE договорятся с этим роутером по поводу 802.11r. Зато такие точки доступа обычно сдизайнены под крепление к стене или потолку, чего нельзя сказать о MR-3020.

Преимущества этого решения по сравнению с натыкиванием везде где нужно ethernet-розеток - через это будут работать не только ноутбуки, но и планшеты, смартфоны и Катин макбук. Недостатки - надо дотащить eltanin (Иринин ноутбук) до Савеловского рынка чтобы там пофиксили wifi. Или не до савеловского, а до какого-нибудь компетентного специалиста по Windows - есть подозрение что там проблема не в железе, а в драйверах. (впрочем где ж такого взять-то? Их и до 2022 года в России было днем с фонарем не сыскать, а теперь и те разъехались) И еще Артур будет ныть, что ему интернет медленный. Это у него чисто психологическое. Если не провод, то медленнее. А что там все равно дальше 15 км радиоканала (LTE), это из комнаты не видно.

X-Post to LJ

April 16th, 2025
vak: (Default)
Один крутой чувак наваял для Линукса библиотеку GUI, выглядящую как древний MacOS 7. Ничо так, приятненько.

Проект на Гитхабе: buserror/libmui

vitus_wagner: My photo 2005 (Default)
posted by [personal profile] vitus_wagner at 08:56pm on 16/04/2025 under

Вот думаю, купить 50 метров витой пары и провести по деревенскому дому ethernet. А то там получается что несколько удобных рабочих мест отделены от точки доступа wifi русской печкой. А через два метра кирпича радиоволны проходят плохо. А в роутере все равно 4 порта есть.

В московских квартирах где ethernet по всей квартире был сделан еще давно сейчас и Ирина, и Артур, и я пользуемся преимущественно проводным соединением а не wi-fi. Правда, в Москве есть еще такой фактор, что 2.4ГГц диапазон забит нафиг соседями, а в 5ГГц сидят 2-3 станции, но уж сидят так сидят.

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

X-Post to LJ

vitus_wagner: My photo 2005 (Default)

Повесили там занавески на терраске, поменяли шины на машине на летние (они там хранятся) и собрали водопровод. О занавесках на террасе Ирина мечтала уже по-моему лет пять, года два назад их сшили, но поскольку в прошлом году мы там не жили, то и не повесили. Теперь вот повесили.

Опробовали в боевом режиме перепрошитый ТL MR3020. Работает.

Еще реализовали одну забавную задумку - выгрузку-загрузку колес через окно второго этажа при помощи веревки и блока. Дело в том что окно выходит прямо на стоянку, а через дверь это нужно таскать колеса вокруг всего дома до входной двери, а потом через весь дом, а потом по винтовой лестнице.

А если вкрутить в оконную раму шуруп с кольцом, и к нему привесить блок, то посредством 12мм веревки все замечательно опускается-поднимается. Но нужно два человека - один на верху веревку тягает, второй внизу либо отцепляет груз от крюка, либо наоборот стропит и привешивает. Сначала я думал, что понабодится каую-нибудь балку в окно вывесить, но шины и ящик с инструментом замечателно поднимаются-опускаются так, с блоком прикрученным непосредственно к стене.

April 15th, 2025
vak: (Default)
Компилятор Би, будучи запущенным на БЭСМ-6, успешно обработал собственный исходный текст и выдал разумный ассемблерный код. До этого я гонял его в кросс-режиме под Линуксом. Но теперь уже и на самой БЭСМ-6 можно. С перекодировкой пришлось помучиться.

Сравниваю ассемблерный код, полученный в кросс-режиме и на БЭСМ. Вижу расхождение в одной строке.
$ diff bbesm.madlen bbesm2.madlen 
5185c5185
< ,XTS,=37777777777777
---
> ,XTS,=50000000000001
Это код функции negate().
negate(n) {
return (-n & 037777777777777);
}
Почему-то на БЭСМ получилась неправильная целочисленная константа. Надо искать багу в арифметике.
vak: (Робот 1)
posted by [personal profile] vak at 03:07pm on 15/04/2025 under
"5 semiconductor startups seeking to challenge Nvidia’s AI computing dominance"

SiMa.ai

SiMa.ai, based in San Jose, delivers a software first machine learning system-on-chip (MLSoC) platform designed specifically for edge AI. Its Modalix chip family supports everything from computer vision to large multimodal models—all with 10x performance-per-watt improvements over existing solutions. With $270 million in total funding and recent partnerships with Lanner, Arrow, Supermicro, and Cvedia, SiMa.ai has positioned itself as the go-to solution for efficient, scalable AI at the edge.

May

SunMonTueWedThuFriSat
            1
 
2
 
3
 
4
 
5
 
6
 
7
 
8
 
9
 
10
 
11
 
12
 
13
 
14
 
15
 
16
 
17
 
18
 
19
 
20
 
21
 
22
 
23
 
24
 
25 26
 
27
 
28
 
29
 
30
 
31