Задавались ли вы когда-нибудь вопросом, можно ли полноценно программировать при помощи директивы #define
в языке C? Полнота по Тьюрингу шаблонов C++ известна весьма широко, например, люди пишут трассировщики лучейЧитать полностью »
Рубрика «магия»
Про́клятый огонь, или магия препроцессора C
2024-01-21 в 16:13, admin, рубрики: магия, ненормальное программирование«Невозможный» параллельный алгоритм неотрицательной суммы
2022-01-02 в 7:02, admin, рубрики: forkjoin, haskell, java, java streams, MapReduce, sql, sum, ассоциативность, магия, моноид, параллельное программирование, параллельные вычисления, ПрограммированиеСумма целых чисел — что может быть проще? Сумма есть в SQL, в Java Stream API… в крайнем случае напишем сами. Как и всякая абстракция, она расходится с реальностью.
Вот счёт клиента в банке, по нему движения — положительные пополнения и отрицательные списания — в сумме дают текущий баланс. Так сумма работает в идеальном мире. А в реальности при большом минусе банк с отсрочкой, но предпримет нетривиальные действия вплоть до обращения в суд, чтобы закрыть финансовую брешь.
static long usualSum(LongStream changes) {
return changes.reduce(0, (a, b) -> a + b);
}
Программирование — это скучная магия
2021-04-12 в 8:45, admin, рубрики: Блог компании Маклауд, Карьера в IT-индустрии, магия, Программирование, Учебный процесс в ITЕсть один карточный трюк, который запомнился мне навсегда. Вот его краткое описание: доброволец выбирает карту и запечатывает её в конверт. Затем фокусник предлагает добровольцу выбрать чай. У него есть десятки коробок чая, и все они упакованы в пластик. Доброволец выбирает одну из коробок, срывает обёртку и выбирает один из упакованных пакетиков с чаем. Потом он вскрывает упаковку, и… внутри оказывается его карта.
Если вы не хотите знать, в чём хитрость этого трюка, то дальше не читайте.
Секрет трюка прозаичен, но меня он привёл в восторг. К выбору карты добровольца подталкивают. Однако выбор из этих десятков коробок с чаем на самом деле свободный, и выбор чайного пакетика внутри коробки тоже делается свободно. Здесь нет никакой ловкости рук: фокусник не касается коробок или выбранного добровольцем чайного пакетика. Карта на самом деле находится внутри этой упаковки чайного пакетика.
Вся хитрость заключается в подготовке. Перед выполнением фокуса фокусник покупает десятки коробок чая, вскрывает каждую и разворачивает каждую упаковку с чайным пакетиком. Кладёт в каждую упаковку тройку крестей. Снова запечатывает упаковку. Возвращает упаковки обратно в коробку. Снова запечатывает каждую коробку. И повторяет так сотни раз. На это уходят часы, может быть, даже дни.
«Фокусом» это является именно потому, что такая подготовка выглядит настолько скучной, настолько невозможно монотонной, что когда мы видим трюк, то не можем представить, что кто-то проделал бы столь скучную работу, чтобы добиться такого простого эффекта.
Читать полностью »
Посох для Деда Мороза
2019-12-10 в 6:19, admin, рубрики: fpga, магия, микроконтроллер, посох деда мороза, программирование микроконтроллеров, Разработка под Arduino
Каждый год 31-го декабря я в костюме Деда Мороза и жена в роли Снегурочки разъезжаем по городу по своим друзьям с поздравлениями. Поскольку уже скоро наступит Новый Год, я решил проверить, все ли у меня к нему готово и достал из подвала свой давно видавший виды посох. К моему удивлению, пролежав в подвале целый год он исправно работал даже сейчас! Его аккумулятор все еще как-то заряжен! Посох не очень ярко, но светится. Конечно придется подзарядить, да и смотрю один светодиод перестал работать, но это дело поправимое — починим.
Этот посох я изготовил еще в 2012-м году и с тех пор он служил мне верой и правдой. Штука достаточно простая, но очень эффектная, особенно ему радуются дети. Он почти как меч джедая — только посох, а для настоящего Деда Мороза — это вещь просто необходимая. Решил написать про него здесь на Хабре — вдруг кто-то проникнется идеей и сделает такой и себе к Новому Году, время еще есть.
Читать полностью »
Школа магии PHP
2019-12-04 в 10:16, admin, рубрики: php, phprussia, аспектно-ориентированное, Блог компании Конференции Олега Бунина (Онтико), магические выражения, магия, магия php, ооп, Программирование, Разработка веб-сайтовЧто такое магия в PHP? Обычно под этим подразумевают методы вроде _construct()
или __get()
. Магические методы в PHP — это лазейки, которые помогают разработчикам выполнять удивительные вещи. В сети полно инструкций по их использованию, с которыми вы наверняка знакомы. Но что если мы скажем, что вы даже не видели настоящую магию? Ведь, чем больше вам кажется, что вы знаете все, тем больше магии ускользает от вас.
Давайте отбросим установленные рамки правил ООП и сделаем невозможное возможным в школе магии PHP. Главный и первый волшебный преподаватель школы — Александр Лисаченко (NightTiger). Он научит магическому мышлению и, возможно, вы полюбите магические методы, нестандартные способы доступа к свойствам, изменение контекстов, аспектно-ориентированное программирование и потоковые фильтры.
Аудиобубен лейтенанта Шмидта: бредогенерация с частотой 432 Гц
2017-10-22 в 11:31, admin, рубрики: 432 Гц, аудиобубен, Блог компании Pult.ru, звук, магия, музыка, музыкальные инструменты, Научно-популярное, псевдонаука, физика, шаманизм, эзотерика, эталон“Чем чудовищнее ложь, тем охотнее толпа в неё верит!”
П.Й. Геббельс
Как и у большинства моих постов — у этого есть причина. Сравнительно недавно один из моих случайных собеседников решил впечатлить меня знанием истории музыки и поведал много “интересного” о эталоне настройки ноты “ля” первой октавы. К слову, по первому впечатлению человеком он был не глупым (пока не начал рассказывать про частоту 432 Гц) и, по его словам, являлся выпускником Санкт-Петербургской государственной консерватории им. Римского-Корсакова. Рассказ собеседника изобиловал массой псевдоисторических “отступлений” и апелляцией к исследованиям математика Фибоначчи и наследию Джузеппе Верди.
С верующими спорить бессмысленно, поэтому я решил узнать о частотном мифе побольше у гугла и столкнулся чудовищной картиной. Оказалось, что рунет изобилует антинаучными и эзотерическими рассуждениями относительно эталонных частот для музыкального строя. Количество желтого конспирологического контента просто поражает. Разумных и адекватных публикаций на эту тему сравнительно не много, а их посещаемость значительно ниже чем у откровенной чуши.
Уровень аргументации большинства оккультно-мракобесных источников едва ли может впечатлить мало-мальски грамотного школьника. Несмотря на это я решил добавить ещё одну ложку правдивого дегтя в море приторно сладкой и ядовитой для здравого смысла эзотерической медовухи.
В принципе, абсурдность утверждений моего собеседника вряд ли требует подробного анализа и доказательства — бред очевиден. Миф основательно развенчан, но для тех, кто случайно повёлся и не утратил при этом трезвость мысли я приведу несколько наиболее веских аргументов под катом. Мне интереснее другое, по какой причине такого рода чушь приобретает популярность, чему будет посвящен отдельный раздел сего опуса.
Читать полностью »
Инженер Google сравнил антивирусы с мёртвой канарейкой
2016-11-18 в 12:23, admin, рубрики: Google, антивирусы, информационная безопасность, магия, Моссад
Даррен Билби, специалист по безопасности из компании Google. Фото: Darren Pauli, The Register
До сих пор многие пользователи наивно думают, что антивирус — это обязательный атрибут любого персонального компьютера. Благодаря этому заблуждению в мире продаётся антивирусных программ на миллиарды долларов.
Есть специалисты, которые не согласны. Среди них ведущий разработчик Google по информационной безопасности Даррен Билби (Darren Bilby). О бесполезности антивирусного ПО он рассказал во вступлении к своему докладу на конференции, где все присутствующие знают о бесполезности антивирусов — на хакерской конференции Kiwicon X. То есть Даррен просто начал доклад с общеизвестного (в узких кругах) факта, который не принято афишировать для широкой публики.
Читать полностью »
Американские инженеры придумали способ увеличить прибыльность майнинга биткоинов на 30%
2016-02-16 в 22:22, admin, рубрики: bitcoin, Криптовалюты, кумар, магия, майнинг
Доктор Ракеш Кумар из Иллинойсского университета в Урбане-Шампейне в своей работе "Майнинг биткоинов с приближением" описал механизм, при помощи которого можно увеличить прибыль от майнинга биткоинов на 30% — в пересчёте на единицу потраченных процессорных мощностей. Метод основан на использовании приблизительных расчётов – если допустить появление небольшого количества ошибок, результирующая эффективность подсчётов вырастает.
Приближённые расчёты часто используются в науке для упрощения математических выкладок. Доктор Кумар подсчитал, что при использовании железа, считающего с определённой, но не 100%-й точностью, можно повысить эффективность майнинга на 30%.
При майнинге биткоинов необходимо рассчитывать хэши от неких начальных значений. Необходимо получить хэш определённого вида, а поскольку предсказать вид хэша до его вычисления невозможно, необходимо проводить расчёты, и тем самым доказывать, что процессорное время было потрачено.
В связи с постоянным плановым увеличением сложности расчётов биткоинов, майнеры постепенно переходили с CPU на GPU, FPGA или ASIC. Увеличение сложности требует увеличения потребления энергии процессорами. Кумар со своими студентами задумались – нельзя ли разобраться в технологии майнинга и уменьшить потребление энергии, увеличив прибыль?
Читать полностью »
Система централизованного управления авторизацией пользователей на FreeIPA в Docker
2015-03-28 в 9:09, admin, рубрики: DNS, docker, freeipa, linux, ит-инфраструктура, магия, Настройка Linux, Серверное администрирование, системное администрированиеНа волне популярности Docker на Хабре, после участия в некоторых дискуссиях в комментариях относительно Docker, и в связи с недавней необходимостью настроить централизованную авторизацию для кластера Linux машин, я решил написать небольшую заметку. Здесь будет показан яркий, на мой взгляд, пример применения Docker'a для небольшой частной задачи.
Вот так, кстати, выглядит FreeIPA WebUI (официальное демо, временное демо у меня на сервере (подробности в комментариях)) (кликабельно):
Какие задачи я хотел решить при помощи FreeIPA:
- Иметь возможность создавать/изменять/удалять акаунты пользователей централизовано, а не на каждом отдельном сервере
- Централизованные плавила для sudo
- В последствии мы подключим к этой системе ещё и VPN авторизацию, а потом может и другие внутриофисные сервисы
Да, скорее всего FreeIPA в нашем случае это выстрел пушкой по воробьям, но с другой стороны — альтернатив что-то не видно. Я рассматривал такие варианты: NIS (по-моему он уже давно должен отправиться на отдых), OpenLDAP +… +… (не очень дружелюбно, да и FreeIPA в итоге под собой имеет LDAP, только нам не приходится с ним иметь дело напрямую), тут перечень заканчивается, я не нашёл ничего больше.