CI: work around the 50 minute test timeout

see also https://github.com/scipy/scipy/issues/3913

I think that coveralls combines coverage reports from all the runs where coveralls is called in order to generate overall coverage report. If the problem is that each run locally overwrites the .coverage files from doing multiple sub-runs itself (which I suspect is going on here), then you can instead 1) do each sub-run, 2) rename the output after each sub-run finishes to e.g. .coverage.sparse, and then when all are done 3) use coverage combine or so to combine all the coverage files. I have done this in a different repository successfully.
But if coveralls really isn't worth keeping, then ignore this :) It seems like this limitation should also go away if the combined instead of isolated sub-module running mentioned by @argriffing works out.

Coveralls was working so badly - only intermittent runs, not showing coverage per line for large files - that I disabled it a couple of weeks ago. No one seems to have missed it:)

Coveralls is working badly, but coverage checking itself is useful when run locally.
There's some way to merge coverage files, don't recall how, however.
You can maybe just do if args.coverage and len(submodules) > 1: parser.error("--coverage does not work with multiple submodules").
I don't know a way to get the test suites collected using Numpy's runner framework, there are many elephants stacked on top of each other in the way, and runtests.py is a hack in the first place already...

For the record, the following method for combining coverage files work:
$ python runtests.py -s linalg --coverage
$ mkdir cov_temp_dir
$ cp build/test/.coverage cov_temp_dir/.coverage.linalg   # it gets overwitten otherwise
$ python runtests.py -s interpolate --coverage
$ cp build/test/.coverage cov_temp_dir/.coverage.interpolate
$ cd cov_tmp
$ coverage combine

Strangely enough, we might want to use this for the relaxed strides checking CI run. Esp if we do it by submodule and split off the linalg run...

Apparently, the move to container-based infrastructure brought the run time to well below the CI timeout.

Yes, after https://github.com/scipy/scipy/pull/5036 the CI process looks like it is taking 30 minutes instead of hitting the limit at 50+ minutes. I'll close this.


Fix endOfLine not passed to blade-formatter

Currently the plugin doesn't respect prettier's endOfLine setting, and leaves it up to blade-formatter to choose between LF and CRLF. This becomes an issue on Windows, when the project files use LF rather than CRLF.
This small change will force blade-formatter to use LF line endings unless prettier's option is set to crlf. I don't know if there are any potential issues with this approach, but it works as intended as far as I can tell.

@mortenscheel
Thanks for the PR!

I found a potential bug when CRLF specified in option.
Every time I specified eol as crlf, then it adds cr + crlf to eol.
 $  cat test29.blade.php -A
@extends('frontend.layouts.app')␍␊
@section('head')␍␊
@endsection␍␊
@section('title')·foo␍␊
@endsection␍␊
@section('content')␍␊
····
␍␊
········
␍␊
············
␍␊
················

␍␊
················
@lang('users.index')
␍␊
············
␍␊
············
␍␊
················
␍␊
····················@foreach·($tree·as·$users)␍␊
························
␍␊
····························␍␊
····························{{·link_to_route('frontend.users.user.show',·$users['name'],·$users['_id'])·}}␍␊
························
␍␊
····················@endforeach␍␊
················
␍␊
················
␍␊
····················@can('create',·App\Models\User::class)␍␊
························{!!·link_to_route('frontend.users.user.create',·__('users.create'),·[],·['class'·=>·'btn'])·!!}␍␊
····················@endcan␍␊
················
␍␊
············
␍␊
········
␍␊
····
␍␊
@endsection␍␊
@section('footer')␍␊
@stop␍␊

 $  yarn run -s prettier test29.blade.php --end-of-line crlf | cat -A

...
········
␍␍␊
····
␍␍␊
@endsection␍␍␊
@section('footer')␍␍␊
@stop␍␍␊

2nd time
 $  yarn run -s prettier test29.blade.php --end-of-line crlf -w
test29.blade.php 477ms
 $  yarn run -s prettier test29.blade.php --end-of-line crlf | cat -A
@extends('frontend.layouts.app')␍␍␊
␍␍␊
@section('head')␍␍␊
␍␍␊
@endsection␍␍␊
␍␍␊
@section('title')·foo␍␍␊
␍␍␊
@endsection␍␍␊
␍␍␊
@section('content')␍␍␊
␍␍␊
····
␍␍␊
␍␍␊
········
␍␍␊
␍␍␊
············
␍␍␊
␍␍␊
················

␍␍␊
␍␍␊
················
@lang('users.index')
␍␍␊
␍␍␊
············
␍␍␊
␍␍␊
············
␍␍␊
␍␍␊
················
␍␍␊
␍␍␊
····················@foreach·($tree·as·$users)␍␍␊
························
␍␍␊
␍␍␊
····························␍␍␊
␍␍␊
····························{{·link_to_route('frontend.users.user.show',·$users['name'],·$users['_id'])·}}␍␍␊
␍␍␊
························
␍␍␊
····················@endforeach␍␍␊
␍␍␊
················
␍␍␊
␍␍␊
················
␍␍␊
␍␍␊
····················@can('create',·App\Models\User::class)␍␍␊
························{!!·link_to_route('frontend.users.user.create',·__('users.create'),·[],·['class'·=>·'btn'])·!!}␍␍␊
····················@endcan␍␍␊
␍␍␊
················
␍␍␊
␍␍␊
············
␍␍␊
␍␍␊
········
␍␍␊
␍␍␊
····
␍␍␊
␍␍␊
@endsection␍␍␊
␍␍␊
@section('footer')␍␍␊
␍␍␊
@stop␍␍␊

I don't know what happen but it maybe conflicts prettier's EOL behaviour.

@shufo yeah that's super weird. I get the same behavior.
I tried a different approach: Roll back the changes from this PR and in stead force blade-formatter to use LF by adding a .bladeformatterrc.json file with {"endOfLine": "LF"}.
This works as intended when I run blade-formatter from the command-line.
But when I run prettier, it still replaces LF with CRLF on Windows. Does blade-formatter ignore .bladeformatterrc when it's called from the plugin?

Hi, is there any way to fix this
I have prettier and git configured to use LF endings on a Windows Machine, but blade files are still being formatted to CRLF.
Thanks for the help


Use official tkn-cli image

Ref: https://issues.redhat.com/browse/EC-425
Before you complete this pull request ...
Look for any open pull requests in the repository with the title "e2e-tests update" and
see if there are recent e2e-tests updates that will be applicable to your change.

@zregvart , I wonder if the shellspec failures are due to that image requiring authentication. Not sure how to plumb creds through.

This is gonna require a bit of work to get the shellspec tests to work due to the creds problem. Separated the yamllint fix into its own PR: https://github.com/redhat-appstudio/build-definitions/pull/828

@zregvart , I wonder if the shellspec failures are due to that image requiring authentication. Not sure how to plumb creds through.

Yeah, starting the setup pod timed out, which is most likely because pulling the image failed. The image from the setup pod is the one used in the task.
Not sure how to pass credentials to a pull request, running this on the pull request Tekton pipeline might be an option. We need to make sure not to leak the pull secret.

The e2e tests are failing. I believe it's because it's taking Chains about 14 minutes to create the attestation :scream:

/retest


math: \$ in inline math

Description
MWE:
$x = \$$

Screenshot:

Gitea Version
1.22.0+dev-181-g76a85a4ce
Can you reproduce the bug on the Gitea demo site?
Yes
Log Gist
No response
Screenshots
No response
Git Version
No response
Operating System
No response
How are you running Gitea?
https://try.gitea.io/
Database
None

Note that this is not a KaTeX issue; it renders x = \$. The type/report-upstream label is probably misplaced.

Still an issue on 1.23.0+dev-753-gc5422fae9a (Dec 2024)

I am refactoring the render module, I think it will be fixed in 1.23, soon

1.23 nightly is ready and I think it should have been fixed, feel free to take a try

Confirmed fixed.


Support Functions as default values

Hi,
currently, only CURRENT_TIMESTAMP and given values are supported as default column values.
It would be nice to support default values based on DB functions, for example uuid generation as primary key.
If this is an useful addition, we are going to work on a nicer solution instead of a simple one. Feedback welcome!

=> https://github.com/cakephp/phinx/issues/1445


Ideas to simplify the circuit

Hi,
thanks for sharing your project and for the explanation write-up.
Your design uses 2 MCU pins to drive one TIC (tested IC) pin. I was wondering whether this could be simplified and only one MCU pin could be used (to drive or sense one TIC pin)  for a simpler testing device - basically to test 14-pin-only 74xx logic devices where the VCC and GND are on the fixed position.

VCC and GND: fixed on specific TIC pins, hardwired on the board
TIC input: arduino pin set as output with value 0/1 depending on the test case
TIC output: arduino pin set as input either with or without internal pull-up. Each pin would be also pulled Down externally with very weak resistor (~300k - 500k) so that the internal arduino pull-up (if set) can still drive the pin high (overriding the external pull down). Also the TIC should have no problem to overdrive the external pull-down when it sets the level High. The High Z could also be tested by both enabling internal Pull-Up (and read value from the pin) then disabling the internal pull-up (and read the value from the pin). In the first case the pin should read H and in the second case the pin should read L to verify the TIC pin is really in high Z state. Open collector pin tests should also work (I think) by setting the MCU pin with internal pull-up, which the TIC pin should be able to drive L.
All data pins would have a 2k2 resistor in series as a protection from damaged TIC pin / logic

Of course such design would be limited to a subset of TIC devices, but could eliminate the external GPIO chips. Basically the device would only consist of the Arduino, the ZIF socket, VCC decoupling and bunch of resistors. Simple to build on a bread board or protoboard in a few hours.
Any ideas ? Any situations where it would not work, or would not work reliably? Thanks.
EDIT: actually, it seems Arduino has enough pins to drive even 16 pin TICs (I forgot about the analogue pins that can be used as digital as well). The GND pin 7 (on 14 pin ICs) could be enabled or disabled via mosfet. The GND pin 8 (on 16 pin ICs) could be hardwired. VCC stays on the same pin position on the ZIF socket.

Yeah the setup is for driving power and also open circuit.
If you have fixed power then just hard wire that.
I do not think the highz / open circuit detection will work without my design though.

Thanks for the reply. Your unedited answer nudged me to try that. :)  And it seems to work so far. The test code is like that:
            case 'Z':
                {
                    uint16_t x = 0;
                    Serial.print("Test pin: ");
                    Serial.println(pinIndex);
                    while(x++ < 10){
                        pinMode(p, OUTPUT);
                        digitalWrite(p, 0); // force the pin Low
                        delayMicroseconds(20);
                        pinMode(p, INPUT_PULLUP); //weak internal pull up should raise the pin High
                        delayMicroseconds(100);
                        if (digitalRead(p) != 1) { //test the pin is High
                            res++;
                            testResult[i] = 'E';
                        }
                        digitalWrite(p, 1); // force the pin High
                        delayMicroseconds(20);
                        pinMode(p, INPUT); //weak external pull down should set the pin Low
                        delayMicroseconds(100);
                        if (digitalRead(p) != 0) { //test the pin is Low
                            res++;
                            testResult[i] = 'E';
                        }
                    }
                    pinIndex++;
                }

I also scoped the pins to give me and idea how it works and it looks good. This was tested on a pin with no IC attached.


Switch User Select Box = Nil

Hello,
the switch user Gem works perfectly on my local env. But when I run my application (live) on heroku, the switch_user_select is nil. User.all is not nil.


2.3.1 causing panic error on terraform validate

Describe the bug
Recently upgraded to 2.3.1 version of the tf provider and now when running terraform validate, an error is thrown

Requirements for and issue

[ ] A fully functioning terraform snippet that can be copy&pasted (no outside files or ENV vars unless that's part of the issue)
[ ] Your version of artifactory (you can curl it at $host/artifactory/api/system/version
[x] Your version of terraform: 0.15.5

Expected behaviour
Terraform Validate command should return saying the The configuration is valid
Additional context
terraform {
  required_providers {
    artifactory = {
      source  = "jfrog/artifactory"
      version = "~>2"
    }
  }
}

provider "artifactory" {
  url     = "https://artifactory.example.com"
  api_key = "test-api-key"
}

Workaround: Downgrading to v2.2.15 of the provider

Somehow, it was missed in all the testing. I am digging into it now


get_checked node list return tree's id

Hi
i can't get checked nodes from tree, all solution was tested but does not resolved
i am using jstree with checkbox and always return value is tree's id
best regard

updated the document please?

No need, if you do not use tie_selection: false the *checked functions behave the same way as *selected.
Best regards,
Ivan

var nodeChecked= $('#idTree').jstree(true).get_checked($('#idTree').jstree(true)._model.data,true);


Svelte simple counter example

I've been tinkering around with crux and Svelte a little bit. I figured implementing the simple counter example might be useful to others as well.

@scholtzan ❤ Thank you so much for this! I added @parcel/config-default for pnpm users, but otherwise it looks great! Thank you for updating the docs too. This may be the thinnest shell implementation yet — I haven't used svelte before, but will deffo explore it.


SQL error in sharedwithme.php

From @tokudan on March 24, 2015 21:54
Another SQL error (not sure when it appeared first):
Mar 24 21:50:01 ashe postgres[5058]: [3-1] 2015-03-24 21:50:01 CET [5058-1] redmatrix@redmatrix ERROR:  column "item.object" must appear in the GROUP BY clause or be used in an aggregate function at character 13
Mar 24 21:50:01 ashe postgres[5058]: [3-2] 2015-03-24 21:50:01 CET [5058-2] redmatrix@redmatrix STATEMENT:  SELECT mid, object FROM item WHERE verb = 'http://activitystrea.ms/schema/1.0/update' AND obj_type = 'http://purl.org/zot/activity/file' GROUP BY mid;
Seems to originate from include/sharedwithme.php:6.
Copied from original issue: friendica/red#939

From @git-marijus on March 25, 2015 10:6
hopefully fixed in 4900510
please confirm

From @tokudan on March 25, 2015 15:55
I haven't seen this error since the update, so I guess it's fixed.


"Favorite" titles do not persist to sidebar

Favorites list is not utilizing "connection.name" in the sidebar.
This was refactored recently and needs to be re-verified that every instance was updated to use "connection.name" and not "connection.title" or "connection.label"

Creating a new connection also fails.

Fixed in release 0.4.2


add unit and functional test to the cloner controller

This important piece was intentionally omitted due to schedule pressure but needs to be done as the next pr for the cloner.

Scott, do you have time to work with Tzvi on this issue?

@jeffvance can it be that this issue belongs to https://github.com/kubevirt/containerized-data-importer?

Yes it does. Moved it. Sorry.


Update css

A minor change in CSS of team profile for dark mode.
Changes Required:

Change the name color to white or some relevant color.
Change social media logos to relevant color.

Can I work on this?

Yes, you can.

Thanks

The profile page is a class-based component so I'll need to use material-ui's withStyle instead of the makeStyle hook. what should I do?

Or I can change it to a functional component. May I?

#277 Please have a look

I have created a pull request that will solve this issue .https://github.com/technojam/technojam-frontend/pull/279

Can I work on this?


About dataset

Hello, I want to ask a question about the dataset.
Here, "Attack on 1,3,5 pixel perturbations (100 samples)" refers to the result of an attack on 100 images randomly selected from the original cifar10 dataset?
Or is it the result of generating 100 adversarial images for each of the 10,000 images in the cifar10 test dataset? Thank you！

The 100 samples refers to 100 images selected from the CIFAR10 dataset, for a total of 100 attacked images. The main reason it isn't tested on all images is due to the amount of time required, but you can increase this limit. From my observations, the small sample is fairly close to the true ratio of successful attacks.


How to do global settings for endpoint

In redux-api-middleware we can create a API call like below,
export function loadUsers() {
  return {
    [CALL_API]: {
      headers: { 'Content-Type': 'application/json' },
      endpoint: 'http://localhost:1337/users',
      method: 'GET',
      types: [LOAD_USERS_REQUEST, LOAD_USERS_SUCCESS, LOAD_USERS_FAILURE]
    }
  }
}

Problem is, for every request, am using the common end point http://localhost:1337 , Header content type and authorization token settings.
I need a place to set those settings globally,

I solved this by using another middleware before 'redux-api-middleware' that intercepts [CALL_API] actions and sets required options

@godcore  is it possible to share the code here?

@raj-adroit check this out. You can do it similarly.

Create a helper file (apiConstants.js):
export const BASE_API_URL = ((process.env.NODE_ENV == 'development') ? 'http://localhost:1337' : 'https://production-url.com')

/**
 * This function will return the headers to be used in the API calls. As they are all the same it makes sense to keep
 * this DRY.
 * @returns {Object}
 */
export function getHeaders() {
  return {
    'Accept': 'application/vnd.api+json',
    'Content-Type': 'application/vnd.api+json',
    'Authorization': 'Bearer ' + localStorage.getItem('id_token')
  }
}

Then have something like:
import { BASE_API_URL, getHeaders } from `/path/to/apiConstants.js`

export function loadUsers() {
  return {
    [CALL_API]: {
      headers: getHeaders,
      endpoint: BASE_API_URL + '/users',
      method: 'GET',
      types: [LOAD_USERS_REQUEST, LOAD_USERS_SUCCESS, LOAD_USERS_FAILURE]
    }
  }
}


Is there a way to access fault data on API requests, instead of returning None?

For example the Trading API might return a negative response while creating or updating orders, see for example the error response in  https://github.com/Chavithra/degiro-connector/pull/50#issuecomment-997392518
{"errors": [{"text": "Le prix renseigné (300.0500) ne respecte pas la tick size (écart minimal entre les décimales). Le prix doit être un multiple de (0.1000)."}]}

However, this is only observed in the CRITICAL Logging.
The functions check_order(), confirm_order() and update_order() will return just None in case of an error.
It's important to know what the cause of the error is. Is it for example an error with the order (such as the example above), which is refused by DeGiro?
Or is it caused by a server error (HTTP Status codes) or even no internet connection (HTTP Connection error)?
This data seems already present in the underlying code of the Connector, as can be seen in the Logging messages.
Would it be possible to use this in the response of the functions?
For example the standard output of these functions can be a dict with 3 parameters. Here the response of a successful request:
{
   "http_status" : 200
   "result" : True
   "error" : None
}

where result can also contain a dict, for example with the current response from check_order()
In case of a DeGiro error, it will look like:
{
   "http_status" : 200
   "result" : False
   "error" : 'Le prix renseigné (300.0500) ne respecte pas la tick size (écart minimal entre les décimales). Le prix doit être un multiple de (0.1000).'
}

In case of a Network error, it will look like:
{
   "http_status" : 500
   "result" : False
   "error" : 'The server has an internal error.'
}

This information is useful for our script, to decide what fault action to take. E.g.

updating an order
a retry
an abort ("call the manager" 😃)

Please let me know if this is possible.

Hi, did you try with the latest release and setting raw=True ?

@Chavithra Thanks for the tip, will try later this week.

@Chavithra Best wishes for the New Year.
I've tried the confirm_order() with raw==True of version 2.0.13 but I'm a bit puzzled.
When forcing the error that the limit price is way too low compared to the actual price, I see the following logging traces in the Terminal:
400
{"errors":[{"text":"Uw opgegeven prijs 0.8900 is te laag ten opzichte van de laatste koers 4.4900. De minimum limietprijs is 3.4900."}]}
{'errors': [{'text': 'Uw opgegeven prijs 0.8900 is te laag ten opzichte van de laatste koers 4.4900. De minimum limietprijs is 3.4900.'}]}

These seems to match with the following code section: https://github.com/Chavithra/degiro-connector/blob/e950396191d85c28a0ee304dc531684458dc6218/degiro_connector/trading/actions/action_confirm_order.py#L140-L148
It consists of 3 calls to logger.fatal(), where:

L143 shows status code 400
L144 shows text
L147 shows basically the same as L144 and misses de HTTP status code (400 in this case)

Also the received dict from confirm_order() is the text without the status code:
2022-01-02 19:41:37,609 INFO     BRKR: DeGiro confirm_order() response:
{'errors': [{'text': 'Uw opgegeven prijs 0.8900 is te laag ten opzichte van de laatste koers 4.4900. De minimum limietprijs is 3.4900.'}]}

How to get the HTTP status code inside the raw response of confirm_order()?

Hi @funnel20,
Thanks
Happy New Year to you too !
How about returning :

the requests.Response object
or a specific Error including the requests.Response object
or a specific Error including : text + status_code

I think the Tuple is too implicit.
Also I am wondering :

how to change of interface can impact the other users ?
if it's possible to use the same error handling system for all the Actions ?

@Chavithra
To start with your most important question: we're discussing changes to the output of existing functions.
So this means breaking changes that impact all users. So it's a major update to version 3.0 of the connector.
Having that said, most users are probably making apps to automate their trading. Meaning they put their money at risk.
Therefor it's inevitable to have proper fault detection and fault handling on the API calls.
And this answers your last question: yes, we should provide it consistently on all API calls; TraderAPI and QuoteCastAPI.
I've thought about possible solutions to minimise the migration impact, which allow to supply a migration script, as you have done previously for breaking changes.
Current situation
First I'd like to have a proper understanding of the meaning of parameter raw. As it's currently implemented I conclude this:

False
The Connector parses the  HTTP Response body and returns the desired properties with Python names as a dict. Sometimes a time stamp is added, which can be misleading, as it's not the timestamp of the DeGiro acceptance, but the current system time upon reception of the response.
True
The JSON body of the HTTP Response object is returned as a dict

This current implementation does not allow proper fault handling, since both options for raw lack fault data:

False
Returns None in case of any requests.HTTPError, without sharing the details.
True
The JSON body of the HTTP Response contains no HTTP fault data, only the errors dict, which is a localised string from DeGiro. This does not report about any of the HTTP Connection faults.

Not all API calls support  parameter raw (e.g. trading_api.connect()).
Proposal
I'm new to Python, but am an iOS developer for 13 years. In iOS it's common that most API calls return 2 objects:

The happy flow response object
A non-happy flow error object

Only one of the 2 contains data depending of a successful or erroneous result, the other is always None. I've discovered that Python has a similar function output, a Tuple.
Based on this, my proposal would be the following, as indicated by this pseudo-code example:
def confirm_order(raw: bool = False) -> Tuple[Any, dict]:
    """
    When `raw` is set to `False` (default), a Tuple is returned with 2 arguments:
    `response`
    `error`

    On a successful call `response` contains the requested data, while `error` is `None`.
    When a fault occurs, `response` is `None` and `error` contains the details.

    When `raw` is set to `True`, the `requests.Response` object is returned as single output.
    This also contains error data, so no need for a separate argument.
    """
    # Make HTTP request to DeGiro:
    requests = ...

    # Return result:
    if raw:
        # Return the entire `Response`` object as only argument:
        return requests.Response
    else:
        if requests.Response.status_code == 200:
            # When OK, parse `Response` and return as first dict, while setting error argument to None:
            return {"order_id" : "123456"}, None
        else:
            # Parse DeGiro fault data from body (or the `ConnectionError` in case there is even no response) and return as second dict. The response dict should be None:
            return None, {"status_code" : requests.Response.status_code, "error" : "Some error from DeGiro"}

Of course we can discuss the exact content of the new error output argument.
For the default raw is False, the Tuple can be unpacked and allows proper optional fault handling:
response, error = confirm_order()
if response:
    print(response)
    # Do the happy flow actions
else:
    print(error)
    # Handle the error

For raw is True a single argument is returned and the developer can optionally do its custom fault handling on the requests.Response object, e.g. the HTTP Status Code:
response = confirm_order(raw=True)
status_code = getattr(response, "status_code")
if  status_code == 200:
    print(response.json())
    # Do the happy flow actions
else:
    print(status_code)
    # Handle the error

Migration Guide
This proposed new output is close to the existing implementation for both values of raw:

False(default)
The first argument response of the Tuple is exactly the same as the current; a dict on success, and None on error.
Consider the original code from a user:
https://github.com/Chavithra/degiro-connector/blob/cb62896b056ed79843974be039b96b7588ce4d68/examples/trading/order.py#L47
The only change that should be done for migration is either add the second error argument for the unpacking:checking_response, error = trading_api.check_order(order=order)

Or get the first argument by index:checking_response[0] = trading_api.check_order(order=order)

True
The current implementation returns the JSON body from the requests.Response object as dict
https://github.com/Chavithra/degiro-connector/blob/e950396191d85c28a0ee304dc531684458dc6218/degiro_connector/trading/actions/action_confirm_order.py#L139
The proposed new output contains the entire requests.Response object.
So the migration would be as simple as applying the .json() on the function response:checking_response = trading_api.check_order(order=order, raw=False)
checking_response = checking_response.json()

Since these migration steps are straightforward, I expect that both can be applied in a migration script to help your users migrate automatically.
Note
When you agree upon expanding the default output for raw is False with error data, I personally don't need to use raw is True. And thus no changes required to its output. However, from a technical perspective it should be appropriate to supply as much of raw data as requested by raw is True.

The pythonic way to do error handling would be to throw an exception, and the exception object could contain the status code and error message.
An alternative to providing a migration script could be to  have exceptions enabled by an option, and log a warning message when the option is not enabled (i.e. "Deprecation warning: error handling with exceptions not enabled, see [some documentation link]"). Then, in perhaps 2-3 months, make exceptions the default and remove the optional argument.

Thanks @e9henrik for your better suggestion. Like mentioned I'm new to Python, so if exceptions are the way to go; perfect.
Out of curiosity; can an exception contain more than just an error message string, like a dict?

Sure. Exceptions are first class python objects. See for example https://www.programiz.com/python-programming/user-defined-exception

Awesome, thanks for teaching me something new this morning.

An alternative to providing a migration script could be to have exceptions enabled by an option, and log a warning message when the option is not enabled (i.e. "Deprecation warning: error handling with exceptions not enabled, see [some documentation link]"). Then, in perhaps 2-3 months, make exceptions the default and remove the optional argument.

Great idea. This would even prevent breaking changes. It can just be a boolean that defaults to False, similar to parameter raw.

Hi @Chavithra , what do you think of the solution by @e9henrik with exceptions and an additional input parameter to prevent breaking changes (and a migration guide/script)?

Hi @Chavithra , what do you think of the solution by @e9henrik with exceptions and an additional input parameter to prevent breaking changes (and a migration guide/script)?

Hi @funnel20, I think its a good idea.
I won't have the time this month to implement it.
Feel free to join me on Discord if you want to talk about this.

Hi @Chavithra , I don't have (or want) Discord. Since we're no longer talking about breaking changes, is it an idea that we can formulate the requirements here. Once we have mutual understanding and an agreement, I'm happy to code a PR for just 1 function, e.g. Trading API connect(). We can do some iterations, or accept it as a solution. Then it will probably be more or less copy/paste to the other functions, to have the exact same behaviour.

Hello @funnel20, alright will try to formulate a specification tonight (or during the week if I can't tonight).

Here is my requirement proposal.
Currently
When an action fails we are :

logging the error (HTTPError, JSONDecodeError,...)
returning None

New behaviour
We will add a new parameter to an action.
When this parameter is enabled, on action fail we will :

log the error
raise an Exception

When this parameter is disabled, we will :

log the error
return None

The raised Exception needs to contain :

raw http request
raw http response

Hi @Chavithra , this looks good, especially since it will be a seamless update for exiting projects.
Two questions:

For the returned Exception, do you want to forward the raised exception (HTTPError, JSONDecodeError,...), or make a custom one, or even custom ones?
Is there a need / reason to return the http request in the Exception? I expect the http response is sufficient, as that contains the HTTP Status Code and the (JSON) response body.

Hi @funnel20,

Whatever you think makes the most sense.
Although I don't know if HTTPError (or others) can store details about the request/response
Better be safe than sorry : I think it will allow more possibilities for the user of this library

Good one. As also indicated by @e9henrik we can make a custom Exception to handle our dedicated set of return parameters. But when for example a ConnectionException occurs (e.g. no internet connection), there is no http response. So we can either populate that return parameter as None, but then the exception parser still has no idea about the root cause and what kind of action should take place. So probably it's better to return a dedicated custom Exception for each possible Exception that the API connection and parsing can raise.
That's often not the best rational for a requirement. But if you insist

I've been prototyping today and discovered that the exceptions that are raised by the requests library already have the request and response objects as can be seen in the source code of the RequestException 👍
All other exceptions, such as HTTPError, ConnectTimeout, ConnectionError and JSONDecodeError, inherit from RequestException.
Proposed changes
Based on your existing code of version 2.0.14 (for example for update_order()) I made a generic request handler for fictitious call get_data of class API:
class API:
    def get_data(self, raise_exception:bool=False) -> str:
        try:
            # Make GET request to server and use JSON response body:
            response_raw = requests.request("GET", "https://api.github.com/users/google")
            response_raw.raise_for_status()
            response_dict = response_raw.json()
        except requests.exceptions.HTTPError as exception:
            self.handle_exception(exception, raise_exception, True)
            return None
        except Exception as exception:
            self.handle_exception(exception, raise_exception)
            return None

        # Do something with `response_dict`...

        return response_raw.status_code == 200

Notes

The new optional input parameter raise_exception that defaults to False for a seamless migration of existing users.
For the simplicity of this proposal I've left out the input parameter raw.
The current code handles specific HTTPError (to print details to terminal) and the generic Exception.

These 2 exceptions are handled generically in method handle_exception():

The existing behaviour is performed when raise_exception is False. The only new feature is the Tip in the terminal about this new input parameter.
The new behaviour when raise_exception is True, is as simple as forwarding the existing exception.

    def handle_exception(self, exception:Exception, raise_exception:bool, is_http_error:bool=False):
        if raise_exception:
            # Forward standard exceptions, such as `HTTPError`, `ConnectTimeout`, `ConnectionError` and `JSONDecodeError`:
            raise(exception)
        else:
            # Show details in terminal.
            # This is the current behaviour of version 2.0.14, see: https://github.com/b-aeby/degiro-connector/blob/c9a9a236eb89a50f0141a16603d028eaef3e8c58/degiro_connector/trading/actions/action_update_order.py#L126-L129
            if is_http_error:
                status_code = getattr(exception.response, "status_code", "No status_code found.")
                text = getattr(exception.response, "text", "No text found.")
                logging.error(status_code)
                logging.error(text)
            else:
                logging.error(exception)

            # Migration idea: Teach user about new feature:
            logging.info("Tip: set property `raise_exception` to `True` when calling this function and catch these fault details as exception `{0}`.".format(ExceptionUtils.get_full_class_name(exception)))

Notes

The line to show the tip contains a reference to ExceptionUtils.get_full_class_name(). It will return a string like "requests.exceptions.ConnectTimeout". The source code can be found in the executable example at the bottom of this post.

Existing usage
Existing users will still use the function call without argument:
    # Init API:
    api = API()

    # Make an API call:
    my_data = api.get_data()
    logging.info("Received data from server:\n{0}".format(my_data))

This will either:

return True for HTTP 200
return None and show logs in the terminal in case of an error. For example for HTTPError:ERROR:root:404
ERROR:root:{"message":"Not Found","documentation_url":"https://docs.github.com/rest"}
INFO:root:Tip: set property `raise_exception` to `True` when calling this function and catch these fault details as exception `requests.exceptions.HTTPError`.
INFO:root:Received data from server:
None

New usage
Add parameter raise_exception to the function call and set it to True. Embed the call in a try/except condition and handle whatever specific or generic exceptions:
    # Init API:
    api = API()

    # Make an API call:
    try:
        my_data = api.get_data(raise_exception=True)
        logging.info("Received data from server:\n{0}".format(my_data))
    except requests.exceptions.HTTPError as exception:
        logging.error("HTTPError: {0}".format(exception))
        logging.error("Server responded with HTTP Status code {0} and {1} on {2} request.".format(ExceptionUtils.http_status_code(exception), exception.response, exception.request))
    except requests.exceptions.ConnectTimeout as exception:
        logging.error("ConnectTimeout: {0}".format(exception))
    except requests.exceptions.ConnectionError as exception:
        logging.error("ConnectionError: {0}".format(exception))
    except Exception as exception:
        logging.error("Exception: Failed to connect to server with exception: {0}".format(exception))

This will either:

return True for HTTP 200
return None and show logs in the terminal in case of an error. For example for HTTPError, which demonstrates the existence of the request and response objects:ERROR:root:HTTPError: 404 Client Error: Not Found for url: https://api.github.com/users/google
ERROR:root:Server responded with HTTP Status code 404 and <Response [404]> on <PreparedRequest [POST]> request.

Notes

The line to show the HTTPError details contains a reference to ExceptionUtils.http_status_code(). It's a convenient method to return the HTTP Status Code as integer (e.g. 404). The source code can be found in the executable example at the bottom of this post. Of course this is also possible by exception.response.status_code, but that might raise a AttributeError in case the exception has no response attribute.

Working example
Here is the code for a working example. It shows the current output in the Terminal, and the new output when using raise_exception. Just copy/paste everything in a file test.py and run.
Note that the comments in get_data() contain instructions to force different exceptions.
import logging
import requests

class ExceptionUtils:
    def get_full_class_name(obj) -> str:
        """
        Returns the full class name of an object.

        Example
        -------
        Get the full class name of a specific `Exception`, for instance from the `requests` library:
        ```
        try:
            response = requests.request("GET", "https://wwz.google.com")
        except Exception as exception:
            print(get_full_class_name(exception))
        ```
        This will print `requests.exceptions.ConnectionError`.
        """
        # See: https://stackoverflow.com/a/58045927/2439941
        module = obj.__class__.__module__
        if module is None or module == str.__class__.__module__:
            return obj.__class__.__name__
        return module + '.' + obj.__class__.__name__

    def http_status_code(exception:Exception) -> int:
        """
        Convenience method to return the HTTP reponse status code from an `Exception`.

        When there is no `response` object or it has no information about the status code, `0` is returned.

        For the description of the HTTP status codes, see: https://en.wikipedia.org/wiki/List_of_HTTP_status_codes.
        """
        if hasattr(exception, 'response') and hasattr(exception.response, 'status_code'):
            return exception.response.status_code
        else:
            return 0

class API:
    def get_data(self, raise_exception:bool=False) -> str:
        try:
            # To force the following exceptions:
            # - HTTPError       : change method from "GET" to "POST"
            # - ConnectionError : change "github" in `url` to "git44hub"
            # - ConnectTimeout  : change `timeout` from 30.001 to 0.001
            # - JSONDecodeError : change `url` from "https://api.github.com/users/google" to "https://api.github.com/zen"

            # Make GET request to server and use JSON response body:
            response_raw = requests.request("GET", url="https://api.github.com/users/google", timeout=30.001)
            response_raw.raise_for_status()
            response_dict = response_raw.json()
        except requests.exceptions.HTTPError as exception:
            self.handle_exception(exception, raise_exception, True)
            return None
        except Exception as exception:
            self.handle_exception(exception, raise_exception)
            return None

        # Do something with `response_dict`...

        return response_raw.status_code == 200

    def handle_exception(self, exception:Exception, raise_exception:bool, is_http_error:bool=False):
        if raise_exception:
            # Forward standard exceptions, such as `HTTPError`, `ConnectTimeout`, `ConnectionError` and `JSONDecodeError`:
            raise(exception)
        else:
            # Show details in terminal.
            # This is the current behaviour of version 2.0.14, see: https://github.com/b-aeby/degiro-connector/blob/c9a9a236eb89a50f0141a16603d028eaef3e8c58/degiro_connector/trading/actions/action_update_order.py#L126-L129
            if is_http_error:
                status_code = getattr(exception.response, "status_code", "No status_code found.")
                text = getattr(exception.response, "text", "No text found.")
                logging.error(status_code)
                logging.error(text)
            else:
                logging.error(exception)

            # Migration idea: Teach user about new feature:
            logging.info("Tip: set property `raise_exception` to `True` when calling this function and catch these fault details as exception `{0}`.".format(ExceptionUtils.get_full_class_name(exception)))

def main():
    # Clear Terminal via "ESC c", see: https://stackoverflow.com/a/34388642/2439941:
    print("\033c")

    # SETUP LOGGING LEVEL
    logging.basicConfig(level=logging.INFO)

    # Init API:
    api = API()

    # Make an API call:
    # 1) Seamless migration for existing usage without the new optional `raise_exception`
    my_data = api.get_data()
    logging.info("Received data from server:\n{0}".format(my_data))

    # 2) New usage with the new optional `raise_exception` to parse all kind of faults:
    logging.info("Use EXCEPTION".format(my_data))
    try:
        my_data = api.get_data(raise_exception=True)
        logging.info("Received data from server:\n{0}".format(my_data))
    except requests.exceptions.HTTPError as exception:
        logging.error("HTTPError: {0}".format(exception))
        logging.error("Server responded with HTTP Status code {0} and {1} on {2} request.".format(ExceptionUtils.http_status_code(exception), exception.response, exception.request))
    except requests.exceptions.ConnectTimeout as exception:
        logging.error("ConnectTimeout: {0}".format(exception))
    except requests.exceptions.ConnectionError as exception:
        logging.error("ConnectionError: {0}".format(exception))
        logging.error("Server responded with HTTP Status code {0} and {1} on {2} request.".format(ExceptionUtils.http_status_code(exception), exception.response, exception.request))
    except Exception as exception:
        logging.error("Exception: Failed to connect to server with exception: {0}".format(exception))

# Run main
if __name__ == "__main__":
    main()

That's a great work @funnel20 !
Will check that in detail the following days and give you my feedback.

Is it possible to share more examples on the degiro api? How you ise it? I would love to integrate it with backtrader, any ideas how to do that? Regards

Is it possible to share more examples on the degiro api? How you ise it? I would love to integrate it with backtrader, any ideas how to do that? Regards

@samardzicd Please respect the GitHub rules by commenting on-topic to an issue. You ask a general question that has nothing to do with this particular issue.
The docu for each function contains example code and often a reference to a sample script, for example how to login. How much more examples do you need?
So either read the docu and play around with the examples, or open a new issue with a specific question.

My bad, will respect the process.

My bad, will respect the process.

@funnel20 is right : opening another issue for theses points will help the tracking and make sure I won't forget about it
Will love to have this repo used in backtrader !
Let us know which examples you would like (in another issue).

@funnel20 seems good to me.
I think this should be implemented in an actual PR for instance for check_order.
This way we can bot fetch it and check for :

edge cases
possible improvements

Might also be able to add unittest to mock :

exceptions raising
api calls

Thanks

@Chavithra Awesome. I'd love to create a PR.
Few questions:

What do you think of the suggested parameter name raise_exception?
In my example I created the ExceptionUtils helper class. Do you think this is correct. If so, any suggestion where in your project I can add this class? Or can I add the functions to an existing class?

That's a great work @funnel20 !
Will check that in detail the following days and give you my feedback.

@Chavithra Any comments on my proposal would be appreciated. And if you agree, please answer my question on how to integrate this in the current project.


Combining environment variables with a config file does not appear to honor environment variables

Trickster Version: 1.1.2
When attempting to build a trickster environment on-demand, my team attempted to use a combination of environment variables as well as a .conf file. However, it does not appear that there is any convergence of multiple configuration sources. It appears that if a configuration file is present, only the options chosen in the configuration file are honored, and there's no supplementing of any options that are only configured in environment variables.
For example, if there is no origin_url = 'http://host:port' in the configuration file, it was assumed that the value of TRK_ORIGIN would be used. However, it appears that is not the case. Even with a TRK_ORIGIN environment variable and no origin_url option supplied in the configuration file, it doesn't seem to be supplying the trickster process with any origin information.
When reading the documentation, it appeared at first that a config while would be read, and then any options not supplied in the config file, but found in environment variables (or thirdly command line options) would be detected and then converged into the running config for the Trickster process. Upon re-reading, I can see that it may not be the case.
So I think this issue boils down to a few topics:

Am I understanding correctly that this is behaving as designed?
If #1 is correct, it would be awesome if the running configuration was converged from multiple sources.
It would be even more awesome if all possible configuration options were tunable via environment variables. :smile:

I believe I've committed a variant of the X Y Problem. The documentation refers to TRK_ORIGIN, however I believe it should be TRK_ORIGIN_URL. Then, without a proper TRK_ORIGIN_URL, it appears that loader.go won't even bother with pulling in TRK_ORIGIN_TYPE.
So at the moment, this is appearing to be a simple matter of a misnamed environment variable causing the most visible problem we were experiencing. I'll have a PR for the documentation fixup here in a moment!

Hey Wesley. The idea behind ENV and CLI is that they are overrides to a functioning base config and are (currently) meant for very simple configurations that use a default origin. The base config file is checked for for completeness before overlaying ENV and CLI values. So if the config file does not include an origin_url for the default origin, trickster should fail out at startup, even if you have provided one of the overlays. That means, so long as you put something in the origin_url for the default origin, the overrides should work properly. Overrides only apply to the origin named default and the cache named default.
The 2.0 release will support overriding any value via ENV, similar to how it is implemented in Grafana, as well as sourcing multiple config files together (so you can have a common file, plus a customization file for a particular instance deployment). When we have functionality baked in, I'm definitely down for allowing the entire config to be run via ENV and flags. These enhancements probably won't make it into the first 2.0 beta, but it will be included before GA.
BTW, v1.1.3 was released just a few days ago; I would recommend upgrading, as it makes 2 significant fixes to InfluxDB stability and cached data integrity.

Great! Thanks for the clarity. Good to know and we can run with that.

The 2.0 release will support overriding any/all values via ENV, similar to how it is implemented in Grafana, as well as sourcing multiple config files together (so you can have a common file, plus a customization file for a particular instance deployment).

That sounds like an absolute dream! Looking forward to it. (Grabbing v1.1.3 for testing in three, two, one...)


not work when use parallel desktop

Describe the bug
How does the program work in its current state? A clear and concise description of what you expected to happen.
Steps to reproduce

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behaviour
How do you think the program should work? Add screenshots and code blocks if necessary
Screenshots
If applicable, add screenshots to help explain your problem.
Environment
You may write here the specifications like the version of the project, operating system, or hardware if applicable.
Desktop (please complete the following information):

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Logs / Stack trace
Insert your log/stack trace here

Hi @lotosbin, can you tell us more specifically about this issue 🤔
It would be nice if there is any image, thank you 👍

@phucledien sorry, my mistake.
I moved '>' to left of '|', then it not works.


fsr 2.1 - Cyberpunk 6800M/hybrid crash when 4k

fsr 2.1 latest crashes when cyberpunk opens.

update the game to 1.6 - should work fine then ;)


python run_benchmark.py -b cholesky2 -f dace_cpu does not work on Macbook

I have been trying to run the benchmarks on my 2019 (Intel) Macbook and this particular benchmark + framework combination seems broken on that machine. I get the following error (truncated; full error):
[ 25%] Linking CXX shared library libfusion.dylib
Undefined symbols for architecture x86_64:
  "_LAPACKE_dpotrf", referenced from:
      __program_fusion_internal(fusion_state_t*, double*, long long) in fusion.cpp.o
ld: symbol(s) not found for architecture x86_64
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [libfusion.dylib] Error 1
make[1]: *** [CMakeFiles/fusion.dir/all] Error 2

On the other hand, on a linux machine, everything seems to go just fine. I have not tried with the newer (M1) Macs, so perhaps it is only present in the older Macbooks.

Side-note: the dependency installation does not exactly work as stated in README.md for me. I now have the following changes to explicitly include additional dependencies:
diff --git a/requirements.txt b/requirements.txt
index 5c2e18f..83cbdf9 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,5 +1,9 @@
-matplotlib
-numpy
-pandas
-pygount
+matplotlib~=3.9.2
+numpy~=1.26.4
+pandas~=2.2.2
+pygount~=1.8.0
 scipy
+dace~=0.16.1
+numba~=0.60.0
+sympy~=1.13.2
+npbench~=0.1

This looks like it is related to MacOS and DaCe. Have you tried the MacOS instructions in https://spcldace.readthedocs.io/en/latest/setup/installation.html#common-issues-with-the-dace-python-module ?

I am using ~/.dace.conf to 1) use openblas library (installed through homebrew), and 2) select g++ or clang++ compilers (both installed through homebrew). Not quite sure if there is anything else significant from the common-issues page re. MacOS usage.
I show the errors for both compiler options below --- although, for GCC, all the benchmark programs break the same way, where for Clang, only  a small number of benchmarks like cholesky2 break.
Clang++
~ $ clang++ --version
clang version 18.1.8
Target: x86_64-apple-darwin24.0.0
Thread model: posix
InstalledDir: /opt/local/libexec/llvm-18/bin
~ $ cat ~/.dace.conf
compiler:
  cpu:
    executable: clang++
    args: -I/opt/local/include/openblas -L/opt/local/lib

(brandnewvenv) ~/g/npbench (main|✚2) $ rm -rf .dacecache
(brandnewvenv) ~/g/npbench (main|✚2) $ python run_benchmark.py -b cholesky2 -f dace_cpu 2>&1
***** Testing DaCe CPU with cholesky2 on the S dataset *****
NumPy - default - validation: 25ms
Failed to compile DaCe cpu fusion implementation.
Compiler failure:
[ 25%] Building CXX object CMakeFiles/fusion.dir/Users/pmz/gitspace/npbench/.dacecache/fusion/src/cpu/fusion.cpp.o
clang++: warning: argument unused during compilation: '-L/opt/local/lib' [-Wunused-command-line-argument]
[ 50%] Linking CXX shared library libfusion.dylib
Undefined symbols for architecture x86_64:
  "_LAPACKE_dpotrf", referenced from:
      __program_fusion_internal(fusion_state_t*, double*, long long) in fusion.cpp.o
ld: symbol(s) not found for architecture x86_64
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [libfusion.dylib] Error 1
make[1]: *** [CMakeFiles/fusion.dir/all] Error 2
make: *** [all] Error 2

Traceback (most recent call last):
  File "/Users/pmz/gitspace/npbench/brandnewvenv/lib/python3.12/site-packages/dace/codegen/compiler.py", line 232, in configure_and_compile
    _run_liveoutput("cmake --build . --config %s" % (Config.get('compiler', 'build_type')),
  File "/Users/pmz/gitspace/npbench/brandnewvenv/lib/python3.12/site-packages/dace/codegen/compiler.py", line 416, in _run_liveoutput
    raise subprocess.CalledProcessError(process.returncode, command, output.getvalue())
subprocess.CalledProcessError: Command 'cmake --build . --config RelWithDebInfo' returned non-zero exit status 2.

During handling of the above exception, another exception occurred:

< ...several more similar errors skipped... >

G++
~ $ g++-14 --version
g++-14 (Homebrew GCC 14.2.0) 14.2.0
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

~ $ cat ~/.dace.conf
compiler:
  cpu:
    executable: g++-14
    args: -I/opt/local/include/openblas -L/opt/local/lib

(brandnewvenv) ~/g/npbench (main|✚2) $ rm -rf .dacecache
(brandnewvenv) ~/g/npbench (main|✚2) [0|1] $ python run_benchmark.py -b cholesky2 -f dace_cpu 2>&1 | head -n 20
***** Testing DaCe CPU with cholesky2 on the S dataset *****
NumPy - default - validation: 25ms
Failed to compile DaCe cpu fusion implementation.
Compiler failure:
[ 25%] Building CXX object CMakeFiles/fusion.dir/Users/pmz/gitspace/npbench/.dacecache/fusion/src/cpu/fusion.cpp.o
In file included from /usr/local/Cellar/gcc/14.2.0/include/c++/14/cstdio:42,
                 from /Users/pmz/gitspace/npbench/brandnewvenv/lib/python3.12/site-packages/dace/codegen/../runtime/include/dace/dace.h:6,
                 from /Users/pmz/gitspace/npbench/.dacecache/fusion/src/cpu/fusion.cpp:2:
/usr/local/Cellar/gcc/14.2.0/lib/gcc/current/gcc/x86_64-apple-darwin23/14/include-fixed/stdio.h:83:8: error: 'FILE' does not name a type
   83 | extern FILE *__stdinp;
      |        ^~~~
/usr/local/Cellar/gcc/14.2.0/lib/gcc/current/gcc/x86_64-apple-darwin23/14/include-fixed/stdio.h:81:1: note: 'FILE' is defined in header '<cstdio>'; this is probably fixable by adding '#include <cstdio>'
   80 | #include <sys/_types/_seek_set.h>
  +++ |+#include <cstdio>
   81 |

< ...many, many more similar errors skipped... >

Keep in mind that not all DaCe configurations necessarily work for all benchmarks, although there is an effort to address such issues. The Clang error seems related to a problem linking to the BLAS/LAPACK library. Specifically:
Undefined symbols for architecture x86_64:
"_LAPACKE_dpotrf", referenced from:

POTRF is the LAPACK method for Cholesky decomposition, which the cholesky2 benchmark uses. I do not own a Mac, and I am unable to test it myself. I see that you are using OpenBLAS. Maybe you also need to add -lopenblas to the CPU args?
Unfortunately, I do not have any insight into the g++ error. There looks to be some issue with the stdio.h file, but this is unrelated to DaCe.


Is there a leak memory danger for express-session?

When I use express-session in production,it gives me a leak memory warning.
I see this sessionstore can be used for express,but I want to know if it solves the leak memory problem?
thx~

Do you mean with inmemory store? The inmemory implementation is the same...

yes,in-memory.
Does it have the same leak memory problem?

InMemory leaks by design... so yes!


Register new version

@JuliaRegistrator register

Error while trying to register: "Tag with name v0.1.1 already exists and points to a different commit"

Registration pull request created: JuliaRegistries/General/89342
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v0.1.2 -m "<description of version>" fde2c551cbf3dc47833bc1b452956d3e76125156
git push origin v0.1.2

Also, note the warning: This looks like a new registration that registers version 0.1.2.
Ideally, you should register an initial release with 0.0.1, 0.1.0 or 1.0.0 version numbers
This can be safely ignored. However, if you want to fix this you can do so. Call register() again after making the fix. This will update the Pull request.

@JuliaRegistrator register
Dev (v0.2) rewrite
Revise regNJ function:
It now only uses the memory space of a single distance matrix, and overwrites new nodes into one of the merged nodes. This does change the ordering of merges in the algorithm (i.e. the pseudoroot may change) but the unrooted tree is confirmed to be the same (i.e. patristic distances don't change).
Update testing framework:
followed SciML organization with safetestsets and made each testset a regular script
Update Docs:
added doctests, and new docstrings for heights and merges functions
Add benchmark suite:
I am now testing on matrices up to size 1024, with the revision regNJ seems much faster than before, but some of that seems to be testing on yuletree matrices rather than uniformly random matrices

Registration pull request created: JuliaRegistries/General/99737
Tip: Release Notes
Did you know you can add release notes too? Just add markdown formatted text underneath the comment after the text
"Release notes:" and it will be added to the registry PR, and if TagBot is installed it will also be added to the
release that TagBot creates. i.e.
@JuliaRegistrator register

Release notes:

## Breaking changes

- blah

To add them here just re-invoke and the PR will be updated.
Tagging
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v0.2.0 -m "<description of version>" f3b937fab6d7474b9e7765a5ff4a56cdb1e716c3
git push origin v0.2.0

Registration pull request updated: JuliaRegistries/General/99737
Tagging
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v0.2.0 -m "<description of version>" f3b937fab6d7474b9e7765a5ff4a56cdb1e716c3
git push origin v0.2.0


Decide on name for webrecorder and use that name consistently across the app

From previous discussion, I think we standardized on "Webrecorder"

All references changed to Webrecorder


Create a container image for Envoy

Similar to Linux, there should be a container image with Envoy.exe for Windows.
Following are some issues to investigate

Which Windows base container image to use?
Copyright notices

We ran into some challenges building Envoy with Bazel in a Windows container. Bazel uses symlinks heavily, and this caused major issues inside Windows containers.


set headers doesnot work

Environment

Operating System: Darwin
Node Version:     v14.18.0
Nuxt Version:     3.2.2
Nitro Version:    2.2.3
Package Manager<EMAIL_ADDRESS>Builder:          vite
User Config:      modules, unocss
Runtime Modules<EMAIL_ADDRESS>Build Modules:    -

Reproduction
// nuxt.config.ts
vite: {
  server: {
    headers: {
      'Cross-Origin-Embedder-Policy': 'require-corp',
      'Cross-Origin-Opener-Policy': 'same-origin',
    },
  },
}

Describe the bug
set headers doesnot work
Additional context

Logs
No response

In Nuxt, the Vite dev server doesn't have the same role it does in a Vite project and configuring it is generally not advised (because it may not work as you expect). Instead, you should set Nuxt route rules:
export default defineNuxtConfig({
  routeRules: {
    '/**': {
      headers: {
        'Cross-Origin-Embedder-Policy': 'require-corp',
        'Cross-Origin-Opener-Policy': 'same-origin'
      }
    }
  }
})

Thanks :)


Update html_resources.md

added HTML CSS Tutorials fromW3Schools to Websites

Thank you!
I see this is your first contribution to AlgoWiki.
Have some 🌮 from AlgoWiki Team. ❤ 👍
~
Vikesh

Thank You 🌮 ❤


keyboard manager afffects touch pad

Microsoft PowerToys version
0.66
Installation method
PowerToys auto-update
Running as admin
Yes
Area(s) with issue?
Keyboard Manager
Steps to reproduce
I have remapped my ctrl (left) to caps and caps to ctrl (left)
and i use magic trackpad 2 as a mouse (touch pad)
when i click 3button (mid click mapped in windows system) turning on keyboard manager remapping,
it opens windows DISPLAY project slide turning on or off caps lock.
turning off keyboard manager fix this issue.
✔ Expected Behavior
mid button when touch 3 points
❌ Actual Behavior
windows display project slide and toggle capslock
Other Software
No response

Is this issue still relevant in v0.74.1? /needinfo


Support for shared projects in vNext projects

Are there any plans to support shared project references in vNext projects?

Hi, can you clarify what exactly you mean by shared project references? You can use global.json to share projects amongst different solutions, and you can use features of project.json to include source code from arbitrary locations into your project as well. Are you looking for something else?

Hi, I am talking about shared projects introduced in VS 2015. As of now, they can't be referenced from vNext projects.

Oh those look cool :smile:
I'm not sure exactly how these would interact with ASP.NET 5 projects because they are quite separate from MSBuild and have to exist outside of VS.
Adding @barrytang and @mayurid from the web tooling team, and @davidfowl from the runtime team.

This is on our backlog.

If I am not mistaken you can already mark code as shared and have that included in all referencing projects.

I sees it's now possible to reference *.csproj from *.kproj. That's all I need right now :) Thank you!


ZD#1290963 clamp DayTime values

@hsume2 @gautamprabhu @craiglittle @pdeuter
Risks
Low - clamps values that are outside of time argument range

@jcheatham it's exactly 2015-10-17 24:00:00 UTC that can't be converted to America/Sao_Paulo time. So adding an hour and clamping back down to 86_400 is going to invoke this code with the same day_time, causing an infinite loop.
If you add this spec you'll see:
diff --git a/spec/schedule_spec.rb b/spec/schedule_spec.rb
index 8fecd60..75d3576 100644
--- a/spec/schedule_spec.rb
+++ b/spec/schedule_spec.rb
@@ -76,6 +76,24 @@ RSpec.describe Biz::Schedule do
     end
   end

+  describe 'ZD#1290963' do
+    let(:hours) {
+      {
+        sun: {'00:00' => '24:00'},
+        mon: {'00:00' => '24:00'},
+        tue: {'00:00' => '24:00'},
+        wed: {'00:00' => '24:00'},
+        thu: {'00:00' => '24:00'},
+        fri: {'00:00' => '24:00'},
+        sat: {'00:00' => '24:00'}
+      }
+    }
+    let(:time_zone) { 'America/Sao_Paulo' }
+    it 'should be ok' do
+      schedule.within(Time.parse('2015-02-03 16:10:25 UTC'), Time.now.utc)
+    end
+  end
+
   describe '#in_hours?' do
     context 'when the time is not in business hours' do
       let(:time) { Time.utc(2006, 1, 2, 8) }

superseded by https://github.com/zendesk/biz/pull/36

@jcheatham I do think we need to do something special if day_second exceeds 86_400. Though, in that case we may want to raise an exception versus clamping it down.


log4brains is not maintained

Bug Report
Description
https://github.com/thomvaill/log4brains/issues/27 has been open for 1 month and has not been resolved.
Steps to Reproduce
Run cicd Github Actions and watch the build break.
Expected Behavior
Resolved breakage within a month.
Context

Unable to use log4brains
Evaluating use for documentation

Hi @fire
I totally understand your concern, and I apologize for my long absence...
#27 is now fixed, and as I explained there:

Leaving a bug like this one not resolved for 2 months is just a shame!! 😱
I had a lot of work in March and got the Covid at the beginning of April (hopefully not severe!) but from now on I will be able to work on the project again in my spare time! 🙏

So, no worries, the project is still maintained :-)
By the way, contributors are very welcome! I now work on the project only in my spare time, so if you or someone else want to work with me on it, it would be a real pleasure!


Better link foreground color for focused problem

Ref: #11847
Link's foreground color does not good contrast against focused background:

I tested dark/light/hc/nord.

The color contrast ratio when hovering on the link in Light+ is 1.3:1, I think we're aiming for 4.5:1. Dark actually also fails, it's 4.0:1 right now.

I have decided to not have any hover effect on focused links for the upcoming release.

I think this is fine since the underline still indicates the link and people can hover over the link to see tooltip.
@joaomoreno ``textLink.foregroundseems to have bad contrast to tree'slist.activeSelectionBackground`. Is there a place where we already render link in active selection in a tree? Or should I introduce a new color?


Help error Uncaught TypeError: d[("get" + method)] is not a function with date-fns

Hello, I am new to this and I am still learning on how to do it. I am making a calendar project using date-fns instead of moment, and have a function that would manually input the title, date, and time using DateTimePicker from https://www.npmjs.com/package/react-datetime-picker, for me to add user event to save into localstorage.

It would save successfully into localstorage, but the page will go blank when viewing it in week and day and when I try to check in the localstorage that to me there is nothing wrong with the data when I compare with existing date and the my test input. I dont know where it went wrong.
`import { useEffect, useState } from "react"
import format from "date-fns/format"
import parse from 'date-fns/parse'
import startOfWeek from 'date-fns/startOfWeek'
import getDay from 'date-fns/getDay'
import { dateFnsLocalizer } from "react-big-calendar"
import DateTimePicker from "react-datetime-picker/dist/DateTimePicker"
import 'react-datetime-picker/dist/DateTimePicker.css'
import 'react-calendar/dist/Calendar.css'
import 'react-clock/dist/Clock.css'
import { Calendar } from "react-big-calendar"
import 'react-big-calendar/lib/css/react-big-calendar.css'
import events from "../data/events"
const locales ={
"en-US" : require("date-fns/locale/en-US")
}
const localizer = dateFnsLocalizer({
format,
parse,
startOfWeek,
getDay,
locales
})
function Body() {
const [ newEvent, setNewEvent ] = useState({ title: "", start: "", end: ""})
/const [ allEvents, setAllEvents ] = useState(events)/
/const [currentEvent, setCurrentEvent] = useState("")/
const [ allEvents, setAllEvents ] = useState(() => {

    const savedEvents = localStorage.getItem("events")

    if (savedEvents) {
        return JSON.parse(savedEvents)
    } else {
        return events
    }
})

useEffect(() => {
    localStorage.setItem("events", JSON.stringify(allEvents))
}, [allEvents])

function handleAddEvent(e){
    e.preventDefault()

    if (newEvent !== "") {
        setAllEvents([
            ...allEvents,
            newEvent
        ])
    }

    console.log(newEvent)
    setNewEvent({ title: "", start: "", end: "" })
}

return (

            <input
                type="text"
                value={newEvent.title}
                onChange={(e) => setNewEvent({...newEvent, title: e.target.value})}
            />
            <DateTimePicker
                disableClock={true}
                disableCalendar={true}
                selected={newEvent.start}
                dayPlaceholder="dd"
                monthPlaceholder="mm"
                yearPlaceholder="yyyy"
                hourPlaceholder="hh"
                minutePlaceholder="mm"
                onChange={(start) => setNewEvent({...newEvent, start})}
            />
            <DateTimePicker
                disableClock={true}
                disableCalendar={true}
                style={{
                    background: "white"
                }}
                selected={newEvent.end}
                dayPlaceholder="dd"
                monthPlaceholder="mm"
                yearPlaceholder="yyyy"
                hourPlaceholder="hh"
                minutePlaceholder="mm"
                onChange={(end) => setNewEvent({...newEvent, end})}
            />
            <button className="button" onClick={handleAddEvent}>Add</button>

            <Calendar
                selectable
                localizer={localizer}
                events={allEvents}
                startAccessor="start"
                endAccessor="end"
                popup="true"
                onSelectEvent={() => setOpenModal(true)}
                style={{
                    height: 500,
                    margin:"50px",
                    background: "white",
                    color: "black",
                    border: "2px solid black" }}
            />

)

}
export default Body
`

This can happen when you do not use true Date instances for event start and end dates

I'm sorry if I ask a dumb question, but how do I use true Date instances? I dont think I encountered that through react-big-calendar documentation

Every 'date' type prop is a PropType.instanceOf(Date). So, when considering your event 'edit' form, you'll have to convert your string date representation to a true Date, i.e. start: new Date(form.startDate)

would this function work on converting it to true Date and save to localstorage?
function convert(str) {
        var date = new Date(str),
            mnth = ("0" + (date.getMonth()+1)).slice(-2),
            day  = ("0" + date.getDate()).slice(-2);
        var hours  = ("0" + date.getHours()).slice(-2);
        var minutes = ("0" + date.getMinutes()).slice(-2);
        return [ date.getFullYear(), mnth, day, hours, minutes ].join(", ");
    }

and I also change the the line  onChange={(start) => setNewEvent({...newEvent, start})} to
onChange={(start) => setNewEvent({...newEvent, start: new Date(convert(start))})}
and also the line: const [ newEvent, setNewEvent ] = useState({ title: "", start: "", end: ""}) to
const [ newEvent, setNewEvent ] = useState({ title: "", start: new Date(0), end: new Date(0)})
After testing this, it would no longer save in localstorage nor would show into calendar or console.log

After trying to fix the issue, I somehow get it to work somewhat, as after submitting new test event and saving to localstorage, when viewing month,week,and day would work fine. But the problem is that when I refresh the page, even though the new test event is still there and be viewed in month, it will go blank when viewing in Week and Day and have the same error

You JSON.stringify() your events, when putting them in local storage, and probably JSON.parse() them, pulling them out of storage. JSON.stringify() will convert a Date to a string, but JSON.parse() will not convert that back to a Date object.


Clicking anywhere in datepicker auto puts user cursor at end of date

Describe the bug
No matter where in the datepicker input field a user clicks, they will automatically be sent to the end when they use the keyboard functions, causing incorrect adjustments to datepicker. We want the input functions/cursor to remain where the user originally clicks.
To Reproduce
Steps to reproduce the behavior:

Go to 'alaskaair.com/search-test/'
Click into the day region of the date within auro-datepicker (either within 'Departing' or 'Returning')
Delete once and type any number (i.e. today's date is 08/16/2022; click between 1 and 6 of 16, delete the 1 and type 2, as if the

Expected behavior
The expected behavior would be for the input to take information from where the user originally clicks. In the example above, the date would change from 08/16/2022 to 08/26/2022 when the user clicks between the 1 and 6, deletes, and types '2'.
Screenshots

Current date is 08/16/2022

User clicks in between 1 and 6 of 16

User deletes the '1'

User types '2' as if to change the date to 08/ '2' 6/2022

Desktop (please complete the following information):

OS: iOS
Browser: Chrome
Version: ??

Smartphone (please complete the following information):
Additional context

Reviewing this, this issue stems from a data entry issue that mostly pertains to Safari in combination with library we use for date formatting.
There is another issue wth auro-input that specifies breaking up auro-input into the different custom types so that we are not inheriting this Safari issue into all versions of the input element.

Two plausible options to address issue:

There is a 'fix' in auro-input that addresses a cursor issue related to input this.value and safari. An option is to remove that code and see if that corrects the issue of the skipping cursor in cleave.js input features.
There is an event with auro-dropdown that places the cursor inside the input within the trigger. There is a possibility that this event may re-trigger the placement of the cursor in the input.

There is a working theory that the issue described in https://github.com/AlaskaAirlines/auro-datepicker/issues/23 maybe a root cause of this issue here as well.


Images are not displaying

Hi! I have a problem. I trying to show image(.png) in img:
import duck from './duck.png'; //or const duck = require('./duck.png') <img src={duck} />
Img rendered but not visible. On OS X i can render images only via css background but on win10 I can't. In img src it doesn't works. Haven't any errors. What the problem?

resolved. I just removed from webpack.config svg&png from loaders and switched in webpack.loaders svg&png from url-loader to file-loader and this works.

Hi,
Do you mind submitting a PR if you think other might benefit the same? With
an example of an image :)
On Dec 14, 2017 7:07 AM, "danilsitnikov783"<EMAIL_ADDRESS>wrote:

resolved. I just removed from webpack.config svg&png from loaders and
switched in webpack.loaders svg&png from url-loader to file-loader and this
works.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/alicoding/react-webpack-babel/issues/294#issuecomment-351692975,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEKnFcWbMgE_Gyy59VzJboxQSQNu0H6_ks5tAQ9sgaJpZM4RB19L
.

I'm not sure about OS X now, will know at evening))

#296 This will fix the issue, I've added a sample in under About.jsx


Gretty with Jetty 9.3 unable to load JSTL TLDs

Using jetty93, an app using JSTL will fail with the error:
The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved
unless they set the webappcontext attribute org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern in an XML file (jetty-env.xml etc)

Just noting that this issue was fixed by the merge above #362 and for Jetty 9.4 in a follow-up commit on master.


Add is_authenticated method

I found myself externally managing the authentication state of the
Vault client, and I thought a helper method may be useful here.
I also used this method to add a check of the token provided (if any)
during client initialization. If authentication fails, a VaultError
is raised.

I'd like to avoid doing HTTP requests in the constructor. However, the rest of your PR looks good to me.

Yeah, I was a little on the fence about that one. It mostly stemmed from my desire to have the client fail fast and raise some exception other than an InvalidRequest when there was an authentication issue.
I'll amend that commit.

LGTM


Optimization

Hi,
While using this library, I got a big problem for the time it takes to execute. I need to manage big chunk of business_time in the future. So, I took the time to optimize the "after" method.
The change: Directly jump (without business_time) the number of weeks needed in the future and I use BusinessDays in BusinessHours. This limits the BusinessHours.@hours loop to 40 and BusinessDays.@days loop at 5. This means the time needed to get any date in the future is almost constant.
On Ruby 1.9.3, here are my results (from 1 hours to 1 year)
#0.6.2
n = 100; Benchmark.bm { |x| [1, 5, 10, 40, 160, 480, 1000, 2000].each {|hours| x.report("#{hours}:") { n.times { hours.business_hours.a>
user     system      total        real
1:  0.110000   0.000000   0.110000 (  0.109429)
5:  0.120000   0.000000   0.120000 (  0.121477)
10:  0.190000   0.000000   0.190000 (  0.185267)
40:  0.710000   0.010000   0.720000 (  0.720219)
160:  2.570000   0.000000   2.570000 (  2.573678)
480:  7.590000   0.020000   7.610000 (  7.612694)
1000: 16.010000   0.030000  16.040000 ( 16.037597)
2000: 31.520000   0.060000  31.580000 ( 31.572364)
My optimization
n = 100; Benchmark.bm { |x| [1, 5, 10, 40, 160, 480, 1000, 2000].each {|hours| x.report("#{hours}:") { n.times { hours.business_hours.after(Time.now) } } >
user     system      total        real
1:  0.150000   0.000000   0.150000 (  0.153765)
5:  0.200000   0.000000   0.200000 (  0.207473)
10:  0.340000   0.010000   0.350000 (  0.343515)
40:  0.130000   0.000000   0.130000 (  0.132431)
160:  0.130000   0.000000   0.130000 (  0.131817)
480:  0.130000   0.000000   0.130000 (  0.130287)
1000:  0.130000   0.000000   0.130000 (  0.130852)
2000:  0.140000   0.000000   0.140000 (  0.137180)
This is about 200 times faster for 1 business_year in the future.
So, here is my questions for you

Are you interested in this optimization?
What would you like me to fix in term of nomenclature?
Do you see any potential bugs?

Any comments are appreciated. If you are interested in this fix, I'll do the same things for the "before" methods.

I just want to say that we have faced serious downtime today because of this no-optimization. Thanks a lot.
I think it can be good to add a warning in the README file.


Update section 5.1.2 of the spec - explicit mention that CNI Plugin can update CNIDeviceInfoFile

Add explicit mention that CNI Plugin can also update content of the file in CNIDeviceInfoFile path.
The current spec version defines that CNI Plugin can read and write DeviceInfoFile, but update operation is not defined explicitly.
Add mention of update operation explicitly for clarity.

cc @adrianchiris

@amorenoz  @dougbtv
Please take a look at this PR.
Can we merge it?

Thanks for the context @adrianchiris.
Do we need to specify which fields can the updated by the CNI in order to avoid conflicts?

Do we need to specify which fields can the updated by the CNI in order to avoid conflicts?

we can either be loose and not specify OR say that updating is allowed for fields which were not previously set.
thoughts ?
i dont think we need to start listing fields that are "allowed to be updated"
for our use-case, cni adds information to a field which was empty before


Add silo

About the PR

Now all lathes are connected together and share the same resources if they are on the same station grid.
Why / Balance

Simplifies resource management.
Technical details

There's no silo "object" because I don't want to map it on all maps and I don't think it is necessary. Resources are stored in SiloComponent on a station grid.
Media

Requirements

[X] I have read and am following the Pull Request and Changelog Guidelines.
[X] I have added media to this PR or it does not require an ingame showcase.

Breaking changes

Changelog

:cl: Aviu

add: Now all autolathes, protolathes and similar machines are connected together and share the same resources if they are on main station grid.

Summary by CodeRabbit
Release Notes

New Features

Introduced a new SiloSystem for enhanced material management.
Added ConnectToSilo property to MaterialStorageComponent for silo connectivity.
New StationSiloComponent and SiloComponent for managing silo behaviors.
Updated various lathe entities to support silo connections.

Bug Fixes

Adjusted logic for material retrieval based on silo connection status.

Documentation

Updated entity definitions in YAML files to reflect new connections and properties.

These changes enhance the material handling capabilities within the game, allowing for more dynamic interactions with silo systems.

How did you fix lathe ui without lathe prediction?? 😭

How did you fix lathe ui without lathe prediction?? 😭

What

How did you fix lathe ui without lathe prediction?? 😭

What

When i tried to make material silo, i had problems with delayed material update in UI

Try to test it with both proto and autolathe UIs opened.

It works fine, no delay.

30 goobux being sent when merged and i get on :trollface:

I think I prefer @BombasterDS solution which required linking instead of just being shared across everything on the same grid.

kinda feel way too op. And allows resources teleportation between lathes if i understood correctly. Personnaly against it.

kinda feel way too op. And allows resources teleportation between lathes if i understood correctly. Personnaly against it.

This is how it works in ss13 and it's very user-friendly for everyone on station.

I think I prefer @BombasterDS solution which required linking instead of just being shared across everything on the same grid.

@Aviu00 https://github.com/BombasterDS/Goob-Station/tree/material-silo if you want to look into it. I have different logic, but there are working material silo machine that can be connected to lathes. Check it if you want. Not really sure if I fixed UI delay problem there.

I think I prefer @BombasterDS solution which required linking instead of just being shared across everything on the same grid.

I can add something like "connect to silo" button to lathes.

I don't mind mapping it onto all maps if you want it to be its own machine.

I think I prefer @BombasterDS solution which required linking instead of just being shared across everything on the same grid.

I can add something like "connect to silo" button to lathes.

Main problem with this that you can steal all station resources as antag without doing anything. You can place lathe somewhere in maints and make everything you want without getting into secured area to connect silo.

I think I prefer @BombasterDS solution which required linking instead of just being shared across everything on the same grid.

I can add something like "connect to silo" button to lathes.

Main problem with this that you can steal all station resources as antag without doing anything. You can place lathe somewhere in maints and make everything you want without getting into secured area to connect silo.

It works out just fine in 13, and as mentioned in discord, this is probably not a big deal because getting a lathe to fabricate stuff either implies you:

Steal it from science, or they give it to you, so someone at least knows that theres a loose lathe.
Steal it from the tech vault (they SHOULD notice)
Steal it from a department (they WILL notice)

Additionally to that, the underlying problem is that

Theres no visibility on where the materials are going, or who is using them (you could easily make a view that shows the current queue for all lathes, and who started them based off ID)
Ore is too scarce so sharing an entire pool with everyone will lead to infighting and issues, thus we should buff the ore output from salvage (lavaland when)

I think I prefer @BombasterDS solution which required linking instead of just being shared across everything on the same grid.

I can add something like "connect to silo" button to lathes.

Main problem with this that you can steal all station resources as antag without doing anything. You can place lathe somewhere in maints and make everything you want without getting into secured area to connect silo.

It works out just fine in 13, and as mentioned in discord, this is probably not a big deal because getting a lathe to fabricate stuff either implies you:

Steal it from science, or they give it to you, so someone at least knows that theres a loose lathe.
Steal it from the tech vault (they SHOULD notice)
Steal it from a department (they WILL notice)

Additionally to that, the underlying problem is that

Theres no visibility on where the materials are going, or who is using them (you could easily make a view that shows the current queue for all lathes, and who started them based off ID)
Ore is too scarce so sharing an entire pool with everyone will lead to infighting and issues, thus we should buff the ore output from salvage (lavaland when)

In SS13 (TG build) you have to connect lathes to ore silo in vault. They roundstart connected, but you need to get into vault to connect your own lathe. Right know i'm telling about problem when you can connect lathe just by clicking in lathe menu. You can do it anytime, steal as much as you want and be untrackable (in ss13 ore silo have UI list with all connected devices and logs of inserting/ejecting materials and you able to disconnect lathe from there)

Still, lack of material on station is big problem. Salvage ofter is useless team that do nothing for station, just flying on their shuttle for fun (now i'm sure that deleting salv shuttle and giving them jetpacks is actually good idea). I really want to see miners in ss14, but i don't really like lavaland idea where you can hide from everyone whenever you want.

YYYEEEESSS

by the way what happens if one lathe on one grid has, say, 10 steel and 10 plastic, and gets anchored onto a new grid that has 10 steel and 0 plastic?

POV that one silly cargonian synd who emagged the silo and turned all your hard earned mats into ammo

POV that one silly cargonian synd who emagged the silo and turned all your hard earned mats into ammo

based

Drafting this, feel free to reopen when relevant issues have been addressed.

It is done.


Latest version is not in pip

Hello,
The latest changes to master are not reflected in the current pip download.
As such, the instructions regarding "LARAVELMIX_MANIFEST_DIRECTORY" do not work!
I would appreciate it if you could upload the latest version to pip.

Hello @EmperorArthur,
I will publish new version tomorrow.
Thank you!

+1

Hello @EmperorArthur,
I will publish new version tomorrow.
Thank you!

pip install git+https://github.com/m-a-k-o/django-mix.git

pip install git+https://github.com/m-a-k-o/django-mix.git

Yes, that is what I ended up doing.  However, there are a few negatives to that approach.  First, my Docker container now has to have git installed.  Second, this is the equivalent to running nightly.  It's not a development branch and should be stable, but it's still git master.

Latest version published on pypi.
Sorry for delay :/


go-md2man dependency breaks s2i-base build on rhel7

From a RHEL7 system
get and install the s2i tool
wget https://github.com/openshift/source-to-image/releases/download/v1.1.8/source-to-image-v1.1.8-e3140d01-linux-386.tar.gz
tar -xzvf source-to-image-v1.1.8-e3140d01-linux-386.tar.gz
cp s2i /usr/bin
install make and gcc
yum -y install make libtool
git clone the s2i base
cd ~
git clone https://github.com/sclorg/s2i-base-container.git
cd s2i-base-container
git submodule update --init
make build VERSIONS=core TARGET=rhel7

mkdir -p core/root
go-md2man -in "core/README.md" -out "core/root/help.1"
/bin/sh: go-md2man: command not found
yum provides go-md2man
No matches found

I want to build custom s2i images on RHEL7, but i cannot.  I dont want to tell the customer to install a CentOS box just to do s2i builds.

this isn't a source to image issue.  please open your issue against the s2i-base-container repo.


Error in "undefined": Module not found: Error: Can't resolve 'react-native-svg' in

Ask your Question
Good day, So I'm new to webpack and repack... I have been able to run the examples in the repo but I am trying to convert my current app  to use webpack and benefit from the power of module federation but most of the packages that I installed in the project are not getting resolved and I have to test my app using just local and remote chunk before implementing module federation.
In the examples in the repo, I added other packages, reanimated worked unlike in my main project, react-native-gesture-handler, react-native-svg, etc. did not work .... Please can you assist me on this. Thank you

@jbroma please your thought on this.
Thank you

Hi @vlack-coder,
please share your webpack.config and also describe your setup in more detail so I can help you, thanks!

@jbroma  thanks for your response. My webpack config is the same as the one in the docs asides that I tried to add this to the config hoping the packages would get resolved
    /node_modules(.*[/\\])+react-native-fast-image/,             /node_modules(.*[/\\])+react-native-gesture-handler/,             /node_modules(.*[/\\])+react-native-crypto/,             /node_modules(.*[/\\])+react-native-reanimated/,             /node_modules(.*[/\\])+react-native-safe-area-context/,             /node_modules(.*[/\\])+react-native-svg/,
This is the link to the repo - https://github.com/vlack-coder/repacktest
I only added you to this repo cuz the repo is quite confidential. Thanks again

@jbroma  Please can you check this public repo - https://github.com/vlack-coder/repack_test
It's a fresh react-native installation with added dependencies and a little configuration.
After following the getting started section on the docs, I got this error message when I ran react-native webpack-start

Please can I know where the error is coming from, I can fix from my end... Thanks

I have gotten it to work alas.... I add to install the libraries in a fresh react native project one after the other and resolve the error accordingly. I resolved it from checking other issues and answers in the repo.
The only library I couldn't get to resolve is the Zod library but it's all fine. Thank you


How about the way expose armeria service to browser

In my case, I want to call armeria service from browser side(my HTML5 app or tranditional web), which means by ajax, the current way I do is like we did in DocService.
if we mapping a path for DocService like this, we could send ajax call to our armeria service,
builder.serviceUnder("/docs", new DocService());

I'm sure whether this is a good or bad pratice, I want to hear your voice.

The DocService does not provide a universal invocation mechanism. The reason it is able to invoke a THttpService is that it talks to the THttpService directly using the TTEXT serialization format.
That being said, DocService is provided as a way to debug your services and it is not meant to serve any end-user requests. If you are interested in serving a plain HTTP request (e.g. RESTful API), I'd recommend extending AbstractHttpService or using DynamicHttpService.

if I expose thrift based service by TTEXT serialization, is any performance issue?
since if we want to call a service method from browser, javascript could only operate on JSON format.

When using thrift from the browser, you should use thrift generated JavaScript code. This uses the TJSON format which is reasonably efficient, but not human readable. Here is a small tutorial
https://thrift.apache.org/tutorial/js
Will this work for you? If you use thrift I really recommend using thrift compiler code, otherwise much of the benefit of using an IDL API goes away and normal rest would be more appropriate.
As trustin says you can use TTEXT if you really need to, but it's really slow and I'm also not confident about its security - it was implemented purely for debugging.

thank you @anuraaga , I will dig into the thrift javascript compiler.


Cannot see digits 0 and 9 in the PIN keypad anymore (using Ipad)

This is a dupe of https://github.com/litecoin-foundation/loafwallet-ios/issues/92
It is being debugged.  @williamMTL please reference that conversation. Tx.


Error displaying the "." symbol.

For example, if you click on the tag".NET "or".Net Framework", displays this page:
NOT FOUND int main(int argc, char **argv) {   printf("404");   return 0; }

I tested with latest code and it's ok, but I don't  do anything about  "."  ...

tested with Hugo v0.69.0

I tested with latest code and it's ok, but I don't do anything about "." ...
Yes? So I need to use a newer version. Before that, I use the old version. I'll check it, then give you an answer.

Screenshot #1
Screenshot #2

Screenshot #1
Screenshot #2

It's weird,  I make a patch for this.
pull latest code and try

I see,  just chrome can't handle '.' correctly.
Safari and Firefox is ok.

Hm... I'm sorry to disappoint you. Updated with your new release, but the error problem didn't go away.
You can check my site: https://ghostbasenji.github.io/tags/.net/

It's very weird, I checkout your ghostbasenji.github.io repo and run http-server on localhost, no any problem.
I think it could be a bug of github, try bind a domain to github pages and retry?

Or try host on netlify ?

I guess: github pages looking for a file named '.net' and not found.

I guess: github pages looking for a file named '.net' and not found.

I think so, too. We'll leave it that keep for now.

Find a solution. We need to create a .nojekyll file in the public folder. Works.


Error indexing - could not find outpoint

My ordinals server appears to be stuck in a loop when running the index where it hits a "could not find outpoint" error, restarts indexing back some number of blocks, and then hits the same error again and restarts again.
Initially I thought the indexing had just become really slow, but after 3 days stuck indexing blocks from 2019 I noticed this was what was happening.
Here is a snippit from the logs, I was running 703142d506d131e6c0fcb69e7d5815c9e0035b73 when the indexing was started
[2022-09-26T04:18:58Z INFO  ord::index] Block 601408 at 2019-10-28 18:25:32 UTC with 2327 transactions…
[2022-09-26T04:19:00Z INFO  ord::index] Wrote 934134 ordinal ranges in 2101ms
[2022-09-26T04:19:00Z DEBUG bitcoincore_rpc] JSON-RPC request: getblockhash [601409]
[2022-09-26T04:19:00Z DEBUG bitcoincore_rpc] JSON-RPC request: getblock ["00000000000000000010bb90e0644f1aeed6969297e6dd4be177f9e0fe8b49c3",0]
[2022-09-26T04:19:00Z INFO  ord::index] Block 601409 at 2019-10-28 18:50:49 UTC with 3216 transactions…
[2022-09-26T04:19:09Z ERROR ord::subcommand::server] Could not find outpoint 1d7ee5305ae35b07a6ac84cfd711d5514bedb0321eed6c33ec2fc8b161845d8d:0 in index
[2022-09-26T04:19:09Z DEBUG bitcoincore_rpc] JSON-RPC request: getblockhash [601003]
[2022-09-26T04:19:09Z DEBUG bitcoincore_rpc] JSON-RPC request: getblock ["00000000000000000007bfa4980d5adac6380244161d7a5e230583c871e73f3e",0]
[2022-09-26T04:19:10Z INFO  ord::index] Block 601003 at 2019-10-25 16:18:08 UTC with 2580 transactions…
[2022-09-26T04:19:13Z INFO  ord::index] Wrote 4414803 ordinal ranges in 3229ms

Thanks for the report! I don't have any great ideas for debugging this, but it might have been fixed by this PR.

I ran into the same issue again with a fresh sync from scratch, this time i was running d81a649f3f961d5e1ec96a6d3fe641c67c687507
[2022-10-13T01:33:54Z INFO  ord::index] Block 601408 at 2019-10-28 18:25:32 UTC with 2327 transactions…
[2022-10-13T01:33:58Z INFO  ord::index] Wrote 934134 ordinal ranges in 3434ms
[2022-10-13T01:33:58Z DEBUG bitcoincore_rpc] JSON-RPC request: getblockhash [601409]
[2022-10-13T01:33:58Z DEBUG bitcoincore_rpc] JSON-RPC request: getblock ["00000000000000000010bb90e0644f1aeed6969297e6dd4be177f9e0fe8b49c3",0]
[2022-10-13T01:33:58Z INFO  ord::index] Block 601409 at 2019-10-28 18:50:49 UTC with 3216 transactions…
[2022-10-13T01:34:13Z ERROR ord::subcommand::server] Could not find outpoint 1d7ee5305ae35b07a6ac84cfd711d5514bedb0321eed6c33ec2fc8b161845d8d:0 in index
[2022-10-13T01:34:13Z DEBUG bitcoincore_rpc] JSON-RPC request: getblockhash [601004]
[2022-10-13T01:34:13Z DEBUG bitcoincore_rpc] JSON-RPC request: getblock ["0000000000000000001192e791ed3abfca5b1eb85c7bca784f7aae7991fdfae6",0]
[2022-10-13T01:34:14Z INFO  ord::index] Block 601004 at 2019-10-25 16:42:05 UTC with 2740 transactions…
[2022-10-13T01:34:17Z INFO  ord::index] Wrote 2662114 ordinal ranges in 3190ms
[2022-10-13T01:34:17Z DEBUG bitcoincore_rpc] JSON-RPC request: getblockhash [601005]
[2022-10-13T01:34:17Z DEBUG bitcoincore_rpc] JSON-RPC request: getblock ["0000000000000000000676b53a528606b576df30df42ba6827104e33ea8692f9",0]
[2022-10-13T01:34:17Z INFO  ord::index] Block 601005 at 2019-10-25 16:53:57 UTC with 3019 transactions…
[2022-10-13T01:34:20Z INFO  ord::index] Wrote 2205711 ordinal ranges in 3453ms
[2022-10-13T01:34:20Z DEBUG bitcoincore_rpc] JSON-RPC request: getblockhash [601006]
[2022-10-13T01:34:20Z DEBUG bitcoincore_rpc] JSON-RPC request: getblock ["000000000000000000081250cd21cae902314cb58f7bc3ab16a6945bc1e2a66a",0]

Damn, I was hoping that fixed it. Is there any chance that there's memory or disk corruption on that machine? I think it's unlikely, but since you're running the same code against the same data as we are, it might be worth checking.

hmm I guess it's possible, though I have not had any other issues on this PC that would indicate that.
Just checking, is this the correct way to blow away the DB to do a sync from scratch? --  rm -rf .local/share/ord/

Yup, that's correct!

We've been running this on a few different machines, and haven't hit this ourselves. I'm going to close this, feel free to reopen if it can be replicated on multiple machines.

Same error on indexing. Updated to v0.9.0.
error: Could not find outpoint xxx:45 in index