?

Log in

Dmitry Antonyuk
С помощью zeta function regularization можно найти суммы для 1 + 2 + 3 + … и 1 + 1 + 1 + …
С другой стороны, это суммирование вроде как линейное. Однако, если мы вычтем из первого ряда второй, то получим 0 + 1 + 2 + 3 + …, сумма которого почему-то получается отличной от суммы 1 + 2 + 3 + …

Что я упускаю?
Метки: ,
 
 
Dmitry Antonyuk
01 Декабрь 2012 @ 15:49
Из дискуссии с sassa_nf.

В java локальные переменные метода не собираются сборщиком мусора, пока мы не выйдем из метода (наверх, разумеется, а не глубже). Это важно, потому что Scala'вские Stream из-за этого часто становятся бесполезны.

Вот имеем мы некий Stream, который любят сравнивать с Haskell'евским списком. И начинаем его обрабатывать. А обработка через некоторое время завешается с OutOfMemoryError:
val messages = Stream continually nextMessage
for (message <- messages) doSomething(message)

А теперь перепишем это так:
for (message <- Stream continually nextMessage) doSomething(message)

и обработка у нас будет вестись вечно.

А всё потому, что первый способ генерит astore, который создаёт локальную переменную. А второй — нет.

UPD: sassa_nf всё же заставил java работать правильно. За что ему отдельное спасибо!
 
 
Dmitry Antonyuk
30 Ноябрь 2012 @ 17:48
Я это как-то писал, но напишу ещё раз, бо тема поднялась.

Недостатки явной рекурсии по сравнению с комбинаторами (ага, zip3):

  • Рекурсия непонятна (согласен, это субъективное).
  • Обычно используется с декомпозицией, нарушая инкапусляцию.
  • Всегда используется для работы с элементами, вместо работы с коллекцией (wholemeal programming).
  • Цепочка вызовов проще для оптимизации.
  • Сложнее нежно мною любимый equational reasoning.

Юный хаскеллист, избегай явной рекурсии!

Ну и ссылочка, куда без неё!
 
 
 
Dmitry Antonyuk
21 Декабрь 2011 @ 18:46
Клёвая реализация сабжа от antilamer:
data Tree a = Nil | Branch (Tree a) a (Tree a)

bfs t = [x | Branch _ x _ <- b]
  where
    b = t:[x | Branch l _ r <- b, x <- [l,r]]

Ленивость, все дела.

отсюда.
 
 
 
Dmitry Antonyuk
19 Апрель 2011 @ 09:53
Скажите, пожалуйста, кто что использует для arbitrary precision computations в Haskell? Интересует аналог BigDecimal в java - при делении задаём режим округления, можно использовать для денег. Ну и важно иметь человеческий Read/Show.

Кроме библиотеки Jeremy Shaw есть что-нибудь стоящее? Мне не нравится, что она не на hackage и у неё есть (небольшие) проблемы с делением.
 
 
Dmitry Antonyuk
20 Август 2010 @ 14:39
_darkus_ перевёл "Розеттский камень". Я переводы практически не читаю, и до сих пор очень сильно сомневался в их необходимости. Но вот этот текст прочитал на русском (правда, изредка заглядывая в оригинал), что сэкономило моё время.

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

Спасибо!
Метки: , ,
 
 
Dmitry Antonyuk
10 Июнь 2010 @ 12:37
Ответ на комментарий от thesz http://gaperton.livejournal.com/47460.html?thread=886116#t886116

Краткое введение. Я считаю, что мне xmonad дают значительно больше, чем может предложить макось. Под макосью и xmonad здесь подразумевается также набор программ, соответственно для мака и линукса. thesz предлагает мне сначала ознакомиться с интерфейсом макоси.

Ответ.

Как мне ознакомиться с интерфейсом макоси и сделать это правильно?

Из описанных преимуществ макоси (мы же говорим об интерфейсе?), которые я встречал, дополни плз:

Меню наверху

Обычно (сильно бОльшую часть времени) я вообще не пользуюсь меню. Шоткаты делаю мою работу быстрее.

Меню пользуюсь в незнакомых программах, что случается крайне редко (за последние полгода могу вспомнить только одну новую), или в программах, в которых с шоткатами хреново (в этом случае стараюсь перейти на "правильные" программы).

Вопрос так стоит - стоит ли ставить в преимущество то, что может дать незначительный прирост производительности, да ещё и в очень редких случаях?

Кнопка zoom

У меня xmonad! нет кнопок, нет необходимости менять размер окна так, как это принято в обычных wm. Задача, которую решает кнопка zoom, у меня решается автоматически, либо шоткатами по смене layout-а.

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

Dock

Я пользовался AWN и не понял конкретно в чём польза.

Запускать приложения и открывать их окна одним способом? Приложения, для которых это нужно, делают это сами (пример - firefox). Если нет - всегда можно написать скрипт, но у меня таких проблем не возникало, поэтому такого скрипта нет. Запуск приложений вообще очень редкая задача, гораздо важнее задача работы с ними.

Между окнами же я переключаюсь так, как это принято в xmonad шоткатами - смена воркспейса, если окно не в текущем, смена окна, если окно неактивно.

Искренне не понимаю, зачем нужна эта штука.

Finder + Spotlight / Quicksilver

Работал с beagle + deskbar-applet, с gnome do. Bash + мои скрипты делают то, что мне нужно лучше, специальные программы делают конкретный поиск ещё лучше.

Например, bash ведёт себя как кусок IDE, когда находит нужные мне java-файлы по camel-case маске, mutt + mairix ищет в моих письмах, а в документах можно поискать даже простым fgrep. Для запуска всех подряд программ dmenu + dmenu_path, для запуска конкретных - шоткаты в xbindkeys.

С необходимостью же искать же одновременно и там и там и там я не сталкивался. Когда столкнусь, пойму зачем мне quicksilver.

Но тут я вижу место для повышения удобства. Правда, пока руки не доходят сделать.

Safari

Я использую firefox + vimperator и uzbl. И действительно не понимаю, как заточенная под меня вещь может быть для меня хуже, чем написанная для всех?

Здесь, правда, ещё можно поговорить о скорости, говорят, сафари быстрый, не знаю. Но я пока говорю об интерфейсе.

Безумная красота

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

...

Вообще получается, что удобство макоси очень зависит от наличия мыши, верно? Я использую мышь 99% для веб-серфинга :)

P.S. Я работал на макбуке, но очень немного и совсем не по моему основному профилю, так что рассматривать это как хоть какое-то ознакомление не могу, но названия некоторых программ знаю, и даже их запускал! :)
Метки: ,
 
 
Dmitry Antonyuk
05 Июнь 2010 @ 03:33
Laby  
Мой сын второй день пишет на тикле.

Приятно наблюдать, как написав кусок программы, Стёпка её дебажит, а потом поднаторев, пишет уже достаточно большие куски, иногда полностью всю программу (такое редко). Маленькая модель разработки.