The task was to write a method to check some internal data structure recursively and return the answer (42
). Naturally, anybody would write something like:
boolean validate() {
return check(_struct);
}
private boolean check(Struct struct) {
if (!struct.valid()) return false;
for(Struct child : struct.children()) {
if (!check(child)) return false;
}
return true;
}
According to the spirit of the idiom of code locality that private method should be moved to validate(). But what the heck — no nested functions in Java
So here is the decent workaround:
Читать далее »»
Предыстория
Есть у меня сайт http://snimayukvarti.ru, доступность которого достаточна важна для его пользователей. Как обычно бывает с нужными сайтами, он стал периодически падать. При этом востанавливается в худшем случае перезапуском MySQL и веб-сервера, в лучшем только веб-сервера. Причина падений, в принципе, понятна, но на ее решение требуется некоторое время, которого обычно нет. Проще потратить пару раз в неделю несколько минут на перезапуск серверов. Таким образом возникла задача, как можно быстрее узнавать о том, что сайт в данный момент недоступен.
Задача
Периодически проверять доступность сайт и показывать уведомление. Читать далее »»
То о чем долго говорили авторы этой популярной CMS свершилось
Вышел релиз новой версии ядра.
Теперь уже Joomla это не нездоровая мешанина всего подряд а вполне красивая и симпатичная CMS компоненты которой строятся по патерну MVC
В разработке очень ярко заметно java-влияние кого-то из разработчиков . Теперь в ней теги для шаблонизатора имеют вполне jstl вид
в стиле : Читать далее »»
Имея более 5 лет опыта по созданию сайтов и их систем управления, студия дизайна и рекламы "SOLASS" воплотила все свои знания, наработки и опыт в новой системе создания и управления сайтами "WEBASS".
Из более чем 40 веб-сайтов созданных студией "SOLASS" были отобраны самые последние наработки, для того, чтобы построить более гибкую систему управления. Читать далее »»
Со вчерашнего вечера прозреваю. Отркытие за открытием. Сначала наткнулся на интересную вещь в GWT.
Написал простенький тестик:
scrollPane.setScrollPosition(15 * 3);
assertEquals(15 * 3, scrollPane.getScrollPosition());
Не так давно, с неделю как, мне пришла идея о защите от спама блога wordpress. О защите от спама уже говорено-наговорено, но своего метода я еще не видел и про него не слышал.
Идея проста: банально не показывать спам-боту форму отправки комментария.
Реализация: Читать далее »»
Разработка любого проекта начинается с процесса «разработка требований» этот процесс может выполняться как на стороне заказчика, так и на стороне исполнителя. После того как обеим сторонам становятся ясны границы и требования к проекту, исполнитель приступает к процессу «Принятие решение».
На входе этого процесса: функциональные и не функциональные требования к проекту, варианты архитектурных решений; а на выходе выбранное архитектурное решение. В зависимости от сложности проекта эти процессы могут быть более или менее формализованы, но они присутствуют на всех проектах. Читать далее »»
почему веб все еще использует форматы gif, jpg?
я давно понял что лучшим форматом сохранения графики является PNG. это супер-качество изображения и небольшой размер, это альфа-прозрачность и полная палитра.
да, формат "тяжелый", при кодировании и открытии требует больше ресурсов, но современный компьютер уже этого и не чувствует
раньше IE не поддерживал, помню, но это было не долго
ваши мнения и предпочтения ![]()
GPS - Global Positioning System, благодаря которой можно запросто определить свое местоположение.
Все, что нам понадобиться - это сам GPS приемник. Напишем небольшую программу для получения своих координат.
Порядок действий:
1. Открываем порт (в большинстве случаев "COM5", в спецификации устройства указывается)
2. Читаем из него построчно. Пока не находим строку с нашими координатами.
3. Переводим координаты в десятичный вид.
Читать далее »»
Довольно часто мы допускаем механические ошибки при написании кода. Как например начинаем значение переменной i (счетчик) ставим не 0, а 1 или наоборот, либо неправильно выбранное начальное значение переменно. Со мной случаеться такое довольно часто. В поисках решения этой проблемы (конечно кроме внимательности при написании самого кода) нашла так называемый mutation метод (переведу его как смешанный метод).
Основная идея которого инно и заключаеться в обнаружении подобного рода ошибок. А все довольно просто. Пишуться отдельные програмки с заведомо сделанными ошибками. Их называют мутантами. Чаще всего подобным образом тестируються функции. Следовательно, перебирая (в разумных пределах) переменные, которые принимает функция обнаруживаються ошибки как в программах мутантах, так и в оригинальной программе. Читать далее »»
