Pull to refresh
3
0
Никита Дудинцев @mediagenia

User

Send message

Полнотекстовый нечеткий поиск с использованием алгоритма Вагнера-Фишера

Reading time3 min
Views24K
Статья написана об использовании алгоритма вычисления расстояния Левенштейна для нечеткого поиска в тексте, без использования вспомогательного словаря.

Расстояние Левенштейна используется для сравнения двух слов или двух строк, чтобы определить их схожесть. Некоторое время назад передо мной встала схожая задача — в заданной строке искать вхождение слов, словосочетаний и формул, похожих на образец.
Читать дальше →
Total votes 23: ↑21 and ↓2+19
Comments7

Букмарклеты: если XPath недоступен, а селекторов и методов навигации по DOM не хватает

Reading time5 min
Views6.3K
Недавно я пытался написать несколько условно кроссбраузерных букмарклетов с выборками и навигацией средней сложности. Решил ограничиться последними версиями Google Chrome, Firefox и Internet Explorer. Приступив к проверке в последнем браузере, с грустью обнаружил, что даже в IE 11 всё ещё нет поддержки XPath.

Вроде бы полная поддержка обещана в Edge: «Microsoft Edge supports the XML Path Language Version 1.0 with no variations or extensions». И уже даже, кажется, реализация добавлена в Internet Explorer Developer Channel (никто не проверял?). Но это пока недостаточное утешение.

(P.S. Проверка через виртуальную машину подтверждает реализацию XPath в MS Edge версии 11.00.10240.16397 от 7.22.2015 (по версии файла), она же 20.10240.16384.0 (по информации в настройках)).

Следующим шагом стало обнаружение библиотеки от Google. Я даже для очистки совести проверил способ с вживлением библиотеки на странички в IE 11 (по описанному здесь методу) — всё замечательно работает даже на параноидальных сайтах вроде Твиттера (к слову, если вы вдруг не знали, в Firefox всё ещё нельзя запустить букмарклет в Твиттере или, например, в Гитхабе, из-за до сих пор не исправленного бага). Но метод этот очень громоздкий. Он хорошо подходит для разработки сайтов, но маленькие пользовательские букмарклеты он отягощает лишней асинхронностью, усложнением логики и дополнительным временем на загрузку файла.

Пришлось искать более простые замены для некоторых не хватавших мне инструментов XPath.
Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments6

Получение участников сообщества vk.com за считанные секунды

Reading time2 min
Views114K
Ни для кого не секрет, что VK API возвращает за один запрос к методу groups.getMembers не более 1 000 участников. В одну секунду вы можете получить максимум 3 000 участников, так как установлено ограничение на количество запросов в секунду до 3. Эту проблему решает метод execute, с помощью которого вы можете получить более 100 000 участников за одну секунду и до 25 000 участников за один запрос. В этой статье я расскажу Вам, как я это реализовал.
Читать дальше →
Total votes 57: ↑43 and ↓14+29
Comments26

Локализация для Бразилии: советы и рекомендации

Reading time5 min
Views9.2K
Конкурентный рынок мобильных приложений Европы и США стабильно растет, а значит, растут и расходы на привлечение новых пользователей. Естественно, что в этой ситуации в центре внимания оказываются самые быстрорастущие игроки мирового рынка мобильных технологий: Китай, Юго-Восточная Азия, Латинская Америка, Россия, Восточная Европа, Ближний Восток и Южная Африка.

Один из наиболее интересных рынков для экспансии – Бразилия. Однако, чтобы завовевать его, необходимо понимать тонкости процесса локализации для этой страны. Мы в Alconost, например, часто сталкиваемся с тем, что разработчики выходят на бразильский рынок с европейской португальской версией продукта или приглашают европейских португальских переводчиков переводить тексты, предназначенные для бразильских пользователей. Так что когда мы нашли дельную статью об особенностях локализации для бразильского рынка, то поспешили перевести ее на русский.


Читать дальше →
Total votes 13: ↑11 and ↓2+9
Comments3

Оптимизируем страницу при помощи собственных социальных кнопок

Reading time5 min
Views28K
Здравствуйте,

Польза в предоставлении пользователям возможности поделиться вашей ссылкой в социальных сетях очевидна. Однако, жертвовать производительностью и временем загрузки страницы тоже не хочется.

image

В статье рассматриваются доступные, готовые для использования социальные кнопки, проблемы с которыми мы столкнулись при их использовании, и описан простой способ как сделать свои кнопки для нескольких популярных социальных сетей.
Читать дальше →
Total votes 27: ↑21 and ↓6+15
Comments21

Телевизор в качестве монитора

Reading time2 min
Views8K
Решил себе купить новый монитор, побольше размером, чем мой Samsung 215TW. Хотелось что-то в районе 24-27 дюймов с нормальной матрицей (*VA, IPS) и RCA-входом (нужен временами), потратить был готов тысяч пятнадцать.

В принципе, в район 10 тысяч сейчас неплохой выбор 23-24" мониторов на IPS и *VA. А вот с 27" хуже, за эти деньги только TN. Когда же добавил в поисковик наличие RCA, то даже среди 24" остались только TN. Либо цена подскакивала до 20-30 тысяч. Стало грустно.

Читать дальше →
Total votes 68: ↑50 and ↓18+32
Comments105

«Стартап без бюджета»: про бизнес неуютный, но интересный

Reading time3 min
Views4K
Краткое содержание: «Стартап без бюджета» = «книга-пинок под зад» + практическое руководство. Энергичным людям — must read.

Я расскажу о книге, написанной авантюристом для авантюристов. Майк Михалóвиц, 30-летний предприниматель, основатель 3 успешных компаний. Он не гений, не вор, не наследник миллионера и совсем не «завоеватель друзей»с приклеенной улыбкой.

Он — ТББ, «туалетно-бумажный бизнесмен». Термин неожиданный и резкий, в этой книге таких много. Он описывает модель поведения. Вы встаете с унитаза и видите — на рулоне с туалетной бумагой остались три сиротливых обрывка. Что будете делать? Высунете голову из двери и позовете на помощь? Сердито натянете штаны «как есть»? ТББ найдет способ обойтись подручными средствами.

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

Предприятия этих людей и сейчас не слишком известны и доходны. Но своих создателей и их семьи они обеспечивают. С запасом.



«Стартап без бюджета» — учебник по предпринимательству такого рода. Как всякий учебник, начинается с теории. Как всякая современная стартаперская книжка, рекомендует найти свое призвание. А вслед за рекомендацией дает четкие пошаговые инструкции — как это сделать.
Читать дальше →
Total votes 46: ↑39 and ↓7+32
Comments36

Могу копать, могу не копать

Reading time2 min
Views1.8K
imageСтартапы Кремниевой Долины сегодня напоминают старых генералов, которые, как известно «никогда не умирают». Они продолжают свой путь на бескрайних просторах Интернета, подпитываемые средними прибылями и капиталом инвесторов, постепенно уходя за горизонт и пропадая из поля зрения.

Сегодня уже всем понятно, что Digg, некогда бывший одним из самых ярких представителей диаспоры, уплывает вдаль от наших глаз. Компания еще не мертва, но ее душа практически улетучилась — на днях Кевин Роуз, один из самых необычных представителей технологической молодежи, заявил об уходе из Digg и уже закрыл очередной миллионный раунд финансирования нового проекта Revision3.

imageНапомню, что Digg был запущен в декабре 2004 года, почти сразу же став хитом. Он и сегодня генерирует гигабайты траффика, но это уже лишь отголоски былой славы. Крупнейшие игроки IT-рынка долго боролись за право откупить этот бизнес, вплоть до середины 2008 года, когда Google и Digg шли к алтарю, но в последнюю минуту венчание было прервано. Говорят, что Google давала около $200 млн. за Digg, и интервьюировала каждого сотрудника Digg. Заслуга второго со-основателя компании, Джея Адельсона, заключалась в том, что он удержал почти всю команду в компании после того, как сделка была отменена.

Это было замечательное время, но со временем новые сервисы, типа Twitter'а и Facebook'а стали более популярны и удобны. Роуз и Адельсон отдалились от дел, Роуз, по слухам, бывал в офисе не чаще раза в месяц, поэтому Адельсону пришлось тащить лопату на своем горбу. Прошлой весной ребята наняли Мэтта Уильямса для выполнения функции CEO, что позволило им обоим заняться новыми проектами.

Во вторник, 22.03, на Хабре будет опубликована большая заметка о том, чем на самом деле был Digg и какое наследие он оставил за собой. Следите за обновлениями блога!
Total votes 60: ↑43 and ↓17+26
Comments45

Теория игр

Reading time4 min
Views9.4K
image

В последнее время много внимания уделяется идее вирусного распространения контента, но согласно исследованию, опубликованному недавно в PNAS — ведущем научно-исследовательском журнале США, это далеко не единственный путь, которым могут распространяться идеи, инновации и технологии.

Два исследователя провели занимательную теоретическую работу, протестированную с помощью фокус-групп и пришли к выводу, что изменения быстро распространяются не только потому, что становятся открытыми большому количеству людей. Наоборот, подобное распространение чаще проходит по игровым правилам; и игроки решают, принять ли им нечто новое, только на том основании, что все вокруг это уже сделали.
Читать дальше →
Total votes 53: ↑44 and ↓9+35
Comments15

Акинатор и математика

Reading time6 min
Views110K
На Хабре уже несколько раз всплывала тема Акинатора, в том числе и с тегом не знаю как оно работает. Я на него наткнулся недавно и, разумеется, был восхищен. Затем, как вероятно и многим другим, мне в голову пришла мысль: «А как же это работает?» Ответа на этот вопрос я нигде не нашел, а потому задался целью написать аналогичную по функциональности программу, разобравшись по ходу дела что к чему.
Читать дальше →
Total votes 103: ↑95 and ↓8+87
Comments78

AMQP теперь и в PHP

Reading time3 min
Views12K
типа Введение
Протокол AMQP хорошо был описан в статьях AMQP по русски, RabbitMQ: Введение в AMQP AMQP — практика использования и мне не хотелось бы повторяться.

AMQP используется в серверах очередей: ZeroMQ, ActiveMQ, RabbitMQ.

Преимущество RabbitMQ перед прочим свободным ПО:
— более полно представлен протокол,
— поддерживает кластер,
— реализован как многопоточный сервер, высокая производительность

Широкое распространение AMQP в WEB разработках разработках сдерживается двумя причинами: отсутствием необходимых навыков (практики) его использования и малой клиентской поддержкой. В основном есть клиенты на языках с, java, python, с#. Большая популярность РНР в WEB разработках жалала бы видеть и свой AMQP-клиент.
Читать дальше →
Total votes 19: ↑12 and ↓7+5
Comments15

Альфа-Банк для android

Reading time1 min
Views4.9K
Сегодня наконец-то Альфа-Банк выпустили приложение Альфа-Мобайл для платформы Android.
Приложение полностью повторяет внешний вид и функционал своего собрата с iPhone.

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

Скачать его можно тут:
ссылка
image

Наконец-то на android рынок стали обращать внимание крупные российские банки.
Читать дальше →
Total votes 58: ↑45 and ↓13+32
Comments166

Youtube Remote для Youtube Leanback

Reading time2 min
Views4.3K
image
Некоторое время назад на Хабрахабре уже писали про сервис Youtube Leanback. Сегодня же я обнаружил приложение для Android, которое превращает ваш телефон в пульт дистанционного управления Youtube Leanback. Хоть приложение и появилось около месяца назад, новость о нём здесь вроде не появлялась, посему решил поделиться. Сразу, сходу, ссылка на программу, ну а подробности под хабракатом.

image

Читать дальше →
Total votes 9: ↑4 and ↓5-1
Comments17

Библиотека для обмена событиями, данными и задачами между вкладками браузера

Reading time11 min
Views19K
Приветствую, уважаемое Хабрасообщество!

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

Сейчас библиотека выложена с парой примеров на GitHub, а под хабракатом хотелось бы осветить некоторые тонкости её применения и часть внутренней логики. Буду рад, если моя библиотека поможет кому-то сэкономить n-ое количество времени и позволит избежать изобретения собственного велосипеда.

Кому интересно — добро пожаловать под кат.
Читать дальше →
Total votes 36: ↑34 and ↓2+32
Comments16

Оптимизируем LIMIT offset

Reading time2 min
Views82K
Везде, где используется LIMIT offset для больших таблиц, рано или поздно начинаются тормоза. Запросы вида

SELECT * FROM test_table ORDER BY id LIMIT 100000, 30

могут выполнятся очень долго. Например, в моем случае, на одном из сайтов кол-во комментариев перевалило за 200к и постраничная навигация по комментариям начала ощутимо тормозить, а в mysql-slow.log все чаще стали попадать запросы с временем выполнения 3-5сек.
Читать дальше →
Total votes 77: ↑61 and ↓16+45
Comments30

Переходы наличности и переходы на личности

Reading time12 min
Views85K
Представьте, что мы живем в мире криптографии, электронной коммерции и свободных экономических отношений. Пользуемся электронными средствами платежей, где в корзине и кошельке операции осуществляет калькулятор, где микроскопические суммы и огромные средства проводятся в многочисленных транзакциях без каких-либо проблем за ничтожное количество времени, с автоматическим учетом налогов, сборов и отчислений, где нам привычны покупки в электронных супермаркетах и доставка до порога по одному прикосновению к экрану телефона или клику мышкой. И вот, в наш прекрасный, удобный и отлаженный мир электронных платежей, построенный на принципах безопасности и криптографии, со всеми присущими ему технологиями и образу мышления, впитанными с молоком матери, приходит причудливый и странный механизм, которым, как говорят средства массовой информации, пользуются только анархисты, конспираторы и преступники.
Любопытное нажатие для путешествия в этот мир
Total votes 288: ↑263 and ↓25+238
Comments229

Iodine: DNS туннель через закрытый WiFi

Reading time9 min
Views103K
Дано: полное отсутствие интернета и виднеющийся WiFi hot-spot, в котором предлагают ввести логин-пароль. Или 3G, в котором нет интернета (потому что закончились деньги), но есть страничка провайдера с предложением дать оных денег.
Задача: получить интернет (легальным?) методом посредством туннелирования его через DNS.
Решение: linux+ iodine + routing + NAT + squid, и всё это под управлением network manager'а.
В статье: описание организации DNS туннеля посредсредством программы iodine, нюансы организации маршрутизации через образовавшийся туннель, самописный помощник для iodine и network manager.

Лирика: Занесла меня судьба на славный остров Кипр, кой славен своим П/пафосом, фраппэ и таким интернетом, после которого российские опсосы начинают выглядеть ангелами во плоти. В частности, попытка подключиться к интернетам закончилась ожиданием, что местный провайдер (Сyta) смилостивится, таки закончит пить оный фраппэ и дотянет до меня поганый ADSL 4Мб/768кбит всего-навсего за €151 (подключение) + €40 в месяц (за 4 мегабита! >_<). Ожидание тянулось и тянулось (как бы уже третья неделя пошла), а рядом был славный PrimeTel, который предлагал за €4/час (172р/час) осчастливить меня интернетом прямо тут и сейчас через едва видный WiFi. Я бы даже и согласился, но видна точка доступа была только на балконе, а в квартире связь была нестабильной и часто терялась. Так что оставалось одно решение (помимо взлома WEP-сети соседей, что уж совсем уголовщина) — это злоупотребить сервисом DNS, который безвозмездно, то есть даром, предоставляет PrimeTel для своих незарегистрировавшихся подлюченцев.

Те, кому интересно «howto» — решение далее по тексту, а пока что начнём с теории процесса.
Читать дальше →
Total votes 136: ↑134 and ↓2+132
Comments75

Ответный вызов разработчикам Telegram

Reading time3 min
Views111K
Об авторе: Moxie Marlinspike — хакер-исследователь, придумавший атаку SSL-stripping (и нашедший ещё полдюжины уязвимостей в SSL), разработчик системы Convergence, призванной заменить списки «доверенных сертификатов», а также со-основатель компании Whisper Systems, купленной Twitter в 2011 году. Также стоит почитать обсуждение на Hacker News.



На этой неделе некая компания под названием Telegram анонсировала «защищённый» мессенджер. Насколько защищённый? Если верить их FAQ, «очень защищённый». Мне стало интересно, и я решил почитать описание их протокола. У меня тут же появились некоторые сомнения и опасения (как мягко сказано! а всего-то полчаса назад было «сначала я подумал, что это Томас Пташек решил постебаться» — прим. пер.) Однако, когда из них попытались вытянуть технические подробности, они начали перечислять учёные степени разработчиков вместо того, чтобы вступить в диалог. Кроме того, они отклонили все мои предложения о сотрудничестве.
Читать дальше →
Total votes 210: ↑181 and ↓29+152
Comments87

Майнинг и как он работает: матчасть

Reading time6 min
Views559K

Привет, %username%!
Я расскажу и покажу как работает основа генерации денег в криптовалютах — майнинг. Как создается первый блок, новые блоки и как появляются деньги из ниоткуда.
Чтобы было проще понять, мы напишем свой импровизированный майнер для импровизированной криптовалюты HabraCoin.
Читать дальше →
Total votes 274: ↑252 and ↓22+230
Comments482

Поиск кропнутых дубликатов изображений с помощью перцептуальных хешей

Reading time6 min
Views71K
В этой статье пойдет речь о том, как решалась небольшая задачка поиска дубликатов по фрагменту или кропу картинки.



Читать дальше →
Total votes 129: ↑118 and ↓11+107
Comments39

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity