?

Log in

yuridichesky [entries|archive|friends|userinfo]
Юрий Арапов

[ website | My Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

яндекс-деньги хочет мой паспорт [May. 16th, 2014|06:41 pm]
Юрий Арапов
Яндекс не только всё находит, но и всё понимает. И мы тоже всё понимаем.



Молодость вернулась, как в армии прямо: нас е&@т, а мы крепчаем! (А ещё оптимисты в армии говорили, что "дембель неизбежен, как крах империализма".)
Link1 comment|Leave a comment

memory management war is not over [Apr. 21st, 2012|10:46 pm]
Юрий Арапов
Как-то в прошлом году ходил на Java-Day в Воронеже, который держал DataArt. Со знакомыми повидаться, на секту эту джавскую изнутри посмотреть (шутка) :-)

Послушал там доклад об устройстве GC в джаве, young generation, old generation, etc. Докладчик говорил, что GC написан исходя из гипотезы, что "достаточно много объектов не ссылаются на будущие поколения" (ну или что-то типа того, смысл в целом был в том, что хватает immutable объектов).

И вот теперь столкнулся с JVM лично, и столкновение меня сильно озадачило. В Clojure все immutable, что как-бы намекает, что GC должно быть хорошо. Если, конечно, собственно сама Clojure (или сам?) внутри не сильно mutable, что вряд-ли. А я при этом наблюдаю, что чтение 5 миллионов пар чисел из файла -- прочитал строку и распарсил два инта -- превращается а ад для GC. Имитация call-стека на куче при помощи списка -- еще больший ад при большой глубине вызовов. И еще без указания вручную, что джава может взять 2 гига под хип, вся конструкция уходила в нирвану и пилила что-то свое бесконечно долго.

И что с этим делать? Как-то специально оптимизировать размещение данных в памяти? Вот народ пишет, что ... and now the solution to problems with garbage collection is to manually manage memory? ... if memory allocations in a garbage collected language are still something to be calorie-counted, then maybe the memory management debates aren't over.

Перепишу сначала на CL, а потом на хаскеле, и посмотрю кто кого :-)
Link4 comments|Leave a comment

(no subject) [Apr. 16th, 2012|01:17 pm]
Юрий Арапов
Вернулся со "Стачки". Ощущения, словно высунул нос из своего медвежьего угла, и мимо меня пронесся экспресс, громыхая и сверкая огнями. Короче, очень понравилось.

Read more...Collapse )
Познакомился с Максом (levgem) и задал ему пару [дурацких] вопросов на докладе.

Развиртуализировался со Львом(lionet) и Никитой(tonsky), познакомился с Иваном (gliv) и другими эховцами/джекнайфовцами. Ребята, вы отличная команда, познакомиться и пообщаться было более чем приятно. Если как-нибудь, когда-нибудь сложится поработать вместе, то будет супер.


По приезде домой тут же выпил за горизонтальные связи, ибо идея правильная :-)
Link1 comment|Leave a comment

(no subject) [Apr. 11th, 2012|08:32 pm]
Юрий Арапов
Прошу совета у знатоков Clojure.

Не могу прочитать большой (относительно, конечно) файл, примерно 5 миллионов строк.

Причем, если я его читаю просто в виде строк, то все ок:
(let [ll (time (read-file-lines "SCC.txt"))] (count ll))
"Elapsed time: 36599.499932 msecs"
5105043

А если каждую строку посте чтения я делю на слова и слова конвертирую в числа, то все заканчивается плохо:
(let [ll (time (read-edges "SCC.txt"))] (count ll))
OutOfMemoryError GC overhead limit exceeded
  java.lang.reflect.Method.copy (Method.java:143)

Вот так я читаю просто строки:
(defn read-file-lines [file]
  (reverse (read-file-with file '() cons)))

А вот так числа:
(defn read-edges [file]
  (read-file-with file '()
    (fn [line acc] (cons (line->numbers line) acc))))

(Т.е. при чтении под капотом одна и та же функция, которая принимает начальное значение аккумулятора и функцию для обновления аккумулятора, такой reduce на файле.)

Вот для полноты картины функция line->numbers:
(defn line->words [line]
  (clojure.string/split line #"\s"))

(defn line->numbers [line]
  (map #(Integer/parseInt %) (line->words line)))

Вопрос, собственно, классический: кто виноват и что делать?
Link19 comments|Leave a comment

(no subject) [Apr. 11th, 2012|11:41 am]
Юрий Арапов
Еду на стачку в Ульяновск. Было бы здорово развиртуализироваться с френдами (если кто будет) и познакомиться с джекнайфовцами.
Link3 comments|Leave a comment

(no subject) [Mar. 30th, 2012|12:19 pm]
Юрий Арапов
Интересно, какова доля ручного процессинга при проведении электронного платежа? Скажем, из штатов в россию? И есть ли вообще необходимость в таком ручном процессинге, и в чем его суть, если он-таки есть? А если там чистая автоматика (собственно, не вижу к этому никаких препятствий), то вашу мать, откуда задержки в несколько дней между событиями "деньги ушли" и "деньги пришли"?
Link3 comments|Leave a comment

(no subject) [Mar. 30th, 2012|11:43 am]
Юрий Арапов
Открытое письмо Начальнику ГУВД г. Москвы г-ну Колокольцеву В.А. от Липскерова М.Ф, пенсионера, инвалида

"Суд отказался отпустить предполагаемых участниц Pussy Riot. Колокольцев: "Они плюнули мне в душу", (News.ru 28.03. 2012 18.31)"

Дорогой Владимир Александрович!

Каждый день с утра до ночи мне плюют в душу Президент, Премьер, Администрация, Совет Федерации, Государственная Дума, министры здравоохранения, образования, внутренних, иностранных и других дел, ЖКХ, Пенсионный Фонд, телеканалы НТВ, Россия, Первый, Мэрия, Почта России, магазины шаговой доступности, районная поликлиника и остальные органы, у которых есть слюна. Прошу Вас арестовать всех вышеупомянутых к ебене матери.
29.03.2012 С уважением. Липскеров М.Ф.

via
LinkLeave a comment

(no subject) [Mar. 7th, 2012|01:08 pm]
Юрий Арапов
Будучи нерелигиозным человеком и очень плохо понимая "правила игры" православной конфессии считаю, что просить патриарха о милосердии так же бессмысленно, как требовать от путина соблюдения конституции. Получится что-нибудь в духе вот такого издевательского ответа.

При этом требование граждан отставки путина -- это нормально, но наверное, требование православных "отставки" патриарха -- это не по церковному.

Опять же, советовать что-то верующим глупо, но мне кажется, что лучше обращаться напрямую к тем, кто иск подал, чтобы они этот иск отозвали, а не к патриарху. Либо констатировать раскол церкви по "милосердному" признаку со всеми вытекающими.
Link3 comments|Leave a comment

(no subject) [Mar. 7th, 2012|12:16 pm]
Юрий Арапов
Новости, которые взрывают мозг: для андроида написан X сервер на Java. 14 тыс. строк кода.
LinkLeave a comment

(no subject) [Mar. 6th, 2012|10:45 pm]
Юрий Арапов
Своих слов у меня мало, и в основном матерные. Пиарю чужие:
С этой точки зрения для меня совершенно не важна та мелкая деталь, которую некоторым хочется представить ключевой: голосовал народ за Путина или не голосовал. Это совершенно не важно, потому что за бессменного диктатора голосует при тоталитарном режиме любой оболваненный народ. Где бы ты ни устроил свободные и честные выборы, в Белоруссии все проголосуют за Лукашенко, в Туркмении — за Туркменбаши, в Северной Корее — за Ким Чен Ына, у диких папуасов — за верховного вождя людоедов. При советской власти весь народ голосовал за Брежнева. При Сталине — за смерть кулакам и взрыв Храма Христа. В любой несвободной стране существует куча методов убедить народ проголосовать за любую гадость. В основном сейчас используется метод тотальной пропаганды: людям объясняется, что а) лют и коварен внешний враг, б) судьба страны сейчас в опасности, в) только один у нас спаситель.
LinkLeave a comment

navigation
[ viewing | most recent entries ]
[ go | earlier ]