text:
Improper conversions of object dtype to string[pyarrow]

I'm really happy about the use of pyarrow string by default for strings.  I think that it solves a lot of performance problems that made things unusable.
However, it seems like there are also frequent user errors about this feature, probably not enough to warrant turning it off, but enough that we should maybe think about it at a high level.  My sense is that people have various code that creates non-string objects and that we overly eagerly convert those to string[pyarrow] type.  Situations that I've observed:

types like

decimal
list
date
struct

when ...

reading parquet
specifying meta=("name", object)
shuffling?

I suspect/hope that there are ways to reduce some of these errant conversions that don't stop the general benefit of using pyarrow strings.  For example, I suspect that we could add mappings to the arrow type mapper when reading parquet.  I did this in https://github.com/dask-contrib/dask-expr/pull/373 and it worked fine I think?  Probably if the user specifies object as a dtype then we should respect it.
I'm curious to learn more about what's possible and not possible when solving this problem.  My guess is that that we can improve the situation, even if we don't solve it entirely.
cc @phofl @jrbourbeau @fjetter

I would like input from @jrbourbeau but IIUC the current implementation doesn't allow us to distinguish much here.
If this toggle is on, a map_partitions is scheduled that will cast the columns. For instance, even if the parquet reader would deal with other dtypes in a better way, a subsequent map_partitions would kill it again. I currently don't see an easy way out of this.
Similarly, regarding structs, lists, etc. we don't have a way to know without seeing the data and we rely on this casting when dealing with meta already. The cast itself could likely be made a little smarter but we'd have to deal with meta inconsistencies all over the place.
@phofl is there anything in pandas we can push / wait for to make this experience nicer?

https://pandas.pydata.org/docs/whatsnew/v2.1.0.html#avoid-numpy-object-dtype-for-strings-by-default
This is the best we can do, it converts the data through looking at them. It would cause meta and the actual data get out of sync, but that's the only downside I can see

Just to be sure, what I'm saying is "there are probably some ways to improve things, even if we don't entirely solve the problem".
As an example, I found that date types were converted to object and then to string[pyarrow].  By convering date instead to timestamp / datetime64 in the parquet reader they turned into a more reasonable data type and it seemed like they stayed that data type in subsequent operations (I doubt that the code from James converts a datetime64 to a string[pyarrow]).
Is my understanding above correct?  If so then great! let's spend a little bit of effort on type mappers in the parquet reader.  I'll bet that that helps reduce the pain here.  Maybe there are other low-hanging fruit like this?

Yes, the date type should be better handled this way. I was thinking mostly about the lists and more complex things.

Cool.   What other low hanging fruit exist?  Decimal?
Additionally, what about another approach?  Right now it looks like we do this in Frame so it's very global.  Maybe if we make all of the data ingestion functions better (parquet, csv, snowflake, ...) then we don't need to do as eager of a conversion and we let object dtype stay object dtypes?  I suspect that most of the benefit here is handled at the IO layer.

So I looked a little into the types mapper, converting dates and decimals to numpy dtypes is not supported out of the box. We could theoretically cast them ourselves if we want to?

Just a note that we are running into this problem a lot in RAPIDS while working on the pandas 2+ support.
Since cudf supports optimized struct and list dtypes, we have test coverage for the pandas-backed version of struct/list-column processing. For these kinds of workflows, it is obviously a bug to convert the column to string[pyarrow], because the processing logic is not expecting a string.
For now, we are just setting the "dataframe.convert-string" config to False in a bunch of tests, because I do realize that this is difficult to "fix" (and encouraging pyarrow strings by default still seems like a good idea).

authors: fjetter mrocklin phofl rjzamora

repo: dask/dask


text:
Implement linear_fusion for task spec class

optimize_slices is now unused, but not sure how public this is
same for inline_functions

I checked optimize_slices and there is no usage on Github
inline_functions is not as trivial since that's a more common name :(

source: gharchive/pull-request

license_type: permissive

license_source: github-api


text:
Add code quality tests

Add code quality tests, and squash all issues to make them pass. Code
quality is checked with flake8, using a subset of errors (see
setup.cfg). A test in dask/tests/test_flake8.py is added to check
that there are no flake8 errors from this subset. This can be easily run
using py.test:
py.test -m quality dask

To ignore certain errors locally you can use the # noqa: errors per
line, or # flake8: noqa at the top of a file. This is used sparingly
throughout to silence complaints that are invalid/not useful.

+1

authors: jcrist mrocklin


text:
Allow da.asarray to chunk inputs

Previously asarray used a single chunk.
This made sense with numpy arrays but didn't make sense when given large
on-disk arrays.  Now we allow chunks to pass through, and use auto
otherwise.
@jakirkham ran into this

LGTM. Thanks @mrocklin!
To get some other opinions, @shoyer @jrbourbeau, any thoughts?

Looks good to me!

+1 thanks @mrocklin

authors: jakirkham jrbourbeau mrocklin shoyer


text:
first character is being stripped from sub-paths

This is a bizarre issue, but bear with me.
You may verify for yourself that following gcs object exists and is publicly readable: https://storage.googleapis.com/pangeo-data/CMIP6-3hr/IPSL.IPSL-CM6A-LR.historical.3hr.gr/huss/.zarray
Now let me try to find it using gcsfs:
import gcsfs
gcs = gcsfs.GCSFileSystem(token='anon')
gcsmap = gcsfs.GCSMap('/pangeo-data/CMIP6-3hr/IPSL.IPSL-CM6A-LR.historical.3hr.gr', gcs=gcs)
list(gcsmap.keys())

['zattrs',
 'zgroup',
 'zmetadata',
 'eight/.zarray',
 'eight/.zattrs',
 'eight/0',
 'uss/.zarray',
 'uss/.zattrs',
...

You can see that the first letter (h in this case) is being stripped out of the path. This makes it impossible to find the objects. This is pretty critical if you ask me!
I'm using gcsfs version 0.2.1.

This is happening because of silently removing the leading "/" in the path, so the apparent root path's length is one longer than would otherwise be thought. The following works:
import gcsfs
gcs = gcsfs.GCSFileSystem(token='anon')
gcsmap = gcsfs.GCSMap('pangeo-data/CMIP6-3hr/IPSL.IPSL-CM6A-LR.historical.3hr.gr', gcs=gcs)
list(gcsmap.keys())

Obviously the behaviour should not depend on whether there is a leading "/".

Dropping the leading slash fixes it!
Glad it's an easy fix...but yes, I agree that it is confusing that the presence / absence of the leading "/"  can lead to this.

source: gharchive/issue

authors: martindurant rabernat

repo: dask/gcsfs


text:
Tar doesn't work on OSX

When using the zip option on OSX the deployment falls over because of the --ignore-failed-read flag.

#40 should take care of this.

Excellent, just tested it and my problem is fixed :+1:

authors: dasuchin warrickhill

repo: dasuchin/grunt-ssh-deploy

license: mit

license_source: bigquery


text:
20200213 - meeting

Just an hour hanging out and talking about DAT stuff.
:point_right: Post a comment in this github issue with any topics you'd like to cover this week
:alarm_clock: Time: 13 Feb 2020, 18:00 GMT
:link: https://zoom.us/j/181036238

Timezone
Date/Time

Buenos Aires
13 Feb, 3 PM

Toronto
13 Feb, 1 PM

New York
13 Feb, 1 PM

Los Angeles
13 Feb, 10 AM

Berlin
13 Feb, 7 PM

Or in your local time: https://www.timeanddate.com/worldclock/fixedtime.html?msg=Dat+Comm-Comm+Meeting+2020-02-13&iso=20200213T18&p1=1440&ah=1

I am keen to get started on Dat ...will attempt to review docs this week.
Is there a good starting point you'd suggest?
I am writing from Australia and will attempt to join the call this week -- it'll be Fri, 14-Feb, 7:00 am
Looking forward to learning & building on dat.

Hey thanks for your reply @pkrasam and welcome to the Dat community 🤗
About a good starting point, that is a good question for Dat these days, we are updating docs so any feedback on that part could help. My suggestion would be to start with the docs and playing a bit with the Dat-SDK. In companion with these you can have open the how dat works docs, which can be a lot at the beginning but it cover many fundamentals concepts.
Hope you can make it to the comm-comm! ☕ ✌

authors: dpaez pkrasam

repo: dat-land/comm-comm

license: MIT


text:
Query filtering - support set - contains(), not_contains(), in()

Do your lib support these functions for set ?
For example: How to pass params to function for these ? I tried to use DynamoDB.SS(['a', 'b']) but get Exception:
[ValidationException: One or more parameter values were invalid: Invalid number of argument(s) for the IN ComparisonOperator]

Hi,
the lib does not support it, not even sure how aws supports it either.
I will have a look at it and get back to you
Thanks for reminding me

AWS supports it with CONTAINS or NOT_CONTAINS: http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Condition.html

Hi,
0.1.52 now supports CONTAINS and IN
.having("string").contains("substring")
.having("string_set").contains("a")
.having('object.array[2]').in([3,4,'a'])
all conditions are ANDed together
so SS contains "a" AND "b" resolves to
.having("SS").contains("a").having("SS").contains("b")

authors: Homage databank neil-rubens

repo: databank/aws-dynamodb


text:
Add missed other default case when parsing/inferring XML documents

This PR adds the support for skipping multiple white spaces.
This should have been added but missed. As COMMENT is always skipped here and here but it seems it is possible to have the COMMENT is between white spaces.
In this case, factory.setProperty(XMLInputFactory.IS_COALESCING, true) does not coalesce both white spaces.
In more details,
<a>
  <!-- comment -->
  a
</a>

in this case, <!--comment --> is surrounded with whitespaces.
This produces the events as blow:
XmlEvent.CHARACTERS  # whitespace
XmlEvent.COMMENT     # comment
XmlEvent.CHARACTERS  # whitespace
XmlEvent.CHARACTERS  # "a"

Current codes always filter XmlEvent.COMMENT so it ends up with
XmlEvent.CHARACTERS  # whitespace
XmlEvent.CHARACTERS  # whitespace
XmlEvent.CHARACTERS  # "a"

which does not happen in normal cases because we are coalescing multiple XmlEvent.CHARACTERS into single one.

Current coverage is 90.27% (diff: 50.00%)

Merging #166 into master will decrease coverage by 0.11%

@@             master       #166   diff @@
==========================================
  Files            14         14
  Lines           677        679     +2
  Methods         614        619     +5
  Messages          0          0
  Branches         63         60     -3
==========================================
+ Hits            612        613     +1
- Misses           65         66     +1
  Partials          0          0

Powered by Codecov. Last update 617a31e...a430bca

I am going to merge this.

authors: HyukjinKwon codecov-io

repo: databricks/spark-xml


text:
[Feedback] Consider a way to fold opened up LHS Topics on place page

Feedback
Consider a way to fold opened up LHS Topics on place page
About
URL: https://datacommons.org/place/country/USA?topic=Economics
Steps to reproduce the behavior:

Go to https://datacommons.org/place/country/USA
Click on Economics
Suppose user now wants to navigate to the next Topic after Economics, user has to scroll down 5-6 pages to get to "Health" topic. (Or go back on browser or click Overview.)

There is scroll bar in LHS menu now.

authors: pradh shifucun

repo: datacommonsorg/website


text:
Add a page to view screenshots from webdriver test

Page /screenshot/ will load screenshot images from gs://datcom-staging-screenshot/ and display them.
This will be used in webdriver test after PR commit and push. Author will receive an email with link of this page to verify the screenshots.

How will we see whether any diffs were generated - should we show side-by-side images between runs? Will we have to fix post-commit with a new PR? Have we explored adding this as a pre-submit hook like datcom-ci?
Should we flush out the plan in the design doc first?

Thanks for review!
This tool now serves as a simplification for current user validation process. The diff capability is not there yet and yes, we should do that in the next step (depending on Hao's progress as he only has 1.5 weeks left for internship).
The screenshot will be triggered on PR review as presubmit results and let author and reviewer verify the screenshot before merge.

Got it - PR commit and push to dev branch, not merge. Thanks for the clarification!
Some follow ups that will be helpful:

Listing all the available folders in the UI, so you can easily click to see all the available screenshots
Show screenshots in two columns: master, and from the dev branch
Screenshot diffs to catch small alignment issues.

Got it - PR commit and push to dev branch, not merge. Thanks for the clarification!
Some follow ups that will be helpful:

Listing all the available folders in the UI, so you can easily click to see all the available screenshots
Show screenshots in two columns: master, and from the dev branch
Screenshot diffs to catch small alignment issues.

Created an issue to track: https://github.com/datacommonsorg/website/issues/281

authors: beets shifucun


text:
Make it more configurable for third-party use

Hi!
In this PR are changes I needed to make to make it work with Daily News styles, as well as configuration options & functionality needed to make those configurations outside of the repo's tracked files.
I made every effort to make my changes seamlessly backward compatible as well as to update the README to describe the config changes made.
These are the things that are now configurable:

The drop-down select menu where you choose the preset dimensions of the web map.
The yaml style file contents and style file name.
The text in the footer of the map maker.

If you have more questions or see something that needs fixing, let me know! Thanks for building such a great tool~~~
Joe

Just now noticed the merge conflicts in

index.html
js/app.js
js/config.js-TEMPLATE
js/html2canvas-0.5.js

I'll close and resolve those, then resubmit.

repo: datadesk/web-map-maker


text:
Correction for raw affiliation UMR MoISA (Montpellier Interdisciplinary centre on Sustainable Agri-food systems), Univ Montpellier, CIRAD, CIHEAM-IAMM, INRAE, Institut Agro Montpellier, IRD, Montpellier, France

Correction needed for raw affiliation UMR MoISA (Montpellier Interdisciplinary centre on Sustainable Agri-food systems), Univ Montpellier, CIRAD, CIHEAM-IAMM, INRAE, Institut Agro Montpellier, IRD, Montpellier, France
raw_affiliation_name: UMR MoISA (Montpellier Interdisciplinary centre on Sustainable Agri-food systems), Univ Montpellier, CIRAD, CIHEAM-IAMM, INRAE, Institut Agro Montpellier, IRD, Montpellier, France
new_rors: 05kpkpg04;04abkkz03;051escj72;05q3vnk25;03rnk6m14;0005r2j17;003vg9w96;011xg1225
previous_rors: 05kpkpg04;04abkkz03;051escj72;05q3vnk25;03rnk6m14;0005r2j17;003vg9w96
works_examples: W4399049632;W4402901640
contact: e609b0e9784822e1ca1c2aa087d2c859:338718c44d98d25f @ supagro.fr

This issue was accepted and ingested by the OpenAlex team on 2024-12-19. The new affiliations should be visible within the next 7 days.

repo: dataesr/openalex-affiliations


text:
Correction for raw affiliation CHU Rennes, Radiology Department, Rennes, France; Inria, CRNS, Inserm, IRISA UMR 6074, Empenn U1228, Univ Rennes, Rennes, France

Correction needed for raw affiliation CHU Rennes, Radiology Department, Rennes, France; Inria, CRNS, Inserm, IRISA UMR 6074, Empenn U1228, Univ Rennes, Rennes, France
raw_affiliation_name: CHU Rennes, Radiology Department, Rennes, France; Inria, CRNS, Inserm, IRISA UMR 6074, Empenn U1228, Univ Rennes, Rennes, France
new_rors: 05qec5a53;015m7wh34;00myn0z94;02vjkv261;02hp31992
previous_rors: 05qec5a53;015m7wh34;00myn0z94;02vjkv261
works_examples: W4385858520;W4377967490
contact: 8e4903a275565c54163075e594c936c8:c0e7509aee04221d72b3a7f2b2848e65 @ univ-rennes.fr

This issue was accepted and ingested by the OpenAlex team on 2024-10-10. The new affiliations should be visible within the next 7 days.


text:
Correction for raw affiliation BN University of New Brunswick, 2011; School of Nursing Ryerson University; in the Program of Nursing Toronto, Ontario, Canada, 2015

Correction needed for raw affiliation BN University of New Brunswick, 2011; School of Nursing Ryerson University; in the Program of Nursing Toronto, Ontario, Canada, 2015
raw_affiliation_name: BN University of New Brunswick, 2011; School of Nursing Ryerson University; in the Program of Nursing Toronto, Ontario, Canada, 2015
new_rors: 05nkf0n29;05g13zd79
previous_rors: 05nkf0n29
works_examples: W4249821023;W4232555399
contact: f5fb510b87b3f153549b9a9fdd44ee92:e9dba022 @ ourresearch.org

This issue was accepted and ingested by the OpenAlex team on 2024-10-10. The new affiliations should be visible within the next 7 days.


text:
Correction for raw affiliation CS Capital Srl (Formerly Prothea Srl), Via Alessandro Manzoni 41, 20121 Milano, Italy; Canadian Rivers Institute, 10 Bailey Drive, P.O. Box 4400, Fredericton, NB E3B 5A3, Canada

Correction needed for raw affiliation CS Capital Srl (Formerly Prothea Srl), Via Alessandro Manzoni 41, 20121 Milano, Italy; Canadian Rivers Institute, 10 Bailey Drive, P.O. Box 4400, Fredericton, NB E3B 5A3, Canada
raw_affiliation_name: CS Capital Srl (Formerly Prothea Srl), Via Alessandro Manzoni 41, 20121 Milano, Italy; Canadian Rivers Institute, 10 Bailey Drive, P.O. Box 4400, Fredericton, NB E3B 5A3, Canada
new_rors: 05nkf0n29
previous_rors:
works_examples: W3042577309;W4400316496
contact: 031c054e3db78d75bf259492f9ba4d7d:35c57df6 @ ourresearch.org

This issue was accepted and ingested by the OpenAlex team on 2024-10-10. The new affiliations should be visible within the next 7 days.


text:
Correction for raw affiliation Schulich School of Medicine and Dentistry, Western University, London, ON.

Correction needed for raw affiliation Schulich School of Medicine and Dentistry, Western University, London, ON.
raw_affiliation_name: Schulich School of Medicine and Dentistry, Western University, London, ON.
new_rors: 02grkyz14
previous_rors: 05cgtjz78
works_examples: W4322101891;W4381383432;W4388206358;W4381893195
contact: b2fa1569ac472a3ead5fc9efdf214c2c:18cffa5a6c7a1414 @ uwo.ca

This issue was accepted and ingested by the OpenAlex team on 2024-12-19. The new affiliations should be visible within the next 7 days.


text:
Correction for raw affiliation Haihe Laboratory of Sustainable Chemical Transformations, Tianjin, 300350, PR China

Correction needed for raw affiliation Haihe Laboratory of Sustainable Chemical Transformations, Tianjin, 300350, PR China
raw_affiliation_name: Haihe Laboratory of Sustainable Chemical Transformations, Tianjin, 300350, PR China
new_rors:
previous_rors: 03q99v794
works_examples: W4361279120
contact: 3a2755cd24a991d5e8cae3c44004f60a:c4508094dde0b7149de91384606c @ univ-lille.fr

This issue was accepted and ingested by the OpenAlex team on 2024-12-19. The new affiliations should be visible within the next 7 days.


text:
Correction for raw affiliation Maîtresse de conférences (HDR) en Littérature comparée à l'Université Jean Monnet - Saint-Étienne | CNRS – IHRIM UMR 5317

Correction needed for raw affiliation Maîtresse de conférences (HDR) en Littérature comparée à l'Université Jean Monnet - Saint-Étienne | CNRS – IHRIM UMR 5317
raw_affiliation_name: Maîtresse de conférences (HDR) en Littérature comparée à l'Université Jean Monnet - Saint-Étienne | CNRS – IHRIM UMR 5317
new_rors: 04yznqr36;02wmc6m46
previous_rors: 04yznqr36
works_examples: W4281980529
contact: a519f0c7f966c66a0d177d0d5af7a759:ff4363c3fe39e2d5fc43c8f935b3 @ ens-lyon.fr

This issue was accepted and ingested by the OpenAlex team on 2024-12-19. The new affiliations should be visible within the next 7 days.


text:
Feat/dag 207 update logo in play header

Proposed changes

Describe the big picture of your changes here to communicate to the maintainers why we should accept this pull request. If it fixes a bug or resolves a feature request, be sure to link to that issue.
Types of changes

What types of changes does your code introduce to ogre ?
Put an x in the boxes that apply

[ ] Bugfix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Code style update (formatting, renaming)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Refactoring (no functional changes, no api changes)
[ ] Documentation Update (if none of the other choices apply)
[ ] Other (please describe):

Checklist

Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.
offseason_ogre/blob/master/CONTRIBUTING.md) doc

[ ] Lint and unit tests pass locally with my changes
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have added necessary documentation and modify the README.md (if appropriate)
[ ] Any dependent changes have been merged and published in downstream modules
[ ] If the feature changes current behavior, reasons why your solution is better.

What is the current behavior?

What is the new behavior?

Further comments
ticket: https://ogre-d4g.atlassian.net/browse/D4G-207
If this is a relatively large or complex change, kick off the discussion by explaining why you chose the solution you did and what alternatives you considered, etc...
Where has this been tested?

Docker version: …
Operating System: …
node version: …
postgresql version: …

@Baboo7 Bizarre que le logo soit plein à droite je croyais qu'on avait dit qu'il était plein à gauche et sur les autres c'est dans ce sens, je vais poser la question
Et il faut aussi utiliser le nouveau logo dans la partie admin en haut à gauche

Je confirme que c'est bien marqué plein à droite dans le ticket et sur les designs du ticket.
Par rapport au logo admin, je compte le faire dans un ticket à part histoire d'avoir rapidement le bon logo joueur pour demain soir

@Baboo7 ok effectivement je comprenais pas le sens mais apparemment c'est celui qui est sur toute la comm pour l'instant ! Ok pour faire l'autre logo plus tard, je fix le linter et je merge


text:
Naive cityhash

try to intro naive-cityhash
Fixes: #1

Sorry, I forgot the merge update branch  into master branch.

---- test_insert_decimal stdout ----
Error: Driver(BadHash)
thread 'test_insert_decimal' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

somethings related to hash.

---- test_insert_decimal stdout ----
Error: Driver(BadHash)
thread 'test_insert_decimal' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

somethings related to hash.

Yes, I am trying to fix this

Now, everything is ready. cc @sundy-li

Great!

authors: PsiACE sundy-li


text:
Ajouter un tutoriel in situ

Au lancement du jeu, afficher un tutoriel interactif présentant les différents éléments de l'interface

[ ] conception du tuto @Clemog
[ ] dev du tuto en fonction des story board @florianpanchout

Je propose comme première étape de mettre juste la première modal ("il fait froid dehors blablabla..."). Le temps de dev est très faible et ça nous permettrait d'avoir un simulateur autoportant en attendant des retours

C'est visible ici : https://deploy-preview-65--wattris.netlify.app/

authors: Clem-mrtn florianpanchout

repo: datagir/wattris


text:
Duplicates in datasets

Describe the bug
While ingestion from dbt in datasets, there are duplicates showing table/ view from dbt and the same object from database in my example it's snowflake.
To Reproduce
Steps to reproduce the behavior:

datahub docker quickstart
Ingest data with recipe:

source:
  type: "dbt"
  config:
    manifest_path: "./target/manifest.json"
    catalog_path: "./target/catalog.json"
    sources_path: "./target/sources.json"
    test_results_path: "./target/run_results.json"
    env: "TEST"
    target_platform: "snowflake"

transformers:
  - type: "simple_add_dataset_tags"
    config:
      tag_urns:
        - "urn:li:tag:Santhin"
  - type: "simple_add_dataset_ownership"
    config:
      owner_urns:
        - "urn:li:corpuser:Santhin"
      ownership_type: "PRODUCER"
  - type: "set_dataset_browse_path"
    config:
      replace_existing: True
      path_templates:
        - /DATASET_PARTS
sink:
  type: "datahub-rest"
  config:
    server: "http://localhost:8080"

Check Datasets

Expected behavior
It's possible to merge them to one object and add that this object coming from dbt and snowflake like it's done here:

We can fix it with database_alias parameter in database ingestion config.

Hi @Santhin
Is this still an issue? if not, will close it after a few days of inactivity.

authors: Santhin igor-kramer mohdsiddique

repo: datahub-project/datahub


text:
Docker quickstart can't see docker running

Describe the bug
Can't start datahub docker quickstart, I get the message that Docker doesn't seem to be running
To Reproduce
run datahub docker quickstart
Expected behavior
Starting datahub
Output
~ datahub docker quickstart
Detected M1 machine
Unable to run quickstart:
- Docker doesn't seem to be running. Did you start it?
~ docker --version
Docker version 20.10.17-rd, build c2e4e01
~ docker-compose --version
Docker Compose version v2.11.1

Desktop (please complete the following information):

OS: Macos 12.6.1 (Macbook Pro with M2 chip)
Docker 20.10
Docker Compose v2.11.1
Datahub CLI version 0.9.2

Additional context
Docker is running as expected, e.g. docker run hello-world runs without problems. I have Rancher Desktop with dockerd/moby as container engine.

Can you check if datahub docker check works?

@hsheth2 : will this get fixed with your latest changes to docker cli ?

No - this PR https://github.com/datahub-project/datahub/pull/6466 solves for when older versions of docker-compose are installed.
This looks like an issue where docker is installed but we still can't find the docker socket file. @lenartowski I noticed that you're using Rancher desktop - do you see a /var/run/docker.sock file on your system? How about a ~/.rd/docker.sock file?
Possibly related: https://github.com/rancher-sandbox/rancher-desktop/issues/2534

Hey @lenartowski were you able to look into Harshal's pointers? Is this still an issue for you?

@lenartowski I'm closing this for now - please reopen it if you're still facing issues with quickstart

authors: aditya-radhakrishnan hsheth2 lenartowski shirshanka


text:
GraphQL request: Error with "Body" characters. Not honouring "Media Type"

Using this Seq App has proven quite difficult, when using the "Body (Optional) field.
Attempting to use valid GraphQL syntax/query in the body:
mutation IssueCreate {
  issueCreate(
    input: {
      title: "{@message}"
      description: "https://seq.xxxxx.io/#/events?range=1d&signal=signal-m33301,signal-30&filter=@Id%20%3D%20{@Id}"
      teamId: "xxxxxxxx-5f41-4492-9372-7cf3f699b97b"
    }
  ) {
    success
    issue {
      id
      title
    }
  }
}

I've tried a few values of the "Media Type (optional)" field:

application/json
text/plain
application/graphql-response+json

But get a bunch of errors, for example:

Quotes " are not supported:

System.ArgumentException: Syntax error (line 4, column 14): unexpected ".
at Seq.Syntax.Templates.ExpressionTemplate..ctor(String template, CultureInfo culture, NameResolver nameResolver, TemplateOutputEncoder encoder)
at Seq.App.HttpRequest.HttpRequestMessageFactory..ctor(String urlTemplate, HttpMethod method, String body, Boolean bodyIsTemplate, String mediaType, List`1 headers) in C:\projects\seq-app-httprequest\src\Seq.App.HttpRequest\HttpRequestMessageFactory.cs:line 41
at Seq.App.HttpRequest.HttpApp.OnAttached() in C:\projects\seq-app-httprequest\src\Seq.App.HttpRequest\HttpApp.cs:line 73

Colon : is not supported:

System.ArgumentException: Syntax error (line 3, column 10): unexpected :, expected ).
at Seq.Syntax.Templates.ExpressionTemplate..ctor(String template, CultureInfo culture, NameResolver nameResolver, TemplateOutputEncoder encoder)
at Seq.App.HttpRequest.HttpRequestMessageFactory..ctor(String urlTemplate, HttpMethod method, String body, Boolean bodyIsTemplate, String mediaType, List`1 headers) in C:\projects\seq-app-httprequest\src\Seq.App.HttpRequest\HttpRequestMessageFactory.cs:line 41
at Seq.App.HttpRequest.HttpApp.OnAttached() in C:\projects\seq-app-httprequest\src\Seq.App.HttpRequest\HttpApp.cs:line 73

Ah also, the identifier names are case-sensitive, so you'll need @Message rather than @message. (Edited above.)

Great! thanks for the tips!
I also noticed I made a few more mistakes:

Format should be valid JSON - should I didn't do:

{
  "query": "...",
  "operationName": "...",
  "variables": {}
}

@Message instead of @message
Incorrect literal - use {{

At least this GH issue will serve as a reminder for other of what not to do.

I'm still getting issues with the dollar sign $
{{
  "operationName": "CreateLinearIssueFromSeq",
  "query": "mutation CreateLinearIssueFromSeq($input: IssueCreateInput!) { issueCreate(input: $input) {   success  } }",
  "variables": {
    "input": {
      "title": "{@Message}",
      "description": "https://seq.stafflink.io/",
      "teamId": "fee88119-5f41-4492-9372-7cf3f699b97b"
    }
  }
}}

Error:

System.ArgumentException: Syntax error (line 3, column 95): unexpected $.
at Seq.Syntax.Templates.ExpressionTemplate..ctor(String template, CultureInfo culture, NameResolver nameResolver, TemplateOutputEncoder encoder)
at Seq.App.HttpRequest.HttpRequestMessageFactory..ctor(String urlTemplate, HttpMethod method, String body, Boolean bodyIsTemplate, String mediaType, List`1 headers) in C:\projects\seq-app-httprequest\src\Seq.App.HttpRequest\HttpRequestMessageFactory.cs:line 41
at Seq.App.HttpRequest.HttpApp.OnAttached() in C:\projects\seq-app-httprequest\src\Seq.App.HttpRequest\HttpApp.cs:line 73

Hi Richard, thanks for the update.
There's still a lot of unescaped {s in there. They all need to be escaped, or they'll be interpreted as placeholders to replace.
If the output needs to be entirely valid JSON, you might be better off constructing an object literal:
{ {
    operationName: 'CreateLinearIssueFromSeq',
    query: 'mutation CreateLinearIssueFromSeq($input: IssueCreateInput!) { issueCreate(input: $input) {   success  } }',
    variables: {
      input: {
        title: @Message,
        description: 'https://seq.xxxxxxx.io/',
        teamId: 'xxxxxxxx-5f41-4492-9372-7cf3f699b97b'
      }
    }
} }

This parses successfully for me. Note that the object literal version doesn't support further {..} placeholders, you would instead use concat() if you need to e.g. embed properties into strings.
The docs for this are in https://docs.datalust.co/docs/template-syntax#json-output

authors: nblumhardt richard-stafflink

repo: datalust/seq-app-httprequest


text:
Blocking "ran out of predicates" with maximum_comparisons = 500,000,000

Dedupe version 1.4.14
With 1.7 million name&address records to process, I create an empty Dedupe object, load 100k sample records from the full dataset  with the Dedupe.sample() method, and run a training session till I get  30 positive and 30 negative examples. At the end of train() I get the "ran out of predicates" warning. If I go ahead and call do_matching(), recall is somewhere south of 10 percent.
EDIT 6/23 - s/do_matching()/StaticDedupe.matchBlocks()/
This happens even with maximum_comparisons = 500,000,000 and recall = 0.9.
However, when I provide a 100k-item data sample to the Dedupe constructor, so that the sample() method never gets called, training proceeds without the warning and do_matching() produces 10 times as many matches.

How are you taking your initial sample?
What is do_matching?

Block learning uses the positive training examples and a random sample of 900 records. When you use the sample method, the records are sampled from the entire set of records. When you supply a sample, then the records are sampled from that sample.
If the your initial sampling is random sample, then there should not be any expected difference between this one and two stage process.

How are you taking your initial sample?

I'm using Dedupe.sample() to sample the entire data set, dumping a pickle of Dedupe.data_sample, and exiting. Then in another script I pickle.load() the sample and pass it to the Dedupe() constructor. I started doing this when I was testing various params and wanted the same sample every time.

What is do_matching?

Sorry, that is my own not-very-well-named function. I meant StaticDedupe.matchBlocks().

There should not be any expected difference between this one and two stage process.

OK, this is somewhat embarrassing because it involves code I submitted back in April and then forgot about (https://github.com/datamade/dedupe/pull/459).
The difference is in Dedupe.sampled_records.original_length. When you use Dedupe.sample(data), it's the length of the original data. When you use Dedupe(fields, data_sample) it's the length of the sample.
So at this point it looks like I am getting usable results when I do it The Wrong Way but not The Right Way.

I see now that DedupeBlockLearner.esitmate() increases as the square of Dedupe.sampled_records.original_length, so I'll try cranking maximum_comparisons still higher. As a workaround on getting a correct value into original_length when passing data_sample to Dedupe.init(), I'll just put the value into configuration and set it directly on the Dedupe object.

Just FYI,  I got usable results on a dataset of 7.7 million business contacts, running on an EC2 r3.xlarge box, 30 GB memory). recall=0.9, maximum_comparisons=9e9,  index_predicates=False. Blocking takes about 30 minutes, matching 20.
Thanks again for putting this library out there.

@wleftwich how many fields do you used, and how big was your sample ? I have 2.5 milion entities, 7 field, 40GB of ram and after several hours of running dedupe  it's killed by system (out of resources).

Here's the relevant section of my config file.
sample_size: 100000  # default 15000
maximum_comparisons: 9000000000  # default 1_000_000
recall:  0.95 # default 0.975
index_predicates: False # default True

fields:
  - {field: firstname, type: String}
  - {field: lastname, type: String}
  - {field: company, has_missing: true, type: String}
  - {field: address, type: String}
  - {field: city, type: ShortString}
  - {field: state, type: Exact}
  - {field: zip, type: ShortString}
  - {field: phones, has missing: true, type: String}
  - {field: emails, has missing: true, type: String}

I wrote two scripts, train.py and run_dedupe.py.
For training, I pre-sampled my 7.7 million record dataset down to 770,000; then used the Dedupe.sample method to make a training sample of 100,000 records. This meant that after sampling I had to set Dedupe.sampled_records.original_length to 7.7 million. Otherwise the blocks become too large, which is what I suspect is happening to you.
During development I found it useful to log memory usage like this:
logger.info("Max mem so far %s" % resource.getrusage(resource.RUSAGE_SELF).ru_maxrss)

I think this was largely due to the way that we did sampling which has been addressed in #477

Agreed, no problems since #477. Thanks!
On Tue, Oct 11, 2016 at 9:46 PM, Forest Gregg notifications@github.com
wrote:

I think this was largely due to the way that we did sampling which has
been addressed in #477 https://github.com/datamade/dedupe/pull/477
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/datamade/dedupe/issues/473#issuecomment-253096543,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAbUnyATXZTYxHJRG31Wc7sMN1qIX4IVks5qzDwHgaJpZM4I7-QE
.

authors: fgregg itcraftsmanpl wleftwich

repo: datamade/dedupe


text:
404 found for stream-reactor-0.2-3.0.1

I couldnt able to download the following stream connector version.
stream-reactor-0.2-3.0.1.
Im getting 404 for https://github.com/datamountaineer/stream-reactor/releases/tag/v0.2.3
this is the url it is given in datamountaineer docs for mongodb sink connector to install stream-reactor as in
http://docs.datamountaineer.com/en/stable/install.html#install

Yes. We, rather i broke the build. We'll publish it for you tonight.

From: nathgopi45mailto:notifications@github.com
Sent: 04/01/2017 20:48
To: datamountaineer/stream-reactormailto:stream-reactor@noreply.github.com
Cc: Subscribedmailto:subscribed@noreply.github.com
Subject: [datamountaineer/stream-reactor] 404 found for stream-reactor-0.2-3.0.1 (#106)
I couldnt able to download the following stream connector version.
stream-reactor-0.2-3.0.1.
Im getting 404 for https://github.com/datamountaineer/stream-reactor/releases/tag/v0.2.3
this is the url it is given in datamountaineer docs for mongodb sink connector to install stream-reactor as in
http://docs.datamountaineer.com/en/stable/install.html#install
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/datamountaineer/stream-reactor/issues/106, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AJwvZdw5T5sILVVZblyweORF0C9F9Otmks5rO81OgaJpZM4La0wn.

Thanks a lot for the quick response, I can able to setup and testing for mongodb sink.
in that progress,
when i run the following command,
bin/cli.sh create mongo-sink < conf/mongodb-sink.properties
im getting the below error,
2017-01-05 10:42:49,032 ERROR [DistributedHerder] [o.a.k.c.r.WorkerConnector] [doStart:108] Error while starting connector mongo-sink
org.apache.kafka.connect.errors.ConnectException: Couldn't start Mongo sink due to configuration error: Missing required configuration "connect.mongo.connection" which has no default value.
And because of that my MongoSink connector is not initialized.Any idea where can i give the value for the property "connect.mongo.connection".
My mongodb sink properties has following contents:
name=mongo-sink-orders
connector.class=com.datamountaineer.streamreactor.connect.mongodb.sink.MongoSinkConnector
tasks.max=1
topics=orders-topic
connect.mongo.sink.kqcl=INSERT INTO orders SELECT * FROM orders-topic
connect.mongo.database=connect
connect.mongo.hosts=localhost:27017
connect.mongo.sink.batch.size=10

@nathgopi45 ,
I need to fix the documentation and the sample configuration since they are not in line with the code
Connect.mongo.hosts needs to be replaced in your sink configuration with
connect.mongo.connection ="The mongodb connection in the format mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]."

Sure .. Thats ok..
And thanks a lot for the quicker responses.
Please make sure we need to update the following property name too..
connect.mongo.sink.kcql instead of connect.mongo.sink.kqcl..
i think, its typo.
kcql from kqcl ..
i will get back if in case anything i would have found more

Looking forward for the new updated document. I can able to successfully complete mongodb sink now..thanks a lot guys.. you guys make my new year kickoff like cake walk..

authors: andrewstevenson nathgopi45 stheppi

repo: datamountaineer/stream-reactor


text:
save method is broken

System Information

OS: Ubuntu 20.04.2 LTS
Python version: 3.7.6
Python environment: pip / conda
Using jupyter: true
Datapane version: 0.11.11

Bug / Issue
The 'save' method of Report is saving a blank HTML file.
This become to happen when i updated the datapane to newest version (0.11.11) ...
The result of HTML after update:

Hi,
Sorry we've been unable to reproduce this - can you try again using the 0.12.x series and provide your sample code if the problem persists.

Seems in datapane version 0.12.1 just fixed it

Great to hear - thanks!

authors: joaovitordeon mands

repo: datapane/datapane


text:
Add tests on commit

Perform validation step on commit.  Test against example datapackage.json files.

This was done in https://github.com/dataprotocols/schemas/pull/26, so can be closed.

FIXED.

@vitorbaptista nice! :+1:

authors: danfowler pwalsh vitorbaptista

repo: dataprotocols/schemas

license: unlicense


text:
Read and write 32-bit value

Hi,
to read and write 16-bit value I use -s 0x2
It's good also to full manage 32-bit value or I need to use another argument?
Thanks a lot

32-bit is 4 bytes (one byte is 8 bits in architectures that this tool supports), so -s 0x4 is adequate.


text:
adds revision_override option

Allows for installing different C* versions on different hosts. I've been running cstar_perf_stress with the following file as input to confirm that it works:
https://gist.githubusercontent.com/mambocab/14fd5367ccd46eacc006/raw/745306fc4a1fdba7dccdec2ebd339592c54faaae/revision_overrides.json
You can look at the output section in the nodetool report for resulting stats file to confirm that the different nodes are running different versions of C*.
As far as I could tell, the return value from the changed bootstrap function isn't used anywhere, so I don't think changing the return type will break anything.

Ready for further review. Now uses a dict to express the expected and actual mappings from hosts to SHAs.

+1 looks great

Please don't merge yet. I made some errors on the code path with no overrides.

Ok, should be ready for merge now. Thanks!

authors: EnigmaCurry mambocab


text:
[FEATURE] Publish 0.3.0 Docker image

Describe the feature
including trino and gravitino
Motivation
No response
Describe the solution
No response
Additional context
No response

Done.

repo: datastrato/gravitino


text:
[Improvement] Create Postgresql JDBC catalog with error message

What would you like to be improved?
.if we use the  jdbc-url without database, we will report an error Can't find suitable driver
Wrong example
curl -X POST -H "Accept: application/vnd.gravitino.v1+json" -H "Content-Type: application/json" -d '{
    "name":"catalog_pg",
    "type":"RELATIONAL",
    "provider":"jdbc-postgresql",
    "comment":"comment",
    "properties":{
        "jdbc-url":"jdbc:postgresql://postgresql?sslmode=require",
        "jdbc-user":"postgres",
        "jdbc-password":"postgres",
        "jdbc-database":"db",
        "gravitino.bypass.driverClassName":"org.postgresql.Driver"
    }
}' http://gravitino:8090/api/metalakes/metalake/catalogs

It's not user-friendly error message.
How should we improve?
No response

@FANNG1 please also take a look.

we should add a validation check for jdbc-url, if missing database, throw the error messages "Must specify database for postgre jdbc-url"


text:
Support for NoSQL DB (V4DBHandler)

What?
Add support for NoSQL DB
Why?
NoSQL DB more suitable for storing unstructured metadata.
TODO:

[x] Support for MongoDB

@WatanabeToshimitsu @yusukefs
色々と細かいバグがあったので修正しました。
README と example も V4 に移行しておいたので時間があるときに軽くレビューお願いします！

レビューしてたら，コード自体の改善点というよりは，機能自体や使い方に関わることで気になることが何点か出てきたんですが，そういうのは Notion に纏めとく方がいいでしょうか？

@d-hayashi
レビューしてたら，コード自体の改善点というよりは，機能自体や使い方に関わることで気になることが何点か出てきたんですが，そういうのは Notion か issue に纏めとく方がいいでしょうか？

んー、気になることが大量にある or 文字に起こすのが大変であれば一度どこかで集まって話したほうが良いと思います。

レビューありがとうございます！
ひとまず実装とテストが一通り終わったのでマージしようかと思います。
今後バグや追加機能の希望が出てきたら随時Issue立てて対応するという流れで行きましょう！

authors: WatanabeToshimitsu d-hayashi

repo: dataware-tools/pydtk


text:
Doc improvements for 1.3

Update edgectl docs and CHANGELOG for 1.3.
This is deliberately made against ambassador.git because it's tied to the 1.3 features.

These commits were landed in #2409

repo: datawire/ambassador


text:
Number to Words - Vietnamese

Language code: vi
2 new macros:

default_compile_money_to_words_vi.sql - macro name = compile_money_to_words_vi
sqlserver_compile_money_to_words_vi.sql: - macro name = sqlserver__compile_money_to_words_vi

1 new model in integration_tests:

verify_money_to_words_vi.sql

Lets move to dbt-translate

repo: datnguye/dbt-resto


text:
SArray does not include random_sample

SFrame has a random_sample method, but there is no reason the same shouldn't be a method of SArray as well.

Is SAarray.sample what you're looking for?

@hershaw -- thanks! Actually, I meant random_split.  My bad!  I'll correct that.  Thanks!

authors: hershaw hoytak

repo: dato-code/SFrame


text:
[auth] support for ssh-initiated auth?

Hi, the git-lfs client supports a weird ssh-initiated authentication, whereby it will dial to ssh hostname git-lfs-authenticate group/project.git upload. Is this something in scope for your server?

Currently, I don't think this is in the scope of Giftless, and here's why: the ssh git-lfs-authenticate protocol is actually intended for the hostname that runs the Git repository, not the Git LFS hostname. git-lfs will ssh to the hostname on which the repository is hosted. This command can return some headers to be sent to the Git LFS server (e.g. Giftless) but it is not up to the GIT LFS server to listen to SSH or to run this command, in my opinion. Typically, people using Giftless will have Giftless on a different hostname than the git repository (although this is not always the case).
Perhaps, there is a way to hook Giftless or pyjwt to an SSH server and respond to the git-lfs-authenticate command with an Authorization header with a bearer JWT token that will be accepted by Giftless. Perhaps this is doable even right now and we just need to document how to set it up. But I don't think we'll have Giftless running the SSH server itself.
That said, I'd love to hear more about your need / use case so we can look into this, as I think the authentication / authorization story in Giftless still needs a lot of work.

fair enough, thanks for your response! I was researching how to integrate an LFS server with Git and looking at available implementations; while using GitHub for the regular repo and a third-party server for the large files.
Making it seamless is a bit tricky but since most of us already use ssh to push to GitHub, it might be more natural to (re-)use the SSH key

The problem with an SSH based protocol is that without access to the user's private key, Giftless has no way of verifying the user's identity and permissions with Github. Even if Giftless exposes an SSH interface of it's own, deciding how to respond to a git-lfs-authenticate command on that SSH interface would be tricky and complex.
Giftless has a pretty flexible architecture so it allows creating custom auth modules pretty easily, and I can see a module that accepts a username / token / password combination via HTTP Basic and uses that to check the user's identity and permissions against GitHub, for example using OAuth2 and the REST API. But right now this is not implemented, and I don't have enough knowledge to say how difficult it is to implement.

Closing this, if there are specific feature requests / tasks they should be reported separately.

(everything you said is right). just fyi in case you ever look again at this feature, the git lfs client will indeed ssh to the host name of the LFS server as set in .lfsconfig! it should be possible to come up with such a script, as outlined by you, that would return such a bearer header.
best,

authors: ailin-nemui shevron

repo: datopian/giftless


text:
Create effects package for Akita

Developers that comes from ngrx sometimes want similar functionality as effects in ngrx. I think it'll be nice to develop a package that provides this functionality if someone wants to use it.
Here's what I imagine: ( I'm open to any other suggestions )
import { Actions } from '@datorama/akita-effects';

export class TodosComponent {
  todos$ = this.query.selectAll();

  constructor(private actions: Actions, private query: TodosQuery) {}

  ngOnInit() {
    this.actions.dispatch(fetchTodos());
  }
}

import { Actions, createEffect } from '@datorama/akita-effects';

class TodosEffects {
  constructor(private actions$: Actions,
              private service: TodosService) {}

  fetchTodos$ = createEffect(() =>
    this.actions$.pipe(
      ofType(fetchTodos),
      switchMap(() => this.service.fetchTodos())
    )
  );
}

class TodosService {
  fetchTodos() {
    return this.http.get("todos").pipe(
      tap(todos => this.store.set(todos))
    );
  }
}

You can save some work and use this package for the actions:
https://github.com/cartant/ts-action/blob/master/packages/ts-action-operators/README.md
https://github.com/cartant/ts-action/blob/master/packages/ts-action/README.md

How is this.actions.dispatch(fetchTodos()) better than just calling this.todosService.fetchTodos() directly? Can you explain what is the problem effects solve here? Seems like useless boilerplate to me.
Also, where do you define your fetchTodos()/fetchTodos in this example? And should it be  this.actions.dispatch(fetchTodos()) or  this.actions.dispatch(fetchTodos);?

I didn't say that it's better :)
Some of the developers coming from ngrx prefer this pattern. You define the actions in the actions file.
Imagine a case where you want to do some task when the user logs out. You listen to authQuery.isLoggedIn$, but where is the best place to put the subscription? That's where an effect can be useful.

Imagine a case where you want to do some task when the user logs out. You listen to authQuery.isLoggedIn$, but where is the best place to put the subscription? That's where an effect can be useful.

Depends on the task. If it's UI update task, most likely in the UI component, if it's some resource clean-up task, than in the service responsible for managing those resources.
Can you illustrate with some code, how actions are helpful in this case?

I meant a task that doesn't relate to a specific component. For example, a global notifications store that's responsible for showing notifications.

Root component?
export class AppComponent {

    constructor(
        private notificationService: EntityNotificationService
    ) {
        this.notificationService.listenToEntityChanges();
    }

}

What's the better way to do this with actions?

Again, I'm not saying that it's better. It's a matter of style.

@NetanelBasal
https://github.com/yackinn/akita/blob/master/effects.md
I implemented a solution.
It surely adds a little complexity when using effects although it's optional.
It's a working draft that can be compiled and used.
The Angular update and compilation settings can be reverted.
Please provide some feedback.

@yackinn thanks. Here are my notes:

I'm not sure why we need the ActionClass. It can be a simple constant like in ngrx:

export const LOAD_NAVIGATION_SUCCESS = createAction("Load Navigation Success", props<{ mainNavigation: MainNavigation }>())

I prefer to avoid decorators and use a function like createEffect().
I think we can do it without touching the codebase.

Here is the modified implementation:
@NgModule({
  imports: [
      CommonModule,
      AkitaNgEffectModule.forRoot([
        NavigationEffects
      ])
  ],
})
export class CoreDataModule {}

// navigation.actions.ts
export const loadNavigationSuccess = createAction("Load Navigation Success", props<{ mainNavigation: MainNavigation }>())

// navigation.effects.ts
@Injectable({ providedIn: 'root' })
export class NavigationEffects {

  constructor(
    private actions$: Actions,
    private navigationService: NavigationService
  ) {
  }

  loadNavigationSuccess$ = createEffect(() => this.actions$.pipe(
    ofType(loadNavigationSuccess),
    tap(({ mainNavigation }) => {
      this.navigationService.updateNavigationTree(mainNavigation);
    }),
  ));
}

// navigation.service.ts
class NavigationService {
  updateNavigationTree() {
    // update store, HTTP, etc
  }
}

// app.component.ts

export class AppComponent {

  constructor(private actions: Actions) {}

  ngOnInit() {
    this.actions.dispatch(loadNavigationSuccess());
  }
}

Where the Actions are simply a wrapper for a Subject.

Thank you.
True. Let me simplify it.

Is this correct?
export const updateNavigation = createAction("Update Navigation", props<{ routes: Routes }>())

export class NavigationStore {

  constructor(private actions: Actions) {}

  updateNavigation(routes: Routes) {
	this.update(state => ({ routes, ...state }))
    this.actions.dispatch(updateNavigation({routes}));
  }
}

Actions will be dispatched from components.

Sure.
That's much more like ngrx.
Perfectly fine for me.
https://github.com/yackinn/akita/blob/feat/effects/libs/akita/src/lib/plugins/effect/effects.md
The api is much simpler now. That's a plus.
It's still using decorators and it's on Angular 11.
Shouldn't we migrate the entire monorepo?
Please provide a feedback.

Shouldn't we update the entire monorepo?

What do u mean?
LGTM.

I still want to provide the option to use a createEffect function, and we should support forFeature.
We don't need to copy the code of the actions library. We should reference it directly in the effects package.
.

And it should be a library in the libs folder - akita-effects.

I mean updating from Angular 8 to Angular 11.
I copied the parts that we needed to strip out the option to use payload() instead of props().
Do you want to provide both options?

Yes, we don't need to maintain this code.
I'll update the project to Nx 11 in the next few weeks.

Sure.

You can finish it, add the missing parts, specs, and docs.

Great work!

Thanks. Will do.

@NetanelBasal Should all effects be root scoped and singletons?

We can start with this.

I read an article of yours.
I wanted to leverage this.
Isn't that depreceted due to AOT?
Did you find a way to use ngOnDestroy without explicitly setting it up inside the class?
export function AutoUnsubscribe( blackList = [] ) {
return function ( constructor ) {
const original = constructor.prototype.ngOnDestroy;
constructor.prototype.ngOnDestroy = function () {
  for ( let prop in this ) {
    const property = this[ prop ];
    if ( !blackList.includes(prop) ) {
      if ( property && ( typeof property.unsubscribe === "function" ) ) {
        property.unsubscribe();
      }
    }
  }
  original && typeof original === 'function' && original.apply(this, arguments);
};

}
}

authors: NetanelBasal hakimio yackinn

repo: datorama/akita


text:
Connecting but still getting an error.

Hey there, when connecting my ELK-BLEDOM light strip it spits out an error here. Home Assistant even automatically recognises the light strip but just wont connect. Any thoughts?

Heres what my logs are saying

You need to locate the error in the log, it is not possible that this log corresponds to this error.
On the other hand, when an LED strip is discovered it is because it can be linked, this is why the log that you indicate appears, try placing the strip near the bluetooth

repo: dave-code-ruiz/elkbledom


text:
Segmentation fault (signal SIGSEGV)

Hi Dave!
We are facing a random segmentation fault with drachtio-server v0.8.2 (Docker). We weren't able to reproduce it on our testing environment, but we noticed it gets worst with the load.
Are you able to spot something in this stack trace?
(lldb) bt
* thread #1: tid = 0, 0x000055b9031bb56e drachtio`su_block_find + 315, name = 'drachtio', stop reason = signal SIGSEGV
  * frame #0: 0x000055b9031bb56e drachtio`su_block_find + 315
    frame #1: 0x000055b9031bc239 drachtio`su_free + 111
    frame #2: 0x000055b90318b78f drachtio`incoming_reclaim + 301
    frame #3: 0x000055b90318b8a1 drachtio`incoming_reclaim_queued + 209
    frame #4: 0x000055b90318ff1e drachtio`incoming_mass_destroy + 257
    frame #5: 0x000055b90318fd58 drachtio`_nta_incoming_timer + 3997
    frame #6: 0x000055b903179c1a drachtio`agent_timer + 124
    frame #7: 0x000055b9031ca8ef drachtio`su_timer_expire + 829
    frame #8: 0x000055b90320c398 drachtio`su_base_port_run + 255
    frame #9: 0x000055b9031c01aa drachtio`su_port_run + 41
    frame #10: 0x000055b9031c128f drachtio`su_root_run + 79
    frame #11: 0x000055b902fdd185 drachtio`drachtio::DrachtioController::run() + 14163
    frame #12: 0x000055b902fce2e2 drachtio`main + 123
    frame #13: 0x00007efc10a022e1 libc.so.6`__libc_start_main + 241
    frame #14: 0x000055b902fcdfda drachtio`_start + 42

Cheers,

No, unfortunately that stack trace is not giving much information.  There may be some additional clues in the log file, if you wish to provide at the point where it crashed.  In general, the best way to work through this is to recreate outside of docker (ie build from source).  Is that possible?  Also, the latest is 0.8.4 do you also experience crashes on that release?

Hi Dave,
I didn't spot on Drachtio logs anything related to the problem.
All seems to be running normally:
{"log":"CSeq: 17754370 REGISTER\r\n","stream":"stderr","time":"2020-03-19T11:12:03.040340063Z"}
{"log":"Contact: \u003csip:223211000@10.0.0.109:6151;transport=UDP\u003e;expires=968;received=\"sip:194.74.135
.136:51463\";+sip.instance=\"\u003curn:uuid:32323332-AABB-0000-0000-001A7EA68E6C\u003e\", \u003csip:223211000@
1.2.3.4:5060\u003e;expires=1200, \u003csip:223211000@172.17.0.1:5060\u003e;expires=1078;received=\"sip:
1.2.3.4:5060\"\r\n","stream":"stderr","time":"2020-03-19T11:12:03.040347141Z"}
{"log":"Content-Length: 0\r\n","stream":"stderr","time":"2020-03-19T11:12:03.040368392Z"}
{"log":" \n","stream":"stderr","time":"2020-03-19T11:12:03.040374312Z"}

And then it just restarts a few seconds after the segfault:
{"log":"2020-03-19 11:12:10.293892 Starting drachtio version v0.8.2\n","stream":"stderr","time":"2020-03-19T11
:12:10.296786666Z"}
{"log":"2020-03-19 11:12:10.294085 Logging threshold:                     4\n","stream":"stderr","time":"2020-
03-19T11:12:10.296809552Z"}
{"log":"2020-03-19 11:12:10.294150 DrachtioController::run tls key file:         /etc/letsencrypt/live/domain/privkey.pem\n","stream":"stderr","time":"2020-03-19T11:12:10.296814678Z"}
{"log":"2020-03-19 11:12:10.294195 DrachtioController::run tls certificate file: /etc/letsencrypt/live/domain/cert.pem\n","stream":"stderr","time":"2020-03-19T11:12:10.296819513Z"}
{"log":"2020-03-19 11:12:10.294235 DrachtioController::run tls chain file:       /etc/letsencrypt/live/domain/fullchain.pem\n","stream":"stderr","time":"2020-03-19T11:12:10.296823526Z"}
{"log":"2020-03-19 11:12:10.294274 DrachtioController::run listening for applications on tcp port 9022 and tls port 0\n","stream":"stderr","time":"2020-03-19T11:12:10.29682763Z"}
{"log":"2020-03-19 11:12:10.296581 Prometheus support disabled\n","stream":"stderr","time":"2020-03-19T11:12:10.29683195Z"}

It's possible to build from source if needed.
I'm using drachtio-server:stable, which comes with drachtio 0.8.2. Maybe I could migrate to drachtio-server:latest tonight and give it a try first? What do you think?
drachtio-server:latest image is running version v0.8.3-18-g6a59fd868

yes, it would be great to try to create on drachtio-server:latest, and then if possible recreate on a native VM with source build from tip of develop branch

Hi Dave,
Just to let you know that since we updated to drachtio-server:latest (v0.8.3-18-g6a59fd868) we didn't get any segfault anymore.
We'll keep monitoring it for the next days, but feel free to close this issue.
Thank you very much!

great!  Thanks for updating the issue

authors: bengoa davehorton

repo: davehorton/drachtio-server


text:
Update to 1.19.2

Update for MC 1.19.2
Feel free to close or merge this or just use the source code. I have no idea how to create a pull request on a new branch so that's why this pull request is for 1.18.1 branch.
The source code is NOT cleaned, it contains warnings but is still stable to use

Merged in #12

repo: davenonymous/libnonymous


text:
Update cats-effect to 2.4.0

Updates org.typelevel:cats-effect from 2.2.0 to 2.4.0.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Applied Migrations

github:typelevel/cats-effect/v2_4_0?sha=series/2.x

Documentation:

https://github.com/typelevel/cats-effect/blob/v2.4.0/scalafix/README.md

Files still referring to the old version number
The following files still refer to the old version number (2.2.0).
You might want to review and update them manually.
build.sbt

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.typelevel", artifactId = "cats-effect" } ]

labels: library-update, semver-minor, scalafix-migrations, old-version-remains

Superseded by #173.

repo: davenverse/circuit


text:
Add support for ntp

Added NTP support on top of the basic timezone stuff. This would be my preferred PR to include (I plan to use NTP on my NAS when I actually get around to rebuilding it from FreeNAS. All this has been prep for that. I'm enjoying learning ansible though :D)

Out of curiosity, what are you using this to provide time to?

NTP is a protocol for providing time to things, with the idea being that you have one golden source of time (hence my question what you were using it for). The "usual" service used in Linux is ntpd. It's usually useful for things like messaging, clusters, trading systems, kerberos authentication - anything sensitive to times being synced and accurate, basically.
Where you've set the timezone on containers - that can be done without running an ntpd daemon - all you're doing is telling the container what your local timezone is.
If you're still keen on a container to run an ntpd that's cool with me - but I think the PR should be separate to one setting the timezones on containers. If you're not fussed about ntpd then we can just remove it from this one and merge accordingly :+1:

Also - if you are keen on ntpd, we should run it from a container and not the Ansible role.

I've been using ntpd as a time client. This discussion prompted me to do some research and:
https://help.ubuntu.com/lts/serverguide/NTP.html
You learn something every day. You can reject this PR if you like :)
Regards,
CJ

repo: davestephens/ansible-nas


text:
Is there a way to save single MenuItem's value to EEPROM ?

I have a bunch of settings  under Settings Menu, and I also have some standalone options under other menus.
These stand alone options need to be saved when changed.
But currently, it seems I can only save the whole menu data to EEPROM, which may feel a bit odd to the users.
It would be nice if we can save single MenuItem's value to EEPROM.

For questions like this should we start using the github discussions? Something that turns out to be an issue can easily be converted into an issue from there.

Sorry, I was worrying that if I put all (UI&lib) issues in the UI's repo, it would make your git less organized.
Since you like it that way, I'm also glad to post issues there for convenience 😄
I'll move this issue there.

I'll reopen it to track the work.

See https://github.com/davetcc/tcMenu/issues/250 for the main issue

https://www.thecoderscorner.com/products/arduino-libraries/tc-menu/menu-eeprom-integrations/#loading-or-saving-a-single-menu-item

authors: davetcc luwenjin

repo: davetcc/tcMenuLib


text:
Updated Advanced Swift

New domain, robertpieta.com -> advancedswift.com

Thanks for the update Robert!

authors: RobertPieta daveverwer

repo: daveverwer/iOSDevDirectory


text:
Module not found: Error: Can't resolve 'dgram'

[PT-BR]
Estou usando o Laravel aqui e importei a lib mas na hora de compilar os assets recebo esse erro.
Pesquisando é algo relacionado ao node acredito. Se puder dar uma luz aí como contorno/resolvo esse erro \o
Obrigado!
[EN]
I am using Laravel here and imported lib but when compiling the assets I get this error.
Searching is something related to node I believe. If I can give a light there as contour / solve this error
Thanks!

[PT-BR]
Já descobri, é pra uso somente com nodejs. Valeu, pode fechar a issue por favor.
[EN]
I found the error. This is its to use only on nodejs.
\o

[PT-BR]
Já descobri, é pra uso somente com nodejs. Valeu!
[EN]
I found the error. This is its to use only on nodejs.
\o

repo: davibaltar/snmp-fiberhome


text:
Spotify not scrobbling after an update

after the launch of the new version of spotify web player, scrobbling has stopped

even thought the checks for spotify are ticked, nothing is being scrobbled, only the icon "lights up"
Tried deleting cookies, cache and reinstalling the app and re-authenticating it  in chrome, nada has helped.
im using Chrome version 57.0.2987.133 (64-bit), tried it on a different computer, same issue.

Duplicate of #1270.

authors: alexesprit elctriqueooh

repo: david-sabata/web-scrobbler


text:
Incorrect highliting for $__

In this case, $_ is part of the name of the variable $__why and has nothing to do with $_.

Agh, that's annoying! Sorry about that! To reiterate what I said in another issue (#1), this is basically just a port of a TextMate theme for personal use and I never took the time to learn the nuances of how the syntax works because it worked well enough for me. I know that's probably a frustrating answer, but I would be willing to work with someone collaboratively on getting these issues fixed or even accepting blind pull requests!

:+1: Roger that.

@davidcelis can you confirm if this is based off of @l15n's tmbundle? I'd like to report these issues upstream then.

@RSully It is indeed!

So I guess that this issue is fixed by https://github.com/davidcelis/language-fish-shell/pull/9
I don't know how to associate a pull request with an issue though...

@nomaed I can close it out from here 😄 For future reference, GitHub detects things like "Closes #4" or "Fixes #4" and will close out the associated issue automatically.

Every day, something new ;)

authors: RSully bucaran davidcelis nomaed

repo: davidcelis/language-fish-shell


text:
The placeholder div is creating a very tall empty space in my list of items.

When I comment out the line that sets its height everything works fine. Is it necessary? What is its intended function?

I'm seeing the same effect in here.. any ideas on how to fix it?

same issue here

authors: andreiropotica jayrmotta micahblu

repo: davidchin/angular-endless-scroll


text:
Is it possible to have both sticky and normal headers together?

As from title.

Not foreseen, so not supported.
You can however create a Header with Expandables below where the expandable item (parent) is visually another header.

authors: davideas meness

repo: davideas/FlexibleAdapter


text:
Question: Would this work with Stencil?

This is sort of a random question, but would this work with the Stencil framework?
I've been playing with Stencil, which creates Web Components with a very similar API to React:
https://stenciljs.com
I gave this a shot but it seems to fail on an import so I can't test this.
[ ERROR ]  Rollup: Missing Export: src/components/app-home/app-home.js:1:9
           'store' is not exported by
           node_modules/react-recollect/dist/index.js

Would be interesting to see if recollect could be made agnostic of React?

I wonder if this is a Rollup bug? Surely not as I'm building that dist/index.js file with the default Babel settings so the Object.defineProperty(exports, "store", { pattern is used in heaps of libraries.
There's a similar error, also related to stencil.js: https://github.com/typestack/class-transformer/issues/200.
I'll try a minimal build using Rollup.

Yeah it's weird. If you setup a brand new Stencil "app" project, install recollect and import it, you should be able to repro it. Thanks for investigating!

This relates to #44 right? Should we close this?

I'd leave this open, but I'm secretly hoping that the output of
Webpack-or-Rollup will be something Rollup understands.
On Thu, 29 Nov 2018 at 07:08, Dana Woodman notifications@github.com wrote:

This relates to #44
https://github.com/davidgilbertson/react-recollect/issues/44 right?
Should we close this?
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/davidgilbertson/react-recollect/issues/17#issuecomment-442587145,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEPNWu1wXyaVNtGZXPdc5Xa7UGnKPl4Pks5uzu1RgaJpZM4Ym4i7
.

Ok cool, let me know when you want me to checkout things 👍

I'm going to close this one now. Rollup no longer has a problem.
But for the question in the issue name, react-recollect isn't going to work with anything but React any time soon. The reason: internally it 'knows' which components are reading which properties from the store by tying in very closely with the lifecycle methods, and updates the store at a very specific point in time so that shouldComponentUpdate and componentDidUpdate get the previous/next versions of the store and allows React to do its PureComponent magic.
Maybe one day I'll go the Redux route of being UI agnostic, but for now I'll leave as is.
Thanks for your input!

authors: danawoodman davidgilbertson

repo: davidgilbertson/react-recollect


text:
Feature Suggestion: A form of proper tail calls

Problem
Writing a fast interpreter, parser, or other state machine in the current version of Cowgol is hard (see here). The current codegen focuses on size instead of time, which makes sense for the platforms Cowgol is intended for. It is useful to have the choice of time vs. size optimization, however. Case statements can also stretch on, and on, and on, which apart from being hard to read can be difficult to optimize for in itself. The proper tail call is a solution that solves both the performance and structuring issues, and I've been able to bring it into Cowgol.
Overview
The passto statement is structured like this:
passto subroutine(arguments);

To the user, it behaves identically to a subroutine call followed immediately by return. It can only be used if the subroutine named within it (the 'catcher') has the same output parameters as the subroutine which uses it (the 'passer').
Adding tail calls in this explicit form is simpler than identifying every call that is in tail position. The name suggests its purpose: while a normal subroutine call is a vertical transfer of control, passto is horizontal transfer of control. Other names I considered were goto, which was rather cheeky, and delegate, which seemed more to suggest vertical transfer.
Full Semantics

The Lemon grammar is:
 statement ::= PASSTO startsubcall inputargs(INA) SEMICOLON.

To use passto the passer must have the same output parameters as the catcher named in the statement.

A passer must be on the same level of nesting as the catcher.

Upon execution of the statement, execution of the passer ends. Its activation record is discarded, and execution of the catcher begins in its place. A catcher can also call other passers using normal subroutine calls, allowing for nested levels of passing.

Should the catcher return normally or use the return statement, control flow will return to the subroutine which called the passer using a normal subroutine call. If multiple subroutines each passed to each other, control flow returns to the latest time a passer was called normally.

The subroutine which called the passer is not required to know that the passer uses passto; it looks like any other subroutine.

It should be possible for two or more subroutines to pass to each other, never returning normally. This should be possible indefinitely, without any assumptions on how deeply these subroutines can mutually recurse.

Implementation
I added two new midcodes: PREPARETAIL and TAILCALL. PREPARETAIL in most cases removes the return address from the top of the stack and saves it in a register. This is so TAILCALL can place the arguments on the stack without burying the return address.
TAILCALL is much like CALL. After placing the arguments on the stack, it then places the return address back on the stack and jumps to the new subroutine instead of calling it. As far as the catcher is concerned the stack is the same as if it had been called normally. The C implementation uses a trampoline; I've put in some effort to keep the overhead small when passto is not in use.
A new field has been added to the reference record in COO files, tracking whether a reference is a tailcall or not. This does increase the size of COO files by a small degree. Adding a new record type for tailcall references could provide better density.
The linker is now aware of tailcalls and will place their activation records so that they overlap. A small amount of cycle detection is needed because of how interface references work.
That's really the scale of the changes. The impact on the compiler's complexity is small.
Examples
I designed a Brainfuck interpreter using different forms of interpreter design as a benchmark of the feature. It can be found here.
The repo has a new example called cowcalc.cow, which is an RPN calculator implemented using passto. It gives an idea of what a state machine using the new feature looks like.
I suppose I have to include a traditional tail-recursion example, as well:
include "cowgol.coh";

sub countloop(n: uint32) is
	if n > 0 then
		print_i32(n);
		print(", ");
		passto countloop(n - 1);
	else
		print("lift-off!\n");
	end if;
end sub;

print("T-minus ");
countloop(10);

I'm sorry this has taken so long to get back to! I've been sunk in other projects (including finishing a book!)...
Thanks very much for the PR; this is a really good idea and would be extremely useful. I'm planning on picking Cowgol up again for use in a different project, and this'd be useful.
I've gone through the code; my biggest concern is the PREPARETAIL/TAILCALL split. It seems clunky --- the only reason for PREPARETAIL is to remove the stack pointer before the arguments get pushed, so that it can get put back under the arguments. If we're going to add an opcode for this maybe it'd be better to rethink the way return addresses are handled entirely. For any procedure with input parameters, the return address will get popped anyway in the function prologue --- maybe it'd be better to just stash that somewhere other than the stack? Of course, that'd make returning from procedures with no output parameters much more expensive.
(I also notice that several implementations of PREPARETAIL put the return address in a register. e.g. a5 on the 68000. This will fail if the register gets used as the input parameter expressions get evaluated. Unfortunately the register allocator can only track registers within an expression so that won't be trivial to fix. A potentially not-great early design decision means that opcodes can only have two operands, and TAILCALL is already using both, so just adding it there isn't possible.)
I have been very vaguely mulling the ability to do non-local jumps, for things like exception handling and returning from inner subroutines. (This would allow a better case..end case, for example, where each condition's body could be an implicit nested subroutine.) As that's notionally similar maybe some sort of more generic continuation scheme could cover both use cases.
BTW, I was about to suggest goto as an alternative keyword when I realised you had already mentioned it! I do like it better than passto, and I do want to add proper goto at some point anyway --- jumping to labels and to other procedures are conceptually similar and unambiguous so it would save a keyword.

I completely understand, I hop back and forth between passions as well. My own delay in responding should speak to that.
I'm glad to see you like the proposal. PREPARETAIL did feel ugly when I introduced it, but I felt there was no other way to avoid it using the newgen syntax while keeping also the current calling conventions intact. Since you feel that more aggressive changes to that convention are needed, I feel there are a few different avenues that could be followed, depending on the needs of particular architectures:
1. Virtual stacks
This is already in use in the 6502 architecture, and could work for architectures of similar complexity. In cases where output parameters are used, the return address is copied to a virtual stack, and an indirect jump is used to return from the function. It should be possible to only pay this cost in functions where goto subroutine() is used.
2. Leave return address in place.
This strategy works best for architectures that support stack-relative addressing. Input parameters are pushed onto the stack, reserving space for the output parameters if needed. The return address is left in place, to be either used in a return or discarded in a goto.
3. Linker changes.
This is the most sweeping change, one I would not pursue in a pull request. David Wheeler, a man also interested in programming languages for small systems, proposes here that an optimizing linker like Cowgol has could eliminate the need to move variables entirely. The called function would copy the output variables directly to the caller's activation record, without ever having to touch the stack.
4. The generic continuation scheme.
I would need to have more information on what you are considering to try this. I am in particular interested in how this would work with the C implementation, which doesn't really have a way to do non-local labels.
For the moment, I will change passto to goto and begin changing implementations to schemes 1 and 2.

authors: davidgiven shadowofneptune

repo: davidgiven/cowgol


text:
Vue 3 wrapper

Feature description
Create an Embla Carousel Vue wrapper - A component that allows Vue users to consume Embla Carousel.
Release
Released with v7.0.0-rc05. Documentation will be released with stable v7 but until then you can check out usage instructions below:
Vue wrapper
Start by installing the Embla Carousel npm package and add it to your dependencies.
npm install embla-carousel-vue --save

The component structure
Embla Carousel provides the handy emblaCarouselVue function for seamless integration with Vue. A minimal setup requires an overflow wrapper and a scroll container. Start by adding the following structure to your carousel:
<template>

Slide 1

Slide 2

Slide 3

</template>

Styling the carousel
The emblaCarouselVue function gives us an emblaNode to attach to our wrapping element with the classname embla, which is needed to cover the scroll overflow. The element with the container classname is the scroll body that scrolls the slides. Continue by adding the following CSS to these elements:

Accessing the carousel API
The emblaCarouselVue function takes the Embla Carousel options as the first argument. Additionally, you can access the API with an onMounted like demonstrated below:
<template>

Slide 1

Slide 2

Slide 3

</template>

Adding plugins
The emblaCarouselVue function also accepts plugins as the second argument. Note that plugins need to be passed in an array like so:
<template>

Slide 1

Slide 2

Slide 3

</template>

Congratulations! You just created your first Embla Carousel component.

Released with v7.

Is it working with Vue 2 + @nuxtjs/composition-api ?

@sinneren thank you for your question. It only works with Vue 3.

@davidjerleke I'm not sure if I do something wrong and maybe it's a dumb question, but how can I access the clickAllowed method?

@davidjerleke thank you for your response. Here is a link to the sandbox. I'm not sure if the vue setup syntax is a problem or maybe the only problem.

@rojadesign I think the setup is not working as expected because importing onMounted shouldn't cause any errors. Would you mind trying the following Vue3 + TypeScript template instead?

@davidjerleke thank you for your time. Here is the Vue3 + TypeScript template used - not really working but the same error I have locally also appears there:
Property 'clickAllowed' does not exist on type 'EmblaCarouselType | HTMLElement'.
Property 'clickAllowed' does not exist on type 'HTMLElement'.ts(2339)

@rojadesign yes, this is clearly a TypeScript bug and the typings are wrong. The type for emblaApi should be EmblaCarouselType | null. I'll have to look into this when possible. Feel free to propose a solution if you want. The Vue wrapper code is here.

Hello,
Can this work with the api option ? I can't.

@spoitler I don’t understand the question. Would you mind clarifying what you mean?

is it necessary to use the setup() function to initialize it ?

@spoitler yes I think so.

authors: davidjerleke rojadesign sinneren spoitler

repo: davidjerleke/embla-carousel


text:
Can a substate transition to a sibling of its parent state?

Hey @davidkpiano,
Was simply wondering if this is even possible using the Statecharts formalism:
states: {
  foo: {
    states: {
      fooSub: { on: { EVENT: 'bar' } }, // when EVENT happens, go to the parent state 'bar'
    }
  },
  bar: {...}
}

Thanks,
Luca

Yep, makes sense. Also, I wouldn't worry about the redundancy of navigating to a child state because that would never occur - if a parent state has child states, it has an initial state (unless its child states are orthogonal), so it would be in its initial child state already - and then the other syntaxes apply.

Wait, what do you mean by "and then the other syntaxes apply"?  Concrete example:
{
  A: {
    on: { ONE: 'B',
            TWO: 'A.B' }
    initial: A
    states: {
      A: {}
      B: {}
    }
  },
  B: {}
}

This slightly confusing statechart has two states A and B, while A has two substates A.A and A.B.  The event ONE would unambiguously take it to state B (the root state B), while the event TWO would target the A.B state.  Moreover, I don't think xstate has the notion of internal or external events, so it would perhaps exit the root A state and enter A, then A.B (not the initial A.A).
Is this right?

Moreover, I don't think xstate has the notion of internal or external events

This is something I want to add soon - and it will probably come as a result of #43.
For the example above, to exemplify what I was saying:

Entering A necessarily enters A.A, so the current state is A.A

Note: it's impossible to be in state A without being in one of A's substates, per statechart semantics. A parent state with substates cannot be a leaf node state.

On ONE from A.A, the event is not handled from A.A, so it transitions from the parent to B
On TWO from A.A, the event also isn't handled, so (if we are deciding against relative/absolute state resolution steps in order to mitigate ambiguity), this will throw an ⚠ error ⚠  since A.A.B does not exist.

So if you want to transition to A.B, the configuration (given your table) should look like:
{
  A: {
    on: {
      ONE: 'B', // A.B
      TWO: '^B', // B
    },
    // ...
  },
  B: {}
}

I agree that when it Enters A, it also Enters A.A by default; however, when an event is declared in A, it should be resolved relative to A not relative to whatever deep state that might be active.
And I disagree with that (in my statechart) that TWO from A.A should end up looing for A.A.B, since the event is declared by the top level A state, not A.A.

Edited the above - resolved in the Gitter chat. @mogsie's interpretation is correct, and is how xstate currently works.

My two cents: I like the idea of being explicit (e.g. ^foo) rather than applying a magic resolution algorithm. However, I'm a bit worried about adding too much complexity (e.g. DSL).
I didn't know you were discussing on Gitter, I'll join and read more there :)
Thank you very much, everyone.

We weren't discussing on gitter until we discovered we were on-line at the same time, and it seemed as if we were talking past each other.  github ain't chat! :D

I am pretty new to this whole discussion about statemachines but after thinking of ways to solve the transition problem i asked myself if this wouldnt be solveable if the different states would have unique ids (smth. Seperate from the keys)
After experimenting i came to this idea:
js```
// State Constructors which generate a (hidden) unique id and take a string as state key
var yellow = state ("yellow");
var orange = state ("orange");
var red = state ("red");
Machine({
key: 'light',
initial: green,
states: [
// created states are setter functions
green({
on: {
TIMER: yellow
}
}),
yellow({
on: {
TIMER: red
}
}),
red({
on: {
TIMER: green
}
})
]
});

This would have the following advantages:

- no transition syntax needed
- explicit transitions
- transitions to any state possible
- functional composition of states

Of course this would be a major change, but maybe it would be worth it, long term :).

@katywings That's actually a pretty cool idea. Internally, it made me think of two things:

State nodes already have a (read-only) id property, so it might be useful if we could allow the developer to override that.
We should have some special syntax for targeting an absolute state by its id. The obvious one that comes to mind is #some.state.id.

By default, the state ID is the full path from its parent; e.g.:
{
  key: 'light',
  states: {
    green: {
      // equivalent to TIMER: 'yellow' in this case
      on: { TIMER: '#light.yellow' }
    },
    yellow: { ... }
  }
}

But you should be able to do this (in the future, maybe):
{
  key: 'light',
  states: {
    green: {
      id: 'green_a1b2c3-fake-uniqueid',
      // equivalent to TIMER: 'yellow' in this case
      on: { TIMER: '#yellow_a4b5c6-fake-uniqueid' }
    },
    yellow: {
      id: 'yellow_a4b5c6-fake-uniqueid',
      // ...
    }
  }
}

Which you could sugar with your above proposed functions (passed in as an object instead of an array, for consistency):
Machine({
  key: 'light',
  initial: green,
  states: {
    // created states are setter functions
    ...green({
      on: { TIMER: yellow }
    }),
    ...yellow({
      on: { TIMER: red }
    }),
    ...red({
      on: { TIMER: green }
    })
  }
});

Where green({ ... }) would return:
{ green: {
  id: 'green_a1b2c3-fake-uniqueid',
  // ... anything else passed in
  }
}

I'm wondering if the helper function for this would be best done in userland, though. But overriding ids might be a helpful feature.

This is now possible using the id prop, and id notation (e.g., #foo) above.

authors: MicheleBertoli davidkpiano katywings lmatteis mogsie

repo: davidkpiano/xstate


text:
[TS] 4.7.0-rc7  Actor casting broken in rc7

Description
I think we'll really benefit if the the  Typescript example was extended to include actors. I'm probably not doing it right, but the latest rc no longer likes how I cast my actors in my machine context.
Expected Result
Spawning actors should not cause TS errors
Actual Result

Type 'ServiceActor<LightContext, LightEvent>' is missing the following properties from type 'Interpreter<LightContext, LightStateSchema, LightEvent>': machine, clock, options, scheduler, and 44 more.ts(2352)

Reproduction

Go to https://codesandbox.io/s/frosty-maxwell-66355
Wait for TS to init and observe the error on line 97 in index.ts
change xstate dep version to 4.7.0-rc6
Important reload the page
Wait for TS to init
There should be no error

Additional context
xsstate  - 4.7.0-rc7
TS - 3.3.4000
Notice that I've adapted the traffic light example by making the lightMachine a function that returns a machine. Also, added a dummy machine that spawns the lightMachine using said function.

This looks to be resolved in 4.7.2 so thank you for that.
I see that the issue is tagged with documentation as well so I'll leave you @davidkpiano to decide when to close the issue (I assume you've left this ticket open as a reminder).

No documentation needed since I've simplified the types so things should "just work".

authors: davidkpiano semopz


text:
VPS?

I have heard people talking about hosting this bot in a vps.
People say this gives  better results in terms of bots, what is a vps and how could it help?
Also any suggestions on how to get more bots at a time :)

VPS (Virtual Private Server) is a server that can have any OS just like your computer. You control it remotely and it's better to run your bots and other applications there.

What is the benefit of using them though?

Like you can have it on 24/7 and it doesnt use your internet connection and every company uses them...   Theyre just better


text:
Update .gitignore to new dart_tool pub cache

dart-lang/sdk#32030

thanks! sorry for the delay :/

authors: bcko davidmarne


text:
Missing "./shims/global" specifier

Hi,
when trying to build a vue3 app for Nextcloud using nextcloud-vite-config from https://github.com/nextcloud-libraries/nextcloud-vite-config/pull/18 I run into this error message when using vite-plugin-node-polyfills 0.18.0 or 0.19.0.
[commonjs--resolver] Missing "./shims/global" specifier in "vite-plugin-node-polyfills" package
error during build:
Error: Missing "./shims/global" specifier in "vite-plugin-node-polyfills" package

As far as I can tell, this did not happen with 0.17.0, so I kind of assume that this might be related to #63?
In case you need a reproduction example, let me know and I will try to put one together. Anyway, thanks a lot for the effort you put into the library!

Hey @raimund-schluessler! A reproduction would be really helpful. I tested this under some other scenarios without any issues, so something that shows me your specific use case will help me get some automated tests and a fix together for this.

same problem

@davidmyersdev Thanks for the help. I found the issue, and it's not on your side :slightly_smiling_face: :see_no_evil: Sorry for the hassle.
The problem was that a peer dependency relied on vite-plugin-node-polyfills@0.15.0 that conflicted with 0.19.0 from another dependency. I bumped all occurrences of vite-plugin-node-polyfills to 0.19.0 and everything works now :+1:

Ah, that makes sense. No worries at all, and thanks for following up!