Detached rulesets in LESS as a lambda-expressions

Surprisingly quietly and without much fanfare a groundbreaking change in the LESS world recently happened: so-called detached rulesets had arrived in version 1.7. In essence it means an ability to store a block of LESS code into variable or pass it as an argument to mixin. According to documentation, a primary motivation for such a […]

Запробеливание™ в жабаскрипте

Сразу оговорюсь, дальше идёт практически эталонный образец бесполезной микрооптимизации.  Бессмысленной и беспощадной, ибо сказано: «premature optimization is the root of all evil». Тем не менее. Приспичило давеча сделать банальнейшую вещь: затереть строчку пробелами.  Иными словами, получив на вход строку, вернуть строку пробелов той же длины.  Происходит это при замене жабаскриптом регулярного выражения, поэтому вызываться может […]

Автоматизация функционального тестирования веб-приложений

tl;dr ScalaTest FreeSpec, Selenium2 WebDriver, HtmlUnit без CSS везде где можно, встроенный прокси-сервер для аутентификации, ThreadLocal + ShutdownHook для запуска и остановки браузеров. То же самое, но очень длинно Конечная цель изысканий На самом деле нужно было: Составить и согласовать с заказчиком сценарий приёмочного тестирования проекта. Отрабатывать его при каждом обновлении софта на боевых серверах.  […]

Scala: вызов метода с tuple вместо набора параметров

tl;dr Метод так вызвать нельзя, но можно сконвертировать его в функцию, а у них есть метод tupled. То же самое, но длинно Потребовался нам в проекте генератор тестовых данных.  Модель данных уже есть, типы и ограничения прописаны, можно спокойно брать и генерить.  Нашлась даже подходящая библиотека с набором методов для генерации примитивов – DataFactory от […]

Scala REPL, IntelliJ IDEA, Console2

Update: с момента написания этого текста идейская наскальная консоль стала намного лучше, и для репла стоит пользоваться ей.  Использовать Console2 теперь актуальнее для запуска sbt.  Потому что при перегенерации идейского проекта плагином sbt-idea проект перегружается, и все открытые в идее консоли, включая sbt’шную, закрываются.  Так что гораздо удобнее запускать sbt во внешней консоли.  Настраивается так […]