You are viewing [info]m_a_m_o_n's journal

Firefox SSL

Jan. 26th, 2012 | 09:55 pm

https://addons.mozilla.org/en-US/firefox/addon/perspectives/?src=collection&collection_id=26aa4d81-029d-8a7f-56d9-8b85087d4e18

Заставляет firefox жрать самоподписанные сертификаты.

Link | Leave a comment | Add to Memories | Share

Uncle Bob: Mocking Ruby Developers

Jan. 6th, 2012 | 11:41 pm

http://www.jroller.com/sebastianKuebeck/entry/robert_martin_architecture_the_lost
Tags: ,

Link | Leave a comment | Add to Memories | Share

My Code Style

Jan. 6th, 2012 | 05:39 pm

За прошлый год я принципиально изменил своё отношение
к тому как писать код, что я считаю хорошей практикой и что плохой.

Вот несколько подходов которые я использую:
1. final and Immutable (inspired by errlang):
Read more... )
Tags: , , ,

Link | Leave a comment {7} | Add to Memories | Share

getReady(new Year(2012));

Dec. 31st, 2011 | 04:07 pm

Каждый Новый Год, 31 Декабря,
в порядке установленной таймзоны
на восьми UDP пакетах
ассоциированных в двусвязный список
ко все серверам по всему миру
приходит Коннект.
Ровно в полночь системный таймер 16 раз подряд
вызывает нулевое прерывание, после чего
веб сервера flush-ат все upstrem потоки, базы данных
commit-ят все открытые транзакции, кэши инвалидируются
а админы чёкаются.
Хорошим серверам Коннект приносит ещё один год Ап-Тайма,
плохим - горячую замену.

С Наступающим!
Tags:

Link | Leave a comment {1} | Add to Memories | Share

Everyone is Wrong about Checked Excetions

Dec. 11th, 2011 | 10:35 pm

http://confluence.jetbrains.net/display/Kotlin/Exceptions


Я считаю что то, является ли исключение Checked/Uncked
должно определяться не только типом исключения
но и прототипом метода.

То есть должна быть возможность кроме
void fooCatch(File f){
try { new FileINputStream(f);} catch(FileNotFoundException e){...}
}
и
void fooThrow(File f) throws FileNotFoundException {
new FileInputStream(f);
}
ещё и вот так сделать
void fooUnchecked(File f) unchecked FileNotFoundException {
new FileInputStream(f);
}
, - в этом случае вызывающий не обязан будет обрабатывать
исключение о том что файл не найден.

Link | Leave a comment {23} | Add to Memories | Share

Это просто праздник какой то

Nov. 9th, 2011 | 01:34 pm

                Set<String> keys = oldMap.keySet();
                index = 0;
                for (Object key : keys) {
                    newMap.put(index+++"", oldMap.get(key));
                }
Tags: ,

Link | Leave a comment {1} | Add to Memories | Share

Друг придумал Хеллоуинскую сказку

Nov. 1st, 2011 | 10:36 pm

База Яга украла Релиз, и всем пришёл Дедлайн.
И пошёл тогда Иванушка Девелопер
за тридевять серверов, по ssh туннелю,
куда не каждый ip-пакет доходит,
за волшебным Континьюс Деплойментом.
Что бы победить им Базу Ягу.

Шёл Иванушка Девелопер шёл,
и тут ему на встречу Таймаут.
И говорит Таймаут Иванушке Девелоперу
- Сервер не отвечает.
Полез тогда Иванушка Девелопер
в Конфиги Энжайнкса, и поправил их.
И ушёл Таймаут. B пошёл тогда
Иванушка Девелопер дальше.

To Be Continued...
Tags:

Link | Leave a comment | Add to Memories | Share

Как дети малыe, ну сколько можно

Oct. 31st, 2011 | 04:53 pm

WHERE upper(name) = upper(#{name})

upd: http://www.postgresql.org/docs/9.1/static/sql-createindex.html

To create an index on the expression lower(title), allowing efficient case-insensitive searches:

CREATE INDEX ON films ((lower(title)));

====
т.е. как оказывается для postgres поиск без учёта регистра есстественным
образом делается через индекс по функции. И тут бы посыпать голову пеплом,
но такого индекса конечно не было.
Tags: , ,

Link | Leave a comment {23} | Add to Memories | Share

Embedding tomcat7: autopsy

Oct. 30th, 2011 | 09:57 pm

Последнее время мне всё меньше нравится деплоить
и всё больше - запускать веб приложения.

Разобравшись с jetty я взялся за tomcat7,
в 7-ке появился embedding о чём написано в книге.

Скачал пример, запустил, всё работает. Скопировал пример в свой тестовый проект:
java.lang.ClassNotFoundException: org.apache.jasper.servlet.JspServlet
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)


..........

Дело кончилось вот чем. Если classpath слишком длинный, IDEA выставляет проекту атрибут:
<property name="dynamic.classpath" value="true" />
После чего его classpath начинает задаваться не на напрямую, а через:
com.intellij.rt.execution.CommandLineWrapper
Интрига в том что при этом в системном classpath остаётся только idea_rt.jar,
а именно системный classpath и используется tomcat-ом.

Проблема решается следующим образом:
this.tomcat.getServer().setParentClassLoader(Thread.currentThread().getContextClassLoader());

P.S. Ну мало ли, вдруг кому полезно будет.


tags: 99 способов как весело провести вечер с класслоадером.

Link | Leave a comment {3} | Add to Memories | Share

A day late and a dollar short: JavaFX 2.0

Oct. 30th, 2011 | 12:30 am

 
Tags:

Link | Leave a comment | Add to Memories | Share