english | блог | контакт
Fri, 12 Feb 2010 @ 12:03

Преобразования ip и netmask

java алгоритмы велосипеды

Чисто из любопытства получился очередной велосипед, умеющий преобразовывать адрес ip в int и обратно в строку + калькулятор маски сети для двух крайних адресов.
читать дальше

Fri, 05 Feb 2010 @ 11:37

Сумма прописью

java алгоритмы

Возникла задачка: преобразовать число (сумму в рублях/долларах/евро) в его словесную форму. И сделать это для русского и английского языка.

Быстрое гугление принесло пачку результатов, из которых хотелось бы выделить эти два:

http://www.freesource.info/wiki/TZ/SummaPropis%27ju& - подборка реализаций на perl/php/python/java/delphi.

http://runcore.habrahabr.ru/blog/76171/ - красивая реализация на java.

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

Tue, 02 Feb 2010 @ 16:56

Построение списка с учётом весов

алгоритмы

Всплыла задачка:
Есть набор некоторых объектов с весами (приоритетом). Требуется сгенерировать последовательность, в которой частота встречи каждого объекта пропорциональна его весу.

Мысль о изобретении велосипеда пришла в голову слишком поздно, потому получились два варианта.
читать дальше

Fri, 25 Dec 2009 @ 09:08

Конфигурирование Acegi

acegi spring авторизация

Эта же конфигурация с использованием неймспейсов

Так сложилось, что я не знаю ни одного человека, которому бы нравилось составлять "с нуля" XML-конфигурации. И сам я здесь не исключение.

Поэтому привожу пример конфигурации Acegi (Spring-Security) с комментариями.

Версия Spring 2.5.6, Spring-Security (Acegi) 2.0.5.
читать дальше

Thu, 10 Dec 2009 @ 09:27

Раритет

раритет сервер

Сегодня видел чудо:

$ uname -a
Linux ****** 2.2.20 #2 SMP уТД сОЧ 30 13:56:00 MSK 2002 i686 unknown

$ uptime
12:13pm up 450 days, 17:01, 3 users, load average: 2.10, 2.36, 1.93

$ cat /proc/meminfo |fgrep MemTotal
MemTotal: 517396 kB

$ cat /proc/cpuinfo |egrep '(model name|MHz)'
model name : Pentium III (Katmai)
cpu MHz : 551.258
model name : Pentium III (Katmai)
cpu MHz : 551.258

Стоит себе, жужжит, что-то делает :)

Thu, 26 Nov 2009 @ 14:26

Интересная реализация equals

java

В одном проекте нашёл интересный equals и минут 15 не понимал как и почему он работает:

Object obj = new Object() {
    private int id = _id;
    public boolean equals(Object obj) {
        return obj.equals(id);
    }
};

читать дальше

Mon, 23 Nov 2009 @ 11:22

Ещё одно "почему не стоит" складывать шаблоны в доступную извне папку

mvc spring

javax.servlet.jsp.JspTagException: No message found under code 'web.log.attention' for locale 'ru'.
Одна JSP-шка работает, практически такая же рядом - нет.

Копали минут 15, пока не всплыла простая ошибка: обращение к первой происходило через DispatcherServlet и маппинг page1.html, а ко второй напрямую, как page2.jsp.
Соответственно, в меру своих сил страница пыталась отобразиться, но ей явно не хватало глубинных связей с фреймворком :)

Fri, 23 Oct 2009 @ 17:28

wicket: авторизация, wasp, swarm, spring и acegi

acegi java spring wicket авторизация

В wicket 1.3 была возможность реализовывать авторизацию клиентов с помощью модулей wasp/swarm. С приходом версии 1.4, насколько я понял, модули wicket-security из wicket-stuff были молча забыты и вместо них используется acegi.

Spring Security and Wicket-auth-roles - пример использования спринговой авторизации

Пример простейшей конфигурации acegi с использованием неймспейсов.

Кстати, даже не зная как делать "правильную связку wicket-acegi", имя уже авторизованного посредством spring-security пользователя можно получить через

String userName = SecurityContextHolder.getContext().getAuthentication().getName();

Tue, 20 Oct 2009 @ 14:48

Настоящие программисты ничего не боятся

не делай так

плохой код

...даже такой каши

Thu, 24 Sep 2009 @ 09:02

Протекание памяти (memleak) в Perl

perl

Для одной системы был написан скриптик на Perl для адаптации XML-потока из одного формата в другой. То есть было много входящих XML-файлов, а на выходе необходимо было получить одну длинную ленту чуть другого формата.

Да, можно было воспользоваться несколькими XSLT-преобразованиями + шелл-обёрткой, но показалось проще реализовать всё одним инструментом.

Скрипт работал, но безбожно ел память. То есть сначала он шёл нормально, но на каждые 20к документов он отъедал порядка 50 метров оперативки. Учитывая, что в продакшене число документов на порядок выше, скрипт надо было лечить.
читать дальше

Страницы: 1 2 3 4 5 6 7 8