Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

Статья, вероятно, хорошая (давно хотел погрузиться в асинхронность), но после запуска примера 2.2 я действительно получил сюрприз:

А после запуска примера 2.3 было принято волевое решение дальше не читать (очень жаль):

а где секция про вебинары? или у разработчиков их нет (считаю маловероятным)?

на курсе по аналитике самой сильной частью были именно вебинары (хоть я и был на них всего 2 раза, но уровень оценил)

я когда учился в практикуме (в прошлом году) примерно в середине курса в слак кидают сообщение типа "оставьте отзыв на любом популярном сайте, скиньте ссылку и топ3 победителей получат кофе-носки-набор стикеров".

хоть автор и пишет что ныне никак не связан с практикумом, меня терзают смутные сомнения ._.

// I put on my robe and wizard hat...

"я надеваю свой волшебный плащ и волшебную шляпу" - это же.. так начинался один из диалогов bloodninja! Вот уж неожиданность встретить такую отсылку

так я не в WoW, я в Rappelz играл - там 120 лвл был максимальный ~~

ps. только хуманы тру, орда - ...

пробовал - даже нашел как сохранять некие данные в кэше браузера (как раз с помощью dcc.Store если не ошибаюсь), но с мультистраницой это не сработало :(

Выглядит действительно интересно, спасибо! Покопаюсь на досуге (хотя я уже перенес все свои "недодаши" в метабазу :))

Я вот пытался сделать мультистраничный даш и у меня вопрос - как с одной страницы передавать аргументы на другую (у меня на первой и второй страницах выбор фильтров, а на третьей соответственно должны отображаться соответствующие данные), коллбеки такое (как я понял) не обрабатывают, единственный (найденный мною) вариант - глобальные переменные (передаю уже отфильтрованный DataFrame), но это как-то совсем уж плохо.

Код примерно такой:

### DASH START
app = dash.Dash(external_stylesheets=[dbc.themes.BOOTSTRAP])

# the style arguments for the sidebar. We use position:fixed and a fixed width
SIDEBAR_STYLE = {
    "position": "fixed",
    "top": 0,
    "left": 0,
    "bottom": 0,
    "width": "16rem",
    "padding": "2rem 1rem",
    "background-color": "#f8f9fa",
}

# the styles for the main content position it to the right of the sidebar and
# add some padding.
CONTENT_STYLE = {
    "margin-left": "18rem",
    "margin-right": "2rem",
    "padding": "2rem 1rem",
}

sidebar = html.Div(
    [
        html.H2("Навигация", className="display-6"), # SIZE OF STRING
        html.Hr(),
        #html.P(
        #    "A simple sidebar layout with navigation links", className="lead"
        #),
        dbc.Nav(
            [
                dbc.NavLink("Main Page", href="/", active="exact"),
                dbc.NavLink("Page 1", href="/page1", active="exact"),
                dbc.NavLink("Pgae 2", href="/page2", active="exact"),
            ],
            vertical=True,
            pills=True,
        ),
    ],
    style=SIDEBAR_STYLE,
)
def main_page(df):
    
    return html.Div([
    # filter1   
    # data-table1
])
  
def page1(df):
  
    return html.Div([
    # filter2
    # data-table2
]) 

def page2(df1, df2):
    return html.Div([
    # data-table3 filtered by df1 & df2
]) 
content = html.Div(id="page-content", style=CONTENT_STYLE)

app.layout = html.Div([dcc.Location(id="url", refresh=False), sidebar, content])


@app.callback(
              Output("page-content", "children"),
             [
              Input("url", "pathname"),
             ]
             )
def render_page_content(pathname):

    global VAR1
    global VAR2

    if pathname == "/":        
        return main_page(VAR1)

    elif pathname == "/page1":
        return page1(VAR1)

    elif pathname == "/page2":
        return page3(VAR1, VAR2)

    # If the user tries to reach a different page, return a 404 message
    return dbc.Jumbotron(
        [
            html.H1("404: Not found", className="text-danger"),
            html.Hr(),
            html.P(f"The pathname {pathname} was not recognised..."),
        ]
    )


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

у знакомого (работающего в организации, тесно связанной с батутом) взяли номер регистрации на онлайн-голосование, потом, говорят, сбшники будут пробивать по "своим каналам" за кого был голос

пс - всё мною вышенаписанное есть выдумка и плод больного воображения

можно создателю игры написать, его сайт до сих пор работает:

http://www.eador.com/eador1/

у Нивала?)) или кто там издатель был

Эадор не так стар и был проектом одного-единственного разработчика (справедливости ради добавлю что он заказал часть графики и музыки у фрилансеров).

Играл в Сотворение (несколько месяцев), в 3Д-версию не играл (поставил - не понравилось, выключил и больше не включал).

Эх, портировал бы кто Эадор на планшеты, была бы бомба))

ПС. вспомнил как "Коллоды 2 - повелители душ" на PPC (Pocket PC) портировали (аж 40 мб весил!), в институте перепроходил...

Прошу прощения, упустил момент когда от

Принимаю решение вложить 13 тысяч рублей в курсы по верстке сайтов. Стоит сказать что такую смешную сумму, мне пришлось просить разбить на 4 платежа по 3 250 рублей. Ибо в додо я делал 20 тысяч в месяц максимум.

состоялся переход к

И я погнал учиться! Как вы думаете куда? В Skillbox.

ведь там цена около 120к за ваш курс (берем ежемесячный платеж и умножаем на 24 — ведь это цена за 2 года ежемесячных платежей, а не за 1)?

А зачем вообще было уходить с позиции менеджера на должность курьера? Курьеры больше получают? Но ведь — У меня ребенок, кредиты, я как обычный среднестатистический человек — устаю в течении дня и приношу домой копейки чтобы хватало на оплату еды, жилья и дешевых вещей.???

Ещё раз прошу прощения, но как пел классик — «В этом мотиве есть какая-то фальшь..»
К величайшему сожалению пропустил Вашу прошлую статью с задачей (иначе, несомненно, принял бы участие), благо здесь в начале были условия и желаемый результат :)

ПС. решал сам, в ответы не подглядывал :)
Если сделать допущение что реальная цена всегда выше промо-цены, а так же что реальная цена постоянно растет (ну во всяком случае на основе тестовых данных можно сделать такой вывод) то просто:

select *,
max(price1) over (partition by stock_id, prod_id order by start_date) price1x
from price

:))
недочет, действительно)
Спасибо за поправку)
А показалось… ладно, неважно, вот мои 3 (недо)решения:

1) 100 — (100 — a — b)
2) (0 — a — b) * (-1)
3) Используем что a**2 — b**2 = (a — b)(a + b), соответственно (a**2 — b**2)/(a — b), a — b != 0
не знаю, запуск в докере позволяет быстро с сервера на сервер переезжать, при этом ничего не ломается (во всяком случае за полгода ничего не сломалось само по себе, один раз только место на сервере закончилось и пришлось руками порт на который airflow смотрит освободить)))

если разберешься как через связку SSHOperator + PostgresOperator даги адекватные создавать — напиши, плз, а то у меня всё на PythonOperator'ах работает (пришлось разбираться как в докер кастомные библиотеки засунуть), связь между задачами через context['task_instance'].xcom_pull(task_ids='xxx') + provide_context=True
xnuinside.medium.com/quick-guide-how-to-run-apache-airflow-cluster-in-docker-compose-615eb8abd67a

я вот отсюда запустил (и оно даже до сих пор работает), из преимуществ над текущей статьёй — все работает в докере, папка с дагами смотрит наружу, руками колдовать практически не надо.

Из минусов — первый запуск надо сделать ровно как описано в статье (запустить контейнеры по очереди для инициализации БД, после этого можно делать обычные docker-compose up -d \ docker-compose down и всё будет работать).

PS. да, в этой сборке тут всего 1 воркер, но для начала хватит

Информация

В рейтинге
6 011-й
Зарегистрирован
Активность