Программирование → Ошибки вычислений в окрестностях машинного нуля из песочницы
Периодически на хабре возникают замечательные статьи о тонкостях арифметики с плавающей точкой. Собственно, упомянутая публикация стала одним из первых источников, прочитанных при попытках разобраться с проблемой. Яснее от этого сразу не стало, но тем не менее, организация нейронных связей как-то упорядочилась. Ближе к делу.
Проблема образовалась при выполнении расчётов в рамках одного проекта и будущей магистерской диссертации по гидродинамике пористой среды. Не скрою, что корни скрыты отчасти в личной криворукости автора и пренебрежении банальными общеизвестными советами касательно обработки малых чисел, но тем не менее, это привело к достаточно интересным наблюдениям и размышлениям.
Проблема образовалась при выполнении расчётов в рамках одного проекта и будущей магистерской диссертации по гидродинамике пористой среды. Не скрою, что корни скрыты отчасти в личной криворукости автора и пренебрежении банальными общеизвестными советами касательно обработки малых чисел, но тем не менее, это привело к достаточно интересным наблюдениям и размышлениям.
Каскадные Таблицы Стилей → Float'омагия: пробуем не «плавать» в спецификации, чтобы не утонуть в потоке
Недавняя статья про float-ы и реакция хабрасообщества на нее показали, что «сладкая парочка» CSS-свойств float и clear, несмотря на свою давнюю и колоссальную популярность в верстке, для многих остается чем-то загадочным и таинственным. Однако затронута в ней оказалась лишь верхушка айсберга, теряющегося в пучине мутных вод загадочной спецификации CSS 2.1. А есть и «подводные рифы», в спецификации не описанные. Не желаете ли продолжить увлекательное погружение в этот мир удивительных открытий и добраться до самого дна, полного сокровищ? Если да, то…
Программирование → Вычисления с фиксированной точкой. Основные принципы (ч.1) из песочницы
Введение или зачем этот топик
Читая Хабрахабр, я натолкнулся на два топика, «выводящие на чистую воду» вычисления с плавающей запятой.
В одном из них достаточно подробно и качественно дана выжимка из стандарта IEEE754 и основные проблемы при вычислениях с плавающей запятой, другой — короткий топик-заметка про то, что не все так хорошо при вычислениях на ПК. При этом даются рекомендации в случае, когда важна математическая точность результата, использовать целочисленные вычисления, «фиксировать запятую» или как минимум проверять результаты, выдаваемые платформой (компилятор + процессор).
Несмотря на то, что советы дельные, понять, как использовать целочисленные вычисления там, где до этого была плавающая запятая, не так просто, особенно без математической подготовки. Достаточно занимательна в этом смысле попытка одного из «хабровчан» разобраться с фиксированной точкой методом экспериментов.
Данный топик — краткое введение, которое должно дать представление о вычислениях с фиксированной точкой. Математика в данной статье не должна никого напугать — все очень примитивно. Сразу прошу простить: среди моих знакомых устоявшимся выражением является именно «фиксированная точка» (от англ., fixed-point), а не «запятая», поэтому я буду придерживаться именно этого термина.
C++ → Откуда берутся NaNы?
Пользователь yruslan опубликовал хорошую статью про арифметику с плавающей запятой: habrahabr.ru/blogs/cpp/112953/.
Хочу добавить к ней пару поучительных примеров. Ситуации, которые я опишу, встречались несколько раз в моей практике. Ошибки, которые при этом порождались были очень редкими, трудно воспроизводимыми и сложными в поиске.
Возможно, я сейчас буду рассказывать прописные истины, но вызывает удивление частота, с которой люди забывают, что числа которые описывает стандарт IEEE754 это не то же самое, что вещественные числа.
Хочу добавить к ней пару поучительных примеров. Ситуации, которые я опишу, встречались несколько раз в моей практике. Ошибки, которые при этом порождались были очень редкими, трудно воспроизводимыми и сложными в поиске.
Возможно, я сейчас буду рассказывать прописные истины, но вызывает удивление частота, с которой люди забывают, что числа которые описывает стандарт IEEE754 это не то же самое, что вещественные числа.
C++ → Что нужно знать про арифметику с плавающей запятой из песочницы

В далекие времена, для IT-индустрии это 70-е годы прошлого века, ученые-математики (так раньше назывались программисты) сражались как Дон-Кихоты в неравном бою с компьютерами, которые тогда были размером с маленькие ветряные мельницы. Задачи ставились серьезные: поиск вражеских подлодок в океане по снимкам с орбиты, расчет баллистики ракет дальнего действия, и прочее. Для их решения компьютер должен оперировать действительными числами, которых, как известно, континуум, тогда как память конечна. Поэтому приходится отображать этот континуум на конечное множество нулей и единиц. В поисках компромисса между скоростью, размером и точностью представления ученые предложили числа с плавающей запятой (или плавающей точкой, если по-буржуйски).
Арифметика с плавающей запятой почему-то считается экзотической областью компьютерных наук, учитывая, что соответствующие типы данных присутствуют в каждом языке программирования. Я сам, если честно, никогда не придавал особого значения компьютерной арифметике, пока решая одну и ту же задачу на CPU и GPU получил разный результат. Оказалось, что в потайных углах этой области скрываются очень любопытные и странные явления: некоммутативность и неассоциативность арифметических операций, ноль со знаком, разность неравных чисел дает ноль, и прочее. Корни этого айсберга уходят глубоко в математику, а я под катом постараюсь обрисовать лишь то, что лежит на поверхности.
Веб-разработка → Верстка повторяющихся блоков
Довольно часто при верстке сайта возникает необходимость размещать блоки одинаковой ширины, но разной высоты в контейнере с переменной шириной (читай резиновом). Плюс на этот список может применяться фильтр, который JS-ом скрывает или показывает элементы списка, при этом он не должен разрушать «строки», верстку, или образовывать дыры, поэтому решения на таблицах не катят сразу. Простейший пример — каталог товаров:


НЛО прилетело и опубликовало эту надпись здесь.
Хабрахабр → Атрибут «align» элемента «img»
Мне думается, что справка Хабрахабра могла бы чуть яснее отражать то обстоятельство, что к употреблению в элементе <img> допускается (в числе прочих) атрибут align="...", позволяющий центрировать изображение или floatнуть его к левому или ко правому краю страницы.
Кроме того, пока не очень ясно, как расположить текстпо центру (чтобы получилася подпись к центрированному изображению). Элемент <center> не дозволен, атрибут align="..." в элементе <p> не срабатывает...
На этом мысль останавливается.
Кроме того, пока не очень ясно, как расположить текст
На этом мысль останавливается.
Персональные блоги → Заполнение пустого пространства плавающими блоками. Разбор 2-ух примеров реализации. От Яндекса и от студии Лебедева.
Недавно столкнулся с проблемой реализации плавающих блоков в одном интернет магазине. Суть в том, что товары выводятся в виде блоков. По задумке количество блоков по горизонтали должно меняться в зависимости от разрешения экрана. Использовать float в тупую не удалось из-за не фиксированой высоты блоков.
Немного погуглив я ничего не нашел. Зато вспомнил, что видел подобное на Яндексе и в магазине студии Лебедева.
Сообственно я выкладываю сюда для ознакомления то, что вы и сами можете найти в указанных источниках. Все, что я сделал это почистил от лишнего кода. Если-бы я нашел подобный пост раньше это сэкономило-бы мне время.
Немного погуглив я ничего не нашел. Зато вспомнил, что видел подобное на Яндексе и в магазине студии Лебедева.
Сообственно я выкладываю сюда для ознакомления то, что вы и сами можете найти в указанных источниках. Все, что я сделал это почистил от лишнего кода. Если-бы я нашел подобный пост раньше это сэкономило-бы мне время.
Веб-разработка → Разделяй и властвуй — float, position и display
Поговорим о всем известном свойстве float, не менее известном position и их соседе — display.
Как известно, в css есть понятие «схема позиционирования». Этих схем позиционирования есть три вида — нормальный поток, поплавки и абсолютное позиционирование.
Теперь необходимо ввести некоторые термины, прежде чем написать то, что я хочу донести.
Как известно, в css есть понятие «схема позиционирования». Этих схем позиционирования есть три вида — нормальный поток, поплавки и абсолютное позиционирование.
Теперь необходимо ввести некоторые термины, прежде чем написать то, что я хочу донести.