Вот люблю я инженерный дизайн!
Вы только посмотрите на Сократа: https://upload.wikimedia.org/wikipedia/commons/4/4d/VTech-Socrates-Set-FL.jpg - красавец! Обучающие системы того времени нечасто выглядели прилично, а уж тем более стильно. А этот прямо таки хорош! И клавиатура - отчуждаемая с ИК-портом. Да, мембранная, но ведь симпатичная :) Джойстики простоваты, но и игры для этой машинки были не слишком требовательны к скорости реакции игрока. А ведь для этой машинки выпускалась ещё и CAD-система с поддержкой мыши - тоже беспроводной (мышь была присоединена к коврику, как контроллеры присоединены к клавиатуре).
В некоторые игры для Сократа можно поиграть тут: https://archive.org/details/socrates_library
#retro #gaming
Вы только посмотрите на Сократа: https://upload.wikimedia.org/wikipedia/commons/4/4d/VTech-Socrates-Set-FL.jpg - красавец! Обучающие системы того времени нечасто выглядели прилично, а уж тем более стильно. А этот прямо таки хорош! И клавиатура - отчуждаемая с ИК-портом. Да, мембранная, но ведь симпатичная :) Джойстики простоваты, но и игры для этой машинки были не слишком требовательны к скорости реакции игрока. А ведь для этой машинки выпускалась ещё и CAD-система с поддержкой мыши - тоже беспроводной (мышь была присоединена к коврику, как контроллеры присоединены к клавиатуре).
В некоторые игры для Сократа можно поиграть тут: https://archive.org/details/socrates_library
#retro #gaming
Маскот сократовских игр - вылитый "Johnny" Five, не правда ли?
https://archive.org/services/img/socrates_amazes
https://archive.org/services/img/socrates_amazes
Мультфильм с "аналоговыми синтами". Весь звук "нарисован" вручную - на звуковую часть плёнки экспонировались гребёнки, вырезанные руками из бумаги. И это 1934 год! Заря трекерной музыки, можно сказать :)
#music #retro
https://www.youtube.com/watch?v=Mw37GIGlmug
#music #retro
https://www.youtube.com/watch?v=Mw37GIGlmug
YouTube
Вор (1934)
Мультипликационный фильм Николая Воинова (1934, Московский кино-комбинат, композитор Лев Шварц). http://mediamusic-journal.com
Но "Вор", это уже полноценный продукт. Ранние же эксперименты выглядели так: https://www.youtube.com/watch?v=naZlqBtd2Dk - тут и процесс "озвучивания" показан, кстати
#music #retro
#music #retro
YouTube
Рисованный звук, "Танец вороны"
В 30-е годы в СССР было создано несколько лабораторий, занимавшихся проблемами "искусственного звука"
Мультфильм "Танец вороны"
Мультфильм "Танец вороны"
Делюсь ссылкой на неплохую статейку для начинающих хаскелистов про
Мы тут коллективно пописываем в Wiki всякое новичковое. И по теме вышеупомянутой статьи есть страничка. Призываю эту нашу Wiki читать и даже писать в неё - вдруг кто сподобится :)
#haskell #learning
cabal и stack, их общность, различия, и использование по отдельности и вместе. Кратко и полезно!Мы тут коллективно пописываем в Wiki всякое новичковое. И по теме вышеупомянутой статьи есть страничка. Призываю эту нашу Wiki читать и даже писать в неё - вдруг кто сподобится :)
#haskell #learning
Kowainik
Kowainik - Haskell: Build Tools
Description of the basic workflows with the main Haskell build tools
Про
#pico8 #demoscene
PICO-8 я уже тут писал. Так вот, в Твиттере есть целое направление #tweetjam - образчики демосцены, код которых умещается в твит и может быть запущен на PICO-8. Ещё один хэштег в тему: #tweetcart - здесь обычно всё то же самое, но часто бывают и интерактивные образчики (потому и cart - так называются "картриджи" для Pico). А для полноты картины можно ещё подписаться на @Pico8Tweetjam - так будет проще получать демки прямо в ленту :)#pico8 #demoscene
Вот прямо очень хорошая статья про "Си в 2k18" https://queue.acm.org/detail.cfm?id=3212479
Считаю, что любой программист на Си должен прочитать (громко сказано, ага), чтобы с ним можно было предметно поспорить нам, разработчикам на высокоуровневых языках :)
#c
Считаю, что любой программист на Си должен прочитать (громко сказано, ага), чтобы с ним можно было предметно поспорить нам, разработчикам на высокоуровневых языках :)
#c
queue.acm.org
C Is Not a Low-level Language - ACM Queue
In the wake of the recent Meltdown and Spectre vulnerabilities, it
Forwarded from Жалкие низкочастотники
This media is not supported in your browser
VIEW IN TELEGRAM
Большая и вкусная подборка robotics algorithms на питоне, начиная с классики вроде А* и до экзотических: bit.ly/2KPPWcx
В закладки: Bitwise project
> Bitwise is a free educational project about building the software and hardware stack for a simple computer from scratch, running on an FPGA.
(поленился переводить)
Выглядит интересно. Как минимум видео я посмотрю :)
#diy #learning #electronics
> Bitwise is a free educational project about building the software and hardware stack for a simple computer from scratch, running on an FPGA.
(поленился переводить)
Выглядит интересно. Как минимум видео я посмотрю :)
#diy #learning #electronics
Как-то я писал про GameShell - это такая открытая программно и железячно игровая консоль. Так вот, она ко мне приехала наконец!
Выглядит эта штука в собранном виде, как гибрид GameBoy и Walkman - особенно если она жёлтая, как у меня 😜.
Собиратся агрегат из отдельных блоков:
- процессорного модуля (аналог "малинки")
- модуля с экраном (QVGA по-олдскулу)
- клавиатуры (Arduino-совместимая плата)
- батарейного блока (аккумулятор на вид напоминает те, что раньше в телевонах Nokia стояли)
- блочка с динамиками
Каждый блочок имеет свой корпус(!), периферийные блоки соединяются с центральным с помощью шлейфов. Процессорный блок, будучи малинкоподобным, умеет WiFi и BlueTooth, грузится с MicroSD в сборку Linux со всеми вытекающими - просторы для кастомизации широчайшие.
В изначальной поставке ОС идёт с предустановленными CaveStory и FreeDM, что само по себе приятно :) Музыкальный плеер в наличии, а также присутствуют MAME, MGBA и тот же RetroArch - ретрогеймерам предлагается только докинуть ROM'ов. Кстати, консолька ещё и "облако" предоставляет участникам сети, к которой подключена - пару Samba-папочек, в которые как раз таки файлики ROM'ов (а ещё - музычку) можно и закидывать. SSH тоже есть, поэтому scp работает не менее "искаробочно".
В итоге имеем приятную платформу, отдельные модули которой также интересны и сами по себе. LOVE, говорят, на GS уже работает. Я лично очень жду #pico8. Связка Python+PyGame тоже для игростроя подойдёт. Нужно будет ещё завести bluetooth клавиатуру и можно будет кодить всякие демки в дороге :)
#diy #retro #gaming #gamedev #gameshell
Выглядит эта штука в собранном виде, как гибрид GameBoy и Walkman - особенно если она жёлтая, как у меня 😜.
Собиратся агрегат из отдельных блоков:
- процессорного модуля (аналог "малинки")
- модуля с экраном (QVGA по-олдскулу)
- клавиатуры (Arduino-совместимая плата)
- батарейного блока (аккумулятор на вид напоминает те, что раньше в телевонах Nokia стояли)
- блочка с динамиками
Каждый блочок имеет свой корпус(!), периферийные блоки соединяются с центральным с помощью шлейфов. Процессорный блок, будучи малинкоподобным, умеет WiFi и BlueTooth, грузится с MicroSD в сборку Linux со всеми вытекающими - просторы для кастомизации широчайшие.
В изначальной поставке ОС идёт с предустановленными CaveStory и FreeDM, что само по себе приятно :) Музыкальный плеер в наличии, а также присутствуют MAME, MGBA и тот же RetroArch - ретрогеймерам предлагается только докинуть ROM'ов. Кстати, консолька ещё и "облако" предоставляет участникам сети, к которой подключена - пару Samba-папочек, в которые как раз таки файлики ROM'ов (а ещё - музычку) можно и закидывать. SSH тоже есть, поэтому scp работает не менее "искаробочно".
В итоге имеем приятную платформу, отдельные модули которой также интересны и сами по себе. LOVE, говорят, на GS уже работает. Я лично очень жду #pico8. Связка Python+PyGame тоже для игростроя подойдёт. Нужно будет ещё завести bluetooth клавиатуру и можно будет кодить всякие демки в дороге :)
#diy #retro #gaming #gamedev #gameshell
А ещё у консольки задник покрыт LEGO-совместимыми пупырышками - к ним удобно цеплять периферию, для подключения которой доступны (выведены на разъем) GPIO процессорной платы и порты Arduino-совместимого блока с кнопками. Так что эта штука ещё и на "процессор" Lego Mindstorm похожа (особенно - в бело-сером варианте).
Вчера собирал RetroArch из сорцов прямо на GameShell - сборка прошла довольно быстро, надо отметить! И процесс был вполне себе классический -
Сейчас всё делается сильно проще, чем делалось в своё время для Dingoo A320 - там и SDK был сильно более экзотичный, и компилировать на железке возможности не было. Так что с точки зрения открытости для экспериментов, GameShell прекрасен ;)
git clone, configure, make, make install, т.е. всё как у больших. Даже apt-get build-dep делал - Debian же :)Сейчас всё делается сильно проще, чем делалось в своё время для Dingoo A320 - там и SDK был сильно более экзотичный, и компилировать на железке возможности не было. Так что с точки зрения открытости для экспериментов, GameShell прекрасен ;)
Вчера разобрал и частично утилизировал свой старый, и уже к сожалению, нерабочий Kindle Keyboard.
Сколько книг я на нём прочитал! Но увы, пациент в какой-то момент скончался (скорее всего проблема была в альтернативном загрузчике, который я поставил для того, чтобы поиметь полноценную читалку PDF).
Процесс утилизации вышел грустным, но некоторое удовольствие я он него получил: очень уж хорошо девайс сделан, приятно разбирать. Все ВЧ-чувствительные участки платы экранированы кожухами, периферия присоединяется шлейфами с отличными коннекторами, жёсткость конструкции достигается использованием металлического шасси (на вид - анодированный алюминий).
А ещё на моей читалке наличествовал то самый "бесплатный мобильный интернет по всему миру навсегда" - он и правда работал много где и бесплатно! Поэтому теперь у меня есть GSM-модуль. Т.к. оный опционален, то и сделан отчуждаемым, но часть обвеса располагается на основной плате, в т.ч. и кроватка для SIM-карты, поэтому я не уверен, что смогу модуль нормально использовать. Ну да лажно, если криворукость мне помешает, кому-нибудь пряморукому подарю :)
P.S. Ещё у меня есть живой экран (при неживой "тушке" - редкое сочетание!), который я могу задонатить в качестве запчасти. Это Pearl размера 6", если что.
#hardware #electronics
Сколько книг я на нём прочитал! Но увы, пациент в какой-то момент скончался (скорее всего проблема была в альтернативном загрузчике, который я поставил для того, чтобы поиметь полноценную читалку PDF).
Процесс утилизации вышел грустным, но некоторое удовольствие я он него получил: очень уж хорошо девайс сделан, приятно разбирать. Все ВЧ-чувствительные участки платы экранированы кожухами, периферия присоединяется шлейфами с отличными коннекторами, жёсткость конструкции достигается использованием металлического шасси (на вид - анодированный алюминий).
А ещё на моей читалке наличествовал то самый "бесплатный мобильный интернет по всему миру навсегда" - он и правда работал много где и бесплатно! Поэтому теперь у меня есть GSM-модуль. Т.к. оный опционален, то и сделан отчуждаемым, но часть обвеса располагается на основной плате, в т.ч. и кроватка для SIM-карты, поэтому я не уверен, что смогу модуль нормально использовать. Ну да лажно, если криворукость мне помешает, кому-нибудь пряморукому подарю :)
P.S. Ещё у меня есть живой экран (при неживой "тушке" - редкое сочетание!), который я могу задонатить в качестве запчасти. Это Pearl размера 6", если что.
#hardware #electronics
В своё время для Kindle с бесплатным интернетом выходил SDK, позволяющий разрабатывать приложения с бесплатным же пакетом для connectivity features. Скажем, можно было написать монитор курсов валют, и получать обновления данных по всему миру бесплатно - трафик довольно сильно лимитировался, но для подобных задач (пару раз в день сходить за небольшим JSON или двадцать раз сходить за маленьким JSON) хватало и бесплатного пакета. Сам я, правда, так и не сподобился что-то такое написать, а теперь, вот, жалею...
BoldPort - интересный прокет для тех, кто любит попаять ради самого процесса (как я, например).
Суть: платим за подписку, получаем раз в месяц (пишут, что шлют по всему миру и доставка включена) маленький красиво упакованный набор деталей и плат для сборки некоторого устройства. Устройства обычно достаточно просты и ценны в основном с эстетической точки зрения - сувениры, экспонаты для коллекции (все наборы разные и не повторяются), источник вдохновения.
Эстетика присутствует, например, в разводке плат: оные разведены в Inkscape - да-да, в векторном графическом редакторе, а не в программе-трассировщике. Разводка выполнена вручную под руководством чувства прекрасного, поэтому изобилует завитками и бедна на прямые линии :)
Некоторые наборы интересны необычностью компоновки - как вам устройство, выглядещее как ананас или кузнечик? Другие же представляют собой головоломки: схема сборки не прилагается, нужно самим догадаться, что и куда подключается - а заодно понять, что устройство в целом делает! (бояться не стоит - схемы там довольно простые, вот пример).
Чем-то этот проект мне напомнил Circuit Classics - тоже сувенирные схемки для самостоятельной сборки и последующего показа всем подряд :)
#diy #electronics
Суть: платим за подписку, получаем раз в месяц (пишут, что шлют по всему миру и доставка включена) маленький красиво упакованный набор деталей и плат для сборки некоторого устройства. Устройства обычно достаточно просты и ценны в основном с эстетической точки зрения - сувениры, экспонаты для коллекции (все наборы разные и не повторяются), источник вдохновения.
Эстетика присутствует, например, в разводке плат: оные разведены в Inkscape - да-да, в векторном графическом редакторе, а не в программе-трассировщике. Разводка выполнена вручную под руководством чувства прекрасного, поэтому изобилует завитками и бедна на прямые линии :)
Некоторые наборы интересны необычностью компоновки - как вам устройство, выглядещее как ананас или кузнечик? Другие же представляют собой головоломки: схема сборки не прилагается, нужно самим догадаться, что и куда подключается - а заодно понять, что устройство в целом делает! (бояться не стоит - схемы там довольно простые, вот пример).
Чем-то этот проект мне напомнил Circuit Classics - тоже сувенирные схемки для самостоятельной сборки и последующего показа всем подряд :)
#diy #electronics
Boldport
Electronics craftsmanship. We are an electronics design studio creating innovative electronic products with attention to functional and aesthetic elements.
Сохряню тут, раз уж старался, писал. Это из чата про #elm.
И именно средства для управления сложностью кода делают язык пригодным для реализации на нём действительно больших проектов!
С этой точки зрения плох Go - абстрагирование там не в чести и встроенные средства для построения абстракции очень бедны (из, можно сказать, нет). А это означает, что большие проекты состоят из копипаст (в т.ч. и из копипаст ошибок!) и местных велосипедных ренеший (в Go тоже не принято переиспользовать чужой опыт, культура поощряет "скопировать к себе если уж сам не хочешь писать"). Процедурные языки имеют инструмент, созданный для управления сложностью - ООП. Да, "правильно готовить" его умеет не каждый, но инструмент очевидно работает - иначе его бы выбросили на свалку истории. В Go нет ООП но и нет альтернативы.
Теперь смотрим на ФП. Было когда-то сказано "лучше иметь один тип и сто функций для работы с ним, чем десять типов и по десять функций для работы с каждым" - сказано это было в контексте Lisp, но работает и для ФП в целом. И если "один тип на все случаи жизни", это странная идея, то вот единый вокабулярий для работы с разыми типами, это отличная вещь!
И вот тут мы подходим к Elm. Единый вокабулярий отнюдь не означает "у нас везде map, просто это
И всё только осложняется тем, что в Elm типизация статическая. Потому что в динамически типизированном ЯП мы можем хотя бы ad hoc полиморфизм силами "утиной типизации" сделать или на крайний случай прямо в функции решить, как с переданным типом работать (не сильно гибко и точно не особо расширяемо, но относительно обобщённый код писать позволяет). А при старической типизации в Elm мы имеем лишь "неограниченный" параметрический полиморфизм: мы всегда всё знаем о структуре, но никогда о "содержимом" типа. А значит мы не сможем без привнесения излишней сложности написать, скажем, функцию
Так что же хорошего в том, что мы имеем ФП, но такой, где функции (и типы) пользователя - объкты второго сорта; где автор решил, что такие-то типы comparable, а пользовательские - нет; где автор stdlib может писать обобщённый код - внутри stdlib - а пользователи не могут?! И не нужно говорить о "сложности для новичков" и "те, кому надо, пойдут в другие языки" и в этом же контексте "у нас - успешный язык для решения реальных задач!". Это лукавство. Потому что зрелый язык помогает решать проблемы, а не создаёт искуственно препятствия для решения оных.
--
Хаскелисты Rust ругают частенько за недофункциональность - изначально императивный язык, да-да! Но в Rust есть многое, что присутствует в больших ФП-языках, и это не "эти ваши академические штучки", а исключительно полезные вещи - я про traits и ограниченный параметрический полиморфизм говорю. Да, в Rust нет HKT и не будет никогда, скорее всего. Но даже то, что есть, очень сильно помогает управлять сложностью через абстракцию.И именно средства для управления сложностью кода делают язык пригодным для реализации на нём действительно больших проектов!
С этой точки зрения плох Go - абстрагирование там не в чести и встроенные средства для построения абстракции очень бедны (из, можно сказать, нет). А это означает, что большие проекты состоят из копипаст (в т.ч. и из копипаст ошибок!) и местных велосипедных ренеший (в Go тоже не принято переиспользовать чужой опыт, культура поощряет "скопировать к себе если уж сам не хочешь писать"). Процедурные языки имеют инструмент, созданный для управления сложностью - ООП. Да, "правильно готовить" его умеет не каждый, но инструмент очевидно работает - иначе его бы выбросили на свалку истории. В Go нет ООП но и нет альтернативы.
Теперь смотрим на ФП. Было когда-то сказано "лучше иметь один тип и сто функций для работы с ним, чем десять типов и по десять функций для работы с каждым" - сказано это было в контексте Lisp, но работает и для ФП в целом. И если "один тип на все случаи жизни", это странная идея, то вот единый вокабулярий для работы с разыми типами, это отличная вещь!
И вот тут мы подходим к Elm. Единый вокабулярий отнюдь не означает "у нас везде map, просто это
List.map, Maybe.map и т.п." - это разные функции для работы с разными типами. Т.е. нет возможности писать обобщённый код. И абсолютно не важно здесь, как эти функции называются (пусть даже и понятно и "читаемо")! Нельзя написать "библиотеку, которая обобщённо работает с коллекциями" и подобные сугубо полезные в реальных проектах вещи!И всё только осложняется тем, что в Elm типизация статическая. Потому что в динамически типизированном ЯП мы можем хотя бы ad hoc полиморфизм силами "утиной типизации" сделать или на крайний случай прямо в функции решить, как с переданным типом работать (не сильно гибко и точно не особо расширяемо, но относительно обобщённый код писать позволяет). А при старической типизации в Elm мы имеем лишь "неограниченный" параметрический полиморфизм: мы всегда всё знаем о структуре, но никогда о "содержимом" типа. А значит мы не сможем без привнесения излишней сложности написать, скажем, функцию
sort : List a -> List a - мы по построению не знаем ничего об a и не можем знать при текущей модели. Да, местный ad hoc есть в виде comparable, но с чего это автор решил, что ad hoc полиморфизм нужен только в тех местах, где он сейчас есть? Примеров могу привести много - и все из реальной жизни.Так что же хорошего в том, что мы имеем ФП, но такой, где функции (и типы) пользователя - объкты второго сорта; где автор решил, что такие-то типы comparable, а пользовательские - нет; где автор stdlib может писать обобщённый код - внутри stdlib - а пользователи не могут?! И не нужно говорить о "сложности для новичков" и "те, кому надо, пойдут в другие языки" и в этом же контексте "у нас - успешный язык для решения реальных задач!". Это лукавство. Потому что зрелый язык помогает решать проблемы, а не создаёт искуственно препятствия для решения оных.
--
P.S. Это похоже на "нытьё", но я правда так считаю. Часто бываю непонят или неуслышан.Отличное короткое объяснение "что есть ADSR": https://www.youtube.com/watch?v=JT6rixgu4s4
Прекрасно подходит для того чтобы сослаться на него, если вдруг кто спросит. Поэтому "заложу" сюда :)
P.S. Канал, кстати, отличный, если вам нравится синтез звука (мне - нравится).
#music #synth
Прекрасно подходит для того чтобы сослаться на него, если вдруг кто спросит. Поэтому "заложу" сюда :)
P.S. Канал, кстати, отличный, если вам нравится синтез звука (мне - нравится).
#music #synth
YouTube
Synthesizers: ADSR Envelope Explained
Today we explain ADSR: Attack, Decay, Sustain and Release. This is a fundamental feature of subtractive synthesis and the first step to building sounds!
More about Subtractive synthesis here: https://youtu.be/TNi-6pADz0A
Do you want to know Doctor Mix's…
More about Subtractive synthesis here: https://youtu.be/TNi-6pADz0A
Do you want to know Doctor Mix's…
Внезапная минутка лёгкого красноглазия: https://lpicentral.blogspot.com/2018/08/10-useful-ncat-nc-command-examples-for.html
По ссылке набор рецептов для использования netcat так и эдак. Присутствуют и обычные сценарии вида "поднимаем чатик мужду двумя машинами", но есть и поинтереснее варианты, например двунаправленное проксирование (через fifo-девайс).
Сам я netcat пользую редко, но иногда с немалой пользой. Однажды я даже передавал по сети видео-поток (с embedded компутера формата PC104), а на принимающей стороне воспроизводил силами mplayer - стриминг, однако! Не то чтобы это было очень нужно, но работало и как минимум было забавно!
#unix #cli #networks
По ссылке набор рецептов для использования netcat так и эдак. Присутствуют и обычные сценарии вида "поднимаем чатик мужду двумя машинами", но есть и поинтереснее варианты, например двунаправленное проксирование (через fifo-девайс).
Сам я netcat пользую редко, но иногда с немалой пользой. Однажды я даже передавал по сети видео-поток (с embedded компутера формата PC104), а на принимающей стороне воспроизводил силами mplayer - стриминг, однако! Не то чтобы это было очень нужно, но работало и как минимум было забавно!
#unix #cli #networks
Blogspot
10 useful ncat (nc) Command Examples for Linux Systems
ncat or nc is networking utility with functionality similar to cat command but for network. It is a general purpose CLI tool for reading, ...
🔥1