Search
Write a publication
Pull to refresh
0
0
Байдиков Сергей Григорьевич @WIRTEL

User

Send message

Яндекс для разработчика

Reading time4 min
Views5.6K
Как всем известно, у Яндекса и Гугла есть сервисы со схожей функциональностью. И я считаю, что это очень хорошо: конкуренция заставляет двигаться вперёд обоих конкурентов, а это выливается во много приятных бонусов для простых пользователей. (Если не вспоминать про такие сомнительные случаи, как покупка Яндексом Смилинка)

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

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

Распознавание изображений. Алгоритм Eigenface

Reading time6 min
Views67K

Введение



Я продолжаю серию статей посвящённую тематике pattern recognition, computer vision и machine learning. Сегодня я вам представляю обзор алгоритма, который носит название eigenface.



В основе алгоритма лежит использование фундаментальных статистических характеристик: средних (мат. ожидание) и ковариационной матрицы; использование метода главных компонент. Мы также коснёмся таких понятий линейной алгебры, как собственные значения (eigenvalues) и собственные вектора (eigenvectors) (wiki: ru, eng). И вдобавок, поработаем в многомерном пространстве.
Как бы страшно всё это не звучало, данный алгоритм, пожалуй, является одним из самых простых рассмотренных мною, его реализация не превышает нескольких десятков строк, в тоже время он показывает неплохие результаты в ряде задач.

Мне не страшно.

Домашний сервер: Zotac IONITX-A и корпус CFI-A8989

Reading time4 min
Views3.9K


Плата Zotac IONITX-A, особенно в представлении не нуждается, о ней многие здесь уже наслышаны и знают. Так вот наконец-то и в нашей деревне появилась возможность её приобретения.

Кратко:
— miniITX-формат;
— процессор Intel Atom N330, GeForce 8400M GS;
— оперативная память до 4Гб (в Dual-Mode);
— ориентировочная цена – 230$.

Комплектация в коробке:
— Плата Zotac IONITX-A с массивным радиатором;
— 3 (не пожадничали!!!) SATA шлейфа;
— Wi-Fi антенка;
— Вентилятор на процессор;
— 4-е черных болтика (об этом потом :));
— Блок питания с отдельным шнуром питания (Delta APD-90CD, Made in China);
— Немного макулатуры;
— Компакт-диск с драйверами (прошу заметить – под Windows).
Читать дальше →

Google Desktop: организация поиска для локальной сети

Reading time3 min
Views1.8K
Добрый день, дорогие друзья. Сегодня продолжу тему использования ИТ в организациях. Как и в прошлый раз, основная тема — оптимизация работы сотрудников, максимальная автоматизация и, как следствие, сокращение затраченного времени. Итак…

Постановка задачи

Имеется компьютерная сеть организации. Если сотрудников достаточно много, неизбежно возникают различные «хранилища» — документов, музыки, видео, дистрибутивов и т.д. Например, люди, работающие с документами будут хранить различные отчеты, справки и т.д.; компьютерный отдел наверняка обзаведется хранилищем дистрибутивов и различных полезных страничек, скачанных из интернета…

Если в таких хранилищах будет очень много файлов, то становится слишком трудным искать в них требуемый документ или файл (особенно если все еще рассортировано по десяткам папок с малопонятными названиями типа «старое», "!!!", «удалить», «личное» и т.д. :-) ). Таким образом, стоит задача организовать эффективный поиск.

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

MySQL: Поиск по FULLTEXT индексу вешает базу. Решение проблемы

Reading time1 min
Views937
Ловил несколько месяцев назад один трудноуловимый баг с поиском по базе. А сегодня, прочитав топик HTTP, RFC 3986 и браузеры, решил рассказать общественности, вдруг у кого-то тоже всплывет.

Проблема
Есть сайт в UTF8. Есть MySQL база в UTF8 и FULLTEXT индексом. Поиск по нему идет в BOOLEAN MODE. При определенном виде запросов БД перестаёт отвечать. Причем только для одной БД в рамках сервера MySQL. Нормальный перезапуск демона не срабатывает, получается ребутнуть только жестким mysql -9.
Замечена такая неприятность на MySQL 5.0.51a и выше

Почему?
А дело всё в том, что это какой-то странный баг самого MySQL и решать они его почему-то не торопятся. Оказывается, если фраза для поиска будет в cp1251 кодировке, а база в UTF8, то на N-ном таком запросе БД повиснет в состоянии FULLTEXT Initialization, причем залочит все таблицы, а не только одну с индексом. Проявляется не с первого запроса, но раз-два в день может случаться.

Лекарство
Перед подстановкой поисковой фразы в запрос переконвертируем её в UTF8, если надо.

Кто виноват?
А вот тут я расскажу, при чем тут топик, который мне напомнил эту историю.
Я поддерживаю один сайт, как хобби. С сайта можно поставить поисковый плагин к браузеру в формате OpenSearch. Как выяснилось, браузеры некоторых пользователей при поиске через этот плагин почему-то думают, что сайту нужна Windows-1251 кодировка. Откуда у них такая уверенность, я не знаю. Возможно Firefox запомнил, что когда-то давно сайт был в Windows кодировке. Возможно на это влияет отсутствие кодировки в коде плагина. А может просто магнитные бури, проблема-то появлялась раз-два в день :)

Ссылка на багрепорт
bugs.mysql.com/bug.php?id=37067

Простой способ организации очереди из AJAX-запросов

Reading time2 min
Views4.1K
Постановка задачи

Асинхронные запросы являются удобным способом разгрузить пользователей сайта от избытка информации, которая «сваливается» на них после отображения страницы. Рассмотрим классический пример — список товаров в интернет-магазине. Пользователь выполняет какой-либо поисковый запрос, в результате чего ему отображается компактный список найденных товаров. Например, это могут быть только одни названия. Под каждым из названий стоит ссылка «подробнее», после клика на которую под названием откроется дополнительный блок, уже с подробной информацией о товаре. Удобство пользователя налицо — быстро пробежав глазами весь список, он «прокликает» только заинтересовавшие его товары, и быстро перейдет к следующим страницам. Выгодно это и со стороны сервера — меньшая нагрузка, меньше исходящего трафика.

Однако в такой системе неизбежно возникает следующий момент: пользователь может подряд быстро нажать на несколько ссылок «подробнее», в то время как сервер будет долго обрабатывать входящие запросы. Если в AJAX используется только один объект XMLHttpRequest (обычно так и есть), то все запросы свалятся в нем «в кучу», и результат запроса отобразится не там, где нужно. Таким образом, встает задача организовать очередь из однотипных асинхронных запросов к серверу, так, чтобы последующий выполнялся только после того, как закончится предыдущий.

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

Добавляем новые поисковые операторы в Google

Reading time2 min
Views1.6K
Текущих операторов мне не хватало всегда. Различных функций поиска в Google предостаточно, но вот реализованы некоторые из них совершенно неюзабельно. Например, почему для того, чтобы задать язык искомых вебстраниц, я должен каждый раз лезть в «Advanced Search» или редактировать переменные GET-запроса в урле страницы? Про на автомате вбиваемый «&num=100» я уж и не говорю. Самое странное, что часть параметров из «Advanced Search» реализована в виде операторов, часть — нет.

Я всегда хотел, чтобы появились дополнительные поисковые операторы, покрывающие эти, довольно полезные функции. И только вчера вечером я догнал: «Ведь можно реализовать их с помощью user.js!» Набросал планчик, засел на несколько часов (ибо джаваскриптер из меня никакой) и проапдейтил уже известный вам «Tuned Google SERPs».

Итак, на сей момент доступны следующие операторы:

co:<двухбуквенный_код_страны> — задаёт страну, из которой вы осуществляете вебсёрфинг. Бывает полезно, если вы решили посмотреть «а какие позиции мой сайт имеет в выдаче для Аргентины».

lang:<двухбуквенный_код_языка> — задаёт язык страниц, отображаемых в результатах. Например, вы ищете материалы на русском о новомодном геджете или программе. Как многие делали раньше? Писали англоязычное название и какое-нибудь русское слово. Например: «iphone 3g обзор». Но во-первых, это сужает круг поисков, во-вторых, Гугл последнее время ориентируется на то, что это слово было в ссылке на статью, сама статья при этом может быть англоязычной и слова не содержать. Установив скрипт, мы смело пишем «iphone 3gs lang:ru» и наслаждаемся полным диапазоном материалов на русском. Второй случай, который приходит на ум — это пересечение слов в разных языках. Например, по русским запросам иногда вылазят болгарские страницы. Я, впервые увидев их, удивлённо подумал, что это страницы очередного удаффовского сайта. При помощи оператора «lang:» можно откинуть эти посторонние страницы.

loc:<двухбуквенный_код_страны> — задаёт страну, в которой расположен вебсайт.

num:<число_от_1_до_100> — задаёт количество выдаваемых результатов. Казалось бы, почему не установить «100» в настройках поиска! Однако, как правило, классических десяти вполне хватает. Лишь в некоторых, особых случаях надо увеличить это количество.

В реализации операторов есть одно «но»: если вы, как и я, используете поисковую строку браузера или шорткаты поиска прямо в адресной строке браузера — операторы работать не будут в силу того, что это всего лишь javascript, встраиваемый непосредственно в страницу, а не в браузер. Однако подобные, «хитрые» операторы чаще всего используются для уточняющих повторных запросов, после того, как мы увидели, что обычный запрос выдал совсем не то, что мы хотели. Ну, а повторные запросы мы вбиваем уже на страницах поисковика, там, где скрипт сработает.

Устанавливаем, тестируем, сообщаем о багах, вносим дельные предложения по усовершенствованиям…

P. S. Кто пропустил — Tuned Google SERPs делает ещё несколько интересных вещей, читайте о них в предыдущих постах моего блога.

История компании, часть 3: 1980-1982 гг

Reading time6 min
Views1.6K
logo-microsoftДля Microsoft 1980 год стал стартом десятилетия новых технологий. Компания представила Z-80 SoftCard, Стив Баллмер присоединяется к коллективу и Microsoft представляет операционную систему на базе UNIX для 16-битных процессоров.

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

Для Microsoft 1982 год стал годом, в котором был объявлен новый глава по операциям компании, был представлен новый логотип и в этом году в компании появляется первый факс.
Читать дальше →

Системы охлаждения — от радиатора до жидкого азота! Часть 1

Reading time11 min
Views79K
Еще из школьного курса физики нам известно, что любой проводник, по которому протекает электрический ток, выделяет тепло. Это приводит к тому, что все составляющие компьютера, по которым проходит ток (от процессора до соединительных проводов), нагревают окружающий их воздух.

image

Эту статью я писал почти год назад для одного конкурса… решил выложить, может кому будет интересно. Она ужасно огромная (без шуток — хабр не принял ее одним куском, так что будет две части / Часть 2 /). Трафик.
Читать дальше →

10 шагов для добавления сайта в Яндекс.Новости и Google News

Reading time3 min
Views83K
Яндекс.Новости и Google News являются крупнейшими новостными агрегаторами в России. Так, по данным TNS Russia в июне 2009 года Яндекс.Новости в день посещало чуть более 1,1 миллиона человек. Представьте, какой трафик на сайт могут дать подобного рода системы. И в отличие от, например, News2 и Smi2, новости попадают туда автоматически. Причем, для Google News не нужно совершенно ничего делать — главное, чтобы ваш сайт индексировался Гуглом. Для Яндекса нужно делать полнотекстовый фид со некоторыми тонкостями.
Читать дальше →

Государственная регистрация ресурсов: интерфейс регистрации

Reading time2 min
Views1.4K
В последнее время на Хабре (1, 2, 3) и других интернет-ресурсах (4, 5) обсуждают Указ №60 Президента Республики Беларусь «О мерах по совершенствованию использования национального сегмента сети Интернет» и Постановление №644 Совета Министров Республики Беларусь «О некоторых вопросах совершенствования использования национального сегмента глобальной компьютерной сети Интернет».

В силу того, что компания, в которой я работаю, является поставщиком Интернет-услуг, пришлось пройти все этапы для того, чтобы соответствовать актуальному законодательству.

Поиск ответственной структуры


В Постановлении написано, что государственная регистрация осуществляется "Министерством связи и информатизации или уполномоченной им организацией". Министерство связи переложило эту функцию на БелГИЭ (Государственную инспекцию электросвязи). На сайте этой структуры есть порядок регистрации юридических лиц. После заполнения и подписания всех документов было согласовано время визита.
Читать дальше →

Секреты Гуглономики, часть 2

Reading time7 min
Views813
Это продолжение статьи "Секреты Гуглономики".

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

Большинство людей считает, что рекламный аукцион Google – это очень «прямолинейный» инструмент. Но на самом деле, есть еще один ключевой момент, о котором знает не то что меньшинство пользователей самой системы, но даже далеко не все опытные рекламщики догадываются о его существовании. Ставки сами по себе являются лишь частью системы, определяющей победителя аукциона. Другим, пожалуй самым важным фактором, определяющим победителя аукциона является т.н. «показатель качества» (the quality score). Эта величина создана для того, чтобы определить является ли реклама, которую показывает пользователям, в точности подходящей под ее описания и требования к ней, т.е. грубо говоря определяет «истинность» того или иного рекламного сообщения. Ибо если нет, то страдает вся система и компания, в итоге, получает меньше денег.

Показатель качества вычисляется на основе множества других показателей, включая релевантность рекламы ключевым словам, качеству страницы на которую ведет рекламная ссылка, и, прежде всего, процент уникальных кликов по рекламному блоку, когда он появляется на конечной странице (очевидно, что есть и другие факторы, но Google никогда не будет их обсуждать по понятным причинам). К тому же есть и механизм «наказания» рекламодателей в том случае, если качество рекламы ниже среднего уровня – в таких случаях компания автоматически назначает рекламодателю минимальную ставку. В Google объясняют, что подобная тактика, вынесенная на суд общественности множеством компаний и частных лиц, которых автоматически «занизили», защищает пользователей от нерелевантной или раздражающей рекламы, которые порочат имя контекстной рекламы или оплачиваемых ссылок в целом. Уже даже успело пройти несколько судебных дел от лиц, которые заявляли что стали жертвами произвола в условиях квази-монополии.
Читать дальше →

Секреты Гуглономики

Reading time10 min
Views1.6K
image
Посреди финансового апокалипсиса, отцы и гуру глобального рынка в самом широком смысле слова, собрались вместе в конференц-зале отеля Hilton, расположенного в Сан-Франциско, для ежегодной встречи Американской Экономической Ассоциации (American Economics Assosiation). Можно представить себе атмосферу подобной встречи, но, как ни странно, человек которого все так ждут не будет говорить о токсических выхлопах, инвестициях или уровне безработицы.

«Я хочу рассказать вам об онлайн-аукционах» — говорит Хал Вариан (Hal Varian), первый на подиуме с микрофоном в руках. Вариану 62 года и он профессор в Школе Бизнеса и Школе Информации при университете Беркли, но сейчас этот человек куда более известен всему миру как главный экономист Google. И аудитория, сидящая перед ним, пришла не для того чтобы слушать об упадке кредитного мира – им всем куда более интересен рецепт приготовления секретного соуса Google.
Читать дальше →

Идеальный офис для малого бизнеса

Reading time4 min
Views5.1K
Многие из хабраюзеров работают в небольших компаниях численностью до 15 человек. Такие компании обычно не имеют помещения в собственности и арендуют 1-2 комнаты в офисных центрах. Эти комнаты выполняют функции и ресепшн, и переговорной, и бэк-офиса, и мини-кухни. Здесь работают, отдыхают, пьют кофе с плюшками, а иногда даже и обедают.

Большая часть «офисных центров» — это здания бывших НИИ, проектных институтов, административных корпусов разорившихся фабрик и т.п. (Так называемая офисная недвижимость класса C и D). Вместе с обшарпанными стенами новоявленные офисы унаследовали Администрацию. И если во многих зданиях стены отштукатурили, обои переклеили и вставили евроокна, то Администрация осталась та же.
Типичный администратор здания – это тетушка возраста 50-55 лет с выражением лица «оставьте меня в покое, у меня обед!» В паре с администратором всегда идет бухгалтер примерно того же возраста. Третий типовой персонаж Администрации – дедушка-завхоз, самый добродушный из троицы. Но находится под каблуком администратора и самостоятельных решений не принимает.
Есть еще владелец здания. Мифическая персона, его никто никогда не видит. Похоже, что ему абсолютно все равно, что происходит в его офисном центре, главное, чтобы поступали деньги на банковский счет.
Советские здания унаследовали советский сервис. Мы предоставляем помещение – остальное ваши проблемы, — такова обычно негласная позиция администрации. Лучше обстоят дела в современных бизнес-центрах, но и там сервис не всегда на высоте и тоже бывает администрации с причудами. Кроме того, высокая арендная плата отпугивает многие компании от таких офисов.

Так какой же он, идеальный офис для маленькой компании? Давайте немного помечтаем.
Удобное рабочее место, не слишком высокая плотность сотрудников на квадратные метры – это то, что в силах организовать силами самого арендатора. Хотелось бы поговорить о вещах, зависящих от арендодателя.

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

Скотный двор или чудный сад?
Двор здания, где наша веб-студия Магвай арендует сейчас офис, мы в шутку именуем скотный двор. Асфальт там перекладывали последний раз лет 30 назад, мусор не убирается в принципе, навалены земляные холмы. В дождливую погоду там лучше вообще не ходить. Для полноты картины не хватает только хрюшек, валяющихся в грязи. Как здорово было бы, если на этом месте положили бы плитку или новый асфальт, стояли скамейки и беседка, а за ними росла травка и цветы. В обед можно было бы выходить отдохнуть на улицу, немного расслабиться и подышать воздухом.
Читать дальше →

Домашний сервер. Часть первая — выбор комплектующих

Reading time2 min
Views9.1K
Появилась у меня как-то потребность обновить мой домашний сервер, который представляет из себя комп с процессором Pentium 400Mhz и 384Mb памяти. Главные задачи, которые я ставил перед собой, были сделать его еще тише, меньше по размерам и быстрее.
Сначала я подобрал комплектующие.
Читать дальше →

Опытным путем установлено…

Reading time4 min
Views678
Возьмем двух индивидумов-дизайнеров и поместим их в соседние комнаты. В комнате номер один организуем домашние тапочки, кота и фикус. Во второй — пропускную систему, дешевую чайную пыль в пакетиках и ограниченный интернет-трафик. Будем давать специалистам одинаковые задания и выяснять, кто эффективнее их выполняет. Подберем подопытных так, чтобы они имели равный вес культурного багажа, не были лишены амбиций и человеческих слабостей.

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

Ускорение воспроизведения HD-видео

Reading time2 min
Views14K
Однажды на моём нетбуке (Acer Aspire One 110) я не смог нормально посмотреть видео по причине тормозов (аниме в 720p). После чего последовало разбирательство на тему, как же это можно исправить, результат которого читайте здесь.
Читать дальше →

Gyazo — минималистический создатель скриншотов

Reading time1 min
Views43K
Один скриншот стоит ста слов.
Очень часто разработчику/тестеру приходится создавать скриншоты — проиллюстрировать баг, указать на неточность в описании, просто быстро перекинуть знакомому какую-то часть экрана со смешной цитатой из блога или прикольное совпадение между новостью и баннером.
Как делают непродвинутые пользователи? Print screen -> Paste to Photoshop/Paint -> Save as -> Upload to Imageshack -> получить ссылку. Фух.
Продвинутые используют какой-то сервис, типа clip2net (презентация на хабре). Он позволяет значительно сохранить время на создание скриншота, но всё равно надо кликнуть порядка десяти раз и пройти через несколько экранов чтобы получить свою ссылку.
Решение
Gyazo — предельно простая утилита. Один клик — запустить приложение, второй клик — выделить область на экране. Всё — после этого программа сохранит скриншот на своём сервере (в PNG), откроет картинку в открытом браузере и запомнит её в клипборд.
Есть версии дистрибутива и под win, и под linux, и под mac.
Update: прошло полгода. К сожалению гязо стал тормозить и подглючивать. Поэтому перешёл на использование clip2net. К чести его создателей — сейчас там можно добавить «значения по умолчанию» на многие действия и работать так же проято как и с гязо.

Information

Rating
Does not participate
Location
Тюмень, Тюменская обл. и Ханты-Мансийский АО, Россия
Date of birth
Registered
Activity