вторник, 24 июля 2012 г.

Ни о чем

peril - опасность, риск. Как-то относится к русскому "перила".

баян, про jeopardy - опасность. Русский леопард? :)

sober - трезвый.
somber - мрачный, унылый.

noose - петля, узы супружества, ловушка, казнь через повешение, аркан.
Хорошую вещь так не назовут.

tumble - падать, tumbler - выключатель, акробат.

fencing - фехтование, fence (fencing) - забор.

Kill two birds with one stone - ну не стреляют они в зайцев...

patent - очевидный.

среда, 11 июля 2012 г.

В последнюю осень

Прощальным костром догорает эпоха.
И мы наблюдаем за тенью и светом,
В последнюю осень...
(С) Юра, музыкант.

Попытался выдрать эпиграф из "Весны" того же автора, не нашлось подходящего.

Хотя я опять немного о педофилии студентах. Не о графах, я даже весной рассказывал что-то, что в расписании называется "Анализ информационных технологий". Первое слово, как я уже говорил (я уже говорил, что я никогда не повторяюсь?) мне сильно не нравится. Подозреваю, что в каких-то больших Вузах есть строгие учебные планы, шаг влево рассматривается как попытка подрыва государственного строя и карается УК РФ, статья 282 пункт 2. 


Здесь же несколько проще - обычно, что хочешь. Есть даже какие-то чудаки, которые тупо по бумажке сканы читают. Я захотел что-то поближе к тестированию и верификации. Рассказывать про "информационные технологии", которые наверняка сдохнут через 2 года, просто бессмысленно. Это было магам первого курса, то есть если бы не Болонь, то они эквивалентны 5-ти курсникам. Причем я с ними пересекался 2 года назад с большой частью и могу сказать что они адекватные. 


Пару/тройка лекций ушло на воду, зачем это все нужно, методологии разработки, динамическое тестирование/TDD/элементы ООП. Человечно, на 80% из воды.


Далее 3-4, на статическую верификацию. Тут уже с элементами математики. Флойд с Хоаром, непонятно для кого тривиальные задания на верификацию. По крайне мере есть как минимум один человек, у кого оно в голове осталось.


Еще около трех лекций я, как Валдис Пельш, рассказывал про model checking. Тут тоже с какими-то элементами математики, что-то о темпоральных логиках, как оно внутри доказывается, больше на автоматах. Тут я для себя много нового узнал. 


А на практике мы рисовали игрушки. Хотелось показать что такое ООП. Делали довольно абстрактную игру для двух игроков (человек-машина) с полной информацией. За этой фразой скрыто крестиники-нолики-20х20 (5 в ряд), реверси, и подобное. Полноценный минимакс на произвольную глубину. Вынесли еще с пяток абстрактных сущностей (оценка позиции, генераторы ходов). То есть перейти от крестиков-нуликов к реверси - подменить вот эти пяток сущностей, делается за пару часов.


С технологий делали на .net, немного unit-тестов и прочих мелких плюшек.


Результатом практики я даже доволен, обыграть машину в реверси оказалось нереально для человека. С крестиками я немного увел студентов в не совсем правильную функцию оценки позиции. Оно не совсем адекватно иногда ходит, но там один класс заменить и будет тоже на уровне человека рубить. Уверен. 


Реверси успевает считать на 6 полуходов, крестики - на 2-3. Там бы еще минимакс распараллелить, да и альфа-бета сделать, вообще у меня тогда шансов не будет, как человека.


Я первоначально даже хотел свою версию написать, тут для меня работы на вечер. Но как-то заломало, я даже начал писать. Но минут через 15 понял, что студентов то я побью, а конкуренции им не сделаю (и они мне). И себя не прокачаю. Забил, скучно когда не в первой. 


Жалко, что последующие потоки студентов напоминают потоки шлака. И меня там не будет. В последнюю осень...

понедельник, 2 июля 2012 г.

Пару слов о valgrind

Все круто.

valgrind что-то ругался, писал про кусок кода, где сортировка с компаратором, что тут типа неопределенный jmp в неинициализированной памяти. Подумал, что у них там в stl что-то криво, вот и ругается. У меня ведь тесты идут.

Проверяю на linux (не все же под маком тестить). И оба-на, тест зависает. Полчаса копал, оказалось неспроста valgrind ругается. И в самом деле после new int[] стоит как-то туда записать. для определенности.

Только valgrind промахнулся со строчкой кода. Темплейты таки нагенерили такого, что он немного промахнулся.

Там все говорят о бинарной трансляции, что для меня это всего лишь словосочетание из двух слов. По смыслу это своя ВМ и они могут мониторить всю память и подменить/обернуть все низкоуровневые вызовы и доступы к памяти. Типа, за счет этого все круто.

[update 02.07.2012] Почесав голову... Да и ругался он поди правильно. Он же по нативному коду смотрит. Там не совсем stl, там это называется "перегруженный оператор () с двумя int-ами". А как эта штука внутри компилируется одному gcc известно.

Еще вопрос, почему под маком это все работало? Версия про то, что компилятор как бы при выделении памяти принудительно пишет 0  не пройдет, иначе бы valgring не ругался бы. То есть он выделяет память из уже 0. Странно как-то, везение? Скорее неуд, на неделю раньше бы наступил.

воскресенье, 1 июля 2012 г.

Недояблочник

Некоторые ощущения после второго устройства, так как месяц назад у меня появился Ipad.

Некоторые мне говорили, что ранее за мной такого не замечали. Переспрашиваю, "чего такого?" Говорят, что типа "яблочник" или "фанат". Возникает такое ощущение, что обозвали пидорасом чем-то плохим.

Никакого фанатизма и приверженности нет. В данный момент на доступном рынке лично мне это показалось наиболее адекватным.

Air - он легкий. Это очень удобно, когда мне надо было целый день (4 часа) в Москве стоять ногами в польское посольство со всеми вещами, а потом после того как меня послали, идти в ближайший ресторан (думал кафе, а ведь нет) и решать проблемы по wifi. При это у меня был всего лишь заплечный рюкзак, с ноутом и планшетом, плюс стандартный набор из тапочек/шорт/зубной пасты. С точки зрения массы можно взять всякие недобуки, но Air даже можно сказать что мощный. Все также сидишь в консоле, g++/Makefile, занимаешься неприлично чем с линкером, иногда даже среду для python запускал. В остальном ноутбук как ноутбук.

Ipad 3 крут своим экраном. Когда я брал год назад штуку на Android-е, она была не хуже второго (по пикселям даже лучше). Сейчас 2048х1536 делает всех. Такие мелочи, что видеоплеер сохраняет местоположение просмотра просто радуют. В остальном планшет как планшет.

Телефон той же фирмы мне точно не нужен. Два/три каких-то звонка в неделю, 100 рублей на полгода хватает, только в поездках бюджет растет. Будильник/календарик/навигация/детектор_металла/компас/джедайский_меч есть в любом уже устаревшем телефоне. В чем фишка iphone-ов я так и не понял. Телефон как телефон, в остальном.