Как стать автором
Обновить
15
0
Василий @elDraco

Пользователь

Отправить сообщение

Знакомство с Netbeans Platform

Время на прочтение4 мин
Количество просмотров23K
Netbeans Platform — это фреймворк основанный на Swing, с помощью которого возможно создание больших десктоп приложений. Одноименное Netbeans IDE созданно, как раз, на базе Netbeans Platform. В нём содержится множество API для более легкой работы с окнами, действиями, файлами и т.п.
Читать дальше →
Всего голосов 49: ↑45 и ↓4+41
Комментарии14

Content editable в HTML5

Время на прочтение2 мин
Количество просмотров60K
HTML5
Одним из нововведений HTML5 стала возможность редактировать часть страницы прямо в браузере. Эта фича получила название content editable. Она работает во всех современных браузерах. Чтобы сделать часть страницы редактируемой, нужно поставить тегу атрибут contenteditable="true". Под тегом может стоять практически всё: текст с форматированием, картинки, списки и даже flash-ролики. Но пользователь может добавлять толко текст, остольное он может только удалять. В этом посте я покажу пример использования content editable на веб-сайте.
Читать дальше →
Всего голосов 71: ↑58 и ↓13+45
Комментарии28

Вторая жизнь вместе с Maven

Время на прочтение17 мин
Количество просмотров84K
Думаю, для большинства хабражителей не будет откровением, что среди крупных софтварных разработок нередко встречаются технологии и языки значительно отстающие от передовых. К сожалению, это неизбежность, т. к. невозможно в какой-то момент взять и переписать несколько миллионов строк кода на другой язык или с применением более современного фреймворка.

Но в какой то момент отставание становится настолько существенным, что продукт перестает быть конкурентоспособен и постепенно исчезает с рынка. Именно такую ситуацию постепенного затухания мне и довелось наблюдать.

Здесь я хочу рассказать о том, как в конкретном случае я постарался оттянуть неизбежное и оживить разработку применив для этого сборщик проектов Maven.

Главным достоинством разработанной мною системы, пожалуй, можно назвать то, что небольшим количеством трудозатрат, можно при помощи Maven научить проект, реализованный на любом языке, собираться из отдельных Пакетов, соблюдающих свою версионность и автоматически обновляющихся при сборке проекта. Все что для этого нужно, это утилита командной строки, которая может скомпилировать исходник, а в случае скриптовых языков была бы полезна утилита валидации.

Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии3

Правильная проверка XML данных в java-проектах

Время на прочтение5 мин
Количество просмотров19K
Привет, %username%.

В ряде проектов мне потребовалось сравнивать XML данные в тестах.

Действительно, бывает, что результат работы твоего модуля — XML данные. Если это так, то как они генерятся нужно проверять в соответствии с принципами TDD. Я же в свою очередь стараюсь их придерживаться при разработке.

Под катом я постараюсь рассказать о том, как лучше всего, по моему мнению, тестировать генерацию XML в коде. В качестве инструмента сравнения XML я использовал XmlUnit.
Читать дальше →
Всего голосов 37: ↑33 и ↓4+29
Комментарии17

Зачем программисту учить юзабилити?

Время на прочтение3 мин
Количество просмотров1.7K
Я уже и не вспомню, как так получилось, что работая программистом, я стал читать книжки именно по юзабилити. Кажется, первая из них (Интерфейс-1 Головача) нашла невероятно бурный отклик в моей душе и поразила количеством лежащего на поверхности, столь важного, но почти никому неизвестного смысла. Оглядываясь назад, я хочу поделиться теми преимуществами, которые мне дала моя вторая область интересов (все-таки больше, чем хобби) для моей работы программистом. Мне неизвестно, насколько такая комбинация навыков уникальна, но то, что связка программирование-юзабилити совершенно убойная — я вам гарантирую. Итак, зачем программисту учить юзабилити?
Читать дальше →
Всего голосов 57: ↑46 и ↓11+35
Комментарии31

Пишем Addon к Mozilla Thunderbird

Время на прочтение5 мин
Количество просмотров9.6K

Предисловие


Немного допилив exim (в т.ч. заставив его выводить в хэдеры результаты для SPF и DKIM тестов).
Я решил, что было бы хорошо выводить эту (и не только эту информацию в самому почтовом клиенте). И поскольку дополнительных модулей я не искал, то сразу приступил к написанию своего Аддона параллельно изучая, как по мне, то очень запутанную DOM\XUL\Javascript модель работы Thunderbird-a.
Читать дальше →
Всего голосов 31: ↑30 и ↓1+29
Комментарии12

Углубляясь в Graphics2D

Время на прочтение32 мин
Количество просмотров77K
Добрый день, Хабражители!

Сегодня я опять постараюсь привлечь Ваше внимание к некоторым сторонам и тонкостям работы с графикой в Java. Я уже кратко описал в предыдущей статье некоторые доступные средства и способы создания компонентов и UI, но это лишь вершина айсберга. Именно поэтому я хочу уделить отдельное внимание (и статью) именно работе с графикой. Естественно имеется в виду Graphics2D – Java 3D это большая отдельная тема (возможно о ней еще пойдет речь в дальнейшем, но не сегодня).

Итак, из предыдущей статьи Вам уже должны быть известны некоторые основы построения компонентов — постараемся расширить эти знания.

Начнем с того, что если рассматривать любой компонент с точки зрения MVC – он состоит из 3ех частей:
Model – модель, которая хранит в себе данные о состоянии компонента и на основе которой строится внешний вид
View – непосредственно визуальное отображения компонента
Controller – отвечает за управление компонентом (события от клавиатуры, мыши и прочих устройств ввода)

Фактически, все стандартные компоненты Swing построены по паттерну MVC. К примеру в JButton — ButtonModel отвечает за поведение и состояние кнопки (Controller и Model), а ButtonUI в свою очередь за внешнее её представление (View). В итоге на долю самого класс JButton практически ничего не остаётся. Речь пойдет по большей части о реализации внешнего представления компонентов (View), и если уточнять — о Graphics2D, на основе которого, фактически, рисуется весь интерфейс.

Не буду спорить, что на данную тему есть множество различного материала, но он настолько раздроблен и раскидан по просторам сети, что мне кажется не лишним собрать всё в одном месте и последовательно изложить.

Читать далее...
Всего голосов 82: ↑78 и ↓4+74
Комментарии71

Интерактивная диаграмма на CSS и HTML

Время на прочтение1 мин
Количество просмотров19K

:hover


В очередной раз просматривая плагины для реализации всплывающих подсказок, наткнулся на замечательный пост.
Ничего сверхсложного и сверхсекретного в реализации не было, но она мне понравилась своей простотой и отсутствием javascript'a.
Обмозговав возможное применение, решил что на самой подсказке тоже могут быть подсказки, на подсказках второго уровня, могут быть подсказки 3его уровня и т.д. Можно сделать интерактивную блок-схему!
image
Читать дальше →
Всего голосов 133: ↑127 и ↓6+121
Комментарии32

Окна «неправильной» формы, Java 6 & 7 ed

Время на прочтение7 мин
Количество просмотров12K
Симпотичная?

По следам бременских музыкантов


Как, наверное, многие помнят, в прошлом веке (еще во времена Windows 2000), было модно создавать всяческие splash-экраны и миниаппликации в окнах непрямоугольной формы (как и необычные элементы управления).
Писались эти понты на С\С++ с применением WinAPI с использованием т.н. регионов. Дело это было не таким простым, поскольку приходилось не только спотыкаться о косяки и Windows и языка, но и просчет полигонов для отрисовки тоже отпугивал. Поэтому, «нарисовав» одно-два округлых окошка, я отложил эту тему в долгий ящик.
И вот в этот понедельник промелькнула статья «Окна «неправильной» формы», снова обратившая моё внимание к этой теме. Ожидая узнать, что в .NET для этих целей реализованы функции-обёртки WinAPI, был разочарован, увидев описания внешних функций. И тут я, как программист в основном на Java, вспомнил, что, тогда ещё Sun, обещал ввести функции для отрисовки окна произвольной формы.
Читать дальше →
Всего голосов 43: ↑35 и ↓8+27
Комментарии87

Правовые аспекты действий хозяев ноутбуков в случае их кражи

Время на прочтение7 мин
Количество просмотров25K
Эта статья продолжает тему, поднятую в рассказе о сервисе Prey, созданном для слежки за местоположением компьютера или телефона на тот случай, если его украдут. В самом конце этой статьи автор задавался вопросом: а не будет ли использование подобных программ иметь каких-либо отрицательных последствий для самого использующего? Попробуем ответить.

Итак, представим себе ситуацию: вы установили к себе на компьютер программу-шпион, а через некоторое время обнаружили отсутствие компьютера. Еще через некоторое время программа подала вам весточку – в виде фотографии, SMS с координатами устройства, или еще какой-нибудь полезной информации. Можно ли, используя эту информацию, как-то нарушить закон, и пострадать за это? К примеру, если компьютер запрограммирован на фотографирование окружающей обстановки с помощью веб-камеры, в кадр могут попасть сведения, составляющие тайну чьей-то частной жизни. То же самое относится и к остальной информации. А уж закон «О персональных данных», бессмысленный и беспощадный, приплести к этой ситуации сам Бог велел. Хотя как раз он здесь неприменим. Если информацию, необходимую для его идентификации, обнародовал сам новый владелец, то вопросов никаких быть не может. А если владелец прежний «сольет» собранные данные в Интернет? А если в число этих данных входят фотографии совершенно посторонней девушки, да еще и обнаженной? Девушка-то в чем виновата? Такая слежка может нарушить сразу целый ряд законов – от статьи 150 Гражданского кодекса, защищающей такие нематериальные блага, как «неприкосновенность частной жизни», и до кодекса Уголовного. А есть еще КоАП, в пятой и тринадцатой главах которого также предусмотрена ответственность за целый ряд «информационных» правонарушений. Поэтому вопрос о том, при каких условиях можно быть привлеченным к ответственности, а при каких – избежать этого, рассматривать нужно в совокупности, анализируя разные кодексы.

Вина и невиновность

Читать дальше →
Всего голосов 51: ↑42 и ↓9+33
Комментарии42

Как убрать все управляющие символы из строки — история одной бурной оптимизации

Время на прочтение8 мин
Количество просмотров56K
Получилось так, что мне довелось оптимизировать код кластерной задачи, которая входила в состав Большого Кластерного Алгоритма и занималась весьма простой вещью: входной поток из n полей нужно было в зависимости от содержимого полей переразложить в выходной поток из m полей и почти успокоиться. Почти — потому что внутри полей были строчки произвольного вида, которые нужно было «очистить» — провести простейшую, казалось бы, операцию удаления всех управляющих символов из строки.

Оказалось, что эта операция совсем не такая «простейшая», как кажется, особенно если рассматривать её в современных языках с виртуальной машиной. Чуть ниже я покажу, как можно заменить решение в одну строчку на решение в пару десятков строчек, увеличив производительность алгоритма в ~10 раз. Сразу оговорюсь, что примеры будут относится к Java, но аналогичные рассуждения будут справедливы и для большинства других языков и виртуальных машин — в первую очередь, для .NET-based.
Читать дальше →
Всего голосов 105: ↑103 и ↓2+101
Комментарии81
12 ...
8

Информация

В рейтинге
Не участвует
Откуда
Первоуральск, Свердловская обл., Россия
Дата рождения
Зарегистрирован
Активность