Home

Advertisement

Customize

detence

Jul. 6th, 2009

12:54 am - Wake on LAN и более "зелёные" системы

Понятно, что компьютеры можно выключать удалённо без всяких проблем. А вот включать? Оказывается, это тоже не так уж и сложно. Сейчас попробовал, и за 3 минуты, не вставая с места, настроил Wake On LAN через интернет и включил удалённо свой суперкомпьютер. Вот через этот веб-сайт: http://www.dslreports.com/wakeup
Единственная сложность сейчас в том, что IP-ник DSL-рутера плавающий (причём плавает он на удивление быстро почему-то, за эти 3 минуты поменялся раза 4), но, думаю, это можно решить с помощью какого-нибудь DynDNS.
Теперь я скорее всего так и сделаю - он будет включаться только тогда, когда нужно что-то делать. А в остальное время будет экономить электроэнергию :)

Jul. 5th, 2009

03:36 pm - Froggies

Сегодня с утра мне удалось запечатлеть двух новопревращённых лягушек. Чтобы рассмотреть поближе, кликните на фотографию и выберите All Sizes:
Frogies

Froggies

Jul. 3rd, 2009

10:21 am - Жара

Всё-таки, наверное, человек я северный. Всю неделю здесь была ужасная жара, днём не продохнуть. А вот сейчас, вопреки прогнозам, небо застелило облаками, в воздухе прохлада и так хорошо :) Думаю, поедем сегодня в Reading, а потом на великах обратно вдоль Темзы сколько успеем.

Jul. 2nd, 2009

04:59 pm - Продолжение о тайне исчезновения головастиков

Пару дней назад на поверхности пруда завелись какие-то то ли насекомые, то ли рачки, но они такие мелкие, что не разглядишь. И носятся постоянно с бешенной скоростью. Размером каждый с полмиллиметра, наверное. Кто это мог бы быть?
Между тем, поголовье комариных личинок уменьшается. У меня возникла по этому поводу мысль - раз их становится всё меньше и меньше, значит их кто-то постоянно ест!
Сегодня утром я очень осторожно подошёл к пруду и сел в сторонке. И тут я увидел... По крайней мере пять головастиков были на поверхности. Они дышали. У них уже появились лёгкие и им нужно постоянно всплывать. Я-то думал, что померли все, а они просто научились очень хорошо прятаться! :)
С компьютером получилась сегодня интересная штука. Вчера поставил операционку, настроил удалённый доступ. Сегодня инсталлировал программы для работы с теми самыми картами nVidia Tesla. Запускаю, мне говорят - у вас 2 карты. Но я же знаю, что их 3! Пишу сборщикам. Они говорят - наверное, при перевозке карточка немного вышла из разъёма. Попробуйте всё выключить, вдавить их в материнку как следует и снова включить. Вы будете смеяться, но всё так на самом деле и было. Выключил, вдавил, включил, теперь их 3 :)

Jul. 1st, 2009

01:33 pm - Наш сад

На прошлой неделе я всё-таки сделал несколько снимков из сада. Вот они

Вот это куча кирпичей и песка, которые мы перетащили через весь дом в среду утром:
P1020189

Ива - её обожают все мелкие птицы, потому что там очень удобно прятаться:
P1020188

Гигантские подсолнухи:
P1020187

Разнообразные цветы:
P1020186

Белка в полёте:
P1020185

Мальва (мои любимые цветы в саду). Их также очень любят пчёлы и шмели:
P1020184

Вот так выглядит выращивание помидоров "в мешках". Растут они очень хорошо в таких мешках. Сейчас уже появились маленькие зелёные помидорчики.
P1020183

Картошка в таких мешках растёт тоже очень хорошо. И убирать её потом будет очень просто - она вся будет в мешке! :)
P1020182

Бочка для полива, куда стекает дождевая вода. Если оставить воду в лейке, то туда залезают улитки и блокируют носик. Приходится их потом оттуда палкой выталкивать. Они, конечно, прячутся в домик и с ними ничего страшного не случается :)
P1020181

Тут подрастает морковь. Раньше её накрывала сетка, для защиты от белок и лис. А теперь уже опасный период позади:
P1020180

Фиговое дерево:
P1020179

Контейнер с компостом. Туда идут пищевые отходы, за исключением мяса, рыбы и птицы (это нельзя, потому что будет привлекать крыс, и они прогрызут стенки):
Our compost bin

Горшок с лавандой, где крапивник построил гнездо (но теперь он там больше не живёт, потому что его несколько раз облили водой и теперь там слишком шумно из-за строительства забора):
Lavander where a wren built its nest

Гнездо крапивника:
Wren's nest in the lavander

Водомерка (там же можно видеть камариных личинок на поверхности воды):
Water-strider in my pond

01:06 pm - Персональный суперкомпьютер

Наконец-то вчера он прибыл! После месяца ожиданий. Вот так выглядит эта числодробительная машина (если хочется посмотреть поближе, можно кликнуть и выбрать опцию All Sizes)
Supercomputer Supercomputer P1020197

Jun. 30th, 2009

02:39 pm - Спасибо товарищу D.Knuth

Я опять буду про программирование, потому что это то, чем я теперь большую часть времени занимаюсь.
На прошлой неделе заглянул в книжный магазин за книжкой по GWT и увидел на полке 4-й том Кнута! Он его всё-таки написал и выпустил в марте этого года. В этот раз том не в одной книге, а разбит на "грозди" (fascicle). Каждая гроздь - это одна маленькая книжка. А всего их в четвёртом томе 5, причем нумерация, как водится, с нуля: 0, 1, 2, 3, 4
Я всё это хозяйство покупать не стал, но купил гроздь номер 1, которая называется "Bitwise Tricks and Techniques. Binary Decision Diagrams". Дело в том, что там указан способ эффективного решения тех самых задачек, которые я тут уже публиковал (http://detence.livejournal.com/122237.html и http://detence.livejournal.com/122440.html). Что касается подсчёта количества единичных битов, то он предлагает способ, включающий умножения (я давно подозревал, что в умножении кроется огромный потенциал!). Это было довольно легко встроить, и уже через полдня кусок моей программы, который делал подсчёт битов, ускорился в 5 раз!
С упаковкой посложнее. Во-первых, алгоритм полностью не изложен, поэтому пришлось его додумывать. Потом я задолбался это отлаживать. Наконец-то отладил. Упаковка ускорилась в 2 раза. Я, если честно, ожидал большего, но может надо просто снова на Си переписать :)
В общем, молодец Д.Кнут, долгих ему лет жизни и пусть продолжает писать свой фундаментальный (поистину фундаментальный) труд.

Jun. 26th, 2009

09:19 am - Решение

Это про gotcha из предыдущего поста. Я её вчера всё-таки решил. Нашёл функцию reduceat, на которую раньше смотрел и думал: "Ну кому может понадобиться такое извращение? И вот, понадобилось. Так что респект товарищам, разрабатывающим NumPy". Решение адаптировано для простого примера из предыдущего поста.

import numpy as np
a = np.array([0,1,4,9,16,25,36])
b = np.array([1,1,1,1])
i = np.array([0,0,0,6])

x = np.where(i[1:] != i[:-1])[0]
j = x + 1
s = np.empty(x.shape[0] * 2 + 1,np.int32)
s[0] = 0
s[1::2] = j
s[2::2] = j
di = np.hstack((i[x],i[-1:]))

a_copy = a.copy()
a_copy[i] += b
print 'Incorrect result=',a_copy

a_copy = a.copy()
a_copy[di] += np.add.reduceat(b,s)[::2]
print 'Correct result=',a_copy

После запуска этого кода получается такой результат:
Incorrect result= [ 1  1  4  9 16 25 37]
Correct result= [ 3  1  4  9 16 25 37]

Можно подкручивать a, b, i и смотреть, как это работает, решение должно быть универсальным.
Стремление такого "векторного" дизайна в том, чтобы все циклы по возможности были внутри библиотеки (NumPy). Как только появляется большой Питонский цикл с присваиваниями, производительность падает в тысячи раз :(

Jun. 25th, 2009

05:38 pm - Про Питон

Наконец-то дочитал до конца книгу про Питон. На странице 627 говорится следующее:
If you've gotten this far, you may consider yourself an Official Python Programmer (and should feel free to add Python to your resume the next time you dig it out).

Тем временем, я попытался переписать на Питоне уже имеющийся у меня код на Си (ну и там еще был кусочек на Эрланге). Сначала я был в шоке. Питоновская версия была в 2000 раз медленнее. Меня, конечно, одолело какое-то разочарование... Потом, через пару дней, я подумал о поговорке про кошек. Может я действительно не умею их готовить? В общем, в этот день меня постигло "озарение", я векторизовал все процедуры с помощью библиотеки NumPy (её, кстати, сейчас даже NASA использует вместо MatLab) и всё стало быстрее в 500 раз! Но появились, конечно, штуки под названием Gotchas. Это когда определённая особенность, вроде мелочь, недостойная даже упоминания в документации, оказывается источником труднообнаружимых ошибок. Вот одну из них я еще не поборол.

Gotcha
В замечательной библиотеке NumPy можно векторизировать даже индексирование. Например, если нужно увеличить на единицу чётные элементы массива, то это делается с пол-пинка:

>>> import numpy as np
>>> a = np.array([0,1,4,9,16,25,36])
>>> a
array([ 0,  1,  4,  9, 16, 25, 36])
>>> i = np.array([0,2,4,6])
>>> i
array([0, 2, 4, 6])
>>> a[i] += 1
>>> a
array([ 1,  1,  5,  9, 17, 25, 37])

Это, конечно, не в точности, что я делаю, но суть в том, что я интенсивно пользуюсь таким индексированием (когда индекс является массивом). Gotcha наступает тогда, когда в индексе появляются повторяющиеся элементы:
>>> import numpy as np
>>> a = np.array([0,1,4,9,16,25,36])
>>> a
array([ 0,  1,  4,  9, 16, 25, 36])
>>> i = np.array([0,0,0,6])
>>> i
array([0, 0, 0, 6])
>>> a[i] += 1
>>> a
array([ 1,  1,  4,  9, 16, 25, 37])

Вот я хочу, чтобы он три раза нулевой элемент увеличил! А он не хочет :) Я потратил часа два на раскапывание этого бага, который происходит из этой Gotcha-и.

Но... неоспоримым премуществом подхода с NumPy является то, что векторизированные алгоритмы очень естественно ложатся на супер-компьютерые архитектуры.

11:47 am - Новости сада и пруда

В общем, вчера рано утром привезли кирпичи, цемент и песок для забора. Было 181 больших кирпичей, которые мы таскали через весь дом в сад. В минуту мы перетаскивали в среднем по 2 кирпича. Поэтому где-то за часа 2 справились. В это воскресенье будет первый этап возведения стены, в этом будут принимать участие соседи и мы, соответственно.
Уже второй раз подряд, когда я вечером поливаю растения, из горшка с лавандой стрелой вылетает крапивник. Он, видимо, обустраивается там на ночь, а потом, бедный, попадает под холодный душ. Думаю, раз он любит это место, нужно на этой же стене повесить птичий домик.
Помидоры, картошка и подсолнухи растут просто "дурью".
В пруду несколько дней назад появилась опять свежепревращённая лягушка. Я вчера наблюдал за тем, как она выходит на берег. Никогда не думал, что она сможет так лихо карабкаться по вертикальным гладким поверхностям :) Она еще охотилась на маленьких букашек каких-то. Потом увидела меня, испугалась и прыгнула обратно в пруд. Так хочется, чтобы она выжила.
Еще в пруду завелась откуда-то водомерка. наверное, на тех водорослях, которые я привёз, была кладка. Прочитал в Википедии, что водомерки используют специальные нано-структуры на лапках, чтобы бегать по воде (а никак не жир, которым якобы смазаны их лапки). Уникальные животные, эти водомерки. Кстати, где-то в Азии существуют водомерки, которые живут на поверхности океана!!!
Еще я не знал, что улитки питаются падалью. В пруду несколько дней плавал дохлый червяк. И его всем миром там ели :) Ели комариные личинки, ела водомерка, а потом пришла еще улитка и присосалась к мертвому телу. Тоже, наверняка, поела.
Те улитки, которых я привёз из Crews Hill, научились лазать по трубкам воздушного насоса и теперь используют их как лифт, чтобы подниматься на поверхность и снова спускаться на дно.

Jun. 20th, 2009

10:17 pm - Open-source Windows???!!!

В свежем номере Linux Journal надыбал вот такую ссылочку:
http://www.reactos.org

Тут ребята пишут замену Windows, сохраняя приблизительный внешний вид и архитектуру, а самое главное - бинарную совместимость! То есть всё, что работает под Windows, по идее должно работать под React OS (конечно, пока проект только в Alpha стадии, но судя по скриншотам у них там уже работает Diablo :) )

Если кому-то понравилось, можно даже подкинуть им денежек :)

10:01 pm - А как же малиновки?

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

07:12 pm - Полезные бесполезные программы - отопление

Недавно наткнулся на очень, на мой взгляд смешное предложение в книге. "Эта программа ни для ничего не годится, хотя, её можно использовать для того, чтобы как следует разогреть ваш лэптоп в холодный зимний день". Речь была о программе с бесконечным циклом.
На питоне это делается так:

while 1: pass

На джаве эквивалент можно сделать такой:
public class Heating {
	public static void main(String[] args) {
		while (true);
	}
}

Причём я проверил, и та, и другая программа разогревает лэптоп. Потом я подумал, что если у вас двухпроцессорная машина, для лучшего разогрева нужно создать несколько потоков:
public class Heating {
	public static void main(String[] args) {
		for (int i=0;i<2;i++) {
			(new Thread(new Runnable() {
					public void run() {
						while (true);
					}
			})).start();
		}
	}
}

У меня Intel Core Duo, и программка действительно грузит оба ядра по полной. Хотя значит ли это, что тепла в 2 раза больше выделяется?

На питоне нагрузить оба ядра сложнее. Джава в отоплении действительно рулит :) ...

11:38 am - Don't hold it against me

В среду вечером мы смотрели кино In Bruges. Очень понравилось, правда конец грустный. И вот запомнился эпизод, когда все спрашивают карлика "Are you American?", а он каждый раз отвечает: "Yes, but don't hold it against me".
В четверг после обеда был в гостях у мамы Лоренса, в Кенте, помогал ей разобраться с eBay. Она предложила подвезти меня обратно в Лондон, потому что всё равно ехала со своими подружками куда-то на ужин. Первая подружка - это соседка-француженка. Мы с ней разговорилась, и я рассказал эй эпизод из фильма.
Потом мы заехали за другой дамой, которая была постарше. Когда она села в машину, мама Лоренса меня представила: "This is Alexey, he came all the way from Russia. But don't hold against him". На что дама ответила: "Ok, I will try not to" :)

Вчера у меня был званный ужин. Были Клаудио, Андреа, Иван (он не русский, он из Барселоны), Лоренс и Пеппе. На закуски были оливки, помидоры, моцарелла, тосты с красной икрой. На основное блюдо было вот это: http://www.ocado.com/webshop/recipe/chicken-masala-with-roasted-squash-and-spinach/1924?selectedCategories=1072
Правда, я не стал пользоваться из заранее приготовленным рисом, а делал рис сам, благо специй индийских у меня теперь полная кухня. А на десерт Клаудио испек Ciambella (это его коронное блюдо), и после еды я подавал по рюмочке Limonchello.
В общем, вечер удался :)

Jun. 19th, 2009

10:13 am - Вычислительная мощность мозга

Наткнулся пару дней назад в одной книжке на такое - что, мол, вычислительная мощность человеческого мозга оценивается в 100 пета-FLOPS (100 тысяч триллионов операций с плавающей точкой в секунду).
Вот сейчас домашние компьютеры - это где-то порядка 10-ти гига-FLOPS (10 миллиардов), карточки nVidia Tesla 1060, которые стоят сейчас 1,5 тыс. долларов и подключаются к PCI Express, дают почти 1 терафлоп (триллион операций, с натяжкой, конечно, там нужно спец. программирование).
Фирма IBM построила свой первый петафлопный (тысяча триллионов) компьютер в 2005-м году.
Ожидается, что компьютеры на 100 петафлопов появятся лет через 6, в 2015-м. А к 2025-му году петакомпьютеры (те, которые в миллион раз более производительные, чем современные домашние) будут использоваться повсеместно.
Но это, конечно, совсем не значит, что в 2015 году будет создана рабочая версия Искусственного Интеллекта. Если даже и будет, то она будет скорее всего обладать разумом и способом мышления, совершенно чуждым человеческому мозгу. Очень многообещающими, например, кажутся такие направления, как интеллект роя (Swarm Intelligence), принципы работы которого противоречат интуиции нашего "централизованного" мозга.

Jun. 17th, 2009

11:24 am - Много незнакомых букв

Сейчас наткнулся на твиттер создателя языка программирования Ruby (который я когда-то давно даже начал изучать, году в 2006-м, но потом бросил почему-то): http://twitter.com/yukihiro_matz
Идет много-много на японском, и изредка попадается латиница :)

Jun. 16th, 2009

10:15 am - Кстати - Oliver Twist

Забыл отметить, в субботу ходили смотреть Oliver! - историю про Оливера Твиста. Мне ужас как понравилось!
Теперь я бормочу про себя песенки оттуда. Вот эта, на мой взгляд, самая лучшая и самая приставучая:

http://www.youtube.com/watch?v=ey0D53Dxl3M
(с субтитрами)

09:59 am - Twitter brings innovations in customer support

Я увидел сегодня, что меня добавил (follow) на твиттере персонаж с именем BT Care. И всего лишь потому, что я посоветовал одному из друзей, как избавиться от назойливых звонков от sales representatives.
Я посмотрел, что они там делают: http://twitter.com/BTCare
Мне кажется, что они по всему твиттеру ищут ключевые слова, типа BT, BT phone line, BT Total Broadband, и потом предлагают людям помощь. Идея очень интересная. Я бы назвал это одной формой proactive support, когда ты не просто ждёшь, когда тебе пожалуются, а активно пытаешься определить, есть ли недовольные :)
Но зачем они меня добавили, я не понимаю. Они уже почти 1000 человек добавили, что они теперь за моими записями про лягушек, футбол и про языки программирования будут следить? :)

Это, кстати, еще одна из вещей, которая стала возможной благодаря Twitter Search.

Но, в Твиттере еще сейчас стал появляться спам, конечно. Заводят пользователей, ставят на профильные фотографии "сиськи" и потом публикуют пост с линком на порнуху. И начинают всех подряд "follow". Интересно, наберёт ли этот феномен критическую массу и как с ним будут (если будут) бороться на глобальном уровне

01:37 am - Антивирусы

Я подумал сегодня, что антивирусные программы (особенно платные) под Виндоуз - самые паскудные программы в мире.
Вот, например, Norton Internet Security. Такая, блин, бодяга... После того, как её удаляешь, она ведь оставит в системе свои драйверы и не даст ни одному другому антивирусу нормально работать. Будет настырно резать соединие к update серверу.
Причем просто руками эту заразу убирать нельзя, сеть просто ломается. Надо, оказыватся, скачивать (с сайта же Symantec) спец. программку, Norton Remover, которая подчищает то говно, которое осталось после "удаления" программы. А нельзя это было сделать частью процедуры удаления? Блин...
Теперь вот Kaspersky. Какого чёрта всем этим программам на каждый "пук" нужно перезагружать компьютер? Даже после обновления базы данных вирусов. А потом при перезагрузке говорить, что базы запороты, что надо мол запустить супер-пупер спец. программу для восстановления. А на самом-то деле это просто баг, из-за которого, если одновременно обновлять базу и запускать Scan, базы получаются битыми.
Теперь я понимаю, что и бесплатная Free AVG не смогла нормально обновляться - из-за того самого говна, которое осталось от Norton Internet Security.

Jun. 15th, 2009

02:29 pm - Пруд - Новая версия

В общем, вернулся я из Crews Hill. Купил 4 растения - 2 подводных, одно, которое может и под водой, и у берега расти, и хвощ. И еще пять пучков водорослей, чтобы кислород производили. И еще 3 улитки новые. По дороге не удержался и купил еще птичий домик с очень маленьким входом. Думаю, синица туда протиснется, крапивник - тоже, а вот воробей уже нет. Вечером решим, куда вешать. Надо куда-нибудь в тенёчек на заборный столб, под тень соседского фикуса...
Вот такой теперь пруд (одного из растений не видно, потому что оно полностью под водой):
Pond after visit to Crews Hill

Когда я подошёл фотографировать, то увидел, что за одним из мостиков прячется лягушка. Она сидела наполовину в воде, а когда я её хотел сфотографировать крупным планом, она ушла под мостик, застеснялась. Но меня всё же радует, что она там сама поселилась! :)

Navigate: (Previous 20 Entries)