Search
Write a publication
Pull to refresh
0
0
Юрий @aknizubr

User

Send message

Реализация поискового движка с ранжированием на Python (Часть 1)

Reading time5 min
Views35K
Просматривая ленту новостей я наткнулся на рекомендацию от Типичного Программиста на статью «Implementing a Search Engine with Ranking in Python», написанную Aakash Japi. Она меня заинтересовала, подобного материала в рунете не очень много, и я решил перевести её. Так как она довольно большая, я разделю её на 2-3 части. На этом я заканчиваю своё вступление и перехожу к переводу.

Каждый раз как я использую Quora, я в конечном итоге вижу по крайней мере вопрос вроде этого: кто-нибудь спрашивает, как работает Google и как они могли бы превзойти его по поиску информации. Большинство вопросов не настолько смелые и дезинформирующие, как этот, но все они выражают подобное чувство, и в этом они передают значительное непонимание того, как работают поисковые системы.

Но в то время как Google является невероятно сложным, основная концепция поисковой системы, которые ищут соответствия и оценивают (ранжируют) результаты относительно поискового запроса не представляет особой сложности, и это может понять любой с базовым опытом программирования. Я не думаю, что в данный момент возможно превзойти Google в поиске, но сделать поисковой движок — вполне достижимая цель, и на самом деле это довольно поучительное упражнение, которое я рекомендую попробовать.

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

Есть два основный этапа в разработке поискового движка: построение индекса, а затем, используя индекс, ответить на запрос. А затем мы можем добавить результат рейтинга (TF-IDF, PageRank и т.д.), классификацию запрос/документ, и, возможно, немного машинного обучения, чтобы отслеживать последние запросы пользователя и на основе этого выбрать результаты для повышения производительности поисковой системы.

Итак, без дальнейших церемоний, давайте начнем!
Читать дальше →

Файловая система Linux полностью на tmpfs — скорость без компромиссов

Reading time4 min
Views124K

Предыстория


Так сложилось, что уже пять лет мой раздел ntfs с операционной системой Windows располагается на рамдиске. Решено это не аппаратным, а чисто программным способом, доступным на любом ПК с достаточным количеством оперативной памяти: рамдиск создается средствами загрузчика grub4dos, а Windows распознаёт его при помощи драйвера firadisk.

Однако до недавнего времени мне не был известен способ, как реализовать подобное для Linux. Нет, безусловно, существует огромное количество линуксовых LiveCD, загружающихся в память при помощи опций ядра toram, copy2ram и т. д., однако это не совсем то. Во-первых, это сжатые файловые системы, обычно squashfs, поэтому любое чтение с них сопровождается накладными расходами на распаковку, что вредит производительности. Во-вторых, это достаточно сложная каскадная система монтирования (так как squashfs — рид-онли система, а для функционирования ОС нужна запись), а мне хотелось по возможности простого способа, которым можно «вот так взять и превратить» любой установленный на жесткий диск Linux в загружаемый целиком в RAM.

Ниже я опишу такой способ, который был с успехом опробован. Для опытов был взят самый заслуженный дистрибутив Linux — Debian.
Читать дальше →

Производительность shared-папок в Vagrant

Reading time3 min
Views18K
image

Руководя крупной и регулярно пополняющейся командой программистов, столкнулся с необходимостью быстро разворачивать среду разработки без танцев с бубном в духе «странно, у меня этот же код работает, а у тебя какая версия такой-то библиотеки?»

Получив однажды ссылку от заказчика на Vagrant с вопросом «а почему мы это сих пор это не используем?» принялся осваивать это чудо.
Читать дальше →

Система управления Ansible

Reading time25 min
Views282K


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

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

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

Со всеми сложностями, о которых идет речь выше, мы хорошо знакомы на собственном опыте: у нас имеется 10 точек присутствия с NS-серверами, расположенные в разных точках планеты. На них необходимо регулярно вносить различные изменения: обновлять операционную систему, устанавливать и обновлять различное ПО, изменять конфигурцию и т.п. Мы решили все эти операции автоматизировать и внедрить систему удаленного управления конфигурациями. Изучив имеющиеся решения, мы остановили свой выбор на Ansible.

В этой статье мы бы хотели подробно рассказать о его возможностях этого инструмента управления конфигурациями и поделиться собственным опытом его использования.
Читать дальше →

Регистрация безналоговой компании в Эстонии

Reading time5 min
Views170K
«Платить налоги – обязанность, платить мало налогов – искусство! » (с)

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

Задача стояла следующая — найти юрисдикцию, в которой не нужно платить налог на прибыль, при этом клиентам из США, Канады и ЕС удобно было с ней работать. Реальный офис открывать в этой стране задачи не стояло.

Основная деятельность компании — разработка ПО (классическая аутсорс компания со штатом ~20 девелоперов).
Читать дальше →

Регистрация оффшорной компании в Белизе

Reading time5 min
Views84K
Я горжусь тем, что плачу налоги в Соединенных Штатах. Правда, я бы гордился не меньше за половину суммы. (с) Артур Годфри

Пару месяцев назад я писал на Хабре о регистрации компании в Эстонии.

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

Краткая характеристика


Белиз является оффшорной юрисдикцией и находится в списке оффшорных зон Украины, России, Белоруссии и Казахстана.

Налогообложение оффшорных компаний в Белизе нулевое.

АПДЕЙТ:

Отсутствует требования по подаче финансовой отчетности и проведению аудита компании.

Формально, требование по ведению финансовой документации имеет место быть в Белизе. Это требование навязанное OECD.
Как и в большинстве других оффшоров.
При регистрации агент попросит Вас заполнить вот такой документ, где Вы сможете указать адрес, по которому храните документы:

Resolution of Directors/ Beneficial Owner/ Members in writing

The undersigned being all the directors of the abovenamed company declare as
follows:

REQUIREMENT TO KEEP ACCOUNTING RECORDS

1. It was hereby RESOLVED that the Company shall keep or cause to be kept proper accounting records (as prescribed under Section 3 (1) and (2) of the Accounting Records (Maintenance) Act, No. 18 of 2013 of the Laws of Belize:

(a) That are sufficient to show and correctly explain the Company’s transactions;

(b) To enable the financial position of the Company to be determined with reasonable accuracy at any time; and

© To enable for accounts of the Company to be prepared.

2. It was hereby resolved that the accounting records of the company shall be
kept at the following address:

………………………………………..……………………………
………………………………………………………………………

Dated this day of 2014.

………………………………………
DIRECTOR
COMPANY

Что делают предприниматели, чтоб не хранить документацию:
1) не открывают банковский счет в Белизе (чтоб уменьшить влияние на деятельность компании «местных»)
2) готовы вывести деньги со счета при первой просьбе предоставить документацию (чтоб избежать штрафа за несоблюдение требований)
3) указывают адрес хранения не в Белизе (чтоб не могли проверить)

В целом, прецедентов не было касательно штраф, и требование остается лишь формальным, так как процедура «деоффшоризации», которую проводит OECD, по моему скромному мнению является «еще большей формальностью».

Хранить или не хранить — решение каждого предпринимателя. В любом случае, это не так уж и сложно.

Акционером или директором компании может быть как юридическое, так и физическое лицо, независимо от места регистрации или гражданства.
Требований к количеству акционеров или директоров в Белизском законодательстве нет.

В Белизе закрытый (не публичный) регистр акционеров компании.

Ежегодные пошлины


$100 — если уставной капитал не превышает $50,000 и все акции компании имеют номинальную стоимость. (т.е. если капитал заявлен и не внесен);
$1,000 — если уставной капитал превышает $50,000;
$350 — если уставной капитал не превышает $50,000 и некоторые или все акции компании не имеют номинальной стоимости; и если уставного капитал нет и все акции не имеют номинальной стоимости;
$4,000 — если компания имеет статус «public investment company».

Пошлины платятся в следующем году, после года в котором была зарегистрирована компания, до 31 Июля.
Если вы просрочили оплату ежегодной пошлины, ее размер увеличивается на 10% и дается новый срок — до 31 Октября.
Если же вы не оплатили пошлину до 31 октября, ее размер увеличивается на 50%.
Читать дальше →

Обработка данных NBA за 30 лет с помощью MongoDB Aggregation

Reading time7 min
Views24K
Прим. перев.: Американский писатель Майкл Льюис известен не только своими историями о трейдерах с Уолл Стрит, но и (в первую очередь) книгой Moneyball, по которой впоследствии был снят одноименный фильм («Человек, который изменил все»). Главный ее герой – Билли Бин, генеральный менеджер бейсбольной команды «Oakland Athleticks», создает конкурентоспособную команду исключительно на основе анализа статистических показателей игроков.

Памятуя об этом, мы решили опубликовать один любопытный материал о том, к каким интересным и нетривиальным выводам можно прийти, анализируя публично доступную статистику игр NBA за последние 30 лет с помощью фреймворка MongoDB Aggregation. Несмотря на то, что в данном примере автор анализирует показатели команд в целом, а не статистику по отдельным игрокам (она также находится в открытом доступе), он приходит к весьма занимательным выводам – руководствуясь его выкладками вполне реально провести самостоятельный анализ, подобно тому, как в свое время поступили герои Moneyball.


image

При поиске средства анализа массивов данных больших объемов и сложной структуры вы можете инстинктивно обратиться к Hadoop. С другой стороны, если вы храните свои данные в MongoDB, использование Hadoop Connector кажется излишним, особенно если все ваши данные помещаются на ноутбук. К счастью, встроенный фреймворк MongoDB Aggregation предлагает быстрое решение для проведения комплексной аналитики прямо с экземпляра MongoDB без установки дополнительного ПО.
Читать дальше →

Один день в офисе 500px. Фото-рассказ

Reading time3 min
Views110K
Этим летом мне посчастливилось быть в Торонто. Именно там, а не в привычной всем Долине, находится офис стартапа №1 в Канаде — 500px. Конечно, нельзя было упускать шанс побывать в гостях у известного на весь мир проекта, который, кстати сказать, создали и развивают два «наших» фотографа — москвич Евгений Чеботарев и киевлянин Олег Гуцол. Так что, в одну из пятниц я отправился в гости.

Что такое 500px?


«500px — is a photo community powered by creative people worldwide», — так о своем проекте говорят сами авторы. Я бы добавил, что это лучший сайт с самыми красивыми фотографиями, которые я когда либо встречал.

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

Побывать в офисе у такого проекта и окунуться в рабочую атмосферу было по-настоящему интересно.

Офис


Основное рабочее пространство — open space в большой комнате. Столы расположены «фермами» в несколько рядов по 4-6 рабочих мест в ряду. Рабочие места — друг на против друга.



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

OS Xак — мой опыт

Reading time4 min
Views131K
Тема хакинтош — довольно занимательная штука, за которой я слежу и представляю себе «что там да как». Недавно назрела необходимость покупки нового PC домой. Ничего необычного, никаких супер компьютеров, самый середняковый компьютер для дома почитать новости, почту, посмотреть фотки, качнуть фильмец (ну или зачем там еще люди используют компьютер дома?). Вот тут то и закралась у меня мысль совместить приятное с приятным – собрать PC, максимально совместимый с OS X.
Собственно, своим опытом сборки Хакинтоша я и решил поделится в данном топике, всех кому это может быть интересно прошу под кат.
Читать дальше →

А вы хотите программировать вверх тормашками?

Reading time10 min
Views34K


Всем добрый вечер/день/утро, кому, что ближе в данный момент. Давненько читаю данный ресурс и всегда с особенной любовью относился к статьям, которые так или иначе мотивировали меня, заставляли задуматься и подталкивали что-нибудь изменить в моей жизни. Поэтому, решил попробовать вдохновить или так сказать, морально помочь тем, кто чего-то хочет, но, как и все нормальные люди сомневается. А конкретно рассказать о моей иммиграции в страну Оззи. Сразу оговорюсь, тем кто любит писать что-то вроде: «многобукв»,«неосилил»… заранее приношу извинения, потому как сам «многобукв» люблю, а когда не люблю иду в твиттер, чего и Вам советую.
Читать дальше →

Установка Hackintosh на примере Packard Bell TM85

Reading time4 min
Views83K
Здравствуй, Хабр. Хочу поделиться своим опытом относительно установки Мака на обычные ПК. Возможно кому-то этот топик будет интересен или полезен.
В этой статье я рассмотрю еще один способ установки Hackintosh на конкретную конфигурацию, без использования различных сборок.
Ставить будем оригинальную Mac OS X 10.7.3 (на момент написания) c загрузочной установочной флешки.
Кстати, данный метод применим и к любому другому IBM PC-совместимому компьютеру.
В итоге Вы получите полностью рабочий Hackintosh.
Читать дальше →

«Хакинтош» – стоит ли игра свеч?

Reading time4 min
Views352K
imageХочу поделиться своим мнением и опытом относительно работы Mac OS X на обычном PC компьютере. Может кому-то этот топик будет интересен или полезен.

Я разработчик ПО для Mac OS X и iOS. И я обожаю технику и ПО от Apple (но я не являюсь ярым фанатом). За свою жизнь у меня побывало много гаджетов от Apple: PowerBook G4, MacBook, iMac, MacBook Pro, iPhone, iPad и пр.

Техника для меня лишь инструмент достижения целей. В данный момент времени на работе я использую iMac (Core i5), в личных целях: обычный стационарный PC, ноутбук Lenovo, телефон на Android и iPad.

Недавно мне для работы дома понадобился очень мощный компьютер с Mac OS X. По характеристикам из техники Apple подходили лишь топовый iMac (с Core i7-2600 3,4 ГГц) и Mac Pro. Оба стоят просто запредельные деньги — более 100 тыс. рублей. Я психологически не был готов потратить такие деньги на компьютер. Ограничил бюджет суммой 55 тыс. рублей и решил собрать «Хакинтош». Я немного слежу за тематикой «Хакинтош» и имею четкое представление, что «там и как».

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

Фотографии домашних офисов-2

Reading time1 min
Views40K
После топика Бумбурума о своем домашнем офисе, думаю многие фрилансеры Хабра озадачились обустройством своего рабочего места. Представляю вам подборку фотографий интересных домашних офисов (в основном из США и Канады), большинство из которых реально реализовать и в российских условиях.
Читать дальше →

Офис компании Boomburum

Reading time19 min
Views412K
image

Осторожно, трафик! Но можно хотя бы посмотреть картинки )

   Идея создать дома свой «рабочий кабинет» у меня зрела давно – как-то сам дошел до осознания его необходимости, хотя немалый вклад в начинания сделал этот давний пост на Хабре. У меня было своё рабочее место – большой удобный стол, где помещалось практически всё и даже больше… но, по сути, он был проходным двором – все время кто-то ходил, был рядом, отвлекал… такое очень часто мешает сосредоточиться и начать работать. Иногда, бывает, сидишь весь вечер за компом и понимаешь, что абсолютно ничего не сделал, хотя родным заявил «так, мне надо поработать».
Читать дальше →

+1 компьютер

Reading time16 min
Views24K
   Расскажу о компьютере, который сделал себе для работы. Старался собрать оптимальную конфигурацию, поэтому, возможно, мой выбор пригодится кому-то еще. И совсем скоро — обзор ионного 1201N!

image

Осторожно, трафик!
Читать дальше →

Изменяющийся контент улучшает позиции в поисковых системах

Reading time1 min
Views1.6K
О том что Гугл больше любит обновляемые вебсайты мы знаем и так. Джерри Каллен решил выяснить насколько именно.

Он создал два практически одинаковых кулинарных сайта, с одинаковой насыщенностью ключевыми словами, одинаковыми внешними ссылками и прочим. Разница была только в небольшом текстовом блоке, который на одном из сайтов заполнялся новостями в тему. Статический сайт получил 55 посетителей за два месяца, сайт с динамическим текстовым блоком получил 122 посетителя с Гугла.

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

Программирование на Android для web разработчика или быстрый старт для самых маленьких. Часть 2

Reading time2 min
Views51K
Приветствую!

Статья является продолжением начатой мной части 1.

Предостережение


Важно: данный урок не является профессиональным. Автор урока не является специалистом в программировании для платформы Android. Я заранее приношу свои извинения, за неоправданные ожидания.

RegistrationActivity


В Activity для регистрации нужно проделать следующее:
Читать дальше →

Я хочу работать в Google! Телефонное интервью (часть 1)

Reading time4 min
Views31K
Привет Хабр! Давно не писал. Да это и понятно. Защита диссертации, получение PhD, а сейчас ещё и активный поиск работы — всё это занимает очень много драгоценного времени. Но разговор сегодня пойдёт не о том. Хотелось бы поделиться с Вами, уважаемые хабралюди, ресурсами и описанием процесса подготовки к телефонному техническому интервью с Гуглом, первый технический этап которого я уже прошёл, и теперь готовлюсь ко второму, который будет в пятницу.
Читать дальше →

Регистрируемся как частный предприниматель в Украине

Reading time14 min
Views116K
Осознав необходимость выхода из тени или же просто смены формы деятельности из наемного работника в самозанятого гражданина приходим к тому, что надо бы зарегистрироваться в качестве частного предпринимателя (ЧП, ИП, СПД ФОП). О том, как зарегистрироваться, какую форму налогообложения выбрать IT-шнику, сколько и куда платить читаем под катом. В конце так же приложен бонус «Как получить деньги под открытие от Центра занятости» (на оплату налогов на первое время), какие виды деятельности выбрать согласно КВЭДа, а так же несколько примеров типичных документов. Актуально только для Украины.
Читать дальше →
1
23 ...

Information

Rating
Does not participate
Location
Украина
Date of birth
Registered
Activity