воскресенье, 12 октября 2014 г.

Про поиск в одном отдельно взятом проекте

Тема обработки данных в общем и поиска чего-то осмысленного в них, в частности, мне уже очень давно была интересна. С неструктурированными данными сложнее, там всякий ML, так что пока говорим про простой случай - полнотекстовый поиск. На некоторых больших проектах мы лишь обрабатывали и готовили данные, но потом я попал на небольшой проект, где надо было делать полный цикл, от подготовки данных до интерфейса поиска. Там я увидел, что поисковый движок может быть центральным элементом системы и точкой входа для пользователей. За ElasticSearch наблюдаю с тех пор. Мы использовали Solr, но уже тогда ES, ещё не дошедший до 1.0, выглядел гораздо интереснее. Мне интересно делать не абстрактные вещи, а приближенные к реальности, так что давно хотел и вот решил вкрутит его в Targetprocess. Данная статья фактически введение в основные фичи ES. Так что знатоки могут проходить мимо. Во-вторых, они будут рассказываться применительно к полнотекстовому поиску в Targetprocess, поэтому если для кого-то это реклама, писать комментарии об этом не надо, просто не читайте.

суббота, 28 декабря 2013 г.

Субботний вечер пропаганды маргинальных технологий: Go! Go! Go!

Практически сразу после предыдущего поста хотел написать про Go. За ним я следил с самого его объявление, всё таки делает его небезызвестная "Корпорация Добра", но в этом году несколько раз использовал и много какие проекты на нём плотно изучал. Хотел разобраться сильнее, чтобы более объективно/полно описать и поэтому откладывал. Но всё таки пришёл к тому, что основным, хотя даже и в топ 5 моих языков он не войдёт. Будет вспомогательным. Для чего, чуть ниже, но вначале небольшой дисклаймер. На Go суммарно я написал наверно максимум пару сотен банальных строк кода, поэтому этот пост будет очень небольшой и чтобы его дополнить расскажу про интересные проекты написанные на нём (не много будет пересекаться с предыдущим постом), так что профи - проходите мимо, но может заинтересует тех кто об этом языке не знал.

суббота, 9 ноября 2013 г.

Краткий сказ о неудавшемся администраторе

И снова долго не писал, в этот раз больше двух лет получается. Вроде даже мыслей и клёвых штук вокруг много, но как-то не мог себя заставить, но надо, иначе совсем зачахну. Решил начать с простого, рассказа о последних полутора годах моей работы. А работал я системным админимстратором, вернее оперейшен (в бывшем и могучем - это называлось оператор ЭВМ), вообщем автоматизировал и поддерживал инфраструктуру для hosted/ondemand/saas версии Targetprocess. Под катом краткая история с рассказом/перечислением интересных тулов с которыми пришлось поработать или просто читать.

пятница, 9 сентября 2011 г.

Akka actors: Первое неоднозначное впечатление

Давно я ничего не писал, хотя в draft лежит много чего, в том числе интересного. Но эта статья носит немного другой, как мне кажется, не технический, а больше эмоциональный характер, поэтому решил её долго не пилить и выложить, тем более в twitter обещал отписаться о моём опыте.

Ситуация такая. Есть у нас маленький, как считалось не слишком важный, кусочек кода, который переносит данные из oracle в mongo с небольшими преобразованиями. Через некоторое время, как обычно, оказалось, что он не такой уж и неважный, поэтому возникла задач быстро его немножко ускорить. Особо оптимизировать в коде нечего было, поэтому ускорение можно было предать параллелизацией некоторых его частей, благо код был разделен на достаточно независимые части. Для этого я решил в порядке эксперимента воспользоваться интересно библиотекой Akka, написанной на Scala, но разработчики поддерживают удобное api и документацию и для Java. Это мой первый опыт с данной библиотекой, так что никаких откровений тут не будет, да и в целом, как я ранее написал, статья больше эмоциональная, нежели техническая.

суббота, 28 мая 2011 г.

JQuery: Slider + Table или я в роли доктора Франкенштейна

Для тех, кто меня не очень хорошо знает, этот пост может показаться несколько бессмысленным (слишком он в духе К.О.), поэтому объясню. Уже пару лет я занимаюсь по большей части backend приложениями (как в рабочее, так и в свободное время). Тут предоставилась возможность поработать над прототипом с web интерфейсом. Вот и хотел поделится своими ощущениями, что сейчас это уже выглядит не так страшно, вроде бы.

Стоит задача сделать что-то похожее на Google Finance StockScreener. В первом приближении необходима приятная табличка (с сортировкой и разбитием на страницы) и слайдер, с помощью которого можно отфильтровать данные, отображаемые в этой таблице. Слайдер уже есть практически из коробки: JQuery UI Slider. В качестве таблицы выбор пал на Data Tables. Осталось только их соединить так сказать вместе и об этом и будет этот небольшой пост.

суббота, 14 мая 2011 г.

Мир вверх тормашками или код как данные

Я тут в очередной раз пытаюсь перечитать (но уже печатную) SICP. Вторая глава там: Построение абстракций с помощью данных. Действительно, чтобы мы делали, если бы нельзя было из примитивных типов строить что-то побольше. И мне там очень понравился один примерчик. Про его и хочу рассказать. Если выключить машину времени и вернуться в реальность без скобочек, то в мейнстримных сейчас в наших палестинах C#/Java обычно для этих целей мы используем классы. Книжный пример рассказывал о паре. В C# для этих целей есть класс Tuple (там правда не только пара, но нам сойдёт). Так вот, а давайте представим, что в C# не было бы специальной конструкции языка class (ну и struct заодно). Как же теперь нам сделать пару или любую другую сложную структуру данных из примитивов языка? Я уже в статье раньше рассуждал немного о философской проблеме ООП языков: кто должен быть this'ом. Так вот под катом пример на C# (переделанный из SICP) демонстрирующий ненужность this :)

среда, 20 апреля 2011 г.

JLine: Интерактивная Java Console в стиле Quake

Каждому программисту в жизни приходилось писать небольшие консольные утилитки. Обычно это выглядит как бесконечный цикл чтения строки, парсинга её и выполнение. Но визуально это всегда выглядит не очень, да и пользоваться трудно. Но мне как-то пришлось писать такую консольную утилитку, с которой должны работать нормальные люди :) поэтому задумался (после соответсвующего пинка :))) над её усовершенствованием в стиле Quake, т.е. сделать такую консольку более интерактивной. Конечно же писать самостоятельно в 2011 году наверно глупо. Немного поискав, остановился на наилучшем, на мой взгляд, варианте: JLine. Перечислю те вещи, за которые она мне больше всего приглянулась:

  • История команд, по которой можно легко перемещаться с помощью стрелочек.
  • Редактирование строки. В стандартном java console приложении невозможно отредактировать символ внутри уже набранной строки, приходится удалять весь хвост.
  • Автодополнение команд с помощью tab. Легко настраиваемое, но при этом с хорошим стандартным набором

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