This media is not supported in your browser
VIEW IN TELEGRAM
Ещё одно видео с практики -- изучали со студентами широтно-импульсную модуляцию (ШИМ.)
А так мы разбирали инкремент и декремент на практике по Arduino в НРТК.
Случай из практики прошлых лет: пришёл студент на задачу экзамена, говорю ему -- напиши цикл. Он написал. Спрашиваю, а что такое у тебя в коде за i++. Отвечает -- это, мол, "экскремент". С тех пор всем студентам эту байку рассказываю -- помогает в запоминании.
Чтобы в коде небыло "экскрементов" учите термины правильно! :-)
Случай из практики прошлых лет: пришёл студент на задачу экзамена, говорю ему -- напиши цикл. Он написал. Спрашиваю, а что такое у тебя в коде за i++. Отвечает -- это, мол, "экскремент". С тех пор всем студентам эту байку рассказываю -- помогает в запоминании.
Чтобы в коде небыло "экскрементов" учите термины правильно! :-)
Сравнение вычислительной мощности современных компьютеров и компьютеров прошлого: https://spectrum.ieee.org/ibm-mainframe
IEEE Spectrum
A Quadrillion Mainframes on Your Lap
Your laptop is way more powerful than you might realize
Выпустил релиз Guile-DSV 0.5.1 с возможностью вывода данных в формате DSV/CSV в формат таблиц Markdown, и также возможностью применять произвольный код на Scheme на каждую ячейку таблицы, и фильтровать строки/столбцы табличных данных.
#guile #scheme #projects #dsv
#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
До 117МГц частота центрального процессора, 128Мб ОЗУ, 38.4 Гб на 32-х жёстких дисках 5.12 тонн — всё вместе 5.12 тонн веса за 15 миллионов долларов (без учёта стоимости дисков.)
Потреблял 345 КВт.
Фото отсюда:
https://computing.llnl.gov/about/machine-history
#computing #history
👍1
Guile-DSV 0.5.1 теперь и в GNU Guix:
https://git.savannah.gnu.org/cgit/guix.git/commit/?id=35d56676db0988aad6d1a5b52dc4efef578885f2
#guile #guix #dsv #dev
https://git.savannah.gnu.org/cgit/guix.git/commit/?id=35d56676db0988aad6d1a5b52dc4efef578885f2
#guile #guix #dsv #dev
memory heap
IMG_20220209_082917.jpg
Напечатал студентам, которые участвовали в конкурсе проектов на Arduino в рамках учебной практики, призы. За первое место подарил мини-набор с Arduino.
Модельки орков брал отсюда:
https://www.thingiverse.com/thing:2991826
У автора этих моделей есть ещё интересные проекты, рекомендую посмотреть.
#3dprinting
Модельки орков брал отсюда:
https://www.thingiverse.com/thing:2991826
У автора этих моделей есть ещё интересные проекты, рекомендую посмотреть.
#3dprinting
Thingiverse
The Orc Horde by Valandar
( This item sponsored by my Kickstarter, Titans of Legend )WAAAAAAAAAAGGGGGGGHHHHHHH!!!!!!!!!!!!!The horde is coming! Archers, swordsmen, spearmen, unit commanders, a shaman, and even the Big Boss, all charging towards your printer so they can get to grips…
А вот так можно решить проблему с отстутствием звука после вывода Ubuntu 20.04 из гибернации на ноутбуке Samsung NP530U4C:
Решение найдено здесь:
https://askubuntu.com/questions/1158593/sound-problem-ubuntu-18-04-no-sound-after-suspend
Там ещё скрипт предлагается сделать, который автоматически эту команду выполняет. Пока этот вариант не тестировал.
Вышеописанная проблема проявляется не всегда, но раньше, когда это происходило, решал её перезагрузкой.
#gnu #linux #ubuntu
$ 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
Ask Ubuntu
sound problem (Ubuntu 18.04): no sound after suspend
I have a sound problem (running Ubuntu 18.04 on an Acer Swift 1). After booting, the sound works perfectly fine at first (both via speakers and headphones). But if I suspend and then come back late...
Выпущен релиз 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 расширяет эти возможности, позволяя некоторым экспортированным декларативным определениям быть встроенными в других модулях.
Эта возможность в основном прозрачна для пользователя и включена на умолчальном уровне оптимизации
Тем не менее следует заметить, что если некое определение изменяется в модуле А, то отдельно скомпилированный модуль Б, который использует изменившееся определение из модуля А, не будет автоматически перекомпилирован. Подобная же ситуация может наблюдатся в случае с макросами. Это ограничение мы [разработчики GNU Guile — прим. перев.] хотели бы исправить.
Ещё одним ограничением является то, что меж-модульное встраивание доступно только для импортов из модулей, которые уже скомпилироавны с оптимизацией
При принятии решения, нужно ли включать вышеописанную возможность по-умолчанию, мы взвесили проблемы удобства использования при "протухании" встроаенных привязок [т.е. если привязки, импортированные в модуль Б из модуля А были обновлены в модуле А — прим. перев.], и преимущества от возможности "размытия" границ между модулями, когда эти границы более не являются границами оптимизации. В конечном счёте, мы пришли к решению "сделаем это!" Тем не менее мы были бы рады услышать обратную связь от пользователей в свете того, стоит ли оставлять новую возможность включённой по-умолчанию — до тех пор, пока у нас не будет правильного представления о том, устарел скомпилированный файл , или нет.
#gnu #guile
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
www.gnu.org
GNU Guile
Andy Wingo — February 11, 2022