Обновить
136.36

Ненормальное программирование *

Извращения с кодом

Сначала показывать
Порог рейтинга
Уровень сложности

Все решения к задачке к Дню Программиста

Время на прочтение8 мин
Количество просмотров1.6K

Я решил объединить все отправленные решения к задаче «С Днем Программиста» в одном топике. При появлении новых решений топик будет обновляться. За понравившиеся решения предлагаю кормить плюсиками авторов, а хабрачитателей награждать инвайтами.
Код на картинке, кстати, тоже решает эту задачу :)
Читать дальше →

C Днем Программиста!

Время на прочтение2 мин
Количество просмотров4.2K
    ''=~(        '(?{'        .('`'        |'%')        .('['        ^'-')
    .('`'        |'!')        .('`'        |',')        .'"'.        '\\$'
    .'=='        .('['        ^'+')        .('`'        |'/')        .('['
    ^'+')        .'||'        .(';'        &'=')        .(';'        &'=')
    .';-'        .'-'.        '\\$'        .'=;'        .('['        ^'(')
    .('['        ^'.')        .('`'        |'"')        .('!'        ^'+')
   .'_\\{'      .'(\\$'      .';=('.      '\\$=|'      ."\|".(      '`'^'.'
  ).(('`')|    '/').').'    .'\\"'.+(    '{'^'[').    ('`'|'"')    .('`'|'/'
 ).('['^'/')  .('['^'/').  ('`'|',').(  '`'|('%')).  '\\".\\"'.(  '['^('(')).
 '\\"'.('['^  '#').'!!--'  .'\\$=.\\"'  .('{'^'[').  ('`'|'/').(  '`'|"\&").(
 '{'^"\[").(  '`'|"\"").(  '`'|"\%").(  '`'|"\%").(  '['^(')')).  '\\").\\"'.
 ('{'^'[').(  '`'|"\/").(  '`'|"\.").(  '{'^"\[").(  '['^"\/").(  '`'|"\(").(
 '`'|"\%").(  '{'^"\[").(  '['^"\,").(  '`'|"\!").(  '`'|"\,").(  '`'|(',')).
 '\\"\\}'.+(  '['^"\+").(  '['^"\)").(  '`'|"\)").(  '`'|"\.").(  '['^('/')).
 '+_,\\",'.(  '{'^('[')).  ('\\$;!').(  '!'^"\+").(  '{'^"\/").(  '`'|"\!").(
 '`'|"\+").(  '`'|"\%").(  '{'^"\[").(  '`'|"\/").(  '`'|"\.").(  '`'|"\%").(
 '{'^"\[").(  '`'|"\$").(  '`'|"\/").(  '['^"\,").(  '`'|('.')).  ','.(('{')^
 '[').("\["^  '+').("\`"|  '!').("\["^  '(').("\["^  '(').("\{"^  '[').("\`"|
 ')').("\["^  '/').("\{"^  '[').("\`"|  '!').("\["^  ')').("\`"|  '/').("\["^
 '.').("\`"|  '.').("\`"|  '$')."\,".(  '!'^('+')).  '\\",_,\\"'  .'!'.("\!"^
 '+').("\!"^  '+').'\\"'.  ('['^',').(  '`'|"\(").(  '`'|"\)").(  '`'|"\,").(
 '`'|('%')).  '++\\$="})'  );$:=('.')^  '~';$~='@'|  '(';$^=')'^  '[';$/='`';

Поздравляю Вас с праздником, дорогие коллеги!


А не порезвиться ли нам с кодом в честь праздника?
Предлагаю задачку-баловство под катом

Идеальный эксперт или гороскопы на службе ERP

Время на прочтение2 мин
Количество просмотров2K
А вы пробовали когда-то делать системный анализ гороскопов? Я пробовал и нашел, что все эти советы дает Капитан Очевидность и они носят универсально-рекомендательный характер.
Например: Хабролюдям сегодня стоит приложить усилия для успешного завершения начатого дела, это может принести успех, но остерегайтесь возможных ДТП, особенно после обеда.

Разберем этот пример. В пятницу очень хорошо закончить запланированный этап работы, чтоб отдыхать со спокойной совестью. А вести себя внимательно на дорогах — это актуально всегда.

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

Казалось бы, идея не реальная, но… Я вспомнил за программу генерации гороскопов. Только вместо дней недели меня интересовала дисперсия по введенным числам, а точнее говоря — прибыль (или убыток) компании на этап ввода данных.
Читать дальше →

RGB Invaders для 10K Apart

Время на прочтение1 мин
Количество просмотров921
RGB InvadersПродолжая эстафету, начатую whoozle и dima117, хочу представить свою работу для конкурса 10K Apart.
Когда я узнал о конкурсе, я сразу решил — нужно писать вариацию на тему Space Invaders. Добро пожаловать под кат, чтобы узнать что у меня получилось :)
Читать дальше →

Свой Web-PDF принтер за 10 минут

Время на прочтение9 мин
Количество просмотров4.9K


Как потратить совсем немного времени и сделать что-нибудь простое и оригинальное, поражающее своей глобальностью — но абсолютно бесполезное? Очень просто. Давайте сделаем свой принтер.

Нам понадобится (кроме головы и рук) только работающий web-сервер с поддержкой cgi-bin, к которому у нас есть доступ по FTP. Есть такой? Поехали!

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

Использование IPv4 адресов с российским размахом

Время на прочтение1 мин
Количество просмотров1.6K
По мотивам bash'а.

Для тех, кто недостаточно хорошо помнит гимн РФ:
for i in {200..225}; do nslookup 62.76.96.$i | grep "(?<=name = ).*$" -o -P ; done

upd Варианты улучшенные:

лаконичный
dig -t ptr +short {200..225}.96.76.62.in-addr.arpa

винда с PowerShell
for ($i=200; $i -le 223; $i++){(nslookup 62.76.96.$i)[3].ToString().Replace('.', ' ').Substring(9)}

винда без PowerShell
for /l %i in (200,1,255) do nslookup 62.76.96.%i

История сумасшествия или свой морской бой на BrainFuck`e

Время на прочтение7 мин
Количество просмотров15K

Доброго времени суток, хабралюди. Перед Вами самадиогностика безнадёжного BrainFuck больного.
Те, кто всё понял из названия и не хотят читать весь пост целиком могут скачать игру и BFDev и сразу перейти под кат в конец поста к разделу «Как играть». В посте рассказано как я заболел BrainFuck`ом, а также описан процесс создания игры «Морской бой» на этом замечательном языке.

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

Perl write-only vs. JS write-only

Время на прочтение1 мин
Количество просмотров1.8K
Этот небольшой JavaScript Йосуке Хасегава выполняет alert(1):
(É=[Å=[],µ=!Å+Å][µ[È=-~-~++Å]+({}+Å) [Ç=!!Å+µ,ª=Ç[Å]+Ç[+!Å],Å]+ª])() [µ[Å]+µ[Å+Å]+Ç[È]+ª](Å)

Как это работает?
Читать дальше →

Улучшаем 3d движок на js: Gouraud shading

Время на прочтение2 мин
Количество просмотров3.7K

Пост babarun про 3d-движок на js вызвал творческий порыв добавить тонирование Гуро для пущей реалистичности. Вот, что получилось (а сейчас ещё и с зеркальностью). По сравнению с обычным (flat) тонированием нормали требуется иметь не для граней, а для вершин (то есть для треугольной грани три нормали). По готовым нормалям граней нормали вершин вычисляются просто усреднением нормалей всех граней, включающих данную вершину; это делается один раз перед рендерингом. Освещённость вершин высчитывается в начале каждого кадра с учётом изменения положения камеры.

Основная сложность заключалась в том, как залить треугольник градиентом.
Читать дальше →

Практика функционального программирования №5

Время на прочтение2 мин
Количество просмотров3.9K
Анонсы новых выпусков журналов или обновлений сайтов — это не то, о чём обычно пишут. Мы не видели объявлений новых номеров Компьютерры (когда она ещё была) или Vogue на страницах Хабра. Тем интереснее наблюдать, как небольшой, весьма специализированный журнал для программистов «Практика функционального программирования» регулярно привлекает живой отклик у читателей даже таких в некотором роде особенных сообществ как Linux.Org.Ru или Хабрахабр.

Недавний выпуск последнего, пятого номера журнала ПФП уже вызвал множество интересных споров. А всё потому, что в конкурсе, объявленном журналом в конце прошлого года, вместо запланированной безоговорочной победы языков Haskell и OCaml, победили Python и C#.

Неожиданно обнаружилось, что один из дизайнеров C#, Eric Meijer признался, что Visual Basic — это функциональный язык (http://mr-aleph.livejournal.com/255073.html)

А еще обнаружилось, что...

3d движок на js + canvas

Время на прочтение2 мин
Количество просмотров14K
Как то раз наткнулся я на забугорную статью про светлое будущие Canvas и WebGL, и была в этой статье картинка с «3d чайничком» нарисованном c помощью canvas'a, поразила она меня ну прям ващеее, понял я что должен сделать нечто подобное, и сделал.

image

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

10 противоестественных способов вычисления чисел Фибоначчи

Время на прочтение7 мин
Количество просмотров11K
Задача вычисления первых двух десятков чисел Фибоначчи давно потеряла практическую ценность для программистов и используется преимущественно для иллюстрации базовых принципов программирования — рекурсии и итерации. Я же использую ее для демонстрации нескольких языков программирования, в которых она приобретает необычный и местами даже нездоровый вид.

Итак, мой рейтинг десяти наиболее противоестественных способов вычисления чисел Фибоначчи из написанных мной за последние полгода в рамках проекта Progopedia. Для уточнения задачи потребуем, чтобы выводом программы были первые 16 чисел в виде
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987,…

10. Sanscript


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

Главная диаграмма потоков
Главная диаграмма потоков
Читать дальше →

Ближайшие события

C# to Java (вызов C# dll из Java)

Время на прочтение5 мин
Количество просмотров21K
Доброго времени суток!
Помучив немного хабра поиск не нашел подобных тем, в связи с чем создал свою.

Немного лирики:
Имеем шарповскую библиотеку, в которой лежат необходимые для работы методы. Необходимо этими методами воспользоваться из Java программы.
Читать дальше →

TBDB, или пишем базу данных на BASH

Время на прочтение1 мин
Количество просмотров4.7K
Изначально была идея написать скрипт, который помогал бы просто и универсально работать с некими группами данных в домашних скриптах-написал-и-забыл.
И вот перед вами милая и прекрасная страшная и ужасная, но простая и удобная база данных для хранения небольшого количества данных в несложных домашних скриптах.

TBDB, она же — Terrible Bash Data Base.

Движок базы состоит из одного баш скрипта.
Читать дальше →

Главная тема из игры Super Mario на двух DC-моторах

Время на прочтение1 мин
Количество просмотров2.1K
Добрый день всем!

Ребята с сайта hackedgadgets.com собрали плату с двумя моторами постоянного тока и запрограммировали контроллер так, чтобы с помощью вращения этих моторчиков играла мелодия из игры Super Mario!



Подскажите, если выбрал неподходящий раздел.

Возможности NTFS для хранения настроек вашей программы

Время на прочтение3 мин
Количество просмотров3K
imageВ Windows существует несколько способов хранить настройки программы. Реестр, ini файлы, другие типы файлов (по усмотрению разработчика). Порой удобнее одно, порой другое… У каждого подхода есть свои преимущества и свои недостатки. Предлагаю разобраться что лучше и предложить альтернативу, сочетающую в себе преимущества нескольких подходов.
Подробности

Код на php внутри ваших bat файлов

Время на прочтение1 мин
Количество просмотров3.4K
Довольно часто пишу для себя мелкие скрипты на пхп, но каждый раз запускать их из командной строки надоело, а ассоциировать на запуск по двойному клику нехотелось, так как уже привык что в этом случае файл открывается в редакторе. Можно писать батники, с единственной строчкой внутри, для запуска, но в этом случае на каждый простой скрипт будет уже два файла, вот эти то файлы я и решил скрестить.

То что получилось
Создаем файл, называем его например p.bat и пишем в него следующий код

rem <?/*
"путь до интерпретатора пхп" p.bat
exit
rem */ echo "\r \r";

//тут код на пхп

Пояснить наверно надо только строку 4, вызов echo нужен чтобы затереть в выводе слово rem

О некоторых особенностях написания дистрибутивных пакетов на NSIS для х64 систем

Время на прочтение1 мин
Количество просмотров3.4K
Столкнулся с неожиданным (для меня) поведением NSIS инсталлеров для 64 битных систем.

Речь идет об обращении к реестру Windows. Долгое время не мог понять почему некоторые значения из реестра я могу получить стандартными инструментами NSIS, а некоторые другие — не могу.
Читать дальше →

Вклад авторов