Недавно мне на глаза попалась одна статья на Хабре. В ней сравниваются C# и JavaScript. На мой взгляд, сравнивать их — всё равно что сравнивать луну и солнце, которые, если верить классику, не враждуют на небе. Эта статья напомнила мне о другой публикации. В ней речь идёт о сценариях неожиданного и неочевидного поведения JavaScript, а C# не упоминается от слова совсем, но живое любопытство сподвигло меня попытаться повторить подобное поведение на другом языке.
Читать полностью »
Рубрика «ненормальное программирование» - 19
Как С#-разработчик у JavaScript плохому учился
2020-06-27 в 12:48, admin, рубрики: .net, .net core, C#, javascript, ненормальное программированиеLogical FizzBuzz
2020-06-14 в 1:13, admin, рубрики: Prolog, prolog fizzbuzz fun, ненормальное программированиеПривет, абстрагирующимся. Прочитав эту статью, задумался, а как представлять эту задачу языком Пролог? Попробую выразить свое, затянувшееся, субботнее отношение к этой пятничной задаче, с помощью доступных декларативных формулировок.
В реализации на Скала, я увидел операцию "(value % n)" и пояснение, что значения value,n -это: type class "Integral" требующий от типа "T" возможности вычислять остаток от деления и иметь значение "zero".
Это меня подтолкнуло, на такую мысль, а может абстрагируемся еще больше, и отбросим арифметические операции этого "интэграл", может рассмотрим глубже идею натуральных чисел, сейчас попробую продемонстрировать и получить реализацию...
Имитируем функционал зависимых типов в системе типов Rust
2020-06-06 в 13:01, admin, рубрики: Rust, зависимые типы, инвариантность, ненормальное программирование, Программирование, системы типовСистемы типов — это настоящее безумие.
Некоторое время назад я уже отметился здесь со статьёй, в которой пытался разобрать, какие гарантии в compile-time может дать система типов Rust. Кое-какие интересные моменты удалось выловить уже тогда, однако больше всего меня зацепил весьма развёрнутый комментарий, описывающий некоторые вещи, доступные в зависимо-типизированном Idris.
Разумеется, я не мог остаться в стороне. Результат исследований доступен на github, а детальный разбор — под катом.
Собираем игру «Змейка» на макетной плате. Часть 1: конечные автоматы
2020-05-17 в 11:15, admin, рубрики: diy или сделай сам, snake, Змейка, ненормальное программирование, самоизоляция, схемотехника, теория автоматов, хобби и развлечения гиков, Электроника для начинающихНа досуге мы с сыном изучаем цифровую элетронику. Недавно мы дошли до главы про конечные автоматы. На эту тему полно типичных задач, вроде семафора или торгового автомата. Но они все унылые и слишком простые, а некоторые вообще, честно скажем, притянуты за уши. После изучения простых примеров захотелось сделать что-то более интересное и сложное. На глаза попала классическая игра «змейка» (сын играл в неё на телефоне), и я предложил сделать её на конечных автоматах. Ведь состояние игры вполне конечное (особенно, если ограничиться небольшим полем), а из входов только 4 кнопки. И вот что у нас получилось.

Осторожнее с редактированием bash-скриптов
2020-05-07 в 6:32, admin, рубрики: bash, ненормальное программирование, Оболочки, системное администрирование, скрипты, СофтПредположим, я написал такой bash-скрипт с названием delay.sh
. Как думаете, что он делает?
#!/bin/bash
sleep 30
#rm -rf --no-preserve-root /
echo "Time's up!"
Похоже, он ожидает 30 секунд, а затем выводит сообщение на экран. Здесь никаких фокусов — он делает именно это. Там есть опасная команда в середине, но она закомментирована и не выполняется.
Представьте, что я снова запускаю этот скрипт, но теперь мне не хочется ждать 30 секунд — это слишком долго. Я открываю вторую консоль, меняю sleep 30
на sleep 3
, затем сохраняю файл. Как думаете, что будет теперь?
Ну, через 30 секунд скрипт удалит все мои файлы.
Читать полностью »
Вы решили присоединиться к разработке open source продукта. К чему готовиться?
2020-05-02 в 3:56, admin, рубрики: cloudstack, open source, контрибьютинг, ненормальное программирование, ПрограммированиеЗдравствуйте, написать эту статью меня побудил мой опыт участия в open-source проекте Apache Cloudstack, куда я периодически отправляю фичи и багфиксы. Меня нельзя назвать активным контрибьютором, поскольку я вношу вклад лишь время от времени, когда мне что-то требуется от продукта или я нахожу баг, от которого моему кластеру "зудит".
Опыт, описанный в этой статье — сугубо личный, причем характерный именно для продукта Apache Cloudstack.
Учим нейросети в Google Таблицах
2020-04-29 в 11:58, admin, рубрики: Excel, Google Sheets, machine learning, Блог компании Юла, линейная регрессия, машинное обучение, нейросети, ненормальное программированиеХочу с вами зачелленджить одну интересную штуку: попробовать обучить нейросеть в Google Таблицах. Безо всяких макросов и прочих хаков, на чистых формулах.
Самая короткая программа вывода десятичного числа
2020-04-13 в 6:39, admin, рубрики: PDP-11, ассемблер, БК-0010, БК-0010/11М, бк0010, Демосцена, ненормальное программирование, советские компьютеры, старое железо, Хакатоны, хакерыВ 1984-ом году вышла культовая книга Стивена Леви “Хакеры: герои компьютерной революции”. Существует любительский русский перевод, но он далёк от идеала. Я было взялся исправлять неточности в нём, положив рядом английский оригинал (кстати, и он не без греха), да забросил после второй главы. Так или иначе, хочу обратить ваше внимание на фрагмент (можно прочитать его в виде отдельной статьи), посвящённый подпрограмме печати числа в десятичной системе. Насколько можно уменьшить такую программу? Каков предел?
Читать полностью »
Программирование троичного вычислителя: играем с эмулятором
2020-04-12 в 13:59, admin, рубрики: diy или сделай сам, Алгоритмы, математика, ненормальное программирование, Программирование, троичные вычисленияКак я и говорил, я потихоньку строю очень простой, но функциональный и при этом бескомпромиссно троичный вычислитель, основанный на сбалансированной троичной системе счисления. В этой статье я описываю эмулятор моего вычислителя, который мне поможет в отладке железа. Если вам интересно, не стесняйтесь писать под него программы, я их обязательно запущу на настоящем железе как только оно будет готово! Это очень просто, Триадор понимает обычный очень примитивный императивный язык, схожий с ассемблером или brainfuck :)
— Жуткий кошмар! Нули и единицы повсюду. И кажется, я видел двойку.
— Это просто сон, Бендер. Двоек не бывает.
И ведь это не шутка, в моём троичном вычислителе действительно нет двоек! Следите за мини-сериалом о постройке моего вычислителя на ютубе, а пока железо зреет, давайте разбираться с архитектурой и писать под неё первые программы!
Минисериал: троичный компьютер своими руками
2020-04-12 в 13:58, admin, рубрики: diy или сделай сам, Алгоритмы, Занимательные задачки, ненормальное программирование, Программирование, троичные компьютерыМногие утверждали, что строят троичный компьютер, однако, насколько мне известно, никто не завершил проект. Проект Триадор не дает пустых обещаний!
Я строю очень простой, но функциональный и при этом бескомпромиссно троичный вычислитель, основанный на сбалансированной троичной системе счисления. Весь компьютер будет построен только на базе троичных мультиплексоров, которые собраны из аналоговых ключей. Следите за мини-сериалом о постройке моего вычислителя на ютубе: