Dyzzet|
C++ Data Science Алгоритмы Темы · Блог · YouTube
Колонками
Постранично
14 августа 2015
Это «Спартан»! Коротко о Microsoft Edge

В новой операционной системе Windows 10 появился браузер Microsoft Edge. Project Spartan — его кодовое название. Internet Explorer никуда не делся, более того — в браузере Edge есть пункт меню «Открыть в Internet Explorer». Что же собой представляет этот «абсолютно новый браузер для Windows 10», «разработанный для письма, чтения, исследований и работы непосредственно в интернете»?

Вот что я увидел при первом запуске.

Лишь повторю за маркетологами: «Microsoft Edge: больше, чем просто просмотр веб-страницы».

6 августа 2015
Штампованный хлам. Особенности веба эпохи планшетов

Сегодня речь пойдёт о некоторых современных «веяниях» в веб-дизайне. Дух времени диктует: сайт должен работать на разных платформах, на устройствах с разным разрешением, выглядеть аккуратно, вести себя предсказуемо и так далее. Индустрия подарила нам для этого средства, которые с лёгкостью позволяют это делать. Однако способы их реализации и то, как веб-дизайнеры всем этим пользуются, — достаточный повод для того, чтобы поругаться.

Посмотрите — красота.

Читать далее →
31 июля 2015
X

Сейчас в интернете будет шквал обзоров новой операционной системы от Microsoft — Windows 10. Но у меня нет цели делать полные обзоры, хочется лишь поделиться своим негодованием. Как обычно, дьявол кроется в деталях. А вот и он.

«Время перезапуска запланировано»

Заходим в синтетический заменитель панели управления: Параметры → Обновление и безопасность → Центр обновления Windows. Вчитываемся.

Читать далее →
16 июля 2015
Запятая, Карл! Как устроены типы float и double

Плавающая запятая даёт много преимуществ, но «заплыв» этот полон моментов, требующих понимания и тщательного подхода. Числа с плавающей запятой используются слишком часто, чтобы пренебрегать их глубоким пониманием. Поэтому нужно хорошо разбираться, как представлены числа с плавающей запятой и как работают вычисления с ними.

Экскурс

Число с плавающей запятой представлено в следующем виде:

$$N = [s] \cdot m \cdot 2^{e},$$

где \(m\) — мантисса (23 бита — дробная часть мантиссы и неявно заданный ведущий бит, всегда равный единице, поскольку мантисса хранится в нормализованном виде), \(e\) — смещённая экспонента/порядок (8 бит). Один бит отводится под знак (\(s\), бит равен нулю — число положительное, единице — отрицательное).

Тип double полностью аналогичен float, он лишь содержит больше битов мантиссы и порядка.

Рассмотрим какой-нибудь пример. Число \(3{,}5\) будет представлено в следующем виде:

Читать далее →
20 апреля 2015
Массив здорового человека. Теперь в 3D!

В прошлой статье разбирались достоинства и недостатки различных форм представления массивов в памяти. В этот раз рассмотрим трёхмерный случай (и вообще \(N\)-мерный) и обратим внимание на то, как производится пересчёт логических координат в фактические.

Сперва вернёмся к двумерному случаю. Обращение к \(j\)-у элементу, раположенному в \(i\)-й строке, выглядит следующим образом: array_of_a_healthy_man[i * w + j] (\(w\) — количество элементов в строке). На рисунке представлено логическое и фактическое представление двумерного массива. Таким образом, слагаемое \(i \times w\) означает «пропустить \(i\) строк, содержащих по \(w\) элементов».

Читать далее →
12 апреля 2015
Массив здорового человека

Задача проста: организовать хранение двумерного массива. Во время написания некоторой программы один из моих учеников использовал два разных способа представления двумерного массива в памяти, оба из них не были эффективными, хотя вопрос хранения данных на стеке и в куче уже нами обсуждался. Другой студент, когда я попросил прокомментировать разные способы выделения памяти, испытал затруднения. Получается, что всё бывает не так очевидно, как кажется. А представить визуально и сказать с использованием точных терминов то, что описывается в коде, и вовсе оказывается сложной задачей.

Пусть необходимо хранить следующий массив элементов типа int размерностью \(5\times 10\).

\(35\ 58\ 73\ 32\ 35\ 32\ 59\ 95\ 19\ 39\\ 64\ 54\ 45\ 73\ 52\ 20\ 92\ 76\ 94\ 92\\ 47\ 93\ 65\ 14\ 25\ 92\ 27\ 93\ 14\ 94\\ 90\ 45\ 85\ 31\ 69\ 32\ 95\ 12\ 87\ 53\\ 75\ 11\ 47\ 72\ 33\ 42\ 58\ 62\ 57\ 85\)

Самый адекватный вариант в большинстве случаев — выделить в куче один массив для всех элементов.

const int w = 10, h = 5;
int* array_of_a_healthy_man = new int[h * w];

Читать далее →
11 апреля 2014
«Используйте новое ключевое слово»

Компания «Майкрософт» ещё год назад порадовала своим шедевром автоматического перевода: «Шаблон, следующем за именем класса шаблон, параметры должны перечисляться в порядке, который используется в списке параметров шаблон».

Но на этот раз они превзошли сами себя.

warning CS0108: BezierCurve.GetObjectData(...) скрывает наследуемый член...
Если скрытие было намеренным, используйте новое ключевое слово.

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

Недолгий поиск позволил выяснить, что последняя часть сообщения в оригинале звучала так: «Use the new keyword if hiding was intended». То есть: «Используйте ключевое слово new, если сокрытие было намеренным».

13 января 2014
«Это очень неприятно»

«Какое-то время тому назад, давно, я эту лекцию читал в Стэнфорде, такой университет в Англии. Стал я её читать, и вдруг приходит такой человек и садится сзади. Я знал, кто этот человек. И он всё время перебивает и говорит: „Всё неправильно“. И, в частности, он говорит: „У тебя алгоритм совершенно неправильный!“ Знаете, это очень неприятно, когда вы читаете лекцию, а Кнут ругается».

Из лекции Александра Степанова «Наибольшая общая мера последние 2500 лет».

2 июля 2012
Интернет-пользователи: какими они бывают

Перевод заметки за авторством Андреа Джигенти, производственного менеджера Riplife Gaming Technologies. Лицензия — Creative Commons.

Читать далее →
30 октября 2011
Все оттенки «Фейсбука»

Перевод заметки за авторством Энила Дэша, предпринимателя, основателя и со-основателя различных компаний. Лицензия — Creative Commons.

В одном из номеров еженедельника «Нью-Йоркер» в статье Хосе Антонио Варгаса изображён яркий профиль Марка Цукерберга. В той статье было процитировано моё высказывание о Марке: «Если тебе 26, ты „золотой ребёнок“, у тебя всегда было крепкое здоровье, тебя опекали всю твою жизнь, тебе всегда улыбалась удача, естественно, ты не задумываешься над тем, что кто-нибудь когда-нибудь захочет что-то скрыть». Это точная цитата, но есть тонкий нюанс в моём отношении к социальной сети «Фейсбук», и это не просто замечание о привилегиях её CEO (Chief Executive Officer).

Читать далее →
8 7 6 5 4 3 2
1
© MMXI—MMXXII. RSS. Поддержать сайт
Светлая тема / тёмная тема