Pull to refresh
14
0
Александр Разумов @cy-ernado

Руковожу разработкой

Send message

А в этих расчётах учитывается стоимость безопасной утилизации солнечных батарей и демонтажа ветряков?

Ну так это же не что-то хорошее. По крайней мере, я бы даже на плюсах как минимум хранил бы дерево с узлами из std::variant<Id, CommentBody>, как максимум оно точно так же было бы параметризованное.

А я бы и не сказал, что это однозначно плохо :)


А, ну можно совершенно аналогично передавать функцию для запрашивания комментов

У меня можно подменить HTTP клиент, т.е. запрос -> ответ. Но смысл я понял, спасибо.


Вот за это мы STM и гарантии компилятора и любим.

Очевидно, что у всего есть цена. А еще было бы замечательно, если бы STM реализовали на уровне железа. В итоге приходим к тому, что у го есть свои трейдоффы, как и у всех ЯП.


На мой взгляд топикстартеру просто "повезло" начать с задачи, оказавшейся нетривиальной для новичка в го.

Не получается, так как дерево ID'шников и дерево комментариев — это вообще разные типы. И смешивать их (как в вашем примере) — плохая идея, потому что теперь компилятор не даст мне по рукам, если я случайно полезу доставать текст комментария в дереве, которое не было «материализовано».

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


В смысле, что именно протестировать?

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


Вот это — единственное, что потребует не совсем тривиальных изменений исходного кода. Будет дерево с узлами типа Maybe Comment вместо Comment в STM + набор потоков, которые в него пишут.

Круто. Мне действительно интересно, как это будет выглядеть в реальном коде на Haskell и C#.
Сейчас мой вариант на Go относительно прост, но там есть спорные места — ограничение на макс. глубину дерева (из-за отсутсвия TCO, впрочем, мб можно убрать рекурсию) и потенциальный data race (всё же мутировать дерево во время обхода по нему — тот еще веселый аттракцион).

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

Действительно, в такой постановке задача тяжело решается на Go, где мутировать состояние более привычно, чем выражать алгоритм через иммутабельные преобразования.


Если разрешить мутировать изначальное дерево (что бы сделали большинство разработчиков на этом языке), то получается немного проще:


type Tree struct {
    ID      int     `json:"-"`
    Comment string  `json:"comment"`
    Childs  []*Tree `json:"-"`
}

func (t *Tree) Traverse(fetchers chan<- *Tree) {
    fetchers <- t
    for _, tt := range t.Childs {
        tt.Traverse(fetchers)
    }
}

func (t *Tree) Fetch() {
    resp, err := http.Get("http://jsonplaceholder.typicode.com/todos/" + strconv.Itoa(t.ID))
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()
    if err = json.NewDecoder(resp.Body).Decode(t); err != nil {
        panic(err)
    }
}

func fetchAll(t *Tree, concurrency int) {
    trees := make(chan *Tree)
    go func() {
        t.Traverse(trees)
        close(trees)
    }()
    wg := new(sync.WaitGroup)
    wg.Add(concurrency)
    for i := 0; i < concurrency; i++ {
        go func() {
            defer wg.Done()
            for f := range trees {
                f.Fetch()
            }
        }()
    }
    wg.Wait()
}

У меня сложилось впечатление, что автор статьи был изначально несколько предвзят к Go, как и автор постановки задачи. В ответ я бы предложил дополнить постановку задачи следующим образом:


  1. Без аллокации нового дерева
  2. Возможность контроля количества параллельных запросов
  3. Возможность отмены обхода по дереву в любой момент, но с сохранением уже полученных данных (т.е. частичный ответ)
  4. Глобальный таймаут на обход, после которого он заверашется с ошибкой
  5. Возможность протестировать взаимодействие по HTTP (т.е. "замокать" поход в сеть, оставив всё остальное)
  6. Отмена обхода после первой ошибки загрузки/десериализации данных (такая же, как в п.3)

Мое решение на го я выложил на гитхаб: ernado/traverse. Получилось 167 SLOC с тестами, но я особо их не пытался экономить, и заодно реализовал задачу как cli утилиту:


$ ./traverse -j 1 --timeout 30ms
Failed: Get http://jsonplaceholder.typicode.com/todos/3: context deadline exceeded
1=delectus aut autem
 2=quis ut nam facilis et officia qui
 3=
  4=
  5=

По ^C как раз происходит отмена в соответствии с п.3., опция j отвечает за ограничение параллельных запросов, а timeout указывает глобальный таймаут.


UPD: Забыл про п. 6, дополнил п. 5 комментарием

А как вы пишете тесты на эту логику?

Прошу прощения, что я отвечаю вам в этой теме тоже, но пруфы были, просто их игнорировали.


Но Gram у мошенников с красивыми лендингами действительно покупать не стоило, с этим никто и не спорил :)

Теперь, когда появились доказательства не надо верить.
До этого вы верили

До этого было достаточно доказательств, просто не все хотели их воспринимать.
Делу против Lantah уже больше года, записи в SEC — еще больше. По непонятной мне причине людям было легче игноровать факты, не впысывающиеся в их уютную теорию заговора, и продолжать в неё верить.


Кстати, где сейчас Whitepaper на icorating.com?

Понятия не имею. Оно авторитетнее SEC? Почему он там должен/не должен быть?
Ну и пока публичного ICO еще не было, как и релиза.


Если честно, я достаточно далек от темы криптовалют, но меня удивляет, почему вроде бы подготовленные журналисты или люди "в теме" не сумели нагуглить и воспринять то самое дело. Там черным по белому доказана и причастность, и связь с документами, и подтверждена запись в SEC. Лично меня вообще TON интересует больше не как крипта, а как p2p платформа.

2) В суде Калифорнии, подтвердил причастность к заявке в SEC и документации, иначе бы отказали в правах на Gram.


Ну и докину, только что в официальном https://t.me/contest:


Все еще "верите", что "Дуров не имеет никакого отношения к TON"?

Очень напомнило мою первую программу на питоне восьмилетней давности, правда я там всё же выбрал регекспы :)

Тогда можно попробовать записывать ещё карту глубины и ее подписывать.
Но все равно получится лишь повышать стоимость взлома.

Многие пункты это не хейт, а скорее здравый смысл :)
Безопасность, правда, никто и не обещал – от докера нужна лишь изоляция между приложениями.


А контейнеры без оркестрации в продакшене это воистину мазохизм. Если у вас один хост на хецтнере и полтора сервиса с SLO 50% – ничего не мешает катить ансиблом, а запускать системд, сам так вполне успешно делал. Докер лишь кирпичик в инфраструктуре, а не серебряная пуля, и вроде бы хайп давно прошёл (сейчас как раз по кубернетису угорают, но и он в эксплуатации сложен, пусть и крут).

Он подтвертил, что разрабатывает TON, и что ICO было его, и что документы от Дурова с описанием TON – тоже его.


Можно попробовать перечитать. Я же не придумываю ничего, там в деле все есть.


Вероятность того, что нынешний TON это фейко-клон отнюдь не нулевая.

Согласен, но она очень маленькая. Другой имплементации TON по документам от Дурова просто нет, а эта – слишком уж реалистична.

https://www.leagle.com/decision/infdco20180809910


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

Вы бы определились, пиарит или нет. А то, как-то некрасиво.

Не пиарит, но официально доказал свою причастность.


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

Купить Gram сейчас невозможно, и Дуров сам говорил, что это мошенники. Наличие мошенников, которые пытаются продавать Gram не значит, что TON — мошенники. Сейчас Дуров просит дождаться официального запуска.


А это не факт. Один коммит якобы vvaltman и два от ton — оба — не юзеры гитхаба, то есть это просто наборы букв. Всё-таки больше похоже на фейк. Как тот спам с фб с предложениями вложиться в тон.

Действительно, одна лишь информация из изначального коммита не позволяет достоверно заявлять о связи, но если сопоставить её с остальными данными, то можно достаточно легко сделать выводы.

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

Дуров прямо говорил, что это скам и нужно ждать официального анонса.


Повторюсь в очередной раз, связь TON и Telegram доказана самим Telegram в суде Калифорнии.


неизвестно чей репозиторий с невнятным содержимым

Это снепшот репозитория от Telegram Systems LLP, основная разработка ведется в закрытом репо на битбакете, коммитит Виталий Вальтман из команды Telegram. Передам ему привет, кстати, наверняка иногда читает хабр и улыбается.

1) Где Павел утверждал, что ТОН не его?
2) Он вроде бы не особо скрывает, просто не пиарится.

https://www.leagle.com/decision/infdco20180809910


Вы специально дело TELEGRAM MESSENGER INC. v. LANTAH, LLC проигнорировали, чтобы ничего не портило удобную теорию заговора, да?

все разобрано за нас, если кратко: «просто накиданая на коленке по бырому обертка вокруг ноды»

Я предпочитаю смотреть своими глазами, а не "верить в непроверенные факты". Статья была написана до появления репозитория.


Да именно поэтому, мне просто ржачно от фанатиков типа тебя, которые верят в непроверенные факты. Что выйдет из TON мне вообще насрать.

У меня достаточно когнитивных способностей, чтобы сопоставить данные и сделать выводы, оценив вероятность того, что TON владеет Telegram Systems LLP как крайне высокую.


У них был сбор денег от инвестеров, новости сам ищи.

ICO TON от Плавла Дурова, где в issuer-ах Telegram Group Inc и TON Issuer Inc?


Окей, если TON — скам, и Павел не имеет к нему никакого отношения, тогда откуда
в суде Калифорнии в деле TELEGRAM MESSENGER INC. v. LANTAH, LLC появилось следующее:


Telegram adopted the name GRAM sometime in 2017. Id. at 9. In December 2017, a number of articles reported on Telegram's efforts to develop the TON Blockchain and GRAM cryptocurrency. See Hammon Decl. (dkt. 16-1) ¶ 2, Ex. A (articles from December 22, 2017 and December 27, 2017 reporting on development of TON Blockchain; "Cointelegraph learned that the currency of TON will be called `Gram' and the platform will be natively integrated with many of the most popular messaging apps.").1 Those articles continued into January 2018 and beyond. See, e.g., With Apple, the Tech Reckoning Gains Momentum: DealBook Briefing, The New York Times, January 9, 2018, at 7 (linking to Tech Crunch article, Josh Constine, Telegram plans multi-billion dollar ICO for chat cryptocurrency, https://techcrunch.com/2018/01/08/telegram-open-network, January 8, 2018).

Дуров настолько не имеет отношения к TON, что нанял адвоката за 15 миллионов баксов, который наврал в суде Калифорнии что TELEGRAM MESSENGER INC. имеет прямое отношение к TON?
Может это тебе стоит перестать верить в теории заговора и задуматься о своих аналитических способностях?

В смысле не резолвится? А это что?

Ну я же про корневой домен:


dig ton.org

; <<>> DiG 9.11.3-1ubuntu1.9-Ubuntu <<>> ton.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22168
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;ton.org.           IN  A

;; Query time: 138 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Tue Sep 10 18:22:41 MSK 2019
;; MSG SIZE  rcvd: 36

А эту статью вы не читали видимо?

Читал. Для себя я получил достаточно данных, чтобы с уверенностью сказать, что TON и Telegram связаны напрямую, и что Telegram Systems LLP точно занимается разработкой TON, особенно после релиза на гитхабе — достаточно просто внимательно присмотреться. К чему конкретно — говорить не буду, зато скажу, что из репозитория можно даже узнать, на какой платформе скорее всего ведется основная разработка :)


Забавно, что упомянутая "техническая статья" Бородача теперь недоступна на медиуме.

Могли взять за базу другой блок-чейн о котором никто не знает и затереть исходных авторов

Вы бы хотя бы репозиторий посмотрели.


Ради бабла конечно! найти кучу наивных дурачков и впарить им эти койны, так и работают современные криптоаферы.

А можете подсказать, как мне на ton.org закинуть деньги и поучаствовать в этой замечательной афере? Обычно у криптоаферы красивый лендинг, а ton.org даже не резолвится. Какая-то странная афера получается. Можно сказать, конечно, что нужно подождать релиза, но опять же: столько стараний ради того, чтобы быть перечеркнутыми одним твитом Дурова, серьезно?


Так в этом и дело, что дуров его не PR-ит.

Мало смысла пиарить невышедший проект. Денег на разработку до релиза у них более, чем достаточно.


Мне на это все (дуров, телега, тоны) вообще пофиг

Именно поэтому вы пришли в статью и оставили комментарий. Прикольно будет, когда состоится релиз.


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

Так как мне деньги кинуть в TON? Дайте уже ссылку на лендинг для хомячков.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity