Browser support

Why this new version is only for nodejs and not included for browsers. It broke my app when I bower updated the dependencies.

It's explained in the commit if you had bothered to take a look, and why it was a major release ;)
https://github.com/sindresorhus/query-string/commit/a4a45c12f76e4c727930f012e036319ae6c452cb
Just stay on 1.0.0 if you don't want to use browserify.

Thanks for bringing this to the browser! For those who are interested, I created a fork with an UMD compatible version: wizbii/query-string


BUG-Taipy in Colab not working, example on website returns ngrok error

Description
The example given in the documentationusing Colab with ngrok does not work. Produces error below.
line:1919             ngrok.set_auth_token(app_config["ngrok_token"])
[2024-02-11 17:20:49][Taipy][INFO] Running in 'single_client' mode in notebook environment
INFO:Taipy:Running in 'single_client' mode in notebook environment

NameError                                 Traceback (most recent call last)
 in <cell line: 2>()
1 import pyngrok as pyngrok
----> 2 Gui(pages=pages).run(ngrok_token = 'NGROK_TOKEN')
1 frames
/usr/local/lib/python3.10/dist-packages/taipy/gui/gui.py in __init_ngrok(self)
1917             if not util.find_spec("pyngrok"):
1918                 raise RuntimeError("Cannot use ngrok as pyngrok package is not installed.")
-> 1919             ngrok.set_auth_token(app_config["ngrok_token"])
1920             http_tunnel = ngrok.connect(app_config["port"], "http")
1921             _TaipyLogger._get_logger().info(f" * NGROK Public Url: {http_tunnel.public_url}")
NameError: name 'ngrok' is not defined

How to reproduce

A code fragment

#Minimal code example:
# !pip install taipy --quiet
import taipy
# import Markdown
# from taipy.gui import Markdown
page_md = Markdown("Page Content")
gui = Gui(page=page_md).run(ngrok_token=ngtoken)
# Gui.run(run_browser=False)
!pip install pyngrok --quiet
import pyngrok
Gui.run((ngrok_token=ngtoken)) # ngtoken is a variable with a working ngrok token

When running the line Gui.run(run_browser=False) (and omitting the rest of the lines in the code example, the output returns a url: http://127.0.01:5000 . So the first part of the code is confirmed to work.
Expected behavior
Example works, and output in Colab shows an ngrok URL.
Screenshots
When available and relevant, screenshots to better highlight the problem.
Runtime environment
Google Colab

I wasn't able to replicate your issue:
!pip install --ignore-installed taipy
!pip install pyngrok
!pip install grequests

from taipy.gui import Markdown, Gui
page_md = Markdown("Page Content")
gui = Gui(page=page_md)

gui.run(ngrok_token=NGROK_TOKEN)

This code created me a tunnel to my application with Ngrok. Sometimes in the results of the pip install cell, Colab asks you to restart your session. If you have not, maybe try that or make sure pyngrok is installed in your Colab.

@Coderambling Can I close this issue?

Hi @FlorianJacta . Thanks for looking into this! I have not been able to look at the issue again in the meantime. If you can succesfully run your code, then I guess that means my code has an issue.
Maybe because of the (( in the last line: Gui.run((ngrok_token=ngtoken)) or because I did not restart my session as you mentioned. So fine to close it.
PS Are you on the Taipy Discord? Would like to discuss sometime. Am I correct that with Taipy you can use AI to help with coding of Taipy applications? What are your experiences? Any links to examples of that?
PPS I understand Colab runs on a rather old fork of Jupyter at the moment. Something to keep in mind you run into limitations / strange behaviour in Colab.

@Coderambling yes, I am on Discord. We have a beta version of a Taipy copilot but we have seen that Copilot is often better to propose suggestions as Taipy is easy to use. The goal of Taipy is to bring value to your data and models that you have created!


[Bug]: CASTOR attaching new name to root and not to selected taxonname

Steps to reproduce the bug
1.upload file (see below)
2.select parent name
3.select also create OTU and hit preview

preview shows root as parent and not selected taxonname
...

Screenshot

Expected behavior
I expecte to have the selected taxonname as parent and not root
Additional Screenshots
Here is the tsv i tried to upload:
Untitled spreadsheet - Sheet1 (3).xls
Environment
Sandbox
Sandbox Used
Bogolyok
Version
No response
Browser Used
Chrome

Closing, I beleve this is resolved in rebranded NOMEN version.


Batch processing: Optimize K8S requests

Closes #357

We close this PR as, currently, there is no K8s endpoint that receives batch request for creating resources like Replicaset. We explore alternative solutions in separate PRs.


Template review feedback

Thanks for submitting a template to the gallery, there were a few issues in your template that needed to be resolved ahead of approving the template for the gallery.

The documentation url provided in the metadata file is showing '404 page not found' error. Please resolve the issue.

encodeUriComponent should be used on user provided values that are then used as parameters in your url. These methods take in a single text argument and return a URI Encoded string. You should use this method on totalcost,  account, order, campaign, currency when generating the url
const url = 'https://my.pampanetwork.com/scripts/sale.php?TotalCost=' + totalcost + '&AccountId=' + account + '&OrderID=' + order + '&ActionCode=sale&CampaignID=' + campaign + '&Currency=' + currency;

I made the adjustments could check thank you
Em qui., 11 de fev. de 2021 às 17:17, praveena-pappu <
@.***> escreveu:

Thanks for submitting a template to the gallery, there were a few issues
in your template that needed to be resolved ahead of approving the template
for the gallery.

The documentation url https://www.clickwise.net/documentation/gtm
provided in the metadata file is showing '404 page not found' error. Please
resolve the issue.
[image: Screenshot 2021-02-11 12 14 41 PM]
https://user-images.githubusercontent.com/53495700/107693271-c0aba000-6c62-11eb-9cd0-e2ecf990747f.png
encodeUriComponent should be used on user provided values that are
then used as parameters in your url. These methods take in a single text
argument and return a URI Encoded string. You should use this method on
totalcost, account, order, campaign, currency when generating the url
const url = 'https://my.pampanetwork.com/scripts/sale.php?TotalCost='

totalcost + '&AccountId=' + account + '&OrderID=' + order +
'&ActionCode=sale&CampaignID=' + campaign + '&Currency=' + currency;

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/guuhbali/clickwise-pixel-gtm/issues/1, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALFHIK5ENPYAIAWEY63UMVLS6Q3MNANCNFSM4XPPCTRQ
.

--

thanks

I must wait for your analysis or send the model to the gallery =(


mavlink: allow heartbeat from onboard controller

Allows change flight modes and so on from onboard controller (such as mavros)

@korotkoves this needs to be merged into master, not stable. You'll have to open a new PR to change it.


What is the roadmap for Restangular2 with Angular2?

Hi @mgonto ,
We all love Restangular. It looks like Restangular2 branch is idle since long time. What is the road map and tentative ETA for Restangular2 release?

Looks like if Restangular2 exist, it will be totally different with the Restangular....

There is a 2.0-wip branch for Restangular2. But last update was on Oct 16, 2014.

Would be amazing, if restangular2 follows the angular2 release quickly! I am waiting for it.

Not sure that dev for 2.0 will be fast, so for now we can use https://github.com/humana-fragilitas/ES6-Rest-Client as standalone thin rest client.

There is new project on the horizon for A2
https://github.com/2muchcoffeecom/ng2-restangular

Thanks for posting it @KKrisu We couldn't do that earlier because we were preparing to use observables instead of promises. Now it's in beta. Has all needed tests, and we're using it on 2 our projects in production. You can install it though npm too.

Also see #1318


Standardize tsconfig.json for all packages

Right now packages have different tsconfig.json settings, especially around strictness flags.
We should have all configs inherit from a common config that enforces the right level of strictness checks.
Packages to tackle:

[x] sdk/core/abort-controller
[x] sdk/core/core-arm
[ ] sdk/appconfiguration/app-configuration
[x] sdk/core/core-amqp
[x] sdk/core/core-async-iterator/polyfill
[x] sdk/core/core-auth
[x] sdk/core/core-http
[x] sdk/core/core-paging
[x] sdk/core/core-tracing
[x] sdk/core/core-lro
[x] sdk/core/logger
[ ] sdk/cosmosdb/cosmos
[ ] sdk/eventhub/event-hubs
[ ] sdk/eventhub/eventhubs-checkpointstore-blob
[ ] sdk/eventhub/event-processor-host
[ ] sdk/eventhub/testhub
[ ] sdk/identity/identity
[ ] sdk/keyvault/keyvault-certificates
[ ] sdk/keyvault/keyvault-keys
[ ] sdk/keyvault/keyvault-secrets
[ ] sdk/servicebus/service-bus
[ ] sdk/storage/storage-blob
[ ] sdk/storage/storage-file
[ ] sdk/storage/storage-queue
[ ] sdk/template/template
[ ] sdk/test-utils/recorder

@xirzec & @ramya-rao-a I tried to do this for cosmosdb/cosmos but the number of errors and API changes is just too much for a quick pass. I will skip it for now.

Marked sdk/core/logger as done since somebody already did it.

Marked sdk/template/template since it seems to already be standardized.

#8671 has covered most of the packages listed above. thanks to @sadasant!
cosmos and identity packages are pending

@deyaaeldeen, Please check what is pending here and lets get this done!

@deyaaeldeen I don't think a file by file approach will work for Cosmos. We either need to do it all in a single PR or do something like VSCode did where they look at the dependency graph and start at the edges.


Panel shows automatically on startup on error

The pattern of opening a panel on error is not encouraged by VSCode. I noticed this: https://github.com/Microsoft/vscode-tslint/blob/master/tslint/extension.ts#L176
I suggest to use a notification instead that is easier for the user to deal with. A panel is not easy to dismiss, takes a lot of vertical space and destroys my current workbench layout.

The plugin version of the extension does not open any panels itself. All output is through the TS extension which also does not automatically open any panels


LABEL_INVALID_CHARACTER for a legitimate URL

The following URL cannot be parsed because it has an underscore in the subdomain.
const parseResult = parseDomain(fromUrl("https://stackadapt_public.s3.amazonaws.com/icons/adchoices/adchoices.png"));
https://stackoverflow.com/questions/2180465/can-domain-name-subdomains-have-an-underscore-in-it

Hi Peter 👋
we talked about this issue in https://github.com/peerigon/parse-domain/issues/134
There's a debate whether underscores are valid or not 😁. If you want/need to support it, you can relax the validation:
import { parseDomain, Validation } from "parse-domain";

const parseResult = parseDomain("_jabber._tcp.gmail.com", {
  validation: Validation.Lax,
});

See also https://github.com/peerigon/parse-domain#-export-validation

That's great to know. Thanks for following up. I'll try and relax the validations.


[BUG] asymmetric model inference ignores ModelResultFilter

What is the bug?
There is a small bug in the TextEmbeddingModel class in relation with the new asymmetric model support. In the method addPrefixesToData, that is only called when an asymmetric model is used, I forgot to add the existing result filter to the new instance of the TextDocsInputDataSet that is created with the corresponding prefixes.
I noticed the issue while working on https://github.com/opensearch-project/neural-search/pull/710.
How can one reproduce the bug?
Steps to reproduce the behavior:

run inference on an asymmetric model using a result filter
see that the result filter will not be applied

What is the expected behavior?
The result filter should be applied.
What is your host/environment?

OS: all

Do you have any screenshots?
N.a.
Do you have any additional context?
I have a fix and will open a PR immediately.

Closing issue, as fix has been merged.


Allowed IPs should be editable in client configuration

Hi,
"Allowed IPs" is a wireguard client configuration. At the moment is is set in "Server Configuration".
It may be nice to set it up once in "Server Configuration" but as a peer parameter it really should be in "Client Configuration". Maybe with a button "populate from server"?
This has fairly low priority, as "Allowed IPs" can be changed in the client software anyway, but it just looks ... "right" to be in "Client Configuration". ;)

This has been added in v2.0.1.


Feature Request: Configurable list of additional keywords

Very useful plugin, but a configurable list of additional keywords to fix-case etc. would be handy.
Currently the sqlparse list misses analytical functions (OVER etc) a quick fix to add those would remedy the problem to an extent. Still, a better solution would be to make a configurable list of additional keywords, for custom or platform-specific stored procedures, system schemas/tables and so on.

In addition to this, may I suggest a list of configurable key words? This is because sometimes columns names are mistaken as key words and it'd be great to keep the list flexible.

This will be a great addition, in my case, location is a column name and it is converting to LOCATION.


get_movie_details not working

Thanks for this awesome library! I am getting the following error when I run the Movie Details example from the readme. Any idea what's happening?
Code:
from rotten_tomatoes_client import RottenTomatoesClient

result = RottenTomatoesClient.get_movie_details(movie_id=446064253)

Error traceback:
---------------------------------------------------------------------------
HTTPError                                 Traceback (most recent call last)
/var/folders/2l/510bgy8104sdl7p1bd9_wx7h0000gn/T/ipykernel_37763/3334208030.py in <module>
      1 from rotten_tomatoes_client import RottenTomatoesClient
      2
----> 3 result = RottenTomatoesClient.get_movie_details(movie_id=446064253)

~/src/RottenTomatoesClient/rotten_tomatoes_client/client.py in get_movie_details(movie_id)
     47                          .format(movie_details_url=RottenTomatoesClient.MOVIE_DETAILS_URL, movie_id=movie_id))
     48
---> 49         r.raise_for_status()
     50
     51         return r.json()

~/opt/anaconda3/envs/default/lib/python3.9/site-packages/requests/models.py in raise_for_status(self)
    958
    959         if http_error_msg:
--> 960             raise HTTPError(http_error_msg, response=self)
    961
    962     def close(self):

HTTPError: 404 Client Error: Not Found for url: https://www.rottentomatoes.com/api/private/v1.0/movies/446064253

@rfeinman
Owners of RT removed support for unauthorised access to their API.
You now have to apply for it and submit a proposal form :man_facepalming:

Apply for Access
To apply for access to the Rotten Tomatoes API, please submit a proposal form outlining how you would like to use Rotten Tomatoes data. We will review each application to assess whether you are a good candidate based on our updated policies.
https://developer.fandango.com/Rotten_Tomatoes


Edde\Thread: Implement iterative job pickup from ThreadHandlers

ThreadManager is now executing all jobs from thread handler in linear way which is not so nice.
It would be nice to have handlers providing individual jobs (or something) back to thread manager; if handler has no more jobs, it would be kicked off current list; after all handlers are out, thread will end.
With this it would be maybe nice to rename ThreadHandler to ThreadQueue because... it would be queue :).

This is quite obsolete and done in a bit different way. The original concept is too complicated, so everything is pointing to job manager.


Config files for auto linting

autoflake, autopep8, docformatter, isort, yapf
There are some things that we need to define:

[x] max columns
[x] style of the docstrings
[x] order of the sections of imports
[ ] way of split long import lines
etc

If you want to go deeper, you should read all the knobs from yapf (which is the most agressive here) and tweak all the options as you wish). For now, I think it's a good start.
I'm adding a couple of modified files after aplying these settings as examples so we can discuss a little on the automatic styling code and define if it worth.

I applied the auto styling to three files (views, models and urls). Please, take a look at them and let me know any commen like "I don't like this format as this" or "I like this split here". I will tell you if we can change that with a setting so we can tweak and adapt to our needings.

What would workflow be? The developer would still be responsible for running this before pushing?

Mmm... I don't have a right answer for this. I have all of this commands hooked into my Emacs configuration and they are ran when I save the file. So, the workflow for other people is something that we need to discuss.

It doesn't seem like we can necessarily rely on this tooling to lint for us, but I haven't tried running these tools yet.

Why we can't rely on this? These tools modify the files in place with --in-place option (I forgot to add that to the command that I wrote). So, there is no WARNING or ERROR messages. They just modify what they need.

We'd definitely need a wrapper script as we won't remember to run that block of commands before each PR.

Yes. As I said, I have them hooked into Emacs. I wrote them to communicate to you what how I ran those commands.

Mmm... I don't have a right answer for this. I have all of this commands hooked into my Emacs configuration and they are ran when I save the file. So, the workflow for other people is something that we need to discuss.

For instance, I use vim and I believe @ericholscher uses sublime, so there might not be a good way to do this without requiring all of us to either run a command pre-commit or work out a way to emulate your on-save feature.

Why we can't rely on this?

I should have said solely rely on this. It will still be up to individual developers to run the autolinting before each commit -- or run periodically perhaps.

For instance, I use vim and I believe @ericholscher uses sublime, so there might not be a good way to do this without requiring all of us to either run a command pre-commit or work out a way to emulate your on-save feature

I'm not really sure how the git pre-commit command would work. I like my on-save feature because I can see how it gets formatted and I can tweak a little in case that I "don't agree" with what yapf has done... For example, add more trailing commas :)
But we can definetly figure out something that fit for everybody, even contributors.

yapf 0.20 released! 💛
https://github.com/google/yapf/blob/master/CHANGELOG#L5
I will need to check the new knobs and update this PR

In our meeting, we decided:

Let's start playing with this
Use incrementally to start
We need to clean up all PRs before doing a code-wide PR

@humitos the one piece I'd like to see to get this merged is a script (maybe in contrib/) to run all of the commands at once.
I'm treating contrib/ as a spot for things that haven't yet been enforced on development, but still useful.

@humitos the one piece I'd like to see to get this merged is a script (maybe in contrib/) to run all of the commands at once.

I will do this, but in the future I think we could consider pre-commit (I found it reading about prospector): http://pre-commit.com/#supported-languages
The steps a new contributor should follow are:

clone the repo
run pre-commit install
modify code
commit

and he/she will see a very nice message with the test that passed and the ones that not

I think we can go with a simple bash script that execute our commands over the files that where modified by the developer as a first approach since to use this pre-commit tool we will need to write a couple of wrappers. autopep8 is a good example, since the commands we need are really similar to that case: https://github.com/pre-commit/pre-commit-hooks/blob/master/pre_commit_hooks/autopep8_wrapper.py (maybe some people from the community could help us on creating this wrappers).
Besides, we will need to propose a PR on those repos with the .pre-commit-hooks.yaml so it's recognized as a plugin by pre-commit. I did it for unify as example, it's pretty simple: https://github.com/humitos/unify/blob/master/.pre-commit-hooks.yaml
I know this is more work, but after seeing that output I think it's very nice for newcomers and easy to understand what's going wrong. It will be a mixture between, automatic tools ran and fixing some issues (for example fix-encoding-pragma failed but fixed the file at the same time, so you need to add that new change to the stage now for the commit) and manual interaction, in this case flake8 that raises some "line too long".

This one could be considered in the future, also: https://github.com/asottile/pyupgrade

So, I think the only one that it's missing is docformatter

Ha, I created mine. It was pretty simple using their own tool: https://github.com/pre-commit/pre-commit-mirror-maker
Here is the repo: https://github.com/humitos/mirrors-docformatter

If you want to make a test over a specific file and see how pre-commit will behave, you can do:
pre-commit run --files manage.py

I was suggested another approach in Twitter by @juancarlospaco: connecting pre-commit to prospector (https://prospector.landscape.io/en/master/) via (https://github.com/guykisel/prospector-mirror#prospector-mirror) and make prospector running all of this commands instead of pre-commit plugins.
I'm not familiarized with prospector so I don't see clearly the benefits, but I @agjohnson mentioned something like this in the meeting so I suppose he will be interested on taking a look at this.

@humitos and I discussed this yesterday. I think we are close to merge. We'll tweak rules as we go. None of this is mandatory yet, but we'll be probably using some of these rules to autolint to strictness = high in prospector. We also discussed using prospector through precommit, which could be an option once our strictness is higher.

Oh, also, @humitos. Can we either revert the changes causing lint errors or fix the rules used? Error is:
pep257: D203 / 1 blank line required before class docstring (found 0)

I just fixed the rules to fix the D203 automatically by changing a setting in yapf ;)
Everything should be working now and prospector should pass.

I think we are good here and we should merge this.
In the daily basis workflow pre-commit will modify and fix automatically (if it's possible) all the files that you want to commit. After that, you will have to check the modifications (in case you want to change something) and put them in the stage and finally commit them and push.
Then prospector will check inside the CI that the files passes all the prospector validations.
(at this moment I didn't find a way to share the config files from the commands used by pre-commit and the tools used by prospector but I think it's not a big deal by now to maintain two config files for this)
In case that pre-commit modifies files in a way that makes prospector to fail; we will need to tweak the configs that I'm pushing now.

Agreed! I'm looking forward to starting to use this workflow. Thanks @humitos for the tips! 🎉

What solved D203? I'm still getting it after my runs.

D203 is a blank line before the class docstring as here:
https://github.com/rtfd/readthedocs.org/pull/3264/commits/0f09a6fe13076ef690a169123aa57d3873ab9da9#diff-b8a9e4df8b14a1a4a0af561dcae3c19e
What kind of error are you receiving?


Writing the output message from capacitor over a TCP socket

The list of services defined in kapacitor.conf does not include a TCP output. Is it planned to have such an output so that we can capture and process the event using some out of the box processing tools ?

You can leverage the post(url) method on alert nodes.
§ https://docs.influxdata.com/kapacitor/v0.11/nodes/alert_node/#post

@AliGouta Does the post method of the AlertNode suite your needs?

Yes! Thank you.


Have tests that require OpenCL fall back to CPU (or be marked as slow)?

Some of the tests require OpenCL with mixed precision, which is not available on some platforms (travis and my MacBook Pro). It would be great if we could have these fall back to CPU or label them as slow to skip them on travis.

I've also reported the fact that Platform.supportsDoublePrecision() doesn't seem to correctly report whether mixed precision is expected to work: https://github.com/pandegroup/openmm/issues/1786


Support historical game data

Describe the solution you'd like
It would be nice to store historical game data. What I mean by that is that currently a user can be associated with one single game. After they play that game and then go looking for a new one, they will be assigned to that new game. There's then no way to know that they played that old game as they're not longer assigned to it.
Suggestion: Whenever a game status moves to "started", store all the details of that game in a new table. Things that would be nice to track are:

The game's id
All the players
All of the power levels of those players at the time the game started
All of the tags associated with the game
Maybe all of the game's columns as well? But we can always just look up that data directly from the games table itself... so maybe not?

If we had this data we could much more easily answer questions like:

How many games were played at this event?
How many unique users played those games?
What tags were used?
What was the power level of those games?
What was the average number of games a given player played?

And for a given user, we could say:

What games did you play?
What was your score in each of those games if there was a report for them?

Also we could make it so that the !report command only worked for admins or players that were in the game that they are reporting upon.

Resolved in v7.


Enroll in Showcase's testing

This is just to get things going, we can wait on >= 1.2.11 of bullet_train, so we can remove showcase-rails from the app Gemfile here, I just need it to see the tests run right now.
We bundle rouge for out-of-the-box syntax highlighting in Showcase too.

Gonna tackle things another time, or differently, we'll see.


Arduino/Arduboy questions

I love ALE and use it all the time.
I want to use it to lint and fix C++ code for Arduino, particularly the Arduboy platform.
The thing is, the Arduino IDE comes with its own compiler toolchain and requires several -I include path arguments to the compilers, depending on the project.
Can I make it work?  I haven't figured out a way ...

You can use the _options variables for changing the flags that are passed to the compiler, including the include paths.
I don't know about the Arduino IDE myself.

Can you provide me with sample syntax for _options?

If you're using C++ and GCC you could use let g:ale_c_gcc_options = '-std=c11 -Wall ...' with whatever flags you need. You probably want to use the b: option instead for a specific option. See :help g:ale_pattern_options for easily setting options for specific buffers.

Arduino uses a custom gcc, g++, ar, etc., installed in ~/.arduino15/blah/blah/blah
How do I force that gcc to be used?
Maybe it doesn't matter, but there are  some compiler directives that may cause problems.

See :help g:ale_cpp_gcc_executable for the option for changing the executable to run.

I recommend reading the documentation for all of the C++ linter options with :help ale-cpp-options. Every option is documented there.

Looks like what I need.  I have no problem with RTFM. ;)

I'm not getting this.

Try running the same command in the shell to check for problems with your options.

And this seems to work:

In case this helps someone out there doing arduino work.

Okay then. I'll close this issue then.

it's ugly to say the least :)
But thanks to ALE, I'm able to have C++ error checking on the fly and proper clang-format fix working.
Thanks for all of this.


ubuntu virtualenv install

Hi, not really an issue, but not sure where else to leave this. I downloaded and installed beaker 1.5 on ubuntu gnome 14.04. I reviewed your install scripts, and edited them so that both ipython and py3k are installed in virtual environments rather then using the system python install. I try not to put to much into the system level python.  I copied the beaker-notebook folder to ~/opt and within it created two virtual environments, one for ipython and one for py3. I edited the install-dependancies.sh file accordingly. To make things work I edited the beaker config file, and also edited the included python files replacing #!/user/bin/python with #!/user/bin/env python. and lastly I created a shell scrip which added the ipython bin folder to the front of the path before calling beaker.command. I tied it up with a .desktop Beaker launcher.  The only issues I ran into is that roxygen2 is missing from the R install, and I had to comment out the error log entry in the nginx conf file. That is most likely because I had previously had nginx working for another project.
Thanks and great project, please consider changing your install to use virtual environments for both ipython and py3, or giving users a choice at install. Also please include a .desktop launcher so that the application can be easily launched. It's still launched within a terminal window because I don't see any other way to easily kill all the processes that get launched, but again that is not really an issues.
Thanks again
Jose

Hi Jose, thanks for the feedback.  Asking questions here in github is fine.
Indeed roxygen2 is an issue https://github.com/twosigma/beaker-notebook/issues/3445
IMO some R package is missing a dep because we don't use it, but I guess we have to cover for this problem.
I think editing the included python scripts (you mean xxxPlugin files, right?) should not be needed, they should be happy with the system python.
The shell script that manipulates the path before launching should not be required because the beaker.prefs.json file can specify the path for each backend.
And for the desktop file, we have an electron version that has a more complete GUI including this.

Thanks, when I tried it without altering.g the path the plugins it wouldn't work because it was using the system python. Admittedly I edited the plugin files before Iwent just tried it with the altered path. I'll give the electron version a try.
Jose
-------- Original Message --------
Subject: Re: [beaker-notebook] ubuntu virtualenv install (#3472)
From: "Scott Draves"<EMAIL_ADDRESS>Date: Mon, February 8, 2016 4:04 pm
To: "twosigma/beaker-notebook"<EMAIL_ADDRESS>CC: "Jose Galvez"<EMAIL_ADDRESS>Hi Jose, thanks for the feedback.  Asking questions here in github is fine.
Indeed roxygen2 is an issue https://github.com/twosigma/beaker-notebook/issues/3445
IMO some R package is missing a dep because we don't use it, but I guess we have to cover for this problem.
I think editing the included python scripts (you mean xxxPlugin files, right?) should not be needed, they should be happy with the system python.
The shell script that manipulates the path before launching should not be required because the beaker.prefs.json file can specify the path for each backend.
And for the desktop file, we have an electron version that has a more complete GUI including this.

Reply to this email directly or view it on GitHub:
https://github.com/twosigma/beaker-notebook/issues/3472#issuecomment-181539410


Added support for custom data as jinja context.

This PR is the fix for issue #704.
It improves the plugin by adding support for custom data which we use as context when rendering Jinja templates or strings.

Okay, I will add the test case right away.


Local type subtyping broken

See https://github.com/ceylon/ceylon/commit/d3653379bd14d8c421be8e3fa56a14e5688951ec#commitcomment-22157228

Due to fix for #7033.

One possibility, which seems to fix at least my test, is to change this in Type.isSubtypeOf:
            if (qualifyingType == null // new
                    && type.qualifyingType == null // new
                    && isNotGeneric(otherDec)) {
                return true;
            }

Not sure if it's correct regarding what #7033 was fixing, and if it's the only place where subtyping takes place at runtime.

Fixed


Fix ZXLive not loading graphs as Multigraphs with auto simplify disabled

When you load a graph, it was sometimes loaded as a GraphS instead of a Multigraph, and in all cases set_auto_simplify was not set properly leading to unexpected behaviour when adding edges (and exceptions).

I'm merging this, but I think the solution is quite ugly, and error prone. Ideally we would set some global default value that Multigraph does not auto simplify everywhere.


Image Caption Generator

Project Information
The objective of the project is to predict the captions for the input image. The dataset consists of 8k images and 5 captions for each image. The features are extracted from both the image and the text captions for input. The features will be concatenated to predict the next word of the caption. CNN is used for image and LSTM is used for text. BLEU Score is used as a metric to evaluate the performance of the trained model.
Libraries

numpy
matplotlib
keras
tensorflow
nltk

Neural Network

VGG16 Network
CNN-LSTM Network

@suryanshsk sir, i want to contribute in this issue. please assign me this issue.

@suryanshsk sir, i want to contribute in this issue. please assign me this issue.

It's already assigned to @deepanshubaghel


Allowing application services to deny a join

I was reading the application service spec, and read “Rooms which are publicly accessible (e.g. IRC rooms) can be exposed as an alias by the application service. Private rooms (e.g. sending an email to someone) should not be exposed in this way, but should instead operate using normal invite/join semantics.”
This made me think about the matrix-appservice-irc, that actually exposes private (ie. invite-only) IRC rooms as rooms with an alias. This is likely the easiest user interface, but security implications look problematic to me: it means the application service must support the bridged protocol perfectly, so that it does not miss a case where the matrix-side room should be invite-only.
Also, I think it means that currently if a matrix user is banned IRC-side, if they try to join the channel via the bridge, they will be let in the room before being kicked by the appservice. Which in turn means that this user's homeserver will be allowed to synchronize the history, which could lead to information disclosure if this rogue user controls their own homeserver and can just read the contents of the room in the database after having been kicked.
So I was thinking maybe it would be a better interface for the appservice to, rather than rely on “normal” matrix rooms, be able to specify that the appservice should be called back into when a user wants to join, so the appservice can deny the join request without having to map it exactly into matrix-side permissions (because sometimes the models just vary enough that it's much easier to do it this way).
The realization of this idea would basically be the addition of an endpoint in the appservice API, similar to (I'm not really knowledgeable about the conventions of the matrix API, just giving ideas):
GET /rooms/{roomId}/join?user_id={userId}

200 => {userId} is allowed to join
401,403,404 => see GET /rooms/{roomAlias}
409 => {userId} is not allowed to join

Unresolved questions:

I guess 403 would be better than 409, but it's already taken, so disambiguation would be harder, and I couldn't find a better standard response code -- so maybe switch to a non-standard one?
roomId or roomAlias? roomId is more straightforward for the HS, while roomAlias is simpler for the AS. I think roomId is better because an AS could decide to give multiple aliases to the same room, but this may be a debatable statement?

There is also the question of “muted” channels on IRC (mode +m usually), that could make it better to have a similar potentially-blocking-the-operation hook for sending events to a room.
Obviously, such a callback would be called only when the appservice has exclusive access to a room, because otherwise things will very quickly become a mess.

An alternative has been suggested on #matrix-dev, likely easier to implement: with the knocking mechanism, the workflow could be the following:

The appservice sets all rooms as invite-only
When a user tries to join an invite-only room, they are given the option of knocking on the room
When they knock, the appservice tries to join them on the bridged side
If this succeeds, the appservice invites the user on the matrix side
The user, invited after a knock, is auto-joined by its server

The issues I can think about this are:

Knocks will likely be “noisy” (so that normal users can reply to them), so this adds noise to the channel
This loses the mapping between an IRC (taking the example of IRC, which I know best) room being invite-only and its matrix-side equivalent being invite-only, which means if a matrix-side user is granted admin rights on the IRC-side channel, they cannot easily modify the IRC-side permissions of the room.

This sounds a like a specific form of @Matthew's antispam idea, where optionally all messages go through a central point to be filtered. This could include join requests as well.

This sounds like a subset of @ara4n's antispam idea, where all messages optionally go through a single point where they are filtered. This could include joins.

Hmm, could you link to it so that I can follow it and subscribe? I searched for “antispam” and couldn't find any open issue.
However, I found https://github.com/matrix-org/matrix-doc/issues/1030 that looks similar to what I was putting forward, I guess -- though I don't really think the plugins PR linked would be clean, as it'd mean the appservices would be rewritten as plugins to synapse, thus breaking their reusability with other HSes.
Also, I was thinking of how to make this “filtering the joins” work, and it would at least require a way to tell directory servers that the room is “filtered by the appservice”, so that they return only the appservice-connected HS for room discovery. Otherwise people could just join the room through another HS. All in all, it sounds very much like filtering all messages through a single point, as you say :)

Unfortunately I don't have any links. I already pinged @ara4n in my previous message, so hopefully he has time to weigh in on the spam filtering. If not, you may have to cast your search a little wider. I know some custom filtering/antispam work was done for Status, but I don't know where I'd find that.

Unfortunately I don't have any links. I already pinged @ara4n in my previous message, so hopefully he has time to weigh in on the spam filtering. If not, you may have to cast your search a little wider than GitHub. I know some custom filtering/antispam work was done for Status, but I don't know where I'd find that.


Support mapping subproject aliases to aliases of the parent project

In general I think this patch is probably right, I'm mostly confused by the added project.conf junctions configuration disallow_subproject_uris.
I think my previous comments can be discarded, but I'd like this patch to:

Come with the doc/source/format_project.rst changes describing what exactly this new configuration does
Ideally come with a test validating that this does what it is intended to do

In general I think this patch is probably right, I'm mostly confused by the added project.conf junctions configuration disallow_subproject_uris.
I think my previous comments can be discarded, but I'd like this patch to:
* Come with the `doc/source/format_project.rst` changes describing what exactly this new configuration does

I've pushed a branch with initial documentation of the new flag: https://github.com/apache/buildstream/tree/juerg/junction-aliases

Superseded by #1910


Add support for hot module reloading/swapping

Webpack should be able to run as a watcher and update the bundle on the fly. This would improve support for the demo app.

Fixed in<PHONE_NUMBER>3e45fd207141ca3c01cbf4fbfe1a0a


Ethereum Nodes - Geth/Parity/Docker Images

all things associated with geth/parity docker images and/or Ethereum Nodes needed for development

We have pop geth nodes and test against kovan.


Add information around support for devfile in IDE extensions

Currently, the devfile new page has information about Tools that provide devfile support as odo and EclipseChe.
https://devfile.io/docs/2.1.0/application-developer
We would like to add more supported tools that work with devfile-based workflow.

VSCode OpenShift Toolkit
IntelliJ OpenShift Toolkit

@mohitsuman Can you open an issue here and tag it with area/documentation?

@schultzp2020 Isn't these requested changes part of the webpage ?

Reopened as devfile/api#978


Contents of init.py

Should be
try:
    # Use live version from git
    from setuptools_scm import get_version

    # Warning: If the install is nested to the same depth, this will always succeed
    __version__ = get_version(root="..", relative_to=__file__)
    del get_version
except (ImportError, LookupError):
    # Use installed version
    from ._version import __version__

__all__ = ["__version__"]

Might need to make the lint install editable so this file exists so mypy is happy


Copy links in kleeja script

Essalamou alikom
Is there any code to copy link of an uploaded file on mouse click .
Thanks advance

No, There is no code at the moment to do this think, but it's nice idea to include it in the next version


If docker search with --starts=${negative number}, it would show the war...

...ning information.
Signed-off-by: Yuan Sun<EMAIL_ADDRESS>

Can you please add a testcase for this?

Yes. In this PR or another PR for the testcase?

in this same PR/commit - then it can all go in at the same time.

The testcase has been added. Please merge.

@sunyuan3 Hello! Yes, there are good chances that your patch will be merged, but our process requires two core maintainers to approve it by reviewing, testing, and ultimately commenting "LGTM". Please be patient ;-)

LGTM

thanks for the testcase. LGTM

Ok. I understand. Thank you.;-)


spec: rename ocp to oci and add a link

Signed-off-by: Lai Jiangshan<EMAIL_ADDRESS>

LGTM


Add maven package info to README

This library is published to mvn central, however there is no information about it. Found it here:
https://mvnrepository.com/artifact/com.emc.ecs/nfs-client/1.0.3
Please following section (or improve it):
Installation
You can download the library as Maven dependency from Maven Central Repository:
<dependency>
    <groupId>com.emc.ecs</groupId>
    <artifactId>nfs-client</artifactId>
    <version>1.0.3</version>
</dependency>

Thanks

Done.

Wiki link is not changed, as the Sonatype search engine somehow cannot find the latest version.


Closing the bolt on a gun attaches a bullet to you

Description

title, any gun that spawns with an open bolt seems to cause this, from security roundstart pistols, to mapped guns.
Reproduction

spawn any open bolt weapon, close the bolt. there is now a bullet stuck inside your sprite.
Screenshots

https://cdn.discordapp.com/attachments/811324338099585036/1141048169627668550/Base_Profile_2023.08.15_-_<IP_ADDRESS>.DVR_Trim.mp4
(message link)
https://discord.com/channels/310555209753690112/770682801607278632/1141048810685079562
Additional context

It's not exactly issue about newly spawned guns, I'll correct:
The issue is that if gun already has round inside chamber, then closing bolt will feed new round - which is forcing round in bolt to pop out from gun. If you'll remove mag and close bolt - round will stay in chamber, since no bullets are being fed.

I see two ways to resolve this:

Never remove bullet when closing bolt and skip round feeding if bullet is in chamber
Make gun jam when trying to feed round when one is already is there (that would be more realistic, but probably annoying as hell)

Alternatively the guns could start without a bullet in the chamber

Related to #19165


Add try/finally to decorated context managers yield statement

And also log any unhandled caught exception.
Closes #721.

Updated.
NB: @llucax I did not update the contextmanager decorators that did not have tail code.


[Service Bus] Minor updates to stress tests

@harshitha-akkaraju: We're having issues in production with the reconnection and error propagation behavior of everything that uses rhea-promise (event-hub and service-bus). Could you please add more tests relating to connections timing out or being force closed and make sure that errors and retries work correctly in a long running process?

Thanks for the comment @jmealo.

We're having issues in production with the reconnection and error propagation behavior of everything that uses rhea-promise (event-hub and service-bus).

We do have tests checking the reconnection by simulating disconnects.

Could you please add more tests relating to connections timing out or being force closed and make sure that errors and retries work correctly in a long running process?

Thanks, we have been running longer stress tests(10 hrs) with version 7 of @azure/service-bus library involving sending, receiving, renewing message locks, session locks and so far the recovery on the actual service timeouts and network disconnects seemed fine. We can do some stress tests by specifically simulating the connection disconnects.

It appears like rhea-promise is lacking tests for this, and core-aqmp has tests but that still leaves a pretty huge gap for something to go wrong in translation. The ways errors propagate in rhea-promise make it impossible for us to handle any of this on our own or detect that the connections are in a bad state.

Thanks again for noticing, we have been planning to contribute more tests for rhea-promise.
Can you please provide us with more specifics on the issues that you have been seeing?

how your scenario can be reproduced?
code to repro
error messages that you've seen
any better error messages you'd expect but are not being thrown


Skip cudasim only tests

The affected test is failing and leading to segfault in other cuda tests.
This fixes the problem by skipping the test, which is intended for running in the simulator,  on real hw.

Codecov Report

Merging #3125 into master will decrease coverage by <.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #3125      +/-   ##
==========================================
- Coverage   81.19%   81.18%   -0.01%
==========================================
  Files         384      384
  Lines       74949    74949
  Branches     8420     8420
==========================================
- Hits        60854    60851       -3
- Misses      12805    12807       +2
- Partials     1290     1291       +1


Dependencies test

Add test that checks that all dependencies are exact.
Details: https://github.com/satelllte/adsr/pull/41

actually, it's redundant, so closing this ...


Adjust the OracleExtendTx to include target oracle

Currently there is no way for someone other than the oracle owner to extend the oracle

Epoch's node(v0.16.0), while processing OracleExtendTx doesn't implement this functionality as it is described in their implementation of processing this kind of transaction:
https://github.com/aeternity/epoch/blob/v0.16.0/apps/aeoracle/src/aeo_extend_tx.erl#L112-L130 .
So this issue is not needed and is "resolved"


Tray icon for user interaction

https://github.com/olback/tray-item-rs
Icons:
https://github.com/mxre/winres
https://crates.io/crates/embed-resource

Interactions:
Set frequency (multiple predefined options)
Enable/Disable
Exit


backslash escaping issue

Hi,
I found that the backslash escaping in the tag/field values was not working correctly as expected.
With config:
<match mytag>
  @type copy
  <store>
    @type stdout
  </store>
  <store>
    @type influxdb
    host influxdb
    port 8086
    dbname mydb
    tag_keys ["hostname", "v.device_name", "v.mount_point"]
  </store>
</match>

And input record (from metricbeat):
{"hostname":"my-machine","v.device_name":"D:\\","v.mount_point":"D:\\","v.total":26840395776,"v.free":5271150592,"v.available":5271150592,"v.files":0,"v.free_files":0,"v.used.pct":0.8036,"v.used.bytes":21569245184}

Will cause the following exception:
#0 taking back chunk for errors. chunk="55a01ef2e4d034e413d394ffd26be22c"
#0 failed to flush the buffer. retry_time=0 next_retry_seconds=2017-09-25 11:34:03 +0000 chunk="55a01ef2e4d034e413d394ffd26be22c" error_class=InfluxDB::Error error="{\"error\":\"unable to parse 'system.filesystem,hostname=my-machine,v.device_name=D:\\\\,v.mount_point=D:\\\\ v.total=26840395776i,v.free=5271150592i,v.available=5271150592i,v.files=0i,v.free_files=0i,v.used.pct=0.8036,v.used.bytes=21569245184i<PHONE_NUMBER>688': invalid tag format\"}\n"
#0 /var/lib/gems/2.3.0/gems/influxdb-0.3.16/lib/influxdb/client/http.rb:85:in `resolve_error'
#0 /var/lib/gems/2.3.0/gems/influxdb-0.3.16/lib/influxdb/client/http.rb:35:in `block in post'
#0 /var/lib/gems/2.3.0/gems/influxdb-0.3.16/lib/influxdb/client/http.rb:53:in `connect_with_retry'
#0 /var/lib/gems/2.3.0/gems/influxdb-0.3.16/lib/influxdb/client/http.rb:26:in `post'
#0 /var/lib/gems/2.3.0/gems/influxdb-0.3.16/lib/influxdb/query/core.rb:78:in `write'
#0 /var/lib/gems/2.3.0/gems/influxdb-0.3.16/lib/influxdb/query/core.rb:57:in `write_points'
#0 /fluentd/plugins/out_influxdb2.rb:189:in `write'
#0 /var/lib/gems/2.3.0/gems/fluentd-0.14.21/lib/fluent/plugin/output.rb:1061:in `try_flush'
#0 /var/lib/gems/2.3.0/gems/fluentd-0.14.21/lib/fluent/plugin/output.rb:1286:in `flush_thread_run'
#0 /var/lib/gems/2.3.0/gems/fluentd-0.14.21/lib/fluent/plugin/output.rb:438:in `block (2 levels) in start'
#0 /var/lib/gems/2.3.0/gems/fluentd-0.14.21/lib/fluent/plugin_helper/thread.rb:78:in `block in thread_create'

The exception message shows that the record has been wrongly escaped:
(double escaped backslashes and a comma , before v.total disappeared)
v.device_name=D:\\\\,v.mount_point=D:\\\\ v.total=26840395776i,v.free=5271150592i,v.available=5271150592i

I also checked the plugin code and printed the hash point before calling @influxdb.write_points():
{:timestamp=>1501729298688, :series=>"system.filesystem", :values=>{"v.total"=>26840395776, "v.free"=>5271150592, "v.available"=>5271150592, "v.files"=>0, "v.free_files"=>0, "v.used.pct"=>0.8036, "v.used.bytes"=>21569245184}, :tags=>{"hostname"=>"my-machine", "v.device_name"=>"D:\\", "v.mount_point"=>"D:\\"}}

I guess that it is caused by influxdb-ruby, but I think that asking here is a good start.
Thanks.
Environment:
fluentd 0.14.21
fluent-plugin-influxdb 1.0.0.rc3
influxdb-ruby 0.3.16

Additional info:
If I don't tag v.device_name and v.mount_point 2 string keys, the @influxdb.write_points() call will work, but the data written to influxdb are wrong:
> SELECT "v.device_name", "v.mount_point" FROM "mydb"."system.filesystem"

time    v.device_name             v.mount_point
----    ----                      ----
....    D:",v.mount_point="D:\    D:

I guess that it is caused by influxdb-ruby, but I think that asking here is a good start.

Yes. fluent-plugin-influxdb doesn't touch event content.

The bug has been fixed in https://rubygems.org/gems/influxdb/versions/0.4.2
It would be great that we upgrade the influxdb-ruby to >= 0.4, but will lose Ruby < 2.2 compatibility.
Any ideas?

If Ruby 1.9+ compatibility is absolute necessary, I could be persuaded to backport this bugfix into another 0.3.x release. However, Ruby 2.1 is EOL since 2017/04, so I need some strong arguments (or a PR against the influxdb-ruby/stable-03 tree 😉)

I think Ruby 1.9/2.0 support is no longer needed.
But ruby 2.1 is still widely used including td-agent 2 so backport above fix to 0.3 release is very helpful for me.
If 0.4 release is compatible with 0.3, we can relax version constraint of this plugin.
If not, we need changes to support 0.3 and 0.4 together.

But ruby 2.1 is still widely used

Is it? My impression is that the 2.0→2.1→2.2→2.3 migration process is really painless and people didn't stay long on the previous version. Are there distribution apart from Debian Jessie, which still ship Ruby 2.1?

If 0.4 release is compatible with 0.3,

Mostly. 0.4 removed Ruby compat for MRI < 2.2, which allowed some major code cleanups. Since then only a few new features have landed in the gem: I consider it feature complete, but sometimes people find new use cases :-).
The API hasn't changed between 0.3 and 0.4 in a backward compatible manner (if it has, it is a bug), so depending on ~> 0.3 should suffice. v0.4 has set required_ruby_version in its .gemspec. I don't know whether fluent-gem install ... knows how to interpret that setting, though...
I think, cobbling together a bugfix release for 0.3 should be too hard (tomorrow, anyway).

The API hasn't changed between 0.3 and 0.4 in a backward compatible manner (if it has, it is a bug),

Okay. I will check it.

I don't know whether fluent-gem install ... knows how to interpret that setting, though...

To avoid this problem, we need to install v0.3 seriese first like this: https://github.com/fangli/fluent-plugin-influxdb#installation

Sorry, it was late for me yesterday:

The API hasn't changed between 0.3 and 0.4 in a backward compatible manner

should read

The API hasn't changed between 0.3 and 0.4 in a backward incompatible manner

I have just released v0.3.17 of the InfluxDB gem, backporting the bugfixes applied to the v0.4 tree.

we need to install v0.3 seriese first like this: [...]

I believe, I've miscommunicated my intent: When I said "so depending on ~> 0.3 should suffice", I was referring to your .gemspec. If fluent-gem install fluent-plugin-influxdb -v 1.0.0.rc2 does the right thing, it will pick up InfluxDB v0.3 on MRI <= 2.1 and v0.4 on MRI > 2.1.

I have just released v0.3.17 of the InfluxDB gem, backporting the bugfixes applied to the v0.4 tree

Thanks for great work!

it will pick up InfluxDB v0.3 on MRI <= 2.1 and v0.4 on MRI > 2.1.

No because gemspec doesn't have such metadata in one gemspec file. fluent-gem install fluent-plugin-influxdb -v 1.0.0.rc2 will try to install latest influxdb gem and it causes same error on MRI <= 2.1.

@dmke Thanks for the 0.3 backport! Just repack the docker image and everything works expected!
@repeatedly I think it's ok to close the issue since we don't have to change anything. 😄
Again, thanks for your great work!
Confirmed that the query result from influxdb HTTP API is correct now.
{
    "results": [
        {
            "statement_id": 0,
            "series": [
                {
                    "name": "system.filesystem",
                    "columns": [
                        "time",
                        "v.device_name",
                        "v.mount_point"
                    ],
                    "values": [
                        [
<PHONE_NUMBER>688,
                            "D:\\",
                            "D:\\"
                        ]
                    ]
                }
            ]
        }
    ]
}

fluend-gem install ... will try to install latest influxdb gem and it causes same error on MRI <= 2.1

Well, in that case, you should stay on 0.3.x. Except for some more cleanup and refactoring, I don't have anything special planned for the 0.x series. For the time being, 0.3 and 0.4 should stay mostly compatible, with some minor new interfaces in 0.4.
However, when influxdata/influxdb#8477 lands, major refactoring in the client code will, which likely necessitate a 1.0 release of the InfluxDB gem (and, at this point, will drop MRI 2.1 support for good).

Confirmed that the query result from influxdb HTTP API is correct now.

:+1: Yay! :tada:


API Remove deprecated code

Parent issue

https://github.com/silverstripe/silverstripe-framework/issues/10546

Created new issue for this PR

https://github.com/silverstripe/silverstripe-webauthn-authenticator/issues/127


Check if table exists

Hi, i have a question, it may be a stupid question but i can't seem to figure out how to do it.
I want to check if a certain table exists (in this case the table "users") if it does exist i want to insert a user, if not then create the database and then insert user. (the creation of the database works only it keeps trying to create the same database time after time with each build of the app)
To give some dimension to my question here is the code i have so far.
let (tables, err) = SD.existingTables()
// HERE I WANT TO CHECK IF THE TABLE EXISTS
if tables == "users" {
if let err = SD.executeChange("INSERT INTO users (username, password) VALUES ('awesomeusername','awesomepassword')") {
//there was an error during the insert, handle it here
} else {
//no error, the row was inserted successfully
}
}else{
if let err = SD.executeChange("CREATE TABLE users (ID INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT, password TEXT)") {
println("The creation of the database went wrong")
}else {
println("The database is created")
}
}

Stupid me, only thing i had to change was CREATE TABLE users to CREATE TABLE IF NOT EXISTS users


How to adopt PolySharp to support sub arrays

According to the documentation PolySharp supports "Index and Range (see indices and ranges)".
The sample of the referenced Microsoft site tries to create sub-arrays:
string[] secondThirdFourth = words[1..4];

Unfortunately, this sample gets complaints:

I'm confused about the generic statement regarding PolySharp's support for "Index and Range". Do I miss something?

What data type is your _words ? I actually had the exact same issue. Turns our this only works on Arrays and Spans, as those are know to the compiler. I tried it with List, which works in NET5+, but not NET48 with any of the Polyfill libs.

And one more update: Seem to work with this and the other package if you just add that missing method, I got that from the blog link I posted. You only need this class / method
`namespace System.Runtime.CompilerServices
{
internal static class RuntimeHelpers
{
///
/// Slices the specified array using the specified range.
///
public static T[] GetSubArray(T[] array, Range range)
{
if (array == null)
{
throw new ArgumentNullException(nameof(array));
}
        (int offset, int length) = range.GetOffsetAndLength(array.Length);

        if (default(T) != null || typeof(T[]) == array.GetType())
        {
            // We know the type of the array to be exactly T[].

            if (length == 0)
            {
                return Array.Empty<T>();
            }

            var dest = new T[length];
            Array.Copy(array, offset, dest, 0, length);
            return dest;
        }
        else
        {
            // The array is actually a U[] where U:T.
            var dest = (T[])Array.CreateInstance(array.GetType().GetElementType(), length);
            Array.Copy(array, offset, dest, 0, length);
            return dest;
        }
    }
}

}`

Last update (for now). I modified the method a bit to be closer to the original from https://source.dot.net/#System.Private.CoreLib/src/libraries/System.Private.CoreLib/src/System/Runtime/CompilerServices/RuntimeHelpers.cs.
I did some quick tests including casting the array to object[] etc., seems to work. Maybe this helps you :-)
Not sure what the default(T) != null is for in the previously posted version. I can only assume some shortcut for value and struct types that cannot be null and cannot be inherited. May be a quick faster with that all around, I did not benchmark this.
using System.Security.Cryptography;

namespace System.Runtime.CompilerServices
{
    internal static class RuntimeHelpers
    {
        /// <summary>
        /// Slices the specified array using the specified range.
        /// Adapted from source: https://source.dot.net/#System.Private.CoreLib/src/libraries/System.Private.CoreLib/src/System/Runtime/CompilerServices/RuntimeHelpers.cs.
        /// Required for be able to use `array[10..20] ` syntax in .NET Standard 2.0 and net48.
        /// </summary>
        public static T[] GetSubArray<T>(T[] array, Range range)
        {
            if (array == null)
            {
                throw new ArgumentNullException(nameof(array));
            }

            (int offset, int length) = range.GetOffsetAndLength(array.Length);

            if (length == 0)
            {
                return Array.Empty<T>();
            }

            T[] dest;

            if (typeof(T[]) == array.GetType())
            {
                // We know the type of the array to be exactly T[].
                dest = new T[length];
            }
            else
            {
                // The array is actually a U[] where U:T. We'll make sure to create
                // an array of the exact same backing type. The cast to T[] will
                // never fail.
                dest = (T[])Array.CreateInstance(array.GetType().GetElementType(), length);
            }

            // In either case, the newly-allocated array is the exact same type as the
            // original incoming array. It's safe for us to Array.Copy the contents
            // from the source array to the destination array, otherwise the contents
            // wouldn't have been valid for the source array in the first place.
            Array.Copy(array, offset, dest, 0, length);
            return dest;
        }
    }
}

@Sergio0694 @xilefius why not make add this to the code base? ;)


Messy version of allowing resources to link to imported resources

Overview
To allow for linking from resources in a snippet to those imported, adds imported resources to those listed for creating relationships, but actually the linking only works if we create a NamedNode relationship instead of a ResourceNode. This is just a draft as we need to figure out a better way to do this.
connected issues and PRs:
Made to https://github.com/lblod/ember-rdfa-editor/pull/1212 as that is the more finalised part of the design.
Setup
Link to plugins PR.
How to test/reproduce
See plugins PR for most details. When creating a link to an imported resource from a resource in the snippet, click 'add relationship' as normal, but create a NamedNode link with a manually entered URI.
Challenges/uncertainties
Need to figure out the right way to do this.
Checks PR readiness

[ ] UI: works on smaller screen sizes
[ ] UI: feedback for any loading/error states
[ ] Check cancel/go-back flows
[ ] Check database state correct when deleting/updating (especially regarding relationships)
[ ] changelog
[ ] npm lint
[ ] no new deprecations

@piemonkey do you think this PR is still necessary? I don't think this is really a usecase right?


Fresh Install on Pi Zero W with 120MC-S stuck on "software is starting up"

I posted about this months ago,  but gave up on the issue. I decided to reinstall everything on a Pi Zero W with a 120MC-S. The USB 3 vs 2 issue seems to not affect this camera. I have everything initialized and working with the GUI, but it gets stuck on "Allsky software is starting up".  Any solution?

I am not sure how to attach logs, but I ran this
~/allsky $ tail /var/log/allsky.log
and go:
Mar  7 21:29:39 allsky allsky.sh[1248]: === Starting nighttime capture ===
Mar  7 21:29:39 allsky allsky.sh[1248]: ==========
Mar  7 21:29:39 allsky allsky.sh[1248]: WARNING: Value of 200 greater than max value allowed (100) for control 'AutoExpMaxGain' (#10).
Mar  7 21:29:39 allsky allsky.sh[1248]: WARNING: Value of 50 greater than max value allowed (20) for control 'Offset' (#5).
Mar  7 21:29:39 allsky allsky.sh[1248]: STARTING EXPOSURE at: 2022-03-07 21:29:39   @ 10.0 sec
Mar  7 21:29:50 allsky allsky.sh[1248]: STARTING EXPOSURE at: 2022-03-07 21:29:50   @ 6.1 sec
Mar  7 21:29:56 allsky allsky.sh[1248]:   > Saving NIGHT image 'image-20220307212950.jpg'
Mar  7 21:29:56 allsky allsky.sh[1248]:   > Sleeping: 443.9 sec
Mar  7 21:30:05 allsky allsky.sh[1276]: removeBadImages.sh: File is bad: removed 'image-20220307212950.jpg' (above threshold: MEAN=99.920900, threshold = 90)
Mar  7 21:31:05 allsky allsky.sh[1248]:      ***** Stopping AllSky *****
I am not sure if this is related to the issue or not

@DamoclesSword Please read the Wiki page on reporting issues.  It describes how to set up the log file to contain the necessary information.  You can attach the log file by appending a ".txt" to a copy of it, then simply dragging and dropping it to the area at the bottom of your reply.
Sleeping 443.9 seconds is unusual.  What is your night delay?
You can resolve the two WARNING messages in the WebUI's "Camera Settings" page.  The first one is for nighttime "Max Gain" and the second one is for "Brightness (offset)".  Your values of 200 and 50 are greater than the maximum of 100 and 20, respectively.
The "removeBadImages.sh" message is saying that the image is brighter than the threshold of 90.  Its mean brightness is 99.92 which is almost pure white, so it's deleting the picture.  I suspect all your pictures are too bright so it never saves a valid picture,  which is why the "Allsky software is starting up" message stays there - it only goes away once the first valid image is saved.

@DamoclesSword   All commands are run from the command line in a terminal window.  You can get to the Pi via ssh, which only gives you one window, or via VNC, which presents a remote desktop,  which IMHO is much nicer since you can open many terminal windows and other programs.
If you followed the instructions on the "Reporting Problems" Wiki page, please attach /var/log/allsky.log.  I am pretty sure all the images before 11 pm were extremely bright so were being discarded, and then around 11 pm they got dark enough (average brightness less than .9, where 0 is pure black and 1 is pure white) so the images were kept and hence displayed.
In the "Editor" page of the WebUI, try changing the REMOVE_BAD_IMAGES variable to "false", then in the "Camera Settings" page turn on the "Show Histogram" option to show the mean brightness.  This should give you an idea of what's going on.
On the bottom of the WebUI, click on the "Show advanced options" button.  You should then see the Brightness (offset) and Max Gain options.
What commands are you running when you "get nothing"?
For the timelapse, keogram, and startrails, you can look in the log file for "Starting startrails", etc, and then look for error messages.
Or you can run
cd allsky/scripts
./generateForDay.sh  -s 20220307

to generate a startrails for yesterday, and see what it says.
"-k" will do a keogram and "-t" will do a timelapse.

@EricClaeys Maybe there is a step I am missing, but once I SSH into the pi, I run the sudo systemctl stop allsky then I run the truncate and nothing happens after that. I try typing /var/log/allsky.log but that returns -bash: /var/log/allsky.log: Permission Denied. If there's something else I need to do, I dont see it on the wiki. I can look into the VNC but I have a feeling that might stress the little Pi Zero too much.
You right about the images, I think something happened with the gain where it was forcing a gain of 200 in that hidden menu. I changed it after I found it later.
As for the commands, they are what I mentioned above.
Lastly, do the timelapse, keogram, and startrails not generate automatically? I can attempt to generate a timelapse but I know it is going to take awhile.

@DamoclesSword /var/log/allsky.log is the name of the log file.  Typing /var/log/allsky.log by itself will tell Linux you want to execute the file, but it's not a program so it's not executable, hence the "Permission Denied" message.
If you want to view the file, you have to use a text editor like nano /var/log/allsky.log or to view the last 50 lines of the file you can tail -50 /var/log/allsky.log.  You can change "50" to another number. The command I use the most is tail -f /var/log/allsky.log which will continually display whatever is written to the file, in real time, until you enter CTRL-C to exit the command.
To get a copy of the log file to upload to GitHub, do this:
cd
cp /var/log/allsky.log   allsky.log.txt

The "cd" command puts you in /home/pi.
The "cp" command copies the log file to a file called "allsky.log.txt" in /home/pi.  GitHub won't let you upload a file ending in ".log" so you're basically renaming the file to end in ".txt" which GitHub accepts.  You then need to transfer that file to a PC to upload to GitHub.  If you use VNC, you could run the web browser on the Pi and simply drag and drop (another advantage of using VNC).
Linux is case-sensitive, so generateforDay.sh is different than generateForDay.sh (capital "F").
Try again, making sure it's exactly as below:
cd /home/pi/allsky/scripts
./generateForDay.sh  -s 20220307

A gain of 200 shouldn't cause the pictures to be almost pure white.  However, if you had both auto gain and auto exposure on at the same time, that could cause the problem.  Some people have reported strange results when both are set to "auto".  I suggest turning auto gain off and auto exposure on, then play around with the gain setting.  Higher values produce brighter, but grainier images.   Yesterday I lowered my gain from 300 to 275 because there was too much grain.  Cameras have different maximum values for gain and other settings.  If you set the "Debug Level" to 4, then truncate the log file, when you restart Allsky, the top 50 or so lines will show all the capabilities of your camera including their minimum, maximum, and default values.  You can use head -50 /var/log/allsky.log to view the top 50 lines.  Change to another number to view those lines.

@DamoclesSword, The timelapse, keogram, and startrails should generate automatically at the end of night, assuming you have TIMELAPSE="true", KEOGRAM="true", and "STARTRAILS="true"` in allsky/config/config.sh.
If they aren't there is a problem.  If you haven't increased your swap space that's likely the cause.  There's a Wiki page for increasing swap under the "Troubleshooting" section.

When I type nano /var/log/allsky.log, it pops up an error message saying it is unwritable.  I then exited out of that and re-ssh into the pi and typed
cd
cp /var/log/allsky.log   allsky.log.txt
Which nothing popped up. If I dont have VNC setup, assuming we figure out this log issue, how would I get this file off of the Pi?
As for the timelapse command, you are right, I missed the capital F before.
As for that second message, I have all the features enable, but there's nothing on GUI. I ordered a Pi 4 so I might just wait for that to come in before worrying about the file generation. I do want to figure out the logs though.

@DamoclesSword   After you copy a file with the cp command, nothing should show up except your prompt.  If there's an error it will display a message.  If you do ls -l allsky.log.txt it will display information on the file, like the permissions, owner, group, date, and size.
By default the log file is not readable by the "pi" login.  As soon as I installed the software for the first time I did this:
sudo chgrp pi /var/log/allsky.log
sudo chmod 644 /var/log/allsky.log

That makes the file readable and writeable by the "pi" login.
From your PC you can try using scp (secure copy) to copy files from the Pi to your PC, or vice versa. Try
scp pi@allsky:allsky.log.txt  .

That should copy the file to the current directory on your PC.

  Every experienced Linux user was inexperienced at one time.
I agree I am probably assuming things you don't know.  I'll try to improve there.
The Wiki does assume basic knowledge and I will likely keep it that way since the pages will get really complex if they each have to explain the basics.  However, I just added an outline of a Linux and Pi Basics Wiki page for people like yourself.  When I have an initial version I'd appreciate your feedback.
This post is somewhat long since I included explanations that I hope will help you.  However, if you prefer I not do that in the future, let me know.
Some Linux basics:
Commands are executed by typing their name and optionally adding arguments, then pressing the "Enter" key.  A simple example: typing echo will output a blank line. Typing echo hello world will output "hello world".  Typing scp will produce the usage message you saw because the scp command expects at least two arguments and none were given.  If you want to learn about a command you can type man scp to get the "man"ual page for the scp command.  That will display the usage as well as a description of each argument; most manual pages are multiple pages.  In this example:
usage: scp [-346ABCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file]
[-J destination] [-l limit] [-o ssh_option] [-P port]
[-S program] source ... target

everything between a left and right bracket is optional, so for example, you can optionally specify port 22 by adding -P 22.  In the above example, everything is optional except "source" and "target".  The "source ..." means you can specify multiple source files.  Most arguments typically start with a "-" and then some letter or number, and may be followed by a second argument.  When you see something like [-346A] it's the same as [-3] [-4] [-6] [-A].  Remember that Linux is case-sensitive so -A and -a are different.
Typically the order of the arguments doesn't matter, although with something like -P 22 you can't enter 22 -P.
Options that begin with a "-" usually have a single letter or number after them.  Many commands also allow options that begin with "--" and are followed by a word.  For example, the rm (remove) command has both -f and --force options which both force the removal of a file.
For the scp command, are you sure you entered scp pi@allsky:allsky.log.txt  . exactly like this, with a space before the ending period?  The "usage" message only appears if the command is not called correctly.  The command I gave you has two arguments:

pi@allsky:allsky.log.txt is the "source" file location  This tells scp to log in to the "allsky" machine as the "pi" user, then grab the "allsky.log.txt" file.  I am assuming your Pi is called "allsky" and you log in as "pi", since those are the defaults.  If it can't find the "allsky" computer you'll need to enter the Pi's IP address, like pi@<IP_ADDRESS>:allsky.log.txt.
Just like with email addresses, the "@" separates a user name and a computer name, ala<EMAIL_ADDRESS> scp uses the ":" to separate the user/machine from the file to get.
. is the target directory to put the file in on the machine you run the scp command on. ("." means the current directory in Linux).

The "-J" option to scp requires a "destination".  The manual page says that option tries to use an intermediate server for the transfer, which you don't want.  The ssh: Could not resolve hostname c: message says it couldn't find a computer named "c".  Did you type something like scp -J c:\some_file?  If so, that would explain that message.
Our goal with the "allsky.log.txt" file is for me to see it.  If I could log into your Pi I could look myself, but that requires that your Pi be accessible via the Internet.  The next best thing is to attach it to a GitHub post.  Our difficulty is figuring out how we get it from your Pi to your PC so you can attach it to a post.  How did you add the lines from the log file in your second post?  I assume you did a copy/paste from your ssh window on your PC to your GitHub post?  That only included 10 lines of the file whereas I need to see the whole thing which will be several hundred lines.
If you can't get scp working, you can try the following:

ssh into the Pi
Make your ssh window as large as possible.
Create a .txt file using Notepad on your PC.
Run more /var/log/allsky.log on the Pi.  This will display the file one page at a time.
Copy/paste the first page into the file on your PC.
Press the spacebar in the ssh window to go to the next page in the log file.
Copy/paste the second page into the end of the file on your PC.
Keep doing a copy/paste followed by the spacebar until you get to the end of the file.
Type "q" to exit the more command.
Attach the file from your PC to your GitHub post.

Going forward, when you get errors on the Pi, please copy and paste the command you typed as well as the error, or do a screen capture, so I can see exactly what you typed, including spaces, etc.  This will make troubleshooting much quicker.
We'll get this working, so please hang in there with me.  I know it's frustrating now, but once you get Allsky running it'll be worth the hassle.
Eric

@EricClaeys The way you just handled that was so kind. I am blown away at that level of support for this program! I was able to do that last step to get all the logs from the first initialization on my new Pi4 2Gb. There's some errors at the start of the log that are from that setup process where I didnt have the camera plugged it. That install did go smooth though.
PiLog.txt
I know I am replying out of order, which I feel like what matters most is above. It seems that the software has yet to try to start creating a timelapse. I did already configure the GUI so all the the values that need to be set to "true" are.
When you say . (hopefully that inserts that correctly) is a target directory, where is that location? If I type
scp pi@allsky:allsky.log.txt .
Where is that file going to be located? Or do I need to replace the . with something?
When I type:
pi@allsky:~ $ scp pi@allsky:allsky.log.txt . (which this was pasted from my command line) I get:
pi@allsky's password:
scp: allsky.log.txt: No such file or directory
So, I redid all the steps above

pi@allsky:~ $ cd
pi@allsky:~ $ cp /var/log/allsky.log.txt
cp: missing destination file operand after '/var/log/allsky.log.txt'
Try 'cp --help' for more information.

That did nothing. If I understand you message from the other day correctly "The "cd" command puts you in /home/pi.
The "cp" command copies the log file to a file called "allsky.log.txt" in /home/pi. GitHub won't let you upload a file ending in ".log" so you're basically renaming the file to end in ".txt" which GitHub accepts." That means that when I run the cd and cp command, that file is still on the Pi correct? The only way to get it off is via VNC or something like that?
I have tried researching the SCP command on google, but their syntax seems different that what you're saying because after where we have pi@allsky:allsky.log.txt they seem to add some [user@]DEST_HOST:]file2.
I then tried the whole thing:

pi@allsky:~ $ sudo systemctl stop allsky
pi@allsky:~ $ sudo truncate -s 0 /var/log/allsky.log
pi@allsky:~ $ scp pi@allsky:allsky.log.txt .
pi@allsky's password:
scp: allsky.log.txt: No such file or directory
pi@allsky:~ $

I know this is a lot, but I am just at a lost. I have the software running and the Pi4 seems great, I just dont understand why the timelapses and others are not being generated, and do not understand why I cannot seem to figure out these log files.

@DamoclesSword The cool thing is, I meant it.    You were able to upload the log file which is a great first step.  I can't do much without it.
You are trying to learn a lot of things at once and I assume you are not a programmer so I'm not surprised you are having challenges.
Anyhow, so much for my philosophy.
Our first goal is to copy the log file on your Pi to your PC so you can easily attach it to your GitHub reply.  There are multiple ways to copy the file - I suggested scp because under the rugs it uses ssh to do the copy, and you are already using ssh so we know it works.  VNC is another way but you'll need to enable it on the Pi, then install a VNC viewer onto your PC.  That's not that hard, but requires you learn the Pi desktop.  I use a third way to copy files which is to mount my /home/pi directory onto my PC (I call it the Y: drive) so I can simply drag and drop files like I do with any other Windows file.  Setting that up is much more advanced but works great.
=== More Linux info: ===
Linux and Windows are pretty similar in concept - they just use different syntax.  Directory names in Linux are separated by / and Windows uses \.  In Linux the highest level directory (called "root") is /; in Windows it's "C:".  /home in Linux is a subdirectory of the root, and /home/pi is a subdirectory of /home.  In Windows, C:\users is a subdirectory of the root, and C:\users\eric is a subdirectory of C:\users.  Linux is case-sensitive; Windows is not.  When you first login as the "pi" user on Linux, you are put in the "pi" user's home directory, which is /home/pi.  When I log into Windows I'm put in my home directory which is C:\users\eric.
. stands for the current directory, whatever that is.  .. is its parent directory.
You move to different directories using cd (change directory).  With no arguments, cd puts you in the home directory. The tilde character ~ stands for the home directory, so cd ~ also puts you in the home directory.  Typing cd is easier, BUT, let's say you are in /var/log and want to go to the /home/pi/allsky directory.  You could type cd /home/pi/allsky or cd ~/allsky which is easier.  I mention this because some of the commands I suggest contain a tilda.
Linux prompts you with pi@allsky:~ $  which is your login (pi) followed by "@" followed by your Pi's name (allsky) followed by : followed by the current directory (~), so you are in pi's home directory.  (The $ is just there for historical reasons - many years ago the prompt was simply $ ).  If you cd allsky from with the home directory you will be in /home/pi/allsky (also called ~/allsky) so your prompt changes to pi@allsky:~/allsky $ .   Windows does something very similar if you use the cmd window.
The cp (copy) command has two required arguments - a source file and a destination.  When you ran cp /var/log/allsky.log.txt you didn't specify the destination so got the cp: missing destination file operand after '/var/log/allsky.log.txt' error message.  Note that had you specified a destination it still would have failed because /var/log/allsky.log.txt doesn't exist - the log file is /var/log/allsky.log.  What you wanted to execute was cp /var/log/allsky.log allsky.log.txt. which would put the copy of the log file in the current directory.

Hint: when executing commands I suggest, try copying/pasting them rather than typing them - it's less error prone.

[BTW, I just found out today that GitHub DOES accept files ending in .log - sorry about that. You still want to make a copy of the log file otherwise by the time you upload it, it would contain a lot of extra lines which makes it harder for me to view.  And you still want the attached file to end in ".txt" because I often read emails on my phone, and it can't display ".log" files but CAN display ".txt" files.]
If you are in the home directory and run scp pi@allsky:allsky.log.txt . it will try to copy the "allsky.log.txt" file to . which is the current directory which is /home/pi.  (If you want to copy the file to somewhere else, for example, the "allsky" directory, you could replace the period with ~/allsky, but I suggested copying it to . because it was less typing hence less error prone.) I'm not sure why that command failed - are you sure "allsky.log.txt" is in /home/pi? You can verify by running:
cd
ls

That will list all the files and directories in your home directory.
The scp command is like cp but is used to copy files from one machine to another.  It requires the same two arguments (source and destination).  One difference in those commands is how you specify the source and destination.  With cp you simply give it two files or directories on the Pi.  With scp, at least one of the files should be on a remote machine and you use the login_name@machine_name:file_name syntax, such as pi@allsky:allsky.log.txt - "pi" is the login_name, "allsky" is the machine name, and "allsky.log.txt" is the file_name you want to copy.    And . is the 2nd argument so is the destination location.  pi@allsky is the pi login's home director on the "allsky" computer (which is your Pi), so scp will look in that home directory for the "allsky.log.txt" file.  You ran the command on your Pi so . (the destination) is on your Pi, but pi@allsky:allsky.log.txt is also on your Pi so you are telling scp to copy the file from the Pi to the Pi.
Instead, you want to run scp on your PC so it grabs the file from your Pi and puts it on your PC.
This is a lot to take in so I hope you understand.
Some things I notice in your log file.

Debug Level is set to 1, not 4 per the Wiki on Reporting Issues, so the log file is missing a lot of information.
Nighttime pictures started at 22:27:13.  That's pretty late - is it what you wanted?  If not, see the Wiki page on angle and sunset.
The last line in the log file is at 09:03:09 and it's still taking nighttime pictures.    This also explains why it didn't try to create a timelapse, keogram, or startrails - it only does that when nighttime ends and daytime begins - probably around 10:27:00.
Is your Pi inside or near an inside light?  The night exposures started off around 4 ms which is extremely short.   At 00:42:18 the exposure time jumped to 50 ms.  Perhaps a light went off?  At 00:49:40 the exposure went to 1 second then climbed to 16 seconds and stayed there until 6 am when I assume it started getting light outside and the exposure time dropped.
The exposure and brightness of the daytime pictures were ping ponging which I often see with ZWO cameras.  The first exposure in the log file is 0.5 ms at 14:55:50  and resulted in a very dark image.  The next exposure is 3 ms but gives the same brightness - it should have been noticeably brighter.  Then next exposure goes to 22 ms and only gets slightly brighter.  The next exposure is 107 ms and is a little TOO bright.  Then things get REALLY weird - the next exposure of 46 ms is almost pure white (it should have been quite a bit darker), and so is the next 22 ms exposure (even though the first 22 ms exposure was too dark). The next 10 ms exposure also is almost pure white.  It's almost like there's friction in the camera - Allsky keeps pushing the exposure time higher and not much happens, then all of a sudden the brightness changes drastically so Allsky starts pushing in the exposure down and not much happens until all of a sudden the brightness is way too dark, so you start pushing in the exposure up again.  This keeps happening for about 2 minutes, then settles into what I think is a reasonable exposure around 3 ms.
I don't know why this happens, but it could be due to moisture in the camera, a power supply to the Pi that doesn't provide enough power so the camera doesn't get enough power on the USB cable, or even a bug in Allsky (although if it were a bug I'd expect a lot of people to have the problem).
Did you do a firmware upgrade on your ASI120?  The README.md file on the GitHub home page mentions this:

NOTE: Owners of USB2.0 cameras such as ASI120MC and ASI120MM may need to do a firmware upgrade. This changes the camera to use 512 byte packets instead of 1024 which makes it more compatible with most hardware.

I suggest looking into that, and checking for moisture in the camera, and changing the Debug Level to 4.

@EricClaeys So, when I started following the steps from above, I didnt mix your directions with the original ones so that is why I was at the wrong log level. I will be traveling out of town today for 4 days, so I think this might all have to wait. I read your post at at a fairly high level, but will need to dig more into it later. The core of it is over my head but I still have the same root question: When run the scp command, where is it going to copy the file to?
Assuming I have ssh into the pi, could you just type all the commands needed to do this? It is getting hard to merge the information in the wiki with the stuff I am reading from you here.
Also yes, the camera is inside in my office for testing right now. I have already updated the firmware of my 120MC-S so all that should be in order. I will check the lat long to make sure they are correct and see what happens when I return from my work trip.

@DamoclesSword Waiting is no problem.  I expected that you might need to read my post more than once since it has a lot of details.  I will use some of what I wrote in the "Linux basics" Wiki page.
I don't mean this in a snarky way, but the scp command will copy the file to where ever the second argument points to.  If you run scp on your Pi and use . or anything else that doesn't have a : in it, like /home/pi, it will copy the file to your Pi.
If you run scp on your PC and the second argument is ., it will copy the file to your PC.
In both cases, if the second argument is ., the file will be copied to whatever directory you are in when you execute the command on your Pi or PC.
Kinda creepy that I can tell when your lights went out by looking at the log file, heh?
By any chance was the brightness of the office changing the first few minutes you ran the test?  If so, what would explain the weird ping pong behavior.
Be sure to also check "angle" when you check latitude and longitude.
Enjoy your work trip.

@DamoclesSword Sorry, forgot to give you the commands.
On the Pi, do this.  You should be able to copy this whole block to the clipboard on your PC, then paste it into an ssh window on your Pi:
sudo systemctl stop allsky
sudo truncate -s 0 /var/log/allsky.log
sudo systemctl start allsky
# let it run until you have the problem, however long that takes
sudo systemctl stop allsky
cp /var/log/allsky.log /home/pi/allsky.log.txt    # note the more explicit destination

On your PC, do this in a "cmd" window in whatever directory you want the log file to be copied to.  You can copy/paste this on your PC:
scp pi@allsky:allsky.log.txt  .

the "allsky.log.txt" file should now be in the directory you are in on the PC.  You can then use the Windows file explorer to drag and drop it to the bottom of your GitHub post.
It's good to know the camera was in the office since that explains the extremely bright images at night when it was taking long exposures with the lights on.  And you turned off the lights the first time around 11 pm when the images got dark.
BTW, when you googled the scp command and it showed [user@]DEST_HOST:]file2, there was another [ before the first one separated by a bunch of space - that's poor, confusing formatting of the manual page.  That string is simply a more accurate way of saying destination, because the destination (or source or both) can be a file on the current machine or on a remote machine.  You can specify

a destination host name followed by : and a file name (for a remote file: DEST_HOST:file2)
a user name followed by @ followed by a destination host name followed by : followed by a file name (for a remote file: user@DEST_HOST:file2)
just a file name (for a local file: file2).

Remember that in manual pages, [ and ] indicate optional arguments.

@EricClaeys
So I ran that entire string above and it did finally do something it seems and responded with this:
allsky.log.txt                                                                                100%   74   135.8KB/s   00:00
However, I still dont get where this file is supposed to be located on my PC? It clearly downloaded something but is not located anywhere that I can find

@DamoclesSword. Great - that's good progress.
Did you run scp on your PC in a cmd window?  If so, the file should be in whater directory you were in when you ran the command.

@DamoclesSword   Any update?  If the problem is resolved, please close this Issue.  Thanks.

Closing Issue - no reply from user in a month.


since insertFn is optional, it should be noted as such

The signature for this method should be (key, updateFn[, insertFn]) since you're able to omit it.

insertFn isn't optional if you omit updateFn though. It's a bit odd. Since you need at least 1 fn insertFN is only optional in light of the value of updateFn and cannot always be omitted.

right, but omitting updateFn requires an explicit undefined - so the .length of the function is 2, because 2 arguments are required at minimum. That there's validation performed on the 2nd, and that its value may force a 3rd to be required, is separate.


can not install for laravel 6.*

I am not able to install the package for laravel 6.0, however, the doc says it's for the laravel 7 and above only but I saw a commit which says added support for laravel 6.0
Problem 1
    - Can only install one of: laravel/framework[v6.18.20, 7.x-dev].
    - Can only install one of: laravel/framework[7.x-dev, v6.18.20].
    - Can only install one of: laravel/framework[7.x-dev, v6.18.20].
    - mpociot/teamwork 6.0.0 requires laravel/framework ^7.0 -> satisfiable by laravel/framework[7.x-dev].
    - Installation request for mpociot/teamwork ^6.0 -> satisfiable by mpociot/teamwork[6.0.0].
    - Installation request for laravel/framework == <IP_ADDRESS> -> satisfiable by laravel/framework[v6.18.20].

Hi @cypherinc
What version do you have of Laravel 6? since you can install from the version v6.18.20 or above

Same problem here, I'm using version 6.18.22 of Laravel and in composer.json I've  "laravel/framework": "^6.0",

Same problem here, I'm using version 6.18.22 of Laravel and in composer.json I've "laravel/framework": "^6.0",. Thanks.

sorry for the late reply, but I had to downgrade the package version to 5.3.0 in order to make it work.

Hi @cypherinc
What version do you have of Laravel 6? since you can install from the version v6.18.20 or above

hi, the problem was with the exact same version, laravel 6.18.20

Which PHP version do you use?

Which PHP version do you use?

7.2

try install it explicitly with composer require mpociot/teamwork:6.0.1  (this is the version with the fix for laravel 6.*) maybe the wildcard ^6.0 causing the problem. Just guessing as I can't reproduce your error :/

Just found the problem: packagist did not get updated version 6.0.1 properly (https://packagist.org/packages/mpociot/teamwork). I release an empty version 6.0.2 which should now work for you.
I just created an empty composer project using laravel/framework:6.18.20 and was able to install this package through
composer require mpociot/teamwork