All streams
Search
Write a publication
Pull to refresh
632
0
Тагир Валеев @tagir_valeev

Программист

Send message
Есть неплохой injapan.ru/ — тоже по Yahoo-аукционам. Работает много лет и хорошо себя зарекомендовал. Чем вы будете лучше? :-)
У меня на Нокии та же ерунда. К счастью, я попадаю в список :-)
А Реймонд и продолжает :-)
С такими темпами скоро любовь системой диффуров опишут :-)
Я бы тупо посчитал корреляцию оценок по фильмам, оценённым обоими критиками.
Особенности:
  • Симметричность (А похож на Б так же, как Б на А)
  • Устойчивость к константному смещению и множителю. Если я по душе очень критичен и в целом занижаю оценки даже хорошим вещам, а другой более лоялен и ставит всем на балл выше, мы всё равно коррелируем по вкусу.
  • Учёт антикорреляции. Если я оценил три фильма 1/3/5, а оппонент — 5/3/1, то корреляция скажет, что у нас абсолютно противоположные вкусы, а предложенный автором топика метод отметит сходство во втором фильме.
  • Не работает с теми, кто всем ставит одинаковые оценки (если подумать, это логично: такой критик вообще бесполезен).
Пример:
В зоопарк добавочки. Мы Apache Velocity используем:
#if( $foo < 10 )
    <strong>Go East</strong>
#else
    <strong>Go West</strong>
#end

<ul>
#foreach( $product in $allProducts )
    <li>$product</li>
#end
</ul>


А ещё непосредственно PHP используют как шаблонизатор :-)
Никто же не говорит, что надо отменить мозг и обойтись одним только опытом :-)
Автобоксинг, собственно, и вызывает этот метод.
Вернулись же к тому, с чего начали :-) Теперь boxing одного и того же числа делается кучу раз во внутреннем цикле ( put(key, Integer.valueOf(i)) ). Хоть код и «красивее», но память опять загаживается, и всё тормозит :-)
По сути так же, как и в джаве :-)

> Это не работает для простых чисел больше 256.
Математики не простили бы столь вольное употребление выражения «простые числа» =)
Этого не знал, спасибо.
Теоретически два unboxing'а можно сэкономить (смотрите комментарии от AlexanderYastrebov выше).
Перечитайте внимательно. Вообще в изначальном коде так и было — в обоих местах (и в for, и в прототипе put) был int, а память под Integer кушалась тоннами. Надо исправить оба места на Integer, чтобы эффект исчез. Возможно, мне не стоило видоизменять пример, чтобы оставить только одно узкое место…
> for (Integer i = 0; ...) это моветон.
Это некрасиво, но в данном случае оптимально. Как я отметил, можно завести свой кэш Integer-объектов и пользоваться им только внутри put, а снаружи везде использовать int. Но это дополнительные ненужные накладные расходы. Тут весь код — низкоуровневая реализация некого алгоритма, поэтому ему позволительно быть не очень красивым.
Лишние unboxing'и не так страшны, это всего лишь по сути разыменование указателя. А вот лишний boxing — это существенно более неприятная операция.
Как я написал, это не поможет. Тогда всё равно внутри put будут создаваться каждый раз новые объекты. Если не хочется использовать Integer, надо внутри put доставать Integer-объекты из своего кэша.
И приходите в IRC, #node.js (да, в имени точка).

В какой IRC-сети?
=FloatToSamplesInWordsRus(A3)

Начнёте о других языках подумывать — придётся интерфейс менять =)
Я бы предложил язык сделать параметром и в случае его отсутствия использовать какой-нибудь дефолт для документа/аккаунта.

Ещё надо просто сделать число прописью без суммы. Во всяких документах бывают и другие числа прописью (номер продаваемой квартиры в договоре купли-продажи, например).
Спасибо за информацию :-)

> В свое время очень нравился Rubik's SpeedKIT

Я его сейчас и кручу. Дороговат, да, зато просто в магазине продавался :-)

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Registered
Activity