RubyПишем SQL на чистом Ruby

Ruby — это гибкий язык, позволяющий создавать на своей основе различные DSL. Появилась идея написать DSL для SQL-запросов (для SELECT'ов), максимально приближенный к оригиналу. Кажется, получилось. Получившаяся штука называется Boroda. Далее следуют примеры кода.

require 'boroda'

sql = Boroda.build do
  from :posts, :users
  select posts.*
  where (posts.author_id == users.id) & (users.name == 'Vlad Semenov')
end

Получим:

SELECT posts.*
FROM posts, users
WHERE (posts.author_id = users.id) AND (users.name = 'Vlad Semenov')


Если кто не понял — мы пишем SQL-запросы на чистом Руби. Теперь попробуем что-нибудь посложнее.

JAVAParse it!

Какое-то время назад мне по работе пришлось провести небольшое исследование. Суть его состояла в поиске наилучшего pdf-парсера реализованного на java.

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

Долгое время документы парсились при помощи библиотеки PDFBOX, работа которой не вызвала ни у кого радости: долго и со сбоями.
В итоге были выбраны 4 библиотеки, сравнением которых я занялся: PDFBOX, JPod, iText и Acrobat.

УбунтариумСтавим Ubuntu 9.04 на Acer Aspire One по сети

На смену погибшему ноутбуку пришёл «малыш» Aspire One, но увы посмотрев на идущее с ним в комплекте нечто, сразу стало понятно, почему возвращают Linux системы. К счастью, не так давно появилась очень интересная разработка — Ubuntu Netbook Remix ставить которую и было решено. Но вот загвоздка — для инсталляция нужна флешка\внешний CD-ROM\карточка, а как на зло ничего из перечисленного в доме не нашлось. Пришлось заняться чтением доков по сетевой загрузке, но в этот момент в поле зрения попало ещё одно решение…

Я умныйКак мы делаем контент. Практическая диалектика

Через неделю нашему блогу Хреновина.net исполнится 9 месяцев. За это время мы набрали уже неплохую популярность и регулярно получаем отзывы-благодарности за интересный контент. Что греха таить, то, что мы делаем, нам и самим нравится. И мы были бы рады, если бы подобного рода контента в Сети было побольше. Сегодня мы хотим поделиться некоторыми приёмами изготовления интересных постов.

Разработка Разработка через задницу

Индустрия программного обеспечения — это, наверное, крупнейший в мире питомник новых систем управления. Agile, Экстремальное Программирование, Разработка Через Тестирование (Test Driven Development, TDD) — акронимы и фреймворки продолжают плодиться. Почему?

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

Linux для всехUntangle Gateway, вышел релиз 6.1

В сети появилась новость о выходе новой версии дистрибутива в рамках проекта Untangle Gateway. Это специализированный Linux дистрибутив, основанный на Debian Lenny, для создания межсетевых экранов с разнообразным функционалом.
Решение мне показалось достаточно интересным для обслуживания небольшого офиса, когда администратор зачастую совмещает все функции полноценной службы IT. По крайней мере, подобные решения могли бы помочь ему частично разгрузить свой график.

УбунтариумНастраиваем сканер отпечатков пальцев (finger print) в Ubuntu 9.04

На написание данного топика меня сподвигла замена ноутбука и переезд на бету Ubuntu 9.04, вследствие этого знаменательного события.
Надо сказать, что пользую сей достойный продукт еще с версии 7.10. За это время сменилось несколько машин, и мне не разу не пришлось сильно сожалеть о своем выборе, поскольку проблем с определением оборудования не наблюдалось, правда может быть больше из за того, что используемая мной техника IBM Thinkpad всегда неплохо поддерживалась в линуксах, как и все что сделано в IBM.
Сейчас для работы, в руки мне попало достойное изделие от HP — ноутбук nc6400. Этот девайс обладает сканером отпечатков пальца, который несколько упрощает жизнь в нашем парольном хаосе. До настоящего времени использование сканера ограничивалось MS Windows и я не предполагал, что сообщество занимается столь малопопулярными устройствами.

СтартапыАвтоматическая фотожабилка — мы смогли это сделать)

Все любят фотожабы, но отлично готовить их умеют единицы, умельцы Photoshop.

На смену «деревенской лошадке» пришла автоматическая фотожабилка с молодежного портала tinza.ru – специальный сервис Фотоприколы.

Боярский перед стартом

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

Будем рады услышать ваши замечания и предложения по автофотожабилке – оставляйте их на нашем проекте обратной связи на tinza.reformal.ru

P.S. господа минусующие — это ведь шутка юмора, не будьте такими серьёзными)