-
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 во внешней консоли. Настраивается так…