Nested functions in Java


2 декабря 2009

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 again


7 декабря 2007

Со вчерашнего вечера прозреваю. Отркытие за открытием. Сначала наткнулся на интересную вещь в GWT.
Написал простенький тестик:


scrollPane.setScrollPosition(15 * 3);
assertEquals(15 * 3, scrollPane.getScrollPosition());

Читать далее »»

Не так давно, с неделю как, мне пришла идея о защите от спама блога wordpress. О защите от спама уже говорено-наговорено, но своего метода я еще не видел и про него не слышал.

Идея проста: банально не показывать спам-боту форму отправки комментария.

Реализация: Читать далее »»

Разработка любого проекта начинается с процесса «разработка требований» этот процесс может выполняться как на стороне заказчика, так и на стороне исполнителя. После того как обеим сторонам становятся ясны границы и требования к проекту, исполнитель приступает к процессу «Принятие решение».

На входе этого процесса: функциональные и не функциональные требования к проекту, варианты архитектурных решений; а на выходе выбранное архитектурное решение. В зависимости от сложности проекта эти процессы могут быть более или менее формализованы, но они присутствуют на всех проектах. Читать далее »»

почему веб все еще использует форматы gif, jpg?
я давно понял что лучшим форматом сохранения графики является PNG. это супер-качество изображения и небольшой размер, это альфа-прозрачность и полная палитра.
да, формат "тяжелый", при кодировании и открытии требует больше ресурсов, но современный компьютер уже этого и не чувствует
раньше IE не поддерживал, помню, но это было не долго

ваши мнения и предпочтения :mad:

GPS - это просто


5 июля 2007

GPS - Global Positioning System, благодаря которой можно запросто определить свое местоположение.
Все, что нам понадобиться - это сам GPS приемник. Напишем небольшую программу для получения своих координат.
Порядок действий:
1. Открываем порт (в большинстве случаев "COM5", в спецификации устройства указывается)
2. Читаем из него построчно. Пока не находим строку с нашими координатами.
3. Переводим координаты в десятичный вид.
Читать далее »»

Довольно часто мы допускаем механические ошибки при написании кода. Как например начинаем значение переменной i (счетчик) ставим не 0, а 1 или наоборот, либо неправильно выбранное начальное значение переменно. Со мной случаеться такое довольно часто. В поисках решения этой проблемы (конечно кроме внимательности при написании самого кода) нашла так называемый mutation метод (переведу его как смешанный метод).

Основная идея которого инно и заключаеться в обнаружении подобного рода ошибок. А все довольно просто. Пишуться отдельные програмки с заведомо сделанными ошибками. Их называют мутантами. Чаще всего подобным образом тестируються функции. Следовательно, перебирая (в разумных пределах) переменные, которые принимает функция обнаруживаються ошибки как в программах мутантах, так и в оригинальной программе. Читать далее »»