spamsink: (Default)
[personal profile] spamsink
Как бы вы назвали систему счисления, в которой натуральные числа записываются так:

1, 2, 20, 21, 22, 210, 211, 212, 2100, 2101, ...

(Умники, не мучьтесь.)

варианты )
Sep. 17th, 2017 10:32 am

Жизненный Тетрис

spamsink: (Default)
[personal profile] spamsink
4 с лишним года назад была поставлена задача: реализовать Тетрис на игре "Жизнь".
Года полтора назад эту задачу восприняли всерьёз и начали над ней работать.

Недавно она была успешно решена.




Размер получившейся конструкции - примерно 3 миллиона на 10.5 миллионов клеток, в которых реализован 16-битный асинхронный RISC-процессор с гарвардской архитектурой, на котором, собственно, и бежит (если это слово здесь уместно) тетрис. Оперативная память (RAM) служит дисплеем, а одна из ее ячеек - регистром прерываний "от клавиатуры". Память программ (ROM) для уменьшения размера картинки обрезана.

Каждый пиксель на картинке - это 2048х2048 клеток игры "Жизнь", которые за 35328 поколений реализуют одно поколение клеточного автомата с произвольными правилами (разные цвета на картинке соответствуют разным правилам/состояниям).
Sep. 15th, 2017 12:34 pm

Делаем пушку Гаусса

vak: (Default)
[personal profile] vak
В моём детстве мы слышали про электромагнитную пушку, но мастерить удавалось только пневматические или пороховые. У нынешних подростков гораздо больше возможностей.

Tags:
vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner
https://tech.slashdot.org/story/17/09/14/1941212/psa-google-will-delete-your-android-backups-if-your-device-is-inactive-for-two-months?

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

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

Вопрос в том, что бэкап это вообще такая вещь, которая в 99% случаев востребована не будет. А вот в том единственном проценте случаев, когда он понадобится, будет очень обидно, что пока телефон ожидал в мастерской ремонта (или пересылался к производителю на гарантийную замену и обратно) бэкап уже стерли.
vak: (Default)
[personal profile] vak
Omega2+ это относительно новая плата для IoT с интерфейсом Wi-Fi по цене $13. На плате установлен Линукс OpenWRT. В качестве языков програмирования рекомендуются Python и Javascript. Честно говоря, мне все эти скриптовые языки кажутся несерьёзным баловством. Но имея карточку microSD, можно запустить полноценный Debian Linux, а под ним нормальные компиляторы Си, Go и прочие.



Шаг 1: готовим microSD-карточку. Тут понадобится линуксный компьютер. Скачиваем файл debian-stretch-mini.tgz - минимальный вариант корневой файловой системы для Debian 9 (Stretch). Вставляем карточку microSD в компьютер, непосредственно (есть есть слот SD) или через USB-адаптер. Карточка будет видна в системе как /dev/mmcblk0 или как /dev/sdc (или sdb или с другой буквой - проверьте). Нужно карточку отмонтировать, переделать таблицу разделов, создать новую файловую систему, заново смонтировать и распаковать туда файлы. Выглядит это примерно так:

sudo umount /dev/mmcblk0p1
sudo sfdisk /dev/mmcblk0 << EOF
/dev/mmcblk0p2 : size=512M, type=82
/dev/mmcblk0p1 : type=83, bootable
EOF
sudo mke2fs /dev/mmcblk0p1
sudo mkswap /dev/mmcblk0p2
sudo mount /dev/mmcblk0p1 /mnt
sudo tar xzf debian-stretch-mini.tgz -C /mnt
sudo umount /mnt


Шаг 2: подсоединяем консольный порт. Используем штатный Expansion Dock или любой адаптер USB-to-serial, например FT232, CP2102 или CH340. Сигнал GND адаптера соединяем с ножкой GND платы, сигнал TXD - с ножкой P9, RXD - P8. Включаем USB-адаптер в компьютер и подключаемся к консольному порту на скорости 115200. Нажимаем кнопку "Reset" - видим протокол загрузки типа этого.

Шаг 3: настраиваем подключение Wi-Fi, как описано на официальном сайте. Устанавливаем нужные пакеты, подключаем раздел swap. Заметьте: мы никоим образом не портим исходную предустановленную систему OpenWRT. Все имеющиеся функции и методы разработки, описанные в руководстве для платы Omega2+, продолжают работать.

wifisetup
[...]
opkg update
opkg install swap-utils block-mount e2fsprogs


Шаг 4: стартуем среду Debian. Для этого мы используем утилиту chroot. Корневая файловая система Debian находится на карточке microSD. Ее всегда можно вынуть и переставить в другой компьютер: переписать нужные файлы, сдублировать, забэкапить и т.п. В принципе, когда заработал Wi-Fi, консольный порт больше не нужен - можно подключаться через ssh (предварительно установив пароль на root).

swapon /dev/mmcblk0p2
mount --bind /dev /tmp/run/mountd/mmcblk0p1/dev
mount --bind /proc /tmp/run/mountd/mmcblk0p1/proc
mount --bind /sys /tmp/run/mountd/mmcblk0p1/sys
chroot /tmp/run/mountd/mmcblk0p1 /bin/bash


Вы оказываетесь в оболочке bash из окружения Debian. Здесь при первом запуске имеет смысл установить полезные пакеты:

apt-get update
apt-get install locales bison byacc flex libelf-dev libfuse-dev \
build-essential make autoconf automake libtool gdb fuse man-db \
groff less ed bmake git byacc flex exuberant-ctags libfuse-dev \
bmake git byacc flex exuberant-ctags libfuse-dev dialog \
openssh-client subversion le vim gettext iputils-ping locate procps


Теперь у вас имеется полноценный Debian Linux, со всеми наворотами и Wi-Fi подключением к интернету. Можно скачивать, компилировать и запускать любой софт. И все это на платке размером 2x4 сантиметра.

Чтобы освободить карточку перед тем как вынуть, надо будет выполнить:

umount /tmp/run/mountd/mmcblk0p1/dev
umount /tmp/run/mountd/mmcblk0p1/proc
umount /tmp/run/mountd/mmcblk0p1/sys
umount /tmp/run/mountd/mmcblk0p1
swapoff /dev/mmcblk0p2
vak: (Default)
[personal profile] vak
Протокол загрузки платы Omega2+. На пладе установлен процессор MIPS с частотой 580 МГц и 128 мегабайт памяти, а также порт Wi-Fi и SD флэш карточка.

Протокол загрузки )
spamsink: (Default)
[personal profile] spamsink
Из серии "I just couldn't resist".

Разбавляем рабочие будни небольшим количеством классики кино:

    if (expr.op() == OP_COND && expr.operand2().op() == OP_COND) {
        // I think this is the beginning of a beautiful priority encoder.
        ...
    }
Tags:
Sep. 13th, 2017 07:05 pm

(no subject)

mr_bison: (Default)
[personal profile] mr_bison
Ночь. Улица. Фонарь.
Я список кораблей прочел до середины
Я очутился в сумрачном лесу,
Утратив правый путь во тьме долины
spamsink: (Default)
[personal profile] spamsink
Символ ПЦ у нас есть, на очереди символ УГ.
Sep. 12th, 2017 09:34 pm

Мудрость древних redux

spamsink: (Default)
[personal profile] spamsink
Пишут, что continuations (продолжения) придумал Черчилль в 18-м году ван Вийнгаарден в 1964 году.

Но оказывается, что еще в Алголе-60 штука, которая называлась формальным параметром-меткой, на самом деле была почти продолжением.

пример под катом, для тех, кто понимает )
ti_ua: (Default)
[personal profile] ti_ua
Канал Cвятого Анте.
Третю забанили в єтіх ваших інтернетіках.

Sep. 12th, 2017 09:35 pm

Standalone

mr_bison: (Default)
[personal profile] mr_bison
Чот подумал я тут и решил перебираться на уютный стэндалончик - надоело зависеть от загонов хозяев той или иной площадки, цензуры и т.д.

Дык мож посоветуете чего, дамы и господа? Какой-нибудь хостинг недорогой и какой движок выбрать, что возможность трансляции бложика в соцсети и т.д. была и может форум можно было прикрутить. Только желательно что-то не геморройное и при этом некоммерческое.
vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner
Вот не знаю что не вовремя обновилось - то ли система андроид, то ли сам OsmAnd, но почему-то он перестал уметь записывать файлы в /storage/sdcard1/Android/data/net.osmand.plus/files

Хотя вроде как в 5-м андроиде приложения имеют право писать в такой каталог.

На данном телефоне это равнозначно полной неработоспособности приложения. Потому что места во внутренней памяти нет. Оно все занято какой-то спаовой хренью, которую туда напихала Sony. Ну и вообще в этом телефоне исходно внутренней памяти не было в достойных второго десятилетия XXI века количества.

Вот чтобы той скотине в гугле, которая придумала ограничить доступ по записи на SD-карту, икалось посильнее.
Tags:
Sep. 11th, 2017 01:33 am

Как запитать блок У

vak: (Default)
[personal profile] vak
В наши края прилетел Костя Пылаев и привёз в качестве сувенира блок У от БЭСМ-6:



Пытаюсь изобрести способ оживить этот блок. Он требует семь номиналов питания: +40В, +5В, -0.3В, -1.6В, -3.5В, -9В, -60В. Это не считая переменных 6В на вход подвешенного источника питания (ПИП). Простейшая идея, которая приходит в голову: взять несколько простых регулируемых модулей DC-DC и запитать их от пары стандартных ноутбучных блоков питания 20В.

Первый блок питания обеспечивает напряжения +40В, +5В, -0.3В, -1.6В, -3.5В, -9В. Принимаем -9В за условный ноль и настраиваем модули DC-DC на напряжения:
+49В (step up)
+14 В (step down)
+9 В (step down)
+8.7 В (step down)
+7.4 В (step down)
+5.5 В (step down)

Второй блок питания даёт -60В, посредством модуля step up, настроенного на -51V (условный ноль у нас -9В).

В сумме понадобятся пять модулей step down (5 x $3.74) и два модуля step up (2 x $5.24), а также два блока питания от ноутбука (2 x $8.99).
spamsink: (Default)
[personal profile] spamsink
Вот, говорят, много есть в английском языке слов, которые по-русски одним словом не скажешь. Та же privacy, к примеру. А сегодня пришло мне в голову русское слово, которое по-английски объяснить непросто:

попробуйте )

Гугловский перевод "hard times" - жалкое подобие.
Sep. 10th, 2017 11:11 pm

Про выборы

vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner
Что-то мне нынешние выборы напоминают большой футбол.

Ну то есть там тоже какие-то люди, и этих людей довольно много, целый стадион набирается - толпятся, шумят волнуются кто победить - те или эти, до драк дело доходит.
Но реально ни для кого, кроме собственно футбольных команд и их фэн-клубов нет никакой разницы, кто именно станет чемпионом - "Спартак" или "ЦСКА".

По-моему так же и тут. Когда вы последний раз слышали про свое муниципальное собрание и его депутатов вне контекста выборов? Помогли ли хоть кому-нибудь эти депутаты исключить дом из списков на реновацию или наоборот включить туда? Остановили ли они хоть где-нибудь вакханалию "Их улицы"? Да хоть на детскую площадку где-нибудь денег нашли?
Sep. 10th, 2017 05:06 pm

CouchDB Photon

ermouth: (Default)
[personal profile] ermouth

Написал админку для CouchDB – Photon.

То-есть уже есть две – Futon (исторически первый) и Fauxton (для новых версий). Второй – модный, но совсем неудобный, плюс в угоду моде очень сильно страдает информационная плотность. Первый – существует только для версий до 1.6.1 (актуальная – 2.1), тоже не слишком удобный, но всё прекрасно с информационной плотностью. Плюс у обоих проблемы с обновлением – то-есть поставил CouchDB и живи потом всегда со встроенной админкой в той версии, которая была на момент установки.

Я решил сделать и удобный, и с нормальной информационной плотностью, и обновляемый независимо от самой БД. Дополнительным ограничением было отсутствие любых опен-сорцных библиотек, происходящих из крупных корпораций. Последние события показали что их опен-сорц с гнильцой (привет, Фейсбук и Реакт).

Первые эскизы нарисовались в конце августа, примерно так:

Photon-1

В результате три эскиза превратились в полное приложение за две с небольшим недели:

Снимок-экрана-2017-09-10-в-17.32

Установка – просто курлом или копипастой засунуть в базу 1 (один) json-документ объёмом 1.5 мега. Обновление потом по одному клику из интерфейса, с AWS S3 CDN, так сейчас очень много кто делает.

Конечно же, приложение никогда не существовало в виде исходных файлов на файловой системе, вся разработка – в браузере, в CloudWall. Выглядит это примерно так:

Снимок экрана 2017-09-10 в 18.00.10

На картинке Photon запущен в окошке в среде разработки и просматривает сам себя: функция слева – исходник в IDE, функция открытая в окошке – она же, но в коде уже собранного Photon-а. Рефлект рефлекта, редкий зверёк.

Оч здорово получилось в целом, кто юзает CouchDB – рекомендую.

vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner
Комментарий [personal profile] ramendik к предыдущему посту натолкнул меня на мысль:

Вот Генри Форда и фирму "Форд Моторс" знают все. И если не обожествляют, как герои Олдоса Хаксли, то по крайней мере приписывают ей критически важную роль в промышленной революции начала XX века. Тут и конвейер, тут и принципиально новое отношение к рабочим как к ценному ресурсу и части рынка, и массовая автомобилизация.

Но вот почему-то Джона Дира (John Deere) знают гораздо меньше. А ведь его роль в той же самой промышленной революции и в социальных преобразованиях в США приведших к Великой Депрессии и Новому Курсу - ничуть не меньше.

Если Форд - это автомобиль, то Джон Дир - это трактор. Современный универсальный трактор со шлейфом прицепных и навесных орудий. То есть это технология, определившая современный облилк сельского хозяйства и дорожного строительства. Собственно, поднялся-то Джон Дир как раз на автострадных проектах Рузвельта, то есть за современный автомобильный облик Америки он ответственнен не меньше, чем Форд. А еще он ответственнен за современный облик американского сельского хозяйства с огромными фермами, обслуживаемыми небольшими, часто семейными команадми, аутсурсящими обслуживание техники развитой сети сервис-центров.

Развивайся сельско-хозяйственная техника чуточку по-другому, не было бы нынешней фермерской Америки, которая сейчас бодается с Диром за right to repair, а было бы что-то типа советских МТС той же эпохи и плантационного хозяйства.

Profile

spiiin: (Default)
spiiin

September 2017

S M T W T F S
     1 2
34 567 89
101112131415 16
17181920212223
24252627282930

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 19th, 2017 11:38 am
Powered by Dreamwidth Studios