[Из песочницы] Перевод с человеческого на ботовский

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

Читать дальше →

Мини-бенчмарк домашних релейных компьютеров

Леонард: «Беспредельный Шелдон»?!
Шелдон: «Беспредельный Шелдон» бьёт все остальные карты и не нарушает запрет на изготовление карт в домашних условиях, потому что я сделал эту на работе.

Я всё ещё строю релейный компьютер, и поэтому решил сравнить его возможности с похожими хобби-проектами.
Запускал я программы только на своём компьютере (по понятным причинам), но и для остальных нашёл несколько программ, написанных авторами, чтобы можно было сравнить хотя бы их сложность.
Числа Фибоначчи мы уже считали в прошлый раз, поэтому продолжим с программами чуть посложнее.
Читать дальше →

fiber — легковесные процессы для Arduino


А давайте притащим мир большого программирования в Arduino!


Любая программа, а тем более программа близкая к аппаратуре (а какие еще на arduino бывают?) при рассмотрении представляет собой множество параллельно работающих ветвей.


При этом в реальной жизни обработка большинства вещей в реальном времени не требуется. Достаточно иметь нечто похожее на реальное время.


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


А вот если мы программируем скажем регулятор ШИМ (не рассматриваем аппаратные способы), то тут нам возможно потребуется считать каждый такт процессора, чтобы обеспечить приемлемую точность регулирования.


Если рассмотреть структуру произвольного сложного программно-аппаратного проекта в том числе на Arduino, то увидим, что задач требующих "реального" (с жесткими требованиями) реалтайма — меньшинство, а большинству задач достаточно условного реалтайма.


Программирование реального реалтайма — это как правило прерывания и аппаратные хитрости. В этой статье поговорим о программировании реалтайма условного.

Читать дальше →

«Hello, World!» для начинающих литераторов

В век программирования всего и вся, когда даже трехмерные изображения и ландшафты задаются программно, давно назрел вопрос, а почему еще нет публичных программируемых средств для литературного творчества?

Ну а если такие инструменты уже есть либо рано или поздно появятся, то спрашивается, какой там будет первая «программа», по типу «Здравствуй, Мир!» в «обычных» языках программирования?

Действительно, специфика литературного творчества требует, как минимум, выполнения трех условий:

1. Литературный текст должен соответствовать неким канонам или, шаблонам, проще говоря.
2. Этот текст должен быть достаточно оригинальным.
3. Он должен, как минимум, нравиться автору, в какой-то мере отражать его «Я».

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

Perfect shuffle



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

Дальше много картинок, gif-анимации и немного музыки.
Читать дальше →

[Перевод] Что за чёрт, Python


Недавно мы писали о забавных, хитрых и странных примерах на JavaScript. Теперь пришла очередь Python. У Python, высокоуровневого и интерпретируемого языка, много удобных свойств. Но иногда результат работы некоторых кусков кода на первый взгляд выглядит неочевидным.


Ниже — забавный проект, в котором собраны примеры неожиданного поведения в Python с обсуждением того, что происходит под капотом. Часть примеров не относятся к категории настоящих WTF?!, но зато они демонстрируют интересные особенности языка, которых вы можете захотеть избегать. Я думаю, это хороший способ изучить внутреннюю работу Python, и надеюсь, вам будет интересно.


Если вы уже опытный программист на Python, то многие примеры могут быть вам знакомы и даже вызовут ностальгию по тем случаям, когда вы ломали над ними голову :)

Читать дальше →

[Из песочницы] Пишем и парсим на ассемблере MCS-51, как на Бейсике

Доброго времени суток, уважаемые.

В свободное от работы время увлекаюсь программирование микроконтроллеров, на ассемблере. Пока вожусь в основном со всякими PIC(12,16) и AVR, но и MCS-51 не брезгую, тем более что именно с них я собственно и начал. Уровень мой — «вечно начинающий». Это типа светодиодиком уже умею мигать, даже по таймеру.
Читать дальше →

Эксперимент: возникает ли финансовое неравенство при случайной раздаче денег



Представьте, что запертые в одной комнате люди просто раздают друг другу деньги: каждый дает по доллару кому-то другому в случайном порядке. Как в итоге средства распределятся между этими людьми? Ответ может оказаться удивительным. Читать дальше →


Последние посты