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

На Хабре неоднократно появлялись статьи с описанием приложения из известного фильма «The Matrix». Как известно, все они принадлежат так называемому классу View Matrix, позволяют визуализировать состояние мира в котором проживают главные герои фильма. Но в отличие от предыдущий версий данных программ для ЭВМ, я хочу рассказать о визуализаторе матрицы первой версии (о которой в фильме упоминал герой с именем Морфеус в первой части трилогии).

Старая, добрая «The Matrix» или визуализатор для матрицы версии один

Дорогие друзья, эта статья посвящена всем кто помнит что такое Dos, видео режим 80x25 и прочие «замечательные мелочи» олд скульного разработчика приложений. А так же кому интересно с этим познакомиться.
Читать полностью »

image

А что это мы всё об умных да об эффективных алгоритмах? А давайте эту тоскливую осеннюю пятницу развеем чем-нибудь контрпродуктивным!?

Представляю Вашему вниманию ТОП-5 самых нетрадиционных сортировок всех времён и народов.

Младопрограммистам такое полезно показывать в дидактических целях. Всех остальных как минимум позабавит.
Читать полностью »

Предыдущая статья цикла Язык программирования J. Взгляд любителя. Часть 1. Введение

Вопрос: Если функции изменяют данные, а операторы изменяют функции, тогда кто изменяет операторы?
Ответ: Кен Айверсон
Chirag Pathak

В J используется идея тацитного (от слова «tacit», неявный) программирования, не требующего явного упоминания аргументов определяемой функции (программы); использование присваивания (имен) для функций. Работа в тацитном подходе происходит с массивами данных, а не с отдельными их элементами данных.

Интересно заметить, что тацитное программирование было открыто Бэкусом еще до APL и реализовано им в языке FP. Среди современных языков, поддерживающих такой подход, (кроме, естественно, J) можно назвать Форт и другие конкатенативные языки, а также Haskell (за счет point-free подхода).

1. Глаголы

Определим наш первый глагол. Для удобства, можно считать, что глагол – это функция с аргументами, заданными по умолчанию. Открываем интерпретатор J, вводим

	neg =: -

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

Немножко пятничного настроения в субботу. Я думаю, все видели этот код:

image

Но Aras Pranckevičius пошел еще дальше. Как написать код, который не так просто обнаружить?
И если вначале идут простые примеры, то дальше начинается…
Читать полностью »

Иногда бывает так, что разработчики вынуждены работать под Windows (например, привычка или политика компании) но им надо вносить изменения в какой-то переносимый код собирать его под Linux. Можно просто поставить виртуальную машину (например, Oracle Virtual Box) и работать прямо в ней. А можно настроить систему так, чтобы работать в Far в Windows, иметь доступ ко всей файловой системе виртуалки и выполнять все команды прямо из Far. Посмотрим как это настроить на примере Virtual Box, Ubuntu, Far Manager и плагин NetBox.

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

Обратиться к теме написания случайных генераторов букв навела мысль о том, что в JS существует нетипичная нативная функция преобразования строки в n-ичное число, где n = 2..36. 36 в стандарте языка придумано не случайно — это сумма количества цифр и малых английских букв, из которых предлагается писать такие числа. Это значит, что парой нативных функций уже можно построить полезный генератор небольших строк из буквоцифр.

Math.random().toString(36) //даст числа вида 0.816cwugw2ky, 0.opgqwav8w1m, 0.f0w4ejtq8wk, ...

Это значит, что для некоторых задач можно не писать относительно честные генераторы на основе унылых строк вида «abcdefghijklmno...».
Читать полностью »

13 декабря 2013 г. в Минске пройдет четвёртая международная конференция Application Developer Days.

image

Application Developer Days — это конференция, сделанная программистами для программистов. Для тех, кто непосредственно пишет код, продумывает архитектуру приложения и старается повысить свою продуктивность, используя новые языки и библиотеки. Кроме непосредственно программистов, конференция будет интересна всем тем, кто вовлечен в процесс создания программных продуктов, кто хочет понять, чем живут разработчики, посмотреть на всё с точки зрения программиста.
Читать полностью »

Фетиш ориентированное программирование

За то время, что я занимаюсь программированием, я видел не мало проектов, загнувшихся, благодаря фанатичному следованию различным модным правилам и практикам. Это может быть что-то увлекшее всю команду, например OOP или TDD, или что-то, на чем настоял отдельный разработчик, например: табы против пробелов, или определенный стиль фигурных скобок. Даже программист работающий в одиночестве, может саботировать проект, выбрав фетиш в ущерб продуктивности.
Вот немного вещей, отнимающих часы, а то и дни программистского времени:Читать полностью »

В минувшие выходные Clojure-сообщество испытывало огромные волнения в силе. За 48 часов требовалось ни много ни мало написать любое веб-приложение. Команды вплоть до 4-х человек, весь код (помимо библиотек, конечно), дизайн и ассеты должны создаваться с нуля в течение соревнования.

Страница соревнования: http://clojurecup.com/
Читать полностью »

Старая печатная машинка c Arduino и Raspberry Pi в роли принтера

Несмотря на то, что выпуск печатных машинок прекратили во всех странах мира (имеются в виду печатные машинки старого образца, без электронных компонентов), некоторые умельцы еще используют эти «устройства» в своих проектах. Так, на днях был представлен проект, суть которого — превращение печатной машинки, причем древней, в принтер, который используется для распечатки твиттер-сообщений любопытных пользователей Сети.

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


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