Новый сезон в старом и надеемся полюбившимся составе. В сегодняшнем выпуске мы обсудим
Тема сочинения — Как провели лето:Читать полностью »
Рубрика «java» - 275
«Разбор полетов» — Episode 24 — А ты заполнил классный журнал?
2012-09-11 в 16:21, admin, рубрики: idea, java, java ee, jboss, log4j, logback, maven, scala, spring, WebSphere, подкасты, разбор-полетов, метки: idea, java, java ee, jboss, log4j, logback, maven, scala, spring, WebSphere, разбор-полетов«Histone» — новый кроссплатформенный шаблонизатор с открытым исходным кодом
2012-09-11 в 11:53, admin, рубрики: java, javascript, php, template engine, Веб-разработка, Программирование, метки: java, javascript, PHP, template engineВведение
МегаФон — динамичная технологическая компания, работа которой не ограничивается исключительно предоставлением услуг связи. Например, среди наших активов есть большое количество интернет-сайтов, на которых клиенты получают различную информацию и услуги. В рамках проекта по совершенствованию и развитию наших веб-проектов мы, в том числе, создаём продукты, которые могут быть полезны и другим разработчикам. Сегодня мы хотели бы представить первый из них — шаблонизатор Histone, который является opensource-проектом, распространяемым по лицензии Apache Software License 2.0. Но обо всём по порядку.
Что такое Histone?
Многие из вас при создании веб-приложений используют различные шаблонные движки. Ситуация, когда из данных, представленных в определенном формате, вам необходимо сгенерировать некий HTML-код при помощи шаблона, задающего правила преобразования, встречается повсеместно. Несколько лет назад шаблонизаторы активно использовались для генерации HTML-кода на сервере (Smarty, FreeMarker, Velocity), сегодня все чаще и чаще возникает необходимость производить генерацию HTML-кода непосредственно в браузере. В качестве примера таких шаблонизаторов можно привести: TrimPath templates, Mustache, Google Closure Templates и т. д.Читать полностью »
Интерфейсы классов и коллекции
2012-09-08 в 6:55, admin, рубрики: java, интерфейсы, проектирование, метки: java, интерфейсы, проектированиеВопрос о том, какими должны быть хорошие интерфейсы классов, непрост. Какие методы включить в интерфейс, какими должны быть их параметры, не надо ли вообще разбить данный интерфейс на несколько? Что будет с интерфейсом по мере развития проекта, потребуется ли его изменять? Наверняка подобные вопросы задавали себе многие. Я поделюсь своими мыслями об интерфейсах, предоставляющих доступ к коллекциям.
Предположим, у вас есть интерфейс для некоторых коллекций, которые помимо прочего функционала позволяют доставать наборы упорядоченных строк по ключу. То есть вам нужен метод типа
List<String> getElements(String key);
Но вы решили, что иногда эти наборы бывают огромными, либо трудно достать все строки сразу (например, некоторые реализации запрашивают их у какого-нибудь медленного веб-сервиса с дурацким протоколом). А применяете вы их, например, отображая на экране с постраничной навигацией или подгружая частями. Тут некоторым разработчикам придёт мысль расширить интерфейс как-то так:
public interface MyCollection {
List<String> getElements(String key);
String getElement(String key, int index);
List<String> getElementsRange(String key, int fromIndex, int toIndex);
int getElementsCount(String key);
}
Стоит ли платить за Apache Hadoop?
2012-09-07 в 12:42, admin, рубрики: apache hadoop, big data, data mining, java, метки: apache hadoop
В 2010 году Apache Hadoop, MapReduce и ассоциированные с ними технологии привели к распространению нового явления в сфере информационных технологий, названного «большими данными» или «Big Data». Понимание того, что из себя представляет платформа Apache Hadoop, зачем она нужна и для чего её можно использовать потихоньку проникает в умы специалистов по всему миру. Зарожденный, как идея одного человека, и быстро выросший до промышленных масштабов, Apache Hadoop стал одной из самых широко обсуждаемых платформ для распределенных вычислений, а также платформой для хранения неструктурированной или слабо структурированной информации. В этой статье я хотел бы подробнее остановиться на самой платформе Apache Hadoop и рассмотреть коммерческие реализации, предоставляемые сторонними компаниями, и их отличия от свободно распространяемой версии Apache Hadoop.Читать полностью »
Реализация Single Sign-On для SalesForce
2012-09-06 в 16:17, admin, рубрики: java, SSO, Программирование, метки: java, SSO После 3 дней мучений и бесплодных попыток завести SSO для SalesForce спешу поделиться с сообществом правильным путем решения проблемы, дабы будущие поколения не тратили прорву драгоценного времени на битье головой об стену. Если интересно то прошу под кат.
Читать полностью »
LilacServer – коробка для создания сайтов на Java
2012-09-06 в 5:36, admin, рубрики: framework, java, web-разработка, web-сервер, Веб-разработка, метки: framework, java, web-разработка, web-сервер
В данной статье мне хотелось бы рассказать о новом программном продукте, который на днях стал доступным конечным пользователям. Автором этого программного продукта являюсь я, и поэтому мне вдвойне приятно поделиться с читателями информацией, которая наверняка кому-нибудь покажется интересной и полезной. Я работал над этим проектом 4 года (а то и больше, смотря от какого момента считать).
Итак, что же такое LilacServer?
Это веб-сервер, написанный на Java с использованием технологии Java NIO. Главным отличием его от прочих веб-серверов, созданных на Java (например, Tomcat или Resin), состоит в том, что это не только веб-сервер…
Читать полностью »
Необычная интеграция JSF и Spring
2012-09-05 в 10:06, admin, рубрики: java, jsf, Spring MVC, Веб-разработка, метки: java, jsf, Spring MVCВведение
Хотел бы поделиться своим опытом необычной интеграции этих двух фреймворков. Мне очень бы не хотелось касаться таких исключительно важных вопросов «а зачем вообще нужна JSF», оговорюсь, что я не являюсь сторонником этой технологии.
Достаточно длительный срок разрабатывалось приложение-зоопарк на Spring + Hibernate + большое количество PL/SQL файлов и пакетов Oracle. Интерфейс пользователя создавался на ExtJS 4-й и 2-й версии, местами использовался самопальный JavaScript и HTML. В общем нормальный корпоративный франкенштейн. Обстоятельства непреодолимой силы вынудили меня использовать JSF для создания некоторой части интерфейсов, таким образом, JSF должен быть интегрирован в уже существующую систему обработки запросов на базе Spring MVC. Я использовал Primefaces, но полагаю, что все для остальных реализаций применимы те же способы.
Читать полностью »
Новые источники данных для Teiid, часть 2: пишем транслятор
2012-09-04 в 21:44, admin, рубрики: java, jboss, teiid, метки: java, jboss, teiidВ предыдущей части мы коротко рассмотрели способ описания источника данных при помощи DDL. Но что делать, если источник использует специфический протокол? Если прямого отображения данных недостаточно? Если мы хотим добавить предобработку данных или встроенную процедуру? Выход есть: написать транслятор.
В общем случае транслятор состоит из 4 частей (классов). Это — наследник класса ExecutionFactory
и реализации интерфейсов ResultSetExecution
, ProcedureExecution
и UpdateExecution
; кроме этого, штатные трансляторы Teiid для удобства выделяют в отдельный класс обработчик метаданных (metadata processor), хотя он никакого интерфейса не реализует и ни от чего не наследуется. Рассмотрим всё по порядку.Читать полностью »
Уязвимость в JAVA позволила выкрасть у ФБР данные о 12 миллионах владельцев устройств Apple
2012-09-04 в 12:21, admin, рубрики: apple, CVE-2012-0507, java, информационная безопасность, утечка, метки: apple, CVE-2012-0507, java, информационная безопасность, утечкаВо второй половине марта 2012 года уязвимость AtomicReferenceArray позволила проникнуть на ноутбук специального агента ФБР Кристофера Стэнгла и похитить с его рабочего стола файл под названием NCFTA_iOS_devices_intel.csv, который содержал список из 12 367 232 уникальных идентификаторов (UDID) устройств на iOS, имена владельцев, названия и тип устройств, токены APN и проч.
Группа Antisec выложила в открытый доступ информацию об 1 000 001 устройств, убрав конфиденциальную информацию, и оставив только поля для идентификации устройств.
Читать полностью »