www.blogspot.com
magicprinc
Andrew Fink press center
1	http://magicprinc.blogspot.com/2013/10/blog-post.html	Пятиминутка баз (хранилищ) данных	2013-10-30T15:52:40.199+04:00	___	1. Percona засветилась за пределами MySQL тусовкиhttp://www.theregister.co.uk/2013/10/07/percona_server_update/ http://www.pcworld.com/article/2054060/percona-challenges-oracle-with-alternate-mysql-release.html Жаль они не делают сборок MySQL под Windows!Почему Percona, а не MariaDB:- несмотря на заявленные оптимизации, у меня локально (Windows 8, 8 CPU, 8GB RAM, slow HDD) показала результаты хуже, чем оригинальный MySQL - субъективно MariaDB более серьезный уход от оригинального MySQL- у знакомых (linux админ хороший, но MySQL знает слабо) не завелась после простой (drop-in) замены, а версия от Percona сразу заработалаНо если Google перейдет на MariaDB - это может представить дело в новом свете.2. Шикарный онлайн ресурс! Поддерживает карточки-описания различных БД и позволяет разные БД между собой (формальные характеристики вроде поддержки SQL, ACID?, Database model, Developer, подборка свежих ссылок, к сожалению производительность никак не описана) http://db-engines.com/en/systems (пример сравнения http://db-engines.com/en/system/Microsoft+SQL+Server%3BMongoDB%3BMySQL%3BPercona+Server%3BPostgreSQL )И ещё они сделали рейтинг разных БД (методика описана, напоминает http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html для языков программирования)http://db-engines.com/en/ranking
2	http://magicprinc.blogspot.com/2013/10/online-wireshark.html	~Online WireShark	2013-10-16T16:46:53.964+04:00	___	Если нужно посмотреть снятый дамп сетевой активности, но нет времени/желания/возможности ставить wireshark, то можно воспользоваться сервисом cloudshark.org
3	http://magicprinc.blogspot.com/2013/10/linux-oracle-java-tomcat.html	Памятка: Linux, Oracle Java, Tomcat	2013-10-06T14:15:48.774+04:00	___	Как снести то, что ставится по умолчанию и установить свежую Oracle Java и свежий Tomcat:http://howtofindsolution.blogspot.ru/2012/11/how-to-install-and-configure-tomcat7-on.htmlhttp://askubuntu.com/questions/21131/how-to-correctly-remove-openjdk-openjre-and-set-sunjdk-sunjre-as-default 
4	http://magicprinc.blogspot.com/2013/05/jmx-ssh-jvisualvm.html	JMX через ssh-туннель: подключение JVisualVM к удаленному серверу	2013-05-20T15:54:44.139+04:00	___	Примечания* Иногда может хватить jmx shell console (один jar-ник, работает на сервере в консоли): http://wiki.cyclopsgroup.org/jmxterm.* посмотреть слушают ли порты и кто:linux: netstat -l -p -nwindows: netstat -a -b -n Настраиваем (X=6 или 7)!скачать catalina-jmx-remote.jar из tomcat.apache.org/download-X0.cgi - Extras - JMX Remote jar в tomcat/libв опциях запуска tomcat (tomcat/bin/catalina.sh или /etc/default/tomcatX) в ключ CATALINA_OPTS/JAVA_OPTS добавляем " -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=127.0.0.1 ". Для примера в итоге он может выглядеть так: JAVA_OPTS="-Djava.awt.headless=true -Xmx3400m -XX:+HeapDumpOnOutOfMemoryError -Duser.language=ru -Duser.region=RU -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -XX:+UseCompressedOops -Djava.net.preferIPv4Stack=true -Djava.rmi.server.hostname=127.0.0.1" в conf/server.xml (там где правим &lt;Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" URIEncoding="UTF-8" redirectPort="8443"/&gt;) добавляем &lt;Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="9098" rmiServerPortPlatform="9099"/&gt;перезапускаем tomcat, проверяем чистоту логов, проверяем занятость портовв ssh клиенте для надежности настраиваем туннели на обоих портах ;-), проверяем что порты слушаются локальноподключаемся JVisualVM/JConsole используя JMX url вида: service:jmx:rmi://127.0.0.1:9099/jndi/rmi://127.0.0.1:9098/jmxrmiИсточники- JMX through a ssh tunnel - http://blog.markfeeney.com/2010/10/jmx-through-ssh-tunnel.html- Connecting remote tomcat JMX instance using jConsole - http://stackoverflow.com/questions/1263991/connecting-remote-tomcat-jmx-instance-using-jconsole- http://gabenell.blogspot.ru/2010/04/connecting-to-jmx-on-tomcat-6-through.html
5	http://magicprinc.blogspot.com/2013/03/hg.html	HG как клиент для всего	2013-03-21T10:28:10.068+04:00	___	http://mercurial.selenic.com/wiki/HgSubversionhttp://mercurial.selenic.com/wiki/HgGit  + A guide to getting the hg-git Mercurial plugin to work on a Windows machine 
6	http://magicprinc.blogspot.com/2013/03/java.html	Все опции java	2013-03-12T12:47:25.305+04:00	___	# java -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+PrintFlagsFinal -version [другие опции и аргументы]http://q-redux.blogspot.ru/2011/01/inspecting-hotspot-jvm-options.htmlhttp://javarevisited.blogspot.ru/2011/11/hotspot-jvm-options-java-examples.htmlВерсия попроще# java -XX:+PrintCommandLineFlags -version [другие опции и аргументы]
7	http://magicprinc.blogspot.com/2012/12/mssql.html	MSSQL и ошибки	2012-12-23T16:42:18.072+04:00	___	Если вы работаете с MSSQL вообще или с MSSQL через jdbc, то от этих ссылок вы получите удовольствие!Подробнейшее описание как обрабатывать ошибки в MSSQL:http://www.sommarskog.se/error-handling-I.htmlhttp://www.sommarskog.se/error-handling-II.htmlкратенькая выжимка http://weblogs.sqlteam.com/dang/archive/2007/10/20/Use-Caution-with-Explicit-Transactions-in-Stored-Procedures.aspxСсылки которые я искал два дня. Вся порочная правда о MSSQL и jdbc (они об одном и том же)!http://blogs.msdn.com/b/jdbcteam/archive/2008/08/04/why-doesn-t-executeupdate-give-me-the-exception-i-expected.aspxhttp://blogs.msdn.com/b/jdbcteam/archive/2008/08/01/use-execute-and-getmoreresults-methods-for-those-pesky-complex-sql-queries.aspx PS: если вы используете Java 6, MSSQL 2000 и jtds, то я сделал работающую с MSSQL2000 Java 6 версию jtds 1.3 http://sourceforge.net/p/jtds/bugs/683/
8	http://magicprinc.blogspot.com/2012/12/blog-post.html	Полезные ссылки и утилиты	2012-12-23T16:38:38.668+04:00	___	- текстовый редактор Sublime Text 2 (хотя я, из-за его самобытной раскладки, пользуюсь http://www.jetbrains.com/idea и http://notepad-plus-plus.org)- редактор различных диаграмм  diagram.ly он же draw.io- если нужна offline утилита: yEd описание и сайт производителя- генератор UML схем (диаграмм) yuml.me- доступ к удаленному ПК 2.0  LogMeIn- скрипт анализирующий ваш MySQL и дающий советы по его лучшей настройке: mysqltuner.com- утилита innotop для MySQL  1. Download latest TermReadKey? from CPAN: http://search.cpan.org/~stsi/TermReadKey/ReadKey.pm  2. tar -zxvf TermReadKey-2.30.02.tar.gz  3. perl Makefile.PL  4. make test  5. make installInnotop manual http://innotop.googlecode.com/svn/html/index.html, в частности:innotop -u [username] -p [password] -h [hostname]
9	http://magicprinc.blogspot.com/2011/12/jrebel.html	Памятка по установке JRebel	2011-12-04T13:40:43.722+04:00	___	Прежде всего хочу сказать, что настраивать-то особо нечего ;-)Можно посмотреть презентацию "для вдохновения" zeroturnaround.com/jrebel/presentations.Я использую IntelliJ IDEA, для других IDE инструкция может слегка отличаться, см zeroturnaround.com/resources .1. Идем в IDE settings | plugins и находим среди доступных JRebel Plugin, Download and Install, Apply (restart).С сайта zeroturnaround.com/jrebel/current ничего качать не нужно, все включено в плагин. 2. В IDE settings появится пункт JRebel, там нажимаем Launch JRebel Configuration Wiazard...Первый пункт активация - проще и дешевле начать с evolution.Второй пункт license пропускаем -  evolution сам сгенерирует и активизирует лицензию на 30 дней.3. пункт Choose settings выбираем какая IDE используется, тогда следующие пункты будут показывать инструкции по мелкой оптимальной подстройке этой IDE.Следует выставить три 'галочки' в IDE по инструкциям в последующих пунктах.Закончили с установкой и конфигурированием.4. В Project view проекта в pop-up menu выбираем Generate rebel.xmlДалее как сделал я и как удобно мне, возможно вам тоже понравится :-)5. Сохраняем rebel.xml в [webroot]/WEB-INF/classessЭто единственный, довольно простой конфигурационный файл JRebel.Основные настройки описаны в zeroturnaround.com/jrebel/how-to-configure-rebel-xml На всякий случай ссылка на полное описание (скорее всего не понадобится): zeroturnaround.com/jrebel/configurationНастройки по умолчанию мне не подошли т.к.a. я использую Apache Click, который при старте достает некоторые ресурсы в [webroot], а так как по умолчанию используется [webroot] в исходниках, то система контроля версий обнаруживает кучу новых файлов.b. в проекте много модулей, которые компилируются в jar-ы и кладутся в [webroot]/WEB-INF/libПоэтому пришлось прописать папку target/название_web_app - как [webroot],и несколько target/production/название_модуля - как путь для поиска классов, где:* target стандартное maven-название папки куда все компилируется,* production - папка принудительно создаваемая IDEA,* название_web_app - путь который вы прописали в Web Application exploded artifact, e.g. voip, smsrouter, etc,* название_модуля - IDEA создает для каждого модуля свои подпапки в production.Итоговый файл:&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.zeroturnaround.com" xsi:schemaLocation="http://www.zeroturnaround.com http://www.zeroturnaround.com/alderaan/rebel-2_0.xsd"&gt; &lt;classpath&gt;  &lt;dir name="C:/j/voip.dev/bh/target/production/core"/&gt;  &lt;dir name="C:/j/voip.dev/bh/target/production/demo"/&gt;  &lt;dir name="C:/j/voip.dev/bh/target/production/mca"/&gt;  &lt;dir name="C:/j/voip.dev/bh/target/production/tts"/&gt; &lt;/classpath&gt; &lt;web&gt;  &lt;link target="/"&gt;&lt;!-- если эту папку zip-ануть, получится .war --&gt;   &lt;dir name="C:/j/voip.dev/bh/target/voip" /&gt;  &lt;/link&gt; &lt;/web&gt; &lt;/application&gt;Готово!Далее просто запускаем Tomcat не обычной зеленой стрелочкой, а стрелочкой с "jr".Вносим изменения в код, компилируем (IDEA перед этим сохраняет) Ctrl+Shift-F9 или Ctrl-F9, F5 в браузере и видим обновление.PS: если хочется ускорить первый старт Tomcat, то мой предыдущий совет "скопировать папку VAADIN из vaadin.jar в [webroot]" по прежнему применим.Кроме того, возможно вам захочется избавиться от сериализации HTTP сессии между рестартами Tomcat (пользы от этой сериализации в случае Vaadin не очень много), для этого в [webroot]/META-INF нужно поместить файл context.xml вида:&lt;?xml version='1.0' encoding='utf-8'?&gt;&lt;Context antiJARLocking="true" &gt;  &lt;!-- Default set of monitored resources --&gt;  &lt;WatchedResource&gt;WEB-INF/web.xml&lt;/WatchedResource&gt;   &lt;!-- disable session persistence across Tomcat restarts --&gt;  &lt;Manager pathname="" /&gt;&lt;/Context&gt;Аттрибут antiJARLocking="true" опционален (можно убрать). Он нужен если web приложение не освобождает какие-то классы и не выгружается Tomcat (свой код лучше от такого чистить, но бывают такие библиотеки третьих сторон).
10	http://magicprinc.blogspot.com/2011/12/blog-post.html	Робот полотер	2011-12-02T13:06:14.350+04:00	___	Читаю Робот-полотер Mint - обзор @ exler.ru/expromt/10-11-2011.htm и нахожусь в задумчивости.Дома у меня нет ковров, везде ламинат т.е. пылесос не нужен, а вот полотер...
11	http://magicprinc.blogspot.com/2011/12/java-web-vaadin.html	Разное про Java, Web и Vaadin	2011-12-01T10:28:43.104+04:00	___	1. Для качественного ускорения web разработки на Java можно использовать замечательный продукт JRebel zeroturnaround.com/jrebel (кратко, что это). Он позволяет практически полностью отказаться от длительного re-deploy процесса.Внес исправление в код, перекомпилировал - web приложение уже обновилось (вроде PHP,Python,Ruby). Продукт платный, но есть интересный способ использовать бесплатно: social.jrebel.com.Кроме того они сделали вкусную zip java lib: новость repo.2. Если не использовать JRebel и разрабатывать используя Vaadin, то можно обнаружить, что при первом запуске vaadin приложения после старта Tomcat, оно висит несколько секунд (примерно 10 на моём ПК). Исследование показало, что "висит" не сам Vaadin, а вызванный в com.vaadin.terminal.gwt.server.AbstractApplicationServlet#serveStaticResourcesInVAADIN Tomcat.vaadin.jar довольно большой и чтение ресурсов из него длительная операция.Чтобы избавится от этой задержки достаточно скопировать папку VAADIN из vaadin.jar в web app root (там где WEB-INF, META-INF, etc).Если Вам помог этот совет проголосуйте за мой совет на stackoverflow.com/questions/3904735.3. JavaScript is assembly language for the web ИЛИ кто ещё не написал свой веб-Си?GWT (Google Web Toolkit) - золотой стандарт компиляции в JS, все знают, многим хочется повторить.Ладно Google начал страдать NIH синдромом и решил изобрести JavaScript (его придумали/сделали не они) dartlang.orgНо так, чтобы ВСЕ бросились компилировать в JS (включая больных и убогих)...На 20ом языке начинает пробивать смех:github.com/jashkenas/coffee-script/wiki/List-of-languages-that-compile-to-JSДаже QBASIC не забыт!4. Унифицированный способ запускать различные контейнеры e.g. Tomcat из своего кодаcargo.codehaus.org5. Для копирования DTO между разными уровнями в web приложении пригодитсяdozer.sf.net
12	http://magicprinc.blogspot.com/2011/09/java7-try-with-resources.html	Java7 try-with-resources	2011-09-08T12:08:20.041+04:00	___	Хорошее подробное описание try-with-resources в Java 7:Better Resource Management with Java SE 7: Beyond Syntactic Sugar
13	http://magicprinc.blogspot.com/2011/07/java.html	Интересное про память и Java	2011-07-07T11:18:23.300+04:00	___	javaspecialists.eu/archive/Issue193.htmlВообще имеет смысл прочитать все его выпуски.В частности же:на 64-bit серверах с 64-bit java полезно попробовать опцию   -XX:+UseCompressedOops64bit архитектура == 64bit указатели (vs 32bit = в 2 раза больше).С этой опцией JVM указатели (не все) оптимизирует == - жрет меньше памяти - меньше байт прокачивать по шинам.
14	http://magicprinc.blogspot.com/2011/07/java7-javadoc.html	В Java7 будет сексуально выглядящий Javadoc	2011-07-07T11:11:14.952+04:00	___	http://download.java.net/jdk7/docs/api/Хотя лично мне нравится chm версия: упакованная, быстрая, со сквозным индексом и поиском.
15	http://magicprinc.blogspot.com/2011/07/blog-post_07.html	Работа территориально распределенных коллективов	2011-07-07T11:06:57.754+04:00	___	Для удаленной работы одного GMail/GTalk бывает недостаточно.Skype ~ GTalk только без архива на сервере и более распространненый.JIRA (и другие аналогичные продукты), Wiki, Jing - уже почти всё что нужно.Недавно наткнулся на интересный продукт:Team Viewerсовместная работа, презентации, удаленное управление, тех поддержка и тдИзучаю...
16	http://magicprinc.blogspot.com/2011/07/fun.html	fun	2011-07-07T09:18:01.690+04:00	tag: fun endoftag 	Стараюсь всякий нетехнический бред писать в ЖЖ.Но убогость ЖЖ просто доканывает.Картинку по простому нельзя разместить. Обязательно ритуал вида "найдите три китайских девственницы, поститесь с ними три года, на четверый в самую большую луну пойдите на..."В blogger просто зашел и разместил!В блог добавляется preview, при клике на картинке открывается полная версия.Манул IKEA по сборке Стоунхенджа и говнотвиттер:PS: ну и немного о технике...Эта гребля с ЖЖ напомнила мне о книге, которую я рекомендую прочитать всем.Жизнь внутри пузыря.Она как бы историческая и про интернет, но работая в большой "реальной" корпорации "я плакалъ".
17	http://magicprinc.blogspot.com/2011/07/blog-post.html	Сравнение схем БД	2011-07-04T10:13:38.423+04:00	tag: sql endoftag 	Я работаю с MSSQL и MySQL и часто приходится сравнивать изменения в БД.* Делаю так: скриптую БД с разбивкой всех объектов на индивидуальные файлы, после чего сравниваю, используя diff tool с возможностью сравнения директорий.Очень просто и удобно.Сама папка находится под DVCS Mercurial/HG т.е. можно смотреть историю изменений.* Знаю про другой способ (работает в т.ч. между серверами разных версий т.к., например, скрипты MSSQL 2008 и 2000 довольно сильно отличаются).Для MySQL: devart.com/ru/dbforge/mysql/studio Для MSSQL: devart.com/ru/dbforge/sql/datacompareСам активно не пользовал, но один знакомый активно использует и очень хвалит.* Есть что-то ещё?...
18	http://magicprinc.blogspot.com/2011/05/blog-post.html	Скриншоты и скринкасты - просто и удобно	2011-08-18T10:01:00.564+04:00	tag: jing endoftag tag: screencast endoftag tag: screenshort endoftag 	Потребовалось отправить в Jetbrains screen-cast бага (что он существует ;-).Провел небольшое исследование: чем быстро и просто записать короткий screen-cast (изображение части экрана, курсор, звук с микрофона).Нашел несколько вариантов, в итоге выбрал jingПросто (ничего не надо настраивать), удобно. Делает помимо видео, фотки куска экрана (PrtScn и последующее вырезание в редакторе достало).Думаю о дальнейшем использовании.PS: для скриншотов есть OpenSource sf.net/projects/greenshot - сегодня рассылка SF-ная принеслаUPD2: http://camstudio.org/ OpenSource утилита для записи скринкастов
19	http://magicprinc.blogspot.com/2011/04/2011-default-cmdexe-cp1251.html	2011: Сменил default кодировку консоли cmd.exe на cp1251	2011-04-06T10:09:13.641+04:00	___	Как известно default  кодировка/codepage windows консоли cmd.exe DOS 866.На дворе 2011 и я решился сменить её на кодировку остальной системы cp1251.Узнать какая кодировка выставлена, можно набрав в cmd.exe команду chcp.Сменить "на лету" можно chcp 1251.С UTF-8 chcp 65001, как мы уже выяснили не работает.Чтобы сменить на постоянной основе требуется:Start-&gt;Run-&gt;regeditHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePageсменить кодировку в OEMCP с 866 на 1251После чего потребуется перезапуск.Найдено здесь.Пора избавляться от старого барахла.Если очень захочется запустить что-то старое DOS-овское "chcp 866" в помощь.Замеченые минусы:давно надо было у архиваторов выставить кодировку файлов UTF-8, пришлось некоторые архивы пережать.
20	http://magicprinc.blogspot.com/2011/03/hg.html	Mercurial - Hg	2011-04-01T16:18:00.255+04:00	___	Начал читать http://hginit.comЧитая раздел для SVNщиков утер слезу - до чего верно пишет.После этого полезно mercurial.selenic.com/guideВ UTF-8 не работает (глюк windows). Поэтому не chcp 65001 (меняет кодировку консоли на UTF-8), а chcp 1251 - ваш друг.Для работы удобнее всего оказался cmd.exe /X /K chcp 1251 &amp;&amp; cd "путь"Отличная утилита HgWin, вызывается из командной строки (hgwin cmd) и открывает GUI окошко. Если сразу в GUI, то TortoiseHG вполне.Отличная короткая статья об организации процесса подходящего и для моих проектов: http://stevelosh.com/blog/2010/05/mercurial-workflows-stable-default/Относительно коммитов решил, что буду коммитить часто. Как ограничение "вечером не должно оставаться незакоммиченной работы".Чтобы не зафлудить репозитарий сырым кодом буду применять следующее соглашение:1. закомичиваемый код должен компилироваться (этого можно достичь даже вечером, пустые методы с todo написать и тд)2. если тесты не прошли или нет времени на все тесты, то commit message должен начинаться с "?": ?Обзвон нескольких телефонов в списке3. если тесты проходят и по ощущениям код хороший, то commit message не начинается с ? и ! т.е. любые другие символы4. если код отлично прошел тесты на DEV SERVER и его можно пытаться выкладывать на PRODUCTION, то commit message начинается с !5. на бой выкладываются только ревизии с commit message начинающиеся на !6. после выкладки на бой (вроде полетело, чуток поглядели - летит) тегируем версию "YYYY-MM-DD major.minor примечания"7. после некого интервала (ничего не вылезло, клиенты не звонят с воплями) мержим default в stablex. если вдруг потом обнаружен баг, переключаемся на "YYYY-MM-DDmajor.minor примечания" в stable, правим / build, test, func/sys test, deploy / tag "ymd major.minor примечания"2, merge это исправление в defaulty. если хочется надолго всё сломать - локальный feature clone. Из которого потом pull, merge в local#default и rm -rf feature clonePS1:Мучился вопросом: как бранчи случайно названные одинаково разными программистами не пересекаются?Ответ: пересекаются! Рекомендуют именовать приватные бранчи "программист-название бранча".http://nubyonrails.com/articles/five-features-from-mercurial-that-would-make-git-suck-lessПро бранчи vs клоны общий совет такой:для собственных нужно лучше делать локально клоны.Именованые бранчи для длительных линий разработки, типа есть три версии программы 1.0, 2.0, 3.0. Переход на новую версию стоит денег и не все пользователи переходят, сидят на 1.0 и 2.0, однако баги, возможно какие-то вкусняшки им давать необходимо (они купили). Дескать это хорошее применение для бранчей.PS2:Разумеется все теоретики запада против хранения генерируемых файлов в репозитарии - их можно моментально создать, любой версии, когда понадобятся (class, jar, war, ear, javadoc).Сгенерированные исходники (Google Protobuf, из WSDL) - нельзя менять, но хранить в VCS можно. Для анализа, что менялось или "почему всё сломалось". Но менять нельзя!Если в сгенерированные исходники надо внести изменения - советуют от них наследоваться, либо использовать композицию, тогда сгенерированный код может следовать за обновлениями, а не  останется на века в той версии где подправили.
21	http://magicprinc.blogspot.com/2011/02/java-tips-1.html	Java tips #1	2011-06-03T16:08:52.134+04:00	___	* Использую следующие дополнительные параметры запуска javac в IDE:-J -ea -Xlint:all -Xlint:-serial -J -XX:+AggressiveOpts -J -XX:+UseFastAccessorMethodsможно использовать "облегченную" версию -Xlint:all -Xlint:-serialJavac сообщает гораздо больше интересного (хинты) о  коде.Вообще у JVM просто огромное количество настроек...А  resource patterns у меня?*.properties;?*.xml;?*.gif;?*.png;?*.jpeg;?*.jpg;?*.html;?*.htm;?*.dtd;?*.tld;?*.conf;?*.mp3;?*.wav;?*.mid;?*.midi;?*.ftl;?*.css;?*.js;?*.ico* Jdbc batches действительно ускоряют массовые операцииHow To Use JDBC addBatch Method with MySQL for Improved PerformanceПравда у большинства JDBC Drivers (MySQL единственное известное мне исключение) нельзя в batch получить autoinc PK, т.е. они не подойдут, либо использовать ручную генерацию PK.
22	http://magicprinc.blogspot.com/2011/02/blog-post_18.html	Шрифты	2011-02-18T12:35:26.191+03:00	___	Читая один блог, наткнулся на рассуждения о шрифтах, какие лучше для чтения и программирования. Посмотрев на календарь, увидел, что там 2011 год. Решил, что, наверное, надо тоже сменить Tahoma и Courier New, на более современные разработки, тем более, что у меня с оказией Vista, а там идут новые секретные шрифты разработки M$.Calibri, Cambria, Candara, Consolas, Constantia and Corbel - according to Poynter Online, the new ClearType Font Collection incorporates improved Clear Type and OpenType technologies, and a boatload of research, to improve the structure and the clarity of the letter forms. Basically, that means a story will be easier to read because the letters and words won't be as soft and mushy looking.* Calibri - sans serif, suitable for documents, e-mail, Web design, and magazines* Cambria - serif, a formal type for business documents, e-mail, and Web design* Candara - sans serif, with vertical strokes not as reader-friendly perhaps* Consolas - monospaced, suitable for displaying programming code* Constantina - serif, very clean and readable, created for use in print or on the screen* Corbel - sans serif, clean and works as an alternative to Arial, Trebuchet or VerdanaДля разработки в IDE и редакторах (notepad++) поставил Consolas.Чуть не заболели глаза, стал разбираться - оказывается это шрифты под ClearType (в настройках дисплея), который у меня был выключен, т.к. он превращал Tahoma и Courier New в пытку, а тут видишь наоборот.После включения сглаживания ClearType Consolas стал выглядеть очень мило и прилично. Из приятных бонусов: 1 не похожа на l(L малое), а у 0 (нуля) есть черточка, как в старые добрые времена.Для остального долго мучился (вроде и так не так и это не так), выбрал Constantia serif и Corbel sans serif (основной) в Chrome и Constantia/Calibri в FF.Потратил полдня, пока привыкаю, но в целом вроде мило.
23	http://magicprinc.blogspot.com/2011/02/mysql-links-and-tips.html	MySQL links and tips	2012-08-14T11:45:07.751+04:00	tag: sql endoftag 	Links 1. Сам MySQL и документацию (жаль в chm перестали делать) брать здесь:http://dev.mysql.com/downloads/mysql/2. Java JDBC Driver:http://dev.mysql.com/downloads/connector/j/3. Простая, легкая консоль (я пользуюсь ею для повседневных нужд - это free OS урезная редакция):http://code.google.com/p/sqlyog/4. Очень навороченная, крутейшая консоль+enterprise manager+отчеты(можно в некоторых случаях отчеты делать не в web UI, а используя эту студию):http://www.devart.com/ru/dbforge/mysql/studio/Вот список возможностей:http://www.devart.com/ru/dbforge/mysql/studio/features.htmlв частности:# Генерация отчетов данных# Построение сводных таблицУ них, кстати, много ещё вкусного free4personal для cp1251 users:http://www.devart.com/ru/dbforge/5. Советую подписаться на MySQL newsletter (на сайте MySQL легко найти)бывают интересные статьи, советы, новости, интервью с экспертами.6. Блог о тюнинге MySQLmysqlperformanceblog.comЛучше читать записи постарее (в новых много слишком заумного и про их порт).Performance super mini faqВ my.ini/my.cnf файле конфигурации есть опция innodb_flush_log_at_trx_commit, внимательно почитайте про неё.innodb_flush_log_at_trx_commit=0  - вполне разумный выбор IMHOVarsК сожалению, в запросе MySQL трудно написать сложную программу с if, while и тд, как это можно сделать в t-sql. В MySQL всё должно представлять из себя выражение см на примере if.Но переменные это что-то! Их не надо муторно объявлять с типом и можно использовать в самых удивительных местах.Пример (чтобы в Java работало несколько statement; в запросе не забудьте allowMultiQueries=true в JDBC Connection String/URL):set @a = null; set @b = null; set @c = null;select @a, @b, @c;-- null, null, null - всё чисто и готово к экспериментуselect 'boo!', @a+@b+@cFROM (SELECT @a := 1, @b := 2, @c := 3) t; -- boo!, 6 т.е. from отработал раньшеselect @a, @b, @c;-- 1,2,3 значения сохранилисьselect @a, @b, @c from (select @a := @a*10, @b:=@b*20, @c:=@c*30) t;-- 10,40,90 опять from отработал раньшеselect @a, @b, @c;-- 10,40,90 и значения сохранилисьSqlWatchОтличная утилита code.google.com/p/sqlwatch !Ставится как "JDBC proxy", предоставляет широкие возможности для профилирования sql запросов приложения.JDBC Connection StringСейчас использую следующий набор опций: jdbc:mysql:///название_БД?connectTimeout=180000&amp;allowMultiQueries=true&amp;cacheServerConfiguration=true&amp;useLocalSessionState=true&amp;zeroDateTimeBehavior=convertToNull&amp;rewriteBatchedStatements=true 
24	http://magicprinc.blogspot.com/2011/02/blog-post.html	Займемся самолечением	2011-02-11T16:28:27.394+03:00	___	Важно! Предупреждение! Я не доктор и от медицины далек. Если вы заболели, лучше обратиться к врачу. Диагноз ставит врач. Лечение назначает врач (внимательно изучите, что он вам назначил).Антибиотики назначает только врач! Не занимайтесь самолечением!Нижеследующие советы представляют собой опыт моей семьи для информации, если врач постоянно пичкает вас антибиотиками.Коллеги просто напугали своими обширными познаниями в медицине на уровне "солнце вращается вокруг земли".Решил изложить, что я знаю о креветках и отправлять всех читать этот пост.Итак, горькая правда состоит в том, что современная медицина не умеет лечить большинство вирусных инфекций (перечитайте ещё раз).Организм заболевшего человека через некоторое время САМ обучается бороться с проникнувшим вирусом и побеждает его.Очень важно, что температура, которая бывает при этом – это помощник организма (она в т.ч. убивает вирусы), показатель того, что организм борется.Всё "лечение", которое даёт в данном случае медицина сводится к тому, чтобы снять интоксикацию, симптомы или осложнения = ПОСЛЕДСТВИЯ.Так любимые многими антибиотики НЕ воздействуют на вирусы!Они убивают бактерии, в том числе полезные, нанося при этом серьезный удар по организму.Их назначают в том случае, если, например, после гриппа у вас развилась бактериальная ангина.Пить их нужно, в крайнем случае, если осложнение таки появилось и оно серьезное.Назначает прием антибиотиков и их конкретный тип - только врач! (Внимательно изучите назначение, если оно из книжек времен Брежнева - обсудите с врачем более современные и щадащие средства!)Существенным прорывом науки в борьбе в вирусами являются прививки: это (всё сложнее, но для простоты) убитые или ослабленные вирусы. Организм учится определять и убивать их в тренировочном режиме, после чего в боевом это происходит быстрее.При этом они не дают 100% гарантии и сами могут приводить к осложнениям ;-)80% так называемых лекарств в аптеках - это вообще не лекарства, а препараты для снятия симптомов заболевания т.е. вы болеете, заражаете коллег, но выглядите внешне почти здоровым (всякие терафлю и тд).Пользы от их применения нет вообще никакой. Т.к. они зачастую только вредят, например, снижая температуру.Что делать, если заболели?1.    заболев лежать, много пить (вода, чай с травами, шиповником), есть много витамина С, много спать.2.    по возможности (до 38-39 градусов) не сбивать температуру3.    не жрать без необходимости антибиотики4.    чистить нос Coclean 5.    капать в нос Гриппферон6.    пить Ремантадин (римантадин)7.    пить настойку Эхиноцеии Пурпурной и АрбидолЧто делать, чтобы минимизировать риск заболевания?Тренировать собственные защитные функции организма.1.    прививка2.    закаливание, например, контрастный душ (и кожа подтянется)3.    зарядка / физические нагрузки4.    прогулки на свежем воздухе5.    чистить нос Coclean6.    капать в нос Гриппферон (профилактические дозы)7.    пить настойку Эхиноцеии и Арбидол  (профилактические дозы)8.    чистка организма
25	http://magicprinc.blogspot.com/2011/01/2011.html	Технологические планы на 2011	2011-03-19T12:07:27.645+03:00	___	Изучить и начать использовать mercurial.selenic.com (Hg)Изучить и начать использовать maven.apache.orgПерейти с Log4j на давно изученный logback.qos.chХорошенько сравнить mybatis со Spring JDBC + мои доработки - использовать победителяУлучшить знание CSSУлучшить знание JavaScriptIDEA 10 и только ручки StAX (и углублять JAXB)Активнее использовать  JBoss HornetQ (может есть MQ лучше? RabbitMQ и ActiveMQ не впечатлили)Активнее использовать Ehcache (вкусное в 2.4, попробовать распределенный) + Spring 3.1 cache abstraction
