Pull to refresh
94
0
Алексей Лебедев @alisey

User

Send message

Справочник, посвященный тонкостям JavaScript

Reading time1 min
Views3.5K
JavaScript Garden — справочник на английском, посвященный тонкостям JavaScript.

Из него я, например, узнал, что массивам можно задавать length:
var list = [1, 2, 3, 4, 5];
list.length = 3;
console.log(list); // => [1, 2, 3]
Читать дальше →
Total votes 86: ↑76 and ↓10+66
Comments43

Новая версия Developer Tools

Reading time1 min
Views6.3K
В beta channel появилась новая версия инструментов разработчика с очень приятными изменениями.

Во вкладке Network

  • Появилась информация о фазах каждого запроса: сколько времени ушло на прокси, DNS, ожидание, отправку и получение данных


  • HTTP заголовки теперь берутся прямо из тела ответа, до того, как они были интерпретированы вебкитом, поэтому можно увидеть в точности то, что отправил сервер

  • Добавлена подсветка синтаксиса в теле ответа
Читать дальше →
Total votes 98: ↑93 and ↓5+88
Comments36

Кроссдоменный AJAX

Reading time1 min
Views112K
На вопрос, как сделать AJAX запрос к другому домену, я всегда отвечал, что никак, и предлагал в качестве альтернативы jsonp, прокси, флеш, фреймы. Но, оказывается, большинство современных браузеров (IE8+, FF3.5+, Chrome 6+ и Safari 4+) вполне поддерживает кроссдоменный XMLHTTPRequest.

Работает это на удивление просто
Total votes 97: ↑90 and ↓7+83
Comments22

Проверка на отрицательный ноль

Reading time1 min
Views4.9K
Сегодня обнаружил, что функция Math.atan2 возвращает разный результат в зависимости от того, с каким знаком в нее передать 0.

> 0 === -0           // => true
> Math.atan2(0, -0)  // => 3.141592653589793
> Math.atan2(-0, -0) // => -3.141592653589793


Работает это потому, что JavaScript хранит числа по стандарту IEEE 754, в котором все числа, включая ноль, имеют знак. Буквально вчера на эту же особенность обратил внимание некий Аллен Вирфс-Брок. Его способ проверки еще проще:

function isNegative0(n) {
  return n === 0 && (1 / n) === -Infinity
}


Практической пользы от этого, кроме как демонстрировать свои глубокие познания языка, конечно, никакой.
Total votes 56: ↑42 and ↓14+28
Comments58

Ошибки в интерпретации экспериментов

Reading time1 min
Views847
Кусочек из отличной статьи Питера Норвига об экспериментальных ошибках.

Церебральный васкулит поражает одного человека на миллион, а сезонная простуда поражает каждого десятого. Допустим, мы разработали тесты на эти заболевания, которые дают правильный ответ в 99% случаев (как для больных, так и для здоровых).

Какой вывод должен сделать врач, имея следующие данные:
У Николая тест на церебральный васкулит дал положительный результат (результат правилен в 99% случаев).
У Сергея тест на простуду дал положительный результат (результат правилен в 99% случаев).

Вероятно врач решит, что скорее всего оба больны. Если вы тоже так думаете, то интуиция вас подвела. Шанс того, что Николай болен васкулитом составляет 0,01%. Это может показаться невероятным, но это так. Возможно следущий пример поможет понять почему.

Допустим, у нас есть прибор для определения марсиан, и он дает правильный ответ в 99% случаев. Мы сканируем, к примеру, депутатов одного за другим, результат неизменно отрицательный. Но когда дело доходит до Владимира Вольфовича, загорается надпись, что он марсианин. Вы поверите устройству? Наверное нет, это как раз тот 1% случаев, когда прибор дает ошибочный ответ.

В случае с васкулитом наш тест из-за 1% ошибки даст положительный результат для 10 000 человек из миллиона, но лишь один из этих 10 000 человек будет на самом деле болен.
Total votes 54: ↑49 and ↓5+44
Comments26

Только 10% программистов способны написать двоичный поиск

Reading time2 min
Views83K
Дональд Кнут (известный тем, что его книги никто не читает) пишет, что хотя первый двоичный поиск был опубликован в 1946 году, первый двоичный поиск без багов был опубликован только в 1962.

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

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

Так вот я это к чему...
Total votes 167: ↑141 and ↓26+115
Comments538

Nokia N97 в рекламе и в жизни

Reading time1 min
Views2.2K


В рекламном ролике Nokia N97 — гладко работающий анимированный интерфейс, все крутится и летает. Чтобы увидеть как дела обстоят в реальной жизни посмотрите видео, очень смешно.

Комментарий на Ютубе: «У меня Nokia N97, и все в этом видео — правда.»
Читать дальше →
Total votes 136: ↑117 and ↓19+98
Comments227

Information

Rating
Does not participate
Location
Запорожье, Запорожская обл., Украина
Date of birth
Registered
Activity