webapp rec – Hosting Dash / Flask App with .csv data displayed via iframe – how to make manageable by single, beginner admin

I am in the process of creating a website with WordPress, which among other things will display a Dash / Flask app via iFrames.

Here are the key details:

  • The app is written in Python
  • The app is interactive, not static (Dash)
  • The data displayed in the app is sourced from two .csv files–both of which are relatively small (<10MB currently, but growing daily)
  • Need to be able to scale resource requirement easily (small when small, but easily buy more resources if the business grows)

What would be the easiest-to-manage solution for someone not familiar with app hosting / someone who only needs a set-it-up-and-forget-it type solution?

I am currently looking into a DigitalOcean Droplet, but am not sure how clunky/efficient it would be to house the data inside of the same droplet that the application would be hosted from.

boot repair – Ubuntu stack at blank screen with dash?

I have a very critical issue with my Ubuntu 20.04 LTS, it working fine, but accidentally rmdir in recursion it affected all my computer folder files to restricted mode with showing a cross mark at the bottom right. After series of googling, I can’t fix it but now my ubuntu is stuck at a blank screen with a dash at the upper left corner of the screen after showing the ubuntu logo, any solution?
I also try nomodeset kernel changes but the problem remains.

dnd 5e – How far can a twice-exhausted Halfling Rogue with Cunning Action (Dash) move?

Jim can move 36 feet, or 35 feet (7 squares) if using the variant grid rules.

First, the rounding rule:

There’s one more general rule you need to know at the outset. Whenever you divide a number in the game, round down if you end up with a fraction, even if the fraction is one-half or greater.

So half-speed for Jim is 12.5 feet, rounded down, giving a speed of 12 feet. The rules for movement state:

On your turn, you can move a distance up to your speed.

Jim’s speed is 12, so he can move 12 feet with his usual move, and an additional 12 feet for each Dash, resulting in a total of 36 feet with his two available Dashes.

Using a grid is a variant rule.

Moving 5 feet at a time is not the standard rule for D&D, it is actually an optional rule, under the heading “VARIANT: PLAYING ON A GRID”. When playing on a grid, you use your movement in 5 foot blocks:

Rather than moving foot by foot, move square by square on the grid. This means you use your speed in 5-foot segments.

So with his usual move, having a speed of 12 translates to 10 feet of movement:

To enter a square, you must have at least 1 square of movement left

After using 10 feet (2 squares), Jim has 2 feet of movement left. You do not round a 12 feet speed down to 10 feet. You just have 2 feet of movement remaining after moving 10, which is not enough to enter a new square. Dashing twice adds 24 feet to his available movement, so he would have 26 feet of movement remaining, or 5 squares, which gives a total movement on the turn of 35 feet (7 squares.

url rewriting – Redirect users with “.” (dot) in their username and replace with “-” (dash) to correct profile

Im having problem with usernames that have ‘.’ (dot) in their username and throwing 404 when try to access their profile page in front end. Can we replace this ‘.’ (dot) with ‘-‘ (dash) because working url is with a ‘.'(dash).

The system only generates link with user name ex: domain.com/members/(username automatically added)

but some username includes ‘.’ (dot) which system dont recognize.

Ex:
domain.com/members/user.name -> 404

domain.com/members/user-name -> working

python – Line chart not showing data on multi-page plotly dash

Weird error here. A single page plotly dash shows data on my line chart but when I created a multi page dash, the line chart doesn’t show the data anymore.

enter image description here

just shows this.

Can’t seem to find a way to show the line chart data even though my code is the same.

index.js

app = dash.Dash(__name__, external_stylesheets=(dbc.themes.BOOTSTRAP))

nav_item = dbc.NavItem(dbc.NavLink("Home", href="https://www.google.com"))

# make a reuseable dropdown for the different examples
dropdown = dbc.DropdownMenu(
    children=(
        dbc.DropdownMenuItem("Home", href='http://1577.6.0.1:9999/apps/main'),
        dbc.DropdownMenuItem(divider=True),
        dbc.DropdownMenuItem("Login / Sign-Up", href='http://127.0.0.1:8050/apps/test')

    ),
    nav=True,
    in_navbar=True,
    label="Important Links",
)
navbar = dbc.Navbar(
    dbc.Container(
        (
            html.A(
                # Use row and col to control vertical alignment of logo / brand
                dbc.Row(
                    (
                        dbc.Col(dbc.NavbarBrand("something", className="ml-2",)),
                    ),
                    align="center",
                    no_gutters=True,
                ),
                href="https://plot.ly",
            ),
            dbc.NavbarToggler(id="navbar-toggler2"),
            dbc.Collapse(
                dbc.Nav(
                    (
                     nav_item,
                     dropdown,
                     ), className="ml-auto", navbar=True
                ),
                id="navbar-collapse2",
                navbar=True,
            ),
        )
    ),
    color="#ED4651",
    dark=True,
    className="mb-5",
)

app.layout = html.Div((
    navbar,
    dcc.Location(id='url', refresh=False),
    html.H4("Some Title"),
    html.Div(id='page-content')
))


@app.callback(Output('page-content', 'children'),
              Input('url', 'pathname'))
def display_page(pathname):
    if pathname == '/apps/login':
        return login.layout
    elif pathname == '/apps/main':
        return main.layout
    else:
        return '404'

if __name__ == '__main__':
    app.run_server(debug=True)

main.py

state = pd.read_csv("/U********************.csv", index_col=None)

m1 = 0
m2 = 0
m3 = 0



unique = state("Area").unique()

sq = ("< 500", "500 to 1000", "1000+", "All Sizes")
sqVal = ()



external_stylesheets = ('https://codepen.io/chrisudoddyp/pen/bWLwgP.css')

app = dash.Dash(__name__, external_stylesheets=external_stylesheets)

# assume you have a "long-form" data frame
# see https://plotly.com/python/px-arguments/ for more options

opts = ()
for i in unique:
    opts.append({'label': i, 'value': i})

layout = html.Div(children=(
    html.H1(children='stats'),

    html.Div(children='''
        Simple stuff.
    '''),

    dcc.Dropdown(
        id="my-drop",
        options=opts,
        multi=True,
        value=(unique(0))
    ),
    #html.Button('Update Graph', id='submit-val', n_clicks=0)

    dcc.Graph(id='example-graph')
))

@app.callback(
    Output('example-graph', 'figure'),
    Input('my-drop', 'value'),
)
def update_output_div(input_value):
    check = ()
    figures = ()
    unique = input_value
    for i in unique:
        m1 = 0
        m2 = 0
        m3 = 0
        for index, row in state.iterrows():
            if (row("Area") == i):
                if row("Property Type") == "Commerical":
                    m1 += row("Price")
                if row("Property Type") == "Residential":
                    m2 += row("Price")
                if row("Property Type") == "Res-Rental":
                    m3 += row("Price")

        check.extend((m1, m2, m3))

    frames = ()

    data = {'Property Type': state("Property Type").unique()}

    frames.append(pd.DataFrame(data))

    for a in unique:
        newset = ()
        for s in range(3):
            newset.append(check(s))

        complete = {a: newset}
        frames.append(pd.DataFrame(complete))

        check = check(3:)

    result = pd.concat(frames, axis=1)

    fig = go.Figure()
    # fig = px.line(result, x=result('Property Type'), y=result(unique(0)), title="Analysis of Price over Property Type")

    # unique = unique(1:)

    for k in unique:
        fig.add_trace(go.Scatter(x=result('Property Type'), y=result(k), name=k,
                                 line_shape='linear'))
        # fig.add_scatter(x=result('Property Type'), y=result(k), name=k)

    fig.update_layout(title="Price by Property Type",
                      xaxis_title="Property Type",
                      yaxis_title="Price",
                      legend_title="Areas")

    return fig

if __name__ == '__main__':
    app.run_server(debug=True)

New to dash so any help would be amazing. Thank you!

9 – Unable to delete a tempstore that contains an en dash or an em dash

I am trying to delete a shared temporary storage for a key containing an en dash or an em dash.

$keyword = '2020–2021';
$tempstore = Drupal::service('tempstore.shared')->get('my_module_name');
$tempstore->delete($keyword);

It throws this exception.

DrupalCoreDatabaseDatabaseExceptionWrapper: SQLSTATE(HY000): General error: 1267 Illegal mix of collations (ascii_general_ci,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE) for operation ‘=’: DELETE FROM {key_value_expire} WHERE ("name" IN (:db_condition_placeholder_0)) AND ("collection" = :db_condition_placeholder_1); Array ( (:db_condition_placeholder_0) => 2020—2021 (:db_condition_placeholder_1) => tempstore.shared.my_module_name ) in DrupalCoreKeyValueStoreStorageBase->delete() (line 52 of core/lib/Drupal/Core/KeyValueStore/StorageBase.php).

As far as I can tell, it’s not an issue with the database, but rather with having the en dashes or em dashes in the storage key. I’ve tried escaping it with Html::escape() and utf8_encode(), but it didn’t resolve the issue.

EDIT:
I checked what my local database collation is and it returns UTF8.

mysql> SELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME
-> FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = ‘drupal9’;
+—————————-+————————+
| DEFAULT_CHARACTER_SET_NAME | DEFAULT_COLLATION_NAME |
+—————————-+————————+
| utf8 | utf8_general_ci |
+—————————-+————————+

EDIT2:

Running the following queries fixed the issue:

ALTER TABLE `key_value_expire` CHANGE `name` `name` VARCHAR(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'The key of the key/value pair.';

ALTER TABLE `key_value_expire` CHANGE `collection` `collection` VARCHAR(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'A named collection of key and value pairs.';

database – Unable to delete a tempstore that contains an en– or em dash —

$keyword = '2020–2021';
$tempstore = Drupal::service('tempstore.shared')->get('my_module_name');
$tempstore->delete($keyword);

this throws an error:

DrupalCoreDatabaseDatabaseExceptionWrapper: SQLSTATE(HY000): General error: 1267 Illegal mix of collations (ascii_general_ci,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE) for operation '=': DELETE FROM {key_value_expire} WHERE ("name" IN (:db_condition_placeholder_0)) AND ("collection" = :db_condition_placeholder_1); Array ( (:db_condition_placeholder_0) => 2020—2021 (:db_condition_placeholder_1) => tempstore.shared.my_module_name ) in DrupalCoreKeyValueStoreStorageBase->delete() (line 52 of core/lib/Drupal/Core/KeyValueStore/StorageBase.php).

As far as I can tell it’s not an issue with the database but rather having the the en or em dashes present in the keyword. I’ve tried escaping with Html::escape() and utf8_encode() but they didn’t seem to help.

bitcoin core – How safe it is to store keys in Electrum? I think Luke Dash JR didn’t recommend it

I agree with Luke Dash Jr and in general this wiki with the fact that doing anything without a full node is a mistake:

https://en.bitcoin.it/wiki/Clearing_Up_Misconceptions_About_Full_Nodes

But my question was in terms of just storing the keys in the Electrum wallet format to use in an offline gapped computer to sign the transactions and then broadcast on other full node computer online. Im just paranoid about the whole seed model. I reckon reading something to do with key derivation where if an attacker knew a private key of only one of your addresses and something else, they could somehow know subsequent addresses. Something to do with key derivation or something. I think this has something to do with it.

https://bitcointalk.org/index.php?topic=5265935.0

Im so paranoid to use anything but wallet.dat Bitcoin Core format that im not sure if missing on the clear advantage that being able to “spawn” your wallet anywhere in the world by remembering 12 words delivers, however, im concerned that you give away on security by using this. Why Bitcoin Core does not give you this method of wallet of knowing 12 words and being able to spawn your wallet if there were no tradeoffs?

Ubuntu 20.4 Asus Tuf Dash F15 Nvidia Driver Hung on Boot

I have installed a fresh version of Ubuntu 20.4 on my band new Asus Tuf Dash F15 laptop. Then I went into the software update settings and switched the driver to nvidia-460 proprietary using the GUI. I apply the changes and restart and I get stuck at a boot loading screen. The error is /dev/nvm1e0 clean: xxxblocks/xxx.

Specs:
Nvidia RTX 36060 mobile
Intel i7
40gb ram
1tb storage

I have tried installing the nvidia drivers 4 different ways, according to the nvidia official installation guide and multiple medium forums. Every time I get the same problem and have to alt+shift+f2 my way into the terminal to sudo apt-get purge nvidia* to be able to boot back in.

I’ve installed nvidia diver on ubuntu many other times according to the nvidia official docs and never ran into this error. I am concerned it may be hardware incompatibility at this point?

I’ve been trying for three days now and re-installed ubuntu multiple times, varying the partitions and installation methods. Everything is working fine until I try and switch to nvidia driver. I even tried some older and new driver versions and the nvidia cuda toolkit 10 and 11. Please help, thank you.