Если надо расслабиться и отключить все мозги, кроме спинного - самое оно.
понедельник, 17 декабря 2007 г.
Luminara
Это простая игра-крошилово...

Если надо расслабиться и отключить все мозги, кроме спинного - самое оно.
Если надо расслабиться и отключить все мозги, кроме спинного - самое оно.
пятница, 14 декабря 2007 г.
С Новым Годом!
Сегодня вечером у нас корпоративная пьянка по поводу...
Если не протрезвею, то до встречи в новом году!
Если не протрезвею, то до встречи в новом году!
Стихи
Когда Мишку одеваем на улицу и надо завязать шапочку под подбородком, мы его обычно спрашиваем: что у нас на потолке? Мишка уже привык отвечать: мухи! Хотя мухи были только летом на даче...
Вот я на днях ему стишок сочинил:
- Мухи, мухи, где вы там?
- Мы сидели по домам!
- Почему вы не летали?
- Потому что нас не звали...
Юля говорит, что Агния Барто отдыхает... ;)
Вот я на днях ему стишок сочинил:
- Мухи, мухи, где вы там?
- Мы сидели по домам!
- Почему вы не летали?
- Потому что нас не звали...
Юля говорит, что Агния Барто отдыхает... ;)
четверг, 13 декабря 2007 г.
Чайник "Витёк"
Купили себе в МедиаМаркт новый чайник Aquamarine. Уж больно дизайн понравился. И еще есть функция поддержки температуры, которая в принципе, нафиг не нужна...

Показывал Мишке как вода кипит. Заинтересовался.
Показывал Мишке как вода кипит. Заинтересовался.
Воспитание детей
Юля читает соответствующую книжку. Ну а там разные советы:
- Попросите ребенка достать головкой плеча...
- Пусть потрогает ушком стул...
Чувствую, что мысли у меня не в ту сторону думают ;)
- Попросите ребенка достать головкой плеча...
- Пусть потрогает ушком стул...
Чувствую, что мысли у меня не в ту сторону думают ;)
среда, 12 декабря 2007 г.
Гироскоп в руке
У нас в Сане сейчас бум на кистевые тренажеры PowerBall. В нашей комнате валяется такая модель (со счетчиком). Я долго был рекордсменом (11604 об/мин), но Леонид побил мой рекорд буквально 5 минут назад (11880 об/мин). Надо дальше тренироваться...
Хороший подарок на Новый Год. Мне, например, такая модель нравится.
Хороший подарок на Новый Год. Мне, например, такая модель нравится.
Одноклассники
Пили пиво со школьными друзьями: Сергей Шумский, Алексей Матц и Алексей Разницын. Не виделись лет 15!
Хорошо посидели. Выпили весь Guinness в кабаке Медведь. Много о чем поболтали. Собираемся собрать побольше народу на февральский слет выпускников, так как, говорят, что наша классный руководитель последний год работает. Надо бы успеть повидаться. Интересно, что некоторые не поменялись совсем, а других никак не узнать.
Хорошо посидели. Выпили весь Guinness в кабаке Медведь. Много о чем поболтали. Собираемся собрать побольше народу на февральский слет выпускников, так как, говорят, что наша классный руководитель последний год работает. Надо бы успеть повидаться. Интересно, что некоторые не поменялись совсем, а других никак не узнать.
День выборов
Выборы! Выборы! Кандидаты - ...
Второго декабря я был в Таллинне. Известная проблема, что половина населения Эстонии - русские, половина из которых - граждане России. Голосовать я в Таллинне не мог, так как зарегистрирован в подмосковье. Но очереди видел.
Первая очередь от консульства России на улице Лай доходила до олененка, поворачивала в сторону улицы Пикк, по которой уходила в даль. Вторая - от гостиницы SAS, что за Домом Торговли, мимо здания парковки уходила в даль по улице Рявала. Концов этих очередей я не видел - было не по пути. Народ, в основном, пожилой. Молодых напрягает стоять в очередях по несколько часов.
Второго декабря я был в Таллинне. Известная проблема, что половина населения Эстонии - русские, половина из которых - граждане России. Голосовать я в Таллинне не мог, так как зарегистрирован в подмосковье. Но очереди видел.
Первая очередь от консульства России на улице Лай доходила до олененка, поворачивала в сторону улицы Пикк, по которой уходила в даль. Вторая - от гостиницы SAS, что за Домом Торговли, мимо здания парковки уходила в даль по улице Рявала. Концов этих очередей я не видел - было не по пути. Народ, в основном, пожилой. Молодых напрягает стоять в очередях по несколько часов.
Java Puzzle 66: A Private Matter
Что напечатает следующая программа?
class Base {
public String name = "Base";
}
class Derived extends Base {
private String name = "Derived";
}
public class PrivateMatter {
public static void main(String[] args) {
System.out.println(new Derived().name);
}
}
Программа не скомпилируется. Дело в том, что поля класса не могут переопределять поля суперкласса как, например, методы. В данном случае класс Derived скрывает поле name класса Base (JLS 8.3). Это корректно, но нерекомендуется, так как противоречит принципу Лискова: если что-то можно делать с базовым классом, то то же самое должно быть возможно делать с его потомком. Чтобы решить проблему с доступом к полю name класса base надо переписать код так:
public class PrivateMatter {
public static void main(String[] args) {
System.out.println(((Base) new Derived()).name);
}
}
class Base {
public String name = "Base";
}
class Derived extends Base {
private String name = "Derived";
}
public class PrivateMatter {
public static void main(String[] args) {
System.out.println(new Derived().name);
}
}
Программа не скомпилируется. Дело в том, что поля класса не могут переопределять поля суперкласса как, например, методы. В данном случае класс Derived скрывает поле name класса Base (JLS 8.3). Это корректно, но нерекомендуется, так как противоречит принципу Лискова: если что-то можно делать с базовым классом, то то же самое должно быть возможно делать с его потомком. Чтобы решить проблему с доступом к полю name класса base надо переписать код так:
public class PrivateMatter {
public static void main(String[] args) {
System.out.println(((Base) new Derived()).name);
}
}
Java Puzzle 65: A Strange Sage of a Suspicious Sort
Всю программу приводить не буду. Приведу пример неправильной реализации компаратора, из-за которого вся программа сортировки работает неправильно.
class IntegerComparator implements Comparator {
public int compare(Integer i1, Integer i2) {
return i2 - i1;
}
}
Идиома, лежащая в основе этой имплементации, известна с ранних дней UNIX (1970). Поэтому многие уже не помнят, а остальные не знают, решение этой проблемы. Помните, что компьютерная математика отличается от обычной. И при вычитании большого положительного числа из большого отрицательного числа можно получить положительное, а не отрицательное. Это называется - переполнение разрядной сетки...
Вот правильная имплементация:
class IntegerComparator implements Comparator {
public int compare(Integer i1, Integer i2) {
if (i1 > i2) return -1;
if (i1 < i2) return 1;
return 0;
}
}
После анализа кода становится ясно, что этот компаратор предназначен для сортировки в обратном порядке. Так что не надо городить своих классов. Используйте компаратор, входящий в состав библиотеки коллекций:
Collections.reverseOrder()
class IntegerComparator implements Comparator
public int compare(Integer i1, Integer i2) {
return i2 - i1;
}
}
Идиома, лежащая в основе этой имплементации, известна с ранних дней UNIX (1970). Поэтому многие уже не помнят, а остальные не знают, решение этой проблемы. Помните, что компьютерная математика отличается от обычной. И при вычитании большого положительного числа из большого отрицательного числа можно получить положительное, а не отрицательное. Это называется - переполнение разрядной сетки...
Вот правильная имплементация:
class IntegerComparator implements Comparator
public int compare(Integer i1, Integer i2) {
if (i1 > i2) return -1;
if (i1 < i2) return 1;
return 0;
}
}
После анализа кода становится ясно, что этот компаратор предназначен для сортировки в обратном порядке. Так что не надо городить своих классов. Используйте компаратор, входящий в состав библиотеки коллекций:
Collections.reverseOrder()
четверг, 29 ноября 2007 г.
Тяжело быть безработным
Вот такие новости: Вчера в Юго-западном округе столицы у 38-летней москвички, которая все еще не может найти работу, угнали автомобиль Porsche Cayenne. По словам женщины, в период со 2 по 8 ноября она отсутствовала дома и когда пришла в свой гараж на улице Дмитрия Ульянова, то обнаружила пропажу дорогостоящей иномарки, которая, кстати, была оснащена спутниковой сигнализацией.
суббота, 24 ноября 2007 г.
Tarja Turunen
Не дождавшись похода в магазин загрузил послушать свеженький альбом Тарьи My Winter Storm (2007). Да, блин, это вам не Nightwish. Голос у Тарьи, конечно, шикарный, но вот музыка на альбоме... Странная какая-то музыка. Медленная и печальная. А вот то как она перепела Poison Элиса Купера мне совсем не понравилось.
Короче, музыка под настроение. Слушать долгими зимними вечерами, в одиночестве уставившись в потолок...
Тест: москвич или петербуржец?
Судя по этому тесту мы с Юлей из Питера. Ну я то - понятно, а она от меня, видимо, словечек нахваталась ;)
| Может, вы и живете в другом городе, но у вас язык истинного петербуржца |
| И пусть они там смеются над "курой-гриль" и хрестоматийным "поребриком" — вы выше этого. Вы навсегда — житель культурной столицы, даже если сейчас вы далеко от дома. |
| Пройти тест |
пятница, 23 ноября 2007 г.
Java Puzzle 64: The Mod Squad
Следующая программа генерирует гистограмму чисел по модулю 3. Что она напечатает?
int[] histogram = new int[3];
int value = Integer.MIN_VALUE;
do {
int index = Math.abs(value) % 3;
histogram[index]++;
} while (value++ != Integer.MAX_VALUE);
for (int i = 0; i < 3; i++) {
System.out.println(histogram[i]);
}
Считай - не считай... Но эта программа сгенерирует исключение ArrayIndexOutOfBoundsException: -2
Проблема в том, что метод Math.abs возвращает неотрицательное число всегда, кроме одного случая когда аргумент равен Integer.MIN_VALUE. В этом случае результат тоже равен Integer.MIN_VALUE. А при получении остатка от деления отрицательного числа получается отрицательный остаток. А ведь мы используем его в качестве индекса массива...
int[] histogram = new int[3];
int value = Integer.MIN_VALUE;
do {
int index = Math.abs(value) % 3;
histogram[index]++;
} while (value++ != Integer.MAX_VALUE);
for (int i = 0; i < 3; i++) {
System.out.println(histogram[i]);
}
Считай - не считай... Но эта программа сгенерирует исключение ArrayIndexOutOfBoundsException: -2
Проблема в том, что метод Math.abs возвращает неотрицательное число всегда, кроме одного случая когда аргумент равен Integer.MIN_VALUE. В этом случае результат тоже равен Integer.MIN_VALUE. А при получении остатка от деления отрицательного числа получается отрицательный остаток. А ведь мы используем его в качестве индекса массива...
Java Puzzle 63: More of the Same
В этой задаче приводится программа, аналогичная предыдущей, но вместо IdentityHashMap используется HashMap:
public class MoreNames {
private Map map = new HashMap();
public void MoreNames() {
this.map.put("Mickey","Mouse");
this.map.put("Mickey","Mantle");
}
public int size() {
this.map.size();
}
public static void main(String[] args) {
MoreNames map = new MoreNames();
System.out.println(map.size());
}
}
Ну почему он возвращает 0? А потому, что первый метод не является конструктором. Случайно добавив возвращаемый тип к декларации конструктора можно долго искать эту ошибку. Аккуратнее! ;)
public class MoreNames {
private Map map = new HashMap();
public void MoreNames() {
this.map.put("Mickey","Mouse");
this.map.put("Mickey","Mantle");
}
public int size() {
this.map.size();
}
public static void main(String[] args) {
MoreNames map = new MoreNames();
System.out.println(map.size());
}
}
Ну почему он возвращает 0? А потому, что первый метод не является конструктором. Случайно добавив возвращаемый тип к декларации конструктора можно долго искать эту ошибку. Аккуратнее! ;)
четверг, 22 ноября 2007 г.
Клуб 2м
В одном из магазинчиков нам выдали рекламку "Клуб 2м". Добрались мы до торгового центра Neo на Ладожской. Гуляем, ищем его...
Тут видим - висят джинсы длиной с меня. Вот оно! Этот магазин, в отличии от Богатыря, Больших размеров и т.п., создан не для жырных, а для высоких. Купил куртку с нормальными рукавами! Также купил футболку с длинными рукавами:

Кроме того, в честь открытия подарили еще одну футболку.
Тут видим - висят джинсы длиной с меня. Вот оно! Этот магазин, в отличии от Богатыря, Больших размеров и т.п., создан не для жырных, а для высоких. Купил куртку с нормальными рукавами! Также купил футболку с длинными рукавами:
Кроме того, в честь открытия подарили еще одну футболку.
Подписаться на:
Сообщения (Atom)