Firefox SSL
Jan. 26th, 2012 | 09:55 pm
https://addons.mozilla.org/en-US/firefox/a ddon/perspectives/?src=collection&collec tion_id=26aa4d81-029d-8a7f-56d9-8b85087d 4e18
Заставляет firefox жрать самоподписанные сертификаты.
Заставляет firefox жрать самоподписанные сертификаты.
Link | Leave a comment | Add to Memories | Share
Uncle Bob: Mocking Ruby Developers
Jan. 6th, 2012 | 11:41 pm
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... )
к тому как писать код, что я считаю хорошей практикой и что плохой.
Вот несколько подходов которые я использую:
1. final and Immutable (inspired by errlang):
( Read more... )
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-ят все открытые транзакции, кэши инвалидируются
а админы чёкаются.
Хорошим серверам Коннект приносит ещё один год Ап-Тайма,
плохим - горячую замену.
С Наступающим!
в порядке установленной таймзоны
на восьми UDP пакетах
ассоциированных в двусвязный список
ко все серверам по всему миру
приходит Коннект.
Ровно в полночь системный таймер 16 раз подряд
вызывает нулевое прерывание, после чего
веб сервера flush-ат все upstrem потоки, базы данных
commit-ят все открытые транзакции, кэши инвалидируются
а админы чёкаются.
Хорошим серверам Коннект приносит ещё один год Ап-Тайма,
плохим - горячую замену.
С Наступающим!
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/dis play/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);
}
, - в этом случае вызывающий не обязан будет обрабатывать
исключение о том что файл не найден.
Я считаю что то, является ли исключение 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));
}
Link | Leave a comment {1} | Add to Memories | Share
Друг придумал Хеллоуинскую сказку
Nov. 1st, 2011 | 10:36 pm
База Яга украла Релиз, и всем пришёл Дедлайн.
И пошёл тогда Иванушка Девелопер
за тридевять серверов, по ssh туннелю,
куда не каждый ip-пакет доходит,
за волшебным Континьюс Деплойментом.
Что бы победить им Базу Ягу.
Шёл Иванушка Девелопер шёл,
и тут ему на встречу Таймаут.
И говорит Таймаут Иванушке Девелоперу
- Сервер не отвечает.
Полез тогда Иванушка Девелопер
в Конфиги Энжайнкса, и поправил их.
И ушёл Таймаут. B пошёл тогда
Иванушка Девелопер дальше.
To Be Continued...
И пошёл тогда Иванушка Девелопер
за тридевять серверов, по ssh туннелю,
куда не каждый ip-пакет доходит,
за волшебным Континьюс Деплойментом.
Что бы победить им Базу Ягу.
Шёл Иванушка Девелопер шёл,
и тут ему на встречу Таймаут.
И говорит Таймаут Иванушке Девелоперу
- Сервер не отвечает.
Полез тогда Иванушка Девелопер
в Конфиги Энжайнкса, и поправил их.
И ушёл Таймаут. B пошёл тогда
Иванушка Девелопер дальше.
To Be Continued...
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/stat ic/sql-createindex.html
To create an index on the expression lower(title), allowing efficient case-insensitive searches:
CREATE INDEX ON films ((lower(title)));
====
т.е. как оказывается для postgres поиск без учёта регистра есстественным
образом делается через индекс по функции. И тут бы посыпать голову пеплом,
но такого индекса конечно не было.
upd: http://www.postgresql.org/docs/9.1/stat
To create an index on the expression lower(title), allowing efficient case-insensitive searches:
CREATE INDEX ON films ((lower(title)));
====
т.е. как оказывается для postgres поиск без учёта регистра есстественным
образом делается через индекс по функции. И тут бы посыпать голову пеплом,
но такого индекса конечно не было.
Link | Leave a comment {23} | Add to Memories | Share
Embedding tomcat7: autopsy
Oct. 30th, 2011 | 09:57 pm
Последнее время мне всё меньше нравится деплоить
и всё больше - запускать веб приложения.
Разобравшись с jetty я взялся за tomcat7,
в 7-ке появился embedding о чём написано в книге.
Скачал пример, запустил, всё работает. Скопировал пример в свой тестовый проект:
..........
Дело кончилось вот чем. Если classpath слишком длинный, IDEA выставляет проекту атрибут:
<property name="dynamic.classpath" value="true" />
После чего его classpath начинает задаваться не на напрямую, а через:
com.intellij.rt.execution.CommandLineWra pper
Интрига в том что при этом в системном classpath остаётся только idea_rt.jar,
а именно системный classpath и используется tomcat-ом.
Проблема решается следующим образом:
this.tomcat.getServer().setParentClassLo ader(Thread.currentThread().getContextCl assLoader());
P.S. Ну мало ли, вдруг кому полезно будет.
tags: 99 способов как весело провести вечер с класслоадером.
и всё больше - запускать веб приложения.
Разобравшись с 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.CommandLineWra
Интрига в том что при этом в системном classpath остаётся только idea_rt.jar,
а именно системный classpath и используется tomcat-ом.
Проблема решается следующим образом:
this.tomcat.getServer().setParentClassLo
P.S. Ну мало ли, вдруг кому полезно будет.
tags: 99 способов как весело провести вечер с класслоадером.