Add codeblock to options

Closes #115 with the suggested structure of a Mode. Written by a complete TypeScript and JavaScript novice, so I have a few questions:

Two new structures are introduced, Mode and Options, in src/snippets/options.ts.
a. They are both basically bitfields. Is the current (very lengthy) implementation fine? Or could they be shortened in any way, like setting false as default while allowing an override? Also thought about just using an integer, but not sure if that'd make it shorter or easier to handle. Or maybe the shorthands could also be mapped to the field names, since in JS everything seems to be a hashmap...
b. Should they be interfaces instead?

#56 suggests i and M for inline math and block Math, which have been both implemented. This is done in a backwards-compatible way, so that m works as a shorthand for both. Should m be removed instead?

Snippet can't directly contain Options, since Snippet is the direct representation of the snippet file — and as such also contains the shorthands, not Options. So currently, on each run through each snippet, the shorthands are parsed on-the-fly into Options, but that feels, uh, redundant. Could this be cached without duplicating Snippet? Or am I worrying too much?

A draft for now, since the actual functionality of setting the code field of Mode when in a codeblock hasn't been implemented yet.

Hello, this looks nice!

Actually, I'm no JS/TS expert myself either. So I'd need to give this some thought!
Keeping m for backwards compatibility is a good decision. I wonder if there's a letter other than i we could use for the inline math option, because it might be a good idea to reserve i for case-insensitivity (#30). (The use of i for case-insensitivity would be consistent with other tools e.g. sed, regex.) I can't really think of any good options though.
You can resolve this by simply parsing the Options at the stage we parse the contents of the snippet file, converting them to an array of Snippets! This happens here: https://github.com/artisticat1/obsidian-latex-suite/blob/7c636f8f0a9d42678fa99dca1d9d0771772fd549/src/snippets/snippet_helper_functions.ts#L47-L68

(fwiw I'll pick up work on this again this weekend and rebase on top of main)
Slightly unfortunate that there's no performant solution that allows unlimited lookbehind/lookahead. But I guess that's okay.

...interestingly even with your code, the codeblock detection is only triggered after the first two characters in each line, which means that snippets like mk and dm are still triggered inside codeblocks if they appear as the first two characters in any line, which would be especially nerving with shell scripts (see mkdir, which would expand to $dir$ if typing by muscle memory).
Removing the if (token.contains("codeblock")) { improves this, triggering codeblock detection already after the first character, but this potentially implies a huge performance cost, given that we'd run the code at every mode creation (which happens at every typed character) at most 100 times to bubble up parent nodes.
The choice on enabling code mode after 2 typed chars without additional cost, or enabling code mode already after 1 typed char but with potentially high cost is up to you. Maybe even a user-controllable option to control this could be worth considering.

I also noticed that half of the codebase uses tabs as indent, and the other half 4 spaces, sometimes intermixed. Is that intended? Should I normalize it?

Turns out Obsidian has by itself some pretty reliable API to list codeblocks in a file as @1C0D nicely communicated to me on Discord, which is what I've used for now.
Only issue with it is that it's done through the cache, which updates quite slowly — typing a bit subjectively faster already results in sometimes the code mode not being detected, and falling back to text mode instead. I suppose it could make sense to combine the approaches of accessing the syntax tree directly and the caching API, or maybe even some heuristics on top.
The heuristics could work based on:

the last few keystrokes
the last "true" code mode keystroke

currently it happens quite often that a line inside a codeblock is misdetected as the start of the codeblock, since between cache request and actual line request, things have moved (data races, yay)

maybe even the kind of text written

text lines are generally rather long, and are usually lacking in punctuation, usually only featuring ?¿!¡:;,." and those rather sparingly in comparison to text (actual characters to be bikeshed, should probably be configurable, localization will want to have a word)
code and math lines are rather short, usually featuring lots of punctuation like .=:()[]{}_$#\/+-&| and specific semi-consistent casing like camelCase, snake_case and PascalCase

At this point, I'm probably just dreaming and making problems where there are none. So I'll follow suit and actually dream now, lol.

Oh and I've forgotten, there's still some machinery like autofrac that calls the editor helpers directly rather than going through mode, which remedies the comfortable usage of the math codeblock language. Maybe Mode needs to hold generic bound/content spans.

...interestingly even with your code, the codeblock detection is only triggered after the first two characters in each line, which means that snippets like mk and dm are still triggered inside codeblocks if they appear as the first two characters in any line, which would be especially nerving with shell scripts (see mkdir, which would expand to $dir$ if typing by muscle memory).

Hmm, sounds odd. I do think the best/most pure approach would be parsing the syntaxTree directly from CodeMirror. Obsidian's metadata cache updates quite slowly, as you mention, so I'm not sure it's suited for providing real-time updates while typing. I can look into the issue when I get around to reviewing this, if you haven't solved it already!

I also noticed that half of the codebase uses tabs as indent, and the other half 4 spaces, sometimes intermixed. Is that intended? Should I normalize it?

Whoops, that's definitely not intentional. Feel free to normalise to tabs.

I messed with them a bit indeed, these were the results I've got by running them matrix-wise:

(collapsed since they're quite long, format is `pos, side`)
only results where the resolved token type name contained `codeblock` are listed
## Before codeblock
- Line before

pos + 1,  1

putting something on the same line before the initial ``` seems to confuse obsidian, it won't render the codeblock then
## In codeblock
- After the initial ```, nothing after, with content in codeblock
- pos - 1, -1 | 0 | 1 | undefined
- pos    , -1
- pos + 1,  1
- After the initial ```, nothing after, without content in codeblock
- pos - 1, -1 | 0 | 1 | undefined
- pos    , -1
- First two chars, nothing after
- pos - 1,  1
- pos    , -1
- pos + 1,  1
- Third char, nothing after
- pos - 1, -1 | 0 | 1 | undefined
- pos    , -1
- pos + 1,  1
- First char, content after it
- pos - 1, -1
- pos    ,  1
- pos + 1, -1 | 0 | 1 | undefined
- Second char, content after it
- pos - 1,  1
- pos    , -1 | 0 | 1 | undefined
- pos + 1, -1 | 0 | 1 | undefined
- Third char and any after, content after it
- pos - 1, -1 | 0 | 1 | undefined
- pos    , -1 | 0 | 1 | undefined
- pos + 1, -1 | 0 | 1 | undefined
- Before the final ```, with content before
- pos - 1, -1
- pos    ,  1
- pos + 1, -1 | 0 | 1 | undefined
- Before the final ```, without content before
- pos    ,  1
- pos + 1, -1 | 0 | 1 | undefined
## After codeblock
- After the final ```
- pos - 1, -1 | 0 | 1 | undefined
- pos    , -1
- Next line
- pos - 1, -1

Which looks to me like checking the tokens at

pos - 1,  1
pos    , -1
pos + 1,  1

containing codeblock should hit most cases we want to have the code mode triggered in. Only issue with that is that it fails at multiple empty lines, since in those cases even pos - 1,  1 and pos + 1,  1 resolve to Document.

Fwiw I solved the codeblock detection (well it can't detect if only 1 char has been typed in a line, but the only way I see to fix this with acceptable performance outside of codeblocks woudl be to check the cache instead). Not that it matters much though, I don't think there's any snippet that would want to be run in code mode and is only 1 character long. Would probably be worth documenting in README.md or the like.
For now I'm on my way of working through the existing functionality like autofrac and the like to make them use ctx instead of recomputing the environment state each time when called.

(fwiw the conceal is broken atm)
Somehow I need to get the plugin settings into the CM plugins. Currently I'm doing this over a StateField that is managed alongside with the EditorState, but I think I'll need to work around this and use global variables. Whatever.

It turns out the right way to configure CM extensions is storing the settings in a Facet, and wrapping it in a Compartment (so that only one copy of the config is loaded per EditorState). See here for an example from the Dynamic Highlights plugin.
However, I wrote this plugin when I was new to CodeMirror, so currently the plugin settings are accessed by passing LatexSuitePlugin directly to functions such as runAutoFraction, autoEnlargeBrackets, runSnippets, etc. This isn't ideal, since it creates a dependency on LatexSuitePlugin that isn't necessary. It'd be possible (and much neater) to write a CodeMirror extension that provides Latex Suite's features, but only accesses CodeMirror's API, and doesn't rely on the Obsidian API at all.
We can achieve that by removing the references to LatexSuitePlugin and instead storing/accessing the plugin settings in/through a Facet wrapped in a Compartment, as described above. I'd actually been meaning to refactor and do just that after this PR was merged (to avoid conflicts). Let me know if you want to give it a shot, or if you'd rather I did it (as originally intended)! And thank you for the work you've done on this already :)

To be honest, I actually don't really want to work on this anymore. TypeScript/JavaScript causes so many headaches for me coming from Rust and Julia that most of the time I'm trying to figure out what type I'm dealing with here and how to work around some limitation that it becomes rather frustrating writing code with it.
So I'd appreciate it if I could take the offer, and you could work from the state I have pushed at the moment (I do have local changes which store the plugin in an export let plugin, and while that did work, it'd require much more effort than properly storing the settings I believe).
Only things left I originally wanted to do (but are not possible without having access to the settings inside CM plugins) were

making ```math codeblocks work just like real math blocks. Not the case atm since everything depends on getEquationBounds rather than calling Context.getBounds, which knows when to use codeblock and when to use math mode bounds)
respecting math blocks while in latex and tikz codeblocks, and switching to math mode out of code mode appropiately.
(actually possible already) making snippet exclusions configurable. The global EXCLUSIONS array in src/snippets/{run_,}snippets.ts seemed kind of suspicious to me, given that the logic behind it could be very much of use for custom snippets, too

But I suppose I'll leave that up to you. Or look at it again after you've rewritten the settings management. Thank you for your time either way!

No worries. I am happy to pick up from where this leaves off. Re: the remaining things you wanted to implement:
1 and 2. I will look into implementing these - thank you for the pointer regarding Context.getBounds!
3. You're right - I used a global array here simply out of convenience (so I wouldn't have to implement exclusions for custom snippets as an entire feature). I haven't received any feature requests for it thus far, but it can certainly be implemented in the future.

I finally got around to finishing this off recently and doing some refactoring. Here are some changes I made:

Plugin settings are stored in a facet
Changed the inline math option from "k" to "n" for inline math, which I also think works well since "n" is similar to "m"
Added partial support for math codeblocks being treated as math

The conceal and colorMatchingBrackets CM extensions don't work atm as they need to compute the value of a Mode at different positions in a document (other than the user's cursor), but currently each Mode attached to a Context corresponds only to the cursor's current position

Removed "ignoreMathLanguages" for now, since detection of math mode isn't currently based on the location of $ signs
Gave Mode more fine-grained options (codeMath in addition to inlineMath and blockMath, textEnv for text environments within math)

It should be possible to implement bullet point 2 (resepecting math in latex and tikz codeblocks) now by looking at the locations of $ signs in the block, if you'd be willing to take another look. Regardless, thank you for all the work you did on this!


"make help" is broken

Not sure if really a bug or not, but it is a bit weird to have toplevel rules fail.
$:~/work/rancher/os$ make help
Targets:
Makefile:38: recipe for target 'help' failed
make: *** [help] Error 1

Works now! Thanks.


[T2A3] [C01-Unknown]Zhang Yunxuan

inline method processProgramArgs()

@yunxz is this PR ready for review? (:

Yep :)

alright, as mentioned in tutorial, your change does show how SLAP is decreased. I see that you have a few revert commits. If you have time, try looking up on the command git revert head~1. Google and see how the ~1 works.


No more need to remove the ok lab's page.

Since PR #398 lab pages don't have a variable named lab any more.  Therefore lab pages are not counted as projects.
The breaking commit for OK Lab Stuttgart was 6c7b1badca10e9ea7010b8dc0f2f133498614d14.
Fixes #404

@fuergestalten: We need this to list the dust sensor project on codefor.de/stuttgart.


Problème avec 2023.2

Detected integration that called async_setup_platforms instead of awaiting async_forward_entry_setups; this will fail in version 2023.3. Please report issue to the custom integration author for livebox using this method at custom_components/livebox/__init__.py, line 98: hass.config_entries.async_setup_platforms(config_entry, PLATFORMS)
Voir https://github.com/hacs/integration/pull/3038

Up to 1.8.3

1.8.3 does not seem to work...
Config flow could not be loaded: {"message":"Invalid handler specified"}

Up to 1.8.5


allowing {} brackets in BatchPromptSchedule for full json syntax input

json syntax check applies to input => why not allow full json syntax?

{} is already reserved by comfyui unfortunately so we won't be able to use it in the input. The text is wrapped in {} and validated in code.

I am aware it's done in code, that is how I stumbled over it initially.
Please have a look at what the commit does. It works as intended, at least in my local ComfyUI instance). Nonetheless, if it's not useable due to regulations/reservations, then to be it I guess ¯_(ツ)_/¯


libg2o without x11 and opengl

This is more of a brainstorm on how to use libg2o without x11 and opengl. In our system, we do not use the GUI and opengl, so I would like to be able to use libg2o without opengl and x11. The way this should probably work is by excluding x11 and opengl in the DISTRO_FEATURES variable. The problem is, that libg2o is in a blacklist, which requires these distro features.
We were able to work around this by adding a bbappend for libg2o like this:
DEPENDS_remove = "libglu mesa"
RDEPENDS:${PN}:remove = "libglu mesa"

EXTRA_OECMAKE += " -DG2O_USE_OPENGL=OFF"

Furthermore, we set the PNBLACKLIST for libg2o in our layer.conf:
PNBLACKLIST[libg2o] = ""

Ideally this should somehow be included in meta-ros, and libg2o should build with opengl support when the distro feature is set to support opengl. What would be a good way to do this, seeing that most recipes are generated, including the libg2o one?

It's possible to implement this in .bbappend which could be merged into meta-ros.
The ugly part is that the dependencies from package.xml cannot be conditional based on DISTRO_FEATURES, so the bbappend would need to use :remove like you did in your layer which is a bit ugly and I would recommend to at least use intermediate variable for removed deps (so that the :remove can be undone by setting this variable to empty).
And you can add PACKAGECONFIG[opengl] to handle EXTRA_OECMAKE and adding libglu+mesa, enable it based on DISTRO_FEATURES and then use contains conditional, something like:
PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)}"
PACKAGECONFIG[opengl] = "-DG2O_USE_OPENGL=ON,-DG2O_USE_OPENGL=OFF,mesa libglu"
DEPENDS_TO_REMOVE = "${@bb.utils.contains('PACKAGECONFIG', 'opengl', '', 'mesa libglu', d)}"
DEPENDS:remove = "${DEPENDS_TO_REMOVE}"
RDEPENDS:${PN}:remove = "${DEPENDS_TO_REMOVE}"

Thanks for the suggestions, I made a pull request here: https://github.com/ros/meta-ros/pull/1008

The pull request has been merged into master-next.  Thanks!


Thickness Scaling

@ma-laforge might want to take an early look at Makie.jl and see whether the arguments in https://github.com/JuliaPlots/Plots.jl/issues/891 hold.

Related (@Datseris) https://github.com/JuliaPlots/Plots.jl/issues/778

Scale free arrows are important!

Related as well: https://github.com/JuliaPlots/Plots.jl/issues/653

If scale-free stuff is deemed a priority, more people tend to be concerned about lines and bars with infinite lengths (that don't affect the axes limits)

Oh there are a lot of related issues on Plots to this. @daschw had a list (so did I but I lost it in slack). I don't think scale-free stuff necessarily is related though.

https://github.com/JuliaPlots/Plots.jl/issues/653
https://github.com/JuliaPlots/Plots.jl/issues/733
https://github.com/JuliaPlots/Plots.jl/issues/740
https://github.com/JuliaPlots/Plots.jl/issues/742
https://github.com/JuliaPlots/Plots.jl/issues/778
https://github.com/JuliaPlots/Plots.jl/issues/891
https://github.com/JuliaPlots/Plots.jl/issues/897
https://github.com/JuliaPlots/Plots.jl/issues/960
Not sure, if that's complete, I also lost the slack conversation.

As a side note, what is on master doesn't do much about this, while sd/units, which contains some changes, isn't complete yet...

The arguments should still hold:

dpi should simply change how many pixels make up the image (pixel density).  It should not affect how thick lines look relative to the total image dimensions.
I also get the impression users probably still want an easy way to easily scale up line thickness (thicknessscaling?) & font sizes (scalefontsizes/fontscaling?) using by setting a high-level plot attribute.

@ChrisRackauckas: I am guessing your question is more about whether this is done well in the current implementation of Makie.jl?
--> If this is the question, I cannot really answer yet.  I tried installing Makie.jl on my Ubuntu 14.04LTS distribution - but I cannot get it to work.
I even installed the newest version of Julia v6.2 & cleared the entire ~/.julia/v0.6 directory.  It still does not work for me.

A few things have been addressed, and the remaining issue need some better specs to be actionable


feat(formatting): 🚀 pre-commmit,pre-commit config,import and code fixes

[X] pre-commit added
[X] pre-commit config yaml added
[X] test fixes
[X] import * fixes and replace with proper import rule
[X] f-string usage
[X] isinstance usage instead of type check
[X] ruff added
[X] generic rules added (white space,end of line space etc)
[X] bandit added
[X] py38 based on rules added
[X] git hook ability
[X] fix #104
[X] fix #106
[X] fix #74
[X] fix #108
[X] fix #105
[X] fix #77

Thanks for the pr @onuralpszr ! . Let me check pr #110 first (probably this weekend, sorry for the latency) and then checkout this one. I am a bit obsessed with formatting and I dont want to apply all the pep8 or other derived rules. Lets merge your first pr first and then I need to go over this one and we can discuss afterward.
Thanks for the great work!

https://github.com/SystemCraftsman/strimzi-kafka-cli/issues/77

@onuralpszr you mentioned you fix this one with this PR. Since the PR is big, before my detailed look at this (and #110 should come first) can I ask where and how exactly did you solve this. I am just asking not to miss anything.

#77

@onuralpszr you mentioned you fix this one with this PR. Since the PR is big, before my detailed look at this (and #110 should come first) can I ask where and how exactly did you solve this. I am just asking not to miss anything.

Merge #110 and if we change something I can rebase or fix conflict in here. But if you accept "as it is" well good because I create this PR from #110

#77

@onuralpszr you mentioned you fix this one with this PR. Since the PR is big, before my detailed look at this (and #110 should come first) can I ask where and how exactly did you solve this. I am just asking not to miss anything.

Merge #110 and if we change something I can rebase or fix conflict in here. But if you accept "as it is" well good because I create this PR from #110. Magical solve will happen :))

Can you explain the magical solve for #77 if you dont mind? Not sure this one is fixed.

And yes #110 should be merged first as you have #110 in this one as well (so you will need a rebase for sure)

#77

@onuralpszr you mentioned you fix this one with this PR. Since the PR is big, before my detailed look at this (and #110 should come first) can I ask where and how exactly did you solve this. I am just asking not to miss anything.

Merge #110 and if we change something I can rebase or fix conflict in here. But if you accept "as it is" well good because I create this PR from #110. Magical solve will happen :))

Can you explain the magical solve for #77 if you dont mind? Not sure this one is fixed.

https://github.com/SystemCraftsman/strimzi-kafka-cli/pull/111/files#diff-6c5cdeeef00512ffa0304dbc3fb40ce1cd56276f4671b3d78994b5d8668a116aR12
no command gives you "help" but I guess you want "kfk command" <-- no param == shows you help ?

Hi @onuralpszr. Would you mind separating this PR into two like 1- pre-commit and other stuff like fstring usage etc. 2- formatting
So it will be a lot easier to review and discuss the changes.
Would you be able to do this? If not, pls let me know so I can work on this.


How to count the number of sheets in excel workbook?

Hello
I need to count the number of sheets in an excel workbook.
Do you know how count the number of sheets in excel workbook using this excel package?
Thank You

This is a not an issue


Cannot install - package ‘exasol’ is not available (for R version 3.3.3)

I need 3.3.3 to install devtools, but then I get

> devtools::install_github("EXASOL/r-exasol")
...
Installation failed: Command failed (1)

Any ideas?

> devtools::session_info()
Session info ----------------------------------------------------------------------------------------------------------------------------------
setting  value
version  R version 3.3.3 (2017-03-06)
system   x86_64, mingw32
ui       RStudio (1.1.383)
language (EN)
collate  English_United States.1252
tz       America/New_York
date     2017-12-07

Packages --------------------------------------------------------------------------------------------------------------------------------------
package   * version date       source
base      * 3.3.3   2017-03-06 local
curl        3.0     2017-10-06 CRAN (R 3.3.3)
datasets  * 3.3.3   2017-03-06 local
DBI       * 0.7     2017-06-18 CRAN (R 3.3.3)
devtools    1.13.4  2017-11-09 CRAN (R 3.3.3)
digest      0.6.12  2017-01-27 CRAN (R 3.3.3)
git2r       0.19.0  2017-07-19 CRAN (R 3.3.3)
graphics  * 3.3.3   2017-03-06 local
grDevices * 3.3.3   2017-03-06 local
httr        1.3.1   2017-08-20 CRAN (R 3.3.3)
memoise     1.1.0   2017-04-21 CRAN (R 3.3.3)
methods   * 3.3.3   2017-03-06 local
R6          2.2.2   2017-06-17 CRAN (R 3.3.3)
stats     * 3.3.3   2017-03-06 local
tools       3.3.3   2017-03-06 local
utils     * 3.3.3   2017-03-06 local
withr       2.1.0   2017-11-01 CRAN (R 3.3.3)

Hi, I just tried it in a docker container with Ubuntu 18.04 and it seems to work
root@da8561c07213:/# R

R version 3.4.4 (2018-03-15) -- "Someone to Lean On"
Copyright (C) 2018 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> devtools::install_github("EXASOL/r-exasol")
Downloading GitHub repo EXASOL/r-exasol@master
from URL https://api.github.com/repos/EXASOL/r-exasol/zipball/master
Installing exasol
trying URL 'https://cloud.r-project.org/src/contrib/RODBC_1.3-15.tar.gz'
Content type 'application/x-gzip' length 1163967 bytes (1.1 MB)
==================================================
downloaded 1.1 MB

Installing RODBC
'/usr/lib/R/bin/R' --no-site-file --no-environ --no-save --no-restore --quiet  \
  CMD INSTALL '/tmp/RtmpCOnkTe/devtools1f7457a2d971/RODBC'  \
  --library='/usr/local/lib/R/site-library' --install-tests

* installing *source* package 'RODBC' ...
** package 'RODBC' successfully unpacked and MD5 sums checked
checking for gcc... gcc -std=gnu99
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc -std=gnu99 accepts -g... yes
checking for gcc -std=gnu99 option to accept ISO C89... none needed
checking how to run the C preprocessor... gcc -std=gnu99 -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking sql.h usability... yes
checking sql.h presence... yes
checking for sql.h... yes
checking sqlext.h usability... yes
checking sqlext.h presence... yes
checking for sqlext.h... yes
checking for library containing SQLTables... -lodbc
checking for SQLLEN... yes
checking for SQLULEN... yes
checking size of long... 8
configure: creating ./config.status
config.status: creating src/Makevars
config.status: creating src/config.h
** libs
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -I.     -fpic  -g -O2 -fdebug-prefix-map=/build/r-base-AitvI6/r-base-3.4.4=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g  -c RODBC.c -o RODBC.o
g++ -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions -Wl,-z,relro -o RODBC.so RODBC.o -lodbc -L/usr/lib/R/lib -lR
installing to /usr/local/lib/R/site-library/RODBC/libs
** R
** inst
** tests
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** installing vignettes
** testing if installed package can be loaded
* DONE (RODBC)
'/usr/lib/R/bin/R' --no-site-file --no-environ --no-save --no-restore --quiet  \
  CMD INSTALL '/tmp/RtmpCOnkTe/devtools1f746d273f41/EXASOL-r-exasol-d28ea1c'  \
  --library='/usr/local/lib/R/site-library' --install-tests

* installing *source* package 'exasol' ...
** libs
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG      -fpic  -g -O2 -fdebug-prefix-map=/build/r-base-AitvI6/r-base-3.4.4=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g  -c exasol.c -o exasol.o
g++ -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions -Wl,-z,relro -o exasol.so exasol.o -lodbc -L/usr/lib/R/lib -lR
installing to /usr/local/lib/R/site-library/exasol/libs
** R
** inst
** tests
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
* DONE (exasol)
> devtools::session_info()
Session info ------------------------------------------------------------------
 setting  value
 version  R version 3.4.4 (2018-03-15)
 system   x86_64, linux-gnu
 ui       X11
 language (EN)
 collate  C
 tz       Europe/Berlin
 date     2018-09-26

Packages ----------------------------------------------------------------------
 package   * version date       source
 base      * 3.4.4   2018-04-21 local
 compiler    3.4.4   2018-04-21 local
 curl        3.1     2017-12-12 CRAN (R 3.4.3)
 datasets  * 3.4.4   2018-04-21 local
 devtools    1.13.4  2017-11-09 CRAN (R 3.4.3)
 digest      0.6.17  2018-09-12 CRAN (R 3.4.4)
 git2r       0.21.0  2018-01-04 CRAN (R 3.4.3)
 graphics  * 3.4.4   2018-04-21 local
 grDevices * 3.4.4   2018-04-21 local
 httr        1.3.1   2017-08-20 CRAN (R 3.4.2)
 memoise     1.1.0   2017-04-21 CRAN (R 3.4.4)
 methods   * 3.4.4   2018-04-21 local
 R6          2.2.2   2017-06-17 CRAN (R 3.4.4)
 stats     * 3.4.4   2018-04-21 local
 tools       3.4.4   2018-04-21 local
 utils     * 3.4.4   2018-04-21 local
 withr       2.1.2   2018-03-15 CRAN (R 3.4.4)

I had to install the following packages in Ubuntu:
apt install r-basel r-cran-httr r-cran-git2r r-cran-devtools unixodbc-dev

Hey, stmandl! I appreciate your post.
I haven't attempted installing this package again since creating the issue. I'm restricted to a Windows environment, unfortunately, but thank you for your suggestions.
I gave it another go (I actually recently had my OS changed from Win 7 -> Win 10, so in effect, I restarted from scratch). It took some tinkering to get Rtools to work (this thread was helpful), but I finally got the Exasol package installed.
Thanks, and cheers!
R version 3.5.1 (2018-07-02) -- "Feather Spray"
Copyright (C) 2018 The R Foundation for Statistical Computing
Platform: x86_64-w64-mingw32/x64 (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> library(devtools)
> find_rtools()
WARNING: Rtools is required to build R packages, but no version of Rtools compatible with R 3.5.1 was found. (Only the following incompatible version(s) of Rtools were found:3.5)

Please download and install the appropriate version of Rtools from http://cran.r-project.org/bin/windows/Rtools/.

> install.packages("pkgbuild", lib="C:/Program Files/R/R-3.5.1/library")
also installing the dependencies ‘ps’, ‘base64enc’, ‘processx’, ‘backports’, ‘callr’, ‘crayon’, ‘desc’, ‘rprojroot’

trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.5/ps_1.1.0.zip'
Content type 'application/zip' length 274829 bytes (268 KB)
downloaded 268 KB

trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.5/base64enc_0.1-3.zip'
Content type 'application/zip' length 43294 bytes (42 KB)
downloaded 42 KB

trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.5/processx_3.2.0.zip'
Content type 'application/zip' length 297217 bytes (290 KB)
downloaded 290 KB

trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.5/backports_1.1.2.zip'
Content type 'application/zip' length 54833 bytes (53 KB)
downloaded 53 KB

trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.5/callr_3.0.0.zip'
Content type 'application/zip' length 185799 bytes (181 KB)
downloaded 181 KB

trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.5/crayon_1.3.4.zip'
Content type 'application/zip' length 749092 bytes (731 KB)
downloaded 731 KB

trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.5/desc_1.2.0.zip'
Content type 'application/zip' length 278326 bytes (271 KB)
downloaded 271 KB

trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.5/rprojroot_1.3-2.zip'
Content type 'application/zip' length 83935 bytes (81 KB)
downloaded 81 KB

trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.5/pkgbuild_1.0.1.zip'
Content type 'application/zip' length 104328 bytes (101 KB)
downloaded 101 KB

package ‘ps’ successfully unpacked and MD5 sums checked
package ‘base64enc’ successfully unpacked and MD5 sums checked
package ‘processx’ successfully unpacked and MD5 sums checked
package ‘backports’ successfully unpacked and MD5 sums checked
package ‘callr’ successfully unpacked and MD5 sums checked
package ‘crayon’ successfully unpacked and MD5 sums checked
package ‘desc’ successfully unpacked and MD5 sums checked
package ‘rprojroot’ successfully unpacked and MD5 sums checked
package ‘pkgbuild’ successfully unpacked and MD5 sums checked

The downloaded binary packages are in
	C:\Users\[ID redacted]\AppData\Local\Temp\Rtmp0w2kF3\downloaded_packages
> devtools::install_github("r-lib/pkgbuild")
Downloading GitHub repo r-lib/pkgbuild@master
from URL https://api.github.com/repos/r-lib/pkgbuild/zipball/master
Installing pkgbuild
Installing 1 package: cli
Installing package into ‘\\[ID redacted]/my docs/R/win-library/3.5’
(as ‘lib’ is unspecified)
trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.5/cli_1.0.1.zip'
Content type 'application/zip' length 589866 bytes (576 KB)
downloaded 576 KB

package ‘cli’ successfully unpacked and MD5 sums checked

The downloaded binary packages are in
	C:\Users\[ID redacted]\AppData\Local\Temp\Rtmp0w2kF3\downloaded_packages
Installing 1 package: prettyunits
Installing package into ‘\\[ID redacted]/my docs/R/win-library/3.5’
(as ‘lib’ is unspecified)
also installing the dependency ‘magrittr’

trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.5/magrittr_1.5.zip'
Content type 'application/zip' length 155801 bytes (152 KB)
downloaded 152 KB

trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.5/prettyunits_1.0.2.zip'
Content type 'application/zip' length 33207 bytes (32 KB)
downloaded 32 KB

package ‘magrittr’ successfully unpacked and MD5 sums checked
package ‘prettyunits’ successfully unpacked and MD5 sums checked

The downloaded binary packages are in
	C:\Users\[ID redacted]\AppData\Local\Temp\Rtmp0w2kF3\downloaded_packages
"C:/PROGRA~1/R/R-35~1.1/bin/x64/R" --no-site-file --no-environ --no-save --no-restore --quiet CMD INSTALL  \
  "C:/Users/[ID redacted]/AppData/Local/Temp/Rtmp0w2kF3/devtools33a071d34f81/r-lib-pkgbuild-446d70c" --library="\\Phcmh07/Users3/171998/my docs/R/win-library/3.5"  \
  --install-tests

* installing *source* package 'pkgbuild' ...
** R
** tests
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
  converting help for package 'pkgbuild'
    finding HTML links ... done
    build                                   html
    clean_dll                               html
    compile_dll                             html
    compiler_flags                          html
    has_build_tools                         html
    has_compiler                            html
    has_latex                               html
    has_rtools                              html
    pkg_has_src                             html
    pkgbuild_process                        html
    rcmd_build_tools                        html
Rd warning: C:/Users/[ID redacted]/AppData/Local/Temp/Rtmp0w2kF3/devtools33a071d34f81/r-lib-pkgbuild-446d70c/man/rcmd_build_tools.Rd:14: file link 'rcmd_safe_env' in package 'callr' does not exist and so has been treated as a topic
    with_debug                              html
    without_compiler                        html
** building package indices
** testing if installed package can be loaded
* DONE (pkgbuild)
In R CMD INSTALL
> find_rtools()
WARNING: Rtools is required to build R packages, but no version of Rtools compatible with R 3.5.1 was found. (Only the following incompatible version(s) of Rtools were found:3.5)

Please download and install the appropriate version of Rtools from http://cran.r-project.org/bin/windows/Rtools/.
> assignInNamespace("version_info", c(devtools:::version_info, list("3.5" = list(version_min = "3.3.0", version_max = "99.99.99", path = "bin"))), "devtools")
> find_rtools()
[1] TRUE
> devtools::install_github("EXASOL/r-exasol")
Downloading GitHub repo EXASOL/r-exasol@master
from URL https://api.github.com/repos/EXASOL/r-exasol/zipball/master
Installing exasol
"C:/PROGRA~1/R/R-35~1.1/bin/x64/R" --no-site-file --no-environ --no-save --no-restore --quiet CMD INSTALL  \
  "C:/Users/[ID redacted]/AppData/Local/Temp/Rtmp0w2kF3/devtools33a07e743c46/EXASOL-r-exasol-d28ea1c" --library="\\Phcmh07/Users3/171998/my docs/R/win-library/3.5"  \
  --install-tests

* installing *source* package 'exasol' ...
** libs
C:/RBuildTools/3.5/mingw_64/bin/gcc  -I"C:/PROGRA~1/R/R-35~1.1/include" -DNDEBUG .         -O2 -Wall  -std=gnu99 -mtune=generic -c exasol.c -o exasol.o
gcc.exe: warning: .: linker input file unused because linking not done
C:/RBuildTools/3.5/mingw_64/bin/gcc -shared -s -static-libgcc -o exasol.dll tmp.def exasol.o -lodbc32 -lpthread -lws2_32 -LC:/PROGRA~1/R/R-35~1.1/bin/x64 -lR
installing to \\[ID redacted]/my docs/R/win-library/3.5/exasol/libs/x64
** R
** inst
** tests
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
  converting help for package 'exasol'
    finding HTML links ... done
    ALLOWED_UDF_IN_TYPES                    html
    ALLOWED_UDF_OUT_TYPES                   html
    C_asyncRODBCIOStart                     html
    C_asyncRODBCIsDone                      html
    C_asyncRODBCMax                         html
    C_asyncRODBCProxyHost                   html
    C_asyncRODBCProxyPort                   html
    C_asyncRODBCQueryCheck                  html
    C_asyncRODBCQueryFinish                 html
    C_asyncRODBCQueryStart                  html
    EMITS                                   html
    EXAConnection-class                     html
    finding level-2 HTML links ... done

    EXAConnectionLog                        html
    EXADriver-class                         html
    EXAObject-class                         html
    EXAResult-class                         html
    RETURNS                                 html
    SCALAR                                  html
    SET                                     html
    dbApply                                 html
    dbBegin                                 html
    dbClearResult                           html
    dbCommit                                html
    dbConnect                               html
    dbCurrentSchema                         html
    dbDataType                              html
    dbDisconnect                            html
    dbEnd                                   html
    dbExistsTable                           html
    dbFetch                                 html
    dbGetInfo                               html
    dbGetQuery                              html
    dbIsValid                               html
    dbListFields                            html
    dbListTables                            html
    dbReadTable                             html
    dbRemoveTable                           html
    dbRollback                              html
    dbSendQuery                             html
    dbWriteTable                            html
    exa.createScript                        html
    exa.readData                            html
    exa.writeData                           html
    exasol-package                          html
Rd warning: C:/Users/[ID redacted]/AppData/Local/Temp/Rtmp0w2kF3/devtools33a07e743c46/EXASOL-r-exasol-d28ea1c/man/exasol-package.Rd:87: missing link 'EXAupper'
** building package indices
** testing if installed package can be loaded
* DONE (exasol)
In R CMD INSTALL
>

Hi mplunney, thanks a lot for trying again. Great that it works on Windows!


HTML parser - commented out encoding meta-tag

hi Pascal,
you wont believe, but I just found another encoding issue :smile:
Source code:
   <!--<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> -->
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

The parser cannot recognize the content correctly (for HTML entities is used UTF-8 and for other non-latin chars - ISO-8859-1). If you remove the comment, then the parsing will work.
Example: bankamiz.de/tr/tr_index.html
P.S. as a workaround I use the StripBetweenTransformer in the pre-parser chain to remove these comments from the source code.

I just tested the page with the standalone tika parser - the same issue.
So, it's not a norconex issue, but a tika one.
Please fill free to delete / close the issue from here.
Thanks!

Let's live it open in case I can apply a fix regardless.

I have implemented a fix in the Importer module and I made a new HTTP Collector snapshot with it.
Please confirm it solves your problem (it did in my tests).
FYI, I also opened a ticket with Apache Tika here: https://issues.apache.org/jira/browse/TIKA-1837. I will replace my solution with theirs once they release it.

It works! Great support as usual :clap:
And thanks for the opening a tika issue for that, it definitely makes sense to fix the external library.

Fixed in Tika.  Thank you for letting us know about this.  Sorry for the delay!

@tballison: Thanks you!


Dynamically generate robots.txt

[#147440453]

I have made the changes you suggest. Though I'm wondering are we publishing the filter URLs anywhere? How would a bot know to crawl those? I suppose if they are used for redirects from some other site it would know.

Yeah the filter URLs would only be known from existing redirects.  The solution for that is to create a sitemap: https://support.google.com/webmasters/answer/183668?hl=en
There is a story in PT for that: https://www.pivotaltracker.com/story/show/147443435
But it isn't scheduled so far.


README: Fixup the tailscale commands

Change-type: patch
Signed-off-by: Kyle Harding<EMAIL_ADDRESS>

Do the subnet features still work without these flags?
https://tailscale.com/kb/1019/subnets/#step-3-enable-subnet-routes-from-the-admin-console

Do the subnet features still work without these flags?
https://tailscale.com/kb/1019/subnets/#step-3-enable-subnet-routes-from-the-admin-console

No, the device needs to provide the subnet flags and then they need to be approved in the dashboard. If the device does not advertise the subnets they cannot be added/approved.

Oh I see it now, I thought you were removing the flags.
LGTM, thanks.

@klutchell, out of curiosity, which setup did you use to try it out? Digital Ocean, local or some other form?

@maggie0002 Deployed on my Intel NUC, works great!


Add inline line numbers

Hello @ryangjchandler,
First, I want to express my gratitude for bringing such a difficult project to life! :)
I see that line numbers are currently supported through the data-line attribute, which is then enabled with CSS to display the numbers in the generated HTML. However, what if we generate the line numbers directly in the HTML? By using an inline user-select: none style to prevent selection and adding a line-number class so we enable further customization while simplifying the structure.
Further, we need a way to enable (should be disabled by default) line numbers but I'll let you decide on how would you do it. Here's an idea..
$html = $phiki->codeToHtml(
    <<<'PHP'
    echo "Hello, world!";
    PHP,
    Grammar::Php,
    Theme::GithubDark,
)->withLineNumbers(startAt: 5); // also nice to have option for line number start

Output:

   5
  echo

  "
  Hello, world!
  "
  ;

Customization:
pre code .line-number {
    margin-right: 1rem;
    /* Suggestion: would be also nice to add the theme base color as inline style with an hex alpha value */
    color: #7683904D; /*(4D = 30% transperency)*/
    text-align: right;
}

Let me know your thoughts on this approach!

I think this would be a good edition – I'm going to be refactoring the HTML generation slightly so that it's less clunky, the string concatenation is quite annoying and hard to follow 😅

Sounds like you already have a plan and I could not agree more on the HTML generator 😅. Maybe have a look at Tempest Highlight as I think he's done a good job on it's structure.
As of the modifier name you could also opt in for withGutter(startAt: 10)
Also for markdown would be nice to be possible to mention starting line in order to change it
``php{10}
echo "Hello, world!";
``

@ryangjchandler I've made some adjustments so this can be merged until further refactoring.

added a withGutter parameter that is false by default
added editorLineNumber.foreground color to the line-number style
kept data-line attribute as fallback solution

Also the withWrapper been moved as the fifth parameter cause of it's importance so the readme would need to be updated.
Let me know your thoughts on this approach!


Cannot set a site as a home site

The following does not work
Set-SPOHomeSite -HomeSiteUrl
Set-SPOHomeSite : The requested operation is part of an experimental feature that is not supported in the current
environment

@Amyversa
thank you for submitting feedback.
I think the best way forward is if you open a service ticket in your tenant so this can get resolved ASAP. Based on the outcome let me know if it is something that can be called out in the docs.
Please follow this link to contact support for business products:https://docs.microsoft.com/office365/admin/contact-support-for-business-products
Please keep us posted here on the resolution so we can feed whatever information you discover into the content.

Hi @scanum - I'm referring to this document -
https://docs.microsoft.com/en-us/powershell/module/sharepoint-online/set-spohomesite?view=sharepoint-ps
When I do that, it says - The requested operation is part of an experimental feature that is not supported in the current environment


Chart is not getting drawn at the center of the view

Pie chart is always drawn with it's center as parent view's top left corner. How to give the center point as Parent View's center?

I have exactly the same issue. It looks like it happens only with Pie chart.

have you tried "justify-content:centre" and "align-items:centre" in your chart style.
Since it is not a General issue I would strongly suggest you to post the code including the styles of the parent layout and the chart layout

@sachin-sable @shalini3001 Could one of you provide some sample data/code that helps show how to reproduce the result? I tried tweaking the example app so that it only showed the pie chart and I couldn't get the same behavior as stated above. I even removed the style and contentContainerStyle attributes from the parent ScrollView and I didn't get the same behavior when running on the iOS simulator. Here's the reduced snippet from the index.ios.js file from the example app:
class example extends React.Component {
  render() {
    return (
      <ScrollView>
       <Pie
          data={sampleData.pie.data}
          options={sampleData.pie.options}
          accessorKey="population" />
      </ScrollView>)
  }
}

and it comes out looking like this:

I have the same issue too. The code and the data are taken from the example project (src in attachment).
return (           <ScrollView style={{flex:1,backgroundColor:'#F5FCFF'}}                   contentContainerStyle={{justifyContent:'center',alignItems:'center'}}>             <Pie               data={data}               options={options}               accessorKey="population" />           </ScrollView>         );
The result is the same without styling. I am running it with Exponent on Genymotion Android emulator (Google Nexus 5X - 6.0.0 - API 23).
ExpensesPiechart.js.txt

@Jarda8 Thanks for the example code/data. I tried running your example with the most recent merged changes that upgraded this project to React Native 0.35 with your identical setup (Exponent+Genymotion+same device you have above), and I didn't see the behavior of the pie chart showing up in the top left corner - I saw it correctly rendered in the center like so:

So maybe the upgrade to React Native 0.35 addressed this issue? Could you give the latest changes a try and see if that fixes it for you?

I had the same bug, to Fix it need to add property "center: [100, 100]" or other coordinates to options opfpie...

@SimchaShats Could you put the "pie graph doesn't render with only 1 data item" bug you mentioned above into a separate issue?
I think the "adding custom colors" feature you mentioned above, is covered by #5 (Thanks for the helpful feedback on that one).
Given all this, once we have a new issue for the pie graph with 1 data item bug, I will close this one out.

Ok


*Sync() doesn't work with web?

Steps to Reproduce
Change from async to *Sync version of isar calls.
Code sample
The following works with web (tested in debug):
async isar?.writeTxn(
  (isar) async {
    await isar.answers.put(a, saveLinks: true);
  },
);

The following doesn´t work with web:
isar?.writeTxnSync(
  (isar) async {
    isar.answers.putSync(a, saveLinks: true);
  },
);

There's a lot of content in the log when this happens, but it seems to begin with:

Error: Unsupported operation: This operation is not supported for Isar web

Version

Platform: Web
Flutter version: 3.0.0
Isar version: 2.5.0
Isar Generator version: 2.5.0

IndexedDB does not support synchronous access so it's not possible for Isar to provide synchronous methods on web :/

Thank you for a really quick answer!
Could this be mentioned in https://isar.dev/limitations.html, in case others encounters this?
I'll keep trying to figure out synchronization/async, any suggestions on resources? It's specifically the following issues I'm working on:

Missing an entry when I read data, possibly because the write did not have time to finish (should be enough with await?).
Create a List<B> from IsarLink in List<A>, where I have to call load() for each IsarLink property in A. I currently do this with map().

Your first issue can be avoided with await. For automatically loading many links there is no great solution right now :(
I'll use this issue to remember documenting this web limitation.

Bummer. @leisim would something like waitFor or an alternative in Javascript be possible to block async calls?
(Could be slower, and discouraged, but at least it would work)
I have functions that heavily rely on *Sync methods won't otherwise run on web.

@leisim any chances of working with greenrobot to allow web support of  objectbox

@Macacoazul01 there are no plans to do that.


Remove creation of the barclamps data_bag

This PR is a test if we can remove the creation of the barclamps data_bag. I found no line where we use it any longer.

I don't know any place as well. Let's see what gating says. For the meantime it looks like a :+1: from my side.

Gating is successful, will drop this part in my PR which fixes barclamp_install.rb.

But why not simply merging that as this pr is already created?


Scrolling issues windows 10 switching desktop

VS Code Version: 1.0.0
OS Version: Windows 10 Home Build 10586.218

Steps to Reproduce:

Open two desktops.
Open VS Code in one of the desktops with scroll-able content. Scrolling works fine now.
Switch to the other desktop and back to VS Code. Now scroll the same content using touch-pad. It does not scroll, looses focus.

@dinesh-dev you mean scrolling in the editor or somewhere else?

in the editor

@dinesh-dev when you say it looses focus, where does it go?

@bpasero The editor does not allow the contents to be scrolled after switching desktops using touch-pad.

In the first screenshot I have a file open that has scroll-able content in Desktop 2. When I switch to Desktop 1 using task view and switch back to Desktop 1 the content does not scroll, even when I click inside the file.
Hopefully this helps.

@dinesh-dev does any other interaction work in that case, just not scrolling?

Just scrolling using touch-pad. Other interactions work fine. @bpasero

Scrolling on a HTML file of 400 lines is unusable. Skips whole sections, very jumpy

@dinesh-dev Did you also see this issue on Chrome/Chromium?

This is an upstream issue (possibly within Chromium), and there are no known workarounds that we could implement on our side. This means there is no possible code change for us to do in VS Code sources to improve things.
To keep the number of issues in our inbox at a manageable level, we’re closing issues that have been on the backlog for a long time but haven’t gained traction or that are not actionable. Thank you for your time and understanding.


Complete exercise 1-17

Write a program to print all input lines that are longer than 80 characters.

Exercise complete. Created a new function called 'ds_AppendLine' to add qualifying lines to the output array.


add an option to set "wasd" to rotate camera

Hi! In OSBuddy there's an option that lets you rotate the camera with "wasd" instead of arrow keys. This is very useful so that you don't have to move your hand everytime you want to rotate the camera. If you want to chat something you press "enter" and write whatever you want to say. Can you add this option or something similar?

Duplicate of #1008


PROPOSAL: Add optional watch annotations to RelationshipUpdate

The Problem Statement
As the developer of an authorization service that uses SpiceDB as its backing store, for regulatory reasons, I need to have an audit log that shows what relationships were present in SpiceDB at what time in order to answer an auditor's question of "who had access to what at what time, and who authorized the change?"
Proposed Solution
We can use the WatchService to answer "who had access to what at what time" by taking the stream of events and saving it to some durable persistence mechanism (Kafka in our case). However, additional information about the transaction (such as who authorized the change to SpiceDB) isn't currently stored on the relation and wouldn't show up in the WatchService.
The WatchService as it currently exists would be a desirable mechanism for audit because it's an in-order log of changes made to SpiceDB, which is our system of record and source of truth.
Attaching a notion of metadata to write requests seems like it could satisfy the above. As long as metadata that goes in with a WriteRelationships request comes out in the WatchService, it wouldn't even really need to be persisted to the backing store beyond the persistence mechanisms already present in the WatchService.
Concretely
message RelationshipUpdate {
  enum Operation {
    OPERATION_UNSPECIFIED = 0;
    OPERATION_CREATE = 1;
    OPERATION_TOUCH = 2;
    OPERATION_DELETE = 3;
  }
  Operation operation = 1 [ (validate.rules).enum = {defined_only: true, not_in: [0]} ];
  Relationship relationship = 2 [ (validate.rules).message.required = true ];
  Struct watch_annotations = 3;
}

The understanding is that these annotations are only for consumption via the watch service, and are not intended for any other logical or semantic purpose.
The naming and location are a suggestion; if there's another location or name that provides the same functionality I'm all ears.
Existing Alternatives
My team is currently discussing a few different ideas, all of which have drawbacks. We have changestreams coming from both web requests to the service and from a kafka consumer listening to changestreams from elsewhere in our system.
One is to write audit events before and after attempting a write to SpiceDB. This has the downside of leaving potentially indeterminate states in the audit log, especially if there are overlapping requests to our web interface that interact with the same object. It won't be clear which request landed first.
Another is to put a queue in the request path, which would help from the perspectives of durability and serializability, but comes at considerable complexity cost.

One alternative that we've come up with that wouldn't be heinous is adding something like
definition audit_subject {}
definition audit_object {
  relation subject: audit_subject
}

to our schema and then adding a sideband K/V store for audit metadata, and then inserting a relation into each WriteRelationships request that includes a UUID for the audit_object, adding audit information to the K/V store with that UUID as the key, and then making the thing that uses the WatchService reassociate audit information that way.
This adds additional complexity, so we'd still prefer it if SpiceDB were to somehow be able to support this directly, but we've at least got the above.

I'd like to give a +1 to this feature request 😄

We have changestreams coming from both web requests to the service and from a kafka consumer listening to changestreams from elsewhere in our system.

We have a similar scenario at my organization, and we are consuming watch events to hydrate permissions in search indexes downstream. We'd like to be able to implement observability on the async pipeline (so our requirements aren't quite as rigorous as building an audit trail) and it would be really helpful to be able to include some kind of request-id (or, say, an OpenTelemetry trace id) on the WriteRelationships call, and be able to "see" that request/trace ID in the watch event. This would enable us to build a complete APM trace from "user clicked the 'save' button", through "Kafka event consumer wrote to SpiceDB", to "watch API caller observed the relationship change", to "search index updated to reflect permissions".
Having this kind of traceability will be tremendously valuable for debugging/troubleshooting issues (which stage in the async pipeline dropped the ball?) and would also enable us to establish and monitor SLO's on the async processing (e.g. X% of the time, our search index is updated with latest permissions within Y seconds of the user clicking "save").

Same on our side.
We would like to know what batch/CS operator did the change, from which state to which as well as the reason for the change.
Being able to save additional metadata would be very helpful.

Current state of research:

Postgres: fairly trivial to add since we control the transactions table; would simply be another column
MySQL: Ditto
Memdb: Ditto
Spanner: I believe Spanner's transaction tags can be used to mark the transaction and then read the resulting tag from the changestream
CRDB: ⚠ PROBLEM: CRDB does not appear to have any means of correlating a transaction with the entries in the changestream besides writing another row, including during deletions. This would be doable but would add non-insignificant overhead to a write call, as that extra row would be on a shared table.

After some research and prototyping, I've created PR #1914 which allows for attaching metadata to the read/write transaction.
Once this change is in, we'll update the API to allow for a Struct metadata to be attached to the WriteRelationships and DeleteRelationships call, with the metadata coming out of the watch API for each relationship change within that transaction. This won't allow per-relationship metadata, but since the updates are transactional anyway, the caller can track the per-relationship-update metadata on its own.

Transaction metadata support has landed in SpiceDB v1.38.0


Think on Rest Endpoints

`openapi: 3.0.0
info:
title: Product Array API
version: 1.0.0
description: |
This API provides an endpoint for retrieving an array of products.
servers:

url: http://localhost:8000
description: Local development server

paths:
/productsArray:
get:
summary: Get an array of products
description: Retrieve an array of products.
parameters:
- name: limit
in: query
description: Maximum number of products to retrieve
schema:
type: integer
minimum: 1
maximum: 100
default: 10
responses:
'200':
description: An array of products
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Product'
examples:
'application/json':
- id: "1"
name: "Product 1"
description: "Description of product 1"
price: 19.99
quantity: 100
- id: "2"
name: "Product 2"
description: "Description of product 2"
price: 29.99
quantity: 50
components:
schemas:
Product:
type: object
properties:
id:
type: string
format: uuid
example: "1"
name:
type: string
example: Sample Product
description:
type: string
example: This is a sample product
price:
type: number
format: double
example: 19.99
quantity:
type: integer
example: 100
required:
- name
- description
- price
- quantity
`

openapi: 3.0.0
info:
title: Product Array API
version: 1.0.0
description: |
This API provides an endpoint for retrieving an array of products.
servers:

url: http://localhost:8000
description: Local development server

paths:
/productsArray:
get:
summary: Get an array of products
description: Retrieve an array of products.
parameters:
- name: limit
in: query
description: Maximum number of products to retrieve
schema:
type: integer
minimum: 1
maximum: 100
default: 10
responses:
'200':
description: An array of products
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Product'
examples:
'application/json':
- id: "1"
name: "Product 1"
description: "Description of product 1"
price: 19.99
quantity: 100
- id: "2"
name: "Product 2"
description: "Description of product 2"
price: 29.99
quantity: 50
components:
schemas:
Product:
type: object
properties:
id:
type: string
format: uuid
example: "1"
name:
type: string
example: Sample Product
description:
type: string
example: This is a sample product
price:
type: number
format: double
example: 19.99
quantity:
type: integer
example: 100
required:
- name
- description
- price
- quantity

openapi: 3.0.0
info:
  title: Price Comparison API
  version: 1.0.0
  description: |
    This API provides endpoints for retrieving price comparison data based on product EAN.

servers:
  - url: http://localhost:8000
    description: Local development server

paths:
  /products/{productId}/price-comparison:
    parameters:
      - name: productId
        in: path
        required: true
        description: ID of the product to retrieve price comparison data for
        schema:
          type: string
      - name: ean
        in: query
        required: true
        description: EAN (European Article Number) of the product
        schema:
          type: string
    get:
      summary: Get price comparison data
      description: Retrieve price comparison data for a specific product based on its EAN.
      responses:
        '200':
          description: Price comparison data
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    shop:
                      type: string
                      example: Shop A
                    price:
                      type: number
                      format: double
                      example: 19.99
        '404':
          description: Product not found

components:
  schemas:
    Product:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: "1"
        name:
          type: string
          example: Sample Product
        description:
          type: string
          example: This is a sample product
        ean:
          type: string
          example:<PHONE_NUMBER>123
        price:
          type: number
          format: double
          example: 19.99
      required:
        - name
        - description
        - ean
        - price


Add [BWAV Kinesis Financial Group LTD www.bwavkinesis.net] #issuer GDQCYK…BGBA6N

Address: GDQCYKYRXUK3XIULYMSROKYC7DF4QWMHZZ3BPHXNKFYT6KJYI7BGBA6N
Tags: issuer
Title: BWAV Kinesis Financial Group LTD  Domain: www.bwavkinesis.net
Requested by @csokun

XAA is an institutional Asset Backed Digital Currency.

Hello @csokun
Can you provide information to support the claims, "XAA is an institutional Asset Backed Digital Currency." and "Asset backed, cost effective, efficient token, ability to use as collateral with banks"?
-The website is blank page with "Hello World"
-The TOML file has conflicting information about the project and tokens
-XAA (Issuing account GDQCYKYRXUK3XIULYMSROKYC7DF4QWMHZZ3BPHXNKFYT6KJYI7BGBA6N) has one holder
-XAU (Issuing account GADO5BSP6ANJUQIWHKWTZYBQQL2EIP5C3XU6NKTFFQXTNMEFY5CNFNWJ) has not even minted the token yet
These tokens and wallets have not been flagged as scams yet but your reply is crucial.
Looking Towards The Future With You,
Rob

Hello @csokun
Can you please supply updated information? Or was I misunderstanding your post, and you were actually just reporting this as a scam or counterfeit?
Rob

Hello @csokun
Please feel free to reopen this issue if you have any new information.
Looking Towards The Future With You,
Rob.


Default button material behavior

Introduces a simple, customizable, and overridable default material behavior for buttons. Relevant examples are updated.
First time contributor here--I opened this PR because this is a behavior that I personally thought I would like when using Bevy. Feedback (even if negative--but hopefully not) is appreciated.

Coming back to this, I think it's probably a bit too opinionated for a base button type. Closing this out, we can revisit it once we have a better idea of the widget design.


Fix token expiration

Current dependencies on/for this PR:

main

PR #15   👈

This comment was auto-generated by Graphite.


Extending class

Hi Tom,
I was thinking if there was a way to extend to Repository class so that I can use it as CRUD and pass the new schema from other models.
class bookmark extend repository {

public function makeSchema()   {
        return (new Schema('Color'))
            ->addDatetime('posted')
            ->addString('name', FALSE)
            ->addString('message', FALSE)
            ->addString('ip')
        ;
    }

}

Thank you.

I'm not 100% sure what you are getting at here.
I have done things like this on occasion:
class Factory
{
   public function getBook()
   {
      return new Store((new Schema('Book'))->addString('title'));
   }
   public function getAuthor()
   {
      return new Store((new Schema('Author'))->addString('name'));
   }
}

Is that what you are getting at?

Hi Tom,
What I want to make is a "Model" class with the "CRUD" methods that I can extent on my "sub models".
class Model {

  public function makeSchema()
    {
        return $this;
    }

}

Then when I create a model for a kind call Bookmark I can just said:
class bookmark extend Model {

    public function makeSchema()
    {
        return (new Schema('Bookmark'))
            ->addDatetime('posted')
            ->addString('name', FALSE)
            ->addString('message', FALSE)
            ->addString('ip')
        ;
    }
}

and since I am inheriting all other methods from "Model" I already have the update, post, delete operations for the new "kind".


File Share can send a maximum of 65536 bytes

Hi Muaz
Is it possible from code change limit 65536 bytes in File sharing :
FileBufferReader.js:1228 Uncaught TypeError: Message too large (can send a maximum of 65536 bytes)
at RTCDataChannel.dc.send [as internalSend] (adapter.js:4201)
at RTCDataChannel.channel.send (RTCMultiConnection.min.js:15)
at RTCMultiConnection.min.js:15
at Array.forEach ()
at RTCMultiConnection.min.js:15
at FileBufferReader.js:116
at FileBufferReader.js:545
at FileBufferReader.js:1215
at FileBufferReader.js:1135
at FileBufferReader.js:1061
I know that can try with edit 65536 directly in adapter.js file, but i don't  think is good approach.
Can you help.

This is problem on Google Chrome
https://bugs.chromium.org/p/webrtc/issues/detail?id=8419
is there solutions for this

https://www.rtcmulticonnection.org/docs/chunkSize/

// both chrome/firefox now accepts 64 kilo-bits for each data-chunk
connection.chunkSize = 60 * 1000;

// to make sure it works on all devices
connection.chunkSize = 15 * 1000;


[CROSSDATA-352]Solve problem with package in driver

Solve problems with driver and generates a deb and rpm packages

LGTM

Nice work! :+1:


Missing Data within Swiss Cantons

We have Canton-specific datasets, but looks like they have gaps. Documenting here for the future
Aargau

Rheinfelden
Mettauertal
Wallbach
Vordemwald
Reitnau
Ammerswil
Attelwil
Geltwil

Bern (un-confirmed)

Buchholterberg
Stocken-Höfen
Sauge
Petit-Val

Fribourg

Corcelles

Zurich
Only the city is available, rest of the canton is missing

ill look for some of this later; zurich canton here: http://geolion.zh.ch/geodatensatz/show?nbid=1567 but not sure if you can DL it.

Best general source for Swiss data I know is https://www.geodienste.ch/services
The licensing info is clearer than using the individual cantons. I think we have all the data they publish at the moment.


add dynamic url to HTTP processor + fix RawData bug

Description
Fixes #1495
Fixes #1497
Quick checks:

[x] I have followed the Code Guidelines.
[x] There is no other pull request for the same update/change.
[x] I have written unit tests.
[x] I have made sure that the PR is of reasonable size and can be easily reviewed.

@maha-hajja LGTM! Maybe we could also document which types are expected in StructuredData values? Or maybe even have methods on StructuredData that will check a value's type before storing it?


Estimate fee does not use feeTransactionVersion

The estimate*Fee functions (e.g. estimateInvokeFee) at src/account/default.ts use transactionVersion instead of feeTransactionVersion. for instance: here
This is inconsistent with cairo-lang behavior and does not allow differentiation between "querying" the contract via the estimate_fee endpoint and actually changing its state via add_transaction.

good catch! PR appreciated

good catch! PR appreciated

@janek26 see #395

@dhruvkelawala it works because 'estimate_fee' endpoint does not limit calls using transaction version 1 (or 0) but 'add_transaction' does limit transactions to be either 0 or 1 (i.e. non estimate fee transaction version)
There was an issue with OZ contract that asserted on txn version = 1 which caused it to fail. It was fixed in this PR there: https://github.com/OpenZeppelin/cairo-contracts/pull/486
in 'cairo-lang' search for QUERY_VERSION to follow the transaction simulation flow.


Test: hide the activity bar

[ ] Windows -
[ ] macOS -
[ ] Linux -

A new setting workbench.activityBar.visible allows to control the visibility of the activity bar.
Verify:

this setting works as expected
you can toggle visibility from the View menu
you can toggle visibility from the command palette

Testing #1105


ARROW-5179: [Python] Return plain dicts, not OrderedDict, on Python 3.7+

Starting with Python 3.7, built-in dict is insertion-ordered.
No need to return a slightly heavier and costlier OrderedDict.

Other implementations may not order it if it's not in the spec, so I'd rather not.

OK, that's a good reason


Inheritance Issue with SWC Compilation

Describe the bug
I am currently facing an issue while upgrading an old project to use SWC for compilation. The project consists of both JavaScript and TypeScript files, and there is a scenario where a TypeScript class (New.ts) extends a JavaScript class (Old.js). The TypeScript class includes a private property value, but during SWC compilation, this property is transformed into _define_property._(_assert_this_initialized._(_this), "value", void 0);, leading to value being overwritten as undefined.
Input code
// file: Old.js
class Old {
    constructor() {
        this.value = 123;
    }
}

// file:  New.ts
class New extends Old{
    private value!: number;
}

Config
{
  "jsc": {
    "parser": {
      "syntax": "typescript",
      "tsx": false
    },
    "target": "es5",
    "externalHelpers": true,
    "minify": {
      "compress": false,
      "mangle": false
    },
    "keepClassNames": true,
    "loose": false
  },
  "minify": false,
  "isModule": true,
  "module": {
    "type": "umd"
  }
}

Playground link (or link to the minimal reproduction)
https://play.swc.rs/?version=1.3.107&code=H4sIAAAAAAAAAzXMQQ7CIBQE0P0%2FxbjTDUTdtfEKegak34hBauDTNmm4uy3a2c1M8rTGw3lucPOdeiWy3qS0FsyEJbYPSWK20sf94b%2BtkadLajA%2BMy44ns5tfQoVIr2RuPKoZDOXAp6EQ1f9H%2FWJbjDCqNKuQcjvO8eWyhfiG7IxmAAAAA%3D%3D&config=H4sIAAAAAAAAA22Quw6DMAxFd74Cee7apWuXLu0%2FWGBQ2rxkGwmE%2BPcmlFBUdYvvyc1RPFd1DU9p4FLP6ZiGiCzE%2B5wSmbzimBLQKZI0bKLCqVCVjDq0Qmu0fAgock%2BaWyTn7TrQqMQe7Y1sJJZElQfaoDPedNPR3AQXmUSKYJc69L2lv94XUbxaFHmgox%2BDDUGOrbXz9e4OMHIP7bAaSh1cSbZF5WXk7w2uhfxWtbwBcTGuOk0BAAA%3D
SWC Info output
No response
Expected behavior
We expect that when inheriting properties from a parent class, the initialization and access of those properties should remain intact during SWC compilation.
Actual behavior
No response
Version
1.3.107
Additional context
No response

See https://github.com/swc-project/swc/issues/7435

Class fields are undefined

https://github.com/swc-project/swc/issues/6985
https://swc.rs/docs/migrating-from-tsc#usedefineforclassfields


798 fix order fields

Fixes #798.
@tabacitu, please notice that, as part of this PR, I've deprecated the unimplemented setFieldOrder and setFieldsOrder.
Also, since I was already working on the class, I've also fixed the decodeJsonCastedAttributes catch clause not declaring the Exception class correctly.

@lloy0076, like the column order PR, the method names were kept for backwards compatibility reasons.

Thank you @tumf87 ! Merged!


rowform example doesn't work with version 0.1.9

In version 0.1.9 the rowform example doesn't work anymore.
If a second rowform is shown the first form is partially hidden and there are no submit/cancel-buttons at all.

Is this still an issue with the latest release?

I will check this again.

I have verified that the rowform example works with the latest release.
@eugef please close.


Update microsoft-team.md

@terrajobst if you have others, I can add them.

@terrajobst

Cc @wtgodbe  in case you want to add any


Web API  + EF 6

I am putting together a Web API that uses .net core 2.1 and want to use entity framework 6.
I understand that because of compatibility issues it is best to create a separate project for the EF and reference it.
I was directed here from this link:
https://docs.microsoft.com/en-us/aspnet/core/data/entity-framework-6?view=aspnetcore-2.1
I was hoping to find a simple example or walkthrough of how to add EF 6, instead I was directed to github ?

@Bridgeway  this is a good tutorial for EF 6
You'll need to follow other tutorials for Web API and combine the two.


MINOR: Import RaftConfig parameters into KafkaConfig

Typically, Raft Quorum Configuration is provided through the same
properties file as the Broker/Controller a.k.a KafkaConfig
During the lifecycle of the Broker/Controller, we do reference the
Quorum configuration outside of the RaftConfig (Eg: RaftManager.scala)

Committer Checklist (excluded from commit message)

[x] Verify design and implementation
[x] Verify test coverage and CI build status
[x] Verify documentation (including upgrade notes)

This looks unintentional.
Hmm. Any specific part of the code?

This looks unintentional.
Hmm. Any specific part of the code?


elasticsearch speed comparison issue with sql

I compare the speed of Sql with ElasticSearch. I have 1.5 million data. But sql query runs faster than elastic search. I don't understand the problem. Why is the word like query coming faster in sql?
My code for Sql
public static List GetAllRecords(string itemType)
{
List salesReports = new List();
        string sqlQuery = String.Format(@"SELECT * FROM dbo.Sales  where Region like '%{0}%'", itemType);
        using (SqlConnection connection = new SqlConnection(CONNECTION_STRING))
        {
            var result = connection.Query<Sales>(sqlQuery);
            foreach (var item in result)
            {
                Sales global = new Sales()
                {
                    Region = item.Region,
                    Country = item.Country,
                    Item_Type=item.Item_Type,
                    Order_Date=item.Order_Date,
                    Order_ID = item.Order_ID,
                    Order_Priority=item.Order_Priority,
                    Sales_Channel=item.Sales_Channel,
                    Ship_Date = item.Ship_Date,
                    Total_Cost=item.Total_Cost,
                    Total_Profit=item.Total_Profit,
                    Total_Revenue=item.Total_Revenue,
                    Units_Sold=item.Units_Sold,
                    Unit_Cost=item.Unit_Cost,
                    Unit_Price = item.Unit_Price
                };
                salesReports.Add(global);

            }
            return result.ToList();
        }
    }

My code for ElasticSearch. I search the data that I indexed before with elasticsearch here.
public static List ConfigureES(string inputText)
{
List salesReports = new List();
            // 1. Connection URL's elastic search
            var listOfUrls = new Uri[]
            {
                // here we can set multple connectionn URL's...
                 new Uri("http://localhost:9200/")
            };

            StaticConnectionPool connPool = new StaticConnectionPool(listOfUrls);
            ConnectionSettings connSett = new ConnectionSettings(connPool);
            ElasticClient eClient = new ElasticClient(connSett);

            //  var see = eClient.DeleteIndex(INDEX_NAME);

            // check the connection health
            var checkClusterHealth = eClient.ClusterHealth();
            if (checkClusterHealth.ApiCall.Success && checkClusterHealth.IsValid)
            {
                // 2. check the index exist or not
                var checkResult = eClient.IndexExists(INDEX_NAME);
                if (!checkResult.Exists)
                {
                    // Raise error to Index not avaliable
                }
                // Search particular text field
                var searchResponse = eClient.Search<Sales>(s =>
               s.Index(INDEX_NAME).From(0).Size(5000).Scroll("10m")
               .Query(q => q.Match(m => m.Field(f => f.Region).Query(inputText))));

                //var results = eClient.Scroll<Salesreport>("10m", searchResponse.ScrollId);
                while (searchResponse.Documents.Any())
                {
                    var res = searchResponse.Documents;
                    var sds = res.Cast<Sales>();
                    salesReports.AddRange(sds);
                    searchResponse = eClient.Scroll<Sales>("10m", searchResponse.ScrollId);
                }
            }
            else
            {
                // fail log the exception further use
                var exception = checkClusterHealth.OriginalException.ToString();
                var debugException = checkClusterHealth.DebugInformation.ToString();
            }

            return salesReports;
        }

@celalpoyraz a) I am pretty sure that this question is posted in the wrong repo. This is about hub, an extension to the git command line tool. But b) why are you expecting a SQL query to be slower than an Elasticsearchquery? In the end they both select data by a condition, and while Elasticsearch is always(?) properly configured to handle a "starts with word XX" query, a SQL database can be as well, and in that case I would expect both to be on par. (Note that your SQL command exhibits a SQL injection bug.)

This issue tracker is for a command-line tool called "hub" which is written in Go. Your question seems unrelated to this project, and you should find a more appropriate forum to ask it in. Thank you.


How can I jump over changes as GitDiff does？

GitDiff has a feature that jumps over the changes, also can set a shortcut for that.
Will GitDiff9 support this feature?

No plans at the moment. It’s open source though, Perhaps someone will pick it up.


3.0 lacks markdown.version

In 2.6.11 (and older versions) one could import markdown; markdown.version and this is no longer present in 3.0: AttributeError: 'module' object has no attribute 'version'
Please add this to the release notes if it was intentional.

This is a duplicate of #709.

Apologies.  Didn't think to dig through the recent PRs.


Tweak, refine, and update CoC language

Aiming for increased consistency, even gooderer grammar, and cleaner disambiguation / more explicit call-outs regarding discriminatory, sexual, and sexualized language and images.
NOTE: I'm reading this as a 2021 CSV, and I figured I might as well toss some edits in here while I'm reading it. I'm not wedded to any particular change, and am happy to work with the community to get the palatable deltas merged. Thanks for considering!

Per the https://github.com/code4lib/code-of-conduct/blob/main/how_changes_are_made.md document, I am pinging the CSS to review and comment on these changes: @aaron-collier @bobbi-SMR @kayiwa @anarchivist @aslaughter


scripts and some doku

Hello,
thanks for writing this program. You gave me the glue for controlling my linux based desktop(s) with Home Assistant. I added some scripts and some documentation about the scripts. I'd try to reduce the load of every script to the bare minimum. It would be kind if you merge this to your repo.
Kind Regards
dev-foo-bar
P.S.: Unfortunately I am not a go developer and this is one of my first contributions.

Thanks so much! I took a quick look over and everything seems reasonable, though I haven't tested myself. Seeing as this doesn't modify anything, I'm happy to merge and sort out any issues later. Thanks for the documentation too!

If it's convenient, a sample config with the scripts in use would be a welcome addition. Not worries if not though!

Hi,
thank for merging. Samples for the config are on the way. At the moment, i work on a way to make the install a little bit more convenient. During this way, I see a possibility to create the configuration dynamically (based on the hardware, ha-mqtt-iot is enrolled on).
Kind regards
dev-foo-bar

That could be an option. In the past (before I rewrote everything) I had a couple built in entity types that could just be turned on, battery sensors and laptop display if I remember correctly. An automatic config generator would also be perfectly viable.
Part of the benefit of the built-in entities was that I could make them platform independent (rather, I would write platform specific code so the config was independant)


Giveaway command

Allow the creation of giveaways.  This command takes a giveaway duration, giveaway title, number of giveaway winners (optional), giveaway description(optional), and minimum entries (optional).
After the expiration time, a winner or the winners is/are randomly chosen from the pool and displayed.
A re-roll command would be nice to have as well so that we can pick new winners if needed.
The giveaway Discord bot is a good example of what we're trying to accomplish.

Completed with commit c47d3ad2aaa74d928b1e4b376fbff0a803487611


ash... the dependency is not available

Unchecked dependencies for environment dev:
* ash (../../ash/ash)
   the dependency is not available
** (Mix) Can't continue due to errors on dependencies

Because?
mix.exs
...
defp deps do
[
...
# {:ash, "~> 3.0"},
    {:ash, path: "../../ash/ash", override: true},
...

Fixed :)

Many thanks again @zachdaniel, I'm excited to learn from this realworld example!


Add support for cyrillic characters

Add support for Cyrillic characters

Thanks for the pull request, but I'm getting the error: .../LCD_1602_RUS.h:14:14: error: expected identifier before numeric constant #define BYTE 0, when I set LCD_RUS to true. The problem is that both libraries LCD_1602_RUS and LiquidMenu define the symbol BYTE.

Ah, man! I totally forgot about that. I've removed it in LCD_1602_RUS
temporarily and forgot to revert. Is there any way to integrate these two
libs?
On Wed, Apr 3, 2019 at 10:24 AM Vasil Kalchev<EMAIL_ADDRESS>wrote:

Thanks for the pull request, but I'm getting the error: .../LCD_1602_RUS.h:14:14:
error: expected identifier before numeric constant #define BYTE 0, when I
set LCD_RUS to true. The problem is that both libraries LCD_1602_RUS
and LiquidMenu define the symbol BYTE.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/VaSe7u/LiquidMenu/pull/24#issuecomment-479582790, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABJ7zwtiLxEBFr3OizTfGVMHEVnstZAQks5vdOPMgaJpZM4cOnoF
.

Yes, the BYTE definition was actually redundant. I'll test the pull request and merge it in a few days.


"NixOS Manual" icon is distorted on GNOME

Describe the bug
The icon for the NixOS Manual application (which opens the HTML manual in the user's browser) is distorted when displayed in the GNOME app grid.
Steps To Reproduce
Steps to reproduce the behavior:

Have documentation.nixos.enable = true and documentation.doc.enable = true set
Run GNOME Shell
Look at the app grid

Expected behavior
The NixOS icon should be properly scaled in the app grid, like the other icons.
Screenshots

Additional context
The desktop entry references nix-snowflake.png which is found in the nixos-icons package.
Notify maintainers
@andir (git blame shows that this is the person who added the desktop entry)
Metadata
 - system: `"x86_64-linux"`
 - host os: `Linux 5.15.63, NixOS, 22.11 (Raccoon), 22.11pre405560.2da64a81275`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.11.0`
 - channels(root): `"home-manager, nixos"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

Looks like the icon is not a square:
$ file /nix/store/f3jfvl215b5szs0408vxnqmhfyvb6a2j-nixos-icons-2021-02-24/share/icons/hicolor/512x512/apps/nix-snowflake.png
/nix/store/f3jfvl215b5szs0408vxnqmhfyvb6a2j-nixos-icons-2021-02-24/share/icons/hicolor/512x512/apps/nix-snowflake.png: PNG image data, 512 x 444, 16-bit/color RGBA, non-interlaced

And GNOME Shell assumes icons are square.
[Icon theming spec](https://specifications.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html does not really say that icons must be square but there is only a single size parameter so I would not be surprised if more apps make this assumption.


'cs' failes to execute with error message 'cs: cannot execute binary file', even after a reinstall

'cs' failed to run.  worked two days ago.  removed it and re-installed with 'coursier install cs'.  still failed to run with the same error.  this is under fedora linux v36 (completely up-to-date).

I am also seeing this on an aarch64 Fedora VM.
# uname -a
Linux Fedora 5.18.15-200.fc36.aarch64 #1 SMP PREEMPT_DYNAMIC Sun Jul 31 21:12:19 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux

Yeah, same for me on fedora x86 arch.
Both cs and scala-cli fail with cannot execute binary file.  Everything else in bin is fine (including .cs.aux and .scala-cli.aux).
Just in case the answer is something silly in the first few lines:
head cs | hexdump -C:

00000000  23 21 2f 75 73 72 2f 62  69 6e 2f 65 6e 76 20 73  |#!/usr/bin/env s|
00000010  68 0a 65 78 65 63 20 22  24 28 63 64 20 22 24 28  |h.exec "$(cd "$(|
00000020  64 69 72 6e 61 6d 65 20  22 24 30 22 29 22 3b 20  |dirname "$0")"; |
00000030  70 77 64 29 2f 2e 63 73  2e 61 75 78 22 20 22 24  |pwd)/.cs.aux" "$|
00000040  40 22 0a 50 4b 03 04 14  00 08 08 08 00 2c b9 4e  |@".PK........,.N|
00000050  55 00 00 00 00 00 00 00  00 00 00 00 00 1b 00 09  |U...............|
00000060  00 4d 45 54 41 2d 49 4e  46 2f 63 6f 75 72 73 69  |.META-INF/coursi|
00000070  65 72 2f 69 6e 66 6f 2e  6a 73 6f 6e 55 54 05 00  |er/info.jsonUT..|
00000080  01 75 32 4a 63 b5 93 cb  6a c3 30 10 45 f7 f9 8a  |.u2Jc...j.0.E...|
00000090  60 b2 28 b4 b2 9b b4 84  e2 65 d7 85 42 29 dd 94  |`.(......e..B)..|
000000a0  50 26 f2 c4 1e 90 25 21  c9 ce c3 f8 df 2b bf 9a  |P&....%!.....+..|
000000b0  34 6d 20 8b 64 65 79 34  be 67 ae 75 55 8d c6 e3  |4m .dey4.g.uU...|
000000c0  c0 a0 56 96 9c 32 84 36  88 c7 9f be e6 ab 1c a5  |..V..2.6........|
000000d0  33 20 82 bb ee d5 6d 35  5a 58 61 4c e5 96 19 14  |3 ....m5ZXaL....|

I also have the same issue on Fedora 36. After updating fedora, cs failed to run.

Same here with
Linux fth-li 5.19.15-201.fc36.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Oct 13 18:58:38 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

the issue is though not just with cs but also with bloop and scala-cli (probably more but not installed on my system). In all those cases an additional .name.aux is provided e.g. .bloop.aux which do work to execute.

~/.local/share/coursier/bin/cs starts with the actual shell script followed by a zipped META-INF directory. This is a problem if sh is bash. While dash or zsh (i.e. dash ~/.local/share/coursier/bin/cs) can start cs, bash can not because of the zipped META-INF directory blob.
Possible solution on coursier end for this would be to remove this binary blob as it seems unused to me.
All users here are running Fedora. This makes it look like the cause for this could be a Fedora patch to bash.

Possible solution on coursier end for this would be to remove this binary blob as it seems unused to me.
All users here are running Fedora. This makes it look like the cause for this could be a Fedora patch to bash.

FWIW, I have been running with cs symlinked to .cs.aux (same for scala-cli -> .scala-cli.aux and bloop -> .bloop.aux) with no problems whatsoever.

Because that what the script actually does:
#!/usr/bin/env sh
exec "$(cd "$(dirname "$0")"; pwd)/.cs.aux" "$@"

shebang, obvious
A compatible why to express $(readlink "$(dirname "$0")"), i.e. get the realpath of the directory containing cs, actually ~/.local/share/coursier/bin.
exec ~/.local/share/coursier/bin/.cs.aux "$@"

Thanks for that, I meant to corroborate your suggestion that the blob can be removed.
If there is anything in .cs.aux internals that for some reason expects cs to contain that zip, I have not experienced any ill effects from it.

It appears the zip in the shebang scripts is used by cs update.
If anyone applied the previously mentioned symlink workaround, they would need to do a fresh cs install <package> and then reapply the symlink hack to update those packages (such as bloop) that fail with cannot execute binary file on fedora.

so I guess 75 bytes long is the magic number?

@nafg Thank you for your investigation! The problem seems to be hard to reproduce outside of fedora. Did you find a fix that we could apply here? Is there a way to include a test for that in the CI?

I would have played with an hexeditor to find out more but I'm no longer able to reproduce. Maybe the update to Fedora 37 fixed it for me.

I am on fedora 37 and it's working now. But I think I already was when I last posted. So I don't think that's what changed.
In fact the files now have much longer headers. Before it was just something like
#!/usr/bin/env sh

exec "$(cd "$(dirname "$0")"; pwd)/.cs.aux" "$@"

but now it's a much longer script. It looks like this code: https://github.com/coursier/coursier/blob/main/modules/launcher/src/main/scala/coursier/launcher/Preamble.scala#L138-L160
That certainly puts it over 75 bytes!

@nafg Thank you for your investigation! The problem seems to be hard to reproduce outside of fedora. Did you find a fix that we could apply here? Is there a way to include a test for that in the CI?

Not sure what wasn't clear. The fix is to make sure the preamble is more than 75 bytes. I don't know why the preamble changed for me though (see my previous comment)

@nafg I still have the short script at the top.

Also the file you linked hasn't changed since "Aug 16".
To me it seems the relevant code is here.

Re testing, I couldn't reproduce in Docker, so it would need a fedora VM.

Good idea. I can reproduce using registry.fedoraproject.org/fedora:36.

Currently the problem seems to be a null-byte in the first 80-bytes.


Fix inadvertently merging location entities

Two locations that are less than 0.1 degree apart in either coordinate
can be quite far (for latitude, 0.1 degrees is about 7 miles).
Instead, we should compare a lot more strictly, so we only catch
floating point rounding errors (due to roundtripping from JSON/strings
in various places) and not locations that are actually distinct.

Pull Request Test Coverage Report for Build 1269

2 of 2 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.001%) to 77.226%

Totals

Change from base Build 1268:
0.001%

Covered Lines:
10004

Relevant Lines:
12450

💛  - Coveralls

== for locations (aka locationEqual) is intentionally loose because otherwise "restaurants in Palo Alto" gives you only a tiny radius, and it's even worse for "restaurants in San Francisco". We can reduce the radius to 1km perhaps.
(Long term, we should have a new design for locations that accounts for radius and/or administrative boundaries given the precision of the user's specification, so you can also ask for "restaurants on University Avenue" or "restaurants in Santa Clara County". I'm not sure when that will happen)

== for locations (aka locationEqual) is intentionally loose because otherwise "restaurants in Palo Alto" gives you only a tiny radius, and it's even worse for "restaurants in San Francisco". We can reduce the radius to 1km perhaps.
(Long term, we should have a new design for locations that accounts for radius and/or administrative boundaries given the precision of the user's specification, so you can also ask for "restaurants on University Avenue" or "restaurants in Santa Clara County". I'm not sure when that will happen)

I see, let's keep it as 10km then. We should create an issue for this, once we do rules for home assistant, this is essential


⚠ Bofrost.at has degraded performance

In e95c76c, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 814 ms

Resolved: Bofrost.at performance has improved in 2267a40.


[WIP] aie2xclbin fix

Fix for bug introduced in https://github.com/nod-ai/iree-amd-aie/commit/7d530aff2146bc5d73e6b051d65f45757aa6c3b2 I need to do some additional work on this, like adding a test.
The weird and worrying thing is that the e2e numerical tests passed for me locally when I gave an invalid path to peano -- nothing was being compiled yet the numerical test passed.

The weird and worrying thing is that the e2e numerical tests passed for me locally when I gave an invalid path to peano -- nothing was being compiled yet the numerical test passed

Were you manually setting tempdir? If so, it's because the workdir isn't cleared and somewhere (haven't found it yet) there's some optimization that reuses existing (ie stale from a previous successful run, in your case) object files.

The weird and worrying thing is that the e2e numerical tests passed for me locally when I gave an invalid path to peano -- nothing was being compiled yet the numerical test passed

Were you manually setting tempdir? If so, it's because the workdir isn't cleared and somewhere (haven't found it yet) there's some optimization that reuses existing (ie stale from a previous successful run, in your case) object files.

Yes, that must be it 🧠


Example Application: Use of undocumented zephyr/module.yml in application folder

In the current example application (https://github.com/zephyrproject-rtos/example-application) there is a zephyr folder with a module.yml file, which enables the use of the device trees, Kconfigs etc. just like in a module.
I cannot find any mention of this mechanism anywhere in the documentation. It might very well be that I haven't fully understood west and its magic, but I really can't find where it says that this is allowed and working inside an application folder of a T2 topology. Or if not specific to the application folder, how it is setup in general.

Here you go:
https://docs.zephyrproject.org/latest/develop/modules.html#integrate-modules-in-zephyr-build-system

I've read this section multiple times and it does not tell me how the module discovery process works. There is this section https://docs.zephyrproject.org/latest/develop/modules.html#module-inclusion which explains it somewhat, but not completely.
My questions is: How do modules get found? Is it with the west.yml and if so, how does the manifest repository of the example-application get added to the list? Is it per directory and if so, why doesn't it recognize my dummy module which satisfies the conditions in the link above and how does it find the modules in the modules folder? I'm really at a loss to how it exactly works. I'm very certain I would find a way to do it, but I want to know all the ways and then select the best one depending on my use case.
In essence I'm asking how ZEPHYR_MODULES gets constructed and where in the documentation I can find this.

@SkryptX you seem to have come to the right conclusions yourself. The module discovery logic, including the manifest repository as a module (eg. example-application) is located here:
https://github.com/zephyrproject-rtos/zephyr/blob/main/cmake/modules/zephyr_module.cmake
which in turn invokes this script here:
https://github.com/zephyrproject-rtos/zephyr/blob/main/scripts/zephyr_module.py
and that script uses the west APIs (eg. Manifest.get_projects() and others) to list all west projects and look for a zephyr/module.yml in them.

@SkryptX we'd be very grateful if you could send a Pull Request with the missing documentation bits, we always welcome contributions! cc @tejlmand.


1.9-rc0 cherry-pick request: Keras symbol visibility, and Dataset evaluation fixes.

The first two commits fix visibility for various Keras symbols.
The last one fixes Dataset-evaluation in eager mode (was only running 1 step regardless of steps-argument).
cl/199161696
cl/199198086
cl/199645638

This is not in master, better @yifeif handle this.

This is not in master, better @yifeif handle this.

I made this with the cherry-picker tool, will that let you cherry-pick something that isn't in master?
All three of the source commits are in master now:
cl/199161696 -->  https://github.com/tensorflow/tensorflow/commit/5f315a292a65bd898a736cd305152f348846718a
cl/199198086 -->
https://github.com/tensorflow/tensorflow/commit/6b2a088fb263af2428ca672a62088646a7f54219
cl/199645638 -->
https://github.com/tensorflow/tensorflow/commit/086d96aea3d6b3272b2746359e13f4156072ff8b

No, the cherrypicker.py util script should only be able to cherrypick commits from github master.

Thanks Mike.


Problem opening folder of Chinese character in name

When open a folder of Chinese named,
get failed and showing an URL-encoded folder name

Just a simply refresh will get corrected

Have tested on Android+Chrome and iOS+Firefox 😊

Hi there @hmua! I know it's quite late but I'm just starting to work through the backlog here in my free time. Can you provide a public repo so I can reproduce this issue and work on a fix?

Finally got around to this. The link you provided appears to be working. Hopefully better late than never :)