brain_dump_etc
637 subscribers
99 photos
4 videos
3 files
383 links
Дампы мыслей, свалка ссылок, программизмы, вот это всё (ВНИМАНИЕ: много вкусовщины!)

Автор надампленых мыслей: @astynax

Чат к каналу: https://t.me/brain_dump_chat
Плейлист трансляций: https://youtube.com/playlist?list=PLUFoWyWge7mrg4GqHLMZV62gGC912PCGq
Download Telegram
Записали с Никитой Соболевым подкаст про всякое околопитоновое: пакеты и пакетирование, безопасность этого всего.

В этой ипостаси (со мной в роли ведущего и с уклоном в IT таки) подкаст ещё только возрождается, так что нужно будет и над звуком поработать и над "отбивками". Но первый блин, хоть и комковат, но на оладушек потянет! :)

P.S. Помучились с настройкой записи и вообще общения изрядно. Mumble на мною поднятом сервере на DigitalOcean позволил сконнектиться, но услышать друг друга нам так и не удалось. В итоге записали беседу силами бота в Discord — модно, молодёжно :)

#podcast #python
👍1
Анонсировали тут play.date — портативную консоль интересного дизайна.

Что же это за железка? Портативная игровая консоль, само собой, но не "очередная", к счастью. Экран монохромный, кнопок мало, рукоятка как у шарманки сбоку! Вот в этой рукоятке и заключается вся инаковость — вращение оной управляет самим игровым процессом (да, игры у play.date будут свои, ориентированные именно на такое управление). Советую пройти на страницу и посмотреть анимацию, демонстрирующую (увы, очень поверхностно) этот самый игровой процесс — смотрится хорошо и необычно.

P.S. Я, как увидел первую картинку в интернете, сразу пошел на сайт и уже на первом экране подумал, "что-то уж больно знакомо всё — цвета, углы, кнопки, крутилка". Так и вышло (с):

> By the way, the crank came from our friends at Teenage Engineering. They were our partners for Playdate’s design. Isn’t it nice?

Nice, indeed! Ждём продолжения!

#gaming #console
Вот и отчёт о походе на FPURE
Forwarded from Хекслет
Преподаватель Хекслета Алексей Пирогов выступил на конференции FPURE в Казани. О том, как прошла конференция: http://amp.gs/dLph
Провёл второй выпуск подкаста. В этот раз про железки поговорили: #arduino, #raspberrypi, #fpga — обо всём понемногу.

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

Гость подкаста, Айнур, представлял компанию iArduino, про железки которой я уже рассказывал. У ник и канальчик есть.
Есть для #python такая библиотека, prompt_toolkit (я вроде как писал уже про неё?). Она позволяет создавать свои интерактивные командные оболочки с автодополнением, всплывающими меню, статусной строкой, богатыми средствами редактирования командной строки.

На базе toolkit создан отличный Python REPL, ptpython. IPython тоже перешёл на использование PT в какой-то момент — и это отлично, ибо унификация!

Но не #repl едиными жив PT. На нём сделаны
- pgcli, популярная командная оболочка к PostgreSQL,
- wharfee, оболочка для docker CLI (да, с автодополнением контейнеров, процессов, тегов!),
- Kube-shell, оболочка для Kubernetes.

Питонистам может быть интересен проект click-repl, который превращает любое приложение с CLI на базе замечательной click в интерактивную программу (добавляет команду repl, с очевидным поведением).

Есть даже shell полноценный: xonsh. Умеет и команды запускать и автодополнять всё, от ключей командной строки и путей до страниц в man. По совместительству является ещё и Python REPL — позволяет сделать ls, а результат вызова прямо в list comprehension обработать!

Из интересных и курьёзных проектов PT используют
- pymux, terminal multiplexer (с интересными отличиями от tmux),
- pyvim, "pure Python vim clone" (!)

P.S. На страничке библиотеки (первая ссылка) вы можете найти длинный список других проектов, использующих PT. Советую посмотреть!
​​В блоге проекта Jupyter недавно написали о voilà — инструменте, превращающем .ipynb-блокнот в самостоятельное web-приложение.

Для запуска приложения нужно всего лишь "скормить" файл программе voila и приложение откроется в браузере. На странице будут отображены текстовые блоки с разметкой, виджеты, графики. Код же по-умолчанию будет скрыт. Пользователь приложения не сможет изменять код и выполнять свой, но виджеты, подразумевающие интерактивность, продолжат работать интерактивно!

Помимо отображения блокнотов, voilà предоставляет средства настройки этого отображения через встроенный механизм шаблонов. Например, можно вывести dashboards с "живыми" графиками (см gif-ку), и даже Vue'фицировать его и получить rich GUI на стороне клиента!

Поддерживаются любые Jupyter kernels, поэтому программировать можно не только на #python, но и на #haskell (IHaskell) — красота!

Сейчас авторы ведут работу над интеграцией voilà с JupyterHub/JupyterLab. Так что скоро можно будет опубликовать блокнот в hub, и вуаля, интерактивное приложение готово!
👍1
Напишу-ка я про креативность в условиях ограничений того или иного толка.

В детстве у меня было всегда плоховато с компьютерным железом — оно у меня всегда было "видавшее виды" и "почти отжившее своё". Но именно из-за того, что я не мог использовать свою технику, чтобы, подобно моим сверстниками, заниматься современными цифровыми развлечениями, я развлекал себя сам с помощью BASIC, Pascal, Delphi — так я и стал программистом :).

Так что тема творчества в "стеснённых обстоятельствах". Поэтому и здесь я пишу про микроконтроллеры вместо больших железок и про всякие #pico8. И почитать про такое я тоже люблю.

Поделюсь парой статей от одного автора, которого почитываю. Первая статья рассказывает про 8-bit демосцену: кратко описаны классические представители соответствующего "железа" и приведены записи демок для каждого экспоната — отличный материал для тех, кто хочет познакомиться с демосценой! Ещё одна статья рассказывает о демосцене применительно к опыту автора в использовании PICO-8 (ну как же я мог о таком не написать? ;)) — есть и примеры кода парочки интересных визуальных эффектов ("демосценерских", как водится).

А вот страничка с прекраснейшей презентацией к докладу, в котором автор рассказывает о своём опыте создания проектов во время поездок в автобусах (без интернета, мощного компьютера, отвлекающих факторов и т.п.) :). Доклад очень понравился и вдохновил — прямо таки жажду подобного опыта. Хочу поехать в деревню с олдскульным ноутом и творить! Не поеду, конечно же, ибо ленив, но мечтать о таком хочется :^D.
​​Я уже писал про конструктор "собери себе телефон" — MAKERphone. Вот ещё один телефон для самодельщиков: ZeroPhone.

Эта машинка уже посерьёзнее: работает #RaspberryPi Zero вместо ESP32, да и прочего обвеса побольше имеет на борту. Собрано всё в виде бутерброда, все модули взаимозаменяемы — скажем, модем 2G можно заменить на модем 3G. Красивого корпуса как у MAKERphone пока нет, но напечатают, думаю, скоро :)

Вольно перескажу идеи, заложенные в основу проекта:

- максимальная открытость (насколько это возможно),
- высокая ремонтопригодность,
- простота модификации как железа, так и ПО,
- возможность писать софт на #python (автор даже вынес это в отдельный пункт).

Это всё подчёркнуто ставится в противовес современным телефонам для широкого рынка, которые закрыты для изучения и модификации, да и о самостоятельном ремонте предлагают забыть.

Ну что же, посыл интересный, будем посмотреть!

Меня позабавил выбор устройств ввода и вывод: это мембранная цифровая клавиатура и графический OLED-экран низкого разрешения (128x64). Ведь Pi Zero может и полноценный рабочий стол показывать, а тут такое ретроградство! Зато так сильно более гиково, это уж точно :) UI реализован на ZPUI — форке библиотеки pyLCI, которую как раз и используют для создания пользовательских интерфейсов для Linux-машинок с такими вот экранами.
Сходил на днях в музей-магазин Yandex. В первый раз сходил обстоятельно — прошлые заходы были наскоком. Посетить хотел с целью не значок купить, но на музейную экспозицию посмотреть.

А посмотреть там есть на что, в первую — и интересную мне очередь — приличное количество компьютерной техники разных лет. В музее можно пощупать Next Cube, Apple II, несколько ЕС'ок. Всякие "Микроши" во множестве также присутствуют.

И почти всё работает! Да, тот же IBM Portable PC грузится с эмулятора накопителя, как и большинство других машинок, но остальное всё аутентичное — и ПО, и экстерьер! На означенном "портативном" компьютере я и в The Last Mission поиграл, и в Moon Patrol. (увы, горячо любимого мной в детстве Tower Toppler не было). Ах, как же LMISSION выглядит на "янтарном" монохромном экране!

Ещё посидел за БК-0010). А руки-то помнят! И как "монитор" запустить, а оттуда — БЕЙСИК. Написал коду, нарисовал картинок. Я и не запомнил, что `Shift` на БК вниз сдвигает регистр, а вот "черепашку" вместо "$" в тамошнем БЕЙСИКе и фонетическую латинскую раскладку очень даже помню :)

Товарищ мой плотно залип в AT&T Unix PC — этот тоже работает, и даже графическое окружение загружает! Пытались скомпилить hello world на Си, но с заголовочниками не разобрались. Но зато порадовались ls, vi и прочему юниксовому софту на зелёном монохромном экране. Даже мышь трёхкнопочная была и курсор рисовала — терминал там в графическом эмуляторе работает, в многооконном окружении (самостоятельном, без иксов, само собой).

Итого. Если захотите вдруг, будучи в Москве, пол-дня потратить на ретроградство — посетите сий музей. Не пожалеете!
Люблю такое. Nimic — маленький игрушечный язык, который умеет только делать макроподстановки. Программа считается выполненной, когда больше ничего нельзя "макроподставить".

"Hello world" выглядит так:

hello world

Лаконично ;)

В статье прямо на макросах реализуется поток исполнения инструкций — встроенного нет! Затем реализуются условная конструкция if, которой изначально тоже нет, как и булевого типа (типов вообще нет!). Следом pattern matching уже на основе if.

А ещё Nimic умеет вызывать bash соответствующим ключевым словом. И это единственный способ сделать side effect, или, скажем, реализовать систему модулей

macro (import #file) (bash (cat #file))

и математику(!)

macro (math #m) (bash (bc <<< " #m "))

Реализован язык за выходные. На #haskell, как водится. Есть даже интерактивный отладчик (см. картинку ниже). Рекомендую к ознакомлению :)
Интерактивный отладчик для Nimic
Вот вам и вебчик на Nimic — с netcat под капотом!
(ехидный смех) >8:^]
​​Пока вчера ехал в поезде, решил порисовать. На #racket, конечно же.

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

P.S. Надо бы этот "мирок" анимировать. Но нужно будет придумать, как сделать переход из света в тень для облаков (они из трёх кружков состоят, так что можно попробовать поэлементно затенять...)
​​Я уже пару раз писал про самодельные телефоны. Напишу ещё раз: знакомьтесь, WiPhone!

WiPhone не умеет подключаться к сотовой сети, вместо этого предлагается VoIP. Зато корпус у телефона на этот раз не настолько "диайвайный". Цветной QVGA экран, #esp32 вместо мозгов (:)), поддержка #arduino (языка), #micropython — софт писать сможет каждый. Из периферии имеется MicroSD, 3.5mm jack, классические кнопочки. Все шины вынесены на коннектор материнской платы.

Дальше начинается более интересное: к материнской плате можно подключить дочернюю, которая по совместительству будет ещё и задней крышкой корпуса. И таких "дочек" уже анонсировано немало! Тут и банальная "батарея побольше" (аж до 5Ah), и паяемая макетка. Есть матричка RGB-диодов во всю "спину" телефона, платформа с колёсами (RC Car — как будто нынче мало проектов a la "сделаем ещё и из этого радиоуправляемую машинку" >:^[). Присутствуют дочки с NFC/RFID и barcode-сканером — можно для складского учёта использовать или на LARP(ПРИ) использовать для сканирования пеньков на предмет клада.

Но мне лично гораздо интереснее задник с LoRa: вот это уже интересное дополнение к не-очень-мобильному-из-за-WiFi телефону, позволяющее "СМСить" на расстояния до 2км! И задник с BusPirate тоже выглядит полезно и "непопсово" :)

P.S. Не то чтобы этот проект сразу же заставляет себя хотеть, но как минимум польза от железки вместе с задниками BusPurate и LoRa может быть вполне ненулевая!

#diy #electronics
Печальная новость, конечно: BitBucket выпиливают поддержку Mercurial.

Я несколько лет проработал в компании, в которой Mercurial использовали для хранения кода. В своих проектах на git перешёл только из-за GitHub, а до этого использовал Hg — на BitBucket как раз. До сих пор считаю, что концептуально Mercurial приятнее и в использовании проще.