Обновить
25
Илья Чистяков@MyGodIsHe

Developer

2
Подписчики
Отправить сообщение

В статье очень поверхностно прошлись по влиянию ИИ на экономику. Например "Производительность труда в США при этом растёт всего на 1,4% в год, и нейросети пока этот показатель глобально не сдвинули." мало о чем нам говорит.

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

Подтверждаю. Иви самая кайфовая компания в которой я работал, включая озон и яндекс. Замечательный продукт и замечательные люди вокруг :3

Спасибо за замечание, это и правда лишнее.

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

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

Для нейронок и шейдеров такое давно есть.

Ещё есть игра Dreams. Но там похожие проблемы что и с Blueprint.

Изучал. Это неудачный пример. Все что существует удачного я привел в статье. ¯\_(ツ)_/¯

Парсер сурсов написан на ANTLR, в нем нужно разбираться. И хорошо понимать работу с графами. Нужно понимать как перестроить дерево для сворачивания и разворачивания подпространства.

Нужно глубоко погружаться в математику проекта, а это мало кто может за небольшие деньги.

Есть замеры по оверхеду?
В тиктоке бывает хорошая реклама, правда это не про веб, тут куда лучше понимание потребностей человека.
Возможно, высказывания Дурова негативно влияют на бизнес Виктории.
Можно ещё сильнее обобщить:
Заголовок спойлера
from dataclasses import dataclass, field
from typing import Any, Callable, Awaitable, List

import aiohttp
import asyncio


class TreeMapper:
    def __init__(
            self,
            create: Callable[[Any], Awaitable[Any]],
            get_children: Callable[[Any], List[Any]],
            set_children: Callable[[Any, List[Any]], None],
    ):
        self.create = create
        self.get_children = get_children
        self.set_children = set_children

    async def map(self, node):
        new_node, new_children = await asyncio.gather(
            self.create(node),
            asyncio.gather(*[
                self.map(child)
                for child in self.get_children(node)
            ]),
        )
        self.set_children(new_node, new_children)
        return new_node


@dataclass
class IdNode:
    id: int
    children: list = field(default_factory=list)


@dataclass
class TitleNode:
    title: str
    children: list = field(default_factory=list)

    def __str__(self, indentation=""):
        title = f"{indentation}{self.title}"
        children = [
            child.__str__(indentation + '\t') for child in self.children
        ]
        return '\n'.join([title, *children])


async def get_title_by_id(node: IdNode, session):
    response = await session.get(
        f"https://jsonplaceholder.typicode.com/todos/{node.id}"
    )
    data = await response.json()
    return TitleNode(title=data['title'])


async def main():
    async with aiohttp.ClientSession() as session:
        message_tree = await TreeMapper(
            lambda node: get_title_by_id(node, session),
            lambda node: node.children,
            lambda node, children: node.children.extend(children),
        ).map(
            IdNode(1, [IdNode(2), IdNode(3, [IdNode(4), IdNode(5)])]),
        )
        print('\n', message_tree)


if __name__ == '__main__':
    asyncio.run(main())

Выглядит довольно неприятно и бессмысленно. Однострочные абстракции очень спорная штука.

Мне больше такой стиль нравится:
Заголовок спойлера
from dataclasses import dataclass, field

import aiohttp
import asyncio


@dataclass
class IdNode:
    id: int
    children: list = field(default_factory=list)


async def get_data_by_id(node: IdNode, session):
    response = await session.get(
        f"https://jsonplaceholder.typicode.com/todos/{node.id}"
    )
    data = await response.json()
    return data


def tree_iter(node, get_children, lvl=0):
    yield node, lvl
    for child in get_children(node):
        yield from tree_iter(child, get_children, lvl + 1)


async def main():
    async with aiohttp.ClientSession() as session:
        id_tree = (
            IdNode(1, [
                IdNode(2),
                IdNode(3, [
                    IdNode(4),
                    IdNode(5)
                ])
            ])
        )
        nodes, lvls = zip(*tree_iter(id_tree, lambda node: node.children))
        nodes = await asyncio.gather(*[
            get_data_by_id(node, session)
            for node in nodes
        ])
        for node, lvl in zip(nodes, lvls):
            print('{}{}'.format('\t'*lvl, node['title']))


if __name__ == '__main__':
    asyncio.run(main())



С опозданием на пару месяцев)
Может стоит удалить поддержку второго питона и не парится больше?
Спасибо за предложение. Как вы видите подстановку едениц измерения?

Ещё думаю добавить временную шкалу.
Поправил. Теперь не должен падать. Но как выйти при поломке пайпа в py3 пока не придумал. Сейчас он висит и ждёт ввода.
Вторая и третья версия по разному обрабатывают отсутствие данных в пайпе. Второй питон генерит ошибку Resource temporarily unavailable, третий отдаёт пустую строку. При том если пайп закрывается, второй и третий отдаёт пустую строку.
Проверил. Во втором питоне работает, а в третьем выходит после первой отрисовки. Буду чинить. Спасибо за сообщение!
можно подробней? какая ось? какая команда? какая ошибка?
1
23 ...

Информация

В рейтинге
4 706-й
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность