Архив за 16 апреля 2014 - 5

в 11:11, , рубрики: Без рубрики

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

double a = 2.0 - 1.1;

или такого:

double f = 0.0;
for (int i=1; i <= 10; i++) {
	f += 0.1;
}

Вопреки всем моим ожиданиям, ответ: 0.89999999999999991 в первом случае и 0.99999999999999989 во втором.
Для тех, кто хочет узнать почему, а так же еще несколько занимательных фактов про этот тип данных, милости просим.

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

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

(характеристика1 = true AND (характеристика2 < 100)) OR (характеристика1 = false AND (характеристика3 > 17)) ... далее обычно мешанина из ANDOR

Типичный пример подобного функционала — hotline.ua/computer/myshi-klaviatury/

Пример функционала

У нас все реализовано в рамках MySQL + Symfony2/Doctrine, скорость неудовлетворительная — ответы формируются в течении 1-10 секунд. Мои попытки оптимизировать все это хозяйство — под катом.
Читать полностью »

Рынок SEO от простых сервисов переходит к технологиям Big Data, что делает его ещё более интересным. Представьте: к вам на сайт только зашёл пользователь, а вы уже всё о нём знаете – от интересов, до бюджета и адреса доставки. Получая нужного вам пользователя, вы улучшаете показатели своего сайта в выдаче. Это – технологический результат «гонки вооружений» между профессионалами SEO и поисковиками.

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

Layer Exporter Adobe Illustrator


image
Панель для Adobe Illustrator, которая дает возможность автоматически экспортировать каждый слой в SVG, PNG или JPG файлы и генерирует HTML и CSS код.

Photoshop Font Detector Adobe Photoshop


image
Плагин для Photoshop, который поможет распознать шрифты из любого изображение через службу WhatTheFont сайта www.myfonts.com/. Все, что вам нужно сделать, это создать область выделения на изображении, и данная панель сделает все остальное. Вы будете перенаправлены на сайт www.myfonts.com/, чтобы просмотреть результаты поиска.
Читать полностью »

Несколько дней назад компания опубликовала информацию о важном обновлении KB2919355 для Windows 8.1 и RT 8.1. Ключевая особенность этого обновления заключается в том, что без его установки дальнейшее получение security-обновлений для этих ОС невозможно. Размер обновления довольно большой и составляет более 800MB. Оно доступно через Windows Update, а также его файлы можно скачать по этой ссылке.

Microsoft: KB2919355 обязательно для Windows 8.1

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

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

На вопрос «что же из всего этого многообразия мне больше всего подходит?» найти однозначный ответ становится все труднее.

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

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

Китайская компания Vivo работает над новым смартфоном, акцент в котором будет сделан на камере. По данным источника, новинка будет именоваться Xshot, хотя не так давно в новостных сводках аппарат фигурировал под другим обозначением — X-Zoom.

В смартфоне Vivo Xshot акцент будет сделан на камере

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

Компания PNY Technologies расширила ассортимент мобильных зарядных устройств PowerPack. Новая модель называется PowerPack CL51.

Продажи PNY PowerPack CL51 в России уже начались по рекомендованной розничной цене 2 399 рублей

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

15 апреля на TJournal, со ссылкой на сайт sos-rzd.com, появилась информация о возможной утечке данных платежных карт через уязвимость в платежном шлюзе, который РЖД использует для продажи билетов через интернет.

По оценкам «Коммерсанта», РЖД является крупнейшим онлайн-продавцом в России по обороту:

Яндекс.Деньги, ТКС, «Рокетбанк» отреагировали на возможную утечку данных банковских карт клиентов РЖД

На сайте sos-rzd.com, помимо заявления, выложены части номеров платежных банковских карт с именами и датами экспирации. Всего около десяти тысяч номеров.

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

Храним кэш в MongoDB: очистка по методу LRU (так же, как в memcached)На тему «использование MongoDB вместо memcached» гуглится немало историй успеха. Такое ощущение, что есть широкий класс задач, для которых эта идея работает неплохо: прежде всего это проекты, где интенсивно используется тэгирование кэша. Но если вы попробуете, то заметите, что в MongoDB не хватает функции удаления из кэша записей, которые читаются реже всего (LRU — Least Recently Used). Как поддерживать размер кэша в разумных рамках? LRU — это, кстати, «конек» memcached; вы можете писать в memcached, не задумываясь о том, что ваш кэш переполнится; но как же быть с MongoDB?

Раздумывая над этим, я написал на Python небольшую утилиту CacheLRUd. Это демон для поддержки LRU-удаления записей в различных СУБД (в первую очередь, конечно, в MongoDB). Ферма таких демонов (по одному на каждой MongoDB-реплике) следит за размером коллекции, периодически удаляя записи, к которым доступ на чтение производится реже всего. Отслеживание фактов чтения той или иной записи кэша происходит децентрализовано (без единой точки отказа) по протоколу, основанному на UDP (почему так? потому что «наивный» вариант — писать из приложения в мастер-базу MongoDB при каждой операции чтения — плохая идея, особенно если мастер-база окажется в другом датацентре). Читайте подробности чуть ниже.

Но зачем?

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


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