Exclude endpoint from non supported request

[ ] word searching
[ ] review other requests and list here

If I type test_string in the search box, the query that fails is:
GET api/v1/viz/

Query string params:
tag_name:
q:test_string
page:1
type:
exclude_shared:false
per_page:20
tags:
shared:yes
locked:null
only_liked:null
order:updated_at
types:table,remote

and the error:
ActiveRecord::StatementInvalid (PG::Error: ERROR:  invalid input syntax for type boolean: "null"
LINE 1: ...."type" = 'table' AND "visualizations"."locked" = 'null' AND...

a priori I'd say it makes more sense to fix it than exclude it.

Current behavior:

locked=true => locked visualizations
locked=false => non-locked visualizations
locked=null => both locked and non-locked
absent => both locked and non-locked

Removing this line would partially fix it.
(Anyway, the parameter should not be passed straight to the query builder)
Then adding this equivalent code to the new controller would make the search work.
cc/ @juanignaciosl to make sure I understood correctly the intent of this issue.

Oh, I see. It looks like .with_locked(locked) is duplicated, since later it's added just if it should be added.
I think you're right, deleting that line and adding a partial match method at query builder is the way to go.
It'd be great to move tests covering that part (if any) to the common examples suite before fixing it.
Great!

I'm getting a handle on your code and I do agree with the tests part. That said, I'm finding way harder to write the tests than the working code itself XD

That's a pretty common concern :_). I have two huge pain points:

Setting test data: many simple test require no less than two users, sometimes an organization, and a couple of tables and visualizations with permissions. That's A LOT of setup. And data coherence is relevant, the use of FactoryGirl is not always straightforward because it skips validations and sometimes validation errors are triggered later because of initialization errors.
Checking output: validating a whole JSON response is fragile (dates, for example). I've done a "normalization method" but it's far from perfect.

Don't hesitate investing time improving test tooling, it's invaluable. For example, being able to use tests of the previous endpoint on the new is a great safety net, and the simpler they get the more we'll write. During the early stages of refactoring I've done some work but also taken some shortcuts to focus on what I was attempting...

That's a big task in itself

I know, I know ;-) . As usual, unless you have a great idea in mind, I'd just do small steps.


[SEC] SSH into AWS EKS K8s pod without Public IP

https://github.com/allegroai/clearml-session/blob/ae09bf3bedbbcd26383820e44624c65c5397705b/clearml_session/__main__.py#L632-L634
Hi, I'm trying to understand what's the trust point to be able for a user to SSH into a remote cloud K8s Pod (AWS EKS) without having to expose the public IP of K8s worker nodes.
Does it uses K8s ingress for SSH or what is k8s-gateway-address exactly and how is that secured?
Also, can 2 users be SSHing into 2 pods on the same AWS instance (shared big machine) at the same time without being able to impersonate each other?

Hi @elgalu,
To support it, you'll have to use the k8s-glue support in the ClearML Agent (see here) with the --ports-mode option, which automatically labels pods in such a way that you can set up an ingress based on pod labels and SSH to the correct pod using a port assigned by the ingress.


Home page ui improvement. text size, navbar

What's the style idea?
Details:

Text Size Deceased.
Navbar Names Hover Improvement.
Content added for " What is DevsInTech Community? ".

Can you please assign me this tasks under GSSOC'23
Add screenshots
Before:

After:

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Add screenshots
Add screenshots
Code of Conduct

[x] I agree to follow this project's Code of Conduct

@prnvtripathi can I make pr now ? I have reverted the button changes.

Go ahead

@prnvtripathi done ser


Bug Report: HTML5 build is broken

Please check for duplicates, similar issues or closed issues with the same problem, as well performing simple troubleshooting steps (such as deleting the export folder if it's an issue with compiling, reinstalling Kade Engine) before submitting an issue.
Have you identified any steps to reproduce the bug? If so, please describe them below. Use images if possible.
haxelib remove linc_luajit
haxelib remove hxvm-luajit
haxelib git linc_luajit https://github.com/nebulazorua/linc_luajit.git
haxelib git hxvm-luajit https://github.com/nebulazorua/hxvm-luajit
lime test html5
Please describe your issue. Provide extensive detail and images if possible.
Compiling finishes with an error
/home/poof/.haxefiles/linc_luajit/git/llua/State.hx:11: characters 24-49 : You cannot access the cpp package while targeting js (for cpp.RawPointer)
/home/poof/.haxefiles/linc_luajit/git/llua/Convert.hx:4: characters 8-18 :     referenced here
source/LuaClass.hx:2: characters 8-20 :     referenced here
source/PlayState.hx:4: characters 8-16 :     referenced here
source/Replay.hx:100: characters 16-25 :     referenced here

i have this issue too

I have this issue as well. No wonder Puyo hasn't built 1.7 for the website next.

I have the same issue and I opened an issue but no one really answered, only happens on 1.7


net/http: srv.Serve hangs if RemoteAddr() blocks

The PROXY protocol is supported by several proxy servers such as haproxy
and Amazon ELB.  This protocol allows services running behind a proxy to
learn the remote address of the actual client connecting to the proxy,
by including a single textual line at the beginning of the TCP
connection.
http://www.haproxy.org/download/1.5/doc/proxy-protocol.txt
There are several Go libraries for this protocol (such as
https://github.com/armon/go-proxyproto), which operate by wrapping a
net.Conn with an implementation whose RemoteAddr method reads the
protocol line before returning. This means that RemoteAddr is a blocking
call.
(Blocking inside Accept is not an option either; the point is that we want srv.Serve to call Accept on the underlying socket as soon as the previous Accept call succeeded, without any blocking operations.)
This exists in current Go master (eg, 1.5.1) on all platforms (eg, Linux).

@glasser Does that mean i could use https://github.com/armon/go-proxyproto without blocking now?

@jingweno I believe so (though my project hasn't upgraded to 1.6 yet so I don't have production experience).


Steps needed to train the model

 Hi,i trained the model with 1000 steps but result is as below

Predicted headline:
contention Stefano Stefano Stefano Stefano Stefano Stefano contention contention contention
Actual headline:
Williams says he will never quit
can i know how many steps needed to get exact results??
And also provide me  the dataset link that you used in your code  which you converted  to .pkl file

Hi @ashakodali ,
Well number of steps that you should use depends on how big is your dataset. Ideally you should train the model with at least 10 epochs so NUM_STEPS = EPOCHS * NUM_SAMPLES / BATCH_SIZE.
Dataset url is specified in data_utils.py at the top of file.

Hi i used same data.pkl file ,same code whatever you used without any change  i trained it with 1000steps even though results are as below
Predicted headline:
contention Stefano Stefano Stefano Stefano Stefano Stefano contention contention contention
Actual headline:
Williams says he will never quit
can you tell me how many steps needed to get  related predicted headline and actual headline same?


expression bodied function members

C# 6 adds the ability to define function members using => and an expression, rather than { and } with statements.

Completed by #4. Closing


discussion: section persistent [web] storage items

Just an idea: section all persistent storage items - just re-purpose the current 2700: COOKIES & DOM STORAGE section
I read a long article yesterday and it re-enforced to me how we should look at things - in other words, instead of lumping stuff together under "conventional" or current rules, let's define the problem.
This would cover them under one umbrella 1 : a "solution" to a "problem" (did I miss anything?)

Cookies

:x: Limited Control:

not accessible in PB mode
not accessible with FPI
no access to system cookies (eg GA for SB)

Local DOM Storage

:x: Little Control:

not accessible by host (yet) [this is for WE]
assume PB mode and FPI access denied ?

IndexedDB

:x: No Control: has never been any

Offline Storage

:x: No Control: settings to force sites to ask for permission are broken

Storage API

No Idea: Lets just assume everything is broken!

This would also allow a section header with comments that make sense

FPI effects
PB Mode effects
Container effects
Overall strategies
The killer extension 2

Especially as the WE APIs are fixed/expanded: eg opening up access to FPI objects, IDB access. Some items are intertwined (eg cookies and local dom, something going on with IDB+FPI?/StorageAPI?) and we should consolidate. I also see something like C-AD becoming a killer recommended Extension to cover all these. It just makes sense to me
1 To be clear, by persistent storage, I mean set by websites, not FF "internals" such as various histories, cache, CA's, session data etc. Keep it simple: items like workers using storage would stay under workers section
2 It's not a question of if, but when - If not C-AD expanding in time, there will be others. Without looking up the tickets/names, there is one guy (Thomas Wisniewski) pushing a lot of change in these areas and even doing some of the tickets for Mozilla (pretty sure he's not a zilla employee) and he wants to create this killer extension to cover all the above as well as serviceWorkers, cacheStorage and applicationCache. He's currently landing a patch for by domain access to IDB.

NOTE: C-AD is Cookie AutoDelete (a webextension).

Edited the first post: might add some zilla ticket links later. No wonder I have had cookies ( and thus local dom storage) default deny and IDB disabled for years. WHAT a mess!

Those persistent cookie are typically stored in IndexedDB, which can be effectively cleaned by Cookies Exterminator addon.
Note: Cookies Exterminator will work until FF 57+, after that we can hope mozilla will resolve the APIs, which Cookie AutoDelete or CookiErazor can use to deal with those.
In the past (before FF 55 or 54... can't remember now) SDC dealt perfectly with those, but is obsolete now.

Lets not discuss legacy addons! Cut that sh*t out bro!. The issues with ESR are not present (FPI is not ready for ESR 52) or will not change (PB mode) or can already be handled (legacy addons work in ESR) etc. ESR is dead to me! :grin: Focus on stable and 57+, because that is where we are headed

Sure... I have mention the working solution at this point for anyone interested (IMHO it is worth to mention) and elaborated further in the "Note" section of my response.
Now I will hide my head in the sand. ;)

Some examples of persistent storage issues

IDB? - 1400582 Deleting all history still leaves some traces
1398303 Local Storage not cleared by Clear Recent History
1047098 Clear Recent History' with 'Cache' or 'Offline Website Data' doesn't clear QuotaManager storage (indexedDB, asm.js cache)
527667 DOM Storage (localStorage, sessionStorage) data is not cleared when "Clear Recent History" is used with Time range not "Everything"
1077986 offline storage permission setting not working correctly

the list goes on - persistent storage and access to it is horribly broken

1398303 Local Storage not cleared by Clear Recent History

the example site weather.com uses IDB and the 5. step in his steps to reproduce is "Go to weather.com again and wait a little bit." - "wait a little bit" most likely because it restores the locations from the IDB and stores it in LocalStorage again. Local Storage is most definitely cleared by clearing recent history (cookies is enough actually) - you can check the webappsstore.sqlite file if you don't believe me.

Well that's good to know. "Everything" time range works. See, we always have the best settings

Anyway, we know there are lots of issues with clearing and access to persistent storage - my issue was... and still is ... should we create a persistent [web/content] storage section :question:  No-one has commented on that in 6 days since I proposed it

should we create a persistent [web/content] storage section :question:  No-one has commented on that in 6 days since I proposed it

yeah sorry about that. Sure, I am not against that but with all these issues at the moment maybe it would be better to wait for a while. Otherwise there would need to be a lot of text and it could easily end up being way too confusing.

Its not hard to move those few items into 2700 and rename it. BTW I didn't mean that the section header had to list any issues, well, not all of em, maybe none to start with

cookies control local dom storage
PB cookies are protected [1 zilla]
Mozilla internal cookies are protected [1 zilla]
FPI applies to all windows including PB
FPI storage is protected [1 zilla]
offline storage settings do not work [1 zilla]
IDB is fukked [10 zillas]
Clearing history not by everything has issues [2+ zillas]
Forget this site is poked
Containers have issues

^^ OK .. ok ... too many issues (I can think of another 5). Is that what you meant by all these issues? That is so depressing I almost feel like going back to ESR

A persistent "storage and memory" section is a good idea.
Many issues there, but the actual main goal of that section should be identify and group all items related to browser storage.

A persistent "storage and memory" section is a good idea.

Noooo! Not memory. I see memory/cache as an internal Firefox thing (and we have a dedicated 1000 section) - same with session store, histories (browsing, download, form), CA's etc
This proposed section is for data set BY websites - although there will always be some overlap

Concerning LocalStorage I read here the developer of the Firefox Cookie Controller add-on state:

Lastly, there is a limit on the amount of storage that can be used by each web page. By default this is 5MB but you can change it, potentially to zero. However, web pages don't always handle overflowing this quota very well so you might cause problems by changing it.

The setting for this is dom.storage.default_quota
1- I'd like to know your opinion regarding the fact web pages don't always handle overflowing this quota very well.
2- Would it be pertinent to add to section
/* 2705: disable DOM (Document Object Model) Storage
 * [WARNING] This will break a LOT of sites' functionality.
 * You are better off using an extension for more granular control ***/
   // user_pref("dom.storage.enabled", false);

the following setting:
// amount of storage that can be used by each web page
// user_pref("dom.storage.default_quota", 0);// Default=5120 (5MB)
Of course it's possible to use a dedicated add-on (or even as I used to, a dedicated Custom Button) but this requires a per-site user intervention since Firefox doesn't handle this on per-site. On another hand setting dom.storage.enabled to false is indeed problematic. I'm trying right now with the above dom storage quota set to 0, testing here and there sites I know that use LocalStorage, and no problem. YouTube for instance stored nothing when otherwise it does.

May be good info to add when we revamp this section which is going to be a mess until all the IDB/OWD/Clear-history/OAs/extension-access and a dozen other broken things are fixed - eg did u know that warnings for OWD (offline website data = IDB) are broken and it never prompts and does does it anyway.
dom.storage.default_quota may be ok to add somewhere, but I it is a bit pointless (depends on your strategy maybe???). Cookies control access to local dom storage - this is the major factor. A cookie extension (when FPI etc OA's are fixed) will simply clear on demand, on close, on domain close. How much data is stored is immaterial IMO (unless it is used to trigger eg a prompt). I fail to see how much is stored has any implications for tracking - limiting it may even cause web site breakage/issues

Yeah, the IndexedDB odyssey, the fact of visiting a site such as bostonglobe.com with cookies set to site and session only and notice in the Page Info / Permissions / Maintain Offline Storage filled with 48kB of data, removing it and blocking the site, reopening the site to notice the 48kB are back: yeps I experienced that as we all. Ghacks has a dedicated article on this.
I managed a work-around by associating two add-ons : Permit Cookie 2 (legacy add-on) and Cookie Autodelete. I've uninstalled Self-Destructing Cookies add-on not because it is a legacy add-on but because Cookie Autodelete being a Webextension it will run its cookie management database seperately, and that can be an advantage:
I've set network.cookie.cookieBehavior to 2 (=disallow all)
From there on Cookie Autodelete has nothing to perform ... except if a site either requires a cookie to simply open (few, but some do!) either because I need to login.
If cookie required, I make a session exception for that site with Permit Cookie 2

without setting that site's cookie permission in Cookie Autodelete if I wish not the cookie to be kept once the site closed,
by adding a cookie permission (session or keep) in Cookie Autodelete otherwise.

All this rather than only Cookie Autodelete only because whatever site, if cookies are not blocked (blocked for that site anyway) are at this time enabled to lay their data in my profile / storage folder, and I refuse that.
The LocalStorage is less problematic in that the storage will be persistent only if the site is allowed to use a persistent cookie. In my scheme I face a site laying IndexedDB data in my storage folder only if I've set a cookie exception (session or persistent) and that the site is an IndexedDB aficionado.
Not to mention that blocking all cookies with exceptions is a pleasure when visiting sites that install cookies for no valid reason, and even edit them live as bostonglobe.com does : listen, I still use an add-on called 'Noise' and it includes two Event topics (via addObserver), the cookie-rejected and cookie-changed events : I check these two events for testing, visit a site such as bostonglobe and hear the cookie(s) modified as I scroll! The site is actually updating live its cookieon every line I scroll!.
So, altogether, this combination of two add-ons, one (legacy) handling cookie exceptions on Firefox's level, the other, Webextension, handling cookies' exceptions within its own database, allows to fine tune cookies and therefore storage, globally since all seems to depend of the cookies behavior permission. That's how I do it until Mozilla gets things in order.

I've been experiencing with:
user_pref("dom.storage.enabled", true); // Default=true
user_pref("dom.storage.default_quota", 0); // Default=5120

Quite nice. Many sites block with dom.storage.enabled set to false but not with dom.storage.default_quota set to 0, especially those which don't actually write Web Storage data but require nevertheless storage as enabled. Youtube for instance does write Local and Session storage but runs fine with the quota set to 0. Userstyles.org as well except that it won't handle the screen display functionality (two top-right buttons) with quota set to 0. Even ProtonMail runs OK: it displays a message stating dom storage is required but runs nevertheless fine!
For whome may be interested to know what Local and Session storage is used by a site, there's the localStorage inspector bookmarklet which delivers that information flawlessly.
Indeed, as mentioned in the user.js concerning dom.storage.enabled,

You are better off using an extension for more granular control

but the point is, if controlling with an extension (or with a dedicated Custom Button as I do) the dom storage feature, switching dom.storage.default_quota from 5120 to 0 seems to be far more practical then switching dom.storage.enabled from true to false, given many sites won't block systematically.

Just FYI
With
user_pref("dom.storage.default_quota", 0);

videos on imdb.com does not work.
But they work when set with a little as 1.

I am considering dom.storage.default_quota as dom.storage.enabled is considered in our user.js, that is to either keep the default value either to tune on a per-site basis with an extension. I'm evoking the quota=0 as a replacement value to its default 5120 in the context of a per-site permission to switch back to 5120.
Example:

I've set dom.storage.default_quota to 0
I've installed a toolbar button crafted with the Custom Buttons add-on to toggle the above quota between 0 and 5120
I know the few sites which require quota=5120 and I click the button accordingly to toggle back to 5120. I toggle back to 0 once I've left the site.

Of course it would be as an aberration to set the quota to 0 for everywhere as it is to set the dom storage to disabled ... unless granular control is made available.

unless granular control is made available

Why do you make everything so complicated, extra clicks, dozens of extra extensions :)
Cookies control local storage. So you can block all and set a site exception ("allow" or "allow for session"). The "no 3rd party cookie" setting also blocks 3rd party access to "3rd party Web Storage, IndexedDB, Cache API and Service Worker Cache" 1 . Additionally FPI also protects from 3rd party. You can also wipe cookies and local storage on close (so same as allow for session only).
So at WORST, a 1st party can detect a subsequent visit (and if you;re like me and only allow cookies for sites you LOG INTO, then it's a bit of a moot point). And last but not least, once local dom by host is allowed (bugzilla are almost there), then an extension can even remove this by auto-deleting on domain close.
1 click me

My point is to replace what was performed with the Self-Destructing Cookies legacy add-on but not handled by a Webextension : remove what has been set in the users localStorage once the site is closed, as performed with non whitelisted cookies. Cookies is easy, the Cookie Autodelete webextension does it, but doesn't handle the localStorage.
Nothing complicated in fact, unless to consider that the aim of clearing DOM storage set by a site is excessive given that DOM storage won't be readable by a 3rd-party site if 3rd-cookies are forbidden, that sessionStorage vanishes and that localStorage is persistent only if a site has been set in the user's cookie whitelist.
My aim is to have the DOM storage set by a site cleared once the site is closed. The aim is arguable but the way to achieve it (now that Webextensions cannot) seems to me interesting, and I happened to believe that squeezing privacy concerns was the very lot of our common concern here.

My point is to replace what was performed with the Self-Destructing Cookies legacy add-on but not handled by a Webextension

I've never understood the BS fixation with allowing cookies, period. Anyway, not my fault SDC broke in 55. Extensions will be able to handle local dom storage, including those with FPI and containerID OAs (orign attributes), maybe even PB OAs. But not internal cookies (such as the GA one with SB). Extensions will also be able to handle IDB. Hopefully by 58. Until then, if you used my strategy of default deny cookies (and even using one off PB windows as needed) then there is no need to clear anything. You're just making it harder on yourself :)

But they work when set with a little as 1

This is just observation notice, I am using default. ;)

if you used my strategy of default deny cookies (and even using one off PB windows as needed) then there is no need to clear anything.

I deny cookies as well (network.cookie.cookieBehavior = 2) but some sites won't even open if cookies are denied (for them since globally) ... that means such sites need at least a session cookie exception. OK. From there on an extension such as Cookie Autodelete  will delete the cookie once the site is closed. OK. Problem is sites with cookie not forbidden (session or allow) have the ability to store IndexedDB data in the user's profile storage subfolder (I take the example of bostonglobe.com but truth is not many sites jymp on that possibility) and that forbidding offline storage for such sites will have been the issue until coming Firefox 56.
Concerning DOM storage looks like I've mistaked, indeed. No point in emphasizing on a no-problem.
I have gotten saturated with non-controlled storage and the way of dealing with it. Looking forwards to these issues announced as resolved in Firefox 56/57.

FYI:

IDB: resolved fixed in 57+ 1333050 clearing of IndexedDB in browsingData API

not sure if this is granular (filter by time and hostname)
also not sure if it covers "cache API + SW cache and asm.js"

LOCAL DOM: resolved fixed in 58+  1388428 delete local dom storage *by host (I do not know if this is affected by OAs such as FPI)
COOKIES: unresolved and complicated 1381197 OA (OriginAttribute) cookies issues (FPI, PM, Container)

note: internal cookies such as GA with SB will not be included => WONTFIX

Hopefully by 58/59 we will be able to have an extension that covers all in one hit:

covers all of cookies + localdom + IDB + SW cache + cache + asm
by host + time
regardless of OA such as firstpartyisolate + pbmode + containerID

good news everybody - 1047098 - IDB & clear recent history back-ported to ESR (4 hrs ago) .. enjoy all you ESR laggards :grin:

semi related (more to do with extensions and storage) but I'll dump it here since this is an open ticket
https://bugzilla.mozilla.org/show_bug.cgi?id=1416219

Load about:preferences#privacy in a tab
In the History section choose
"Firefox will use custom settings for history"
Check “Clear history when Firefox closes”

All the extensions localStorage data is dropped when Firefox is closed.

It does not say what settings are used for clearing. I suspect it is the "cookie" setting

Note to self: 2706 storage API also toggles UI section in "privacy&security/site data". This does nothing because we're blocking it - I think this is due to browser.cache.offline.enable (1004) - not sure. If it is then this 1004 should be moved to the new revamped section
Also 2450* ( offline-apps.allow_by_default, browser.offline-apps.notify) should be in this section

FYI: https://bugzilla.mozilla.org/show_bug.cgi?id=1406675 - WebExtensions requiring cookies for IDB should be fixed in FF59

The last thing I want to do here, is to reorder the section a little, now that everything is in there. I am not interested at this stage in outlining all the issues (Ext+IDB, FPI, Containers, PB Mode, and all the sanitize inconsistencies, and more) - maybe we can revisit it when 60 lands (in a new issue)
proposal

cookies: 2700's : 2701, 2702, 2703, 2704, 2708
localStorage: 2710's: 2705, 2707
IDB: 2720's: 2710
appCache: 2730's: 2720, 2721, 2723
service workers: 2740's: 2715
storageAPI: 2750's: 2706

Not adding any subheaders, just renumbering. Any objections?

see https://github.com/ghacksuserjs/ghacks-user.js/pull/322 and check it out. If no one speaks up, I shall merge it in 3, 2, 1...


Bug located in CDB export

🔍 Before submitting the issue

[X] I have searched among the existing issues
[X] I am using a Python virtual environment

🐞 Description of the bug
The number of entities observed in the CDB mesh file is incorrect, (APS 937703)
Before writing CDB
Printing model
Part Summary:
Part Name: pyprime_block_import
Part ID: 2
17 Topo Edges
8 Topo Faces
1 Topo Volumes
0 Edge Zones
    Edge Zone Name(s) : []
0 Face Zones
    Face Zone Name(s) : []
1 Volume Zones
    Volume Zone Name(s) : [solid]

1 Label(s)
    Names: [my_group]

Bounding box (-16 0 -17)
             (12 28 11)

The CDB file shows after reading to PyPrimeMesh
Part Summary:   <----Missing Part Name
Part Name:
Part ID: 2
0 Edge Zonelets
3 Face Zonelets   <----Extra Face Zonelet
2 Cell Zonelets   <----Extra CellZonelet
0 Edge Zones
    Edge Zone Name(s) : []
0 Face Zones
    Face Zone Name(s) : []
2 Volume Zones
    Volume Zone Name(s) : [volume, volume.1]   <---- Extra Volume Zone

1 Label(s)
    Names: [my_group]

Bounding box (-16 0 -17)
             (12 28 11)

📝 Steps to reproduce
Run following code:
from ansys.meshing import prime

with prime.launch_prime() as client :
    model = client.model
    mesher = prime.lucid.Mesh(model)
    mesher.read(file_name=prime.examples.download_block_model_fmd())
    mesher.surface_mesh(min_size=2.0)
    mesher.volume_mesh()
    mesher.write("test.cdb")
    print(model)
    mesher.read("test.cdb")
    print(model)

💻 Which operating system are you using?


[BUG] Enabling "cheat mode" doesn't appear to do anything

Tried turning on cheat mode in a singleplayer world. Testing in survival and creative, but dragging items from the emi panel into the inventory does not appear to do anything.
I assume you're supposed to give yourself items from the panel with this option enabled (similar to how TMI, JEI, NEI worked)?

CTRL+Left/Right click to give yourself stuff in cheat mode

Correct, EMI has rebindable controls for cheating in stacks, cheat mode just enables the ability to use this. They can be rebound to be layered on top of normal mouse buttons if preferred.

Ah, thank you! I'll try the keybinds later.
I still have the question of why clicking and dragging stacks doesn't work though?

It's simply not a feature

I'll note that it's very strange that you can drag things from the item panel. You just can't drop them into the inventory.
Why have that at all if there's no purpose to it?

some mods use the dragged "fake" stack for eg. setting item filters

some mods use the dragged "fake" stack for eg. setting item filters

Okay? But I'm talking in terms of EMI and the vanilla inventory. Is it so hard to put the dragged stack into the empty slot your mouse is over when you release the left mouse button?

Ctrl+Left-Click is lame. It only gives you a full stack and you have no control over where it puts it.
Please add drag and drop. Doing so would give EMI a massive advantage over other mods -Items mods and I wouldn't have to keep going back to the regular creative inventory for giving myself items.

I'll note that it's very strange that you can drag things from the item panel. You just can't drop them into the inventory.
Why have that at all if there's no purpose to it?

Dragging items is also used to set favourites, and if you have multiple favourites pages/sidebars, this is the way to choose which one your favourite is placed in. So alongside setting modded filters, it has at least 2 purposes.
Not to invalidate the feature request, it still seems convenient if possible, and reduces reliance on remembering so many hotkeys? Since mods can assign their own behaviour to the drag it seems like it could cause clashes though.


google-cloud-php-automl protobuf fail to push limit

I'm getting the error occurred during parsing: fail to push limit error, when trying to connect the client.
$this->autoMl = new PredictionServiceClient(
['credentials' => Settings::get('GOOGLE_APPLICATION_CREDENTIALS')]
);
I already try to copy the zip files direct to server and unzip there, but the issue remains. In windows I updated the library to google/protobuf 3.17 and it resolves the issue, when I send it to acquia server with git push the issue is still there. What can I do to resolve it? Thank you.

ubuntu
PHP 7.4
google/protobuf 3.17

@lrobelo please take a look at the following issue, I believe it addresses your concern here: https://github.com/googleads/google-ads-php/issues/566
Please feel free to re-open if you find otherwise, thanks!


Web - Search filters - Search result becomes empty after changing sorting order

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: 9.0.28-0
Reproducible in staging?: Y
Reproducible in production?: Y
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<EMAIL_ADDRESS>Issue reported by: Applause - Internal Team
Action Performed:

Go to staging.new.expensify.com
Go to workspace chat
Submit an expense with a category
Go to Search
Click Filters
Click Category
Select the category used in Step 3
Also select another category that has not been used in any transaction
Click Save
Click View results
Click on the sorting (Merchant, To, From etc)

Expected Result:
App will display the valid results
Actual Result:
Search result becomes empty after changing sorting order
This issue happens when two categories are selected in filters and one of the categories does not return results
Workaround:
Unknown
Platforms:

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

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

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/user-attachments/assets/6a709b25-affc-4965-b13c-2178422b5355
View all open jobs on GitHub

Proposal
Please re-state the problem that we are trying to solve in this issue.
Web - Search filters - Search result becomes empty after changing sorting order
What is the root cause of that problem?
In building the search filter string here
https://github.com/Expensify/App/blob/e60b8210a1f5a2471d8aa9d84d0e461774b791d6/src/libs/SearchUtils.ts#L557
we are concatenating the filter values with space which means AND so it will be searching for expenses which has two categories at the same time which will return empty
What changes do you think we should make in order to solve the problem?

We should change it to , instead
            filterValueString += `,${sanitizeString(queryFilter.value.toString())}`;

What alternative solutions did you explore? (Optional)

Hi! I am from SWM, an expert agency and I'd like to work on this issue. I am working right now on Search Header Page cleanup and i can fix this bug in the same pr.

Go ahead and link it! CC: @luacmartins

Linked here https://github.com/Expensify/App/pull/48538

PR in active review, Melv.

PR was deployed to prod last week. This is solved, closing.


Fix typo in docs about search

I want to merge this change because potsgreSQL is wrong, postgreSQL is correct.

Screenshots

Pull Request Checklist

[ ] Privileged views and APIs are guarded by proper permission checks.
[ ] All visible strings are translated with proper context.
[ ] All data-formatting is locale-aware (dates, numbers, and so on).
[ ] Database queries are optimized and the number of queries is constant.
[ ] Database migration files are up to date.
[ ] The changes are tested.
[x] The code is documented (docstrings, project documentation).
[ ] GraphQL schema and type definitions are up to date.
[ ] Changes are mentioned in the changelog.

Good catch! Congrats on your first PR to Saleor!


Added Values in PropertyRequirements for Name and Physical Context

Added Values in PropertyRequirements for Name and Physical Context for Voltage.
Fix syntax error.

Fixes #75


Reduce max sgpr usage by improving temporary register re-use

The recent change to 64-bit offsets reorganized the order in which some sgprs were allocated. In general, the change to 64-bit offsets did not increase the total number of required registers. But due to some quirks in the way the the register pool does allocations, the change in order meant register re-use could be affected.
A few kernels tuned into rocblas were affected, increasing the number of sgprs required over the maximum. This change updates the way some temp registers are allocated to improve register re-use. This change fixes the rocblas build.
As a future work on this, I'd like to improve the register pool code to fix a few strange cases I discovered while debugging this issue. For now, this change should unblock testing and rocblas build.

This fixes the issue by reducing distinct allocations in the sgpr pool that are required. Many of our sgpr allocations that are larger than a single register are either 2 or 4 and need to be aligned, often creating gaps in the pool. Odd size allocations like 5 registers are too large to re-use the common 2 or 4 register blocks, causing it to expand the register pool. Additionally because it is an odd number, the next allocation may also waste another register to fix alignment.
I ran a rocblas build locally and it builds successfully with this change.

This fixes the issue by reducing distinct allocations in the sgpr pool that are required. Many of our sgpr allocations that are larger than a single register are either 2 or 4 and need to be aligned, often creating gaps in the pool. Odd size allocations like 5 registers are too large to re-use the common 2 or 4 register blocks, causing it to expand the register pool. Additionally because it is an odd number, the next allocation may also waste another register to fix alignment. I ran a rocblas build locally and it builds successfully with this change.

Thanks for your explanation.
That is good to know.
By the way, I started a new PR (#1692) for extended test issue fix.
The failed case should be OK with this fix.


Split bar not working

Hello,
first I'd like to say that I really like this project!
Unfortunately, I am not sure why, but I cannot resize the navbar using the split bar.

I noticed it had size of 1px so I changed it to something higher, hence its width on the picture, but it is unresponsive.
I would gladly provide any additional information though I am not a front end guy, so not sure what or where to look for it..
I am using doxygen 1.9.6 and I pulled latest version of this repo.

The screenshot makes me guess that you are using the sidebar only theme variant? Unfortunately sidebar resizing is not available in this variant due to how the theme achieves (or rather: hacks) this kind of layout.

@jothepro Thanks for the response you are absolutely correct! I'll consider not using the sidebar only theme.
BTW would it be possible to have this as a feature request? I very much prefer the sidebar only variant as it is really clean and neat.

This is not on my roadmap atm, I guess it would require some more investigation and a lot of ugly Javascript. But I learned in the past to never say never, so I'll keep this issue open for now. 😉

Upvote


Rewrite filtering.deno to rust.

Uhm, the PR was merged even though there are unresolved review comments :(

Ah, apparently, I reviewed an already approved PR :)


fix: EnumInt intrinsic to return Int32

World's tiniest PR, fixing an issue introduced in d3179183a09bd31f51ba480ba833cb78c987d270 where EnumInt(...) was resolving to UInt32.

👍

👍


Fix neutron_api uptime panel calculation function

This PR fixes #44.

@kaiokmo is there a reason this is limited to the neutron API panel, and not the other panels?

Disregard that last response, I did not correctly identify what was being changed here. I see you are fixing the obvious bug in that one panel.


Adding additional conditions before generating JWT token

Greetings,
I have read the doc but there is an information I haven't found yet: How can I add additional logic to the token creation?
At the moment, it only checks for the username/password pair to validate the authentication and create a token. But what if, for instance, I want to check is the user has not been deactivated in DB, or if it has the right to connect at this particular time of the day, or any other condition?

Perhaps you mean this? https://symfony.com/doc/current/security/user_checkers.html

Yes indeed, that did the trick.
However, since it LexikJWTAuthenticationBundle is acting (or seems to be acting) like a checker as well, it might be a good idea to add the link to the doc, just to make sure people know they have to use the default symfony one rrather than looking for something like that in this bundle.
Thanks!


Failed to fetch standard library grit module

I'm setting up grit for the first time and trying to test a pattern I've created.
When I run the grit, I get an error
$ grit apply props_use_swagger

Error: Failed to fetch standard library grit module getgrit/stdlib: Failed to clone repo getgrit/stdlib: authentication required but no callback set; class=Ssh (23); code=Auth (-16)

I've also tried logging in through grit auth to see if it fixes it, but it hasn't.
Note that I've installed and am using grit with nushell, but I seem to have the same issue when running through zsh.

This is the only pattern I have
// ~/.grit/patterns/<redacted>/common.grit

language js

// Find cases where a member of a prop is imported from swagger types
pattern props_use_swagger() {
  `interface $interface { $entries }` where { and {
    `interface` <: r`Props$`,
    `entries` <: contains `$name: $type` where {
      $type <: ensure_import_from("@/types/swagger")
    }
  } }
}

Can you share your ~/.git/config? It looks like something in your system is trying to force git clones to use SSH.

My guess is it's that url/insteadOf business, I'll turn that off for now.
I'll update if that fixes the issue
[user]
        name = <redacted>
        email = <redacted>
[core]
        editor = nvim
        excludesFile = ~/.gitignore
[url<EMAIL_ADDRESS>        insteadOf = https://github.com/
[rerere]
        enabled = true
        autoUpdate = true
[branch]
        sort = -committerdate
[column]
        ui = auto
[maintenance]
        repo = <redacted>

Thanks Morgante, I'm getting a different error now, which probably good
ERROR (code: 200) - Invalid kind for container: codeSnippet

If this is related to the pattern I defined, rather than loading the std lib, then I guess this can be closed!

Yep, that's related to your pattern. The problem is the left hand side of a <: operator needs to be a variable.
I think this is what you're looking for
// ~/.grit/patterns/<redacted>/common.grit

language js

// Find cases where a member of a prop is imported from swagger types
pattern props_use_swagger() {
  `interface $interface { $entries }` where {
    $interface <: r"Props(?:.+)",
    $entries <: contains `$name: $type` where {
      $type <: imported_from(`"@/types/swagger"`)
    }
  }
}


seecomp-profiles for admin-side car docker compose

Industry std for docker files. Will need to explore how javascript flow's dependency escapes sandboxing to glibc.
Would be nice to have this

Closing this issue due to lack of activity. Please feel free to comment if this should be re-opened.


Fixed HighScores not updating upon Justification

Fixed Error where High Score Items would not update on dashboard when there was changes made! Just changed around the code a little bit and now it works.

Excellent!  Will merge when tests pass.

@mikegrima hey feel free to check out my slackbot api starter implementation as well if you want to merge it as well, I'm not sure it passed all the check though #1086

Coverage remained the same at 72.992% when pulling 31f0d8e1808cd7a22375675b878b3d136c73b317 on drewgallis:develop into 97ecb33bf909541e87ec3dd37900e050dda8b9a4 on Netflix:develop.


Compatibility with Rhino 7 for Mac

I have a student who is using Rhino 7 for Mac (directly not with a virtual machine) and having trouble specifically with loading the robot system where the component fails to collect data. I tried the typical issues of ensuring the correct .gha, .dll +.xml and .3dm libraries were installed (and unlocked - not sure if that is necessary on Mac) but the problem persists. Is Rhino 7 for Mac supported at this time? Are there any specific steps necessary to install on a Mac?

I was able to try it out myself on a vanilla Mac running Rhino 7 and was successful - the only difference is that the Robots folder with the libraries should go in HD>Users>[username] instead of the Documents folder for the Windows install. Otherwise everything was essentially the same as the windows install.


no data error when adding a playlist

2022-10-17 15:57:10.993 [main] DEBUG a.deezer.http.impl.DefaultHttpClient - Request: method=GET, url=https://api.deezer.com/user/me/playlists, params={access_token=, playlist_id=860557, request_method=post}
2022-10-17 15:57:11.056 [main] DEBUG a.deezer.http.impl.DefaultHttpClient - Response: status=200, body={"error":{"type":"DataException","message":"no data","code":800}}
api.deezer.exceptions.DeezerException: {"error":{"type":"DataException","message":"no data","code":800}}

Hi @constructivetim, is 860557 a valid playlist_id? Because this playlist is not even accessable from a browser...
https://www.deezer.com/en/playlist/860557

Hi @constructivetim, is the problem still actual?

Closing the issue since no response received from the author.


Hologram without saving ability

What about adding a hologram that would not be stored in the config? I personally don't want holograms in the config that are, for example, for VoidChest or similar.

Good idea, I'll add a flag to the hologram

@OliverSchlueter I already created a PR for something similar, but you rejected it :( https://github.com/FancyMcPlugins/FancyHolograms/pull/33


Cleaned python diagnostics

This PR addresses some issues mentioned in #651.
Furthermore, after #538 the object-oriented data extraction classes introduced in #511 and #515 are no longer necessary. Right now, I am the only one who used them so they can be safely removed. This generalizes the data extraction and makes it more consistent (every python diagnostic uses the same functions now, those of #538, e.g. select_metadata, group_metadata, etc.).

The Codacy issue was caused by yapf, should I change it or leave it like that?

Furthermore, after #538 the object-oriented data extraction classes introduced in #511 and #515 are no longer necessary. Right now, I am the only one who used them so they can be safely removed.

I'm afraid I'm using them. Sure I can change as well but that's a lot of work and I thought I was nearly finally nearly finished with this recipe (version2_EVal4CMIP_H2O in ESMValTool-private, recipes/testkw/recipe_deangelis15nat.yml, diagnostics diag_scripts/testkw/deangelis1b.py deangelis2.py and deangelis3.py).

Sorry, I really thought I was the only one using them. Guess I should have refactor this code earlier...:grin: I will add the deleted files again.

Sorry, I really thought I was the only one using them. Guess I should have refactored this code earlier...grin I will add the deleted files again.

Thanks! But now I really wonder how to go on since I need to change something in my diagnostic:

I could get it using the old structures, but if the aim is to remove them at some point I guess I should not put more work into using them?
I could change to the new ones, but then I should probably change to them in the diagnostic completely. This is more work then (1). Therefore I wonder if I can be sure that the new ones stay there or if I'll have such a change in some month again to whatever is the latest version at that point?
I could rewrite my diagnostics to be as independent as possible from the shared files. Then it would be less effected by changes but that is against the idea to use as much things common as possible?

I would definitely go for solution 2. The new convenience functions (select_metadata, group_metadata, etc.) are now the "official" ones and won't change any more (at least I hope that 😁). I only wrote the other functions because the new ones didn't exist at that time. I think we should use as many common shared diagnostics as possible.

Unfortunately that is really a lot of work. It probably should be better, but it to come around the variable limit in prospector I worked with several internal functions, which I then need to rewrite all because the structures changed. In principle I support the idea of using as much as possible from "shared" but this means also that even small changes there (if e.g. something is converted from a list to a dictionary) involve changes in a lot of diagnostics.


[CI] use sccache

Motivation
Use sccache to speed up builds.
Summary of sccache implementation

stored via CircleCI's builtin cache
indexed by build type (dev, release) and date
rebuilt in the first PR of the day
1.5 min overhead to install sccache
0.5 min overhead to retrieve cache
1.5 min overhead to save cache

Overall Gains

9.5 min -> 6.5 min in build-dev
8 min -> 4.5 min in build-release

Test Plan
CI

I believe @metajack had interesting experiments re:sccache in #507, #619, #908

This looks identical to my initial version, which ended up being a wash, however, Young has a lot more knowledge of CircleCI due to 9 months of other improvement work, so it might work now. Also, we should test sccache on GHA to see if it works there.

@bors-libra delegate=sausagee

:v: @sausagee can now approve this pull request

Those gains look worth it to me.   If we get our act together with features we may need to revisit this (less to compile may mean time savings is negated).

@bors-libra r=rexhoffman

:pushpin: Commit 527368f has been approved by rexhoffman

:hourglass: Testing commit 527368f0a8604aa6925f4550a670b7c0085c52a1 with merge cae53eff0d85d03ec21e3e130843701b3a085d31...

:sunny: Test successful - checks-actions_land_blocking_test, checks-circle_commit_workflow
Approved by: rexhoffman
Pushing cae53eff0d85d03ec21e3e130843701b3a085d31 to master...


Remove old circuit constructor

The old circuit constructor does not have support for multi-qubit gates. With the implementation of the new circuit constructor, remove the old one from use from the entire repository

There is a requirement to make a new circuit constructor first. Perhaps it is better to stick to the qiskit implementation rather than custom circuit abstraction

It is infact better to convert the entire hamilutor to handle gates and circuits using the qiskit QuantumCircuit class


once per import file, not for each record

I'm fairly new to rails and RailsAdmin
I was looking for a workaround to achieve any "once per import" method/hook, not the before_import_save/after_import_save which trigger for each record in import request.
How to achieve this?

Sorry for the long time in getting back to you. What would you do in a once per import hook? What kind of context would you expect to be passed to it? What would it return?

I added basic global hooks before_import and after_import

  def self.before_import
    # called on the model class once before importing any individual records
  end

This hook has resolved my query.
Thank you so much. This gem has helped me a lot.


Poor error message for misnamed packed in cabal file

When for instance I add resource (when I meant to add resource) to a cabal file, mafia gives a really horrible error message.
I shouldn't be too hard to check all the package names against the global cabal package name list and the locally defined submodules and give a much better error message.

I was hoping to start contributing to Mafia. Would this be a good piece of low-hanging fruit for me to start out with?

This one probably is not and easy one, but #178 probably is.


Added a config parameter auto.create.tables.replicated

Solution for #62. Added a config parameter auto.create.tables.replicated that controls replicated tables creation.
In this logic I use a separate config parameter use.replacingmergetree.is_deleted.column as a flag to manage tables creation. If true - use is_deleted column if supported, otherwise use _sign.

In my environment I use Replicated engine for a autocreated database if auto.create.tables.replicated is true. It's the easiest way to replicate DDL without adding ON CLUSTER clause in queries. I can add this feature by PR too. @subkanthi, what do you think about it?


Using better composer flags to speed up travis

Question
Answer

Bug fix?
no

New feature?
no

BC breaks?
no

Deprecations?
no

Tests pass?
no

Fixed tickets

License
MIT

Doc PR

Description
Added some composer flag to run tests faster. When min-stabillity:dev was added to the composer.json we started to clone dependencies. That is awfully slow. Now it will only take dev-master dependencies if there is no stable version.

Test
Before
After

Coverage
14 min
7 min

Normal
12 min
6 min

Current coverage is 78.92% (diff: 100%)

No coverage report found for master at bce18cb.

Powered by Codecov. Last update bce18cb...737704b


Scan discard area

For all the Undead cards that count cards in the discard area, it would be nice if it was possible to scan that, too.

Hi Nicolai, thank you for your feedback.
But for me you can already do that. There is a dedicated "Discard area" button next to "Add player".
On that screen you have the "Scan" option to detect cards from the discard area.
Example : if a player has the "Dark queen" card and discard area contains 5 Lands, a bonus of +25 is effective.
Maybe "Discard area" is not well translated. Which language do you use ?
I'm currently working on replacing this button by a dedicated element in player list. I hope it will be more clear.
(I admit I'm still looking fo rthe best way to display that part)
Best regards

Yes, the translation confused me. It's "Bereich verwerfen" which means "clean up" so I expected it to clear the player list. If I remember correctly, the discard area is called "Ablagebereich" in German. I'll double-check later and when I have some time, I can open a pull request with different translations.

As I though.
I'm using google translate for common buttons and labels. I, of course, don't have the game in all languages (only french).
If you can confirm the exact name used in the rules, I will update it directly in my current dev branch.
I plan to release a new version today.

I just checked and opened #15 for that.

Thank you very much for you contribution.
I still have few tests to perform and I will release it.


Convert View MP Components to Mid Fi Designs

Definition of Ready

[x] Does this meet the INVEST criteria?
[x] Does this have a clearly defined user?
[x] Does this have an estimate?
[x] Does this have acceptance criteria?
[x] Does this have sufficient context (wireframes, business rules, etc.)?
[x] Is this traceable to a feature, epic, or PI?

User Story
As a user
I want to view MP Methods using the mid fidelity design
So that I have a better experience
Acceptance Criteria
Given a user has accessed MP Components
When it is viewed
Then it is displayed according to the wireframes
Context
https://xd.adobe.com/view/dccab567-3abe-484a-bff7-844d701cd4eb-8999/
See design decision made on 7/14
Decision: Decision: When modal CTAs are displayed, then all buttons are right aligned. This diverges from mid fi wire frames, but was agreed to by the team on 7/14.
Testing
Test Case: TC239
Tester: @mosesdeeCVP
Definition of Done

[x] Have all Acceptance Criteria been agreed to and validated by the scrum team?
[x] Has the code been unit tested and peer reviewed?
[x] Have the functional tests been executed?
[x] Have all defects been reviewed and dispositioned, resolved, or deferred?
[x] Has the user story been accepted by the Product Owner?
[x] Is the user story ready to be deployed to the test/staging environments?

@mosesdeeCVP @tdavydets @Qb10 @cvp-alexrobinson See updated context in this feature for decision re: button alignment
cc: @jwhitehead77 @AllisonFrancis

Test Passed


Revisit server1/server2 and case1/case2 and value1/value2 naming in Servers, oneOf, allOf/anyOf

Revisit server1/server2 and case1/case2 and value1/value2 naming in Servers, oneOf, allOf/anyOf.
We don't like the names, we should derive better unique names, e.g. based on:

Swift type
JSON path
user-provided description
something else inherent

We just have to keep in mind that in many cases (e.g. inline schemas), we don't have a unique name to use, and might need to derive one - there we need to watch out for potential naming conflicts.

@simonjbeaumont to gather some data.

Precedence for geneating types using schema composition
Background

https://spec.openapis.org/oas/v3.0.3#schema-object
https://json-schema.org/understanding-json-schema/reference/combining.html#anyof

Inputs
I decided to use the following snippet of OpenAPI YAML for this research:
components:
  schemas:
    Badger:
      type: object
      properties:
        b:
          type: boolean
    Mushroom:
      type: object
      properties:
        m:
          type: integer
    Snake:
      type: object
      properties:
        s:
          type: string
    MyAnyOf:
      anyOf:
      - $ref: '#/components/schemas/Badger'
      - $ref: '#/components/schemas/Mushroom'
      - $ref: '#/components/schemas/Snake'
    MyAllOf:
      allOf:
      - $ref: '#/components/schemas/Badger'
      - $ref: '#/components/schemas/Mushroom'
      - $ref: '#/components/schemas/Snake'
    MyOneOf:
      oneOf:
      - $ref: '#/components/schemas/Badger'
      - $ref: '#/components/schemas/Mushroom'
      - $ref: '#/components/schemas/Snake'

Generators
I'll use the following set of generators initially:

openapi-generator -g swift
openapi-generator -g go
openapi-generator -g rust
openapi-typescript
openapi-typescript-codegen

Outputs
I've tried to capture just enough of the output for each generator to draw themes about the question at hand.
openapi-generator -g swift
struct MyAnyOf: Codable, JSONEncodable, Hashable {
    var b: Bool?
    var m: Int?
    var s: String?
}

struct MyAllOf: Codable, JSONEncodable, Hashable {
    var b: Bool?
    var m: Int?
    var s: String?
}

public enum MyOneOf: Codable, JSONEncodable, Hashable {
    case typeBadger(Badger)
    case typeMushroom(Mushroom)
    case typeSnake(Snake)
}

openapi-generator -g go
type MyAnyOf struct {
	Badger *Badger
	Mushroom *Mushroom
	Snake *Snake
}

type MyAllOf struct {
	B *bool `json:"b,omitempty"`
	M *int32 `json:"m,omitempty"`
	S *string `json:"s,omitempty"`
}

type MyOneOf struct {
	Badger *Badger
	Mushroom *Mushroom
	Snake *Snake
}

openapi-generator -g rust
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct MyAnyOf {
    #[serde(rename = "b", skip_serializing_if = "Option::is_none")]
    pub b: Option<bool>,
    #[serde(rename = "m", skip_serializing_if = "Option::is_none")]
    pub m: Option<i32>,
    #[serde(rename = "s", skip_serializing_if = "Option::is_none")]
    pub s: Option<String>,
}

#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct MyAllOf {
    #[serde(rename = "b", skip_serializing_if = "Option::is_none")]
    pub b: Option<bool>,
    #[serde(rename = "m", skip_serializing_if = "Option::is_none")]
    pub m: Option<i32>,
    #[serde(rename = "s", skip_serializing_if = "Option::is_none")]
    pub s: Option<String>,
}

#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct MyOneOf {
    #[serde(rename = "b", skip_serializing_if = "Option::is_none")]
    pub b: Option<bool>,
    #[serde(rename = "m", skip_serializing_if = "Option::is_none")]
    pub m: Option<i32>,
    #[serde(rename = "s", skip_serializing_if = "Option::is_none")]
    pub s: Option<String>,
}

openapi-typescript
export interface components {
  schemas: {
    Badger: {
      b?: boolean;
    };
    Mushroom: {
      m?: number;
    };
    Snake: {
      s?: string;
    };
    MyAnyOf: components["schemas"]["Badger"] | components["schemas"]["Mushroom"] | components["schemas"]["Snake"];
    MyAllOf: components["schemas"]["Badger"] & components["schemas"]["Mushroom"] & components["schemas"]["Snake"];
    MyOneOf: components["schemas"]["Badger"] | components["schemas"]["Mushroom"] | components["schemas"]["Snake"];
  };
  responses: never;
  parameters: never;
  requestBodies: never;
  headers: never;
  pathItems: never;
}

openapi-typescript-codegen
export type MyAnyOf = (Badger | Mushroom | Snake);
export type MyAllOf = (Badger & Mushroom & Snake);
export type MyOneOf = (Badger | Mushroom | Snake);

Learnings
The above outputs show different strategies for handling schema composition,
including flattened types, union types, variant types, etc.
However, none of them seem to need to make use of an index-based naming, e.g.
case1, case2, etc.

Yeah if constrained to just references to objects as subschemas, those can be handled pretty well, because they have a global name.
But all of these aggregate types (except for oneOfs with a discriminator) can have any schema as a subschemas, and those types can be inlined (in which case you don't have a global name) and don't even have to be unique (you can have two string schemas that only differ by their regex constraint).
Curious to see the output for the following additional subschemas:
- type: string
- type: string
- type: string
  enum:
    - foo
- type: integer
- type: object
- type: object
  properties:
    foo:
      type: string

I also suspect that variadic generics in Swift could help us here, but all this was designed before they were available.

Those set of subschemas won't work for all of the schema composition methods, because they cannot be used in conjunction in some cases in an OAS-compliant way. However, I threw them into the generators and updated the comment with the findings.
Still no index-based typenames.

Sure, in the case of allOf and anyOf, there are some mutually incompatible schemas, but the oneOf should be able to support all 10 schemas. From the above, it seems none of the generators were able to generate more than 8, and some stopped at 7.
And getting all the way to 10 is where they'd have to choose either an order-based name, or create a unique name from the contents, such as string_with_pattern_backslash_d_minItems_10_... etc. The order-based name is a lot simpler to implement, but the content-based name would also work.
Would love to see a generator that can actually handle all 10 cases, and which method of naming they chose.

but the oneOf should be able to support all 10 schemas.

I don't think that's true. For example you suggested these:
- type: string
- type: string
  pattern: '\d'
- type: string
  enum:
    - foo

which cannot work because it needs to satisfy (exactly one)^1. But the first is always satisfied, which is why I think some of the generators skipped it (there was some diagnostic output to this effect too).

Good catch, let me amend to:
- type: string
   pattern: '\w'
- type: string
  pattern: '\d'
- type: string
  enum:
    - foo

I ran into a similar case today and I would suggest using the json-schema compliant annotation "title"  https://json-schema.org/understanding-json-schema/reference/annotations
In case of collision, simply default to case1 like we do today, perhaps with a warning 🤷

Hi @jordanebelanger,

In case of collision

so far we've avoided naming entities based on their sibling entities. I.e. a name of an entity depending on a naming conflict. The reason for that is because then renaming one entity changes the name of another entity as well, likely leading to an unexpected API break.
Our naming logic, for now, has these requirements:

purely based on the named entity (and optionally its parents), but not siblings (i.e. no changing of names in case of conflicts, the naming scheme itself must avoid conflicts)
deterministic, easy to guess by just reading the OpenAPI doc

The issue with title is that it's not required, and it doesn't have to be unique. Those two properties don't make it a very good signal for naming.
That said - the title should appear at least in the generated doc comment - are you seeing it there?


Env creation maybe with github action

not required anymore. i want it totally local. but decided to go with a multi launc option.
What i need now instead is, when a delete is wanted, to check:

if a task is still running
ask the user if they really really want to delete

Otherwise resources are shared but separated by user and simulation. so one env is enough

change the title from "Env creation maybe with github action" "safe resource deletion"


Switch from setattr to decorators?

I notice in __init__.py, you use setattr metaprogramming to make Visdom methods work on both Torch tensors and numpy arrays. This seems to be confusing static analysis with Jedi, causing autocomplete for Visdom methods to fail in various IDEs.
How would you feel about switching to using a decorator for methods that  take can a tensor or array instead of setattr? That would be more transparent to static analysis tools and restore autocomplete. Arguably it's also cleaner, since the annotation that a method works on tensors and arrays would be inline with the method instead of that logic happening in a seperate block.
I can submit a PR for discussion.

I've always found our current use of setattr to be a rather hacky support, but I haven't been able to take the time to work through an alternate solution. If you have something else in mind that works I'd be more than happy to take a look at it!

Closed by https://github.com/facebookresearch/visdom/commit/2305c7ceca35e19a4d8411556ed2f8d535a37fe8


Fix the check for data in prestart.js

It appears to be a bug in prestart.js that only returns the script if the file is empty.

Yes, definitely a bug.


Iron Trapdoor Recipe Not Correct

Describe the bug
The recipe for Iron Trapdoors that is getting registered requires 4 iron trapdoors to make 8 iron trapdoors.

This screenshot is from the MoreIronTrapdoors class which shows that ingredient 'x' is getting set to Material.IRON_TRAPDOOR as opposed to Material.IRON_INGOT

Fixed with #140 will be included in v2.0.6


noto_lint.py <name/*> errors

I'm not sure if these <name/ attributes are generated or just passed from the glyphs input file (cc @dougfelt ), but noto_lint.py generates errors (the following were from linting NotoSansArmenianCondensed-Bold.otf )
E <name/family> The family is 'Noto Sans Armenian Condensed' but was expecting 'Noto Sans Armenian Condensed Bold'
E <name/postscript_name> The postscript name is 'NotoSansArmenianCondensed-Bold' but was expecting 'NotoSansArmenian-CondensedBold'
E <name/preferred_family> The preferred family is not set, but was expecting 'Noto Sans Armenian'
E <name/preferred_subfamily> The preferred subfamily is not set, but was expecting 'Condensed Bold'
E <name/subfamily> The subfamily is 'Bold' but was expecting 'Regular'
E <name/trademark> The trademark is 'Noto is a trademark of Google Inc. and may be registered in certain jurisdictions.' but was expecting 'Noto is a trademark of Google Inc.'
E <name/vendor_url> The vendor url is 'http://code.google.com/p/noto/' but was expecting 'http://www.google.com/get/noto/'

BTW, here's a complete list of lint errors for NotoSansArmenianCondensed-Bold.otf (again: I'm not certain which attributes are generated and which just passed from the glyphs input file):
E <cmap/script_required> The following 15 characters are missing from the font: 0028..0029, 002C..002E, 003F, 00A7, 00AB, 00BB, 02BB, 2010, 2014, 2019, 2024, 2026.
E <cmap/tables/unexpected> 'cmap' has a subtable of (format=4, platform=0, encoding=3), which it shouldn't have.
E <head/hhea/ascent> Value of ascent in 'hhea' table is 1068, but should be 2189.
E <head/hhea/descent> Value of descent in 'hhea' table is 292, but should be -600.
E <head/os2/descender> Value of sTypoDescender in 'OS/2' table (-292) is different from the value of Descent in 'hhea' table (292), but they should be equal.
E <head/os2/fstype> Value of fsType in the 'OS/2' table is 0x0008, but should be 0.
E <head/os2/windescent> Value of usWinDescent in 'OS/2' table (292) is different from the opposite of value of Descent in 'hhea' table (292), but they should be opposites.
E <name/description> The description is not set, but was expecting it to match '^Data unhinted. Designed by Monotype design team.$'
E <name/designer> The designer is 'Monotype Design team' but was expecting 'Monotype Design Team'
E <name/family> The family is 'Noto Sans Armenian Condensed' but was expecting 'Noto Sans Armenian Condensed Bold'
E <name/postscript_name> The postscript name is 'NotoSansArmenianCondensed-Bold' but was expecting 'NotoSansArmenian-CondensedBold'
E <name/preferred_family> The preferred family is not set, but was expecting 'Noto Sans Armenian'
E <name/preferred_subfamily> The preferred subfamily is not set, but was expecting 'Condensed Bold'
E <name/subfamily> The subfamily is 'Bold' but was expecting 'Regular'
E <name/trademark> The trademark is 'Noto is a trademark of Google Inc. and may be registered in certain jurisdictions.' but was expecting 'Noto is a trademark of Google Inc.'
E <name/vendor_url> The vendor url is 'http://code.google.com/p/noto/' but was expecting 'http://www.google.com/get/noto/'
E <name/version> The version is '1.000' but was expecting it to match '^Version ([0-2]).(\d{2}) uh(?:;.*)?$'

@marekjez86 is this a fontmake issue, or just a font issue (i.e. source data not matching expectation of the linting tool)?


YOLOv8  train

Hello Dr. Maëlic, I am new to the SGG task. When applying your project to my dataset, I was able to obtain some results using the predcls mode. However, when I switched to the sgdet mode, the mAP remained 0 throughout the training from start to finish, and the model seems to have detected nothing.
I have used YOLOv8 to train my own dataset.
e2e_relation_yolov8m_squat.txt
Could you please provide me with any insights or suggestions that might help me resolve this issue?
sgdet

Thank you

python tools/relation_train_net.py --task predcls     --config-file "configs\MyPSG\e2e_relation_yolov8m_squat.yaml"   SOLVER.IMS_PER_BATCH 8  TEST.IMS_PER_BATCH  1  DTYPE "float16"  GLOVE_DIR /mli/v24      TEST.INFORMATIVE False   OUTPUT_DIR ./checkpoints/mypsg_squat_1

Hi, you need to use NMS_THRESH: 0.001 when training for sgdet, if you don't, it is very likely that your object detector won't output anything. You can change this variable only for inference with a trained model.
The variables MIN_SIZE_TRAIN and MAX_SIZE_TRAIN are also not correct, they should be similar to MIN_SIZE_TEST and MAX_SIZE_TEST, and the same as your yolov8 training (by default yolov8 is trained with resolution 640).
Finally, the variable BASE_LR: 0.001 seems very low for a training with only 6 classes, depending on your data distribution you may higher that by a x10 or x20 factor.
These are the mistakes I can quickly identify from your config file.

Thank you for your response and for pointing out my mistake. I will try the approach you recommended. I have one more question: I came across a file named e2e_relation_detector_yolov8.yaml. After training with YOLOv8, do I still need to use this file for additional training? I read some of Kaihua's documentation, and it left me a bit confused.

No you don't need this file, it is for testing only. If you want to test your yolov8 trained model with my codebase you can by using this config file with the https://github.com/Maelic/SGG-Benchmark/blob/main/tools/detector_pretest_net.py test script. But it is not very useful and you may not consider it.

Hello Dr. Maelic,   Thank you for your guidance. I have achieved good results on my dataset. I would like to ask you, if I proceed with further experiments using the modified YOLOv8, should I modify the out_channels to be consistent with the modified YOLO structure? Also, I noticed that the feature extraction uses layers 15, 18, and 21 of YOLO. Should I also ensure consistency in this regard? And what about the size of the feature maps? Additionally, I noticed the YOLOPooler in the code files, but it seems to be commented out. I am currently studying the code and examining the implementation details, and so far I haven't found any other places where YOLOv8 is coupled.
Thank you once again for your support. If I am able to publish a paper in the future, I will definitely cite your great work.

Hello,
Yes you need to modify out_channels if you change the yolov8 version, as follows:

YOLOV8 nano:    64
YOLOV8 small: 128
YOLOV8 medium: 192
YOLOV8 large: 256
YOLOV8 x-large: 320

The layers 15, 18 and 21 correspond to the outputs of the PAN-FPN module of Yolov8, you can have an overview of the architecture here. In my opinion, extracting features from these layers after the last C2f modules before the Detection Head of YOLOV8 is the most efficient approach. I guess you could change this and extract features from other layers, for instance straight out of the backbone with layers 4, 6 and 9 but I think this will lead to worse results. The PAN-FPN part of yolov8 (called the "Neck") is responsible for enhancing the features to represent bounding boxes information at 3 different scales, to better detect small (20x20 px), medium (40x40 px) and large (80x80 px) objects. If you extract features before or after that step, there is a high chance that your representation will be worse. You can have a read of the original FPN paper and the original PAN paper to understand the overall process of features extraction of YOLOV8.
Because YOLOV8 is slightly different from classical Faster-RCNN with FPN, I had to change a bit the Pooler. I created a YOLOPooler class to pool features at fixed scales, the 20x20, 40x40 and 80x80 that I just mentionned (see https://github.com/Maelic/SGG-Benchmark/blob/73c2ecbc54b2f5ddff834991ce905eae1590e5b2/sgg_benchmark/modeling/poolers.py#L236C1-L242C1). However, this doesn't seem to be better than the original FPN equation (see https://github.com/Maelic/SGG-Benchmark/blob/main/sgg_benchmark/modeling/poolers.py#L40-L43) and I had trouble to make it worked. Ultimately, I didn't use my YOLOPooler class for this reason.


Root version in package-lock.json is outdated

Describe the bug
For contributors, running npm install using the latest Node LTS leads to a change in package-lock.json because the root version field is not up to date.
To Reproduce
Steps to reproduce the behavior:

Follow contributing guidelines
Run npm install
git diff

Expected behavior
No changes.

Hi, I'm not sure if I am completely misunderstanding something here, but it seems like you are including your node_modules folder in the published extension, which - AFAIK - should never be necessary.


Very short segments lead to many extraneous points

Consider a glyph designed for CNC routers which cannot change direction quick enough to draw sharp corners; you have to add tiny line segments to help change direction:

Sample glif:
<?xml version="1.0" encoding="UTF-8"?>
<glyph name="A" format="2">
        <advance width="600"/>
        <unicode hex="0041"/>
        <outline>
                <contour>
                        <point x="0" y="150" type="move"/>
                        <point x="100" y="150" type="line"/>
                        <point x="100" y="141" type="line"/>
                        <point x="0" y="0" type="line"/>
                </contour>
        </outline>
</glyph>

Unfortunately when this is stroked with MFEKstroker, you get lots of weird points:

Which (when combined with #15) makes the outline really bad...

Mitigating #15 will fix the problems in the top right, but the bottom right is still urgh.

please post the full MFEKstroke command line which generated this

./target/debug/MFEKstroke CWS --width 75 --input cnc.glif --output cnc-stroked.glif

@simoncozens For such a small patch, my #15 patch to flo_curves sure is providing a lot of benefit even to things I wasn't thinking about at the time:

The difference between left and right is just increased strictness of accuracy. I played around with it a bit to try to make it perfect, but didn't quite get there I'm afraid. Maybe another time. However, certainly this is much better than what you've got.

For more information:

FontForge is able to perfectly join the path. I'm not seeing any downsides to this method, and compared to somehow re-adding information about the original points to fix_path—the function in VWS.rs that actually adds the joins and therefore needs to be able to determine a circular arc's center—very simple. I'm quite pleased with it.

Yeah, that’s a very nice approach.

@simoncozens You can now simply provide --segmentwise to MFEKstroke. In case you are hooking into this library directly, the commit https://github.com/MFEK/stroke/commit/7fcf9d0dde09e1451f3a406b137b85d5ea523b11 may be instructive.

With that change, I'm getting Empty piecewise has no start point.
equal.glif:
<?xml version='1.0' encoding='UTF-8'?>
<glyph name="equal" format="2">
  <advance width="554"/>
  <unicode hex="003D"/>
  <outline>
    <contour>
      <point x="454" y="422" type="move"/>
      <point x="100" y="422" type="line"/>
      <point x="100" y="423" type="line"/>
    </contour>
    <contour>
      <point x="454" y="222" type="move"/>
      <point x="100" y="222" type="line"/>
      <point x="100" y="223" type="line"/>
    </contour>
  </outline>
</glyph>

Command line:
MFEKstroke CWS --segmentwise --input equal.glif --output equal-stroke.glif --width 25

@simoncozens I think I found the issue. See https://github.com/MFEK/math.rlib/commit/26e0073c57d75e9eb963177614332bb567907692
He was using whole units as a check for colocated handles, which is way too large I think.
It works for me now.

Using --segmentwise I am still having this issue

That strikes me as perhaps being caused by rounding to integer done for TTF format?

From our own tests, the Expand Stroke function in FontForge seems to remain the best rendering from our skeletal / monolinear drawings, see screenshots (even slightly better than Noodler script on Glyphs App and similar to Outliner script in Robofont). Can Ufostroker use the script library behind Expand Stroke in FontForge to improve the TTF / Fontmake / MFEK export process? Apparently @ctrlcctrlv already mentioned similar remarks earlier.

@RosaWagner I think the behavior you are seeing is expected because you're using oval shaped caps/joins and not round ones.
Unlike a lot of similar software, MFEKstroke supports both.
Make sure to use JoinType::Circle and CapType::Circle, not Round. @simoncozens will know if his Python thing supports the distinction.

Thanks @ctrlcctrlv I gonna try that and give you feedback

It's not going to work because I didn't know about circle - when I looked at the code it only had round and square. I'll add support for that.

OK, please try upgrading to ufostroke v0.2.4 and setting pre=True,Startcap="round", Endcap="round", JoinType="round" in your fontmake command line.

Still with the weird segment joins:

Did you misread @simoncozens ? You need "circle", not round.

"Circle" → circular arcs.
"Round" → elliptical arcs.
To be clear, it's possible "circle" is broken. I'll look into if so. But please confirm you are using the right one.

I’m easily confused and gave Rosalie bad information. Trying again.

More points, still not smooth

Because "more points" isn't necessarily considered by me to be a problem, unless those are their actual locations at f32 accuracy…I had planned for Bézier simplification to be part of MFEKpathops by the way—unfortunately, MFEK Foundation Grant № 4, Series of 2022 badly fell through, @prajwalprabhu wasn't able to finish it. It's possible I'll do it myself. One of the ways to simplify a Bézier path (to the degree it's acceptable for type design) is to try to draw elliptic arcs between the segments as well as the normal best-fit thing you're doing, to see which is better. If the elliptical is better, you can take segments of your overall path and express them as elliptical arcs, which are much easier to turn into Bézier at n accuracy.
MFEK Fndn №4 of 2022 will get done somehow. Either I will reassign it or do it myself (revoke it).

Thank you, I will look into. Just needed to confirm that. Can I have the exact input A shape?

(Also I consider this a new issue so will open a new one and not reopen this one)

I already have a theory. I think it's a bad merger. Note how the two kinks are being caused by two times colocated corner points:

But we should rightly expect that every point on the segment which links a cap or join should be a curve point with two non-colocated handles, and that the first and last points should only be one time colocated.

Reopened per https://github.com/MFEK/math.rlib/issues/27#issuecomment-1105909028.

Good news.
I believe I just had the insight that will fix this.
The problem always keeps coming back to https://github.com/MFEK/math.rlib/blob/bd3ee6bd3b30298a6c7f2b1db6877b24f3c95c37/src/glyphbuilder/mod.rs#L151, which takes a circle and two tangents.
It contains odd language like:
        // we shoot rays from the right of both of the tangents to find a center of the circle we're
        // going to make an arc of

You all know I have no formal math training and that's why this library was my project's very first grant, before I was doing the foundation thing. So take my opinion with a grain of salt—but these functions look highly unorthodox to me. And every time I fix a case, I break another.
I'd note something worrying I found in the research… @MatthewBlanchard wrote that his elliptical joins/caps were actually rare across software. They don't exist in PostScript.
That might mean they aren't reliably possible. Might.
Here's what I'm going to do: tear out the function circle_arc_to. Totally rewrite it. Do something Matt would probably hate if he were still on this project: use Skia's conicTo to make a circular arc:

I'll use the ability it has to convert conics to cubic Béziers, although not directly, you must go through quads, I implemented it in glifparser.rlib.
If this fails, we're not "screwed" as it were. The code for CWS right now is based heavily on VWS.
It's possible that Matt recognized that certain things help VWS while sacrificing accuracy, but these things hurt CWS.
So, I could change the way CWS fundamentally works—by making it call Skia instead.
Your input is appreciated because I realize that using Skia just for finding arc paths is…unorthodox, but I'm out of other ideas.

Oh, not quite out of ideas after all!
I hadn't realized that Kurbo contains one of these:
pub struct SvgArc {
    pub from: Point,
    pub to: Point,
    pub radii: Vec2,
    pub x_rotation: f64,
    pub large_arc: bool,
    pub sweep: bool,
}

I think that I can describe the path we need with a kurbo::SvgArc as well as I could with an SkPath with an arcTo. I'll definitely try Kurbo first as it's less destructive to expectations (no need to force you to compile with Skia if you need CWS).

I'm not convinced this is the problem in this case.
More important than the construction of the curves is the question of what to do about short segments. When expanding a stroke, any short segments which lie within the "zone of influence" of expansion should be subsumed into the construction and should not create additional points. Here's a rough sketch of what I would expect the output to be:

Note that although there is a short horizontal segment, the output should reflect the ideal path expansion in which this segment is subsumed. Of course you already manage to do this overlap correction for the point marked in blue above:

but not for the curve at the top.
By all means play with arcs, but before constructing the arc, you need some kind of path sweeping and overlap filtering to make sure the arc is not more complicated than the user expects it to be.

@simoncozens Sorry, I still don't seem to quite understand how you get the output you get. It seems like you're using some kind of path overlap removal.
MFEKstroke doesn't do anything similar to Skia PathOps.
For explanatory purpose, I decided to make this image to show the problem. Everywhere where circle joins would normally be drawn, I drew lines instead, and I put a red guide path for the original path:

Here's a paint drawing I did of what the first two joins should do:

As you can see our conceptions are so different so I'm not sure why

I'm not describing what I can get, but what I want. I think algorithms for type designers have to prioritize aesthetics over mathematical correctness, and that means you may need to approximate and smooth out certain rough edges to get the best result; I think the most aesthetically correct result here is one on-curve point at the apex rather than two. Trying to make a curve at 1 and a curve at 3:

and joining them to a line (or worse, a curve) at 2 is going to make for really nasty curvature continuity issues.

I think this is actually a joining issue, though. FontForge's output looks great and respects the tiny line.

Thanks for confirming I'm on the right track @MatthewBlanchard, very appreciated. :)
Speaking to what @simoncozens wants—yes, I agree, what you want, having the result of a union'd stroke output, is outside the scope of MFEKstroke. It's inside the scope of math.rlib—sort of—but it's more of a job for MFEKpathops (BOOLEAN subcommand).
I expect to eventually move some of the more "nuts and bolts" parts of MFEK/pathops→src/boolean.rs into math.rlib, especially the calling convention based on EnginePathOp.
If you need that moved sooner rather than later please let me know. The reason it hasn't moved yet is I want to be able to give more solid recommendations as to the cases one should prefer EngineOp::Skia over EngineOp::FloCurves. For now MFEKpathops-BOOLEAN is a highly alpha/testing command—I consider the functions in math.rlib more stable.

Oh, and the second thing you want, the removal of short segments, and just drawing an arc across the larger join, is also within scope, but not for segments of the length I'm fixing right now, for shorter ones. FontForge's output is good, and these ones should still have a thin line.

Re: the circular cap problem that comment you quoted in a post above does have something to do with this.

I think that the intersection point it's finding to push the handles out along is clearly wrong.

Also while I think segmentwise might work it's a hack that's gonna find edge cases in overlap removal algorithms like nothing else.

Yes, that's why I reopened this. Please see my comment in https://github.com/MFEK/math.rlib/issues/27#issuecomment-1105909028:

This issue is getting closed because --segmentwise was a hack which I thought would be fine, but circular arcs are not perfectly representable as cubic Bezier curves.
So, any overlap merge would struggle with these two overlapping Bézier curves which are almost—yet not quite—equivalent.
Issue #16—not #17—is getting reopened because segmentwise is not an appropriate fix.
I will then try to fix once again the path builder method of creating stroke outlines.
Thanks for user patience.

See, I had to find out the hard way what you already knew, hehe.
I believed originally that segmentwise would lead to no bugs because we already have crazy internal paths that resolve just fine. I did not understand that I was playing with major precision-error fire.

@MatthewBlanchard Also, your belief is my belief as well. But I do have a question. Why, when you wrote this code, did you not keep track of what point in the original we're attempting to join?
Why do the join functions have to calculate it? That seems flawed.
That's why I wrote above:

It contains odd language like:
   // we shoot rays from the right of both of the tangents to find a center of the circle we're
   // going to make an arc of

“Odd language” was my charitable way of saying that this type of joining point calculation is highly uncommon across libraries. I read Skef's implementation plus another implementation and yours is unique in this way.

If there's a reason not to keep track of the point we're on I'd like to know it before I change the code such that all join functions know which point on the original curve they're joining right now. (For circle_arc_to it is the center of the circle we wish to draw.)

Nope you can do that instead it's probably more sound. It's going to find the same point in theory.

Thanks for answering. I think that the error is precision in the calculation, not that there's anything wrong with the maths.
Note for example this image I posted November last year before I came up with segmentwise:

I knew exactly what was wrong with this but had no way of figuring out why your shooting rays method was not working.
I even drew out the rays and to me it looks like you're right they should find the center.
But I think precision is preventing them from doing so.

(Turns out I might be more capable at this stuff than I let on :stuck_out_tongue_closed_eyes: which is good given I have to maintain it)

Remember why I did this. You would need to do a significant amount of book keeping to make sure that you can match up the join to the original point I think. Or do the joining as you create the path and not in a separate pass after.

@MatthewBlanchard I've been working on the second one, and it's requiring a big API change, but overall I think it'll work.
#[derive(Clone, Debug, PartialEq)]
pub enum JoinOperation {
    ArcTo,
    CircleArcTo,
    LineTo,
    MiterTo,
}

#[derive(Clone, Debug, PartialEq)]
pub enum CapOperationType<'a, PD: PointData> {
    CapWithJoin(glifparser::glif::JoinType),
    CustomCapAcross{ cap: &'a Glif<PD> }
}

#[derive(Clone, Debug, PartialEq)]
pub struct CapOperation<'a, PD: PointData> {
    pub op: CapOperationType<'a, PD>,
    pub from: (f32, f32),
    pub tangentf: f32,
    pub to: (f32, f32),
    pub tangentt: f32,
    pub point_on_original: Vector,
}

 Cargo.toml                         |   4 ++--
 src/bezier/mod.rs                  |   2 +-
 src/glyphbuilder/mod.rs            | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------------
 src/variable_width_stroking/mod.rs |   6 ++++--
 4 files changed, 94 insertions(+), 69 deletions(-)

Those structures aren't final—literally don't have a prototype yet, just placeholders. :)


Switching microsd cards doesn't update game list

I use the bazzite-deck-gnome variant on my Steam Deck, and swapping microsd in steam doesn't react as it should.
I have two microsd cards. The first one has all my installed steam games and the second one contains all my roms.
Hot swapping microsd cards should usually reload the game list in the steam gaming mode ui as seen in this video. But my Steam Deck needs a restart to actually recognize that the microsd card has games.
Both microsd cards were formatted using steam in bazzite.

Little correction : The microsd actually needs to be inserted twice to update the steam game list.
The first time, it is recognized, but no game is listed and the storage in the steam UI shows the storage as “Other”.
The second time, the games are recognized, and the storage is properly displayed in the steam UI as “Games”.


[Bug] Matching bracket is not highlighted

Reproducible in vscode.dev or in VS Code Desktop?

[X] Not reproducible in vscode.dev or VS Code Desktop

Reproducible in the monaco editor playground?

[ ] Not reproducible in the monaco editor playground

Monaco Editor Playground Code
// The Monaco Editor can be easily created, given an
// empty container and an options literal.
// Two members of the literal are "value" and "language".
// The editor takes the full size of its container.

monaco.editor.create(document.getElementById('container'), {
	value: "function hello() {\n\talert('Hello world!');\n}",
	language: 'javascript'
});

Reproduction Steps
With the code above, when you click on the code on the left panel, the matching bracket is not highlighted properly. See the screenshots below. I'm not 100% sure if this is bug, or if I'm just missing some config. Really appreciate any guidance here. Thank you!
Actual (Problematic) Behavior
Here, you can see the matching bracket of the function is not highlighted

Expected Behavior
I took this from vscode.dev, and really any VSCode

Additional Context
What I noticed is in our README

and this old Stackoverflow thread this seems to use to work, so I'm somewhat suspicious this could be a bug, hence filing as such

@hediet thank you so much for the fix. Do you mind letting me know when this change could be released so I can do testing on my part. Thanks!

@hediet I have tried to patch my monaco-editor using your change in https://github.com/microsoft/vscode/pull/168884/files
I noticed these problems:

I have create an instance of editor that uses json as the format, this fix doesn't seem to work for that particular file
I have created my custom language (following the guide found at https://microsoft.github.io/monaco-editor/monarch.html), and created an editor using that language, however, I want to disable bracket pair colorization, and bracketPairColorization: { enabled: false } no longer seem to work (previous to this change, it did work and disable the bracket pair colorization).

I have create an instance of editor that uses json as the format, this fix doesn't seem to work for that particular file

I found out that this has something to do particularly with json, languages like java part of src/basic-languages will behave just like my custom language and will work well with your fix, except for problem (2), hopefully this rules out that (2) is caused by my custom language

Will be released soon! Also, check out our nightly release on npm, though monaco-editor is currently broken.

Thank you a lot!!!! Nice christmas present 😄


Compute capability < 3.5

I have a little bit old GPU card with compute capability 2.0 (GeForce GTX 560).
Is there a way to get TensorFlow work with this card?

If you're comfortable building from source, https://github.com/tensorflow/tensorflow/issues/25#issuecomment-156234658 should have an answer for you, though we haven't tested it on anything below 3.0.
Will de-dupe this bug with that one, thanks!

@marker68 I know 2 years have passed, but did you finally managed to get it running?
I just got myself 5x Tesla m2075 6GB VRAM and wonder if I can do anything productive with it in terms of deep learning.

I also have the same card, 2.0 computational capacity, looking for a solution.

I have 2.1 , it is only after downloading everything that  I go this :( I hope there will be a build for this (Windows)

You can have a look at this, but what I got were errors  during attempt to obtain memory buffer size, which ended in an InternalError


adds stream::filter_map combinator

Implements a flat_map combinator. Currently the same about ret! as in #162 .
Also the naming should probably be FilterMapStream, but in that case Take stream should also change it's name i guess.
Stdlib: https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.flat_map
Ref: #129

Also the naming should probably be FilterMapStream.

We've made a deliberate choice to name the stream types the same as in stdlib. So FilterMap and Take are as intended!

bors r+


[docs] Improve documentation around

Need a better explanation for when and why to use <rh-tile-group>

Closing in favor of #1303


Excuse me: How to build the EXE program owns the Windows system administrator permissions

I tried to use Manifest settings, but still unable to obtain permissions

Unlike many projects, the Go project does not use GitHub Issues for general discussion or asking questions. GitHub Issues are used for tracking bugs and proposals only.
For questions please refer to https://github.com/golang/go/wiki/Questions


Refactor iterables, separate types, make behavior more compatible with CPython

Codecov Report

Merging #772 into master will increase coverage by 0.11%.
The diff coverage is 72.41%.

@@            Coverage Diff             @@
##           master     #772      +/-   ##
==========================================
+ Coverage   62.04%   62.15%   +0.11%
==========================================
  Files          80       80
  Lines       12722    12832     +110
  Branches     2620     2621       +1
==========================================
+ Hits         7893     7976      +83
- Misses       3159     3190      +31
+ Partials     1670     1666       -4

Impacted Files
Coverage Δ

vm/src/frame.rs
67.89% <0%> (-0.16%)
:arrow_down:

vm/src/obj/objmap.rs
78.78% <100%> (+2.12%)
:arrow_up:

vm/src/obj/objdict.rs
74.75% <100%> (ø)
:arrow_up:

vm/src/obj/objset.rs
69.23% <100%> (ø)
:arrow_up:

vm/src/obj/objenumerate.rs
80.55% <100%> (+1.76%)
:arrow_up:

vm/src/obj/objzip.rs
79.31% <100%> (+2.38%)
:arrow_up:

vm/src/obj/objfilter.rs
78.94% <100%> (+1.8%)
:arrow_up:

vm/src/obj/objbytearray.rs
60.67% <19.23%> (-7.09%)
:arrow_down:

vm/src/obj/objbytes.rs
72.32% <69.56%> (-1.6%)
:arrow_down:

vm/src/pyobject.rs
76.87% <70.96%> (+0.68%)
:arrow_up:

... and 7 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 42768b2...2f2a843. Read the comment docs.

Nice iter surgery!


Complex parameters and mixed binding

What is the expected enhancement?
Fix requirements for Aqua development:

Allow binding complex values to circuit parameters, since it is currently not possible to set a Parameter object to a complex value.

Enhance the flexibility in binding the circuit parameters:

Allow binding Parameter objects and float in bind_parameters. This is technically not an issue, but for some reason this is currently disallowed.
Add in_place option to bind_parameters. The bind_parameters method always copies the circuit in the current implementation. To substitute in place, the _substitute_parameters method could theoretically be used, however it only accepts Parameter types and no numbers, and it is a private method which users are not encouraged to use. To allow users to both bind (and copy) and substitute (and not copy) and further make explicitly clear what's happening we should make bind_parameters do both, based on a in_place or copy argument.

@kdk

Implemented by #4037.


Fixed cutout mask issue with the depth on the lid.

I tested with a mask on each of the 6 faces (one at a time as my laptop couldn't handle all 6 at once).

Thanks!

@rosenhauer
Dave, did you see this comment?