Memory Engine & StorableObjects

do not merge
One of the issues I have with memory engine is that the serialization and deserialization of StorableObjects wasn't happening. I was trying to build a library that has the ability to do flash storage (https://github.com/neovintage/kemal-flash) but since those methods weren't being called the flash library wasn't behaving appropriately.
@sdogruyol @Thyra ==>
This is a work-in-progress PR but I'm posting this now because I've reached a roadblock with types. My type-foo isn't quite up to snuff yet. It seems when I go to unserialize the StorableObject the abstract class method keeps getting called instead of the one from the subclass. If either of you have ideas on this or the PR in general, let me know.

Firstly I want to second this, the memory engine should serialize and unserialize stored objects even though it seems like an unecessary detour at first sight.
Secondly: The abstract class method keeps getting called because you're calling it ;-). Line 10 in storable_object_converter.cr: hash[key] = StorableObject.unserialize(pull.read_string). StorableObject is always the abstract class itself, never any of its subclasses. The whole inheritance structure is only neccessary because of the virtual type we get from it. Honestly I can't think of a complete solution right now, though; we would have to somehow save the subclass along with the object and retrieve it again so we can call the right unserialize method (session.object could contain objects of different subclasses).
Unrelated thought: Wouldn't it be much easier to store the objects as serialized strings internally and only unserialize them on demand (i.e. when ?session.object("foobar") is called)? When I see StorableObjectConverter I get Java nightmares ;-). Just a thought, though, I'm not sure myself.

@Thyra Heh. StorableObject.unserialize is being called ;-)  What's giving me a problem is that I've used this pattern in both the Redis and File-based engines. Tests for both of them seemed to work for the unserialize method:
https://github.com/neovintage/kemal-session-redis/blob/master/spec/kemal-session-redis_spec.cr#L71-L89
https://github.com/neovintage/kemal-session-redis/blob/master/src/kemal-session-redis.cr#L9-L34
Unfortunately, I can't figure it out without changing the object methods themselves by passing the type (e.g. context.object("something", User)). Something is off somewhere. I also tried serializing and deserializing the objects on demand only to get the same errors with this implementation. I went with this implementation because in my kemal-flash lib I was using unserialize / serialize as a callback mechanism to know when I'm in another request.
The converter seems to be a pattern for JSON in crystal at large: https://github.com/crystal-lang/crystal/blob/b1416e2b4e53e08bcc6769b6908f2eacff8b5e0a/src/json/mapping.cr#L44

@Thyra
Ok I thought about this a bit more and I tried to come at this from a different angle. I would looking through the old PR that we originally merged and read through our comments. The comments after we merged the PR got me thinking: https://github.com/kemalcr/kemal-session/pull/13#issuecomment-269380353
Is it possible to make sure that serialization is taken care of if you require the "json" lib? So I wrote this proof of concept:
https://gist.github.com/neovintage/6ed5d7d53594454f331a9fc155eaccf4
The benefits of this implementation are that you can make almost any object a StorableObject. The Union type that's created for all of the StorableObject types should take care of the issues I saw earlier.
This is going to be a breaking change but since it seems StorableObject wasn't working properly from the beginning leads me to believe not enough people are using kemal-session. I think we'd be fine introducing this change. Now the proof of concept needs to be vetted throughout the rest of this lib to see if it'll still work. But I didn't want to get too far down this path if we weren't keen on merging it.

@neovintage I don't have time to really look at this in detail now, but it looks very promising to me! And we can't really leave the object storage unfinished and broken, so we'll have to find a solution one way or another – then why not this one?

@Thyra that works for me. Let me see if I can squeeze out some time to fix it.

@Thyra and @sdogruyol Check it out. I figured out a way to make storable object a module so that you can basically make any class a storable object.
I've already built this into a branch on the redis engine and wrote some test apps to make sure this works all the way through.
Looks like I need to test this against latest version of crystal. Check this out and let me know.

@neovintage this is brilliant. I also needed something like StoreableObject for Kemal::Context storage but in the end i couldn't find a way.

@Thyra any comments here? I'd like to clean up all of the kemal shards (session, session-file, redis, etc) cause I have my own projects that need updating.

LGTM 👍


bug: ion-datetime - setting min value limits pickable days when trasitioning to another month

Bug Report
Setting <ion-datetime> min attribute results in limitation of available  days when the max value transitions in the next month.
Ionic version:
[x] 4.12
Current behavior:
Available days are limited from min value  day to last day of the month.
Expected behavior:
Available days should include all days from min value day to last day of the month AND from first day of next month to max value day.
Steps to reproduce:

Add <ion-datetime> web component to any ionic project html view.
Set the value attribute to the last they of the current month.
Set the min attribute to 3 days before the date in value attribute.
Set the max attribute to 3 days after the date in value attribute.

Related code:
<ion-datetime min="2019-04-27T06:50:09.282Z" max="2019-05-03T06:50:09.282Z" value="2019-04-30T06:50:09.282Z"></ion-datetime>

Other information:

Ionic info:

Ionic:

   ionic (Ionic CLI)             : 4.12.0 (/usr/local/lib/node_modules/ionic)
   Ionic Framework               : @ionic/angular 4.3.0
   @angular-devkit/build-angular : 0.12.4
   @angular-devkit/schematics    : 7.2.4
   @angular/cli                  : 7.2.4
   @ionic/angular-toolkit        : 1.3.0

Cordova:

   cordova (Cordova CLI) : 8.1.2<EMAIL_ADDRESS>   Cordova Platforms     : android 7.1.4, ios 5.0.0
   Cordova Plugins       : cordova-plugin-ionic 5.3.0, cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 3.1.2, (and 12 other plugins)

System:

   ios-deploy : 1.9.4
   ios-sim    : 7.0.0
   NodeJS     : v11.12.0 (/usr/local/Cellar/node/11.12.0/bin/node)
   npm        : 6.7.0
   OS         : macOS Mojave
   Xcode      : Xcode 10.2.1 Build version 10E1001

Hi there,
Thanks for the issue! Can you clarify the issue you are seeing? I am unable to reproduce it.
I would expect that I have a range of dates from 2019-04-27 to 2019-05-03 to choose from. I would also expect that the datetime component defaults to 2019-04-30. This is what I am seeing from my end:

Thanks!

Ahh, I thought the days are displayed universally for all months and I didn't even bother to switch the months.
Closing and sorry for wasting your time.
Have a great week.
Alex.


Edit Qualifying Life Event Language

Removed extra cost explanation under Dental. Added qualifying life event language

@therebbie can you check links and merge if all looks good


Add new module: quote

https://github.com/the-vision/jarvis-telegram/wiki

Sir, i would like to work on this issue

@VibavariG Thanks for your interest but at a time in the same repo you can work on one issue only.

I would like to work on this, can you assign me this issue

@hritikpapa you can work now

@hritikpapa you can work now

thank you

@hritikpapa Are you working on it? If you have created PR, then please mention PR number in this issue or this issue number in your PR.

I don't think so I can work on this now, I recently got my drive crashed and since can't buy a new one to start again.
You can assign this issue to someone else.

@swapagarwal @TeAmP0is0N I would like to work on this issue. Please assign this to me as part of GSSoC'20. Also, please explain the feature for me to start working on it.


X is not a member of sf::Joystick

Good morning, i've got in issue with imgui-sfml
My error is
error: 'X' is not a member of 'sf::Joystick'
  157 |   sf::Joystick::Axis xAxis{sf::Joystick::X};
      |                                          ^
C:\bones\bones_source\src\include\imgui\imgui-SFML.cpp:157:42: note: suggested alternatives:
In file included from C:\bones\bones_source\src\include\imgui\imgui-SFML.h:8,
                 from C:\bones\bones_source\src\include\imgui\imgui-SFML.cpp:1:
C:/bones/bones_source/src/include/SFML/include/SFML/Window/Joystick.hpp:56:5: note:   'sf::Joystick::Axis::X'
   56 |     X,    //!< The X axis
      |     ^
In file included from C:/bones/bones_source/src/include/SFML/include/SFML/Window/Event.hpp:33,
                 from C:/bones/bones_source/src/include/SFML/include/SFML/Window/WindowBase.inl:28,
                 from C:/bones/bones_source/src/include/SFML/include/SFML/Window/WindowBase.hpp:601,
                 from C:/bones/bones_source/src/include/SFML/include/SFML/Window/Window.hpp:32,
                 from C:/bones/bones_source/src/include/SFML/include/SFML/Graphics/RenderWindow.hpp:36,
                 from C:\bones\bones_source\src\include\imgui\imgui-SFML.cpp:8:
C:/bones/bones_source/src/include/SFML/include/SFML/Window/Keyboard.hpp:198:5: note:   'sf::Keyboard::Scan::X'
  198 |     X,            //!< Keyboard x and X key

...e.t.c.
Is that mean that i using wrong version of SFML or imgui-sfml, or is that some kind of other problem ?

Use https://github.com/SFML/imgui-sfml/tree/sfml3 branch if you're using SFML 3/SFML master.
@ChrisThrasher  - sfml3 branch should probably be merged into master to not cause confusion.

@ChrisThrasher - what about making "master" branch the default? It seems like most people won't care about SFML 2.6.1/"stable" these days, and those who do are more likely to read README, haha (but these days many people just clone the "default" branch and expect everything to work out of the box)

I was using 2.6.x branch for imgui-sfml
SFML 3.0.0
And ImGUI docking branch
Now i changed the SFML to 2.6.x branch, imgui-sfml to 2.6.x branch and imgui stay docking branch
but now i've got this error
C:\mingw64\bin\windres.exe: C:\\bones\\bones_build\\src\\include\\SFML\\src\\SFML\\System\\sfml-system.rc:35: syntax error
mingw32-make[2]: *** [src\include\SFML\src\SFML\System\CMakeFiles\sfml-system.dir\build.make:314: src/include/SFML/src/SFML/System/CMakeFiles/sfml-system.dir/sfml-system.rc.obj] Error 1
mingw32-make[1]: *** [CMakeFiles\Makefile2:501: src/include/SFML/src/SFML/System/CMakeFiles/sfml-system.dir/all] Error 2
mingw32-make: *** [makefile:135: all] Error 2

build.make:314 is
cd /d C:\bones\bones_build\src\include\SFML\src\SFML\System && C:\mingw64\bin\windres.exe -O coff $(RC_DEFINES) $(RC_INCLUDES) $(RC_FLAGS) C:\bones\bones_build\src\include\SFML\src\SFML\System\sfml-system.rc CMakeFiles\sfml-system.dir\sfml-system.rc.obj

if i try to open sfml-system.rc file it says
fatal error RC1015: cannot open include file 'winresrc.h'

i tried to just add winresrc.h file, but it doesn't helped
at makefile:135: all - is:
cd /d C:\bones\bones_build && $(MAKE) $(MAKESILENT) -f CMakeFiles\Makefile2 src/include/SFML/src/SFML/System/all

Doesn't look like ImGui-SFML problem to me, try to get simple SFML window to compile first.

@ChrisThrasher - what about making "master" branch the default?

This is what I always wanted to do so I'm happy to make this change.

@eliasdaler Yeah, you were right! This was a version compare issue, i'm switched back to the MSVC and remade all CMakeLists files and used FetchContent except of source files, thanks a lot, problem solved :)


Module Swapper: terraform-google- requirement

A few repos don't use the terraform-google- prefix.  E.g. terraform-dynamic-python-webapp, terraform-large-data-sharing-java-webapp
Expected to find repo name prefixed with terraform-google-. Got: terraform-dynamic-python-webapp
Expected to find repo name prefixed with terraform-google-. Got: terraform-large-data-sharing-java-webapp
https://github.com/GoogleCloudPlatform/cloud-foundation-toolkit/blob/420373f22d332767a7be2b252aa0dea28343fa3e/infra/module-swapper/cmd/swap.go#L88

FYI @bharathkkb

Hey @apeabody, I think this should now be fixed with  https://github.com/GoogleCloudPlatform/cloud-foundation-toolkit/pull/2056 downgrading this from an error- released in https://github.com/GoogleCloudPlatform/cloud-foundation-toolkit/pull/2059 and in the latest 1.18x dev tools image. I retried the lint run in that repo and it passed

Great! Yup, a run with dev-tools 1.18.4 looks good! :)


Order by FIELD() for mysql

Problem
There are some queries which aren't possible in Prisma so we use query raw. This is fine.
When we use queryRaw we lose some ease of use like include which nicely nests and maps all our objects. For me, this is a HUGE drawback as I can have some complex includes at times.
With this in mind, I tried to write a raw query, return the IDs  that match my results and then use prisma to query based on id: { in: [] } instead.
This is all possible but currently, the results are not in the same order the id list is in when input.
For instance:
// List of IDS from a raw query
[
  72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62,
  60, 58, 57, 56, 55, 54, 53, 52, 51, 50, 48,
  47, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36,
  35, 33, 31, 30, 29, 28, 27, 26, 25, 17, 11,
  10,  8,  7,  6,  5,  4,  2
]

// The prisma findMany object
{
  include: {
    authorPenName: true,
    user: { select: [Object] },
    arcs: { include: [Object] }
  },
  where: { id: { in: [Array] } }, // Passing in id: in []
  orderBy: {}
}

// The result ids
[
   2,  4,  5,  6,  7,
   8, 10, 11, 17, 25,
  26, 27
]

As you can see from above, the result ids are listed in a different order because of mysql.
Suggested solution
Give us a way to do FIELD(id, [...myIds])
As an example, running the following mysql query will feed the results out in the same order the ids are passed in:
select * from book where id in
(72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62)
order by
FIELD(id, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62)

Alternatives

Use query raw but have to manually query all related tables and create the mapping that prisma handles so elegantly.
Provide a way for us to intercept the query being built so we can inject our own SQL.

Additional context
For me, I'm just trying to achieve:
select
b.id
from
book as b
inner join arc as a on b.id = a.bookId
group by
b.id
order by a.createdDate asc;

but this idea could provide a solution for a lot of complex queries which Prisma doesn't handle because the final output would be the same.

I could really do with this feature!
Also +1 for intercepting the generated SQL to do a manual replacement, currently no API for this AFAIK...

i really want prisma support this feature, i have to use other library instead of prisma!

In other words @webnoob: Prisma does not guarantee where -> in to return the data in the same order as the supplied array of values, and you want to be able to somehow achieve this? And for MySQL the FIELD() function would be a good way to do that?

In other words @webnoob: Prisma does not guarantee where -> in to return the data in the same order as the supplied array of values, and you want to be able to somehow achieve this? And for MySQL the FIELD() function would be a good way to do that?

Sorry @janpio I didn't get a ping for this.
That is correct, yes.

This will reduce data loading when we have to take, skip just some rows.

We need this!


Remove the mess in the left lower corner

Man, did you see it? IT'S JUST TERRIFYING!!!

Yeah, fixed it.


Dead link.

From @k0nsl on July 8, 2016 23:1
The link in the project description returns a 404.
Copied from original issue: hacdias/filemanager-old#9

I know. It's "dead" because the new version of Caddy wasn't released yet. It should be released in a few weeks/days and then the link will be available. Thanks anyway :)
Edit: I added a parenthesis to the project description.

From @MSF-Jarvis on July 19, 2016 13:16
It's up, might wanna change it now

From @MSF-Jarvis on July 19, 2016 14:37
Don't, it's addictive.
On Jul 19, 2016 7:36 PM, "k0nsl"<EMAIL_ADDRESS>wrote:

That's great news. I am really excited to test it out :)
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/hacdias/caddy-filemanager/issues/9#issuecomment-233643636,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AMuuGhQPT_BhDEsdT3pk3RiUsrehpAsZks5qXNnggaJpZM4JIdtc
.

From @k0nsl on July 19, 2016 14:6
That's great news. I am really excited to test it out :)


[pgadmin4] allow custom volumes & volumeMounts

I'm currently in the process of moving all existing secrets to Hashicorp Vault and use the Vault CSI Provider to mount secrets as env vars. To do that I need to create a custom volume and mount. Unfortunately the existing templates only allows very limited mounts of configMap and secrets.
The CSI Provider needs to create a volume in a specific format, which isn't compatible with the way the current deployment template is set up:
volumes:
    - name: vault-db-creds
      csi:
        driver: 'secrets-store.csi.k8s.io'
        readOnly: true
        volumeAttributes:
          secretProviderClass: 'vault-db-creds'

Possible solutions
Add an option for extraVolumes in the values.yaml and the following block to the deployment template:
volumes:
    {{- if .Values.extraVolumes }}
        {{- .Values.extraVolumes | toYaml | nindent 8 }}
    {{- end }}

The same would be necessary for extraVolumeMounts since the current secretMount implementation doesn't allow for custom mountPaths.
I'd be willing to create a PR, if you're interested.
If you consider this out of scope, that's fine. I'd just like a response so I can decide if I want to fork or not. Thanks :)

All PRs are welcome for improvement, this looks like something more people would use. I am currently using vault myself, but a different approach then yours.
So yes, please go ahead and open a PR.


set_channel_types does not properly set the coil_type for eyetracking channels

Issue 1 (Originally posted in https://github.com/mne-tools/mne-python/pull/12744#issue-2425236972 ):

I am important eye tracking data from a tobii device (XDF format), and kept running into this issue when trying to set_channel_types:

KeyError: 0 (FIFFV_COIL_NONE)
After some digging, I found that there is a different function that I should call. With this PR I want to make this more obvious in the documentation. However, the above issue also points out that there is probably a bug when setting channel types for eye-tracking.

MWE
The code below fails because our use of set_channel_types does not set the coil_type for eyetracking channels:
import numpy as np
import mne

shape = (1, 100)
data = np.vstack([np.full(shape, 960), np.full(shape, 540), np.full(shape, 0)])

info = mne.create_info(
        ch_names=["xpos", "ypos", "pupil"],
        sfreq=100,
        ch_types="eeg"
    )
raw = mne.io.RawArray(data, info)
raw.set_channel_types(dict(xpos="eyegaze", ypos="eyegaze", pupil="pupil"))
epochs = mne.make_fixed_length_epochs(raw)

Stack Trace
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
Cell In[1], line 14
     12 raw = mne.io.RawArray(data, info)
     13 raw.set_channel_types(dict(xpos="eyegaze", ypos="eyegaze", pupil="pupil"))
---> 14 epochs = mne.make_fixed_length_epochs(raw)

File <decorator-gen-256>:12, in make_fixed_length_epochs(raw, duration, preload, reject_by_annotation, proj, overlap, id, verbose)

File ~/devel/repos/mne-python/mne/epochs.py:4967, in make_fixed_length_epochs(raw, duration, preload, reject_by_annotation, proj, overlap, id, verbose)
   4965 events = make_fixed_length_events(raw, id=id, duration=duration, overlap=overlap)
   4966 delta = 1.0 / raw.info["sfreq"]
-> 4967 return Epochs(
   4968     raw,
   4969     events,
   4970     event_id=[id],
   4971     tmin=0,
   4972     tmax=duration - delta,
   4973     baseline=None,
   4974     preload=preload,
   4975     reject_by_annotation=reject_by_annotation,
   4976     proj=proj,
   4977     verbose=verbose,
   4978 )

File <decorator-gen-247>:12, in __init__(self, raw, events, event_id, tmin, tmax, baseline, picks, preload, reject, flat, proj, decim, reject_tmin, reject_tmax, detrend, on_missing, reject_by_annotation, metadata, event_repeated, verbose)

File ~/devel/repos/mne-python/mne/epochs.py:3568, in Epochs.__init__(self, raw, events, event_id, tmin, tmax, baseline, picks, preload, reject, flat, proj, decim, reject_tmin, reject_tmax, detrend, on_missing, reject_by_annotation, metadata, event_repeated, verbose)
   3563     events, event_id, annotations = _events_from_annotations(
   3564         raw, events, event_id, annotations, on_missing
   3565     )
   3567 # call BaseEpochs constructor
-> 3568 super().__init__(
   3569     info,
   3570     None,
   3571     events,
   3572     event_id,
   3573     tmin,
   3574     tmax,
   3575     metadata=metadata,
   3576     baseline=baseline,
   3577     raw=raw,
   3578     picks=picks,
   3579     reject=reject,
   3580     flat=flat,
   3581     decim=decim,
   3582     reject_tmin=reject_tmin,
   3583     reject_tmax=reject_tmax,
   3584     detrend=detrend,
   3585     proj=proj,
   3586     on_missing=on_missing,
   3587     preload_at_end=preload,
   3588     event_repeated=event_repeated,
   3589     verbose=verbose,
   3590     raw_sfreq=raw_sfreq,
   3591     annotations=annotations,
   3592 )

File <decorator-gen-231>:12, in __init__(self, info, data, events, event_id, tmin, tmax, baseline, raw, picks, reject, flat, decim, reject_tmin, reject_tmax, detrend, proj, on_missing, preload_at_end, selection, drop_log, filename, metadata, event_repeated, raw_sfreq, annotations, verbose)

File ~/devel/repos/mne-python/mne/epochs.py:668, in BaseEpochs.__init__(***failed resolving arguments***)
    666 self.reject = None
    667 self.flat = None
--> 668 self._reject_setup(reject, flat)
    670 # do the rest
    671 valid_proj = [True, "delayed", False]

File ~/devel/repos/mne-python/mne/epochs.py:797, in BaseEpochs._reject_setup(self, reject, flat, allow_callable)
    795 def _reject_setup(self, reject, flat, *, allow_callable=False):
    796     """Set self._reject_time and self._channel_type_idx."""
--> 797     idx = channel_indices_by_type(self.info)
    798     reject = deepcopy(reject) if reject is not None else dict()
    799     flat = deepcopy(flat) if flat is not None else dict()

File ~/devel/repos/mne-python/mne/_fiff/pick.py:873, in channel_indices_by_type(info, picks)
    871 picks = _picks_to_idx(info, picks, none="all", exclude=(), allow_empty=True)
    872 for k in picks:
--> 873     ch_type = channel_type(info, k)
    874     for key in idx_by_type.keys():
    875         if ch_type == key:

File ~/devel/repos/mne-python/mne/_fiff/pick.py:255, in channel_type(info, idx)
    253 if first_kind in _second_rules:
    254     key, second_rule = _second_rules[first_kind]
--> 255     first_kind = second_rule[ch[key]]
    256 return first_kind

KeyError: 0 (FIFFV_COIL_NONE)

However the code below does work because mne.create_info properly sets the coil_type for all channels:
code
# Note that I do not use set_channel_types here

import numpy as np
import mne

shape = (1, 100)
data = np.vstack([np.full(shape, 960), np.full(shape, 540), np.full(shape, 0)])

info = mne.create_info(
        ch_names=["xpos", "ypos", "pupil"],
        sfreq=100,
        ch_types=["eyegaze", "eyegaze", "pupil"]
    )
raw = mne.io.RawArray(data, info)

epochs = mne.make_fixed_length_epochs(raw)

Issue 2
One work around to the issue above is to use set_channel_types_eyetrack, like so:
Code
import numpy as np
import mne

shape = (1, 100)
data = np.vstack([np.full(shape, 960), np.full(shape, 540), np.full(shape, 0)])

info = mne.create_info(
        ch_names=["xpos", "ypos", "pupil"],
        sfreq=100,
        ch_types=["eyegaze", "eyegaze", "pupil"]
    )

more_info = dict(
    xpos=("eyegaze", "px", "right", "x"),
    ypos=("eyegaze", "px", "right", "y"),
    pupil=("pupil", "au", "right"),
)

raw = mne.io.RawArray(data, info)
# This sets the coil types, loc array, etc.
mne.preprocessing.eyetracking.set_channel_types_eyetrack(raw, more_info)

epochs = mne.make_fixed_length_epochs(raw)

However I personally think that This function has drawbacks:

It is harder to find for users

It is more complex (even I have to re-read the docstring each time that I need to use it)

It can be redundant (I already specified the channel types in mne.create_info, now I need to specify them again?)

If we make sure set_channel_types properly sets the coil_type for eyetrack channels, then the only extra info set_channel_types_eyetrack adds is the loc array. Now I have to pass a complicated dict and re-set information that might already be correctly set (channel type, coil, unit) just to set the loc array.

Proposal
Maybe we can start with fixing issue Number 1, i.e. make sure that set_channel_types properly sets the coil_type for eyetracking channels. And then loop back to see if we can improve the API for setting other info for eyetracking channels, like the loc array, etc.

Thanks Scott, this perfectly summarizes the issues I was facing.

Maybe we can start with fixing issue Number 1, i.e. make sure that set_channel_types properly sets the coil_type for eyetracking channels

Sounds good, you up for a PR at some point @scott-huberty ?

Maybe we can start with fixing issue Number 1, i.e. make sure that set_channel_types properly sets the coil_type for eyetracking channels

Sounds good, you up for a PR at some point @scott-huberty ?

Yes, I have a backlog of eye-tracking related issues I need to get to 😅 Feel free to assign this to me.  I'll have time in August to submit some PR's.


Try to run python example via headless mode

Hi!
I successfully compiled CompoundRay on a Ubuntu 22.04 server.
As I am connecting to the server via ssh, I hope to run the python example in command line.
Simply run the viewpoint-experiment.py will result in error caused by no GUI environment:
GLFW Error 65544: X11: The DISPLAY environment variable is missing
Aborted (core dumped)

I will need to use CompoundRay through SSH, so I am wondering if there is any way to run it in headless mode.

Hi,
Yes, unfortunately CompoundRay can be tricky when it comes to SSH. This mostly comes from the specific setup used to allow for interoperability between the Cuda and GL ends of things. There are some work-arounds depending on your specific situation, however I'm sick at the moment so can't debug directly for a while.
In the meantime, if you try compiling with a different BUFFER_TYPE (see the GL interop error in the build page https://github.com/BrainsOnBoard/compound-ray/blob/master/docs/indepth-install-notes.md for values), you may find success.
As you're running Ubuntu server it's most likely that the GL side of things just can't find an X server to spawn a window in (which then the cuda side can't attach to), so one work-around can be to run a minimal X server (but again, success depends on a few variables), but I understand that might not be desirable. I'll have a poke around for a more robust solution when I'm less ill.

Blayze

Thanks for the reply!
I will try to solve this myself. If it is possible, can you tell me which codes are related to GUI environments?
Hope you recover soon!


Encapsulate MetricsExportPanel

Description
Fully encapsulate MetricsExportPanel.
This is a preliminary change to adopting EuiContextMenu for Actions [Save, EditView]
Issues Resolved
Check List

[ ] New functionality includes testing.

[X] All tests pass, including unit test, integration test and doctest

[ ] New functionality has been documented.

[ ] New functionality has javadoc added
[ ] New functionality has user manual doc added

[X] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Wrong branch named.  Cancelling.


#164 Schema isomorphism for products

New attempt at implementing schema isomorphism for product types. This PR contains refactoring of all CaseClassX schemas from case class to sealed trait.  The reason is increasing number of type parameters that we needed to support. Discussed in #373.
For example CaseClass2 is now a sealed trait with a bunch of fields like:
  sealed trait CaseClass2[A1, A2, Z] extends Record[Z] { self =>

    def field1: Field.WithFieldName[Z, Field1, A1]
    def field2: Field.WithFieldName[Z, Field2, A2]
    def construct: (A1, A2) => Z
    def annotations: Chunk[Any]

In addition every CaseClassX has FieldX, Terms and FieldNames
    type Field1 <: Singleton with String
    type Field2 <: Singleton with String

    type Terms = (Field1, A1) with (Field2, A2)

    type FieldNames = Field1 with Field2

FieldX represents singleton type of field name, AX is a type of the field.
Every CaseClassX has also companion object that defines apply and unapply methods so existing code that manually created record schemas or pattern matched on schemas can remain unchanged.
Macro derivation returns the following - so whoever wants, can take advantage of schema isomorphism
object CaseClass2 {
    type WithFields[F1 <: Singleton with String, F2 <: Singleton with String, A1, A2, Z] =
      CaseClass2[A1, A2, Z] {
        type Field1 = F1
        type Field2 = F2
      }
}

There is still some work left to do:

scala 3 macro derivation returns just normal CaseClass, not the auxiliary type WithFields
GenericRecord for classes of bigger arity than 22 also does not return schema with correct field names.

Still as this was big refactoring for record schemas, I was hoping we could already merge existing work in, and do the rest in the following PRs - I'll probably need little help with the above 2 points.

@sviezypan I am ready to merge this quickly. There are a few conflicts due to other merges, can you please fix?

@sviezypan There is one small change that I would like you to make before merging:
I see the lambdas are called get0, field01, etc., to avoid clashing with the methods. However, if you change the definition in the trait from a method to a lambda, then they can have the same name.
For example, change Field get from:
def get(s: S): A

to:
val get: S => A

This will allow us to use the same names, which improves the usability of the library because you don't have to remember the fields have a different name.

hey @jdegoes, these conflicting fields are already defined as lambdas in traits.
def get0: R => A
def set0: (R, A) => R

To mimic your example, I tried to change def to val and renamed get0/set0 to get/set. It compiles but I am getting warnings
value get does nothing other than call itself recursively
value set does nothing other than call itself recursively

I believe this is not just a bogus message, because in tests the value of get and set lambdas in Field are null after macro derivation (tests are failing with NPE). So I assume we are calling apply with the correct values, they are just not propagated to the body when we create Field
    def apply[R, A](
      ....
      get: R => A,
      set: (R, A) => R
    ): Field[R, A] = new Field[R, A] {

      // other code
      val get: R => A               = get
      val set: (R, A) => R          = set
    }

@sviezypan Try this:
    def apply[R, A](
      ....
      get0: R => A,
      set0: (R, A) => R
    ): Field[R, A] = new Field[R, A] {

      // other code
      val get: R => A               = get0
      val set: (R, A) => R          = set0
    }

@jdegoes this is how its done right now. get0 or 'field0' names are only parameters of apply method. Lambdas in traits are called get and field.

@sviezypan Fantastic! One small conflict in DeriveSchemaSpec, and then good to merge!


[Feature] GCP - Terraform - CodeGen single node using docker compose

Priority
Undecided
OS type
Ubuntu
Hardware type
Xeon-EMR
Running nodes
Single Node
Description
Develop Intel Optimized Cloud Module for Terraform and Ansible to automate the deployment.

Please assign to @lucasmelogithub


Add UID field to Organisation

Adds a UID field to the Organisation model and factory
Will be exposed on the organisation endpoints instead of using standard DB ID fields

Small comment, otherwise :shipit:


feat(tab): add 'template-url' parameter to uib-tab

Added ability to specify a custom template url for tab component.
Added associated test.
This resolves issue #5405

Tabset could also use this feature

And needs docs.

LGTM


pyspec-SSZ: lists-rework (enable static generalized indices) + fully python class based now.

Not yet done:

Making it work with tests
Any SSZ partial related things
Modifying the phase 0 spec to add explicit lists

print(Vector[uint8, 7]())
print(Vector[uint8, 7](uint8(i) for i in range(7)))
print(List[uint8, 128](uint8(1), uint8(2), uint8(3)))

BigVector = Vector[uint8, 64]
foo = BigVector()
foo[3] = uint8(123)
print(foo)

class Foobar(Container):
    a: uint8
    b: uint32

x = Foobar()
print(x)

y = Bytes[123](b"foobar")
print(y)

print(BytesN[3](b"yay"))
print(BytesN[8](i ^ 0xa0 for i in range(8)))

out:

print(Vector[uint8, 7]())
print(Vector[uint8, 7](uint8(i) for i in range(7)))
print(List[uint8, 128](uint8(1), uint8(2), uint8(3)))

BigVector = Vector[uint8, 64]
foo = BigVector()
foo[3] = uint8(123)
print(foo)

class Foobar(Container):
    a: uint8
    b: uint32

x = Foobar()
print(x)

y = Bytes[123](b"foobar")
print(y)

print(BytesN[3](b"yay"))
print(BytesN[8](i ^ 0xa0 for i in range(8)))

Also:

can't instantiate a type with wrong amount of params or none at all
typ.default() is a thing now :)
everything can be checked with issubclass
easily declare parametrized type properties (just 3 clean lines to define/override a metaclass)

test output for new merkleization:

def hash(v):
    return f"h({v})"

zerohashes = [f"Z({i})" for i in range(0, 32)]

... merkleization

for i in range(20):
    print(merkleize_chunks([f"{v}" for v in range(i)], 32))

h(h(h(h(h(Z(0)Z(0))Z(1))Z(2))Z(3))Z(4))
h(h(h(h(h(0Z(0))Z(1))Z(2))Z(3))Z(4))
h(h(h(h(h(01)Z(1))Z(2))Z(3))Z(4))
h(h(h(h(h(01)h(2Z(0)))Z(2))Z(3))Z(4))
h(h(h(h(h(01)h(23))Z(2))Z(3))Z(4))
h(h(h(h(h(01)h(23))h(h(4Z(0))Z(1)))Z(3))Z(4))
h(h(h(h(h(01)h(23))h(h(45)h(Z(0)Z(0))))Z(3))Z(4))
h(h(h(h(h(01)h(23))h(h(45)h(6Z(0))))Z(3))Z(4))
h(h(h(h(h(01)h(23))h(h(45)h(67)))Z(3))Z(4))
h(h(h(h(h(01)h(23))h(h(45)h(67)))h(h(h(8Z(0))Z(1))Z(2)))Z(4))
h(h(h(h(h(01)h(23))h(h(45)h(67)))h(h(h(89)h(Z(0)Z(0)))Z(2)))Z(4))
h(h(h(h(h(01)h(23))h(h(45)h(67)))h(h(h(89)h(10Z(0)))Z(2)))Z(4))
h(h(h(h(h(01)h(23))h(h(45)h(67)))h(h(h(89)h(1011))h(h(Z(0)Z(0))Z(1))))Z(4))
h(h(h(h(h(01)h(23))h(h(45)h(67)))h(h(h(89)h(1011))h(h(12Z(0))Z(1))))Z(4))
h(h(h(h(h(01)h(23))h(h(45)h(67)))h(h(h(89)h(1011))h(h(1213)h(Z(0)Z(0)))))Z(4))
h(h(h(h(h(01)h(23))h(h(45)h(67)))h(h(h(89)h(1011))h(h(1213)h(14Z(0)))))Z(4))
h(h(h(h(h(01)h(23))h(h(45)h(67)))h(h(h(89)h(1011))h(h(1213)h(1415))))Z(4))
h(h(h(h(h(01)h(23))h(h(45)h(67)))h(h(h(89)h(1011))h(h(1213)h(1415))))h(h(h(h(16Z(0))Z(1))Z(2))Z(3)))
h(h(h(h(h(01)h(23))h(h(45)h(67)))h(h(h(89)h(1011))h(h(1213)h(1415))))h(h(h(h(1617)h(Z(0)Z(0)))Z(2))Z(3)))
h(h(h(h(h(01)h(23))h(h(45)h(67)))h(h(h(89)h(1011))h(h(1213)h(1415))))h(h(h(h(1617)h(18Z(0)))Z(2))Z(3)))

@vbuterin Can I get a final review before updating the usages of these ssz types everywhere? (and fixing whatever small bugs I can find along the way)

updated spec builder to handle container field dependencies of new style types
implemented tests for typing + ssz implementation, new ssz seems to be working
blocker: NewType doesn't type check. Need proper classes to declare element types and field types. Since a NewType around an int isn't a subclass of SSZType, or has any default value. I know @hwwhww is implementing replacement of newtypes with classes. If we get that merged, we can continue this PR using those class based declarations.

[x] Spec builder updated to deal with new types, cleanly handle dependencies
[x] merged in dev, no conflicts anymore (thx @hwwhww for mypy PR)
[x] conforms fully to mypy and flake8 linting
[x] phase-0 compiles (tests start, crash on phase-0)
[ ] phase-1 compiles. Todo: need to assign lengths to list.
[ ] run tests, see if test code needs to adapt new types somewhere
[ ] double check ssz serialization behavior by comparing ssz-static generator output with ssz-static output on Dev. (disabling hash-tree-root, since that behavior changed)
[ ] merge

Rebased on dev branch to minimize change-set. Still a lot, here's an overview:

Lists have a "length" now. But artificial, serialization is still the same. It's a limit imposed on lists, and padded to (virtually) when doing hash-tree-root. The result is that we have simple balanced binary trees with fixed depth everywhere: we can index everything we like with static generalized indices! This should enable the SSZ partials to be simple and consistent.
All (in-use) SSZ types are defined by pyspec now. No edge-case prone half-python half-ssz. No typing.NewType or typing.List anymore, or double types (values having a class, and types being passed around). It's very well-defined now:

Types in SSZ are instances of SSZType (python metaclass). Such types are subclasses of SSZValue (also an instance of SSZType)
Basic types in SSZ are instances of BasicType, which is a subclass of SSZType.

Basic types: uint, uint8/16/32/64/128/256, Bit. And uint8 has a byte alias.

Non-basic types are a Series, you can get an iterator to go through their data. Simplifies serialization.
For all SSZ types, you can simply call .fixed_length() to check if it's fixed length.
Vector and List are subclasses of BaseList, which is both a subclass of list and Elements
BytesN and Bytes are subclasses of BaseBytes, which is both a subclass of bytes and Elements
All these Elements subclasses share the unified type information from their type ElementsType. This enables you to get SSZ information about such type easily: typ.elem_type and typ.length. For Bytes/BytesN, elem_type is always byte.
These element subclasses can be parametrized, to fill these ElementsType properties in order of declaration. These params are type checked. So one can't create a Vector[NonSSZClass, 123]. The element type has to be an instance of SSZType.

If we like later, the parametrization code is easily re-used through inheritance of ParamsBase (makes instantiation of bare unparametrized types raise an exception) and ParamsType (fills the whatever non-empty attributes a type has declared in annotations with a parameter).

SSZ defaults are a lot cleaner now. Just call typ.default() to get a default instance of a SSZ type.
There is coercion of integers, bytes, etc. But only when:

same size uint
from default python types to whatever type it expects. (Types will check bounds of values!)

For safety (and non-python readers), negative index lookups are disabled, but there's a .last() for the most common use case.
You can subclass or alias BytesN[100] as Bytes100. Common ones are already provided: 4, 32, 48, 96.
Recently introduced spec types like Hash are simply a subclass of Bytes32. Fully compatible with mypy and the SSZ typing.

Other changes:

spec builder:

cleans up re-initialization code of SSZ, to not make linting difficult to debug (remove comments to avoid line-length problems with higher than expected indentation)
clean up dependency checking in type-ordering
remove (now) unused parts

Add some tests for SSZ types and implementation. Still need to go through comparison of ssz_static output with dev branch
Merkleization is implemented differently,  but same effective behavior. To do padding of giant-limit lists effectively, merkleization needs to handle the zeroes as virtual, and just merge in whatever order zero-hash where needed. Also more compatible with future sparse-merkleization behavior
Updated SSZ usages:

randomization of SSZ values (used by ssz-static generator to create instances with random contents)
decoding/encoding of SSZ values (used for spec-test output/generators/debugging)
Fuzzing SSZ util: need to translate between py-ssz type and pyspec. (we use their decoder, since that SSZ direction is not implemented in the pyspec and more efficient for fuzzing)

Really close to passing all tests now. Also found two data-type issues with the new ssz: signature being used as bytes32  in a custody test, and the deposit-index test being invalid now that DepositData has no index (is that being re-introduced?)

Note that I added tests for SSZ typing, hence netto more than 300 new lines. Non-testing code decreased however :tada:

Yay, all tests pass with new SSZ. I'll double check the ssz_static behavior, and then we can technically merge.
Few points to address with help from others:

Phase 1 spec needs list length limits, they are PLACEHOLDER now.
Phase 1 test helpers has a 32-byte mask that is filled with a signature (96 bytes). I just sliced it. @CarlBeek Can you check, and fix if necessary?
Deposit-index test is commented for now, @JustinDrake Are we putting deposit-index back in or not?
Both specs could improve type checking a bit. We have a typing.List ssz_typing.List name collision. However, using tuples and sets is both more safe (tuple immutability) and more documenting (unordered output with sets). @djrtwo Can you do some final type hint polishing, based on your previous review?

Are we putting deposit-index back in or not?

No deposit index in DepositData. (It only helps to have it in the Deposit log.)

Quick note before merging: this PR changes hash-tree-root for lists. So that means clients will need to update their SSZ implementation for new hash-tree-root (lists virtually padded to their limit during merkleization). Do we want that in spec-freeze? I suppose we do, but maybe we want to do one final release of test-vectors (0.7.2/3) with the old SSZ, for clients to work on later?

Actually I approved too fast. Would be great to have some tests for merkle minimal (tests_merkle_minimal.py?)

Small underflow problem (incorrectly trying to attest pre-genesis slot) in finality tests. slot_to_attest = post_state.slot - spec.MIN_ATTESTATION_INCLUSION_DELAY + 1 CI is otherwise fine. Will resolve later.

Phase 1 test helpers has a 32-byte mask that is filled with a signature (96 bytes). I just sliced it. @CarlBeek Can you check, and fix if necessary?

Looks good to me! The purpose of the mask is to hide the hide the secret and to do this, it only needs to be 32 random bytes.

Rationale for Set + Sequence:

We make List and Vector as SSZ-ONLY
We make Sequence and Set LOGIC-ONLY.

Very minimal on data types, with two opposing ends:
Sequence encompasses both List and Vector, and list (python). We use this to express that an input/output has an order that should be maintained for spec conformance. It supports lookups by index, and getting the length.
Set is a special case, where we describe that elements can be any order, as long as they are unique in the collection.

We may want to introduce a custom OrderedSet, to clean up typing:

In many places, we want to express we expect unique elements
But we also like to give them an ordered iteration; keep indices in their natural order.
For now we use Sequence instead, and don't express the uniqueness, since it is guaranteed anyway, because these ordered sets of indices are derived from the state registry.

Ok, PR mostly ready, summary of last TODOs:

[ ] Review naming of "Bit", possibly adapt SSZ, or make it clear in spec that a "Bit" is a SSZ bool. See https://github.com/ethereum/eth2.0-specs/pull/1180#discussion_r296321754
[ ] As per suggestion from Hww add tests for new merkleization. Already verified it roughly, but tests would be good: https://github.com/ethereum/eth2.0-specs/pull/1180#issuecomment-502373800
[ ] Verify ssz behavior by comparing ssz_static generator output, for serialization at least (hash-tree-root-changes).

Verified that:

objects of fixed-size have same hash-tree-root and serialization as in the dev branch
objects of variable size:

have same serialization (up to point where RNG changes due to var. length limiting, see below)
different hash-tree-root due to limit on lists
The RNG diverges when the ssz_static generator passes transfers (limited to 0); it generates different values, since bigger are simply not allowed within the list-limit. So I couldn't compare the full data, but what I could compare matched expectations.

And we've tests for the new merkleization now, see test_libs/pyspec/eth2spec/utils/test_merkle_minimal.py

Also, this PR introduces 230+59+119=408 lines of ssz/merkleization test-code, and includes a bunch of fixes + updated tests for finalization (thanks @djrtwo). I'm happy we are actually reducing lines in the spec util code, while improving in style and tests :tada:


Adds CI

Towards https://github.com/giantswarm/giantswarm/issues/10428

Going with a ping, there's nothing controversial here


Explore frontend mirroring options

Look for a decentralized service that can mirror the current frontend. See if Fleek is still the best solution out there. Look for viable alternatives or solutions with robust performance and security features.

I have things setup in Fleek. The build is timing out though


cmake error

DescCMake Error at /opt/ros/noetic/share/catkin/cmake/empy.cmake:30 (message):
Unable to find either executable 'empy' or Python module 'em'...  try
installing the package 'python3-empy'ribe the bug
When I paste the code catkin_make_isolated, I got the error on top, I download the python3-empy but it didn't work. How can I fix this problem?

Hi,
This is supporting software issue and outside the scope of this repo. You should find a way to install empy for your setup.

Hi

Hi
You should enter catkin _ make -DPYTHON _ EXECUTABLE = / usr / bin / python3
The conda environment conflicts with the python environment

Hi，i find this solution
catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3


pkg/snet: support URI style UDPAddr encoding

Support the URI style encoding of a SCION UDP address during parsing as described here: proposals/uri
The following encodings of an UDP address are now supported:

[1-ff00:0:110,<IP_ADDRESS>]:3000
[1-ff00:0:110,::1]:3000
[1-ff00:0:110,fe::1%eth1]:3000

The other encodings are deprecated and will be removed eventually.

This change is

The linter is failing here because we use a relatively old version of golangci-lint, which does not support go-1.18. Without investigating this thoroughly, I suspect that this now fails because we're using net/netip for the first time. I'll create a separate pull request to update golangci-lint, then this should work.

The lint issue is fixed by #4269.


Remove sshagent management methods from InstallTools

If they're not used during installation, they shouldn't be there.

not sure they cannot be used during bootstrap?
because we can use them during an install, lets look at pro & con

covered in https://github.com/Jumpscale/core9/issues/3


[Event Request] Report 5753 - OnBeforeUpdateReceiptHeaderStatus

Please can you add event OnBeforeUpdateReceiptHeaderStatus to function UpdateReceiptHeaderStatus in Report 5753 Get Source Documents
    local procedure UpdateReceiptHeaderStatus()
    begin
        // <<New
        OnBeforeUpdateReceiptHeaderStatus(WhseReceiptHeader);
        // >> New
        with WhseReceiptHeader do begin
            if "No." = '' then
                exit;
            Validate("Document Status", GetHeaderStatus(0));
            Modify(true);
        end;
    end;

    // << New
    [IntegrationEvent(false, false)]
    local procedure OnBeforeUpdateReceiptHeaderStatus(var WhseReceiptHeader: Record "Warehouse Receipt Header");
    begin
    end;
    // >> New

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


Add flat map

Codecov Report

Merging #4 (9f9b547) into main (9f6c8f0) will decrease coverage by 72.03%.
The diff coverage is 0.00%.

:exclamation: Current head 9f9b547 differs from pull request most recent head bc4dd96. Consider uploading reports for the commit bc4dd96 to get more accurate results

@@            Coverage Diff             @@
##             main      #4       +/-   ##
==========================================
- Coverage   72.03%   0.00%   -72.04%
==========================================
  Files          13      16        +3
  Lines         472     529       +57
  Branches      225     253       +28
==========================================
- Hits          340       0      -340
- Misses        120     529      +409
+ Partials       12       0       -12

Flag
Coverage Δ

Linux
0.00% <0.00%> (-39.66%)
:arrow_down:

Windows
?

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

include/lefticus/tools/flat_map_adapter.hpp
0.00% <0.00%> (ø)

include/lefticus/tools/simple_stack_string.hpp
0.00% <0.00%> (-41.56%)
:arrow_down:

include/lefticus/tools/simple_stack_vector.hpp
0.00% <0.00%> (ø)

include/lefticus/tools/static_views.hpp
0.00% <0.00%> (ø)

test/consteval_invoke.cpp
0.00% <0.00%> (-100.00%)
:arrow_down:

test/curry_tests.cpp
0.00% <0.00%> (-100.00%)
:arrow_down:

test/flat_map_tests.cpp
0.00% <0.00%> (ø)

test/lambda_coroutine_tests.cpp
0.00% <0.00%> (ø)

test/np_tests.cpp
0.00% <0.00%> (-100.00%)
:arrow_down:

test/simple_stack_string_tests.cpp
0.00% <0.00%> (-90.99%)
:arrow_down:

... and 16 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 9f6c8f0...bc4dd96. Read the comment docs.


Can't resolve 'crypto'

Getting this using latest:
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
        - add a fallback 'resolve.fallback: { "crypto": require.resolve("crypto-browserify") }'
        - install 'crypto-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
        resolve.fallback: { "crypto": false }

I tried the crypto:false method and nothing changed.

I am having the same issue in my environment.

@developdeez have you found a solution for this?

Please use polyfills https://web3auth.io/docs/troubleshooting/webpack-issues


[HOLD for payment 2024-07-10] [HOLD for payment 2024-07-02] [$250] Update page header and empty state for Workspaces page

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: v1.4.78-4
Reproducible in staging?: Yes
Reproducible in production?: Yes
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Email or phone of affected tester (no customers): N/A
Logs: N/A
Expensify/Expensify Issue URL: N/A
Issue reported by: @shawnborton @Expensify/design
Slack conversation: Internal
Action Performed:

Create a new account and then navigate to Settings > Workspaces

Expected Result:

The page header for Workspaces should use the same illustrated header style we use elsewhere in Settings.
The empty state for workspaces should use an h1 instead of an h2 for "Create a new workspace"

Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

Screenshots/Videos
Current:

Proposed changes:

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~013d21d805d8f99e07
Upwork Job ID:<PHONE_NUMBER>237331921
Last Price Increase: 2024-06-07
Automatic offers:

getusha | Reviewer | 102685032
Nodebrute | Contributor | 102685035

Issue OwnerCurrent Issue Owner: @slafortune

This should be a super easy fix, so I think $125 is reasonable here.

@dragnoir looks like you quickly commented on the issue to get your proposal in first and then made edits. This is what I saw come through:

Checking with our internal team what our expected guidelines are with that sort of behavior. In the meantime, I don't think this one has been opened up for proposals just yet anyways.

Sorry for my delay!

How is this one going? Do we have any acceptable proposals here?

Reviewing proposals, i'll update today

I think this is a super simple straight forward issue,
I suggest going with @Nodebrute's proposal that had a complete information about the solution (before making edits)
Please avoid making extensive edits after posting a proposal, otherwise the proposal will not be considered thanks.
🎀 👀 🎀 C+ Reviewed.

@Nodebrute Paid ✅
@getusha Can you please complete the checklist and accept the automatic offer?

BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:
[@getusha] The PR that introduced the bug has been identified. Link to the PR: N/a this a design change
[@getusha] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment: N/a
[@getusha] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion: N/a
[@getusha] Determine if we should create a regression test for this bug. No, it's a simple UI modification
[@getusha] If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again.

@slafortune i'd like to request the payment via ND

Ah Yes @getusha  - great!  This GH was created on June 4th, after May 25 so that will work!  I'll cancel the offer in Upworks.
Please complete the checklist for NewDot payment to be approved.

https://github.com/Expensify/App/issues/43022#issuecomment-2206553332
here is the checklist

Ah thanks! I'll reach out to Stevie via NewDot to get the payment summary.

Since the regression was more than the 7 day holding period, there is not a penalty.
Payment is due JULY 10TH in NewDot
@getusha - Role C+ is due $250

$250 approved for @getusha


Bug fixes for RFI static mask

Bug 1: rfi_static_flags used to be initialised as np.tile(h5.shape[0]) - i.e. along time, not frequency!? This has now been changed to np.tile(h5.shape[1])
Bug 2: channel_mask with incorrect number of channels was silently used, resulting in very unexpected mapping! This has now been changed to explicitly stretch/shrink the mask to match the number of channels. Now also print a summary of the mask, for info.
Bug 3: With standard L-band rfi masks applied, some chunks are now completely empty along dimension 1 (freq). This has revealed another bug resulting in "empty slice" messages. This is very simply fixed by initialising the "gaussian_" parameters to NANs so that we end up with all "invalid" data as NANs and all "valid" data are neither NAN nor ZERO.

@spassmoor & @ludwigschwardt please review this pull request.
side note: it seems to me that this github repository does not allow me to assign reviewers - please check settings and/or membership rules?

side note: it seems to me that this github repository does not allow me to assign reviewers - please check settings and/or membership rules?

Good point! You now have write access - no need to work off your own fork :-)

I strongly suggest having a look at the new katsdpcal RFI mask, which is frequency-based instead of channel-based. That would be cleaner than stretching the mask and also works for all bands (think of the problems S-band will have with a tunable channel range...).

this suggestions has also been implemented.


Where are the ICE40 RAM models?

I'm using the 4-bit RAM primitive in my design, SB_RAM1024x4NR, but it doesn't seem to appear in the list of cells printed out when running synth_ice40.  The cells_sim.v file has something called SB_RAM40_4K which doesn't appear in the ICE40 documentation.

SB_RAM40_4K which doesn't appear in the ICE40 documentation.

page 82: http://www.latticesemi.com/~/media/LatticeSemi/Documents/TechnicalBriefs/SBTICETechnologyLibrary201504.pdf

OK, so great, it appears in the documentation.  But where are the rest of the primitives?

SB_RAM40_4K is the only primitive that exists in the device. The others are what other vendors call "macros".

What is the user supposed to do when using the other listed RAM primitives and the tools complain that they don't know what they are?

There is nothing the "other primitives" can do that you can't do with SB_RAM40_4K (and its variations for inverted clocks). If you want to instantiate a primitive, instantiate SB_RAM40_4K.
"Users" usually should not instantiate any of those anyways. Simply write your Verilog code and let the tool infer block rams for you.

So this is how it has been done in the industry for years - using the vendor supplied "macros", or primitives as Lattice call them.  That's why they detail the RTL instantiation details in the user guides.  Specifically from the Memory user guide, "This section lists the iCE40 sysMEM EBR software primitives that can be instantiated in the RTL.".
So a design that synthesises in the Lattice or Synplify tool chains doesn't work with Yosys and requires extra wrapper.

using the vendor supplied "macros", or primitives as Lattice call them.

I think I have not expressed myself clearly, because obviously you have not understood yet the difference between macros and primitives.
Only SB_RAM40_4K is a primitive.  They are simple wrappers around primitives for people who for some reason want to instantiate things manually, but don't understand how the actual hardware primitive works.
If you want similar wrappers in Yosys feel free to create them and create a pull request.

So this is how it has been done in the industry for years

Always a great argument. :)
It's because historically synthesis tools where really bad at inferring memories. And providing lots of convenience macros was the only thing vendors knew how to do.
Wanna live in the late 90s? Fine. Use the tools that existed back in the late 90s.
Wanna write those wrappers yourself and create a PR? Also fine.
But I have better things to do.

Perhaps you can use the argument that the older synthesis tools were not good at inferring memories but that is not the reason the industry still instantiates the macros (I can't be bothered arguing nomenclature and prefer to use the naming that Lattice use to avoid confusion, but I'll use your "macro" from here on).
Take an ASIC design flow, for example, at a company like ARM producing IP, in the 90's or now.  The ASIC flow uses RAM generators to build the RAMs used for synthesis.  These library specific RAMs are placed in a Verilog wrapper in a directory parallel to the wrappers that instantiate the FPGA Block RAM versions.  There will also be a simulation model version and you point your synthesis scripts to the correct path for the target implementation that you are building.
Instantiating the "macro" removes any ambiguity from anyone reading the code and allows the designer to specify the exact BRAM configuration that they want without having to worry about what the EDA tool thinks is the best implementation.
Now, I can see how a hacker or a student wouldn't really care about all that and would be happy letting the tools infer what they want, but the rest of us aren't.
I guess I'll go back to the 90's where the tools actually work.  ;-p

Now, I can see how a hacker or a student wouldn't really care about all that and would be happy letting the tools infer what they want, but the rest of us aren't.

Then instantiate the actual device primitive.
Or simply write the wrapper and create a PR as I pointed out above.

I guess I'll go back to the 90's where the tools actually work. ;-p

Okay, bye. I'm now locking this conversation.


Fix gcs ListChildrenFiles and ListDirectChildren

Previous right trim and "/" addition prevented the discovery of
top-level directories under the bucket.
/cc @chizhg @chaodaiG

/lgtm
/approve


Package and ship github-to-sops with pip

We're using sops and GitHub to secure secrets in the repo, and @tarasglek has created a neat Python tool to make it easier to do: https://github.com/tarasglek/github-to-sops. Let's get this packaged so it can be installed with pip

https://simonwillison.net/2024/Jan/16/python-lib-pypi/ seems helpful

https://github.com/prefix-dev/rattler-build/blob/main/examples/rich/recipe.yaml for an example of doing this with rattler-build for conda.

https://github.com/tarasglek/github-to-sops/pull/2

I'd like to look into Willison's method

@rjwignar awesome, thank you.  I would suggest you continue work in the gitub-to-sops repo vs. here, but I'll leave this open as a tracking issue.
Don't pay attention to what I've done for rattler; do what Simon says to do.  The rattler build can leverage whatever you do with pip.

We should figure out which pieces of this we can get done by 1.1 (next Friday), even if we can't get it all in by then.

I recently made a PR that modifies github-to-sops's directory structure to match that produced by Willison's cookiecutter template.
Among other things, the cookiecutter template also adds a workflow that publishes package releases to PyPI.
Publishing to PyPI first requires filling a Pending Publisher form to use PyPI's Trusted Publishers mechanism. Here's an example form Willison used for one of his libraries:

I haven't tried it yet, but I think I'd be able to fill out and submit the form even though I'm not the repo owner.

@WangGithub0 do you want to review https://github.com/tarasglek/github-to-sops/pull/3 as well, since you did something similar for the TypeScript module?

tarasglek/github-to-sops#3

sure, I'll do it

@rjwignar can we close this now?

@humphd Thanks for reminding me.
I hadn't checked this issue in a while and thought it also required shipping github-to-sops to ChatCraft, but I re-read the issue and  everything's been completed. We can close it


Enhance gnupg experience on OS X

This set of changes, basically, has one goal: make gnupg work out of the box on OS X.

pinentry_mac is now used instead of pinentry by default on Darwin.
gnupg is built with the correct path to the pinentry binary.

I should point out that I did not test this changes on Linux but I expect them not to affect anything.

😎

@fpletz / @copumpkin I'm wanting to merge this. What does the passthru comment mean? I'm happy to patch to get this merged. GPG on Mac is broken.

👌

@grahamc I have just addressed the passthru suggestion.

Beautiful! Works great for me on OSX. What a relief! @fpletz / @copumpkin could I get a review from y'all anyway? I'd love to merge this by Monday.

Got a +1 on IRC :) Thank you for your patch / attention today!

Hmm, is pinentry-mac impure? It seems to be reaching out to /usr/bin/xcodebuild

Hah, nice! #16540 will help with it, but there might be a stopgap solution?

I've just tried xcbuild and it seems to depend on xcode in runtime. I couldn't build pinentry-mac with just that. The PR seems to have much effort put into working around these things.
I also vaguely remember there was a talk at nixcon about xcode projects and how their syntax is similar to nix expressions. I wonder if that is still kicking.

Hah that was me talking at Nixcon :) but no I haven't done anything more
with that. I'd much rather use xcbuild and not re-reverse engineer their
build internals. Did you use @matthewbauer's full wrapper or just xcbuild?
The CR is trying to make xcbuild work nicely with our pure tooling
On Tue, Nov 8, 2016 at 16:36 Dmitry Kalinkin<EMAIL_ADDRESS>wrote:

I've just tried xcbuild and it seems to depend on xcode in runtime. I
couldn't build pinentry-mac with just that. The PR seems to have much
effort put into working around these things.
I also vaguely remember there was a talk at nixcon about xcode projects
and how their syntax is similar to nix expressions. I wonder if that is
still kicking.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/NixOS/nixpkgs/pull/16286#issuecomment-259267256, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAAKP819PxKuXvTXJqQ3lbBcFC_ctmM8ks5q8OtogaJpZM4I4NQN
.

No, haven't tried the full wrapper.

@copumpkin Sadly pinentry needs to create some storyboards to work correctly. "ibtool" is unavailable without the command line tools.

Currently this dependency on xcode is causing build for gpg to fail on my machine. Shouldn't this be rolled back? Right now the package is in a state where it will deterministically fail to build, which seems to defeat the whole point of using nix for purity.

@nixy If pinentry_mac fails to build (which should be a separate issue), you may temporarily use pinentry instead of it.

@kirelagin Thanks that worked.
I still have a lot of questions about whether this shouldn't be changed. As it is now I have to do a package override in order to get this to work without an external dependency. I rather think it should be the other way around. That anything involving external dependency should have to be explicitly specified in an override.

@nixy You certainly have a valid point, but, technically, vanilla pinentry is an “external dependency” too. And, furthermore, it itself depends on gtk2 which, arguably, is more alien to macOS than Xcode.
Unfortunately, at least in my opinion, vanilla pinentry provides a rather poor UX, and that is why I thought using pinentry_mac by default made sense. I believe, decisions on defaults should be made on the assumption that other components of the system work as expected and, while it is unfortunate that pinentry_mac somehow ended up in broken state, this is not expected and we should not optimise for this rather uncommon case.
But anyway, I am open to this discussion.


Code up initial challenge 1: (xss.js)

To be used as template for further challenge development.

Initial challenge functionality (post messages, condition triggers for wordbank items) is up and running.
TODO: Modals for each wordbank condition trigger, small functionality tie-ins, such as Comment number +/-, etc, as well as flag capture and reward + forward to next challenge.


macSim/iOS: Added option to remove std resources

Is this related to #260 ?

Indeed it is, this is a long-requested feature for the Windows simulator as well, though on Windows you can also get rid of the files after building by using batch scripts and such.

Are we able to set this field using CoronaBuilder to build? We are always looking at ways of reducing app size.


Dev Evolu Relay for dev mode

Is it possible to safely detect dev and production in JS lib? If so, we should use evolu.world dev version automatically deleted every day or something like that.
What should Evolu do? 😅

https://discord.com/channels/1072319124337856613/1072319124337856616/1275392737025200170


Option -o output dir does not change directories for module relevant outputs

Describe the bug
Module related files do not respect the -o flag. After further testing it seems like it uses the folder of the files inputted, which would be wrong behaviour as the binary was called in a folder one level up.
To Reproduce
This is a minimal YAML that reproduces the example:
The example given in: https://jonasthewolf.github.io/gsn2x/modular_extension.html#developing-undeveloped-elements-from-other-modules
command run .bin/gsn2x -o gsn-output src/*.gsn
where:
*.gsn are gsn yaml files stored in ./src/
./gsn-output/ is the cached outputs for svg
and ./bin/ is where the binary is stored.
This results in the architecture.svg, complete.svg and evidences.md stored in ./src/ not in ./gsn-output/
Expected behavior
The option -o should set the output folder such that the base folder can be kept clean, all output files kept in one place, and the folder can be excluded from git.
Alternatively another flag can be provided to set the output folder of the module related files.
Desktop (please complete the following information):

OS: macOS
Version [e.g. 11]
Browser [e.g. chrome, safari] that is used for viewing the SVG: SVG preview VSCode

Additional context
Add any other context about the problem here.

@Ilidur thanks for the feedback.
What do you mean by module specific files?
I just created #276 this morning, because e.g. architecture view is not output correctly.
If the individual modules files are not output correctly, please let me know the version of gsn2x you are using.

I marked #276 as duplicate.
Thanks for the precise description @Ilidur .
I will try to address that issue as soon as possible.

I just released v2.8.0 that includes the fix.


Explain why the new method name.

In the README file, give the reasoning behind coming up with the new method name full_dup instead of patching the existing bane dup.

Fixed in git, to be rolled out with the next version of the gem.


Uint32 and Uint64 version

Will there be a UInt32 and UInt64 version for these:
func (h *HashID) Encode(numbers []int) (string, error)
func (h *HashID) EncodeInt64(numbers []int64) (string, error)
Obviously it may create incompatibilities with eg PHP version of library but for some people that is irrelevant.

@pjebs, I'm sorry to say that, but it will create compatibility with PHP version now ;-0

@pjebs, I'm sorry to say that, but it will create compatibility with PHP version now ;-0

Note that the current implementation rejects negative integers (I haven't checked if it is a limitation of hashids).

@dolmen, yes it does - only natural numbers and lists of natural numbers can be encoded by hashid.
The upper limit varies by implementation, but supporting up to max uint64 would be the most compatible solution.

I'll gladly accept PRs for this by the way. Ideally if there's a reference implementation it would also be nice to have the Go library tested against the JS or PHP library on AppVeyor.

Actually, there's no reference implementation. Most of the libraries (but not Haskell version, AFAIR) are reimplementation of JS version, but with new bugs added ;-)

As per http://hashids.org :

Do not try to encode negative numbers. It won't work. The library currently supports only positive numbers and zero. If you're trying to use numbers as flags for something, simply designate the first N number of digits as internal flags.

So negative numbers won't be supported. For now, I am not planning on uint/uint64 versions but it should be straightforward to add and send a PR.


Check explicitly for RichestMime type.

This is what I was thinking of in my comment in #12.

Ah cool.


Bubble Sort in JAVA

Please allot this issue to me

can i resolve this?

@sauravjaiswalsj  can i work on this?


Trim whitespaces in address sources

go templates seem to have length restrictions causing new line characters so trimming

Thanks for the contribution


Appliance: certificate does not take host name into consideration

How to reproduce:

during YaST 1st boot set the name of the machine to: portus.test.lan
complete the installation
visit http://portus.test.lan
download the certificate

Minor issue
The name of the file is portus.suse.example.com instead of portus.test.lan.
Real issue
The common name inside of the certificate is set to portus.suse.example.com instead of portus.test.lan.

Note well: everything is fixed after I run /etc/init.d/portus-firstboot portus.test.lan

I had to reinstall the appliance, I have not been able to reproduce the issue. Maybe I caused the issue by letting the image stuck 8 minutes waiting for input on the network configuration dialog...
@jordimassaguerpla feel free to close it if you cannot reproduce that

this is a side-effect of https://github.com/SUSE/Portus/issues/182


Fix missing OSGI annotation for Caption service converters

Fix missing annotation for all caption converters #3625
With the move to OSGI annotation, it looks like all caption converters have been missed in the process.
Hence this fix to get transcription service working again.
Your pull request should…

[ ] have a concise title
[ ] close an accompanying issue if one exists
[ ] be against the correct branch
[ ] include migration scripts and documentation, if appropriate
[ ] pass automated tests
[ ] have a clean commit history
[ ] have proper commit messages (title and body) for all commits

Thanks for filing the ICLA with Apereo, @tyfranck.
It usually takes Apereo a few days to respond.
Just ignore the ICLA complaint in here for now ;-)


Use prepared statements for GraphQL query executions

We should use prepared statements and query markers for GraphQL executions.

Fixed by #413: with the new persistence API, every built query is now a parameterized prepared statement by default.


add pyppeteer to other language frameworks

LGTM. Just updated commit message to be more reflective of what this is actually doing.
Thank you!


APT whitelist request for python-texttable

This package can not be found when sudo: false on trusty or precise.
https://travis-ci.org/jayvdb/pyexcel/jobs/126816852 (trusty)
$ sudo -E apt-get -yq --no-install-suggests --no-install-recommends --force-yes install python-texttable
Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package python-texttable

Setting sudo: required works around this.
Maybe related to https://github.com/travis-ci/travis-ci/issues/5221


KeyError: 'href' occur When I use yadisk to download big-lama.zip

this is my code:
curl -L $(yadisk-direct https://disk.yandex.ru/d/ouP6l8VJ0HpMZg) -o big-lama.zip
And then:
Traceback (most recent call last):
File "/root/anaconda3/envs/inpaintanything/bin/yadisk-direct", line 8, in
sys.exit(main())
File "/root/anaconda3/envs/inpaintanything/lib/python3.9/site-packages/wldhx/yadisk_direct/main.py", line 23, in main
print([get_real_direct_link(x) for x in args.sharing_link], sep=args.separator)
File "/root/anaconda3/envs/inpaintanything/lib/python3.9/site-packages/wldhx/yadisk_direct/main.py", line 23, in
print([get_real_direct_link(x) for x in args.sharing_link], sep=args.separator)
File "/root/anaconda3/envs/inpaintanything/lib/python3.9/site-packages/wldhx/yadisk_direct/main.py", line 12, in get_real_direct_link
return pk_request.json()['href']
KeyError: 'href'
curl: no URL specified!
curl: try 'curl --help' for more information

This is because the file hosted at https://disk.yandex.ru/d/ouP6l8VJ0HpMZg has exceeded download limit. You can create your own Yandex account and that allows you to download the models via the UI.

@AshishBora this is what I get now -- is there a way to git the files elsewhere?

Sorry for inconvenience ---- try that https://drive.google.com/drive/folders/1B2x7eQDgecTL0oh3LSIBDGj0fTxs6Ips?usp=drive_link ! and we will fix the repo! TY!


Create elasticoffee-data.7.x.bulk

Add bulk request support for 7.x. Remove the type from each document.

CLA should be signed now


Bot timeout

Make it so bots timeout (disconnect) after an hour of inactivity. Keeps the connection count low and solves the issue of the bots getting disconnected and causing the service to become unavailable.

#120 is supposed to fix this issue, it is not yet deployed.
The problem with this workaround is, one notifico connection handles up to the maximum allowed number of channels as allowed by the IRC server, which is 100 on freenode, so finding a window of 1 hours is relativly hard, then if a window is found you need to make sure no messages are dropped (which might actually not that hard to implement).
I would rather go for actually fixing the bug instead of including workarounds which might or might not work. Let's see how #120 works out.

Fine. Do it like github instead.

side note: it's 120 chans on freenode, not 100


Organization, Docs, Logo

If folks start contributing to this, might be easier to have a separate organization. Created it, just need to migrate and update various links.
Not a fan of GitHub Wiki (open to all, or open only to collaborators). Will likely spin up a separate docs repo using readthedocs, mkdocs, or github pages, to allow folks to contribute without being given collaborator privileges
Logo. Or not. It seems like everything has a logo these days. I'm picky, but not very creative. A bad combo for logo design : )

RE Wiki:
As usual, I'm a fan of mkdocs - it has a builtin ability to deploy to both readthedocs and github pages, too.
I'm not sure an org is necessary but I'm not opposed to the idea either.

Alrighty, moved these to mkdocs hosted on readthedocs, and added notes on contributing.  Thanks!
Yeah, will keep repo here for now.
Going to close this out, docs were the real purpose of this issue.
Thanks!


Controller model fallbacks

Overview
Added vr controller model fallbacks to replaces our previously primitive gizmo visuals.
This PR also makes improvements to the base visualizer, allowing users to specify rotation offsets
Changes

Fixes: Several controller bugs to be backfilled here.

/azp run

I agree with @keveleigh , Controller model fallback is built in to the architecture for how the system retrieves the actual model to use:

Global Default - used if nothing else configured
Controller override - Set per controller

If no controller override is set, the global is used.
So what is the actual issue being resolved?
Plus most of the fixes are changing controller poses and other interactive data, not the model (other than adding new models in to source, which should be avoided, this is at the discretion of the developer in their own project.)

I agree with @keveleigh , Controller model fallback is built in to the architecture for how the system retrieves the actual model to use:

Global Default - used if nothing else configured
Controller override - Set per controller

If no controller override is set, the global is used.
So what is the actual issue being resolved?
Plus most of the fixes are changing controller poses and other interactive data, not the model (other than adding new models in to source, which should be avoided, this is at the discretion of the developer in their own project.)

The fallback logic is sound and works fine. This PR fixes one bug where the Global Default would be used even if the Controller override was specified. Beyond that, it adds some open source models as representations of Generic Motion Controllers/Quest Motion controllers. This was requested by our users, who have expressed some dissatisfaction with our default gizmos.
It also helps bridge the Oculus Quest story for Open XR, since controller models are not yet provided on the platform level for Oculus Devices. Quest Controller models are important for developers considering moving to the OpenXR backend.

/azp run

/azp run

/azp run


Refactor content extraction

Refactoring the content extraction into a number of classes.
Each content format now is implemented in it's own class in
app/models/content_extraction/parsers
The trello card is Refactor: extract classes to get the content for a Content Item

As discussed with @peteglondon, we are going to merge these changes without addressing the comments as of now, as we have other PRs that depend on this refactoring. These comments will be tackled immediately after.


Virtual Machine for Development

Speaking with @steveklabnik we both came to the conclusion that only supporting a linux development environment is probably the best thing to do (at least to begin with). I've started trying to get the kernel running in a Linux Virtual Box VM using @ashleygwilliams Vagrantfile from a similar project (per @steveklabnik's suggestion). I've run into a few issues, which I'll hopefully have sorted out soon. I'll have a PR ready when I can find sometime through the holiday season obligations.

hi! i was actually about to make a PR with my vagrantfile-- would it be stepping on your toes to do that and then have you correct/improve it? i'd love the diff so i can fix my own setup

We have a Vagrantfile merged into master through: https://github.com/intermezzOS/kernel/pull/7. It's not yet perfect for reasons elaborated on in the PR.

Given that the Vagrantfile was merged, giving a close.


Add metadata fields to openapi-2-kong package.json

The metadata fields on https://www.npmjs.com/package/openapi-2-kong are a bit scarce, and it would be nice if these were improved:

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Consolidate into 1 repo

https://github.com/santosjorge/cufflinks/issues/226
https://github.com/conda-forge/cufflinks-py-feedstock/issues/9

Hi @timkpaine
PR #5 in this repo builds both python-cufflinks and cufflinks-py from a single source which I think is a better way to resolve the duplicate package issue than separately maintaining 2 repos.
Would you be happy to archive the cufflinks-py feedstock and maintain both packages here?
If not, I'm happy to revert the building of the cufflinks-py meta-package here but we'd still need to address the current naming problem in cufflinks-py

Yep no problem

This is now done. I'll close this issue https://github.com/conda-forge/cufflinks-py-feedstock is archived...


Trying to stop website in remote IIS results in COM exception

Hi, I tried to stop website on my remote IIS like so:
StopSite(serverName,siteName);
but this resulted in:

An error occurred when executing task 'Default'.
Error: Unable to cast COM object of type 'System.__ComObject' to interface type 'Microsoft.Web.Administration.Interop.IAppHostWritableAdminManager'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{FA7660F6-7B3F-4237
-A8BF-ED0AD0DCBBD9}' failed due to the following error: Interface not registered (Exception from HRESULT: 0x80040155).

Do you have any idea what this can be caused from?

Googles first result for Unable to cast COM object of type 'System.__ComObject' to interface type 'Microsoft.Web.Administration.Interop.IAppHostWritableAdminManager' sums it up nicely.
You need IIS installed on the machine your running the script from. I have added it to the troubleshooting page.

I don't know why I couldn't find that, you are right I had IIS Express on the machine running the script, and thus leading to COM exception , after installing IIS everything worked like a charm.


ktfmt doesn't seem to work in IJ 2024.1.1

I have the ktfmt plugin installed and enabled in IJC 2024.1.1:

When I reformat the file (cmd-shift-l), it looks like it's using IJ's formatter. If I run ktfmt from the command line, the formatting of the file that I just theoretically reformatted in the IDE changes. This shows ktfmt was not used.

What if you restart the IDE? Wonder if its this issue that was closed: https://github.com/facebook/ktfmt/issues/229

Hi Colton! No, still doesn't seem to work after restarting the IDE.

Hmmm, that's interesting. I've 2024.1.1 (241.15989.150 build) with ktfmt plugin version <IP_ADDRESS> and it's working with that configuration for all the available styles... Do you have any other formatting tools running? Or maybe an .editorconfig file, which is being used by IntelliJ?

Sorry it took me a while to get back to you, I was mostly travelling for work :) No .editorconfig file, and no other formatting plugins.

Is it possible that the issue is that I have the reformatting scope set to "Only changes uncommitted to VCS"? If I set it to "whole file" it seems to work fine.

Oh, that's actually quite possible. I think I know where the issue might be, hopefully I can find the time to look into that soon. Thank you for the hint!

Any update on this? Issue exists on Android Studio Koala based on IJ 2024.1.1

The next version will work fine in all IJ versions up to 242. I fixed it in #501

Hi @rock3r, nice work on converting the IntelliJ Plugin to Kotlin! 👏
It has been quite a while since I've been able to look into ktfmt, but I have a question on this: Did the update fix the issue with the "Only changes uncommited to VCS"-setting? My guess was that it had something to do with getFeatures() from the KtfmtFormattingService not returning any partial formatting features. And since I saw the return value of the method did not really change after the update, I got curious :)

@greyhairredbear no, I didn't alter the plugin behaviour. That is still essentially doing nothing. I also think it's due to the features being declared, but don't know how to implement partial reformatting. Maybe @hick209 can help?

but don't know how to implement partial reformatting

Yes, me neither. I can't recall if I tried just setting the features, using the existing KtfmtFormattingTask and just see what it does... Seems to me this could work out, but as I said, don't know if I've already tried it 🤷


Config and Basic Setup

Config and Basic Setup

Installed React Redux, Redux Logger and React Router.
Downloaded the free image for the app logo.
Created routes and view components: rockets, missions and my profile.
Created directories for all Redux state slice files: rockets and missions.

Approved ✔
Hi @Johnadibe ,
Great job, the task is complete!  There is nothing else to say other than... it's time to merge it :shipit:
Congratulations! 🎉

(Highlights) Good Points: :+1:

You documented your work professionally. ✔
You used the correct workflow.  ✔
All linters checks are ok. ✔

(Changes Required) Aspects to improve: ♻

N/A

[Optional] suggestions:

N/A

Every comment with the [OPTIONAL] prefix is not crucial enough to stop the approval of this PR. However, I strongly recommend you to take them into account as they can make your code better.
**Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear, and please remember to tag me in your question so I can receive the notification**
Please, do not open a new Pull Request for re-reviews. You should use the same Pull Request submitted for the first review, either valid or invalid unless it is requested otherwise.

As described in the Code reviews limits policy you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.

Thank you @Fene-87 for your time and review😊


Use native Array.isArray instead of deprecated lodash function.

you can use https://www.npmjs.com/package/@taoqf/array-to-tree for now

Fixed in v3: https://github.com/alferov/array-to-tree/releases/tag/3.0.0


Script failed to scan birthdays.

Script failed to scan birthdays.
Error message: eyJ0eXBlIjoiU0NBTl9FUlJPUl9USU1FT1VUIn0=

The issue is solved in https://github.com/zagushka/birthday-calendar-extractor/pull/94


Vertically center single-character \mathop.

Fixes issue #726.

@kohler how did you test this?  Could you post some (before/after) screenshots \mathop expressions that are affected by this change?

Sure, I tested many expressions. Here's an expression that encompasses a lot of em
a\mathop+b\mathop:c\mathop{\delta}e\mathop{\textrm{and}}f\mathrel{\mathop{:}}=g\sin h

Before

After

Note that the :s moved up (as they should), the \delta moved down (as it should: https://tex.stackexchange.com/questions/368673/documentation-of-mathop), and the other ones stayed put (as they should).

NB Other uses of groupTypes.op that could have been affected, such as \stackrel, are tested in the screenshotter tests.

Looks good.  Can you add a screenshot test for that?  Screenshots for single tests can be generated using the include option, e.g. dockers/Screenshotter/screenshotter.sh --include=Sqrt.

test added

Looks great!  Thanks for fixing this.


Weekly data usage showing lifetime usage

When I use the sensor.[network name]_data_usage_week shows an astronomical value that I think is the lifetime usage of my router versus that week. Is there a setting I need to change either in the integration or on my router to get it to show up correctly?
For what it's worth, Home Assistant shows the same value for this sensor regardless if it's day, week or month.
Sid

Do you need eero plus to get that sensor? I don't see it in HA and not on the subscription. Thanks!

@Brooklyn-Sid Are you still experiencing this concern? Default units for data_usage are in kb so it'll be a big number by default. But you can change the units within Home Assistant UI.

I published a beta release with multiple bug fixes, give a try and let me know if it helps.

Closing this as the beta updates have been reflected into newest release here.


Install district_builder_config Python package from separate repo

Overview
Installs district_builder_config package from newly created GitHub repo: https://github.com/PublicMapping/district-builder-config
This keeps the configuration code separate and demonstrates there are no dependencies on Django.
Checklist

[x] PR has a name that won't get you publicly shamed for vagueness
[x] Files changed in the PR have been yapf-ed for style violations

Testing Instructions
This PR doesn't include any functional changes.

docker-compose build. The district_builder_config package should download and install successfully and the generate_settings script should also run successfully.
docker-compose up should work (app should run normally)
Run docker-compose exec -T django ./manage.py setup -f config/config.xml just for fun and see that it works (this demonstrates the setup command importing StoredConfig from the installed package correctly).

@ddohler I was able to reproduce the issue you described.
I don't think it's caused by the changes in this PR in particular, so I'm going to merge, but we might want to address this issue.

+1 for a future story to fix that issue. I just ran into it as well, and it took me a while to resolve it.


SQL Parse SchemaStatVisitor getFunctions返回结果没有将表别名进行替换

如本地测试返回结果：
[from_unixtime(t.from_time, 'yyyyMMdd')]

输入SQL是什么？

select n.user_name,
n.user_passwd,
n.user_project,
n.start_date,
n.end_date
from (
select t.name                                              as user_name,
t.passwd                                            as user_passwd,
cast(from_unixtime(t.from_time, "yyyyMMdd") as int) as start_date,
cast(from_unixtime(t.to_time, "yyyyMMdd") as int)   as end_date
from tableA as t
where t.user_id = 1
     union all
     select p.project as user_project
     from tableB as p
     where p.project_id = 10
 ) as n;


Use babel hmre preset for hot loading and error catching

Less boilerplate, more good stuff :)
https://github.com/danmartinez101/babel-preset-react-hmre

:+1: sounds good!


Add support for podfile to travis

What was done?

Add support for pods and travis

Why?
To support #64

Looks good to me 👍


Unable to download release 0.3.14 for kafka-serialization-avro4s_2.12

Hi ! Thanks for this project :)
Little issue : I'm not able to find the version 0.3.14 for 2.12 https://dl.bintray.com/ovotech/maven/com/ovoenergy/kafka-serialization-avro4s_2.12/
Looks to be available on 2.11 : https://dl.bintray.com/ovotech/maven/com/ovoenergy/kafka-serialization-avro4s_2.11/
Have a nice day guys !
Jocelyn

Hi,
Unfortunately, the 0.3.14 failed to deploy correctly. We may be able to deploy it again however it is also quite old, the new version 0.3.19 is binary compatible with that are you able to use the 0.3.19?

Yes, I switched to 0.3.19 :)


OmniWeb Browser ("unknown browser that imitates OmniWeb") and display full semantic browser version

OmniWeb Browser ("unknown browser that imitates OmniWeb") #426
Before
You are using an unknown browser that imitates OmniWeb 6 on OS X

After
You are using an OmniWeb 6.452.001 on OS X

Another change is giving the full version number now!
Before
OmniWeb 5 on OS X

After
OmniWeb 5.358.48 on OS X

Note: Some test results are showing full versions and some are not - with this change everything displays full version and standardize how this package deals with OmniWeb.

data/regexes/applications-others.php has been edited due to this pr not being merged yet: https://github.com/WhichBrowser/Parser-PHP/pull/508/files

@NielsLeenheer Please can you merge this pr.

cleaned version: https://github.com/summercms/Parser-PHP-v3.x.x/pull/183/files


Handle case when record.exc_info[0] is None

Django DataDog Logger version: 0.6.2
Python version: 3.9
Operating System: independent

Description
Adding exc_info=True outside of an actual exception context (ex. just calling logger.error('Foo bar', exc_info=True)) causes an error in DataDogJSONFormatter: https://github.com/namespace-ee/django-datadog-logger/blob/master/django_datadog_logger/formatters/datadog.py#L149. record.exc_info in such case is a tuple (None, None, None).
What I Did
traceback:
--- Logging error ---
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/logging/__init__.py", line 1083, in emit
    msg = self.format(record)
  File "/usr/local/lib/python3.9/logging/__init__.py", line 927, in format
    return fmt.format(record)
  File "/usr/local/lib/python3.9/site-packages/json_log_formatter/__init__.py", line 64, in format
    json_record = self.json_record(message, extra, record)
  File "/usr/local/lib/python3.9/site-packages/django_datadog_logger/formatters/datadog.py", line 149, in json_record
    log_entry_dict["error.kind"] = record.exc_info[0].__name__
AttributeError: 'NoneType' object has no attribute '__name__'

@jacekbj Thanks for the notice. Would you be willing to draft a PR to handle this?

@lnagel PR open


Add the API to get compliance events

This adds a list API endpoint at /api/v1/compliance-events and allows an individual compliance event to be retrieved with
/api/v1/compliance-events/.
The list API endpoint supports sorting, pagination, and the flag of includeSpec which is disabled by default.
Relates:
https://issues.redhat.com/browse/ACM-6857

/cc @JustinKuli


Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm

FYI: https://arxiv.org/abs/1712.01815

The rules of Go are invariant to rotation and reflection. This fact was exploited in AlphaGo
and AlphaGo Zero in two ways. First, training data was augmented by generating 8 symmetries
for each position. Second, during MCTS, board positions were transformed using a randomly
selected rotation or reflection before being evaluated by the neural network, so that the MonteCarlo
evaluation is averaged over different biases

Oh..., I did't generate 8 symmetries for each position...

Dirichlet noise Dir(α) was added to the prior probabilities in the
root node; this was scaled in inverse proportion to the approximate number of legal moves in a
typical position, to a value of α = {0.3, 0.15, 0.03} for chess, shogi and Go respectively.

In reverse, it is better that α is 0.3 ~ 0.5?

Illegal moves are masked out by
setting their probabilities to zero, and re-normalising the probabilities for remaining moves.

re-normalising in legal moves may be important because of balance between value and policy.

In chess, AlphaZero outperformed Stockfish after just 4 hours (300k steps)

Wow!!

In reversi, it is better that α is 0.3 ~ 0.5?

Agreed. Let's say 180 legal actions in average in Go19x19, and in Reversi it may be around 10? So as to the new paper, 10 times 0.03 seems more reasonable.

What is main different between alphago zero and alphazero?
Is same the MCTS architecture?

Hi @apollo-time
I think the main differences are as follows.
P3~4
AlphaZero:

AlphaZero does not augment the training data and does not transform the board position during MCTS. (for generality)
evaluation step is omitted. self-play is performed by the newest model parameters. (!)
didn't tune hyper-parameter by Bayesian optimization. (reuse past parameters except policy noise)

So, MCTS is also used without transforming the board position.


Implemented a --check mode, returning a non-zero exit code if there are errors.

Implemented a --check mode, returning a non-zero exit code if there are any errors, or 0 if there are none, without modifying any files.
This feature is mentioned in rustfmt issue #860

Hm, there are already checkstyle and diff modes which have somewhat similar purpose. Maybe we should just change diff command such that it returns non-zero if there are differences (like the original diff command).

I filed #906 for setting the exit status for diff mode.
It is sometimes useful to suppress output, I'm not sure if a check mode which would essentially be a diff mode with suppressed stdout justifies having it's own mode or not.

So, I think it is worth adding a check mode for now. Once diff mode returns an exit code, we can consider removing it, based on how well used it is.
I think our exit codes should be consistent (across modes). That means we can't return the number of formatting errors, only whether there were errors or not. I think that is actually preferable, since how many errors there are is somewhat subjective.
In the implementation, I think it should be possible to do this without adding an Operation::Check variant. Similar to diff mode, we should be able to (internally) do a normal format and then compare input and output (hopefully even reusing some of the diff mode functionality).


Bulk Uploading with CSV file.

Hi All,
I am newbie to SharePoint Online and Power shell. I used information from below link to do the bulk upload of custom properties and managed to do the test for one user.
https://github.com/SharePoint/PnP/tree/master/Samples/UserProfile.BatchUpdate.API
Can anyone advise how i can run the script using CSV file. I want to update data of 1500 users, using txt file is not convenient here.
Thanks in Advance.

The key point in the sample code mock data is JSON, not the txt suffix. You can use online tool or custom tool to convert the csv to json. Then just use the converted data file.

Thanks for your feedback. I figured it out yesterday.