Рубрика «ненормальное программирование» - 87

Программирование «для души»Полно, голубь, не греши!
Убери свои гроши.
Я ведь это не для денег.
Я ведь это для души.

Леонид Филатов "Сказка про Федота-стрельца, удалого молодца"

Just for Fun.

Linus Torvalds

Не секрет, что люди получают удовольствие по-разному. Одним нравится смотреть телевизор, другие собирают квадрокоптеры. Я хочу поделиться своим рецептом. Вряд ли он будет полезен всем, но возможно кого-то заинтересует. Мне нравится писать программы (и думаю, что это не редкость, даже среди профессиональных программистов), но мне не очень нравится, когда этот процесс превращается в унылую рутину.

Чтобы быть интересным, программирование должно представлять собой, своего рода «зарядку для ума». Хорошим примером такого (полезного) развлечения является, известный многим ресурс, посвященный совершенствованию навыков составления SQL-запросов. Но не SQL-ем единым жив программист! Недавно, я нашел отличный способ усовершенствовать свои навыки владения Фортом. Axiom позволяет напрограммироваться на Форте вволю!

Мой рецепт получения Fun-а, при помощи Axiom, прост:

  1. Выбираем любую игру, с правилами позаковыристее, из числа ещё не реализованных ZoG-сообществом
  2. Пытаемся её воплотить в жизнь, используя Axiom
  3. Получаем удовольствие, в процессе решения возникающих при этом задач
  4. В случае, если в полученное приложение интересно играть, выработанный Fun автоматически удваивается!

Читать полностью »

Секретные записки в коде
Давайте поговорим о возможно одной из самых важных проблем. О стилистике кода. Признавайтесь, сколько раз несли писали ересь ибо устали или просто в кофе сахара не доложили? После тяжкой рабочей ночи, с субботы на воскресенье (да я такой), я случайно забрёл в раздел для рекламодателей на хабре. Увидев прикольный элемент — я как вполне состоявшийся в жизни человек, полез смотреть как это свёрстано что бы самому голову в случае чего не ломать. И знаете что я увидел? Я увидел как меня посылает CSS. Нет, не вылезла ошибка, тут даже нету метафоры! Меня в прямом смысле послало название класса. В начале я хотел порассуждать о том самом, идеальном коде, к которому все стремятся но который раз за разом в мелочях оказывается в трещинах из-за мимолётных помешательств. Но сегодня воскресенье так, что обойдёмся обычной подборкой «юмора» на тему: «хехехе».

Читать полностью »

Для абитуриентов МФТИ проводится школа по прикладным математике и физике (подробнее о ней можно прочитать на официальном сайте). 8 июля там будет очная олимпиада по математике и физике, а вот по информатике олимпиада заочная и проводится на http://judge.mipt.ru. Олимпиада проводится по кировской системе на Ejudge. Результаты этой олимпиады будут учтены на собеседовании в МФТИ и при распределении первокурсников по группам по информатике. Победители получат призы от спонсоров – базовых организаций ФУПМ и ФРТК МФТИ — компаний Parallels и Acronis.
Читать полностью »

В статье рассказывается об одной статистической закономерности, объяснение которой приведет к интересным задачам как прикладного, так и чисто теоретического характера.

Моделирование мира и динамические системы
(Первые цифры площадей стран, записанных в десятичной записи)

Читать полностью »

В ответ на это решение, хотелось бы указать своё, несколько более простое к восприятию.
Читать полностью »

image Тема игры «Жизнь», не раз поднималась на хабре. Описывались различные модификации игры, я хочу представить еще одну. Модификация игры довольно тривиальна, но дает больше возможности в наблюдении, чем оригинал.

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

Интерпретатор Lisp на python в одну строчку? Слишком скучно.

Японский программист, инженер Google Shinichiro Hamaji написал его на sed. Sed — потоковый текстовый редактор, представляющий из себя простой язык программирования. В нем нет переменных, есть только примитив GOTO и выполняющие ветвление функциональные возможности; тем не менее он обладает полнотой по Тьюрингу.

Реализация занимает всего 600 строчек.

Выглядит это примерно так:
Читать полностью »

Читая главу «Двоичные деревья» из книги Джона Монгана Programming Interviews Exposed я задумался о том, как чаще всего рекурсию объясняют начинающим программистам: через сортировку, обход двоичного дерева, построение последовательности Фибоначчи и т.д. Неужели нельзя найти пример поинтереснее? Из закоулков сознания вырвался Лисп, который по своей природе неотделим от понятия рекурсии. Более того, небольшой интерпретатор Лиспа — отличный пример для исследования рекурсии.

Каким же будет минимальный интерпретатор Лиспа, написанный на Питоне? К моему удивлению, решение уложилось в семь строк! Свою роль в этом сыграла как выразительность Питона, так и красота и незамысловатость Лиспа.
Читать полностью »

13 лет назад английский подросток Адам Батчер (Adam Butcher) пришёл домой с премьеры «Властелина колец» и твёрдо решил, что должен сделать игру, в которой реализует всё то, чего не хватает во всех остальных глупых играх. Там должны быть приключения и головоломки, настоящий сюжет и борьба со злом.

Парню было 14 лет, он как раз освоил популярную программу Multimedia Fusion — и в тот же день взялся за дело, нарисовал главного персонажа Тобиаса и объект № 1 — меч.

Разработчик потратил 13 лет, чтобы закончить игру
Читать полностью »

Сегодня мы рассмотрим одну из главных фич языка D, ради которой он и создавался — это продвинутое программирование на этапе компиляции. Некоторые могут припомнить как на C++ высчитывается факториал или, что посложнее, реализацию игры «Жизнь» и испугаться. Не стоит, шаблоны в D на порядок проще и мощнее аналога из C++, но все равно они требуют особого подхода в размышлениях, поэтому для акклиматизации сложность материала будет нарастать постепенно.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js