вторник, 11 сентября 2007 г.

Opeth


Купил альбом Ghost Reveries (2005). На этом альбоме снова появляется превосходный глубокий гроул и сочные гитарные риффы. Так же слух радует наличие лирических акустических вставок. Воистину мастерское владение каждого участника группы своими инструментами разбавляют и вносят в каждую песню неповторимые и разнообразные ходы. Альбом богат всяческими переходами и измененем звучания практически в каждой композиции. Еще бы! Там 4 композиции из 8 продолжительностью более 10 минут.
Пожалуй, на данный момент это наиболее интересный диск Opeth. Здесь нет легко запоминающихся мелодий и рефренов. Есть профессионализм и мастерство, высочайший уровень техники исполнения и нестандартность музыкального мышления. Супер!

Java Puzzle 40: The Reluctant Constructor

Вот, блин, навернули:
public class Reluctant {
    private Reluctant instance = new Reluctant();
    public Reluctant() throws Exception {
        throw new Exception("I'm not coming out");
    }
    public static void main(String[] args) {
        try {
            Reluctant r = new Reluctant();
            System.out.println("Surprise!");
        } catch (Exception e) {
            System.out.println("I told you so");
        }
    }
}
А StackOverflowError получить не желаете? Дело в том, что поля класса инициализируются перед исполнением содержимого конструктора. Вот так и зацикливаемся...
Обратите внимание, что конструктор должен декларировать все проверяемые исключения, которые могут возникнуть не только в теле конструктора, но и в процессе инициализации полей класса.

Java Puzzle 39: Hello, Goodbye

Что напечатает следующая программа?
try {
    System.out.println("Hello");
    System.exit(0);
} finally {
    System.out.println("Goodbye");
}
System.exit останавливает выполнение текущего потока и всех других в текущей позиции. Даже finally блок не имеет права продолжать работу. Если очень надо, чтобы программа выполняла некоторые действия при завершении работы виртуальной машины - используйте shutdown hooks:
System.out.println("Hello");
Runtime.getRuntime().addShutdownHook(
    new Thread() {
        public void run() {
            System.out.println("Goodbye");
        }
    }
);
System.exit(0);

Хайям о нас

Мир я сравнил бы с шахматной доской:
То день, то ночь. А пешки? – мы с тобой.
Подвигают, притиснут, – и побили,
И в темный ящик сунут на покой.

NetApp vs Sun

В среду компания Network Appliance подала патентный иск против Sun Microsystems. В заявлении, поданном в окружной суд в Техасе, ответчику вменяется нарушение семи патентов Network Appliance, касающихся систем обработки данных и связанного с ними программного обеспечения.
Интересно, а sin(x) запатентован?
Истец требует компенсации нанесенного ущерба и просит, чтобы суд вынес бессрочный судебный запрет, который не позволит Sun распространять запатентованную технологию NetApp в составе существующих и будущих версий систем обработки данных и ПО и продолжать дальнейшие разработки файловой системы ZFS.
О как! Давайте патентами инновации глушить...
В Network Appliance уверяют, что пытались решить конфликт с Sun мирным путем, но та заняла агрессивную позицию и отказалась признать свою вину. Network Appliance ничего не оставалось, как обратиться в суд. В своем иске компания не только предъявляет обвинения Sun, но и требует, чтобы суд признал, что сама NetApp не нарушала трех патентов Sun, и объявил их недействительными.
А сами-то нарушили. Лицемеры!