?

Log in

The world's smallest large screen TV

Feb. 17th, 2017

07:15 pm - Рабочее

Все из вас, конечно, каждый день работают с data frames из питоновского пакета pandas. И все знают, что фильтрация по значениям какой-либо колонки, тем более, комбинирование такой фильтрации может быть pain in the back. Поэтому я сегодня написал (не без влияния picture language из SICP) примерно следующее:

# creates a family of filters on values x in column c,
# parameterized by dataframe df
filtr = lambda c: lambda x: lambda df: df[c] == x

# creates a filter f = fs[0] & fs[1] & fs[2] & ... & fs[n]
def fand(*fs):
  if 0 == len(fs):
    return lambda df: pd.Series([True]*df.shape[0])
  else:
    return lambda df: fs[0](df) & fand(*fs[1:])(df)

# creates filter p = ~f
def fnot(f):
  return lambda df: ~f(df)


# apply filter filtr to dataframe df, returning filtered df
def filtrDF(df, filtr):
  return df[filtr(df)]


Применять примерно так:
variant  = filtr('variant')
country  = filtr('country')
gender   = filtr('gender')

# create some filters
onlyA   = variant('A')
GB      = country('GB')
nonGB   = fnot(GB)
malesGB = fand(GB, gender('male'))
# и т.д. ...

x = filtrDF(df, onlyA)
y = filtrDF(df, fand(onlyA, GB))
p = filtrDF(df, fand(variant('B'), gender('female')))
# и т.д.

Feb. 16th, 2017

10:01 am - Прорешиваю SICP

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

Feb. 4th, 2017

12:40 pm - He made Germany great again



с 15ой секунды

Jan. 29th, 2017

09:42 am

За последние пару месяцев два раза пересмотрел три сезона амазоновского сериала «Mozart in the Jungle» — про закулису НЙского симфонического оркестра. Отличная смесь музыки, юмора, отношений и великолепных персонажей (и полного неумения актеров играть игру на инструментах и дирижировать ;)

Сериал снят по мотивам одноименной книги. Книга повествует о профессиональной карьере одной гобоистки и включает в себя рассуждения о развитии классической музыки в США в послевоенное время. К концу 90ых годов главной героине слегка за тридцать и у нее до сих пор не получилось занять постоянное место оркестре, несмотря на опыт частых замещений и вообще активную исполнительскую деятельность. В результате она решает принять хорошо оплачиваемую, но унизительную для классического музыканта работу в одном из бродвейских шоу.

В книге много рефлексии по поводу того, что решение посвятить свою жизнь классической музыке было не самое умное с рациональной точки зрения. Музыкальные школы США выпускают очень много музыкантов — непропорционально много по сравнению с количеством ставок в оркестрах. Плюс ее наблюдение по поводу того, что большинство своих контрактов она получала так или иначе через отношения.

Jan. 19th, 2017

09:36 am - про слух

Вчера пришел к преподавателю фоно, он меня посадил за инстрУмент, сам на кухне готовит чай. Я начинаю играть хорал в соль-мажоре (в этой тональности одна черная клавиша — фа-диез). Дохожу до очередного места, где встречается этот фа-диез и в аккорде из четырех нот играю вместо фа-диез просто фа, причем эта фа не самая высокая или самая низкая нота в аккорде.

Моментально из кухни «фа-диез, фа-диез!». Преподаватель не знал, что я играю, не видел до этого нот, но смог на слух, между делом, услышать среди четырех нот неправильную и, кроме того, определить, в какой тональности вещь.

Jan. 14th, 2017

06:32 pm - Лытдыбр

1) Новая работа

Прошли первые две недели на новой работе. Весь первый месяц — onboarding. Компания сейчас нанимает порядка 200—250 человек в месяц, в два захода — к началу месяца и к середине, у нас очень четкая программа образования новичков. Первые 10 дней были доклады про организацию компании и процессы. Потом все, кто не it и не pool hire ушли в свои отделы, а нам (it и pool hire) раздали по игрушечным проектам и дали две недели на знакомство и выбор команды.

В моем игрушечном проекте есть бекенд на Хаскеле, написанный с использованием Servant'а. Для меня это первое знакомство с type-level программированием.

Инфраструктура деплоймента в компании сейчас для меня — кромешный ад. Я ни черта не знаю ни про AWS, ни про докер.

2) SICP

Начал прорешивать задачки из SICP'а, сейчас в середине второй главы. Код на Схеме вроде начал «сам течь из пера», как говорят немцы - т.е. думаю над самой задаче, а не над тем, как побороть язык.

3) Музыка

Одним из моих новогодних resolution было играть с листа по 10 минут в день. Я для этого выбрал сборник четырехголосых хоралов Баха — они а) состоят из «вертикальной музыки», т.е. многозвучий, с относительно простой ритмической структурой и гармонически очень понятны. Я все еще играют в мегачерепашьем темпе, но некоторые аккорды получается прочитать и сыграть не задумываясь.

Dec. 19th, 2016

02:30 pm

Начал читать Эшер, Гедель, Бах. Впечатления - от нравится до очень нравится.

Из запомнившегося:

1. Вы купили идеальный патефон, который может вопроизвести абсолютно точно любую пластинку с любой записью. Сможет ли он воспроизвести пластинку с записью звуков такой интенсивности, которая механически разрушит патефон?

2. Вам явился джинн и у вас есть одно желание. Вы не лыком шиты и говорите "хочу исполнения бесконечного количества желаний". Джинн такой - "я только по желаниям специалист, мета-желаниями (желаниям о желаниях) занимается мой шеф, мета-джин, сейчас позвоню". Он звонит мета-джину и просит того разрешить ему испольнить одно мета-желание. Мета-джин такой "эээ, дорогой, ты просишь меня разрешить тебе исполнить мета-желание, это уже мета^2-желание, я тут не копенгаген, надо звонить шеуфу". Звонит мета^2-джину... И т.д. и т.п.

Dec. 17th, 2016

08:07 pm - За полицию можно иногда гордиться

Один чувак в метро толкнул ногой в спину женщину — просто так. Она пролетела несколько ступенек и сломала руку.



По этому видео его идентифицировали как Светослава С. из Болгарии. Вначале нашли его брата, который вроде как тоже был на видео, брата допросили и отпустили (!!!). Сам Светослав сперва вроде как уехал обратно на родину, но сегодня его приняли прямо в междугородном автобусе, прибывшим на берлинский автовокзал.

Dec. 16th, 2016

07:58 pm

Сирийские женщины подогнали календарь своим защитникам из России.

Dec. 15th, 2016

01:04 pm - Частный случай оказания медпомощи в Германии и материализм Канта.

Я тут себе слегка порвал барабанную перепонку. Но пост не об этом ;)

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

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

Что меня удивило как советского человека - у меня не спросили ни служебного удостоверения, ни карточку медстраховки, ни id.

Dec. 12th, 2016

01:30 pm

Немецкое новостное агентство сообщает с ссылкой на ЦРУ: В 1933ем году Путин помог Гитлеру выиграть выборы.

Dec. 11th, 2016

05:52 pm - Spotlight

Посмотрел вчера Spotlight. Очень корректно снятое кино про журналисткое расследование о педофилах-священниках в Бостоне. Корректно в том смысле, что фокус на жертвах преступлений, а не на преступниках, на том, как журналисты находили факты, а не на том, как церковь увиливала от обвинений. Из всех 87ми разоблаченных попов показали всего одного и того, похоже, не совсем в своем уме.

Tags:

Dec. 8th, 2016

09:28 pm - The Little Schemer

Я дочитал The Little Schemer до конца, добросовестно пытаясь отвечать на вопросы и решать задачи. Впечатление такое: первые восемь глав устроены суперотлично и дали мне много озарений и левелапов. Главное озарение — что Лисп оперирует, конечно, не списками в строгом смысле, а деревьями

data SExpr a = SAtom a | SList [SExpr a]

и писать на нем алгоритмы на таких деревьях очень естественно.

Девятая глава (вывод Ы-комбинатора) и десятая (уравнения Максвелла информатики — интерпретатор Лиспа в Лиспе) мне дались значительно тяжелее и показались написанными наспех и более бессистемно. Авторы идут по тернистой тропинке к цели, известной лишь им одним и понять по ходу дела, что происходит, не зная конечной цели, очень сложно. Плюс много design decisions, которые не объяснены или с минимумом объяснений (например, представление функций в интерпретаторе).

Почему я решил прочитать эту книгу: я замахнулся на написание интерпретатора простенького Лиспа на Скале с целью разобраться с самой Скалой (идея украдена у Питера Норвига, который с целью разобраться с Явой в 97ом году написал на ней JScheme — интерпретатор довольно-таки большого подмножества Лиспа — потратив на это всего лишь 20 часов).

Итого: книга понравилась, оценка 4/5 — по проценту глав, которые мне показались дидактически интересными.

Dec. 5th, 2016

05:58 pm - Программизм

Прорешал The Little Schemer до предпоследней, девятой, главы, в которой у меня случился подвывих мозга, как раз на Y-комбинаторе. Прохожу сейчас ее по второму разу, стараясь писать код, не подсматривая в решение.

В тему: Programming by poking by G Sussman.

Nov. 18th, 2016

05:48 pm - Человек

Посмотрел интервью Цви Хейфеца (посла Израиля в РФ) у Познера. Марсель Пруст его спрашивает: каким бы талантом вы хотели бы обладать? Посол отвечает — хотел бы уметь играть на каком-нибудь музыкальном инструменте. Нахожу такой ответ очень симпатичным.

08:08 am

Let's make Germany great again!

Nov. 11th, 2016

11:12 am - Случай сегодня ночью

Сегодня ночевал у подруги. У нее квартира находится на третьем этаже пятиэтажки.

Где-то около часу ночи она меня будит - в подъезде к кому-то ломятся в квартиру! Из подъезда слышны типичные звуки выбивания двери и разбивающегося стекла. Подруга звонит в полицию, там этот адрес уже известен. Где-то через минуту-две приезжает наряд, человек семь в бронежелетах, плюс пара в гражданском (криминалисты?). Сверху спускают молодого парня, лет 16-17 максимум, в наручниках, он кричит "у вас против меня ничего нет, вы меня сейчас же отпустите". Полицейский заходит к нам взять показания, что мы слышали и когда. Рассказывает нам, что парень не совсем в себе, вооружен и действовал "по заданию спецслужб", пытаясь выбить люк для выхода на крышу.

Nov. 9th, 2016

09:22 am - Ухожу из большого бодибилдинга

В конце декабря у меня заканчивается контракт с университетом и я начинаю работать в одном большом местном онлайн-ретейлере как Data Scientist.

Nov. 7th, 2016

09:59 am

Вчера ходили на "Трехгрошовую оперу", в театр, из которого она родом, на 274-ое предствление (сегодня 275-ое).

"Цыпленок жареный, цыпленок пареный", похоже, из нее: дослушайте до припева



Ну и конечно самый главный хит



Nov. 4th, 2016

03:26 pm - Этот ваш Гелловин

В Берлине в хеловинскую ночь выпавший из окна и тяжело травмированный девятилентий ребенок насобирал три с половиной килограма сладостей прежде чем ему вызвали скорую.

http://www.der-postillon.com/2012/11/halloween-horror-schwer-verletzter.html

Oct. 25th, 2016

05:32 pm

Перевел норвиговский судоку солвер на Хаскель, вот мой код. Буду рад комментариям специалистов.

Tags:

Oct. 1st, 2016

12:46 pm

В новой песне Робби Вильямс тоже про лабутены поет.

Sep. 29th, 2016

04:39 pm - Еще про автошколу и мотоцикл

Немецкие реалии, таймлайн примерно такой:

где-то в начале мая, что ли, мне пришло в голову копье и я решил получить права на мотоцикл. Записался в автошколу, сходил в горком сдать заявление и к оптику проверить зрение (обычный магазин очков/линз, с сертифицированным аппаратом для контроля зрения). Справка о прохождении курса первой помощи у меня уже была.

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

Купил шлем, куртку, штаны, боты и перчатки.

Первые четыре или пять занятий на площадке. Девять стандартных упражнений
- три разных по скорости и расстоянию между кеглями слалома,
- экстренное торможение,
- езда по кругу,
- езда с шаговой скоростью,
- стоп'н'гоу,
- два маневра на уклонение от столкновения - без предварительного торможения на скорости 50 км/ч и с предварительным торможением с 50 до 30 км/ч. Вначале (и в конце тоже, но меньше) было очень трудно точно контролировать газ, особенно на слаломе, когда надо постоянно крутить рулем туда-сюда на относительно низких оборотах. На первых занятиях при повороте налево, когда правая рука автоматически распрямляется, автоматически накручивал газ, пару раз были полу-критические моменты ;)

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

После этого наступила эра "обязательных часов". По местным правилам, надо откатать "всего лишь" 4 часа на автобане, 6 часов за городом и 4 часа ночью. В теории, чтобы допуститься до экзамена, обязательно нужно откатать только их, но понятно, что на автобан тебя не выпустят, пока не сможешь нормально водить. Обязательные часы растянулись у меня на три занятия - загород/автобан в общей сложности 4 часа, потом ночь 4 часа и еще раз загород/автобан 6 часов.

После обязательных часов за городом и на автобане приходят первые клочки понимания, на что в принципе способен мотоцикл. Эти три занятия прокачали мой скилл намного больше, чем больше десятка занятих до них. Площадка стала намного легче, ездить в городе намного легче - только из-за того, что появился опыт езды на скоростях в три раза быстрее и происходящее в городе и на площадке стало казаться гораздо медленнее и спокойней.

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

Экзамен длился у меня час и десять минут. Первые 15 минут на площадке, шесть упражнений на выбор экзаменатора. Одно упражнение (медленный слалом) я с первой попытки сделал с ошибкой, но можно было откатать еще раз. Потом в город и за город, экзаменатор едет с инструктором сзади. На автобан не выезжали. В городе ездили и по большим улицам и по одноэтажным переулкам с ограничением скорости.

На экзамене у меня было несколько ошибок - 1) проехал указатель, не расслышав точно название района, на который надо было свернуть 2) один заглох на светофоре, забыв, что у меня включена вторая передача и 3) пару раз забыл мигнуть поворотником. Когда вернулись обратно к офису проверяющей организации (это тут, кстати, не ГАИ, а отдельная компания, которая проверяет все и вся, от грилей до АЭС), первыми моими словами экзаменатору были "я не знаю, что думаете вы, но я точно знаю, что думает он", кивнув на инструктора. Экзаменатор списал мои ошибки на волнение и сказал, что я водил достаточно уверенно и права он мне дает без особых натяжек.

Сколько денег потратил:
- на заявление в горкоме плюс проверка зрения: около 60 евро
- шмотки: 1200 евро
- плата за экзамен: порядка 200 евро
- автошкола всего: 3100 евро.

Tags:

Sep. 27th, 2016

11:27 am

Сегодня сдал на права, ура!

Tags:

Sep. 25th, 2016

09:14 pm

Написал такую игрушечную имплементацию алгоритма Нидлмана-Вунша

import Data.Array

data Alignment = Match | GapA | GapB deriving (Show, Eq, Ord)

similarity a b
  | a == b    = 1
  | otherwise = 0

gap = -1

nw x' y' = let b = bt lx ly in (reverse $ fst b, reverse $ snd b) where
  (lx, ly) = (length x', length y')
  ( x,  y) = (listArray (1, lx) x', listArray (1, ly) y')
  a = listArray bounds [f i j | (i, j) <- range bounds]
  bounds = ((0, 0), (lx, ly)) 
  f 0 j = (-j, GapA)
  f i 0 = (-i, GapB)
  f i j = maximum [ (fst (a ! (i-1, j-1)) + similarity (x!i) (y!j), Match)
                  , (fst (a ! (i-1, j-0)) + gap, GapB)
                  , (fst (a ! (i-0, j-1)) + gap, GapA) ]
  bt 0 0 = ("", "") -- backtracking 
  bt i j = case a ! (i, j) of
    (_, Match) -> let (px, py) = bt (i-1) (j-1) in ((x!i):px, (y!j):py)
    (_, GapA)  -> let (px, py) = bt (i-0) (j-1) in (  '-':px, (y!j):py)
    (_, GapB)  -> let (px, py) = bt (i-1) (j-0) in ((x!i):px,   '-':py)


Навеяно http://jelv.is/blog/Lazy-Dynamic-Programming/

Что оно не умеет из принципиального — возвращать все выравнивания с максимальной оценкой и различать gap opening penalty и gap extension penalty.

Еще из warts - текущий счет и путь в таблице хранятся в виде пары (счет — первый элемент) и для нахождения максимального счета из трех я просто сравниваю пары, для этого Alignment сделан Ord.

Tags:

Sep. 24th, 2016

03:14 pm - Культура

В среду ходил на вот это ... хм, классическое кабаре, что ли



Играют и серьезную музыку и развлекательную. На фоно играла выпускница консерватории моего родного города.

Sep. 18th, 2016

12:50 pm

У нас тут тоже сегодня выбора, даже в двойном количестве — в городскую думу и в районную. Мои первые местные выборы. Сходил, сволеизъявил.

Sep. 13th, 2016

07:46 am - работа

Сижу на летней школе по биоинформатике. Первое впечатление — до хакеров чуваки не дотягивают, совершенно нет инсайдерского юмора.

Sep. 10th, 2016

02:05 am - Задача

К одной стороне круглой столешницы перпендикулярно ее плоскости прикручиваются три одинаковые ножки в случайных местах. С какой вероятностью полученный стол будет стоять?

Sep. 8th, 2016

07:05 pm



Меня это выступление совершенно поразило.

Интересно, это фанера или она действительно может сочетать такую хореографию и пение ртом?

Navigate: (Previous 30 Entries)