пятница, 2 ноября 2007 г.

Rammstein - Das Modell

... или Иван Васильевич меняет профессию:

Quazatron

Была на ZX Spectrum одна занятная игрушка. Там нужно было ездить на роботе по трёхмерным уровням, постреливать по другим роботам или брать их на абордаж, во время которого нужно было успеть справиться с некоей вариацией лазерной головоломки за ограниченное время.

И вообще, на этом сайте есть все спектрумовские программы, о которых я вообще что-то слышал. Надо бы попробовать установить эмулятор на Pocket PC. Вот только не знаю, как можно играть стилусом вместо джойстика и клавиатуры...

Новый загранпаспорт

Тут коллега пишет, как надо получать загранпаспорт с минимумом геморроя. Полезная информация. Через пару лет поеду в центральный ОВИР, так как с районными отделениями у меня всегда куча проблем. А в центральном (давным-давно) делал и себе, и бабушке (жительница Эстонии, но гражданка России) без проблем.

Sonata Arctica


Переслушал альбом Reckoning Night (2004). Очень добротный альбом в отличии от следующего...
Первые же аккорды дают понять, что группа не растеряла своей энергетики - настолько "по-сонатовски" быстро открывается этот альбом. Дальше - больше. Композиции звучат мощно и сильно, с неким хэви-металлическим оттенком, но именно они придают этим песням особый шарм. Есть и красивые баллады для романтиков...
Некоторые отрезки звучат настолько необычно для группы, что ее и не узнать. Просто у Sonata Arctica появилось новое звучание. Развивается группа, вот только куда?

Java Puzzle 54: Null and Void

Что произойдет со следующей программой:
public class Null {
    public static void main(String[] args) {
        ((Null) null).hello();
    }
    private static void hello() {
        System.out.println("Hello world!");
    }
}

Сначала можно подумать, что программа сгенерирует NullPointerException. На самом деле выражение используется для вычисления класса, который содержит статический метод, а значение выражения игнорируется.

Но я бы еще больше бы постарался запутать тестируемого:
public class Null {
    public static void main(String[] args) {
        call(null);
    }
    private static void call(Null object) {
        object.hello();
    }
    private static void hello() {
        System.out.println("Hello world!");
    }
}
И совет на будущее. Не используйте ссылки на объекты для вызова статического метода - всегда указывайте имя класса, например:
Integer.toString(10)

Java Puzzle 53: Do Your Thing

Допустим, что есть некоторый библиотечный класс, который нельзя изменить:
public class Thing {
    public Thing(int i) {}
}
Допустим, вам надо отнаследоваться от этого класса следующим образом, чтобы иметь доступным значение, которое передается суперклассу при инициализации:
public class MyThing {
    private final int i;
    public Thing() {
        super(this.i = Generator.getId());
    }
}
Приведенный выше класс не скомпилируется, так как нельзя ссылаться на переменную класса до вызова метода super(). Как можно выкрутиться из этой ситуации, чтобы метод Generator.getId() не вызывался дважды?

Решение использует альтернативный вызов конструктора, описанный в JLS 8.8.7.1:
public class MyThing {
    private final int i;
    public Thing() {
        this(Generator.getId());
    }
    private Thing(int i) {
        super(i);
        this.i = i;
    }
}

Красиво

1 x 8 + 1 = 9
12 x 8 + 2 = 98
123 x 8 + 3 = 987
1234 x 8 + 4 = 9876
12345 x 8 + 5 = 98765
123456 x 8 + 6 = 987654
1234567 x 8 + 7 = 9876543
12345678 x 8 + 8 = 98765432
123456789 x 8 + 9 = 987654321

1 x 9 + 2 = 11
12 x 9 + 3 = 111
123 x 9 + 4 = 1111
1234 x 9 + 5 = 11111
12345 x 9 + 6 = 111111
123456 x 9 + 7 = 1111111
1234567 x 9 + 8 = 11111111
12345678 x 9 + 9 = 111111111
123456789 x 9 + 10= 1111111111

1 x 1 = 1
11 x 11 = 121
111 x 111 = 12321
1111 x 1111 = 1234321
11111 x 11111 = 123454321
111111 x 111111 = 12345654321
1111111 x 1111111 = 1234567654321
11111111 x 11111111 = 123456787654321
111111111 x 111111111 = 12345678987654321

Ваши деньги не доступны

При попытке снятия денег на выходные я обнаружил, что закончился срок действия зарплатной карты. С кредитной снимать наличку - себе дороже, да и ПИН код я не знаю.
Позвонил в Райффейзен банк - мне сказали, что карта перевыпускается автоматически, если на счету достаточно средств. Но сказать, перевыпущена ли карта и в каком отделении ее забирать отказались, мотивируя это тем, что я отказался от предоставления информации по телефону. Я то имел ввиду всякие счета и т.п.
Написал представителю Sun Microsystems в Raiffeisen, чтобы сообщила куда и когда ехать. Очень не хочется потерять пару часов на путешествие по отделениям.