-
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». Тем не менее. Приспичило давеча сделать банальнейшую вещь: затереть строчку пробелами. Иными словами, получив на вход строку, вернуть строку пробелов той же длины. Происходит это при замене жабаскриптом регулярного выражения, поэтому вызываться может…
-
О языке производственного общения
На прошлой работе, где народу в подчинении было на десятичный порядок больше, сделал любопытные наблюдения на стыке лингвистики, управления проектами, когнитивной психологии и половой дискриминации. При разработке программных продуктов, периодически, хотя и нерегулярно, возникают задачи, которые требуют запредельного напряжения мыслительного аппарата отдельного программиста. Простой пример: для того чтобы сложные проблемы были подъёмны, их разделяют на…
-
MongoDB и изоляция
В последних проектах в качестве основного хранилища данных мы используем MongoDB. В целом, нас устраивает этот выбор. MongoDB позволяет быстро и просто хранить не слишком структурированные данные и поддерживает шардинг из коробки. Для большинства веб-проектов этого достаточно. Однако, как и все, относящееся к NoSQL, MongoDB решая одни проблемы (производительности, простоты, масштабирования), добавляет другие. Причем, иногда…
-
Twenty twelve, google maps и корень зла
В очередной раз обновили вордпресс. Поставив новую, ещё более минималистическую тему, привычно уже обнаружили то, что новая тема по-новому кривит встроенную на странице контактов карту. Прошлогодняя тема twenty eleven ставила максимальную ширину картинкам, так что тайлы карты съёживались, открывая промежутки между ними (обсуждение можно найти, например, тут). Новая тема twenty twelve добавляет картинкам элегантные тени,…
-
Автоматизация функционального тестирования веб-приложений
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 во внешней консоли. Настраивается так…
-
Hello world!
Спонтанно решили завести себе конторский бложек. До большого сайта “как у взрослых” руки не доходят уже много лет, да и необходимости в нём особенной не было. На мой взгляд, у мелких контор между сайтом и бизнесом имеется обратная зависимость: пока есть заказы – нету времени на сайт, заказы кончаются – появляется время для сайта, с…