Size: a a a

2019 June 14
brain_dump_etc
Провёл второй выпуск подкаста. В этот раз про железки поговорили: #arduino, #raspberrypi, #fpga — обо всём понемногу.

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

Гость подкаста, Айнур, представлял компанию iArduino, про железки которой я уже рассказывал. У ник и канальчик есть.
источник
brain_dump_etc
Есть для #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. Советую посмотреть!
источник
2019 June 18
brain_dump_etc
​​В блоге проекта Jupyter недавно написали о voilà — инструменте, превращающем .ipynb-блокнот в самостоятельное web-приложение.

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

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

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

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

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

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

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

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

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

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

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

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

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

Меня позабавил выбор устройств ввода и вывод: это мембранная цифровая клавиатура и графический OLED-экран низкого разрешения (128x64). Ведь Pi Zero может и полноценный рабочий стол показывать, а тут такое ретроградство! Зато так сильно более гиково, это уж точно :) UI реализован на ZPUI — форке библиотеки pyLCI, которую как раз и используют для создания пользовательских интерфейсов для Linux-машинок с такими вот экранами.
источник
2019 July 09
brain_dump_etc
Сходил на днях в музей-магазин 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 и прочему юниксовому софту на зелёном монохромном экране. Даже мышь трёхкнопочная была и курсор рисовала — терминал там в графическом эмуляторе работает, в многооконном окружении (самостоятельном, без иксов, само собой).

Итого. Если захотите вдруг, будучи в Москве, пол-дня потратить на ретроградство — посетите сий музей. Не пожалеете!
источник
brain_dump_etc
источник
brain_dump_etc
источник
brain_dump_etc
источник
brain_dump_etc
источник
brain_dump_etc
источник
2019 July 20
brain_dump_etc
Люблю такое. 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, как водится. Есть даже интерактивный отладчик (см. картинку ниже). Рекомендую к ознакомлению :)
источник
brain_dump_etc
Интерактивный отладчик для Nimic
источник
brain_dump_etc
Вот вам и вебчик на Nimic — с netcat под капотом!
(ехидный смех) >8:^]
источник
2019 July 30
brain_dump_etc
​​Пока вчера ехал в поезде, решил порисовать. На #racket, конечно же.

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

P.S. Надо бы этот "мирок" анимировать. Но нужно будет придумать, как сделать переход из света в тень для облаков (они из трёх кружков состоят, так что можно попробовать поэлементно затенять...)
источник
2019 August 10
brain_dump_etc
​​Я уже пару раз писал про самодельные телефоны. Напишу ещё раз: знакомьтесь, 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
источник
2019 August 20
brain_dump_etc
Печальная новость, конечно: BitBucket выпиливают поддержку Mercurial.

Я несколько лет проработал в компании, в которой Mercurial использовали для хранения кода. В своих проектах на git перешёл только из-за GitHub, а до этого использовал Hg — на BitBucket как раз. До сих пор считаю, что концептуально Mercurial приятнее и в использовании проще.
источник
2019 September 02
brain_dump_etc
​​С микроконтроллерами фирмы Atmel я знаком давно, особенно — с семействами ATMega и ATTiny. На полках и балконе храню запас старых "мег" в DIP-корпусах — вдруг захочется светодиодом помигать! И пусть нынче на каждом шагу призывают забыть уже AVR и пересесть на STM, но любителей старых-добрых "авээрок" всё ещё предостаточно.

Взять хотя бы того же David Johnson-Davies, ведущего Technoblogy — с завидной постоянностью выдаёт статьи про свои проекты на базе малюток ATTiny. И какие проекты! 3D-часы, показывающие время в виде стереоскопической картинки (ага, такой, для просмотра которой нужно скрещивать глаза), функциональный генератор на восьминожке ATTiny85 и наручные часы на ней же (12 светодиодов, управляемые одной лишь восьминожной без какого-либо дополнительного обвеса вроде сдвиговых регистров!). Проще говоря, ну очень вдохновительно!

А недавно я порадовался статье "Getting Started with the New ATtiny Chips" (там же). Для меня стало новостью то, что "тиньки" всё ещё выпускают и даже обновляют модельный ряд! Нынешние ATTiny стоят доллар и меньше, но уже имеют на борту невероятные (для ATTiny, конечно) 32К ПЗУ, обязательные I2C, ЦАП, 16bit таймеры — уже не очень-то tiny, получается!

Надо сходить на "али" и поискать партейку восьминожек — пополнить балконный запас :)
источник
2019 September 03
brain_dump_etc
​​Обычно dev.to выглядит, как англоязычный habr. И статейки там публикуются чаще всего капитански-графоманские.

Впрочем, бывают и исключения вроде этого: The Programming Language That Changed My Life! Статья простенькая, но воодушевляющая. Пусть автор и написал всего лишь, что смог таки открыть для себя Prolog и страшно рад этому. Комментарии к публикации тоже стоят ознакомления. В отличие от хабра, здесь всё культурно, никто никого "неосиляторами" не называет и ЧСВ не меряется. Люди просто делятся своими просветлениями от знакомства с теми или иными языками.

В статейке упоминается книга "PROLOG Programming for Artificial Intelligence" (за авторством Ivan Bratko) как открывающая глаза. Добавил себе в "прочитать когда-нибудь". Только сначала надо бы "The Reasoned Schemer" осилить…

#prolog #book
источник
2019 September 06
brain_dump_etc
​​Решили тут похакатонить на #haskell — #gamedev, движки, вот это всё.

Сабж: https://kocherga.timepad.ru/event/1057629/

Оффлайн, Москва, антикафе, бородачи с ноутами.
источник