Рубрика «единицы измерения»

Добавляйте единицы измерения в имена - 1

Есть одна ловушка читаемости кода, которой легко избежать, если вы о ней знаете; тем не менее она встречается постоянно: это отсутствующие единицы измерения. Рассмотрим три фрагмента кода на Python, Java и Haskell:

time.sleep(300)

Thread.sleep(300)

threadDelay 300

Сколько «спят» эти программы? Программа на Python выполняет задержку на пять минут, программа на Java — на 0,3 секунды, а программа на Haskell — на 0,3 миллисекунды.

Как это можно понять из кода? А никак. Вам просто нужно знать, что аргументом time.sleep являются секунды, а threadDelay — микросекунды. Если вы часто ищете эту информацию, то рано или поздно её запомните, но как сохранить читаемость кода для людей, никогда не встречавшихся с time.sleep?
Читать полностью »

Разбор задачи с собеседования Google: поиск соотношения - 1

Добро пожаловать в очередную из серии статей с разбором задачек, которые я задавал на собеседованиях в Google, прежде чем их запретили после утечки. С тех пор я оставил работу инженера-программиста в Google и перешёл на должность менеджера по разработке в Reddit, но у меня всё ещё осталось несколько замечательных тем. К настоящему моменту мы разобрали динамическое программирование, возведение матриц в степень и синонимичность запросов. На этот раз совершенно новый вопрос.
Читать полностью »

В последнее время JavaScript развивается очень быстро, но и языки-помощники веб-разработчика не стоят на месте.

CSS тоже развивается, и хотя Houdini в скором времени, возможно, сделает прорыв в CSS-разработке, до широкого применения, к сожалению, еще далеко. Так что, как и прежде, созываются экспертные совещания, на которых составляют новые спецификации и так далее. Прогресс не такой стремительный, как у TC39, но это лучше, чем ничего.

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

Новые (и старые) единицы измерения в CSS, о которых вы вряд ли слышали - 1

Ниже приведены новые единицы измерения в CSS, которые будут указаны в документе CSS Values and Units Module Level 4.
Читать полностью »

Как-то раз мне нужно было реализовать калькулятор для складывания и конвертации физических величин. У меня тогда не было ограничений по времени, поэтому я решил проблему на высоком уровне абстракции и, соответственно, под широкий спектр задач. Предлагаю на ваш суд мое решение.

image

Представьте, что вам нужно написать калькулятор, который умеет не просто считать цифры, а оперировать физическими (измеряемыми) величинами – складывать длину, конвертировать количество чего-то из одной единицы измерения в другую, и т.п. Первым делом, давайте обозначим чуть конкретнее задачу. У нас будут вот такие фичи:
Читать полностью »

Если вы когда-нибудь пытались постричься самостоятельно, вы знаете, как тяжело достичь идеальной симметрии. Мы так высоко ценим симметрию в частности потому, что её трудно достичь.

Предлагаем вашему вниманию пять самых симметричных объектов, когда-либо созданных человеком, и объяснение того, почему их так сложно создавать.

Кварцевый ротор гироскопа для Gravity Probe B

В 2004 году американская космическая миссия Gravity Probe B (GP-B) была запущена в космос на ракете Delta II. Она должна была проверить общую теорию относительности. На спутнике, находящемся на земной орбите, в числе прочего находился набор гироскопов, способный измерить два явления, предсказанных ОТО: кривизну пространства-времени (геодезическую прецессию) и искривление пространства-времени крупными объектами (увлечение инерциальных систем отсчёта). Для измерения этих явлений гироскопы должны были быть невероятно точными. Ошибка большая, чем одна стомиллиардная доля градуса в час, испортила бы эксперимент. Точность стандартных гироскопов, используемых на подводных лодках и военных самолётах, в 10 миллионов раз хуже.

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

image

Если и есть у учёных священные объекты, то это один из них: единственный, тщательно охраняемый 137-летний металлический цилиндр, расположенный в подвале близ Парижа. Этот прототип точно определяет значение килограмма массы во всём мире.

У килограмма говядины в продуктовом магазине та же масса, что и у этого особого куска металла, сплава платины и иридия. У 60-килограммовой женщины масса в 60 раз больше, чем у него. Даже далёкие астрономические объекты, например кометы, измеряются относительно этого цилиндра. У кометы Чурюмова-Герасименко, которую недавно посещал европейский космический аппарат Розетта, масса составляет 10 триллионов таких цилиндров.
Читать полностью »

Вот в этом посте товарищ призывает следовать стандартам. Не всё так с ними просто, со стандартами. Я хочу показать насколько сложна ситуация с обозначениями единиц измерения информации. Не буду объяснять важность темы — кому интересно, прошу под кат.
Читать полностью »

В девелоперской версии Google Chrome (на момент написания статьи — Chrome 20) появилась поддержка новых единиц измерения CSS — vh, vw и vmin, которые около месяца назад были реализованы в движке Webkit. До этого они работали только в Internet Explorer 9-й и 10-й версий. Эти единицы задают размеры объектов относительно высоты или ширины окна. В отличие от процентов, они всегда привязаны именно к окну браузера, а не к контейнеру текущего блока. 1vh равен 1% высоты окна, 1vw — 1% ширины, 1vmin — меньшему из этих двух значений.
Читать полностью »

Эти единицы позволяют задавать размеры объектов относительнно окна браузера. Размер считается в процентах от высоты (vh), ширины (vw) или минимального из этих двух значений (vmin). В отличие от указания размеров в процентах, vh, vw и vmin всегда привязяаны к размерам окна, а не контейнера текущего блока. До сих пор их поддерживал только Internet Explorer 9+ (впрочем, IE вместо указанной в стандарте единицы vmin использует обозначение «vm»).

Так, этот пример:

<!doctype html> <head> <style> * { margin:0; padding:0; border:0; }  #red  { 	background:red; 	height:100vh; 	width:100vw; } </style> </head> <body> 	<div id="red">Читать полностью »

Эти единицы позволяют задавать размеры объектов относительнно окна браузера. Размер считается в процентах от высоты (vh), ширины (vw) или минимального из этих двух значений (vmin). В отличие от указания размеров в процентах, vh, vw и vmin всегда привязяаны к размерам окна, а не контейнера текущего блока. До сих пор их поддерживал только Internet Explorer 9+ (впрочем, IE вместо указанной в стандарте единицы vmin использует обозначение «vm»).

Так, этот пример:

<!doctype html> <head> <style> * { margin:0; padding:0; border:0; }  #red  { 	background:red; 	height:100vh; 	width:100vw; } </style> </head> <body> 	<div id="red">Читать полностью »

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