В 1984-ом году вышла культовая книга Стивена Леви “Хакеры: герои компьютерной революции”. Существует любительский русский перевод, но он далёк от идеала. Я было взялся исправлять неточности в нём, положив рядом английский оригинал (кстати, и он не без греха), да забросил после второй главы. Так или иначе, хочу обратить ваше внимание на фрагмент (можно прочитать его в виде отдельной статьи), посвящённый подпрограмме печати числа в десятичной системе. Насколько можно уменьшить такую программу? Каков предел?
Читать полностью »
Рубрика «ненормальное программирование» - 19
Самая короткая программа вывода десятичного числа
2020-04-13 в 6:39, admin, рубрики: PDP-11, ассемблер, БК-0010, БК-0010/11М, бк0010, Демосцена, ненормальное программирование, советские компьютеры, старое железо, Хакатоны, хакерыПрограммирование троичного вычислителя: играем с эмулятором
2020-04-12 в 13:59, admin, рубрики: diy или сделай сам, Алгоритмы, математика, ненормальное программирование, Программирование, троичные вычисленияКак я и говорил, я потихоньку строю очень простой, но функциональный и при этом бескомпромиссно троичный вычислитель, основанный на сбалансированной троичной системе счисления. В этой статье я описываю эмулятор моего вычислителя, который мне поможет в отладке железа. Если вам интересно, не стесняйтесь писать под него программы, я их обязательно запущу на настоящем железе как только оно будет готово! Это очень просто, Триадор понимает обычный очень примитивный императивный язык, схожий с ассемблером или brainfuck :)
— Жуткий кошмар! Нули и единицы повсюду. И кажется, я видел двойку.
— Это просто сон, Бендер. Двоек не бывает.
И ведь это не шутка, в моём троичном вычислителе действительно нет двоек! Следите за мини-сериалом о постройке моего вычислителя на ютубе, а пока железо зреет, давайте разбираться с архитектурой и писать под неё первые программы!
Минисериал: троичный компьютер своими руками
2020-04-12 в 13:58, admin, рубрики: diy или сделай сам, Алгоритмы, Занимательные задачки, ненормальное программирование, Программирование, троичные компьютерыМногие утверждали, что строят троичный компьютер, однако, насколько мне известно, никто не завершил проект. Проект Триадор не дает пустых обещаний!
Я строю очень простой, но функциональный и при этом бескомпромиссно троичный вычислитель, основанный на сбалансированной троичной системе счисления. Весь компьютер будет построен только на базе троичных мультиплексоров, которые собраны из аналоговых ключей. Следите за мини-сериалом о постройке моего вычислителя на ютубе:
Играем музыку из Mario на системном динамике
2020-04-09 в 16:36, admin, рубрики: beeper, buzzer, C, c/c++, DIY, diy или сделай сам, dos, Mario, pc-speaker, Компьютерное железо, ненормальное программирование
Предисловие
Привет, Мир!
Уже года 3 хочу написать что-нибудь на Хабр, но никак не находилось темы, на которую можно было бы накатать пост. Так было до тех пор пока мне не понадобилось узнать немного про работу системного таймера и системного динамика для лабораторной работы. Порыскав немного в интернете, я не нашел ничего дельного: что-то было написано слишком сложным языком, что-то было не особо содержательно. Я обзавелся неплохой книгой, целой ночью и попытался сыграть всеми известную тему из игры Марио. Продолжение прямо под катом, вроде бы у вас тут так заведено.
Дисклеймер
Код написан так как он написан. Автор не гений программирования, а всего лишь студент, но тем не менее, попытался написать максимально читаемый и понятный код. Всё было написано на Borland C и было протестировано в DOSBox только потому, что нет установленного доса и не очень хочется напортачить с часами реального времени.
В далеком 2012 году Loiqig уже написал более крутую версию, но, как мне показалось, мало внимания уделил теории.
Так же автор (т.е. я) имеет 4 года музыкального образования и был плох в сольфеджио (музыкальная грамота).
Читать полностью »
Макросы для питониста. Доклад Яндекса
2020-04-03 в 7:37, admin, рубрики: PyPi, pytest, python, Блог компании Яндекс, изучение языков, макросы, ненормальное программирование, паттерны программирования, преобразования, Тестирование веб-сервисовКак можно расширить синтаксис Python и добавить в него необходимые возможности? Прошлым летом на PyCon я постарался разобрать эту тему. Из доклада можно узнать, как устроены библиотеки pytest, macropy, patterns и как они добиваются таких интересных результатов. В конце есть пример кодогенерации с помощью макросов в HyLang — Lisp-образного языка, бегущего поверх Python.
— Привет, ребята. Хочу в первую очередь поблагодарить организаторов PyCon. Я разработчик в Яндексе. Доклад будет совсем не про работу, а про экспериментальные вещи. Возможно, кого-то из вас они наведут на мысль, что в Python можно делать клевые штуки, о которых вы раньше даже не догадывались, не мыслили в эту сторону.
Читать полностью »
The Silverfish Programming Language
2020-04-02 в 16:44, admin, рубрики: april fools' day, programming languages, изучение языков, ненормальное программированиеThey say, each professional developer must have done at least three pet projects: a sophisticated logging utility, a smart json parser, and an amazing programming language. Once we have both logger and parser accomplished, we finally decided to reveal our desperate success in creation one of the most innovative programming languages named Silverfish.
Альтернативная форма тернарного оператора Python
2020-04-01 в 13:56, admin, рубрики: python, ненормальное программирование, тернарный операторНедавно я открыл для себя альтернативу стандартной конструкции "expression_on_true if predicate else expression_on_false", которую я не встречал в справочниках:
(expression_on_false, expression_on_true)[predicate]
Как это работает
- В круглых скобках объявляется кортеж из двух элементов.
- В квадратных скобках вычисляется значение предиката.
- Происходит обращение к кортежу по индексу 1 (если значение предиката True) или 0 (если значение предиката False)
Язык программирования karasic
2020-04-01 в 5:37, admin, рубрики: изучение языков, ненормальное программирование, первое апреля, языки программированияПривет, друг.
Как известно, каждый уважаемый кодер рано или поздно пишет свой логер, парсер json и язык программирования. Поскольку первое и второе мы уже написали, то нам ничего не остаётся, как представить наши наработки по новому инновационному языку программирования karasic.
Назад к истокам: рулим компьютером прямо из MBR
2020-03-26 в 21:00, admin, рубрики: mbr, ассемблер, загрузка, КодоБред, ненормальное программирование, низкоуровневое программирование, опкоды, Процессоры, системное программированиеРазворачивал в очередной раз Linux-образ на USB-drive (почему-то им оказался Manjaro, но это совсем другая история), и в голову пробрались странные мысли: BIOS увидел флешку, а дальше-то что? Ну да, там MBR, скорее всего GRUB и… А раз в MBR затесался чей-то кастомный код, значит и простой человек из Адыгеи может запрограммировать что-нибудь на «большом» компьютере, но вне операционной системы.
А так как делать такие штуки на языках высокого уровня слишком жирно, а ассемблеров мы не знаем, будем шпарить прямо на опкодах для 8086.
Grafana, InfluxDB, два тега и одна сумма. Или как посчитать сумму подгрупп?
2020-03-17 в 14:08, admin, рубрики: Grafana, influxdb, jolokia, Raiffeisenbank, raiffeisendgtl, Блог компании Райффайзенбанк, визуализация данных, высокая производительность, ненормальное программирование, Тестирование IT-системЗанимаюсь тестированием производительности. И очень люблю настраивать мониторинг и любоваться метриками в Grafana. А стандартом для хранения метрик в инструментах для подачи нагрузки является InfluxDB. В InfluxDB можно сохранять метрики из таких популярных инструментов, как:
Работая с инструментами по тестированию производительности и их метриками, накопил подборку рецептов программирования для связки Grafana и InfluxDB. Предлагаю рассмотреть интересную задачу, которая возникает там, где есть метрика с двумя и более тегами. Думаю, это не редкость. И в общем случае задача звучит так: подсчёт суммарной метрики по группе, которая делится на подгруппы.
Читать полностью »