Минус ноль в JavaScript

Я, конечно, знаю, что JavaScript хранит числа по стандарту IEEE 754, но всё больше как-то теоритически. То есть, я знаю, что в языке есть NaN, бесконечности с разным знаком…

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

Но, оказывается, в редких случаях отрицательный ноль может себя проявлять иначе, чем ноль положительный.

Как вы можете получить минус ноль? Например, просто написав что-то вроде «-x», где в «x» оказался ноль. Или округлив отрицательное число: Math.ceil(-0.5). В стандарте положительный и отрицательный ноль равны, знак нуля не исчезает при умножении, делении и нахождении квадратного корня. То есть он довольно живуч, но малозаметен.

Похоже, что в реальном коде минус ноль может проявить себя в двух вещах: делении и операции atan2, именно так его и можно отличить от положительного нуля:
function isNegativeZero(x) {
    return x === 0 && (1 / x) === -Infinity
}

function isNegativeZeroToo(x) {
    return x === 0 && Math.atan2(x, x) < 0
}
17 февраля 2011 23:50

cru3l (инкогнито)
18 февраля 2011, 00:49

отличный вопрос для собеседования в Яндексе

bolk (bolknote.ru)
18 февраля 2011, 01:01, ответ предназначен cru3l

Есть такой анекдот: «если вы купили флейту, теперь у вас есть флейта. Если вы купили камеру — вы фотограф».

Вы, похоже, из лиги «фотографов», а я считаю, что если вы не знаете язык, на котором программируете, то вы просто «купили флейту».

Намёк понятен?

cru3l (инкогнито)
18 февраля 2011, 01:09, ответ предназначен bolk (bolknote.ru):

т.е. следуя вашему ответу, вчера, когда вы «о существовании минус нуля как-то не думали, хотя знали что он существует», вы просто были «владельцем флейты», а сегодня когда вы прочитали про это на хабрахабре, вы стали «фотографом», ок

bolk (bolknote.ru)
18 февраля 2011, 01:19, ответ предназначен cru3l

Я не считаю себя сейчас хорошим программистом на JavaScript, появилось масса нового, о чём я представления пока не имею. Кроме того, есть детали, которые я мог пропустить. Я *стараюсь* чтобы такого не было, это ещё не значит, что мне одинаково хорошо удаётся это сделать в любом языке.

А если будете ещё троллить, я просто поудаляю ваши комментарии, включая эти. Мне одну кнопку нажать, делов-то.

cru3l (инкогнито)
18 февраля 2011, 01:28, ответ предназначен bolk (bolknote.ru):

Да чего вы сразу обижаетесь?
Ну проводит Яндекс собеседования так, ваше право. Просто забавно, что вы вчерашний возможно не прошли бы собеседование у вас же сегодняшнего )

bolk (bolknote.ru)
18 февраля 2011, 01:30, ответ предназначен cru3l

Да, и ещё.

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

cru3l (инкогнито)
18 февраля 2011, 01:32, ответ предназначен bolk (bolknote.ru):

Мне кажется если уж и задавать такие вопросы, то было бы справедливо ставить плюс кандидату если он знает ответ, но не ставить минус, если не знает.

bolk (bolknote.ru)
18 февраля 2011, 01:36, ответ предназначен cru3l

Да чего вы сразу обижаетесь?
Я не люблю троллинг. Смирнов вон как-то умеет в такие перепалки вступать, а мне кажется, что это напрасная трата сил и времени.
Ну проводит Яндекс собеседования так, ваше право.
Яндекс большой. Почти 3 тысячи человек, как он только собеседования не проводит. Кстати, если человек не ответил на какой-то вопрос (и даже группу вопросов) это совершенно не значит, что я не возьму его на работу.
Просто забавно, что вы вчерашний возможно не прошли бы собеседование у вас же сегодняшнего
Если бы поступал на вакансию advanced javascript developer, то наверняка не поступил бы. Ещё бы я не поступил на C++ developer или, там, на вакансию маркетолога.

Я не работаю программистом JavaScript, более того, я вообще программистом не работаю, хоть и программирую иногда.

За последние две недели я написал на работе 4 строчки кода, около 10 строк конфига nginx и не сделал ни одного коммита.

bolk (bolknote.ru)
18 февраля 2011, 01:38, ответ предназначен cru3l

Мне кажется если уж и задавать такие вопросы, то было бы справедливо ставить плюс кандидату если он знает ответ, но не ставить минус, если не знает.
На некоторых вопросах ровно так и происходит. Вопросы совершенно разные.

Например, я даю некоторые тесты, чтобы посмотреть как человек решает задачу. Я смотрю на сам процесс, мне совершенно неважно решит ли он задачу из такого теста.

анонимус (инкогнито)
18 февраля 2011, 01:40, ответ предназначен cru3l

cru3l не на пустом месте подковырнул. собеседования на вавансию программиста порой этим и достают, что хочется задающего вопросы послать подальше.
я сеячас делаю то что можно назвать RIA с испольщованием Jquery UI - но я вполне признаю что я не знаю 10% того что можно знать о JS и знаю 1% информации о Jquery UI. для базовой части приложения этого может хватить. не хватит - буду рыть документацию еще. Но если я буду рыть не по мере необходимости - а от и до - я в этом ЗАВЯЗНУ.

Потому я считаю неправильным задавать стопицот вопросов о определенных особенностях языка. сам из порой просто не помню - я помню куда посмотреть чтобы взять.
Правильный вариант проверки навыков - дать задачку работы с конструктциями языка при наличие документации.
например задачку создать в PHP класс, имитирующий при чтении большого файла(условие - не надеяться на память доступную скрипту) обращение к массиву(так чтобы foreach заработал ) - при полной документации по ООП решали единицы :)

анонимус (инкогнито)
18 февраля 2011, 01:40

чорт. опечатался. ну да фиг с ним

cru3l (инкогнито)
18 февраля 2011, 01:41, ответ предназначен bolk (bolknote.ru):

Спасибо за разъяснения. Судя по всему, росказни о собеседованиях в Яндексе несколько преувеличены «фотографами»

bolk (bolknote.ru)
18 февраля 2011, 01:46, ответ предназначен анонимусу

Потому я считаю неправильным задавать стопицот вопросов о определенных особенностях языка. сам из порой просто не помню - я помню куда посмотреть чтобы взять.
Вы на Перле раньше не программировали, нет? :) Иначе откуда такое мнение, что нужно только писать на языке, а не читать его?

С вами вместе работают другие люди, они участвуют в написании кода, иногда они «подхватывают» ваши куски, иногда вы им помогаете что-то написать.

В условиях, когда есть два программиста, один из которых бегло читает код, а второй лезет в словарь, чтобы посмотреть что будет, если написать typeof NaN, то как думаете, кого из них я возьму на работу?

Если ответ почему-то не очевиден, то я отвечу: предпочту первого, потому что он будет быстрее работать.

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

Но платить ему будут меньше, конечно же.

bolk (bolknote.ru)
18 февраля 2011, 01:48, ответ предназначен анонимусу

Если ответ почему-то не очевиден, то я отвечу: предпочту первого, потому что он будет быстрее работать.
Тут, конечно, нужно понимать, что это при прочих равных.

анонимус (инкогнито)
18 февраля 2011, 01:57, ответ предназначен bolk (bolknote.ru):

ну тут крайности...
javascript:alert(typeof(NaN) ); в строке браузера сказало что будет number :)
я typeof сам часто пользую из-за особенностей работы некоторых JS библиотек. но я не могу сказать что я могу перечислить на вскидку ВСЕ что может эта функция вернуть :)

в том и проблема что чаще приходится решать задачу "на стыке". делать JSON отработчик на PHP и код на JS который с этим что-то делает по какой-то логике. "бегло-читающие" код в таких ситуациях часто впадают в ступор и даже не представляют как ТАКОЕ отлаживать в случае проблем. потому как зубрежка для них выше по рангу чем способность размышлять.

bolk (bolknote.ru)
18 февраля 2011, 02:08, ответ предназначен анонимусу

потому как зубрежка для них выше по рангу чем способность размышлять
Я не понимаю как можно читать код, что-то зазубрив. Как прочитать вот это, например (это JavaScript 1.8):

(function (x) x(x))(function (z) function (y) z)(1)(2)(3)

Ну вызубрил я что-то, как мне это поможет?

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

bolk (bolknote.ru)
18 февраля 2011, 02:12, ответ предназначен анонимусу

javascript:alert(typeof(NaN) ); в строке браузера сказало что будет number :)
То есть вы *запустили* этот код? Так ведь это часть стандарта IEEE 754, которому следует определённое количество языков (JavaScript, PL/SQL и так далее).

IEEE 754 — стандарт представления чисел. NaN — это число, согласно этому стандарту, а не потому что авторы JavaScript так захотели.

анонимус (инкогнито)
18 февраля 2011, 02:42, ответ предназначен bolk (bolknote.ru):

я в курсе что такое NaN, более того, я физмат закончил и вполне представляю что есть +0 и -0 и откуда это идет.
Простой пример, относительно тех же типов данных.
http://docs.php.net/manual/en/function.gettype.php
Warning
Never use gettype() to test for a certain type, since the returned string may be subject to change in a future version. In addition, it is slow too, as it involves string comparison.
Instead, use the is_* functions.
Все довольно переменчиво. есть какие-то базисные вещи. кстати стандарты тоже со временем меняются.

Еще простой пример:
Сишные функцие работ со строками(strcmp, ...) уже с C99 могут "понимать" кодировки в зависимости от текущей локали и не надо задействовать уникодовские функции. но так стало с определенного момента. а до этого было время когда со строками в другой кодировке приходилось писать сво библиотеку, да более того - грузить свой шрифт(я про времена засилия MS DOS <= 6.22- которые зацепил и приходилось это делать)

Я про то, что не любой код получится читать БЕГЛО. когда влез в проект - в курс дела - да, тут не спорю.(множество данных которое держишь в голове становится меньше и проблем нет).

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

SiMM (инкогнито)
18 февраля 2011, 09:55, ответ предназначен анонимусу

IEEE 754 — стандарт представления чисел. NaN — это число, согласно этому стандарту, а не потому что авторы JavaScript так захотели.
Полагаю, что у авторов JavaScript'а это конкретная константа, в то время как согласно IEEE 754 это целое множество значений, у которых значение порядка максимально и мантисса не равна нулю.

bolk (bolknote.ru)
18 февраля 2011, 10:29, ответ предназначен SiMM

Полагаю, что у авторов JavaScript'а это конкретная константа, в то время как согласно IEEE 754 это целое множество значений, у которых значение порядка максимально и мантисса не равна нулю
На чём основано ваше предположение.

bolk (bolknote.ru)
18 февраля 2011, 10:34, ответ предназначен анонимусу

код такого типа как Вы показали считаю говнокодом — по простой причине. Поддержка такого кода оборачивается головной болью
Я ведь специально подчеркнул, что код подобный этому нигде не используется.

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

Тем не менее, код попроще, где функции передаются как аргументы (возможно, аргументы сами себя) — нормальное явление в функциональном программировании и надо хорошо понимать, что это работает.

Кстати, вторая причина, по которой нужно хорошо знать язык — неизобретение велосипедов. В том же самом PHP туча функций в базовом языке, изобретать каждый раз какую-нибудь array_change_key_case или уметь пользоваться array_multisort — важно.

SiMM (инкогнито)
18 февраля 2011, 10:39

На чём основано ваше предположение.
Дык присвойте переменной NaN - она будет иметь конкретное значение знака, мантиссы и порядка. Любопытно, конечно, посмотреть, как операции сравнения будут работать (с теми же inf и -inf, до кучи), но я в яваскриптах не силён.

bolk (bolknote.ru)
18 февраля 2011, 11:15, ответ предназначен SiMM

NaN == NaN // false
NaN === NaN // false

bolk (bolknote.ru)
18 февраля 2011, 11:16

Кстати, вот смешное из определение NaN, я это иногда спрашиваю на собеседованиях:

a = NaN, a == a // false

SiMM (инкогнито)
18 февраля 2011, 12:01, ответ предназначен bolk (bolknote.ru):

Вообще я имел в виду сравнить при разных значениях мантиссы, но вполне допускаю, что это не имеет значения - если один из аргументов подходит под определение NaN - результат сравнения, видимо, false.
И, кстати, операций сравнения несколько больше, чем два.
Если NaN == NaN - false, то
NaN != NaN/inf/-inf (или как там в JS неравенство?) - true? А как насчёт
NaN > NaN/inf/-inf
NaN < NaN/inf/-inf
?

bolk (bolknote.ru)
18 февраля 2011, 12:44

NaN != NaN // true
NaN != Infinity // true
NaN != -Infinity // true
NaN < NaN // false
NaN < Infinity // false
NaN < -Infinity // false
NaN > NaN // false
NaN > Infinity // false
NaN > -Infinity // false

gogis (инкогнито)
18 февраля 2011, 12:49

Я не троллю, но.
Программист, намеренно использующий в рабочем коде 5% языка, когда их можно заменить простыми конструкциями остальных 95% - тролль и груз для команды разработчиков, которые полезут из-за него в документацию. Меня реально бесит от таких "гуру" и чтобы понять почему, надо подумать.
В данном случае я приверженец идеологии XP.

Embrace simplicity, Luke!

Артур (инкогнито)
18 февраля 2011, 13:19

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

bolk (bolknote.ru)
18 февраля 2011, 13:30, ответ предназначен Артуру

«я это иногда спрашиваю на собеседованиях» — как же неимоверно бесят вот такие самоутверждающиеся интервьюеры
Ещё один психолог по переписке? Вы были у меня на собеседовании?
Такие мелочи, типа «NaN == NaN» не нужно знать — могу гарантировать, что за всю историю человечества нет ни одной строчки кода, где подобное быдлокодовское сравнение имеет место.
Конечно нужно. Это не мелочи, а азы. И, конечно, сравнения в таком виде нет. Есть какое-то var1 == var2, где в какой-то переменной может быть NaN.

Кроме того, если не знать этой особенности, легко накодить что-то вроде if (var1 == NaN), что является уже ошибкой.

bolk (bolknote.ru)
18 февраля 2011, 13:32, ответ предназначен gogis

Программист, намеренно использующий в рабочем коде 5% языка, когда их можно заменить простыми конструкциями остальных 95% — тролль и груз для команды разработчиков, которые полезут из-за него в документацию
Учиться надо, а не беситься. Что вам мешает овладеть инструментом, которым вы пользуетесь каждый день? Сложно выделить один вечер и прочитать спецификацию?

Vladimir Moskva (fulc.ru)
18 февраля 2011, 13:45, ответ предназначен gogis

Программист, намеренно использующий в рабочем коде 5% языка, когда их можно заменить простыми конструкциями остальных 95% — тролль и груз для команды разработчиков, которые полезут из-за него в документацию
А почему эти разработчики ленятся посмотреть в документацию?

gogis (инкогнито)
18 февраля 2011, 15:23

Учиться надо, а не беситься. Что вам мешает овладеть инструментом, которым вы пользуетесь каждый день? Сложно выделить один вечер и прочитать спецификацию?
Надо шире думать. Не с позиции себя, а команды. У тебя проект, над которым работало и будет работать 10 человек. Они будут приходить и уходить. Искать гуру-девелоперов проблематично и дорого, поэтому писать так, чтобы было понятно сферическому программисту выгоднее в перспективе.

gogis (инкогнито)
18 февраля 2011, 15:29

А почему эти разработчики ленятся посмотреть в документацию?
Да никто не ленится. Просто никакая группа людей не покроет знания друг друга на 100%. Намеренно извращать код, делая его "изысканным" но сложным для восприятия/чтения - вот где зло.

bolk (bolknote.ru)
18 февраля 2011, 15:42, ответ предназначен gogis

Они будут приходить и уходить. Искать гуру-девелоперов проблематично и дорого, поэтому писать так, чтобы было понятно сферическому программисту выгоднее в перспективе
У нас текучка низкая. По крайней мере, в моей команде. Много проектов на поддержку (мы используем и готовые чужие проекты), так что важно уметь читать код.

SiMM (инкогнито)
18 февраля 2011, 17:02, ответ предназначен bolk (bolknote.ru):

NaN < NaN // false
NaN > NaN // false
Интересно, а -0 меньше 0? :)

анонимус (инкогнито)
18 февраля 2011, 18:27, ответ предназначен gogis

Программист, намеренно использующий в рабочем коде 5% языка,
намеренно? oh really? я просто признаю что пользую не больше 10% быдлопохапе в работе. но кто знает может остальные 90% мне в данный момент в данном модуле прост не нужны? :)
Например DOM, абстрактные классы php5, куча всяких поездатых плюшек.
Вы что так уверены что они везде нужны?
таки стоит признать что в узких задачках пользуетс маленький процент объема знаний. это не значит что я не знаю про все остальное. просто зачем пихать то что не нужно туда где оно не нужно?
Сложно выделить один вечер и прочитать спецификацию?
я это время от вреиени делаю. таки да!
чтобы было понятно сферическому программисту выгоднее в перспективе.
код должен быть максимально понятен. желательно чтобы даже для дебила.
а то сам откроешь свой код 10летней давности и срешь кирпичами - непонятно ни%уя
Интересно, а -0 меньше 0? :)
вбей простенький скрипт и посмотри. не сцы винт оно не форматнет. :)

Vladimir Moskva (fulc.ru)
18 февраля 2011, 18:33

Намеренно извращать код, делая его "изысканным" но сложным для восприятия/чтения - вот где зло.
Вне контекста я бы не подумал, что речь идет о возможностях языка. Большинство сложностей восприятия возникает из-за плохой стркутуры кода и плохого проектирования продукта. Если дело только в особенностях языка, то у разработчика не должно составить труда разобраться в них, заодно научившись чему-то новому.

bolk (bolknote.ru)
18 февраля 2011, 18:44, ответ предназначен SiMM

Интересно, а -0 меньше 0? :)
Они равны.

hshhhhh.name (hshhhhh.name)
18 февраля 2011, 18:45, ответ предназначен bolk (bolknote.ru):

За последние две недели я написал на работе 4 строчки кода, около 10 строк конфига nginx и не сделал ни одного коммита.
а... Так ты сисадмин. Всё понятно.

bolk (bolknote.ru)
18 февраля 2011, 20:33, ответ предназначен hshhhhh.name:

Вот там ↑↑↑↑↑↑↑↑ написано, что я руководитель группы разработчиков.

анонимус (инкогнито)
18 февраля 2011, 23:50, ответ предназначен bolk (bolknote.ru):

Они равны.
запускал, проверял? ))))

Vladimir Moskva (fulc.ru)
19 февраля 2011, 02:06, ответ предназначен bolk (bolknote.ru):

Signed zero -- это ведь не только -0, но и +0. Такой в JS есть?

Vladimir Moskva (fulc.ru)
19 февраля 2011, 02:11

Почитал спецификацию, вопрос отпал. Показалось, что имеет смысл отделять понятия Signed zero от просто ноля (который unsigned). Так же как и пределом последовательности может быть как 0, так и ±0.

bolk (bolknote.ru)
19 февраля 2011, 11:09, ответ предназначен анонимусу

запускал, проверял? ))))
Зачем запускать? Во-первых, есть спецификация (на ссылке в моей заметке), во-вторых, если бы они не были равны, это породило бы странные эффекты в языке, которые были бы заметны.

jankkhvej (jankkhvej.blogspot.com)
19 февраля 2011, 14:56

Перечитал первый камент, так и не понял, как его можно было воспринять на свой счёт и так затроллиться. Ну действительно, хороший вопрос же. Я вот на PHP пописываю с времён PHP/FI, а про http://php.net/manual/en/function.ignore-user-abort.php не знал до сегодняшнего утра.
Кстати, считаю, что ignore_user_abort вредна, как goto – создаёт ложное чуство защищённости, и позволяет считать безопасным написание двух зависимых действий без транзакции. Мол, всё равно ж выполнение скрипта не прервётся… Хотя сама функция поступает ровно так, как она называется.
Так что вопрос про нули хороший для любого собеседования.

анонимус (инкогнито)
19 февраля 2011, 15:11

Мол, всё равно ж выполнение скрипта не прервётся…
да кто вам такое сказал? :)
или max_execution_time у вас в ноль стоит и вы моете себе такое позволить? :)

ignore_user_abort иногда нужна. например если не хочется периодические задачи запускать по крону или хочется запустить что-то долгое через веб, не дожидаясь ответа. вопрос удобства :)

jankkhvej (jankkhvej.blogspot.com)
19 февраля 2011, 15:22

анонимус, считаешь, что выставив в 0 max_execution_time и ignore_user_abort в true, можно забыть про исключения и транзакции?

bolk (bolknote.ru)
19 февраля 2011, 18:45, ответ предназначен jankkhvej (jankkhvej.blogspot.com):

Я не анонимус, но не считаю. Например, такой пример прекрасно прерывается по Ctrl+C:

<?
ignore_user_abort(true);
set_time_limit(0);

for ($i = 0; $i<1000000; $i++) {
sin($i);
}

И умирает при получении TERM и мало ли ещё что. Память внезапно кончилась (у PHP есть ограничение на память), segfault получился и так далее.
Перечитал первый камент, так и не понял, как его можно было воспринять на свой счёт и так затроллиться
Потому что этот вопрос надо воспринимать в контексте. До этого было несколько обсуждений собеседований в Яндексе.

jankkhvej (jankkhvej.blogspot.com)
19 февраля 2011, 21:29, ответ предназначен bolk (bolknote.ru):

Эх, каменты в блогах — не группы новостей в старом добром Netscape communicator. Может, если уж комментаторы зарегистрированы, давать возможность посмотреть последние каменты по клику на аватарке?

bolk (bolknote.ru)
19 февраля 2011, 22:36, ответ предназначен jankkhvej (jankkhvej.blogspot.com):

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

анонимус (инкогнито)
20 февраля 2011, 00:36, ответ предназначен jankkhvej (jankkhvej.blogspot.com):

анонимус, считаешь, что выставив в 0 max_execution_time и ignore_user_abort в true, можно забыть про исключения и транзакции?
lolwhat?
я то как раз так не считаю.
НО. для одминских задач - что-то там запустить и тд - допускаю.
а когда такое на массово дергаемом юзерами скрипте - тадада - программера надо вешать.
Я не анонимус, но не считаю. Например, такой пример прекрасно прерывается по Ctrl+C:
В консоли. А на вебсервере если юзер дернул его и прервал чтение данных он будет работать. ну или если время взаимодействия истекло.
Евгений, я для частных ситуаций обработки данных если разово что-то большое надо запустить - запустить скрипт на вебсервере и "забыть" - тут ниче плохого нет.
А вот если такой скрипт все подряд дергают - такое делать низя.
в общем все зависит от предусловий. (с) Пастер

bolk (bolknote.ru)
20 февраля 2011, 00:52, ответ предназначен анонимусу

А на вебсервере если юзер дернул его и прервал чтение данных он будет работать. ну или если время взаимодействия истекло
Вы какую-то одну цитату выдернули. Почему? Я там ещё несколько случаев привёл.

bolk (bolknote.ru)
20 февраля 2011, 01:02, ответ предназначен анонимусу

И, честно сказать, я не очень-то понимаю чему вы пытаетесь меня научить :) Я на PHP программировать начал где-то в конце 90-х, ещё на 3-й версии программировать начал. Знаю этот язык вдоль и поперёк :)

анонимус (инкогнито)
20 февраля 2011, 01:03, ответ предназначен bolk (bolknote.ru):

ну.... смотря как писать :)
например есть задача - раз в час обновлять кейворды из свежеобновленных статей пропущенные через стеммер портера(нужно было для написания автодополнения шустрого). можно запускать в кроне. можно запустить руками через веб и там такая штука будет нужна.
Некоторые любят скрипты такой пакетной обработки запускать не в консоли или через крон а со стороны вебсервера. там такая штука имеет смысл(max_execution_time в 0 + ignore_user_abort в true).

сожрет скрипт память или нет - понятно от кого зависит :)
я про задачки из разряда "однообразно перелопатить кучу данных". там это может иметь смысл.
риск что за это время что-то будет с вебсервером тоже есть :) ну так можно и точку на которой скрипт стопорнулся запомнить :)

hshhhhh.name (hshhhhh.name)
20 февраля 2011, 02:32, ответ предназначен bolk (bolknote.ru):

Вот там ↑↑↑↑↑↑↑↑ написано, что я руководитель группы разработчиков.
http://4.bp.blogspot.com/_DoMs4zc6wuI/TALgtABzGuI/AAAAAAAAB4E/9rDrYY6iqcQ/s1600/Sarcasm-the-big-bang-theory-8135257-500-281.jpg

jankkhvej (jankkhvej.blogspot.com)
20 февраля 2011, 11:15, ответ предназначен bolk (bolknote.ru):

Ну, чтобы видеть контекст – сколько в каком топике и чего этот комментатор накомментил.

bolk (bolknote.ru)
20 февраля 2011, 11:16, ответ предназначен hshhhhh.name:

Я очень долго занимался и программированием тоже. Сейчас это хобби, на работе программировать времени не хватает.

bolk (bolknote.ru)
20 февраля 2011, 11:17, ответ предназначен jankkhvej (jankkhvej.blogspot.com):

То есть чтобы понять не тролль ли это или что? Я просто пытаюсь задачу представить, ведь от этого решение зависит.

jankkhvej (jankkhvej.blogspot.com)
21 февраля 2011, 11:55

Ну, не только "тролль/не тролль", просто вообще составить представление о.
Чтобы хоть так вот примерно было – https://groups.google.com/forum/#!activity/ukr.nodes/YpHPUyOI2nYJ

bolk (bolknote.ru)
21 февраля 2011, 23:23, ответ предназначен jankkhvej (jankkhvej.blogspot.com):

Хм… всё-таки пока до конца не понимаю зачем это. Подумаю.

Ваше имя или адрес блога (можно OpenID):

Текст вашего комментария, не HTML:

Кому бы вы хотели ответить (или кликните на его аватару)