Pull to refresh
65
0
Игорь Аникеев @Coder

User

Send message

Организация on-line платежей на сайте. Для тех, кто никогда этим не занимался, но боится, что придётся

Reading time2 min
Views4.2K
Я хочу поделиться простым взглядом на сложные вещи.
Отлично помню своё первое столкновение с on-line платежами. Тогда меня такая задача морально напрягала: мало того что на мне ответственность за чьи-то деньги, так я ещё и не понимаю даже обычной банковской системы, что уж говорить о виртуальной.
Хорошо, если бы мне тогда кто то сказал...

Честные и благородные способы сделать так, чтобы в интернете вас любили и уважали (не seo)

Reading time1 min
Views11K
image
Недавно в Самаре прошла конференция веб-разработчиков 404 на которой я делал доклад о секретах продвижения Турбомилка в интернете. Скромность — это модно, но не практично. Мало сделать что-то крутое, про это нужно интересно рассказать, причем, нужным людям.

В ходе доклада я рассказал как нам помогает наш корпоративный блог (в том числе на Хабре), что мы туда пишем и как следим за результатами. Плюс, показал картинки про великие и ужасные Хабра-эффект и Digg-эффект.


Делать доклад мне помогал Платон Днепровский из UIDesign Group за что ему большое спасибо. (ролик рекомендуется смотреть прямо с Vimeo в HD-качестве)

Читать дальше →

Map/Reduce: решение реальных задач — TF-IDF — 2

Reading time3 min
Views14K
Продолжая статью “Использование Hadoop для решения реальных задач”, хочу напомнить, что в прошлой статье мы остановились на том, что посчитали такую характеристику как tf(t,d), и сказали, что в следующем посте мы будем считать idf(t) и завершим процесс вычисления значения TF-IDF для данного документа и термина. Поэтому предлагаю долго не откладывать и переходить к этой задаче.

Важно заметить, что idf(t) не зависит от документа, потому как считается на всем корпусе. Это нетрудно увидеть, посмотрев на формулу:



Вероятно, она нуждается в некоторых пояснениях. Итак, |D| это мощность корпуса документов — иными словами, просто количество документов. Мы знаем его, поэтому считать ничего не надо. Знаменатель же логарифма — это количество таких документов d которые содержат интересующий нас токен t_i.

Читать дальше →

Map/Reduce: решение реальных задач — TF-IDF

Reading time6 min
Views21K
Вчера я задал вопрос в своем ХабраБлоге — интересно ли людям узнать, что такое Hadoop с точки зрения его реального применения? Оказалось, интересно. Дело недолгое — статью я написал довольно быстро (по крайней мере, ее первую часть) — как минимум, потому, что уже давно знал, о чем собираюсь написать (потому как еще неплохо помню как я сам тыкался в поиске информации, когда начинал пользоваться Hadoop). В первой статье речь пойдет об основах — но совсем не о тех, про которые обычно рассказывают :-)

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

Что такое Hadoop?




Ну скажите, какой смысл об этом писать? Уже не раз это проговаривалось, неоднократно начинали писаться посты на тему Hadoop, HDFS и прочая. К сожалению, обычно все заканчивалось на довольно пространном введении и фразе “Продолжение следует”. Так вот: это — продолжение. Кому-то тема, затрагиваемая в этой статье может показаться совершенно тривиальной и неинтересной, однако же лиха беда начало — любые сложные задачи надо решать по частям. Это утверждение, в частности, мы и реализуем в ходе статьи. Сразу замечу, что я постараюсь избежать написания кода в рамках этой конкретной статьи — это может подождать, а понять принципы построения программ, работающих с Map/Reduce можно и “на кошках” (к тому же с текущей частотой кардинального изменения API Hadoop любой код становится obsolete примерно через месяц).

Когда я начинал разбираться с Хадупом, очень большой сложностью лично для меня стало первоначальное понимание идеологии Map/Reduce (я предпочитаю писать это словосочетание именно так, чтобы подчеркнуть, что речь идет не о продукте, а о принципе). Суть и ценность метода станет понятна в самом конце — после того, как мы решим несложную задачу.
Читать дальше →

placeholder.js

Reading time1 min
Views24K
В HTML5 есть замечательный атрибут placeholder.

<input placeholder="inbox@disney.com">

placeholder

Сейчас он работает только в webkit-браузерах (Safari, Google Chrome).

С помощью JS, не изобретая велосипедов, placeholder.js делает этот атрибут кроссбраузерным.

<input placeholder="inbox@disney.com" id="some_input">
<script type="text/javascript">
  inputPlaceholder( document.getElementById('some_input') )
</script>


placeholder.js (1.3 килобайта)

Lagger — обработка ошибок и отладка в PHP с закрытыми глазами

Reading time6 min
Views2.3K
image

Впервые этот инструмент был представлен широкой публике в 2008 году на конференции Highload.ru, после чего был основательно оптимизирован и доработан. О том, что же это за зверь такой и как им удобно пользоваться
читаем далее

Создание прототипа с помощью CSS-фреймворка Grid 960

Reading time10 min
Views24K
imageGrid 960 — это CSS Фреймворк, который позволяет разработчикам быстро конструировать прототипы дизайна. Они являются замечательным инструментом для создания макетов. Почему? Потому что они делают за вас всю тяжелую работу, позволяя получить быстрые результаты.

Звучит отлично, но как это делается? В интернете есть большое количество статей, агитирующих за и против использования CSS-фреймворков, но нет ничего в помощь неопытным читателям. Поэтому в сегодняшней статье мы рассмотрим процесс создания прототипа.
Читать дальше →

Как подтвердить телефон на Amazon

Reading time1 min
Views18K
Так уж случилось, что Amazon разослал пользователям письмо с просьбой подтвердить номер телефона для дальнейшего успешного использования EC2.

Суть простая. Указываешь код страны и свой номер, тебе звонят и просят ввести ПИН. Облом случился тогда, когда я не увидел Беларуси в списке. Что делать?

Читать дальше →

Пункт «Properties» будет убран из контекстного меню браузера Firefox (но можно использовать расширение)

Reading time1 min
Views1.5K
Многие пользователи Файерфокса давно знают о том, что из контекстного меню (то есть из того, которое появляется, если правой клавишею мыши жмякнуть по странице) можно выбрать пункт «Properties» — и тем вызвать список свойств элемента страницы, жмякнутого мышою.

Например, если жмякнутый элемент — это картинка-гиперссылка, то можно вызвать примерно вот какое окошко:

[окошко свойств картинки-гиперссылки]

Однако же некоторым другим пользователям Файерфокса и это окно, и этот пункт в контекстном меню не были ни за чем нужны.

Так что, некоторое время подумавши, программисты Фонда Мозиллы вообще убрали этот пункт напрочь (и из Firefox 3.6, и из Firefox 3.7).

Для тех же пользователей, которым будет всерьёз недоставать этого пункта (а я уверен, что среди веборазработчиков на Хабрахабре таких много!..), предназначается новое расширение — «Element Properties», которое возвращает в Firefox желаемый подпункт контекстного меню и соответствующее ему диалоговое окошко.

Будьте готовы.

Интерактивный редактор для jQuery — прорыв?

Reading time1 min
Views5K
Странно, что такое шикарное событие не взбудоражило умы Хабровчан. Эта новость достойна твоего внимания, %username%!

Внимание — видео!



Понравилось? Тогда беги и качай бесплатно прямо сейчас: www.ixedit.com

Способы сокрытия IP-адреса в сети Internet

Reading time7 min
Views162K
Прежде чем мы подробно рассмотрим известные технологии сокрытия своего настоящего IP-адреса, нам следует узнать свой IP-адрес и выяснить некоторые вещи, обличающие наш компьютер в сети, например адрес DNS-сервера. Для этого достаточно зайти на любой сервис проверки анонимности, например www.whoer.net, главное чтобы он обладал интерактивной проверкой вашего компьютера с помощью Java, ActiveX, Flash и Javascipt. Изменить свой IP-адрес, например с помощью Socks или VPN, недостаточно, т.к. существует множество технологий, позволяющих его выявить, которые нужно либо отключить на своем компьютере, либо обмануть. Также не лишним будет изменить передаваемые НТТР-заголовки, это позволит «сбить» определение установленного ПО и географическое место расположения компьютера. Более детально проверить свой компьютер можно в расширенной версии www.whoer.net/ext.

Читать дальше →

Резервное копирование на Аmazon S3 для начинающих

Reading time2 min
Views4K
Давно хотел организовать дублирование на S3 ключевых личных файлов, и вот наконец собрался. Готового решения с толковой статьей на русском языке навскидку найти не удалось, так что пришлось вспоминать английский, благо — все оказалось не просто, а очень просто.

Этот короткий материал ориентирован на «самых-самых маленьких» пользователей Linux и служит целью показать, насколько легко и просто организовать резервное копирование на сервера Amazon S3.

Читать дальше →

Текст любой ценой: WCBFF и DOC

Reading time9 min
Views29K
Несколько позже, чем хотелось, но продолжаем наш разговор о получении текста из разных форматов данных. Мы с вами уже познакомились с тем, как работать с изначально XML-base файлами (docx и odt), прочитали текст из pdf, преобразовали содержимое rtf в plain-text. Теперь перейдём в вкусненькому да сладенькому — формату DOC.
Читать дальше →

Диагностируем ложь…

Reading time5 min
Views13K
Сегодня решил написать статью с одной стороны не IT-ишную, с другой она касается любого человек. Я думаю, многие из вас, уже подсели на сериал «Теория лжи», в этом сериале все события разворачиваются вокруг невербального общения. На эту тему я еще подсел в школе, когда родители мне отрыли секрет, как они определяют, что я вру. Невербальное общение не ограничивается одним враньем, оно охватывает практически все чувства и эмоции человека, это как баги в коде для инжектов и хаков :) Мужчины, как показывает практика, лучше распознают жесты и сигналы тела чем женщины, оно то может и правильно, у них для этого есть интуиция, которая охватывает вообще полу мистические науки, но сейчас не о них.
Читать дальше →

Подводные камни при использовании кэширования в nginx

Reading time10 min
Views58K
В web-сервер и reverse-proxy nginx встроены очень мощные возможности по кэшированию HTTP-ответов. Однако в ряде случаев документации и примеров не хватает, в результате не все получается так легко и просто, как хотелось бы. Например, мои конфиги nginx-а местами написаны кровью. Этой статьей я попробую немного улучшить ситуацию.

В этой статье: а) подводные камни при полностраничном кэшировании; б) кэширование с ротацией; в) создание динамического «окна» в закэшированной странице.

Я буду предполагать, что вы используете связку nginx+fastcgi_php. Если вы применяете nginx+apache+mod_php, просто замените имена директив с fastcgi_cache* на proxy_cache*

Если выбирать, кэшировать ли страницу на стороне PHP или на стороне nginx, я выбираю nginx. Во-первых, это позволяет отдавать 5-10 тыс. запросов в секунду без каких-либо сложностей и без умных разговоров о «высокой нагрузке». Во-вторых, nginx самостоятельно следит за размером кэша и чистит его как при устаревании, так и при вытеснении нечасто используемых данных.

Кэширование всей страницы целиком


Если на вашем сайте главная страница хоть и генерируется динамически, но меняется достаточно редко, можно сильно снизить нагрузку на сервер, закэшировав ее в nginx. При высокой посещаемости даже кэширование на короткий срок (5 минут и меньше) уже дает огромный прирост в производительности, ведь кэш работает очень быстро. Даже закэшировав страницу всего на 30 секунд, вы все равно добьетесь значительной разгрузки сервера, сохранив при этом динамичность обновления данных (во многих случаях обновления раз в 30 секунд вполне достаточно).
Читать дальше →

OpenCL. Что это такое и зачем он нужен? (если есть CUDA)

Reading time6 min
Views142K


Здравствуй, уважаемое хабра-сообщество.

Многие, наверное, слышали или читали на хабре об OpenCL – новом стандарте для разработки приложений для гетерогенных систем. Именно так, это не стандарт для разработки приложений для GPU, как многие считают, OpenCL изначально задумывался как нечто большее: единый стандарт для написания приложений, которые должны исполняться в системе, где установлены различные по архитектуре процессоры, ускорители и платы расширения.
Читать дальше →

Server-side JS (v8+Node)

Reading time2 min
Views12K
Недавно видел на хабре спор по поводу того, что нам не нужны никакие скриптовые языки, кроме javascript. Утверждение, конечно, спорное, но меня заинтересовала возможность применения javascript на сервере.
Читать дальше →

JQuery Uploadify — мультизагрузка файлов с использованием флэш

Reading time3 min
Views30K
Тема загрузки файлов без перезагрузки страницы поднималась уже неоднократно. Даже я как-то давно писал про это. В основном рассматривались решения без флэша, но сегодня я хотел бы поговорить про плагин для jquery с использованием флэша, а именно о JQuery Uploadify.

Конечно, можно использовать и другой флэшевский загрузчик SWFUpload, но Uploadify, по моему мнению, на порядок легче и проще, вполне подходит для большинства целей, ну и конечно не забываем, что это плагин для нашего любимого jquery, что избавляет нас от подключения еще каких-либо библиотек ;)

Теперь рассмотрим всё на примере.
Теперь рассмотрим всё на примере.

Загрузка и переименование файлов

Reading time4 min
Views8.2K
Статья написана для тех, кто уже хоть немного знаком с архитектурой Zend Framework. Если кому-нибудь будет интересно — опишу работу с формами более подробно в отдельной статье.

Для загрузки файлов на сервер с помощью форм в Zend Framework Form есть элемент Zend_Form_Element_File. У него есть фильтр «Rename», который позволяет переименовать закачаный файл. Но есть минус — мы не можем просто указать новое имя для файла, чтобы сохранилось его расширение. Как это сделать? А как быть, если мы используем setMultiFile?

Читаем дальше

Текст любой ценой: RTF

Reading time14 min
Views88K
Что ж продолжим наши изыскания на предмет получения текста из различных форматов данных. Не так давно мы с вами научились вытаскивать текст из zipped-xml-based файлов (odt и docx), а также, в начале этой недели, из pdf. Сегодня мы продолжим с обещанным rtf.

Rich Text Format (он же rtf), вы могли бы подумать, достаточно забытый, хотя и не очень сложный формат представления текстовых данных. Что ж, относительно несложный для получения текста, но за свою историю: от своей первой версии до текущей 1.9.1 — он приобрёл под 300 страниц официально документации и огромное количество надстроек, которые в большей степени нам будут мешать при получении plain text'а. Попробуем их обойти…
Читать дальше →

Information

Rating
Does not participate
Date of birth
Registered
Activity