April
Чтение и запись CSV файлов в Java (comma separated values file format)
Posted in: Java open-source проекты, Java technologies, J2SE, Полезные программы | 7 Comments
Решил сделать свой вклад в мировое open-source сообщество. Как вы уже догадались из названия статьи, на этот раз речь пойдет о формате CSV.
Итак, проблема заключалась в том, что генерация отчетов в формате Excel через библиотеку POI кушала много оперативной памяти и процессорного времени.
Сам по себе Excel, наверное, один из немногих хороших продуктов компании Microsoft, но вот формат файлов оставляет желать лучшего. Короче говоря, при генерации документа необходимо полностью держать его в памяти.
Выходом из ситуации является использование формата CSV (comma-separated values file format), который к счастью тоже читается с помощью Excel.
(more…)
March
Социальные сети, Co-working Центры, Стартапы и Фрилансеры
Posted in: Разное (uncategorized), Ваш досуг. Полезные советы | 20 Comments
[Disclamer: все персонажы этого стёба выдуманы и не имеют реальных аналогов. Автор статьи не несет ответственности за то, что после ее прочтения вы организуете свой собственный co-working центр или как минимум стартап.]
Читая хабр я обнаружил, что каждая 10-ая статья посвящена Co-working Центрам и Стартапам (скорее всего, пока я напишу этот пост, там добавится еще одна-две статьи о co-working центрах и уж точно не меньше о Стартапах).
Поэтому появилась идея СТАРТАПА - создать социальную сеть (social network), посвященную Co-working центрам и Стартапам (startups). Естественно главной сущностью в этом проекте будет не кто иной как Фрилансер (freelancer).
Смысл социальной сети достаточно прост:
(more…)
March
По просьбам читателей очередную статью о паттернах проектирования посвящу паттерну Observer (Наблюдатель). Этот шаблон проектирования также известен под именами Dependents (Подчиненные) и Publisher-Subscriber (Издатель-Подписчик).
Реализация данного паттерна используется для наблюдения за состоянием объектов в системе. Если состояние объектов изменяется в процессе их жизненного цикла, то Наблюдатель оповещает другие части системы об этих событиях.
В данной статье я попытаюсь как можно проще и понятнее рассказать об этом паттерне и привести пример программного кода на Java, реализующего Observer.
(more…)
March
Результаты голосования
Posted in: Разное (uncategorized) | 4 Comments
Всем доброго времени суток.
Что-то голосование о рефакторинге блога поутихло…
Тем не менее можно подвести какой-никакой итог. К сожалению он будет недостаточно объективным.
В номинации Паттерны Проектирования победил “Паттерн Observer”.
В номинации Open-Source проекты первое место получает “Использование Hibernate”.
В номинации Java статьи побеждают “Нововведения в Java”.
“Фиксим layout для IE 7.0″ победил в номинации Делаем блог красивее.
Ну и лично мое мнение. Небольшое количество проголосовавших можно объяснить тем, что комментарии - не самый удобный спобос голосования. Наверняка нужно прикрутить какой-то хороший плагин для голосований (polls). Чем и займусь в ближайшее время.
Спасибо всем за ваш вклад в развитие данного ресурса. Голосование остается открытыми, высказать ваше мнение никогда не поздно: Refactoring блога Javenue.
Всего хорошего.
March
Подсветка синтаксиса (syntax highlighter on javascript)
Posted in: Java Web Design, J2EE, Полезные программы | 2 Comments
Всем привет.
Надеюсь, данная статья поможет сэкономить время владельцам веб-ресурсов, посвященным 1С Бухгалтерии и 1С Предприятию.
Проблема заключалась в том, что в интернете отсутствует какая-либо библиотека для подсвтеки синтаксиса кода. Как ни странно, она была мне очень нужна.
В итоге я принял единственно правильное решение: найти любую открытую библиотеку (желательно pure javascript) и создать для нее 1С скин.
Такая библиотека была найдена - это Syntax Highliter.
(more…)
January
Перечисляемые типы в Java (enum types, enumerations)
Posted in: Java technologies, J2SE | 12 Comments
По просьбам читателей начну цикл статей, посвященный нововведениям в Java начиная с версии 1.5. Думаю, статьи этой тематики будут актуальны для многих, так как сам только недавно начал переходить на 1.6 (на работе в проекте до сих пор используется версия jdk 1.4).
В этой статье я хочу рассказать о перечислениях (enumeration, enum). Сначала я покажу, как реализовывались перечисления в ранних версиях java.
Итак, перечисление (enum) - это тип, значения которого ограничены конечным набором констант.
Самым простым способом реализовать некоторый набор значений есть следующий класс:
(more…)
January
Здравствуйте, мои дорогие читатели.
Хочется сделать блог интереснее, полезнее и удобнее. Но без вашей помощи мне это не представляется возможным.
Пожалуйста, перечислите в комментариях до трех пунктов, в которых лично вы заинтересованы в первую очередь.
По мере поступления новых предложений, буду обновлять список.
Написать новые статьи о паттернах проектирования:
1. Паттерн Observer.
2. Паттерн Visitor.
3. Паттерн Iterator.
Написать новые статьи по тематике:
4. Использование Servlet Filters.
5. Использование Velocity.
6. Байт-код и оптимизация кода.
7. Использование нововведений Java версии 1.5 и выше (enum, generic, for each, etc.).
Улучшить функционал блога:
8. Добавить preview комментариев.
9. Добавить голосовалку: о чем писать следующую статью.
Другое:
10. Дополнить существующие статьи по паттернам проектирования.
11. Дополнить статьи по J2SE новыми примерами.
12. Улучшить программу по переводу названий песен и тегов в транслит для MP3-плеера.
January
Работа с MS Access из Java
Posted in: Java open-source проекты, Базы данных, SQL, Oracle | 7 Comments
Даже если ваш проект использует новейшие разработки в области кросс-платформенного ПО, рано или поздно придется столкнуться с технологиями, с которыми не очень хотелось сталкиваться.
Так случилось и со мной, когда заказчик захотел получать отчеты в виде базы данных MS Access.
Пришлось порыться в поисках java-библиотеки для работы с форматом mdb.
О результатах своих поисков я и хочу вам рассказать.
January
В написанных ранее статьях мы уже рассматривали паттерны создания объектов (Creational Design Patterns).
Так как с необходимостью создания объектов програмисты встречаются каждый день, рассмотрим еще один паттерн - Prototype (Прототип).
Паттерн Prototype позволяет создавать новые объекты на основе некоторого объекта-прототипа при этом совсем не обязательно знать как необходимый объект устроен.
Вот некоторые ситуации когда может помочь этот паттерн проектирования:
- если создание объектов (через оператор new) занимает длительный промежуток времени или требовательно к памяти;
- если создание объектов для клиента является нетривиальной задачей, например, когда объект составной;
- избежать множества фабрик для создания конкретных экземпляров классов;
- если клиент не знает специфики создания объекта.
December
Угрызения совести
Posted in: Разное (uncategorized) | 5 Comments
Всем привет.
Прошу прощения у моих уважаемых читателей за то, что долго ничего не писал. Надеюсь в ближайшем будущем исправить это досадное недоразумение.
Если кому-то интересно, у меня все хорошо, если не считать… ![]()
Все время уходит на основную работу и проект (естественно на Java), который делаем с друзьми.
Последнее время изредка помогаю тестировать клиент для фановой коллекционной карточной игры Boomb.it.
Ну вот собственно и все.
С наилучшими пожеланиями.