Pull to refresh
513
0
Слава Вишняков @yoihj

Нагруженные бэкэнды

Send message

Сугубо ненаучно: Tarantool 1.6 vs Golang (по скорости)

Reading time7 min
Views27K

Зачитался я последнее время про Tarantool, интересно стало. Идея хорошая — код рядом с базой данных, хранимка в такой быстрой Redis-подобной среде.


И что-то задумался — мы вот сейчас используем активно на работе Golang, собственно, мысль пришла что на Go написано много всего, в т.ч. и встраиваемых баз. А что если сравнить, например, Go+LevelDB (собственно, можно было бы и любую другую) против Tarantool. Тестировал еще Go+RocksDB, но там оказалось все немного сложнее, а результат примерно тот же на небольших данных.


Тестировал простую задачу — HTTP сервер, при запросе — записать ключик в базу, достать его же по имени (без всяких проверок на race), отправить назад простенький JSON из этого value.


Сравнил: go+leveldb, tarantool, go+go-tarantool, nginx upstream tnt_pass

Читать дальше →
Total votes 28: ↑25 and ↓3+22
Comments101

extsrc.js — загружаем все скрипты асинхронно и уже после отрисовки страницы (даже с document.write)

Reading time4 min
Views21K
Хочу Вам рассказать о штуке, которую я изобрел сегодня, чтобы ускорить процесс загрузки сайтов. Все вы знаете, что <script src="..."></script> задерживает отрисовку страницы, пока не загрузится этот скрипт. Если их десятки — это может сереьезно замедлить работу сайта — в результате пользователь 20 секунд пялится на пустую (или недорисованную) страницу из-за какого-нибудь тупящего социального виджета (умножить на десяток этих виджетов).

Не правда ли было бы круто, если бы можно было сказать <script extsrc="..."></script> ("extsrc" = "грузи потом"), чтобы скрипты загружались после того как страница отрисована?

Все бы хорошо, но есть document.write… Сегодня я наконец решил его проблему — представляю extsrc.js — скрипт, который запустит все скрипты после отрисовки страницы (даже если они содержат document.write — и правильно отрисуется все).

Результат? Супер-быстрая загрузка страниц, даже если там море всяких внешних скриптов.

Использование:

Заменяем <script src="..."> на <script extsrc="...">.

Итого получается:

<script src="http://whiteposts.com/extsrc_js/extsrc.js"></script>
<script extsrc="..."></script>

все остальное под катом
Total votes 171: ↑157 and ↓14+143
Comments131

StyleBot

Reading time1 min
Views14K
Отличное новое расширение для Chrome — ставим, нажимаем на иконку, кликаем (не)угодные элементы (или пишем свой CSS-селектор) и применяем к ним новые стили — от сокрытия до изменения цветов, размеров и вообще всего, что CSS позволяет; сохраняется автоматически и применяется при следующем заходе тоже.



Скачать
Домашняя страница проекта StyleBot

Кстати, сам примененный CSS можно открыть (кнопка «Edit CSS»), так что верстальщикам тоже, думаю, пригодится.
Total votes 58: ↑48 and ↓10+38
Comments72

Evercookie — самые устойчивые куки

Reading time1 min
Views73K
Samy Mamkar разработал систему, которая позволяет хранить куки в 8 местах, автоматически восстанавливая друг друга, и даже добиться того, чтобы куки, поставленное в одном браузере, действовало и в другом.

Удалить это куки практически невозможно! (Все возможно, конечно, но слишком много мороки)

Куки хранятся в:
  • HTTP Cookies;
  • Local Shared Objects (Flash);
  • Сохранение куки в значениях RGB автосгенерированных и форсированно кэшированных PNG с использованием HTML5 canvas;
  • Сохранение куки в Web History;
  • HTML5 Session Storage;
  • HTML5 Local Storage;
  • HTML5 Global Storage;
  • HTML5 Database Storage через SQLite.

При удалении из одного из этих мест кука автоматически восстанавливается из оставшихся. Работает даже если пользователь сменит браузер (через Local Shared Objects из Flash).

Описание (на английском) и демо: http://samy.pl/evercookie/.
Попробуйте удалить куки, почистить систему и зайти назад.



Как пользоваться?
Читать дальше →
Total votes 111: ↑107 and ↓4+103
Comments68

MapReduce: более продвинутые примеры, попробуем без зауми

Reading time9 min
Views33K
Чтобы не откладывать в долгий ящик сразу порассказываю несколько других примеров для MapReduce, обещанные в топике "MapReduce без зауми". (Если не понимаете полностью что такое MapReduce — прочитайте тот топик сначала! Без него не разберетесь)

Поговорим тут о подсчетах национальностей в городах, средних оценках и приводах учеников, ТИЦ, PageRank, входящих ссылках, нишевых ключевых словах, словах-синонимах, социальных сетях и общих друзьях. Постараемся обойтись без математических знаков и зауми.

Однако тема сама по себе сложная и все же напрячь мозги придется. Когда поймете — будет очень просто.

Входящие ссылки


Допустим у нас есть Интернет. В Интернете есть исходящие ссылки.

Допустим на входе у нас есть такие данные об ИСХОДЯЩИХ ссылках, собранные нашим паучком:

habrahabr.ru -> thematicmedia.ru, apple.ru, microsoft.com, ubuntu.com, yandex.ru
thematicmedia.ru -> habrahabr.ru, autokadabra.ru
autokadabra.ru -> habrahabr.ru, yandex.ru


Т.е. мы знаем, что Хабр ссылается на Apple, MS, Ubuntu и Яндекс но кто ссылается на Хабр? Да, вопрос примитивный, но все же разложим на MapReduce. Дальше будет интереснее и этот пример понадобится.

Читать дальше →
Total votes 94: ↑86 and ↓8+78
Comments7

MapReduce или подсчеты за пределами возможностей памяти и процессора (попробую без зауми)

Reading time8 min
Views91K
Давно хотел рассказать про MapReduce, а то как ни взгляшешь на подобное — такая заумь, что просто ужас берет, а на самом деле очень простой и полезный подход для многих целей. И реализовать самому — не так уж и сложно.

Сразу скажу — топик — для тех, кто не разобрался что такое MapReduce. Для тех, кто разобрался — полезного тут ничего не будет.

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

Сначала опишу как она рождалась (подход был неправильный), а потом как надо правильно делать.

Как посчитать все слова в Википедии (неправильный подход)


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

В самом простом случае мы можем завести хеш (dict, map, hash, ассоциативный массив, array() в PHP) и считать в нем слова.

$dict['word1'] += 1

Но что делать когда память под хеш кончится, а мы посчитали только одну сотую всех слов?

Читать дальше →
Total votes 141: ↑133 and ↓8+125
Comments53

Будущее интерфейсов

Reading time1 min
Views1.6K

Можно смотреть примерно с 2:40.
До 6:30 показываются технологии, которым 15 лет, но которые до сих пор толком не используются. После 6:30 идет уже новинка в духе «Особого Мнения» (Minority Report).

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

Читать дальше →
Total votes 50: ↑43 and ↓7+36
Comments59

Правильный инструмент: подбор CMS

Reading time1 min
Views1.8K
После публикации топика "Правильный инструмент", меня попросили сделать такую же систему, но для подбора наиболее подходящей системы управления сайтами (CMS) с учетом коллективного мнения Хабра.

Поскольку сам я готовым CMSками не пользуюсь — я точно сказать и не могу — нужно ли это будет кому-то.

Пробуйте, голосуйте, читайте результаты.

Пишите в комментариях если какие-то CMS я упустил и может какие-то вопросы, которые следовало бы добавить о системах управления сайтами.



Читать дальше →
Total votes 59: ↑43 and ↓16+27
Comments79

Правильный инструмент

Reading time1 min
Views1.3K
Некоторое время назад я натолкнулся на сайт "TheRightTool" — эдакий рейтинг языков программирования на соответствие разным утверждениям, например: «На этом языке легко писать эффективный код». Сразу понятно, что такой рейтинг очень полезен (хотя интерфейс у них — беда — на третьем вопросе мне надоело переставлять языки).

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

Итак, сегодня в течение часиков пяти мне было заняться нечем, так что, дорогой Хабр, встречай русский аналог (на слабеньком VPS, так что рано или поздно сдохнет под Хабраэффектом — извиняйте, ставьте закладку, заходите завтра):



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

Читать дальше →
Total votes 95: ↑80 and ↓15+65
Comments106

«Сложный пароль» в расшифровке не нуждается

Reading time6 min
Views20K
Проскочил тут топик про «сложные» пароли. К сожалению, смотрю, многие серьезно восприняли этот «метод»…

Использование карточек шифрования не является надежным методом! Как правильно заметили в комментариях там — «это в войну наши деды использовали»… Но использовали более совершенные методы.

Приведенный в той статье метод использовать НЕЛЬЗЯ ни в коем случае(!), пароли по этому методу полностью расшифровываемые, Вы просто отдадите их злоумышленникам на блюдечке! И сейчас я это докажу…

Читать дальше →
Total votes 333: ↑319 and ↓14+305
Comments149

У Вас WiFi? Тогда Google едет к Вам

Reading time1 min
Views992
У Гугл опять прокол с частной жизнью граждан. В Германии обнаружилось, что фургончики Street View сканируют беспроводные сети и записывают MAC-адреса частных пользователей. Что жутко в этой истории — так это факт того, что чтобы они ни делали с ними — это все равно будет страшно.

Если опубликуют — это неприятно и проблематично. Как говорят исследователи информационной безопасности — существует статистическая возможность связать MAC-адрес с записями в социальных сетях.

Если не опубликуют — еще проблематичнее — ведь не знаешь для чего именно эта информация собиралась.

Читать дальше →
Total votes 19: ↑12 and ↓7+5
Comments27

McAfee увел в бесконечную перезагрузку миллионы чистых компьютеров

Reading time1 min
Views4.4K
Выпущенный сегодня апдейт (McAfee DAT 5958) к антивирусу McAfee приводит к бесконечным перезагрузкам на Windows XP SP3, считая svchost.exe (Services) — вирусом.

В бесконечный ребут ушли PricewaterhouseCoopers New York (только там — сотни тысяч компьютеров), кампусы колледжей, госпитали, использующие медицинское ПО для Windows, и множество других компаний по всему миру.

Черный юмор, но Mcafee — первый антивирус, официально признавший винду вирусом.

Лечение антивируса - под катом
Total votes 157: ↑147 and ↓10+137
Comments129

Будущее Photoshop: Content-aware fill

Reading time2 min
Views4.7K
Что Photoshop грядущий нам готовит — скорее всего в CS5, но может немного позже. Видео на английском, но, в принципе, и так все понятно должно быть. Хотите стереть дерево, чтобы никто не заметил? Нет проблем, пара кликов. Никаких больше clone tool. Хотите дорисовать панораму до углов? Нет проблем, те же пара кликов и пустые места сами дорисовались. Собственно, продолжение развития идеи PatchMatch.

Самые впечатляющие вещи после 2:50 и до конца ролика. Для несведущих в английском — работа идет с одним слоем и объекты(дерево, дорога, пустые куски в панораме) удаляются(закрашиваются и дорисовываются) Photoshop'ом в автоматическом режиме.



Еще примеры и про технологию — под катом
Читать дальше →
Total votes 48: ↑45 and ↓3+42
Comments80

MongoDB vs MySQL (vs Cassandra): А теперь чуть более правильный ответ

Reading time3 min
Views27K
Собственно, сегодня был запощен топик "Сравниваем производительность MongoDB и MySQL на простом примере", в котором указывалось, что MongoDB превышает по производительности MySQL в разы. Хех, когда такое пишут — я сразу лезу проверять и сомневаться. Я полез в исходники оригинального теста (спасибо за публикацию). И как оказалось автор оригинального топика сделал ошибку в три символа и на самом деле не все так:
  1. В оригинале: MongoDB быстрее MySQL пишет в 1.5 раза (ДА, правда у меня в 3 раза)
  2. В оригинале: MongoDB быстрее MySQL читает в 10 раз (НЕТ, на самом деле — MongoDB примерно на равных плюс-минус 10-30%)
  3. InnoDB vs MyISAM — плюс-минус (в оригинале не тестировалось)
Сравнение здесь происходит только как key-value storage (запись-чтение по primary key).


На графике — число операций в секунду, (больше — лучше), шкала логарифмическая.
Последняя строка — то, что тестировал автор оригинального топика (неправильное, не в критику — все мы ошибаемся и учимся).


А теперь подробнее об ошибке…
Читать дальше →
Total votes 62: ↑56 and ↓6+50
Comments71

Пробуем TorrentStream — смотрим торренты онлайн

Reading time5 min
Views111K
Собственно, про топик-ссылку "On-line кинозал по протоколу p2p" про torrentstream.org. Скачал попробовать. Интересно.

Что это? Просмотр фильмов в .torrent прямо в браузере, прямо по ходу скачивания.

Коротко: в принципе работает; лучше чем uTorrent Stream; только Windows (Linux и Mac порты уже в разработке); удобства только только для FireFox; сам плеер работает и в IE и в Chrome тоже (ниже опишу как); качать надо довольно немаленький .exe (32mb); антивир — в комментах проверили KIS — норм все; плеер не понимает клавиатуры; есть подозрения про будущее проекта (слово «монетизация» слишком часто на сайте употребляется).



Качать: сам плагин 32МБ (или прямая ссылка на скачивание), надстройка для FireFox для удобства.

Внутри TorrentStream прямо рай для IT-шника кстати — сам написан похоже на Python 2.5 + wxWidgets + libvlc + Tribler (внутри немного покопаюсь в топике). Скомпилен py2exe. Есть еще какие-то куски от Lua — не понятно чего делающие. Собственно в распакованном виде: 26мб — только библиотеки Python+wxWidgets + 51МБ библиотеки libvlc (кодеки).
Читать дальше →
Total votes 66: ↑53 and ↓13+40
Comments113

Вышел PyPy 1.2 и ускорил Python в разы!

Reading time2 min
Views14K
Вышел PyPy 1.2. Основное отличие — наличие JIT компилятора.
Чтобы долго не объяснять что это и зачем — простой тест:

cnt = 10 * 1000 * 1000
for _ in xrange(cnt): 
    i = i + 1


5.8млн операций сложения в секунду на обычном СPython 2.6 (python test.py)
42.5млн операций в секунду на PyPy 1.2 (pypy test.py)
WinXP SP3, Core2Duo.

Да, в 7 раз быстрее он тест сделал! И это не только на синтетическом тесте: «django» в 3 раза быстрее, «n-body» в 7 раз быстрее… Я не знаю что такое тест «richards», но он теперь вообще в почти 12 раз быстрее. Смотрите результаты сами.

Читать и качать (из раздела "«JIT compiler» version"). 64-bit версии пока нет. А unladen-swallow нервно курит... Под катом еще несколько невероятностей (stackless, «песочница для python кода»)…
Читать дальше →
Total votes 94: ↑82 and ↓12+70
Comments94

Unlimited Detail — интересно, но есть у меня вполне конкретные сомнения…

Reading time9 min
Views8.6K
Несколько дней назад проскочило видео по Hacker News (и спасибо ayambit за напоминание о них на Хабре) про компанию Unlimited Detail, которая обещает сделать самые современные карточки NVidia и ATI бесполезными и рендерить сцены в миллиарды точек на обычном процессоре (CPU), без 3D ускорения(!) вообще. Превышая возможности современных видеокарт в сотни раз (тысячи, по заявлениям авторов, которые я ниже оспорю).

Если кто еще не видел:



Сначала на всякий случай о том чего это такое, а потом о том, что у меня, как у программера, сомнения вызывает, что на нетбуках без 3D карт, скоро будут в Crysis 3 играть…

(дальше очень много слов и технических деталей)
Читать дальше →
Total votes 157: ↑146 and ↓11+135
Comments210

Global Illumination на GPU

Reading time1 min
Views4K
Ну что, господа любители V-Ray / Mental Ray… CryTek решили поиздеваться… Если раньше на один кадр с технологией подобной «global illumination» (отражения света) Вам требовались часы или сутки, то теперь оно может появиться и на Ваших экранах… со скоростью 120 fps! То, что мы видели только на пре-рендеренных вещах, уровнях, играх с запеченным освещением от Illiminate Labs (Mirror's Edge) — теперь будет real-time:

CryEngine 3 — Global Illumination with Light Propagation Volumes

(Смотреть такое, конечно же, в HQ и Full Screen)

Примерно с 1:00 начнется Manhattan Apartment, где показывается изменение освещенности в реальном времени и динамический Global Illumination.
Читать дальше →
Total votes 36: ↑32 and ↓4+28
Comments63

Google AdSense и WebMoney

Reading time1 min
Views2.2K
Оказывается, Google собирает от издателей AdSense идеи до 15 декабря. В частности, одна из идей — поддержка выплат в WebMoney.

Официальное сообщение от Google. (в самом низу)

Поддержать идею можно здесь.

Среди других идей — CSS, минимальные цены, фильтры…
Читать дальше →
Total votes 88: ↑77 and ↓11+66
Comments46

Вот этим мне и не нравится зона.рф

Reading time1 min
Views2.4K
Только что пришло письмо от Ру Центра об официальном старте зоны…
image

.עז?

А ты уже зарегистрировал домен россия.עז?

А сколько еще будет проблем сисадминам с DNSами, SMTP/POP'ами, да и вообще всем нам IT-шникам.

Читать дальше →
Total votes 131: ↑113 and ↓18+95
Comments183
1

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Date of birth
Registered
Activity