March
2009
Сколько нужно потоков для обработки пользовательских запросов или крайности при использовании Singleton
Posted in: Java Web Design, J2EE, Java technologies, J2SE, Паттерны проектирования | 13 Comments
Более трех лет назад, когда я только перешел на Java, написал статью об использовании паттерна Singleton. Статья доступна по этой ссылке - Паттерн Singleton. Не смотря на прошествие значительного промежутка времени, статью до сих пор читают и комментируют. Меня заинтересовала одна ссылка из комментариев, в которой довольно неплохо рассказываются нюансы реализации паттерна Singleton.
В статье говорится о том, что следующая реализация с lazy инициализацией является не оптимальной при достаточно частом обращении к getInstance():
public final class Singleton {
private static Singleton _instance = null;
private Singleton() {}
public static synchronized Singleton getInstance() {
if (_instance == null)
_instance = new Singleton();
return _instance;
}
}
Давайте попробуем определить, что же такое “достаточно часто”. Так же в статье я хочу показать Вам одну достаточно смешную реализацию Singleton, идею которой рассказал мне мой друг.
February
2009
Генерация Google Sitemap и нюансы его использования (googlesitemap)
Posted in: Интернет Маркетинг, SEO, Java technologies, J2SE | 6 Comments
Sitemap позволяет владельцам сайтов и веб-мастерам сообщить поисковым системам о структуре сайта и обновлении контента на его страницах. Таким образом при правильном использовании sitemap можно добиться лучшего индексирования страниц веб-ресурса поисковыми системами. Соответственно, при неправильном использовании данной технологии можно навредить самому себе (точнее своему интернет детищу).
В этой статье я хочу коротко рассказать вам о Google Sitemap, предоставить программный код на Java для простой генерации sitemap.xml, ну и открыть некоторые нюансы обнаруженные моим другом и мной, и о которых, как мне кажется, многие не знают.
(more…)
December
2008
Модель памяти Java и атомарность операций (java memory model)
Posted in: Java technologies, J2SE | 5 Comments
Бывает, что иногда почитываю разные интересные книжки.
Вот например, для собственного развития всякие JSR читаю :).
Из недавнего - просматривал JSR-133 Java Memory Model and Thread Specification (Модель памяти Java).
В данной статье хочу в который раз показать, насколько важна синхронизация потоков, на примере такого понятия как атомарность (Atomicity) операций.
Рассмотрим такой программный код:
(more…)
October
2008
Вот скажите, где могут выполняются скрипты написанные на javascript: на сервере, на клиенте? На клиенте, говорите? Это устаревшая информация…
С введением в Java версии 1.6 Scripting API стало очень просто и удобно писать extension поинты и динамические конфигурации для серверной логики.
В этой статье я хочу коротко рассказать вам о ScriptEngine, ну и еще кое о чем.
(more…)
May
2008
Продолжаю серию статей о нововведениях в Java (начиная с версии 1.5). На этот раз разговор пойдет об аннотациях (annotation type).
Аннотации представляют собой некие метаданные, которые могут добавлятся в исходный код программы и семантически не влияют на нее, но могут использоваться в процессе анализа кода, компиляции и даже во время выполнения.
Вот основные варианты использования аннтоаций:
(more…)
April
2008
Чтение и запись CSV файлов в Java (comma separated values file format)
Posted in: Java open-source проекты, Java technologies, J2SE, Полезные программы | 17 Comments
Решил сделать свой вклад в мировое open-source сообщество. Как вы уже догадались из названия статьи, на этот раз речь пойдет о формате CSV.
Итак, проблема заключалась в том, что генерация отчетов в формате Excel через библиотеку POI кушала много оперативной памяти и процессорного времени.
Сам по себе Excel, наверное, один из немногих хороших продуктов компании Microsoft, но вот формат файлов оставляет желать лучшего. Короче говоря, при генерации документа необходимо полностью держать его в памяти.
Выходом из ситуации является использование формата CSV (comma-separated values file format), который к счастью тоже читается с помощью Excel.
(more…)
March
2008
Социальные сети, Co-working Центры, Стартапы и Фрилансеры
Posted in: Разное (uncategorized), Ваш досуг. Полезные советы | 26 Comments
[Disclamer: все персонажы этого стёба выдуманы и не имеют реальных аналогов. Автор статьи не несет ответственности за то, что после ее прочтения вы организуете свой собственный co-working центр или как минимум стартап.]
Читая хабр я обнаружил, что каждая 10-ая статья посвящена Co-working Центрам и Стартапам (скорее всего, пока я напишу этот пост, там добавится еще одна-две статьи о co-working центрах и уж точно не меньше о Стартапах).
Поэтому появилась идея СТАРТАПА - создать социальную сеть (social network), посвященную Co-working центрам и Стартапам (startups). Естественно главной сущностью в этом проекте будет не кто иной как Фрилансер (freelancer).
Смысл социальной сети достаточно прост:
(more…)
March
2008
По просьбам читателей очередную статью о паттернах проектирования посвящу паттерну Observer (Наблюдатель). Этот шаблон проектирования также известен под именами Dependents (Подчиненные) и Publisher-Subscriber (Издатель-Подписчик).
Реализация данного паттерна используется для наблюдения за состоянием объектов в системе. Если состояние объектов изменяется в процессе их жизненного цикла, то Наблюдатель оповещает другие части системы об этих событиях.
В данной статье я попытаюсь как можно проще и понятнее рассказать об этом паттерне и привести пример программного кода на Java, реализующего Observer.
(more…)
March
2008
Результаты голосования
Posted in: Разное (uncategorized) | 4 Comments
Всем доброго времени суток.
Что-то голосование о рефакторинге блога поутихло…
Тем не менее можно подвести какой-никакой итог. К сожалению он будет недостаточно объективным.
В номинации Паттерны Проектирования победил “Паттерн Observer”.
В номинации Open-Source проекты первое место получает “Использование Hibernate”.
В номинации Java статьи побеждают “Нововведения в Java”.
“Фиксим layout для IE 7.0″ победил в номинации Делаем блог красивее.
Ну и лично мое мнение. Небольшое количество проголосовавших можно объяснить тем, что комментарии - не самый удобный спобос голосования. Наверняка нужно прикрутить какой-то хороший плагин для голосований (polls). Чем и займусь в ближайшее время.
Спасибо всем за ваш вклад в развитие данного ресурса. Голосование остается открытыми, высказать ваше мнение никогда не поздно: Refactoring блога Javenue.
Всего хорошего.
March
2008
Подсветка синтаксиса (syntax highlighter on javascript)
Posted in: Java Web Design, J2EE, Полезные программы | 3 Comments
Всем привет.
Надеюсь, данная статья поможет сэкономить время владельцам веб-ресурсов, посвященным 1С Бухгалтерии и 1С Предприятию.
Проблема заключалась в том, что в интернете отсутствует какая-либо библиотека для подсвтеки синтаксиса кода. Как ни странно, она была мне очень нужна.
В итоге я принял единственно правильное решение: найти любую открытую библиотеку (желательно pure javascript) и создать для нее 1С скин.
Такая библиотека была найдена - это Syntax Highliter.
(more…)