Fork me on GitHub
#clojure-russia
<
2015-07-30
>
clojurehunter07:07:54

trybeee, и подумать не мог... Благодарю за ссылку!

dottedmag07:07:47

Отличная цитата.

dottedmag07:07:33

Это ведь work in progress? В оригинальном SICP пять глав.

dottedmag07:07:34

Гм, заброшено 2 года назад.

invizz07:07:03

а я счастливый обладатель SICP на русском в бумажном варианте))

dottedmag07:07:00

"На самом деле перевод мой, а smilga помогал его редактировать. (Надо сказать, что качесвом перевода и я сам недоволен, а Боря -- тем более.)"

ul08:07:43

@nicola: re: deftype в edn — бери сразу транзит, https://github.com/cognitect/transit-cljs/wiki/Getting-Started

ul08:07:37

Мы используем транзит в продакшене не только с Clojure бэкендом , но и с Django, очень хорошо общаются. В том числе хорошо получается сериализировать питоновский объект на сервере (тот же Point из django.contrib.gis.geos), а потом на клиенте его прочитать как свой (deftype Point ...)

a.espolov10:07:32

@ul: я так понимаю джанговский Point это объект?

ul10:07:01

Да, вот этот https://docs.djangoproject.com/en/1.8/ref/contrib/gis/geos/#django.contrib.gis.geos.Point Для него определяется и регистрируется транзитовский хэндлер:

class PointHandler(object):
    @staticmethod
    def tag(_):
        return "Point"
    @staticmethod
    def rep(p):
        return p.coords
    @staticmethod
    def string_rep(p):
        return p.toString()

class TransitRenderer(renderers.BaseRenderer):

    media_type = 'application/transit+json'
    format = 'transit'

    def render(self, data, media_type=None, renderer_context=None):
        io = StringIO()
        writer = Writer(io, 'json')
        writer.register(
            rest_framework.utils.serializer_helpers.ReturnDict,
            transit.write_handlers.MapHandler
        )
        writer.register(
            rest_framework.utils.serializer_helpers.BindingDict,
            transit.write_handlers.MapHandler
        )
        writer.register(
            rest_framework.utils.serializer_helpers.ReturnList,
            transit.write_handlers.ArrayHandler
        )
        writer.register(
            ValuesQuerySet,
            transit.write_handlers.ArrayHandler
        )
        writer.register(Point, PointHandler)
        writer.write(data)
        return io.getvalue()

niquola12:07:47

А в clojure тоже нужно регать?

ilshad13:07:18

там без сервис-провайдеров всяких

niquola13:07:06

Я подумаю тогда simple_smile

pacman14:07:49

Всем доброго времени суток, я таки смог подключиться

pacman14:07:32

У кого можно проинтересоваться, есть вопрос по OM

dottedmag14:07:53

#C06DT2YSY же

pacman14:07:47

кстати тут раз уж заговорили про sicp то отмечу что очень важно прорешать от туда примеры по возможности, самому у меня духа хватило на первые 2 главы. Особенно сильная ломка шла на первой, после того как всю жизнь кодил императивно, было тяжко перестроить сознание, но оно того стоило! Решал на scheme который брал отсюда http://racket-lang.org/ . Затем уже стал осваивать clojure, решил также начать прорешивать примерчики с http://4clojure.com, скажу что после sicp все по ощущениям шло как по маслу где-то до 100 задания (http://www.4clojure.com/user/kopychenko). Думаю как будет время то попытаюсь добить полследние 3 главы sicp... но уже наверное при помощи clojure. В итоге могу сказать что несмотря на то что сам курс sicp древний но толчек в изучении и понимании ФП он дает хороший. Хороше было бы если бы это курс качественно переработали на clojure и добавили новое...

pacman14:07:14

под новым я имею ввиду базовые понятия по трансдьюсерам и многопоточному программированию ну и прочее...

devlab19:07:36

а где записи хангаутов посмотреть ?