memory heap
368 subscribers
2.48K photos
504 videos
52 files
3.07K links
science ∩ art = wonder

all memory blocks here are allocated by @a_v_p

GitHub: https://github.com/artyom-poptsov
Mastodon: https://fosstodon.org/@avp

https://memory-heap.org/~avp/
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Ещё одно видео с практики -- изучали со студентами широтно-импульсную модуляцию (ШИМ.)
А так мы разбирали инкремент и декремент на практике по Arduino в НРТК.

Случай из практики прошлых лет: пришёл студент на задачу экзамена, говорю ему -- напиши цикл. Он написал. Спрашиваю, а что такое у тебя в коде за i++. Отвечает -- это, мол, "экскремент". С тех пор всем студентам эту байку рассказываю -- помогает в запоминании.

Чтобы в коде небыло "экскрементов" учите термины правильно! :-)
Сравнение вычислительной мощности современных компьютеров и компьютеров прошлого: https://spectrum.ieee.org/ibm-mainframe
memory heap
Photo
(Печатаю куски MPCNC.)
Выпустил релиз Guile-DSV 0.5.1 с возможностью вывода данных в формате DSV/CSV в формат таблиц Markdown, и также возможностью применять произвольный код на Scheme на каждую ячейку таблицы, и фильтровать строки/столбцы табличных данных.

#guile #scheme #projects #dsv
Суперкомпьютер Cray X-MP из 1982 г. выглядит так, как будто пришёл с ретро-футуристических обложек журналов.

До 117МГц частота центрального процессора, 128Мб ОЗУ, 38.4 Гб на 32-х жёстких дисках 5.12 тонн — всё вместе 5.12 тонн веса за 15 миллионов долларов (без учёта стоимости дисков.)

Потреблял 345 КВт.

Фото отсюда:
https://computing.llnl.gov/about/machine-history

#computing #history
👍1
IMG_20220209_082917.jpg
3.4 MB
memory heap
IMG_20220209_082917.jpg
Напечатал студентам, которые участвовали в конкурсе проектов на Arduino в рамках учебной практики, призы. За первое место подарил мини-набор с Arduino.

Модельки орков брал отсюда:
https://www.thingiverse.com/thing:2991826

У автора этих моделей есть ещё интересные проекты, рекомендую посмотреть.

#3dprinting
А вот так можно решить проблему с отстутствием звука после вывода Ubuntu 20.04 из гибернации на ноутбуке Samsung NP530U4C:
$ pacmd set-card-profile 0 output:analog-stereo


Решение найдено здесь:
https://askubuntu.com/questions/1158593/sound-problem-ubuntu-18-04-no-sound-after-suspend

Там ещё скрипт предлагается сделать, который автоматически эту команду выполняет. Пока этот вариант не тестировал.

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

#gnu #linux #ubuntu
Из чата @sci_fyi
Выпущен релиз GNU Guile 3.0.8:
https://www.gnu.org/software/guile/news/gnu-guile-308-released.html

Одна из новых возможностей называется "Меж-модульное встраивание". Ниже мой вольный перевод из NEWS-файла.

Хотя исторически Guile рассматривал модули в роли прославленных хэш-таблиц, большинство модулей на самом деле объявлены в декларативном стиле — т.е. они всего лишь опредляеют функции и переменные для предоставления их другим модулям к использованию, и не манипулируют модулями, как объектами первого класса.

Начиная с версии 3.0.0, Guile пользуется этой декларативной семантикой для того, чтобы позволить определениям верхнего уровня быть встроенными в местах их использования в той же единицы компиляции, при условии, что привязка (binding) никогда не присваевается и определена только один раз. Guile 3.0.8 расширяет эти возможности, позволяя некоторым экспортированным декларативным определениям быть встроенными в других модулях.

Эта возможность в основном прозрачна для пользователя и включена на умолчальном уровне оптимизации -O2. "Небольшие" определения могут быть встроены между модулями (при флаге -Oinlinable-exports, включённом в уровень оптимизации -O2.) Решение о встраивании принимается Guile на этапе частичного вычисления выражений (флаг-модификатор -Ocross-module-inlining modifier для -Opeval, включённого также при -O2).

Тем не менее следует заметить, что если некое определение изменяется в модуле А, то отдельно скомпилированный модуль Б, который использует изменившееся определение из модуля А, не будет автоматически перекомпилирован. Подобная же ситуация может наблюдатся в случае с макросами. Это ограничение мы [разработчики GNU Guile — прим. перев.] хотели бы исправить.

Ещё одним ограничением является то, что меж-модульное встраивание доступно только для импортов из модулей, которые уже скомпилироавны с оптимизацией -O2 (или, как вариант, с флагом -Oinlinable-exports.)

При принятии решения, нужно ли включать вышеописанную возможность по-умолчанию, мы взвесили проблемы удобства использования при "протухании" встроаенных привязок [т.е. если привязки, импортированные в модуль Б из модуля А были обновлены в модуле А — прим. перев.], и преимущества от возможности "размытия" границ между модулями, когда эти границы более не являются границами оптимизации. В конечном счёте, мы пришли к решению "сделаем это!" Тем не менее мы были бы рады услышать обратную связь от пользователей в свете того, стоит ли оставлять новую возможность включённой по-умолчанию — до тех пор, пока у нас не будет правильного представления о том, устарел скомпилированный файл , или нет.

#gnu #guile