Search
Write a publication
Pull to refresh
20
0
brooho @brooho

User

Send message

Penisland, или как написать спеллчекер

Reading time7 min
Views12K
Есть хорошая статья Питера Норвига, в которой он рассказывает как написать спеллчекер в 20 строк кода. В этой статье он показывает как поисковые системы могут исправлять ошибки в запросах. И делает это довольно элегантно. Однако, у его подхода есть два серьезных недостатка. Во-первых, исправление более трех ошибок требует больших ресурсов. А гугл, кстати, неплохо справляется и с четырьмя ошибками. Во-вторых, нет возможности проверки связного текста.



Итак, хочется исправить эти проблемы. А именно, написать корректор коротких фраз или запросов, который:
  • умел бы выявлять три (и более) ошибки в запросе;
  • умел бы проверять «разорванные» или «слипшиеся» фразы, например expertsexchange — experts_exchange, ma na ger — manager
  • не требовал много кода для реализации
  • мог бы достраиваться до исправления ошибок на других языках и других типов" ошибок

Остальное — под катом.
Читать дальше →

Рабочий метод разрыва конкретного активного соединения из командной строки linux (drop/kill/cut/close ESTABLISHED connection)

Reading time1 min
Views42K
Иногда бывает необходимо принудительно разорвать активное соединение. Самый распространенный способ:

netstat -na
kill PID


Проблема в том, что один воркер может одновременно обслуживать несколько соединений, поэтому правильнее будет убить соединение а не воркер. Для этого на многих форумах рекомендуют использовать tcpkilll, cutter или awk+hping3. Однако, хоть эти утилиты и находятся в официальных репозиториях, мне не удалось заставить их разрывать соединения.

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

killcx 94.133.119.242:4403
Читать дальше →

Простейший бэкап конфигов FreeBSD с отправкой архива на почту

Reading time3 min
Views10K
Для небольшой локальной сети был установлен NAS под FreeBSD и, естественно, в конце концов встал вопрос бэкапа его конфигурации на случай краха системы. Ничего громоздкого наворачивать не хотелось, тем более, что скорость восстановления в случае чего пока не критична. Поэтому было принято решение написать простейший скриптик под себя, каждую ночь складывающий в архив необходимые файлы. А в качестве внешнего хранилища был выбран почтовый сервер. Этим скриптом и хочу поделиться с вами.

Оговорюсь сразу. Кому этот способ не подойдёт:
  • заядлым параноикам
  • желающим в день Х восстановить работоспособность сервера за полчаса
  • у кого размер архива будет превышать 25 Мб. (в случае с gmail)
Пост ориентирован на таких же новичков, как и я. Описал всё по возможности максимально подробно.
Читать дальше →

Классификация данных методом опорных векторов

Reading time4 min
Views152K
Добрый день!

В данной статье я хочу рассказать о проблеме классификации данных методом опорных векторов (Support Vector Machine, SVM). Такая классификация имеет довольно широкое применение: от распознавания образов или создания спам-фильтров до вычисления распределения горячих аллюминиевых частиц в ракетных выхлопах.

Сначала несколько слов об исходной задаче. Задача классификации состоит в определении к какому классу из, как минимум, двух изначально известных относится данный объект. Обычно таким объектом является вектор в n-мерном вещественном пространстве . Координаты вектора описывают отдельные аттрибуты объекта. Например, цвет c, заданный в модели RGB, является вектором в трехмерном пространстве: c=(red, green, blue).

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

7 бесплатных сервисов для проверки сайтов (о которых вы могли и не знать)

Reading time2 min
Views257K
Картинка для привлечения внимания
Мне достаточно часто приходится использовать различные онлайн-сервисы для проверки доступности сайтов и их поверхностных тестов и проверок.
Как показал краткий опрос коллег — почти у всех эти наборы сервисов отличаются. Я хочу показать вам свой, прошу в
подробности

Индустриальная революция. Часть 4. Как построить свою мечту

Reading time5 min
Views27K
imageНиже приводится перевод новой части увлекательной статьи «In the Next Industrial Revolution, Atoms Are the New Bits» журнала Wired. В прошлый раз я рассказал о Rally Fighter, виртуальных мини-фабриках и 3D-принтере за 1000$; а сегодня вы узнаете, как можно трансформировать свою великую идею в великий продукт, другими словами, как построить свою мечту!

Чтобы увидеть, как создавались инновации в 20 веке, посмотрите фильм «Озарение гения» («Flash of Genius»). Фильм, основанный на реальных событиях, начинается в шестидесятые, и рассказывает грустную историю изобретения стеклоочистителей лобового стекла автомобиля, работающих с паузой. Изобретатель, профессор Боб Кирнс, – закрывается в своей мастерской, пока не получает работающий прототип. Вместо того, чтобы продать технологию автогигантам, Кирнс решает основать собственную компанию для того, чтобы самостоятельно производить стеклоочистители. Ford подписывает контракт по установке своего изобретения на одну из новых моделей. Это значит, что Кирнсу нужна фабрика! Он берет в аренду огромное здание и наполняет его сборочными линиями, погрузчиками, и другой тяжелой техникой – классическая сцена индустриального века.
Читать дальше →

Карты Payoneer, кто выдает?

Reading time2 min
Views9.7K
image Предыдущая новость о картах Payoneer вызвала неподдельный интерес и кучу коментариев, среди коментарие попадались вопросы — «А у кого можно получить карту Payoneer?» Вот я и решил потратить немного своего времени и сделать развернутый список партнеров компаниии Payoneer которые выдают карты. Но прежде чем перейти к списку, хочу сообщить две сравнительно свежие новости от компании Payoneer:
1. С недавних пор снято ограничение на работу Payoneer только с американскими партнерами, т.е. если у вас есть свой сервис и вам надо выплачивать деньги своим партнерам вы без труда можете подключить для выплат карты Payoneer, если кому надо прямой email русскоязычного менеджера — пишите в ПМ.
2. В течении последних месяцев Payoneer перешел на новые карты с повышенными лимитами, теперь по новой карте можно ежедневно снимать из банкомата 2500$ и 2500$ тратить при оплате картой.
Теперь пожалуй перейдем к самому списку партнеров из за чего и затевался этот топик, идем под кат и внимательно изучаем.
Читать дальше →

Оптимальная модель монетизации веб-сервиса: какая она?

Reading time4 min
Views2.3K
image

На пути развития стартапа для изучения английского языка LinguaLeo.ru, о котором мы рассказывали в нашем блоге, мы столкнулись со знакомой для всех стартапов проблемой: каков должен быть дизайн бизнес-модели и какой должна быть монетизация веб-сервиса.
Итак, кейс. Необходимо найти оптимальную модель монетизации на примере фримиум-ресурса.
Читать дальше →

Быстрая реализация резервного копирования в Amazon S3

Reading time3 min
Views25K
Я устал испытывать определённые опасения за сохранность данных на выделенном сервере, наблюдая за происходящим у хостеров последнее время… 3FN, Agava, Hosting.UA, МакХост — тенденция получается очень нехорошая.

В итоге, МакХост стал последней каплей, и, чтобы не оказаться в числе тех, кто «уже делает бекапы», я перевёл систему бекапов своего сервера на Amazon S3. Получилось вполне себе быстро и прозрачно.

Хочу поделиться с общественностью простейшей реализацией.
Читать дальше →

Создаём тему для Drupal 6. Часть 1

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

Начало


Для начала нам потребуется создать директорию в каталоге sites/all/themes с названием нашей темы. Я назвал тему mytheme и создал каталог sites/all/themes/mytheme.
В созданном каталоге создаем директории css — для стилей, js — для скриптов, images — для картинок, templates — для шаблонов, preprocess — об этом позже. Также создаем файл template.php в котором мы будем писать всю логику темы и mytheme.info для описания темы. Можно еще добавить favicon.ico и logo.png.
Читать дальше →

Создаём тему для Drupal. Часть 2

Reading time6 min
Views10K
imageЧасть 1

Препроцессы


Препроцессы нужны для того, чтобы определить, какие переменные будут доступны в шаблонах. Препроцессы мы будем складывать в sites/all/themes/mytheme/preprocess. Создадим файлы preprocess-page.inc — для страницы, preprocess-node.inc — для контента, preprocess-header.inc — для шапки, preprocess-footer.inc — для подвала, preprocess-region.inc — для регионов, preprocess-block.inc — для блоков, preprocess-comment.inc — для комментариев. Также мы можем создавать файлы типа preprocess-node-story.inc для обработки материала типа story или preprocess-block-user.inc для блока user. Это позволяет обрабатывать отдельно разные типы содержимого сайта. В основном в препроцессах я определял классы для разных регионов сайта.
Читать дальше →

«Завтра я перестану откладывать дела на завтра»

Reading time4 min
Views8.6K
Промедление — это то, чем мы занимаемся каждый день:
  1. «Мне завтра нужно сдать курсовую, которую я еще не начинал, но, чтобы сконцентрироваться, мне сейчас надо отдохнуть и попить кофе»
  2. «Я хочу начать бегать по утрам, но сначала мне нужно сдать сессию и найти хорошую работу, которая обеспечит мне стабильность и уверенность»
  3. «Перед тем, как начать работать, мне нужно ответить на 11 писем и поговорить с друзьями по аське о летней поездке в Испанию, чтобы не отвлекаться в течение дня»

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

Быстрочтение featuring Восприятие текста

Reading time8 min
Views79K
Привет всем. Основываясь на предыдущем опыте, считаю нужным сразу расставить все точи над ё. Описанная ниже методика — не мое изобретение. Однако из собственного опыта могу уверить вас, что она работает. Ровно так, как обещано.
Идея, описанная в посте, появилась давно (под катом есть история), в том виде, в каком расскажу ее я, по большей части она представлена в чудесных книгах Тони Бузана Use You Head и The Speed Reading Book (в последней много воды).

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

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

Прежде чем приступить к самому главному, прошу вас пройти тест из шести вопросов на Да/Нет.

1. Чтение со скоростью свыше 1000 слов в минуту невозможно?
2. Медленная скорость чтения способствует лучшему пониманию текста?
3. Пропускать слова во время чтения — плохая привычка, ухудшающая понимание текста?
4. По умолчанию мы все читаем с «естественной» для нас скоростью, а следовательно, наилучшей?
5. Если вы не поняли слово или предложение, лучше перечитать его и понять?
6. Ваши глаза находятся в непрерывном движении во время чтения?
За результатами и, наконец-то, интересными штуками добро пожаловать под кат.
Читать дальше →

Сервер на стероидах: FreeBSD, nginx, MySQL, PostgreSQL, PHP и многое другое

Reading time16 min
Views40K
Нравится мне эта картинка, у меня, вот никогда такие красивые графики в какти не получались =(

Введение


С момента написания мной предыдущей статьи по оптимизации этой связки прошло довольно много времени. Тот многострадальный Pentium 4 c 512Мб памяти, обслуживающий одновременно до тысячи человек на форуме и до 150,000 пиров на трекере уже давно покоится на какой-нить немецкой, свалке, а клуб сменил уже не один сервер. Всё сказанное в ней всё ещё остаётся актуальным, однако есть вещи которые стоит добавить.
Статья большая, так что будет поделена на логические блоки:

0. Зачем вообще что-то оптимизировать?
  
1. Оптимизация ОС (FreeBSD)
  1.1 Переход на 7.х 
  1.2 Переход на 7.2
  1.3 Переход на amd64
  1.4 Разгрузка сетевой подсистемы
  1.5 FreeBSD и большое кол-во файлов
  1.6 Softupdates, gjournal и mount options
  
2. Оптимизация фронтенда (nginx)
  2.1 Accept Filters
  2.2 Кеширование
  2.3 AIO
  
3. Оптимизация бэкенда
  3.1 APC
  3.1.1 APC locking
  3.1.2 APC hints
  3.1.3 APC fragmentation
  3.2 PHP 5.3
  
4. Оптимизация базы данных
  4.1 MySQL 
  4.1.1 Переход на 5.1
  4.1.2 Переход на InnoDB
  4.1.3 Встроеный кеш MySQL - Query Cache
  4.1.4 Индексы
  
4.2 PostgreSQL
  4.2.1 Индексы
  4.2.2 pgBouncer и другие.
  4.2.3 pgFouine
  
4.3 Разгрузка базы данных
  4.3.1 SphinxQL
  4.3.2 Не-RDBMS хранилище
  4.4 Кодировки
  4.5 Асинхронность
  
Приложение. Мелочи.
  1. SSHGuard или альтернатива.
  2. xtrabackup
  3. Перенос почты на другой хост
  4. Интеграция со сторонним ПО
  5. Мониторинг
  
 6. Минусы оптимизации

Кому что-нибудь из этого списка интересно, жмём сюда...

Список полезных инструментов для php разработчика

Reading time10 min
Views150K
PHP один из самых широко используемых языков для создания вебсайтов. PHP фреймворки, такие как Zend, CakePHP, CodeIgniter и т.д и open source классы и библиотеки упростили разработку.
Независимо от того, являетесь ли вы опытным разработчиком или новичком, инструменты, которые вы используете, имеют прямое влияние на вашу продуктивность. Здесь собран список действительно полезных утилит и расширений для PHP разработчиков, которые помогут ускорить разработку, и улучшит итоговое качество кода.
Читать дальше →

Никогда не говорите слово …, или регистрация в 2 щелчка мышью

Reading time4 min
Views3.5K

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

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

6 простых способов увеличения фрилансерской продуктивности

Reading time6 min
Views2.4K
Лучшее в фрилансерской работе это то, что вы свободны в создании вашего собственного графика и правил. Однако это может быть и плохим фактором. Без нормально структурированного офисного пространства многие фрилансеры в конце дня могут задуматься – куда же делось все их время. Может быть трудно получить максимальную пользу от всего рабочего дня. Чтобы помочь таким фрилансерам, мы хотим представить некоторые простые пути для увеличения продуктивности.
Идем дальше...

Феерический финал конкурса Netflix

Reading time2 min
Views2.2K
5100 программистских коллективов из 185 стран приняли участие в сугубо гиковском конкурсе Netflix Prize с главным призом в миллион долларов.

Конкурс завершился вчера в 18:42:37 UTC, ровно через 30 суток после того, как один из претендентов добился требуемого результата (RMSE меньше 0,8563). Финиш получился поистине феерическим: сразу после первого претендента появился второй, между ними разгорелась жесточайшая борьба. Буквально в последние часы претенденты несколько раз менялись местами друг с другом!

Многие из нас с азартом следили в реальном режиме времени за развязкой этого увлекательного состязания. В итоге победителя от второго призёра разделило всего 0,0001 балла. Судьба миллиона долларов была решена только за 4 минуты до дедлайна — это при том, что конкурс продолжался с 2 октября 2006 года. Кто сказал, что математические конкурсы не могут быть драматическими?


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

Переведите мне на VISA

Reading time1 min
Views6.7K
Не так давно оплачивая один небольшой проект который мне сделал другой хабраюзер я услышал следующую фразу — «У меня есть VISA, вы можете мне деньги на неё перевести?..»image
В этом топике я объясню как карточки типа Виза относятся к счетам и какие виды оплаты предпочтительнее принимать к западу от России
Читать дальше →

Простой способ провести CSS-debug

Reading time1 min
Views7.1K
Болтаясь сегодня по интернету в поисках чего-нибудь интересненького, наткнулся на вот такой простой (и столь же замечательный в своей простоте) способ отыскать «неполадку» в верстке.

CSS

* { outline: 2px dotted red; }
* * { outline: 2px dotted green; }
* * * { outline: 2px dotted orange; }
* * * * { outline: 2px dotted blue; }
* * * * * { outline: 1px solid red; }
* * * * * * { outline: 1px solid green; }
* * * * * * * { outline: 1px solid orange; }
* * * * * * * * { outline: 1px solid blue; }
Цвет, тип и размер обводки каждый может выбрать по вкусу.

Поддержка браузерами:


Firefox Opera Google Chrome Safari

К сожалению, в браузерах от Microsoft версий 6 и 7 (в 8-й — все окей) свойство outline не поддерживается. Для них, пожалуй, придется использовать border.

Information

Rating
Does not participate
Location
Херд и Мак Дональнд о-ва
Date of birth
Registered
Activity