13 нояб. 2012 г.

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

Согласно спецификации CSS2 размеры элементов в пикселях могут быть дробными, например #id {width: 100.5px;}. Некоторые браузеры не поддерживают субпиксельные размеры, усекая их до меньшего целого числа. Как написать feature test (во время загрузки страницы определить, поддерживает ли браузер субпиксельные размеры)?

12 нояб. 2012 г.

Настройка производительности и безопасности в Tomcat

Краткое описание настроек производительности и безопасности в Tomcat (с ненавязчивой рекламой Tcat Enterprise Tomcat Server).

Java Service Wrapper

Java Service Wrapper

  • запускает Java-приложение как службу (service) в Windows или демон в Unix/Linux/MacOS
  • отслеживает состояние JVM с запущенным приложением
  • перезапускает JVM/приложение при его зависании/вылете
  • контролирует, что запущен только один экземпляр приложения (single instance)

Ссылки:
Java Service Wrapper - Tanuki Software (коммерческий/GPL): Скачать Документация

Yet Another Java Service Wrapper (GPL): Скачать Документация

Apache Commons Daemon (Apache License): Скачать Документация
launch4j (BSD/MIT license): https://sourceforge.net/projects/launch4j/files/launch4j-3/ Документация
AlwaysUp (коммерческий): http://www.coretechnologies.com/products/AlwaysUp/
JavaService (BSD/LGPL, не развивается с 2009 года): http://forge.ow2.org/projects/javaservice/

Миграция Java web app (WAR) на Tomcat

http://blogs.mulesoft.org/how-to-migrate-your-weblogic-or-websphere-app-to-tomcat/
http://www.mulesoft.com/migrating-oracle-weblogic-tomcat
http://www.mulesoft.com/migrating-applications-ibm-websphere-apache-tomcat
http://www.mulesoft.com/tomcat-ejb

26 окт. 2012 г.

CSS3 transition: height? Бесполезен!

CSS3 transitions конечно задумка хорошая, но бочку мёда губит ложка дёгтя...

Две коротких команды, которые перевернули меня с ног на голову


sudo !!
запуск из-под root последней выполненной команды (выполненной, скорее всего, неудачно из-за недостатка прав)

python -m SimpleHTTPServer
(для Python версий 2.X)
python -m http.server
(для Python версий 3.X)
HTTP-сервер http://localhost:8000/ в текущем каталоге (полный синтаксис: python -m http.server [port number])

И остальное на закуску: http://www.commandlinefu.com/commands/browse/sort-by-votes

Eclipse 4.2 - пошаговая стратегия?

Раньше я думал, что Eclipse 3.7/3.8 особой скоростью не отличается. Потом я поработал на Eclipse 4.2. После возврата на 3.8 я понял, что она намного быстрее, чем 4.2. Потом я попробовал обновиться до Eclipse 4.2.1. Теперь я думаю, что Eclipse 3.8 просто летает!

Человек с win7 64bit, 16GB RAM, Core i7 Quad 3.40GHz, 128GB SSD жалуется на тормоза в Eclipse 4.2

Мощный butthurt в багтрекере Eclipse по поводу тормозов

А у разработчиков один ответ: "У меня всё работает без тормозов. Какая у вас ОС?"

Сравнение производительности 3.8 vs 4.2

http://www.jroller.com/andyl/entry/something_is_really_broken_with

Как всё будет хорошо после выхода Eclipse 4.3.1

27 авг. 2012 г.

Как узнать версию дистрибутива Linux

grep -ihs "buntu\|SUSE\|Fedora\|PCLinuxOS\|MEPIS\|Mandriva\|Debian\|Damn\|Sabayon\|Slackware\|KNOPPIX\|Gentoo\|Zenwalk\|Mint\|Kubuntu\|FreeBSD\|Puppy\|Freespire\|Vector\|Dreamlinux\|CentOS\|Arch\|Xandros\|Elive\|SLAX\|Red\|BSD\|KANOTIX\|Nexenta\|Foresight\|GeeXboX\|Frugalware\|64\|SystemRescue\|Novell\|Solaris\|BackTrack\|KateOS\|Pardus" /etc/{issue,*release,*version}

8 авг. 2012 г.

События resize и mouse wheel в разных браузерах

Опять экспериментирую с fixed headers (это такие хитрые скрипты, которые фиксируют заголовок таблицы или текста у верхней границы экрана при прокрутке вниз, в интернетах существует много вариантов, но мне ни один не подходит - они все работают только на прокрутку окна браузера, а у меня длинная таблица внутри div со стилем overflow:auto). Все браузеры имеют свои особенности при генерации интересующих меня событий изменения размера окна (resize) и вращения колеса мыши (mousewheel).

3 авг. 2012 г.

text-shadow в Opera

Опять особенности Opera. Свойство CSS text-shadow не работает для текста на кнопках <input type="button|submit|reset" value="Some text" /> - проверил в Opera 12 и Opera Mobile 11.50 - вот тестовая страница. В Chrome 20 и Firefox 13 тень у текста отображается корректно и одинаково на всех кнопках, в Opera - только на <button>, на <input> тень не действует.

Миграция с JBoss AS 4/5/6 на JBoss AS 7.1

Предыдущая попытка мигрировать на JBoss 7.0 сразу после его релиза закончилась провалом - он был слишком сырой. После релиза JBoss 7.1.1.Final я попытался сделать это ещё раз (и успешно сделал). Чтобы опыт не забылся и не пропал зря, перечислю действия, которые были предприняты, чтобы проект (веб-приложение на Spring и Hibernate) успешно заработал на JBoss 7.1.

9 июн. 2012 г.

Linux Mint (Ubuntu) не грузится после долгого перерыва

Натыкался на такое несколько раз - после отпуска загрузить Linux просто невозможно (как я думал). Симптомы такие: включаешь питание, проходит информация BIOS, проходит сообщение GRUB, начинается загрузка Linux, и всё - чёрный экран, индикатор обращения к жёсткому диску горит постоянно, реагирует только на Ctrl-Alt-Del или Reset.

2 июн. 2012 г.

Сравнение производительности Prototype и jQuery в тестах Dromaeo

Сами тесты находятся по адресу http://dromaeo.com/?jslib. В них проводится сравнение скорости (количества вызовов в секунду) аналогичных методов из Prototype 1.7 и jQuery 1.6.4 в браузерах Chrome 19.0, Firefox 12.0, Opera 11.64, IE 9.

Opera: 1 пиксель и бесконечность

Все последние на момент написания статьи версии браузеров Chrome, Firefox, Opera повторяют один и тот же интерфейс со вкладками, но только в Opera есть досадная недоработка прямо по Раскину (см. книгу Джефа Раскина "Интерфейс").

27 мая 2012 г.

Плавное обновление страницы HTML

Реализовал интересное решение задачи обновления информации на странице, открытой в браузере. Задача: на открытой странице необходимо отображать актуальные данные с сервера (периодически обновлять данные), без лишних перерисовок, дёрганий, потери фокуса и тому подобных негативных эффектов.

6 апр. 2012 г.

IFRAME: перезагрузка

Встала задача подключить чужую страничку в модальном окне внутри своего приложения (то есть надо посмотреть карту - показали окно с картой, не надо - спрятали). Не мудрствуя лукаво, использовал IFRAME, и тут же напоролся на Firefox и WebKit.

28 мар. 2012 г.

Дебильные вопросы при приёме на работу

В последнее время в наших краях стало модным при приёме на работу в софтверную контору проводить "Job Interview 2.0" - задавать кандидату дебильные вопросы типа "сколько заправок в Петербурге?", "как взвесить слона?" и тому подобные. Интервьюеры считают, что это раскрывает потенциал кандидата, его способности мыслить нестандартно, предлагать оригинальные решения и так далее. Что же происходит на самом деле?

20 мар. 2012 г.

Chrome не любит букву ё

Проверка правописания Chrome подчёркивает многие слова, содержащие букву Ё (нашёл, пошёл и т.п.). С точки зрения Chrome я должен писать "нашел" и "пошел".
А проверка правописания Firefox не справляется с двумя языками одновременно - если я написал текст на русском и английском, например, процитировал исходники, то либо то либо другое будет подчёркнуто красным. С точки зрения Firefox я могу писать или только на русском, или только на английском.

Remote Desktop под Linux Mint/Ubuntu

Удалённая настройка удалённого доступа к рабочему столу (Remote Desktop или Virtual Network Connection) системы на Linux Mint (Ubuntu) через SSH

3 мар. 2012 г.

Почему J2EE разработчики враждебны к JSON

В последнее время перед J2EE разработчиками открывается дивный новый мир веб-приложений, которые хотят их заказчики, но в которых они оказываются совершенно чуждыми и бесполезными. Почему так происходит?

1 мар. 2012 г.

Как убедить менеджера в пользе "непродуктивных затрат времени"

Не секрет, что анализ (ревизия) кода и написание тестов считаются у менеджеров "пустой тратой времени". Попытки логических объяснений и формальных доказательств терпят неудачу, так как логическое мышление у менеджеров развито слабо. В этой статье я попытаюсь собрать более-менее убедительные "байки" и аналогии, которые могут повлиять на мнение вышестоящего звена.

16 февр. 2012 г.

Unit-тестирование JavaScript в JsTestDriver

В IDE WebStorm увидел интересный фреймворк JsTestDriver для unit-тестирования JavaScript. Кратко перечислю список основных достоинств:

new Boolean(false) считается true

Решил поиграться с новой версией WebStorm - IDE для web-разработки (JS+HTML+CSS и много чего ещё) от бравых авторов IDEA и TeamCity. Особенно заинтересовала инспекция кода JavaScript. На фрагменте кода

function bool2str(b) {
  return b == true ? 'yes' : 'no';
}
получил результат: Pointless boolean expression. Expression "b == true ?" can be simplified to "b ?". На первый взгляд всё правильно, но только на первый.