Netbeans Platform — это фреймворк основанный на Swing, с помощью которого возможно создание больших десктоп приложений. Одноименное Netbeans IDE созданно, как раз, на базе Netbeans Platform. В нём содержится множество API для более легкой работы с окнами, действиями, файлами и т.п.
Василий @elDraco
Пользователь
Content editable в HTML5
2 мин
60K![HTML5](https://habrastorage.org/getpro/habr/post_images/761/24e/4b2/76124e4b2823617a3aa6bc4e914b093f.png)
Одним из нововведений HTML5 стала возможность редактировать часть страницы прямо в браузере. Эта фича получила название content editable. Она работает во всех современных браузерах. Чтобы сделать часть страницы редактируемой, нужно поставить тегу атрибут
contenteditable="true"
. Под тегом может стоять практически всё: текст с форматированием, картинки, списки и даже flash-ролики. Но пользователь может добавлять толко текст, остольное он может только удалять. В этом посте я покажу пример использования content editable на веб-сайте.+45
Вторая жизнь вместе с Maven
17 мин
84KДумаю, для большинства хабражителей не будет откровением, что среди крупных софтварных разработок нередко встречаются технологии и языки значительно отстающие от передовых. К сожалению, это неизбежность, т. к. невозможно в какой-то момент взять и переписать несколько миллионов строк кода на другой язык или с применением более современного фреймворка.
Но в какой то момент отставание становится настолько существенным, что продукт перестает быть конкурентоспособен и постепенно исчезает с рынка. Именно такую ситуацию постепенного затухания мне и довелось наблюдать.
Здесь я хочу рассказать о том, как в конкретном случае я постарался оттянуть неизбежное и оживить разработку применив для этого сборщик проектов Maven.
Главным достоинством разработанной мною системы, пожалуй, можно назвать то, что небольшим количеством трудозатрат, можно при помощи Maven научить проект, реализованный на любом языке, собираться из отдельных Пакетов, соблюдающих свою версионность и автоматически обновляющихся при сборке проекта. Все что для этого нужно, это утилита командной строки, которая может скомпилировать исходник, а в случае скриптовых языков была бы полезна утилита валидации.
Но в какой то момент отставание становится настолько существенным, что продукт перестает быть конкурентоспособен и постепенно исчезает с рынка. Именно такую ситуацию постепенного затухания мне и довелось наблюдать.
Здесь я хочу рассказать о том, как в конкретном случае я постарался оттянуть неизбежное и оживить разработку применив для этого сборщик проектов Maven.
Главным достоинством разработанной мною системы, пожалуй, можно назвать то, что небольшим количеством трудозатрат, можно при помощи Maven научить проект, реализованный на любом языке, собираться из отдельных Пакетов, соблюдающих свою версионность и автоматически обновляющихся при сборке проекта. Все что для этого нужно, это утилита командной строки, которая может скомпилировать исходник, а в случае скриптовых языков была бы полезна утилита валидации.
+5
Правильная проверка XML данных в java-проектах
5 мин
19KПривет, %username%.
В ряде проектов мне потребовалось сравнивать XML данные в тестах.
Действительно, бывает, что результат работы твоего модуля — XML данные. Если это так, то как они генерятся нужно проверять в соответствии с принципами TDD. Я же в свою очередь стараюсь их придерживаться при разработке.
Под катом я постараюсь рассказать о том, как лучше всего, по моему мнению, тестировать генерацию XML в коде. В качестве инструмента сравнения XML я использовал XmlUnit.
В ряде проектов мне потребовалось сравнивать XML данные в тестах.
Действительно, бывает, что результат работы твоего модуля — XML данные. Если это так, то как они генерятся нужно проверять в соответствии с принципами TDD. Я же в свою очередь стараюсь их придерживаться при разработке.
Под катом я постараюсь рассказать о том, как лучше всего, по моему мнению, тестировать генерацию XML в коде. В качестве инструмента сравнения XML я использовал XmlUnit.
+29
Зачем программисту учить юзабилити?
3 мин
1.7KЯ уже и не вспомню, как так получилось, что работая программистом, я стал читать книжки именно по юзабилити. Кажется, первая из них (Интерфейс-1 Головача) нашла невероятно бурный отклик в моей душе и поразила количеством лежащего на поверхности, столь важного, но почти никому неизвестного смысла. Оглядываясь назад, я хочу поделиться теми преимуществами, которые мне дала моя вторая область интересов (все-таки больше, чем хобби) для моей работы программистом. Мне неизвестно, насколько такая комбинация навыков уникальна, но то, что связка программирование-юзабилити совершенно убойная — я вам гарантирую. Итак, зачем программисту учить юзабилити?
+35
Пишем Addon к Mozilla Thunderbird
5 мин
9.6KПредисловие
Немного допилив exim (в т.ч. заставив его выводить в хэдеры результаты для SPF и DKIM тестов).
Я решил, что было бы хорошо выводить эту (и не только эту информацию в самому почтовом клиенте). И поскольку дополнительных модулей я не искал, то сразу приступил к написанию своего Аддона параллельно изучая, как по мне, то очень запутанную DOM\XUL\Javascript модель работы Thunderbird-a.
+29
Углубляясь в Graphics2D
32 мин
77KДобрый день, Хабражители!
Сегодня я опять постараюсь привлечь Ваше внимание к некоторым сторонам и тонкостям работы с графикой в Java. Я уже кратко описал в предыдущей статье некоторые доступные средства и способы создания компонентов и UI, но это лишь вершина айсберга. Именно поэтому я хочу уделить отдельное внимание (и статью) именно работе с графикой. Естественно имеется в виду Graphics2D – Java 3D это большая отдельная тема (возможно о ней еще пойдет речь в дальнейшем, но не сегодня).
Итак, из предыдущей статьи Вам уже должны быть известны некоторые основы построения компонентов — постараемся расширить эти знания.
Начнем с того, что если рассматривать любой компонент с точки зрения MVC – он состоит из 3ех частей:
Model – модель, которая хранит в себе данные о состоянии компонента и на основе которой строится внешний вид
View – непосредственно визуальное отображения компонента
Controller – отвечает за управление компонентом (события от клавиатуры, мыши и прочих устройств ввода)
Фактически, все стандартные компоненты Swing построены по паттерну MVC. К примеру в JButton — ButtonModel отвечает за поведение и состояние кнопки (Controller и Model), а ButtonUI в свою очередь за внешнее её представление (View). В итоге на долю самого класс JButton практически ничего не остаётся. Речь пойдет по большей части о реализации внешнего представления компонентов (View), и если уточнять — о Graphics2D, на основе которого, фактически, рисуется весь интерфейс.
Не буду спорить, что на данную тему есть множество различного материала, но он настолько раздроблен и раскидан по просторам сети, что мне кажется не лишним собрать всё в одном месте и последовательно изложить.
![](https://habrastorage.org/getpro/habr/post_images/38f/b56/f38/38fb56f382cd3e4030a1c56fd50780f6.png)
Итак, из предыдущей статьи Вам уже должны быть известны некоторые основы построения компонентов — постараемся расширить эти знания.
Начнем с того, что если рассматривать любой компонент с точки зрения MVC – он состоит из 3ех частей:
Model – модель, которая хранит в себе данные о состоянии компонента и на основе которой строится внешний вид
View – непосредственно визуальное отображения компонента
Controller – отвечает за управление компонентом (события от клавиатуры, мыши и прочих устройств ввода)
Фактически, все стандартные компоненты Swing построены по паттерну MVC. К примеру в JButton — ButtonModel отвечает за поведение и состояние кнопки (Controller и Model), а ButtonUI в свою очередь за внешнее её представление (View). В итоге на долю самого класс JButton практически ничего не остаётся. Речь пойдет по большей части о реализации внешнего представления компонентов (View), и если уточнять — о Graphics2D, на основе которого, фактически, рисуется весь интерфейс.
Не буду спорить, что на данную тему есть множество различного материала, но он настолько раздроблен и раскидан по просторам сети, что мне кажется не лишним собрать всё в одном месте и последовательно изложить.
+74
Интерактивная диаграмма на CSS и HTML
1 мин
19K:hover
В очередной раз просматривая плагины для реализации всплывающих подсказок, наткнулся на замечательный пост.
Ничего сверхсложного и сверхсекретного в реализации не было, но она мне понравилась своей простотой и отсутствием javascript'a.
Обмозговав возможное применение, решил что на самой подсказке тоже могут быть подсказки, на подсказках второго уровня, могут быть подсказки 3его уровня и т.д. Можно сделать интерактивную блок-схему!
![image](https://habrastorage.org/getpro/habr/post_images/f50/fab/ae3/f50fabae30f1ab2810c7d3366f3075b5.png)
+121
Окна «неправильной» формы, Java 6 & 7 ed
7 мин
12K![Симпотичная?](https://habrastorage.org/getpro/habr/post_images/41b/ce0/3b0/41bce03b004c174ed9c89f13a6cbf886.png)
По следам бременских музыкантов
Как, наверное, многие помнят, в прошлом веке (еще во времена Windows 2000), было модно создавать всяческие splash-экраны и миниаппликации в окнах непрямоугольной формы (как и необычные элементы управления).
Писались эти понты на С\С++ с применением WinAPI с использованием т.н. регионов. Дело это было не таким простым, поскольку приходилось не только спотыкаться о косяки и Windows и языка, но и просчет полигонов для отрисовки тоже отпугивал. Поэтому, «нарисовав» одно-два округлых окошка, я отложил эту тему в долгий ящик.
И вот в этот понедельник промелькнула статья «Окна «неправильной» формы», снова обратившая моё внимание к этой теме. Ожидая узнать, что в .NET для этих целей реализованы функции-обёртки WinAPI, был разочарован, увидев описания внешних функций. И тут я, как программист в основном на Java, вспомнил, что, тогда ещё Sun, обещал ввести функции для отрисовки окна произвольной формы.
+27
Правовые аспекты действий хозяев ноутбуков в случае их кражи
7 мин
25KЭта статья продолжает тему, поднятую в рассказе о сервисе Prey, созданном для слежки за местоположением компьютера или телефона на тот случай, если его украдут. В самом конце этой статьи автор задавался вопросом: а не будет ли использование подобных программ иметь каких-либо отрицательных последствий для самого использующего? Попробуем ответить.
Итак, представим себе ситуацию: вы установили к себе на компьютер программу-шпион, а через некоторое время обнаружили отсутствие компьютера. Еще через некоторое время программа подала вам весточку – в виде фотографии, SMS с координатами устройства, или еще какой-нибудь полезной информации. Можно ли, используя эту информацию, как-то нарушить закон, и пострадать за это? К примеру, если компьютер запрограммирован на фотографирование окружающей обстановки с помощью веб-камеры, в кадр могут попасть сведения, составляющие тайну чьей-то частной жизни. То же самое относится и к остальной информации. А уж закон «О персональных данных», бессмысленный и беспощадный, приплести к этой ситуации сам Бог велел. Хотя как раз он здесь неприменим. Если информацию, необходимую для его идентификации, обнародовал сам новый владелец, то вопросов никаких быть не может. А если владелец прежний «сольет» собранные данные в Интернет? А если в число этих данных входят фотографии совершенно посторонней девушки, да еще и обнаженной? Девушка-то в чем виновата? Такая слежка может нарушить сразу целый ряд законов – от статьи 150 Гражданского кодекса, защищающей такие нематериальные блага, как «неприкосновенность частной жизни», и до кодекса Уголовного. А есть еще КоАП, в пятой и тринадцатой главах которого также предусмотрена ответственность за целый ряд «информационных» правонарушений. Поэтому вопрос о том, при каких условиях можно быть привлеченным к ответственности, а при каких – избежать этого, рассматривать нужно в совокупности, анализируя разные кодексы.
Итак, представим себе ситуацию: вы установили к себе на компьютер программу-шпион, а через некоторое время обнаружили отсутствие компьютера. Еще через некоторое время программа подала вам весточку – в виде фотографии, SMS с координатами устройства, или еще какой-нибудь полезной информации. Можно ли, используя эту информацию, как-то нарушить закон, и пострадать за это? К примеру, если компьютер запрограммирован на фотографирование окружающей обстановки с помощью веб-камеры, в кадр могут попасть сведения, составляющие тайну чьей-то частной жизни. То же самое относится и к остальной информации. А уж закон «О персональных данных», бессмысленный и беспощадный, приплести к этой ситуации сам Бог велел. Хотя как раз он здесь неприменим. Если информацию, необходимую для его идентификации, обнародовал сам новый владелец, то вопросов никаких быть не может. А если владелец прежний «сольет» собранные данные в Интернет? А если в число этих данных входят фотографии совершенно посторонней девушки, да еще и обнаженной? Девушка-то в чем виновата? Такая слежка может нарушить сразу целый ряд законов – от статьи 150 Гражданского кодекса, защищающей такие нематериальные блага, как «неприкосновенность частной жизни», и до кодекса Уголовного. А есть еще КоАП, в пятой и тринадцатой главах которого также предусмотрена ответственность за целый ряд «информационных» правонарушений. Поэтому вопрос о том, при каких условиях можно быть привлеченным к ответственности, а при каких – избежать этого, рассматривать нужно в совокупности, анализируя разные кодексы.
Вина и невиновность
+33
Как убрать все управляющие символы из строки — история одной бурной оптимизации
8 мин
56K![](https://habrastorage.org/storage1/dea8696e/a59fd82c/6aaee854/adc25d55.jpg)
Оказалось, что эта операция совсем не такая «простейшая», как кажется, особенно если рассматривать её в современных языках с виртуальной машиной. Чуть ниже я покажу, как можно заменить решение в одну строчку на решение в пару десятков строчек, увеличив производительность алгоритма в ~10 раз. Сразу оговорюсь, что примеры будут относится к Java, но аналогичные рассуждения будут справедливы и для большинства других языков и виртуальных машин — в первую очередь, для .NET-based.
+101
Информация
- В рейтинге
- Не участвует
- Откуда
- Первоуральск, Свердловская обл., Россия
- Дата рождения
- Зарегистрирован
- Активность