[12.x] Const to enum

Maybe, it's time for Laravel to not only allow custom enums but also to have it's own

Moved enumerable class constants to separate enums
Tried to stay backward compatible by

Deprecating the constants instead of removing them
Allowing to pass both the enum and the underlying value to a function and wrap the argument in an enum_value() call

Regarding casing... AFAIK the vast majority of devs use editors with syntax highlighting. At least Notepad++ or Vim. So there's no need to set apart constants/enum cases by uppercasing them. Although the uppercase practice is too engrained for constants, we might consider not continuing it for enums. Wouldn't PasswordStatus::passwordReset or PasswordStatus::PasswordReset be nicer?
Overall enums are intended for finite sets of values you're willing to accept and handle, they make an unextensible list of values. If the values are just "some values" or even worse "some of the values", constants or plain classes should be used instead. Enums are not a different syntax for constants, they are types. I.e. public function myfun(HandledCase $case) should be used if you would otherwise do this:
public function myfun(string $case)
{
    if (!in_array($case, static::handledCases))
        throw new \DomainException("Invalid case value $case here.");

    // ....
}

See also https://peakd.com/hive-168588/@crell/on-the-use-of-enums
Do we want to limit any of these into a final, non-extensible list of cases? Even for weekdays (which afaik make a finite list per se) we're talking about the weekday portion of a cron string which should accept 0, 7, 2-6, tue-fri, 4#2, 5L. I think in all of those cases constants were the appropriate choice as aliases/sugar over the most common values.

Agree with casing comment. I would only change Password reset and Day scheduling stuff to Enums. The worker stuff shouldn't be changed imo. It's not user facing.

@taylorotwell Thanks for the clear instructions—I'll change that 👍🏻

Even for weekdays (which afaik make a finite list per se) we're talking about the weekday portion of a cron string which should accept 0, 7, 2-6, tue-fri, 4#2, 5L. I think in all of those cases constants were the appropriate choice as aliases/sugar over the most common values.

As far as I can see, they are not type-hinted anywhere in a way that would restrict you to pass anything else. They currently only appear to my knowledge in places where these are passed directly. You can still pass anything you like to ManageFrequencies::days()

As far as I can see, they are not type-hinted anywhere in a way that would restrict you to pass anything else.

@shaedrich yeah, but type-hinting in a way that would restrict you to pass anything else is the reason why enums exist. They are types, not a syntax for magic values (that's the job of constants). If you're not going to limit the list of values, enums are not the right tool.

@tontonsb I think, we are discussing two separate things here. That might be why we talked slightly past each other.

Replacing (non-finite) constants with (finite) enums
Using enums as (restricting/enforcing) type hints (doesn't happen in this PR)

So, the former is something, we probably have to wait for Taylor's opinion.

@shaedrich I think I understand your point, I'm just trying to say that the former is a usecase for constants not enums. Only the latter is for enums.
If you don't want a restricting type, but want the list to be finite, that is still a job for constants. Here's an example from the same article I linked earlier:
final class Role
{
   public const Admin = 'admin';
   public const Editor = 'editor;
   public const User = 'user';
   public const AnonymousCoward = 'anonymous';
}

You probably know that already, but for future readers — the author of that article is not some random enum hater. He introduced enums in PHP himself.

@shaedrich I think I understand your point, I'm just trying to say that the former is a usecase for constants not enums. Only the latter is for enums.

@tontonsb I agree: Constants are no enums and both have their respective place. However, the question remains: Should this even be a non-finite list in the first place?

Renamed ScheduleOn to Day and PasswordStatus to PasswordResetResult.

Actually keeping PasswordResetResult as constants on a class. I like the camel casing and better naming, but don't want the breaking change of switching to an enum, which is not a string.

Eh, imo, this thing is getting a bit overcooked. I added camel case constants for password reset on 11.x.
If you want to separately PR a simple Day enum go for it. I don't see why it couldn't go to 11.x.

see #53983


read SAS token from Azure KeyVault

Describe the solution you'd like in detail
Add ability to read SAS tokens that are mounted by Azure KeyVault flexvolume to some path instead of K8S secrets

thanks,
/assign @ZeroMagic

hi @lenisha
After my second thought, read from mounted file which contains sas token is not secure as k8s secret, I don't think that's a good idea.
We will support sas token read from k8s secret in our plan.

another way is read one key vault value from inside blobfuse driver directly, need to evaluate first and also needs to know, how many customers wants this feature.

could refer to https://github.com/deislabs/secrets-store-csi-driver/blob/master/pkg/providers/azure/provider.go for reading Azure key vault value from inside blobfuse driver
cc @ZeroMagic

@lenisha we would like to support reading storage account key or sas token from keyvault, the new filed names are like following:
  csi:
    driver: blobfuse.csi.azure.com
    readOnly: false
    volumeHandle: arbitrary-volumeid
    volumeAttributes:
      containerName: EXISTING_CONTAINER_NAME
      storageAccountName: EXISTING_STORAGE_ACCOUNT_NAME
      keyVaultURL: xxx
      keyVaultSecretName: xxx
      keyVaultSecretVersion: xxx

cc @ritazh


Subqueries in orderBy broken since 1.1.0

Hi @aarondfrancis. Thanks for this package.
Unfortunately since the 1.1.0 release we found a problem with our queries. We use subqueries for orders for more complex scenarios (see example in my test in https://github.com/hammerstonedev/fast-paginate/pull/65). The change to allow custom selects in combination with Expressions as orders clashes.
I'm not sure I understand why you double the order columns with wrapped and unwrapped versions:
return [
    $column,
    $base->grammar->wrap($column)
];

But the unwrapped version didn't work if it is an expression. I added the check and conversion for that as well as a test (sry for the stupid order by - as said in reality it's used for more complex scenarios). Also the test for custom select https://github.com/hammerstonedev/fast-paginate/pull/57 still works.
Here is my PR: https://github.com/hammerstonedev/fast-paginate/pull/65
Thanks for considering.

Nice catch! Thank you so much.


pkg/trace: improve resource filtering tests

What does this PR do?
Add test cases for a block-all resource-filtering config (i.e .*).
Fixes an existing test case that was passing "by accident".

Motivation
Testing is good

Additional Notes

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

/merge


Sporadic unexpected page reload

Not sure if this is an issue with the code or just something weird on my machine since I can't reproduce consistently, but I've seen it come up a couple times now.
Rough steps to reproduce:

Start with cold cache (first load of Stan-Playground, at least in a bit)
(Optional) make minor change to main.stan without saving
Run sampler; wait for sampling to complete
Open Analysis.py tab, wait ~20 seconds
Note unexpected page reload (which erases any unsaved changes in other windows)

Maybe has something to do with the delayed loading of the analysis worker thread? In any event, just something to keep our eyes open for since I can't reproduce consistently at this point.

Are you able to reproduce this on the actual production site? I have gotten this with yarn dev but usually accompanied with a message from vite about re-optimizing dependencies.

Are you able to reproduce this on the actual production site? I have gotten this with yarn dev but usually accompanied with a message from vite about re-optimizing dependencies.

Same for me

Haven't been looking at production--so haven't noticed. I'll see if I can reproduce there, but this was meant more as a heads-up anyway.

I'm pretty sure the config change in #182 will prevent this, do re-open if it keeps occuring!


Adds more options to adjustQueryProperties

Further steps towards allowing control over substructure search behavior
Adds the following options:
  bool adjustConjugatedFiveRings =
      false; /**< sets bond queries in conjugated five-rings to
                SINGLE|DOUBLE|AROMATIC */
  bool setMDLFiveRingAromaticity =
      false; /**< uses the 5-ring aromaticity behavior of the (former) MDL
                software as documented in the Chemical Representation Guide */
  bool adjustSingleBondsToDegreeOneNeighbors =
      false; /**<  sets single bonds between aromatic atoms and degree one
                neighbors to SINGLE|AROMATIC */
  bool adjustSingleBondsBetweenAromaticAtoms =
      false; /**<  sets non-ring single bonds between two aromatic atoms to
                SINGLE|AROMATIC */

Also adds a static method to get an AdjustQueryParameters object with no options set to true.
I'm not thrilled with the method used to recognize the "A" queries from CTABs - adding a new atomic property to save the symbol that's used in the CTAB) - but I suppose that information could be generally useful elsewhere. A better fix for this would be to implement operator= on the Query class and its derived classes, and then use that to compare queries directly, but that's non-trivial enough piece of work that it needs a separate PR.

@greglandrum As someone who just deployed our internal SSS tool (with a library of 200M cmpds), I wish I had this a week ago!  This will be useful.

@greglandrum As someone who just deployed our internal SSS tool (with a library of 200M cmpds), I wish I had this a week ago! This will be useful.

yeah, I think it's going to be a nice complement to the SubstructLibrary


make reply always the first callAsync callback arg

Coverage increased (+0.2%) when pulling 34c79abf6f97b9b0e6646c86eff81ab7df8a6286 on change-asynccall-paramorder into 3f6e17e5d86021d8b62bf174bce2cfb7411604e7 on master.


response compression support

Describe the feature
Related: https://github.com/nuxt/nuxt/issues/19411
It'd be nice to have a way to enable compression not only for static assets but also dynamic responses via Nitro's node-server preset.
Additional information

[X] Would you be willing to help implement this feature?

PR is welcome as an opt-in feature. This should be used by care btw because of performance overhead implications, compressing on CDN / Reverse proxy layer is always better idea.

Shall we enable compression by default for static assets when enabled via serveStatic?

@pi0 I agree! Maybe not even as opt-in feature but as code snippet/example with a plugin and hooks 🤔

Когда можно ждать поддержки в Nuxt 3?

When can we expect support in Nuxt 3?

PR is welcome as an opt-in feature. This should be used by care btw because of performance overhead implications, compressing on CDN / Reverse proxy layer is always better idea.

@pi0 A CDN is ideal for compressing binary files and assets like images, scripts, styles, and fonts. However, for text compression, specifically for HTML payloads from SSR, a CDN may not be suitable. Adding a reverse proxy layer just for text compression can be an overall for some applications e.g. an ECS task/container behind an AWS load balancer.

Hi guys,
I have enabled text compression in 'render:reponse' nitro hook as shown below - any feedback / concern / red-flag would be welcome!
import zlib from 'node:zlib';
import { promisify } from 'node:util';

const gzip = promisify(zlib.gzip);

export default defineNitroPlugin((nitro) => {

  nitro.hooks.hook('render:response', async (response, { event }) => {

    if (!response.headers['content-type'].startsWith('text/html'))
      return;

    // Inspect or Modify the renderer response here
    const compressedBody = await gzip(Buffer.from(<string>response.body, 'utf-8'));
    setHeader(event, 'Content-Encoding', 'gzip');
    send(event, compressedBody);
  })
})

Thanks for the snippet dear @das-nirmal I haven't locally verified it but looks fine (you could also use gzip streaming see this h3 example).
Using the new render:response seems a good idea if we want to support built-in compression as an option 👍🏼

Hey there,
@das-nirmal I have a smiliar solution like you. Although yours is using better functions. My first approach was this:
import zlib from 'node:zlib';
import type { ZlibOptions, BrotliOptions } from 'node:zlib';
import { isArray } from '@vue/shared';

export default defineNitroPlugin((nitroApp) => {
	nitroApp.hooks.hook('render:response', async (response, { event }) => {
		const acceptedEncoding = event.node.req.headers['accept-encoding'];
		if (acceptedEncoding && !isArray(acceptedEncoding) && response.body) {
			if (/gzip/.test(acceptedEncoding)) {
				const content = await compress(Buffer.from(response.body), 'gzip');
				event.node.res.setHeader('content-encoding', 'gzip');
				event.node.res.setHeader('content-type', 'text/html;charset=utf-8');
				event.node.res.end(content);
			}
		}
	});
});

export type CompressionOptions = Partial<ZlibOptions> | Partial<BrotliOptions>;

/**
 * Compression core method
 * @param content
 * @param algorithm
 * @param options
 */
function compress(
	content: Buffer,
	algorithm: 'gzip' | 'brotliCompress' | 'deflate' | 'deflateRaw',
	options: CompressionOptions = {}
) {
	return new Promise<Buffer>((resolve, reject) => {
		// @ts-ignore
		zlib[algorithm](content, options, (err, result) =>
			err ? reject(err) : resolve(result)
		);
	});
}

I am going to create an complete working solution with all the suggestions from @pi0 and better syntax.
This plugin is going defently complexer.

@pi0 Once we migrate to a monorepo and extract the presets, could we also consider publishing some "official" middlewares/plugin that can easily be imported/used ? Compression is a good candidate.

@Hebilicious Yes i think we might introduce similar modules concept for nitro for such reusable solutions.
On compression, i am still not sure (sine global interceptors are new in h3) but we might support it via a h3 middleware for compression depending on platform agnostic CompressionStream since now we have built-in compression support.

@pi0 I looked at the compressionStream and it is great. Although it only supports deflate and gzip rihgt now. So for brotli this won't work yet.
Do i get you right that you see this plugin more in h3 than in nitro ?

@pi0 Ok i get you point. See it also in h3.
I could make an package h3-compress or add it directly as utility function to h3. After that their can be an experimental flag for it in nitro.
Do you see it more in a seperate package or in h3 directly ?

A seperate package would be also nice start in meantime so you can freely experiment different versions. Feel free to ping me and make a PR to include in h3 docs 👍🏼

I like the idea of h3-compress package!

Ok its done. I created a package for it. 🎉 https://github.com/CodeDredd/h3-compress
I noticed also that the stream compresssion can't be used in the nitro plugin. Maybe you have any toughts on it @pi0 ?

Amazing work @CodeDredd Do you mind to help making a nitro sandbox or playground somewhere? I would be happy to investigate possible issues.

@pio Ok i am on it....changing the name now fast. since your right. its still early stage.

@pi0 Here is the reproduction: https://stackblitz.com/edit/nuxt-starter-ffgnpo?file=server%2Fplugins%2Fcompression.ts
Unfortunately i don't know how to change the node version. It is running on 16 at that doesn't support CompressionStream

Let's move discussion about investigations to https://github.com/CodeDredd/h3-compression/issues/1 👍🏼
(I will also check with stackblitz team about CompressionStream support)

@pi0 i think this ticket can be closed right?

Well yes but let's keep tracking it in nitro until we have a built-in feature. Even tough i would still strongly recommend to use reverse proxies to offload compression, i think this feature worth to be considered for nitro core.
BTW thanks so much for your work on h3-compression @CodeDredd it will be certainly be used as inspiration for next steps ❤

@pi0 Is there any plan to implement this natively soon ?


Added new command for different directory

initially, our runAndroid.js pick a default path (i.e package + '.' + .MainActivity), which has a problem because existing android app have different project structure and most of the developer, maintain clean architecture in the different directory
Example If suppose if '.MainActivity' is placed in 'activity' directory then react-native still don't have an option where explicitly provide activity launcher directory, So that I have to add another command where we can provide activity launcher directory by using the following command (i.e = react-native run-android --activityLauncherDir=.activity.xxx.yyy, it indicates your launcher activity present in - package.activity.xxx.yyy.MainActvity)

Motivation
When it merge it motivate me.
Test Plan
command: '--activityLauncherDir [string]',   description: 'Specify an folder for launcher activity.',   default: undefined,
Run command when your launcher activity in different directory

Execute successfully

Related PRs
(If this PR adds or changes functionality, please take some time to update the docs at https://github.com/facebook/react-native-website, and link to your PR here.)
Release Notes
[CLI] [ENHANCEMENT] [local-cli/runAndroid/runAndroid.js] - RN command line enhancement
[ANDROID] [ENHANCEMENT] [runAndroid.js] - Open launcher from anywhere via specify directory
EXAMPLES:
#14952
Example - react-native run-android --activityLauncherDir=[Dir1].[Dir2] ...so on and enter
[[CLI] [ENHANCEMENT] [local-cli/runAndroid/runAndroid.js]
[ANDROID] [ENHANCEMENT] [runAndroid.js]
@hramos

@hramos @facebook-github-bot  is anything wrong with this pull request?

I would rebase the PR, to ensure all tests are passing (we've fixed many of these already). Aside from that, I'd just ask for a review from someone familiar with this area of the codebase. You can look through the commit history to get an idea of who might be able to help. We don't use the CLI internally at Facebook, so I rely on the community to review these PRs.

Thank you for your PR. We just moved this code to https://github.com/react-native-community/react-native-cli so please submit your PR there.


Directory not empty when calling rmdir recursively

I'm trying to remove folder with its contents using rmdir method with recursive parameter that is set to true.
Documentation says:

If recursive, this call will delete the contents of the directory if it is not empty.

But I'm getting an error:
throw new Error(err)
			 ^
Error: Error: /path_on_ftp: Directory not empty

Anyone tried similar operation? Please help.

I also have this problem.
In my case it works on directories that only contain files, but on directories that contain other directories it fails.
Here's the error that I get, I'm not sure how usefull it is since I use your library through promise-ftp. I'll try to reproduce it with your library alone on monday.
{ Error: /htdocs/images/icons: Das Verzeichnis ist nicht leer
    at makeError (/Users/egon/src/iski.world/node_modules/ftp/lib/connection.js:1067:13)
    at Parser.<anonymous> (/Users/egon/src/iski.world/node_modules/ftp/lib/connection.js:113:25)
    at emitTwo (events.js:106:13)
    at Parser.emit (events.js:191:7)
    at Parser._write (/Users/egon/src/iski.world/node_modules/ftp/lib/parser.js:59:10)
    at doWrite (_stream_writable.js:307:12)
    at writeOrBuffer (_stream_writable.js:293:5)
    at Parser.Writable.write (_stream_writable.js:220:11)
    at Socket.ondata (/Users/egon/src/iski.world/node_modules/ftp/lib/connection.js:273:20)
    at emitOne (events.js:96:13) code: 550 }

Ok I just tested it with this library and it seems to work now. So in my case the issue is probably with promise-ftp

I cannot delete a folder that is not empty :(
this is my code :
c.on('ready', function() {
switch(itemType){
    case 'file':
        c.delete(itemID, function(err) {
            c.end();
            callback(err);
         });
         break;
    case 'folder':
        c.rmdir(itemID, true, function(err) {
            c.end();
            callback(err);
        });
        break;
    default:
        callback(true);
        }
    });

And I'm always getting the same error:
error:  { [Error: Can't remove directory: Directory not empty]
  cause: { [Error: Can't remove directory: Directory not empty] code: 550 },
  isOperational: true,
   code: 550 }

Any idea?


London 10 - Paulina Wywrot - Full Stack Assessment - Level 300

Hi @PaulinaWywrot - very well-done, great job so far! A general suggestion would be finding out where you could use useEffect in your React app . Good luck with the next levels! 🥇

Thank you for your comments Shadi, I've made some changes to my code :)

This is looking great, nicely put together!

Hello @illicitonion, thank you for your review. I've implemented some changes as suggested, but please let me know if you have any further suggestions:)


Fix docs page crash

https://discourse.firez.one/t/issue-with-firezone-documentation/380

Pull Request Test Coverage Report for Build 21570ace88f93e819ebad31111467280e80acf44-PR-1265

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 67.387%

Totals

Change from base Build 4fe6b5ec316444282aad182f6acaba1952d83d12:
0.0%

Covered Lines:
1310

Relevant Lines:
1944

💛  - Coveralls


SA feedback - email

We have analysed your Gov.AU content in the past week and we’re pleased to see that DECD aligns in all major areas. I have included some more detailed feedback below about areas that we suggest could be expanded upon in your content guide. This would help meet the needs of content writers across government.
As a government department we constantly come up against ‘over capitalising’ of communications content, and so our default rule is ‘if in doubt, use lower case’. We have specific ‘rules’ about letter case, which we label as 2 tiers. We need a lot more detail about these types of rules in order to have consistent and clear rules within our department. This level of detail would be very helpful in Gov.au. You can see our explanations of these rules on pages 10 to 14 of our writing style guide.
Titles including Minister – we have followed Gov.UK and the Style Guide for Authors Editors and Printers in changing to a more egalitarian approach to job titles including at the ministerial and chief executive level. You will see our approach explained on page 16 of our style guide. We have argued for the removal of the ‘deferential’ rule, and a clear explanation of how to handle job titles and professions. We suggest that more detail should be included in your content, with clear examples that are not ambiguous.
En dashes vs Em dashes – we definitely support the argument proposed by NSW Department of Education and I’m curious about why Gov.AU recommends an em dash. As a group none of us could recall seeing an em dash in recent history, because en dashes are the norm. On page 14 of our style guide we give a lot of detail, including replacing the word ‘to’ for spans of time. Microsoft Word also creates an automatic en dash in most circumstances where one is required, and so from our perspective asking staff to try to remember a key command or do anything special would not be successful. In our view, an em dash also looks overly long and quite old fashioned.
Latin abbreviations – we support limiting the use of eg, ie and etc but we believe that eg is now so common that it is unlikely to be a CALD issue. Our approach is to limit the use of these abbreviations but to use them where appropriate. We changed from using a comma after these abbreviations to adopting the Gov.UK approach of no punctuation at all.
Quotation marks – we have been using double quotes for speech and single quotes to demarcate a word or phrase, or for quotes within a quote. We understand that many agencies and publishers prefer to use single quotes as the standard for everything, and so we will recommend – based on the Gov.AU approach – that we update our style to use single quotes.
Passive/active voice and government tone – we really appreciated this section and plan to link to your content in our next iteration of the DECD writing style guide. In our experience the more examples of plain English the better as often people can’t see passive, bureaucratic language until it is pointed out to them via examples.
Adjectival phrases vs possessive – although your guide does not cover this (as yet), there is one example you use (drivers licence) which is commonly regarded as an adjectival rather than possessive phrase, along with travellers cheques and workers compensation. Page 8 of our style guide goes into detail about apostrophes and mentions this, which is pretty standard. We suggest that you correct the example so as not to confuse people about this topic, and perhaps add a section about adjectival phrases that do not need an apostrophe, especially as there is uncertainty and disagreement about where an apostrophe would be placed.
Numbers and measurements – our big departure from traditional style conventions was to choose the digital best practice convention over print eg using numerals in all instances except when starting a sentence or in a phrase such as one-to-one or one-off. Our guide on page 15 goes into more detail. Our main feedback on Gov.AU is in the detail of writing times: we believe that these should consistently be 4 digit rather than sometimes 2 digit and sometimes 4 in your examples. This would mean 10.00am and not 10am and any time segments come within this rule – 10.15am, 9.45am etc.
Financial years – after researching how the ATO and other financially based organisations handle financial years, we opted for the hyphen rather than the oblique eg 2016-17 rather than 2016/17. Though the issue of screen readers did come up, we felt that the standard convention should apply rather than the word ‘to’. We would be interested to hear your views on this.
We really appreciated your content about literacy levels in Australia and writing for a 10-12-year-old reader. This is useful for us to mention in training our staff about the importance of Plain English.
Our writing style guide is currently under review for its annual update. I would welcome any feedback about our writing style guide, and look forward to joining in dialogue with DTA and Gov.AU.
Warm regards
Anne-marie Taplin
Senior Writer, Communications directorate
Department for Education and Child Development | 31 Flinders Street, Adelaide SA 5000
t (08) 8226 0942  e<EMAIL_ADDRESS>w www.decd.sa.gov.au
Facebook | Twitter | LinkedIn

Need to go through and extract relevant things.

Now being tracked in Trello


Add set -x in more places in our e2es

Need to be able to tell which command fails in an e2e.  Take a lot of care that secrets are not exposed by doing this.

I have pondered this today and did some testing and I think the best way to achieve this is to add set -x to the existing e2e script, and then wrap it with a go program that filters stderr and replaces instances of the secrets with [redacted] or similar before writing back to stderr. This is a similar approach to how Django handles exceptions with sensitive variables.
Go > bash in this instance as piping stderr & passing through variables is messy.
We would declare a list of variable names that are considered "sensitive" from the environment (probably in Azure pipelines?) that the go program can pick up. Additionally it would be useful to embed the existing shell script in the go program, to prevent accidental running of the script directly (which would echo secrets).
This approach is required as bash does not provide an ability to customise the behaviour of set -x, so we are unable to use that alone.
I have made a PoC of this and it does work, if not a bit hacky.
I'll integrate the PoC with the e2e script and test.

Of course, since the e2e logs are not publicly accessible, the above solution may be over engineered and a simple wrap may be sufficient (per #230):
set +x
<command with sensitive secret>
set -x

However this approach would require diligence by devs to ensure any modifications/additions to the script continue to wrap sensitive calls.
What do you think @jim-minter?

it is over-engineered. set +x, set -x is fine.


Fixed Action Button Items shadows cropped left and right on Android

Also solves the shadow rotating on iOS issue #80

@mastermoo please don't forget to make a new release if everything looks alright!

roger that, v.2.0.15. thanks for your work @iris-chang


[tui, redux] Address performance issues

Tracking issue to capture things related to performance issues (caret movements slow, redux cloning too much, color wheel gradients not memoized, etc). We can capture flamegraph results here or other testing results here and figure out how to address these solutions.
One idea might be to radically simplify the architecture and remove redux + async + await / tokio.

From the flamegraphs, Redux seems like the culprit for performance.


Make 241 fatal by default

It's only after my laptop had been whizzing for an unusually long amount of time that I looked at my terminal to see what was up with my F* build.
FStar.Tactics.Logic.fst(0,0-0,0): (Warning 241) Stale, because inconsistent cache version cache file FStar.Tactics.Logic.fst.checked; will recheck FStar.Tactics.Logic.fst and all subsequent files

only then did I realize that I should've run git clean -fdx.
I'm suggesting on Slack a new CI job to catch these incrementality breakages, but in the meanwhile, is there any good reason for not making 241 fatal? To me, it's almost always the sign that something is wrong with your setup and that you need to git clean -fdx the universe.
Thanks,
Jonathan

(Note that this would entail not issuing 241 when the stale cache file is the one we're about to regenerate.)

We can make this one and the warning "A.fst.checked was not written because some of its dependences were also not checked" as errors only when --cache_checked_modules is on. In general making these errors by default could become painful during development. On the other hand, we don't usually have --cache_checked_modules on in our emacs setting(?).

Yes, good point -- I should've mentioned that this only makes sense when --cache_checked_modules is on.

In our last discussion about this, we decided not to make it an error and keep the behavior as is. Closing the issue, please reopen if we should discuss it more.


Hiding Columns in Grid/Dialog/Form (thru attibutes in xyxrow.cs)

I have a basic request.
Depending on User privileges (permissions), i would like to hide/show some columns in GRID and associated DIALOG/FORM.
Is there something in the box that is filtering fields automatically ? (i tried setting a ReadPermission() attribute on columns with no luck).
Thanks !

Thanks ! it works !


fix: smoke test for webhook e2e (#7218) v0.36.x

Fixes #N/A
Description
Backports e2e test
How was this change tested?
Does this change impact docs?

[ ] Yes, PR includes docs updates
[ ] Yes, issue opened: #
[x] No

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>0
Details

0 of 0   changed or added relevant lines in 0 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.01%) to 78.273%

Files with Coverage Reduction
New Missed Lines
%

pkg/providers/amifamily/ami.go
1
90.37%

Totals

Change from base Build<PHONE_NUMBER>0:
-0.01%

Covered Lines:
5685

Relevant Lines:
7263

💛  - Coveralls


[FEA] Faster HugeCTR ouput generation

 Issue by oyilmaz-nvidia
Thursday May 21, 2020 at 16:03 GMT
Originally opened as https://github.com/rapidsai/recsys/issues/161

Generating HugeCTR outputs is very slow in the current version of the code. We are using python and frameworks like cudf, pandas, numpy to do this.
A C++/CUDA code can actually do a lot better job here. If we pass the GPU memory references from cudf to C++/CUDA layer, we can quickly create the HugeCTR file format and write the data into files.

Between the parquet reader support / multiprocess dask writing this is no longer needed


Overflow bugs

I assume this problem occurs with:
Wireds, Customrooms
Error logs:
http://pastebin.com/2Q3Kgg18

Also happens with inventory

Thanks. I will see later.

I didn't understood the also happens with inventory.
I tested in PixarHotel no-one wired give overflow
Also Custom Rooms doesn't give
Also Inventory now 100%...

These overflows just come on random times :[

EDIT: will try this with the newest source, see if i still get the errors

...

Probleem seems solved did not see anny new Overflow errors

did u fixed anything?

@bblackv
No overflowd just fixed it in the newest source release


Support user-based authentication in live tests

Description
Adds support for Azure PowerShell and CLI authentication, building on new support for user authentication with live test resources -- see https://github.com/Azure/azure-sdk-tools/pull/7580.
Since most users deploy test resources with PowerShell via New-TestResources.ps1, I gave AZURE_TEST_USE_PWSH_AUTH preference over AZURE_TEST_USE_CLI_AUTH when both are set to "true".
All SDK Contribution checklist:

[x] The pull request does not introduce [breaking changes]
[x] CHANGELOG is updated for new features, bug fixes or other significant changes.
[x] I have read the contribution guidelines.

General Guidelines and Best Practices

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[x] Pull request includes test coverage for the included changes.

Is importing the AzureCLICredential literally all you need to do here? That's pretty legit.

Yep! As long as users are using the get_credential method on the test class -- which is the recommended flow -- they'll pick up the change. Fortunately the transition to user-based auth seems a lot simpler than we might have expected.


Clipping operations

Are the clipping operations already implemented? Namely, I am looking for clip_by_value and clip_by_norm.
I couldn't find anything operation with a related name in TensorFlowSharp 1.2.2. If they aren't available yet, I might try sending a PR.

Also, what about array operations such as tf.stack and tf.slice?

Closing since #117 was merged.


groups: notifications about threads have confusing UI text

Notifications from a thread read "...replied to your message" followed by the first message in the thread, regardless of whether I wrote that first message. (In this screenshot, ~litmus-ritten wrote "I feel like these two are definitely on Urbit", but the UI text reads like I wrote that.)

To Reproduce
Steps to reproduce the behavior:

Start a thread from Ship A.
Reply to that thread from Ship B.
Reply to that thread from Ship A.
Check notification on Ship B "Ship A replied to your message" with Ship A's original message in the notification.

Expected behavior
There's no way of knowing whether Ship A is replying directly to Ship B (or C or D in the thread) unless they've specifically ~mentioned them. Maybe something like "~litmus-ritten replied in 'I feel like these two are definitely on Urbit.'" would do?

Tracking internally as LAND-434


fix(webpack): add recognization for ESM export

Summary
New url-loader and  file-loader uses ESM export feature which the @svgr/webpack loader cannot recognize and throw error. #367
Test plan
Use new file-loader before @svgr/webpack, see it if works.

Thanks, I will solve it in #370.


fix: don't recurse over keys in withPropertiesFromOptions

fixes #99
~I can recall that recursing was needed but I can't seem to find it back, the GUI doesn't
show that behavior either so removing the recursion. This should fix the issue described
in #99. If recursing is needed in only a few cases, I bet a new issue will be raised if
someone runs into it.~

Confirmed in the GUI, only done for custom.


add new question to submit new license form

can we add a new question to the submit new license form?
I'd like to add it below the OSI Status question. the question text would be:
FSF free/libre?
Pop-up text would say: "Is the license is considered free by the FSF  according to this page: https://www.gnu.org/licenses/license-list.en.html
Options for answering would be a drop-down with yes/no/I don't know
@swinslow or @bradleeedmondson - can you have a look at wording?

Just FYI - The LicenseListPublisher currently scrapes the HTML from the FSF website and attempts to match licenses.  If we decide to add an FSF license with a "Y", we need to make sure it is consistent with the FSF website or the LicenseListPublisher will need to be updated to override the information in the FSF website.

Two detail questions:

Should this be required?
Should we have a default value?

The LicenseListPublisher currently scrapes the HTML from the FSF website and attempts to match licenses. If we decide to add an FSF license with a "Y", we need to make sure it is consistent with the FSF website or the LicenseListPublisher will need to be updated to override the information in the FSF website.

oh, I did not know that. So that step is at the point when we publish the license list, not part of the submission process?

if we can automate this (or already have), then maybe no need for this question.
it's not like OSI, where sometimes things are in-flight and the submitter is the best person to know that.

So that step is at the point when we publish the license list, not part of the submission process?

Correct.  There actually isn't a way to specify FSF Free in the license XML document today.

if we can automate this (or already have), then maybe no need for this question.

I guess if we asked the question, we may end up being in the middle between a requester and the FSF as to the FSF free status.  It is more of a process question, but I'm leaning towards leaving it in the automated state and not ask the question.  If someone wants to update the FSF free status they can work directly with the FSF since the FSF maintains a web page with that information.
There is one more consideration, which is that the code that scrapes the HTML isn't reliable.  We've asked the FSF to provide a more reliable means of updating the status and to date they haven't done anything that I am aware of.
Right now, we just fix the scraper if an issue is raised.

@goneall - agreed, relying on scraping/automating seems like the best way to go. And better effort spent trying to get FSF to improve code we are scraping!
I think we can close this, then


Swap Twitter repo to HTTPS, publish v1.7.1.

This fixes an issue where resolution fails on SBT v1.0.2+ because of the
redirect they have put in place from HTTP to HTTPS. See
https://github.com/sbt/sbt/issues/3670 for more information.

Published v1.7.1, should be available shortly at http://central.maven.org/maven2/com/intenthq/pucket/pucket-core_2.11/1.7.1/.


fix: name temporary variables with namespace

Fixes #777
Before fixing the problem, the temporary variable names were [final name]-doc and [final name]-doc-uri. They can conflict with user-defined variable names.
This pull request changes the naming convention: [private namespace prefix]:[context element local name]-[context element id]-doc and ...-uri.
[private namespace prefix] is local (XQuery) or impl (XSLT).

@galtm
Before making this change, I refactored the relevant code (in #782 and #792). That's why many lines are different from v1.6.0. I believe the refactoring has made it easier to review this.

Before making this change, I refactored the relevant code (in #782 and #792). That's why many lines are different from v1.5.0. I believe the refactoring has made it easier to review this.

Thanks, @AirQuick . I've started looking at this. I need a little more time that's not at the end of a long day.

Thanks for the reivew, @galtm

The Compilation wiki might need some updates. No hurry. If you're too busy with other pull requests and you'd like me to update the wiki, let me know.

I forgot about it! although we have a reminder (#505).
Can you try updating it?
A problem is that there is no .xspec file (apart from the variable files you created) that is connected to the description in Compilation.md. To facilitate updating Compilation.md, it would be nice if we have an actual .xspec file.

I forgot about it! although we have a reminder (#505).
Can you try updating it?
A problem is that there is no .xspec file (apart from the variable files you created) that is connected to the description in Compilation.md. To facilitate updating Compilation.md, it would be nice if we have an actual .xspec file.

I forgot about #505 . I'll assign it to myself. Do you think it's ready to be worked on anytime? The description says (from over a year ago), "At some point in the future when the outstanding pull requests are resolved".

Soon I'm going to open a small refactoring pull request to get ready for dynamic invocation. And I was going to ask you to review it. It's small, but it may change something in the compiled stylesheet. I'll let you know.
Another idea is that the compiler itself should possibly write comments like <!-- the main template to run the suite --> into the compiled stylesheet/query in the first place. Just my quick thought.

OK, I will wait for (at least) your refactoring pull request before working on the compilation wiki. I can review that PR when it's ready.
I tend to lean toward seeing code comments as useful rather than clutter, so I like your idea about making the compiler insert some of the comments that are currently added manually to the compilation wiki.

OK, I will wait for (at least) your refactoring pull request before working on the compilation wiki. I can review that PR when it's ready.

Opened #807. Fortunately, I believe nothing has changed in the compiled stylesheet.


"go get" for the cli is returning an error code

Even if the build works after this, the command:
go get -u -t -v github.com/sigstore/rekor/cmd/rekor-cli
echo $?

is returning 1 (while it should return 0)
I haven't seen any error in the log
Please note that I don't know much about go, so, it might just be me :)

Which go version are you using?

The one coming from Debian: go1.15.9


gauge card not showing up

I'm having problems with showing gauges in the vertical-stack-in-card. They are not showing up anymore, while they did in the past. If I show the gauge card normally (not in the vertical-stack-in-card), it works fine. I don't remember when this changed.
My code is as follows.
- icon: mdi:access-point-network
  id: netwerk
  cards:
    - type: custom:vertical-stack-in-card
      title: internet
      cards:
      - type: gauge
        title: download
        entity: sensor.speedtest_download
      - type: gauge
        title: upload
        entity: sensor.speedtest_upload
      - type: gauge
        title: ping
        entity: sensor.speedtest_ping

Any idea what is going wrong?

I have the same issue. Gauge card doesn't show and no errors in log.
- type: custom:vertical-stack-in-card
   title: 'UPS'
   cards:
     - type: entities
       show_header_toggle: false
       entities:
         - sensor.ups_status
         - sensor.ups_battery_charge
       - type: gauge
         title: 'Obciążenie'
         entity: sensor.ups_load
         severity:
           green: 0
           yellow: 40
           red: 70

the ha-card element styling is the issue.
top highlighted section is a working standalone gauge card. Bottom is part of the stack.

When the element style is edited manually the card shows up. Not sure how to fix this, though.

Can confirm that this (temporary) solution works, after deleting the cache of my browser and hitting ctrl+F5 a few times.

FYI @Ernst79:  You can add a ?v=1 to your includes in lovelace-ui.yaml, and then increment that number when you make an update to force your browser to reload the file.

Can anyone help me understand why the base-unit becomes 0?

Your commit has a typo, 'hui-gaugg-card' should be 'hui-gauge-card'.
I'll see if I can do some experimenting tonight.

I still have issues. It does show up correctly now, with the modified code, but as soon as the value of the sensor changes, it disappears.

I haven't tested it, but I would guess this also affects the light and thermostat cards, right?
The problem is that those cards rely on their width to determine the size of certain elements, and the width is checked at the moment of their creation. A bug in the light, thermostat and gauge cards that's being looked at currently.

As a workaround until the cards are fixed, you could defer the creation of the cards to a timeout.
I.e. move the config.cards.forEach(... stuff into
setConfig(config) {

  ...

  setTimeout(() => {
    config.cards.forEach(...
  }, 10);
}

10 ms of delay seems to be enough for my layout-card, while not being long enough for the user to notice.


⚠ ClamAV has degraded performance

In 3df6ca1, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 56 ms

Resolved: ClamAV performance has improved in b2f8d29.


Add queryTimeout option to queries/callProcedures/Statements

As part of getting cursor support (allowing fetching of chunks of rows instead of all), an options object has been added on functions that generate a statement handle. See this PR: https://github.com/markdirish/node-odbc/pull/152
@worksofbarry has request that a queryTimeout option be added that takes advantage of the SQL_ATTR_QUERY_TIMEOUT attribute on statements.
Add the option, create tests, ensure it works.

PR here: https://github.com/markdirish/node-odbc/pull/158
Need to figure how best to pass queryOptions to a statement still.

Should be in the published version, but there doesn't appear to be anything in the README about it. Will fix that up before closing this.

@markdirish any timline of when this will be live?

Live for calling connection.query: https://github.com/markdirish/node-odbc#querysql-parameters-options-callback
Still not live on explicit statements and for procedures.

@markdirish ok cool thanks. Does this also work with pool.query?

Unfortunately not at the moment, BUT there is an open PR. I will ping my reviewer on it.


[Device Support Request] EigenStone Thermostat S2 (KTWKQ03ES)

Could you add support for Aqara / EigenStone Thermostat S2 (KTWKQ03ES), please?
Id is lumi.airrtc.tcpecn02
http://docs.opencloud.aqara.com/en/guideline/product-discription/#thermostat

where did you get it?

https://www.aliexpress.com/item/32992549710.html

Note also
https://homekitnews.com/2020/05/27/aqara-hub-firmware-update-adds-homekit-functionality-for-more-devices/

According to Chinese manual it can be connected to a remote temperature/humidity sensor, but I have no idea how. I have extended the internal thermal sensor using a coaxial cable.
This device has 5 relays (each 2A max) to control heater, cooler and fan (3 speeds). It can be used to control valves. I'm using additionally 2ch 16A Aqara relay to control an electric floor heater and monitor power consumption.
Look at this thread
https://github.com/Koenkk/zigbee2mqtt/issues/3306

Try HA dev version. It supports generic Zigbee thermostat, so question is how closely xiaomi bis following Zigbee specs (rhetorical question)

I'm using hass.io in docker on Raspberry PI4.
What is the easiest way to try HA dev version?
I have joined to beta channel in supervisor, but I don't see any updates.

See on docker hub tag for the latest dev build, then in hassio cli something like ha core update --version home-assistant.dev20200530 or whatever tag was on docker hub

Or wait till Wednesday, I think beta is cut to on Wednesday


toLocaleString breaks code

When I have a function named:
export const toLocaleString = (date: Date | number) => new Date(date).toLocaleString()

I receive the following output:
> ctix create -p ./tsconfig.json

  start validation
[23-10-04 16:22:07] error: (next[exportedName.identifier] ?? []) is not iterable
[23-10-04 16:22:07] error: TypeError: (next[exportedName.identifier] ?? []) is not iterable

This issue was fixed in 1.8.3 or 2.0.0-beta.3


Fix og:url url

Description
For some reason, collection and production pages does not have the correct og:url. They all defaulted to home page url
Before submitting the PR, please make sure you do the following:

[ ] Read the Contributing Guidelines
[ ] Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123)
[ ] Update docs in this repository according to your change
[ ] Run yarn changeset add if this PR cause a version bump based on Keep a Changelog and adheres to Semantic Versioning

Closing this - my bad
This is actually not a problem. I thought it wasn't working but it is working just fine on full page loads. Then I remember we have built a single page app, so sub navigation's og:url would look wrong

Closing this - my bad
This is actually not a problem. I thought it wasn't working but it is working just fine on full page loads. Then I remember we have built a single page app, so sub navigation's og:url would look wrong

Closing this - my bad
This is actually not a problem. I thought it wasn't working but it is working just fine on full page loads. Then I remember we have built a single page app, so sub navigation's og:url would look wrong


Localization tool - evaluate_compare.py

Hi everyone,
What does evaluation file in https://github.com/ApolloAuto/apollo/blob/master/modules/tools/localization/evaluate_compare.py mean in line 237 ?

Line 237 just is arguments value check.
You can reference the document which introduce the usage of this script how_to_run_MSF_localization_module_on_your_local_computer.md

Closing this issue as it appears to be resolved. Feel free to reopen if you have additional questions. Thanks!


improve payout key handling

We need to decide how to get keys for the payout transaction.
.env vars - current approach
Hashicorp vault - (similar risk footprint, but keys not laying there in config files)
Support ledger (not viewed as pracitcal since a) time consuming and b) lots of repetitive user input)
Generate ephemeral keys
??
Alternatively, we could generate a simple mina client send-payment script if we can assume an online node for payment processing - see https://github.com/jrwashburn/mina-pool-payout/issues/6

Decided to implement ephemeral keys approach; so we support a) ephemeral keys or b) keys provided in .env

just a question in regards to keys provided. The following command gives me a 52 char priv key:
mina advanced dump-keypair --privkey-path keys/my-payout-wallet
However, the coda-sdk is expecting 58 characters. Any ideas which it should be?
  DT { t: 0, c: 'Private key', l: 11 } ]
[ 0,
  [ 248,
    DT { t: 0, c: 'Base58_check.Invalid_base58_character', l: 37 },
    352 ],
  DT { t: 0, c: 'Private key', l: 11 } ]

$ mina advanced dump-keypair --privkey-path test
Private-key password:
Public key: B62qkHHp9SyYeZRu3GpWfvTMwvPtyt8sBxQQc7AMyAEL9wa49JTegUJ
Private key: EKFBcwGHPY1VGUbWm2X2hcbaNx53picis2HrK7iewAQke1TrPGPw

Deleted content from your post; I think it is okay at 52 characters long -- but should be base58 alphabet. I just deleted the value and didn't try to compare it -- it should not be posted. The only valid characters should be: 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz, and that error seems to indicate that an invalid character was used/provided - not sure. But mine is also 52 chars. I have not tested with exported keys, I will try to do that and update -- probably tomorrow.

Sorry - you can ignore my comment/question. When I used the sample.env there were "" included in the parameters for SEND_PUBLIC_KEY and SEND_PRIVATE_KEY which I thought meant I should just throw my keys in between the quotes, but it looks like when this is done the quotations become apart of the KEYs and hence the Invalid_base58_character.

We’ll remove the quotes – that is confusing. Good catch.
On 3/14/21, 8:56 AM, "Michael Nguyen"<EMAIL_ADDRESS>wrote:
Sorry - you can ignore my comment/question. When I used the sample.env there were "" included in the parameters for SEND_PUBLIC_KEY and SEND_PRIVATE_KEY which I thought meant I should just throw my keys in between the quotes, but it looks like when this is done the quotations become apart of the KEYs and hence the Invalid_base58_character.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHubhttps://github.com/jrwashburn/mina-pool-payout/issues/12#issuecomment-798902254, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAGZX4DONTIXNKCSCJBJOJLTDSXAZANCNFSM4YX6DKCA.


[NewPlugin] jofra format-string-finder-binja v1.0

Please add my plugin to the repository.
Yes, I've read the instructions, especially the part about creating an actual release and creating the tag.
I used the hub command to create a real release.
Author: jofra
Repo name: https://github.com/Vasco-jofra/format-string-finder-binja
Release: https://github.com/Vasco-jofra/format-string-finder-binja/releases/tag/v1.0

Added, thanks!


Update Readme Screenshots

The screenshots are out of date since the locales moved to a folder. We should update them

This is fixed


Add sops-based secret management

Using https://github.com/Mic92/sops-nix for secret management. The per-host secrets are stored encrypted in sops/runnerXX.yaml. They are encrypted with:

Admin keys (PGP keys, currently will and b10c)
Server keys are age keys generated from the host SSH key

This also updates the setup and deployment instructions and adds support for aarch64-linux runners.

Will continue working on the ccache host based on this PR.


The target entry-point "@netcreaties/ngx-smart-banner" has missing dependencies

Hi, I am facing this issue on Angular 9+ project. It says failed to compile with the following error. Could you please let me know how to fix this? If I do npm i --save ngx-cookie-service I can bypass this issue. Btw, I don't think you need that external dependency, why can't you just use document.cookie with their same validation?
edit : looking at peer dependency I can see that it's user based requirement but if the project will fail compile time why not make it a normal dependency?
Failed to compile.

The target entry-point "@netcreaties/ngx-smart-banner" has missing dependencies:
 - ngx-cookie-service

Well, installing peer dependency fixed my issue so I am closing it.

@hey24sheep i've been thinking about removing the service dependency. It has been added because the application i originally made this for already had it included and i was being lazy.
However, that application doesn't use the package anymore. I'll do an update soon where i'll be using document.cookie.


Parse and modify top-level declarations in a module

Describe the feature
I'd like to be able to modify top-level declarations within a module to, for example, modify objects that are exported in a separate statement. Something like:
// currently, there's no magicast-native way of accessing this declaration
const myConfig = defineConfig({/*...*/})
export default myConfig;

I'm using magicast in a script that's supposed to modify a user's vite.config.js and this quite common way of specifying a vite config unfortunately causes problems.
API proposal:
I'm thinking about something along these lines:
const originalCode = `
  const myConfig = defineConfig({/*...*/})
  export default myConfig;
`

const mod = parseModule(originalCode);

// example modification
mod.$declarations.myConfig = builders.raw(...)

Once we have a way of accessing/modifying declarations, we could for example adjust  theaddVitePlugin helper to use the $declarations field to adjust the config object if it is not directly default-exported.
I'm happy to give this a try to implement but I'd like to hear your thoughts around this first.
This is somewhat related to #45 but I believe modifying/parsing existing declarations isn't discussed in this issue.
Limitations
I think we need to accept that we couldn't possibly handle all kinds of declarations or complex syntax within them but for starters, I believe handling object declarations or function calls (like defineConfig) might be enough.
Additional information

[X] Would you be willing to help implement this feature?

An alternative would be to directly link to the actual declaration in the mod.exports.default property. While more convenient, I'd argue it's quite a diversion from representing an AST data structure. Also not sure which of the two options would be easier to implement


add ability to statically assign DMA channels

Please add some information about this new feature to the README.
Thanks

Also, I think a better name the member name static_dma_channels would be use_static_dma_channels or maybe use_static_DMA_channels for consistency with use_exclusive_DMA_IRQ_handler .

Also, I wanted to make sure you this wouldn't break other peoples existing usage code. My understanding is that it shouldn't, as long as their spi_t structs are intialized to zero. Which should be the case if they are globaly or staticly defined. What do you think?

That should be fine. I already have a remark about that in the README:

Generally, anything not specified will default to 0 or false. (This is the user's responsibility if using Dynamic Configuration, but in a Static Configuration [see Static vs. Dynamic Configuration], the C runtime initializes static memory to 0.)


Unity in Mac OSX?

I was wondering if anyone was successfully able to get the Intel cameras working in Unity on Mac OSX?
Is there any work being done to make this possible?
Thanks!

At various points in time we've had our cameras working in game engines including Unity and Unreal (although usually on Windows). I am not familiar with Unity's plugin architecture on OSX (it's probably easier than the Windows DLL approach) so this should definitely be possible.

Hello
I was wondering is there aplugin yet to Interface Intel real sense with Unity. If yet please can you share it .
Also is it possible to do Hand tracking with lib real sense?
Awaiting your Responses
Cheers


updated version of did-resolver and cross-fetch

did-resolver is updated

Since we want to be inline with our SSI_SDK, I'm closing this


Error 500 when checking server URL

          I’m on iOS and I’m getting the same error.  Self-hosted, running Wallabag 2.6.2, https, NGINX server…

Web server giving a 500:
[07/Aug/2023:00:17:07 +0100] "GET /api/info.json HTTP/1.1" 500 68 "-" "Dart/3.0 (dart:io)"
Works fine from the browser on my phone.

Server's log:
[2023-08-07 00:39:29] request.INFO: Matched route "api_get_info". {"route":"api_get_info","route_parameters":{"_route":"api_get_info","_format":"json","_controller":"Wallabag\\ApiBundle\\Controller\\WallabagRestController::getInfoAction"},"request_uri":"https://wallabag.XXXXXXXXXX/api/info.json","method":"GET"} []
[2023-08-07 00:39:29] security.INFO: Populated the TokenStorage with an anonymous Token. [] []
[2023-08-07 00:39:29] request.CRITICAL: Uncaught PHP Exception Symfony\Component\ErrorHandler\Error\UndefinedMethodError: "Attempted to call an undefined method named "getAttributes" of class "ReflectionClass"." at /var/www/wallabag/vendor/jms/serializer/src/Metadata/Driver/AttributeDriver/AttributeReader.php line 29 {"exception":"[object] (Symfony\\Component\\Debug\\Exception\\FatalThrowableError(code: 0): Attempted to call an undefined method named \"getAttributes\" of class \"ReflectionClass\". at /var/www/wallabag/vendor/jms/serializer/src/Metadata/Driver/AttributeDriver/AttributeReader.php:29)"} []

Originally posted by @xadium in https://github.com/casimir/frigoligo/issues/34#issuecomment-1667001749

Looks like you are hit by https://github.com/wallabag/wallabag/issues/5657.

I'm closing this issue has it is more than likely a server issue but feel free to reopen if needed!


Writing Test with Kitchen

I'm working on adding test suites to this application_python cookbook, and mainly focus on testing deploying django application using this cookbook.
Forked to
https://github.com/OpenAcademyChefs/application_python/tree/tests

test suite default:
deploying an empty application
(Passed)
test suite django_init:
deploying a sample django application
(Failing)

Not sure what the question was here.


#1690 Update independent assessments UI

What's included?
https://app.zenhub.com/files/201935567/942a1707-30b2-4c1e-b331-8dd7ee8670a6/download
Note: this PR is related to:

Apply site: #912 Select Assessor Type
Digital platform: Update assessments functions
Assessment site: Decline assessment

Who should test?
✅ Product owner
✅ Developers
✅ UTG
How to test?

Go to Independent Assessments of an exercise.

Click Start Assessments to start assessments.
Not requested:

Check Assessor type column in the table.
Select assessments and click Test requests to send test assessment requests.
Select assessments and click Send requests to send assessment requests. And then the selected assessments should appear in Requested tab and Sent statistical figure should increase one.
Select assessments and click Delete and then the selected assessments should move to Deleted tab.

https://user-images.githubusercontent.com/79906532/188426956-98d3a24f-563c-4c9f-9a70-7d8d9449fc2d.mov
Requested:

Check Assessor type column in the table.
Select assessments and click Test reminders to send test assessment reminders.
Select assessments and click Send reminders to send assessment reminders.
Select assessments and click Cancel. It should be able to type in some reason. And then the selected assessments should move to Cancelled tab.
Select assessments and click Reset. And then the selected assessments should move to Not requested tab and Sent statistical figure should decrease one.
Select assessments and click Delete and then the selected assessments should move to Deleted tab.

https://user-images.githubusercontent.com/79906532/188428271-8480e72b-8da4-43ce-8501-122f83ab4543.mov
Completed:

Check Assessor type column in the table.
Select assessments and click Cancel. It should be able to type in some reason. And then the selected assessments should move to Cancelled tab and Completed statistical figure should decrease one..
Select assessments and click Reset. And then the selected assessments should move to Not requested tab and Sent and Completed statistical figures should decrease one.
Select assessments and click Delete. And then the selected assessments should move to Requested tab and Completed statistical figure should decrease one.

Cancelled & Decline:

Check Assessor type column in the table.
Check the Reason column in the table.
Select assessments and click Reset. And then the selected assessments should move to Not requested tab and Sent statistical figure should decrease one.

https://user-images.githubusercontent.com/79906532/188428499-03484677-8295-4352-88bc-2b9936d5dba4.mov

Risk - how likely is this to impact other areas?
🟢 No risk - this is a self-contained piece of work
Additional context
Include screen grabs, video demo, notes etc.
Related permissions

No permission changes required

PREVIEW:DEVELOP

UT results: https://drie.slack.com/archives/C01R6GAAETG/p1665587137605259?thread_ts=1665580898.414769&cid=C01R6GAAETG


Add User Profile Size

One enhancement we'd like to see if the ability to gather and view the profile sizes for each user on a machine. We are often trying to hunt down the one profile that might have filled a hard drive in one of our labs. It would also come in handy when it's time to replace a machine so we can see how large profiles are in order to determine the HDD/SSD size of the next model or how long a backup/transfer would take.

In case someone wants to write this, here's a script that should collect the necessary data: https://gist.github.com/bochoven/591fadd4567a5c43c0d90498a5378a0d


failed make check

FAIL: test/run-tests
1 of 1 test failed
Please report to https://github.com/libuv/libuv/issues
Makefile:5177: recipe for target 'check-TESTS' failed
make[1]: *** [check-TESTS] Error 1
make[1]: Leaving directory '/home/hsarraf/libuv/libuv'
Makefile:5433: recipe for target 'check-am' failed
make: *** [check-am] Error 2

Version: libuv 1.6.1
Platform: Ubuntu 18.04.5 LTS (GNU/Linux 4.15.0-117-generic x86_64)

also not root while make check

Version: libuv 1.6.1

Please upgrade to the latest libuv version, v1.6.1 is from five years ago...


[.NET Use Cases for PyCs] Simplifying PyToCs

Currently, we have PyToCs to convert Python code to C#
There are projects e.g. Numpy.NET and TorchSharp which use Code Synthetic structures as close to Python code to ease the learning curve.
Perhaps by integrating PyCs to PyToCs, the translated codes by PyToCs would look closer to the python code synthetic structures than before.
Example from Numpy.NET

FYI: https://github.com/chrisphu/Pythonic-CS-Foreach-Enumeration


Add an exceptions channel

Add a static exception channel to TinyPubSub where all exceptions are passed to?
TinyPubSub.Subscribe<TinyException>(this, (e) => { ... });

TinyException wraps the inner exception or can be one of the following:

// Non-fatal exception where the listener is null.
ListenerIsNullException : TinyException

// More here?

In pullrequest

Fixed in PR! Thanks!


Removing UWP specific code

@andbene72 I plan to remove the UWP define you added, as now NBitcoin run .NET Standard 1.1 (limited features) and 1.3 (full feature) which should work fine with UWP.
Do you have a project you are developing now to test the new package of NBitcoin ?

You can remove it. I had little time last month to test the support of net.standard introduced in NBitcoin but I think that I will follow this path, it seems to me the most practical.

I'm waiting you give a try just in case... got some surprises with Mono, might have in UWP as well.

@andbene72 any feedback ?

Hi Nicolas,
still have not tested, but proceed, I will not have time in the next month as I have just started a new bitcoin related job, finally fully enganged in the tecnology. :D

Nice I hope you are using NBitcoin in the new job :D


Add "extending" for Test Suites to Extend from Existing Test Suite

Expected Behavior
Suppose the following test suite:
testing {
    suites {
        val test by getting(JvmTestSuite::class) {
            useJUnitJupiter()
        }
    }
}

If one needs to have an identical test suite, but with just a very small modification, such as including or excluding JUnit tags, it is quite a lot of work to create another test suite to do this. From my understanding, one would need to create a new configuration for every configuration that exists in the built-in testing, and extend from them.
If there were an extending function for test suites, the following could be done:
testing {
    suites {
        val test by getting(JvmTestSuite::class) {
            useJUnitJupiter()
        }

        val quickTest by extending(test) {
            useJUnitJupiter()
            targets {
                all {
                    testTask {
                        options {
                            val junitOptions = this as JUnitPlatformOptions;
                            junitOptions.excludeTags = setOf("long-tests")
                        }
                    }
                }
            }
        }
    }
}

This would create all of the necessary configurations, or use the ones from test, depending on the best way to do it, and use the existing source directories.
This would also be extremely useful to run the same tests multiple times with different versions of a dependency.
As far as I am aware, there is no easy way to do this as of Gradle 7.3.x. One would need to write a lot of boilerplate.
Current Behavior
Does not exist currently.
Context
Outlined in Expected Behavior.

This could have some unforeseen problems, so take this with a grain of salt, but this is what I was able to get to work coming up with something quickly:
@Suppress("UnstableApiUsage")
private fun cloneAction(suiteToClone: JvmTestSuite, subAction: JvmTestSuite.() -> Unit): JvmTestSuite.() -> Unit {
    val tasksToClone: MutableList<Test> = mutableListOf();
    var project: Project? = null

    suiteToClone.apply {
        targets {
            all {
                val toCloneTestTask = testTask.get()
                project = toCloneTestTask.project
                tasksToClone.add(toCloneTestTask)
            }
        }
    }

    return {
        useJUnitJupiter()

        dependencies {
            implementation(project)
        }

        sources.java.setSrcDirs(suiteToClone.sources.java.srcDirs)

        targets {
            all {
                tasksToClone.forEach { taskToClone ->
                    testTask.configure {
                        this.classpath = taskToClone.classpath
                        this.testClassesDirs = taskToClone.testClassesDirs
                    }
                }
            }
        }
        this.apply(subAction)
    }
}

fun <T : TestSuite, C : PolymorphicDomainObjectContainer<T>> C.registeringCloned(
    suiteToClone: JvmTestSuite,
    action: JvmTestSuite.() -> Unit
): RegisteringDomainObjectDelegateProviderWithTypeAndAction<out C, JvmTestSuite> =
    RegisteringDomainObjectDelegateProviderWithTypeAndAction.of(this, JvmTestSuite::class, superAction(suiteToClone, action))

testing {
    suites {
        val test: JvmTestSuite by getting(JvmTestSuite::class) {
            useJUnitJupiter()

            targets {
                all {
                    testTask {
                        options {
                            val junitOptions = this as JUnitPlatformOptions;
                            junitOptions.excludeTags = setOf("slow-tag")
                        }
                    }
                }
            }
        }

        val loadTest by registeringCloned(test) {
            targets {
                all {
                    testTask {
                        options {
                            val junitOptions = this as JUnitPlatformOptions;
                            junitOptions.includeTags = setOf("slow-tag")
                        }
                    }
                }
            }
        }
    }
}

Another approach, and probably the better one, which admittedly is slightly hacky, is to extend the configurations belonging to the test task of the suite being extended:
private fun extendFromConfigs(
    suiteToExtendFrom: JvmTestSuite,
    reuseSrc: Boolean = false,
    subAction: JvmTestSuite.() -> Unit
): JvmTestSuite.() -> Unit {
    var project: Project? = null
    var extendFromConfigMap: Map<String, Configuration>? = null

    suiteToExtendFrom.targets {
        all {
            val theTestTask = testTask.get()
            project = theTestTask.project
            extendFromConfigMap = configMapFor(project!!, theTestTask)
        }
    }

    return {
        useJUnitJupiter()

        dependencies {
            implementation(project)
        }

        if (reuseSrc) {
            sources.java.setSrcDirs(suiteToExtendFrom.sources.java.srcDirs)
            sources.resources.srcDirs(suiteToExtendFrom.sources.resources.srcDirs)
        }

        targets {
            all {
                testTask {
                    val extendedConfigMap = configMapFor(this.project, this)
                    extendedConfigMap.forEach {(name, config) ->
                        config.extendsFrom(extendFromConfigMap!![name])
                    }
                }
            }
        }
        this.apply(subAction)
    }
}

private fun configMapFor(project: Project, testTask: Test): Map<String, Configuration> {
    val configMap = mutableMapOf<String, Configuration>()

    project.configurations.forEach { config ->
        if (config.name.startsWith(testTask.name)) {
            configMap[config.name.removePrefix(testTask.name)] = config
        }
    }

    return configMap
}

fun <T : TestSuite, C : PolymorphicDomainObjectContainer<T>> C.registeringExtended(
    suiteToExtend: JvmTestSuite,
    reuseSrc: Boolean = false,
    action: JvmTestSuite.() -> Unit
): RegisteringDomainObjectDelegateProviderWithTypeAndAction<out C, JvmTestSuite> =
    RegisteringDomainObjectDelegateProviderWithTypeAndAction.of(this, JvmTestSuite::class, extendFromConfigs(suiteToExtend, reuseSrc, action))

And in build.gradle.kts:
testing {
    suites {
        val test by getting(JvmTestSuite::class) {
            useJUnitJupiter()
        }

        val integrationTest by registeringExtended(test)
    }
}

On 7.3 it worked fine with additional targets (probably unintentionally). But doesn't work on 7.4 anymore:
targets {
  all {
    testTask.configure {
    // common config
    }
  }
  integrationSmoke { testTask.configure { options { includeTags 'smoke' } } }
  integrationRegression { testTask.configure { options { includeTags 'regression' } } }
}


Can't build on windows

I tried to build electron on windows 8.1
C:\tools\python2\python.exe C:\Users\mizchi\apps\electron\vendor\brightray\script\bootstrap --commit 07a73a610496e4a1b4f
3abc3c2fb0516187ec460 --target_arch ia32 http://gh-contractor-zcbenz.s3.amazonaws.com/libchromiumcontent
C:\tools\python2\python.exe C:\Users\mizchi\apps\electron\script\update.py
Traceback (most recent call last):
  File "vendor\brightray\vendor\gyp\gyp_main.py", line 18, in <module>
    sys.exit(gyp.script_main())
  File "C:\tools\python2\lib\site-packages\gyp-0.1-py2.7.egg\gyp\__init__.py", line 533, in script_main
    return main(sys.argv[1:])
  File "C:\tools\python2\lib\site-packages\gyp-0.1-py2.7.egg\gyp\__init__.py", line 526, in main
    return gyp_main(args)
  File "C:\tools\python2\lib\site-packages\gyp-0.1-py2.7.egg\gyp\__init__.py", line 511, in gyp_main
    generator.GenerateOutput(flat_list, targets, data, params)
  File "C:\tools\python2\lib\site-packages\gyp-0.1-py2.7.egg\gyp\generator\ninja.py", line 2384, in GenerateOutput
    pool.map(CallGenerateOutputForConfig, arglists)
  File "C:\tools\python2\lib\multiprocessing\pool.py", line 251, in map
    return self.map_async(func, iterable, chunksize).get()
  File "C:\tools\python2\lib\multiprocessing\pool.py", line 558, in get
    raise self._value
AssertionError: 'C:/Users/mizchi/apps/electron/vendor/brightray/vendor/download/libchromiumcontent/src/content/app' can
not be absolute path (see crbug.com/462153).
None
Traceback (most recent call last):
  File ".\script\bootstrap.py", line 142, in <module>
    sys.exit(main())
  File ".\script\bootstrap.py", line 34, in main
    run_update()
  File ".\script\bootstrap.py", line 138, in run_update
    execute_stdout([sys.executable, update])
  File "C:\Users\mizchi\apps\electron\script\lib\util.py", line 152, in execute_stdout
    raise e
subprocess.CalledProcessError: Command '['C:\\tools\\python2\\python.exe', 'C:\\Users\\mizchi\\apps\\electron\\script\\u
pdate.py']' returned non-zero exit status 1

In my environment, v0.21.3 works but v0.25.3 failed

As mentioned in the output:

(see crbug.com/462153)

It is a bug of upstream Chromium, I think you can use relative path to work around it.

"I think you can use relative path to work around it."
Can you expand on that @zcbenz? I'm hitting this trying to build 0.26.0, where 0.25.2 seemed to work fine.

@mizchi did you resolved this problem?
that is my case:
d:\soft\Python27\python.exe f:\source\git_projects\electron_list\electron_201512
01\vendor\brightray\script\bootstrap --commit 17a4337f7948a45b5ea4b8f391df152ba8
db5979 --target_arch ia32 http://gh-contractor-zcbenz.s3.amazonaws.com/libchromi
umcontent
d:\soft\Python27\python.exe f:\source\git_projects\electron_list\electron_201512
01\script\update.py
Traceback (most recent call last):
  File "vendor\brightray\vendor\gyp\gyp_main.py", line 18, in <module>
    sys.exit(gyp.script_main())
  File "d:\soft\Python27\lib\site-packages\gyp-0.1-py2.7.egg\gyp\__init__.py", l
ine 545, in script_main
    return main(sys.argv[1:])
  File "d:\soft\Python27\lib\site-packages\gyp-0.1-py2.7.egg\gyp\__init__.py", l
ine 538, in main
    return gyp_main(args)
  File "d:\soft\Python27\lib\site-packages\gyp-0.1-py2.7.egg\gyp\__init__.py", l
ine 523, in gyp_main
    generator.GenerateOutput(flat_list, targets, data, params)
  File "d:\soft\Python27\lib\site-packages\gyp-0.1-py2.7.egg\gyp\generator\ninja
.py", line 2386, in GenerateOutput
    pool.map(CallGenerateOutputForConfig, arglists)
  File "d:\soft\Python27\lib\multiprocessing\pool.py", line 251, in map
    return self.map_async(func, iterable, chunksize).get()
  File "d:\soft\Python27\lib\multiprocessing\pool.py", line 567, in get
    raise self._value
AssertionError: 'f:/source/git_projects/electron_list/electron_20151201/vendor/b
rightray/vendor/download/libchromiumcontent/src/content/app' can not be absolute
 path (see crbug.com/462153).
None
Traceback (most recent call last):
  File "script/bootstrap.py", line 210, in <module>
    sys.exit(main())
  File "script/bootstrap.py", line 51, in main
    run_update()
  File "script/bootstrap.py", line 206, in run_update
    execute_stdout([sys.executable, update])
  File "f:\source\git_projects\electron_list\electron_20151201\script\lib\util.p
y", line 176, in execute_stdout
    raise e
subprocess.CalledProcessError: Command '['d:\\soft\\Python27\\python.exe', 'f:\\
source\\git_projects\\electron_list\\electron_20151201\\script\\update.py']' ret
urned non-zero exit status 1

I resolve that change from python 2.7.10  to python 2.7.3


fix(update): fixed default value of vpc

fixed default vpc value

This PR is included in version 0.0.3 :tada:


can speed up join with dpylr

when joining the station_key to the main bks dataset, drop geometry / st_drop_geometry() first instead of after the join -- or consider doing this with all variables to drop. This should speed up the join a lot.

resolved in #6

resolved in #6


[Homebrewery development] Setup gitter/discrord/slack/whatewer chat for contributors

Hi,
I would like to contribute to the project by implementing some new features, but I also would like to discuss implementation details/design/future roadmap with other contributors.
I understand that some part of questions may be discussed in issues/pull requests, but sometimes it is easier to sync with other devs in some live chat than in issues, especially on some internal implementation details/work distribution across devs/etc.
@stolksdorf, @Rae2che5, @calculuschild (@schemen and @kkragenbrink maybe?), what do you think?
My proposal is gitter.im, but I'm okay with any other tool.
BTW, my current progress you can see here: project board, code

I definitely think we'd benefit from more direct discussions, as well as some kind of project board-style management. Thanks for suggesting it!
I think at the moment we're slightly held back by @stolksdorf's sporadic availability; for example, his would be the natural repo to attach a gitter channel to, but he's the owner and so we can't do it. Same thing for project boards: Project-wide issues would ideally live on the canonical fork.
How would people (especially @stolksdorf) feel about creating a GitHub organization for the primary fork? The current contributors could become organization admins, and we would take it from there. (Any ideas about a suitable name? homebrewery is sadly taken...)

I think creating open-source organization for homebrewery development is a good idea!
If I understand correctly, all the content at naturalcrit.com is published on github:

stolksdorf/naturalcrit
stolksdorf/homebrewery

What about moving both of these repos to the naturalcrit (this name is available) organisation, owned by @stolksdorf?

I've registered the naturalcrit name (@stolksdorf, please speak up if you would prefer us to stay away from it!), and invited @calculuschild and @stolksdorf as owners of the organisation, and @AlexeySachkov as a member.

@stolksdorf, if you are not against of creating naturalcrit organization, could you please transer stolksdorf/homebrewery into the new organization?
Transfer is mush more better than fork: we will have all existing issues and PRs + auto redirect from old the url

Ah, that would indeed be better. I'll remove the existing fork that I created, as presumably it would name-clash with a potential transfer.

Help me understand the desire of moving forward with this project when the maintainer has made it clear there is no interest in doing so on his part. It's been well over a year since anything has been pushed to production, and many many months since any activity has been seen on the project.
I'm positive all of you are aware of GM Binder. But to reiterate, it exceeds the features of HB by far, gets regular new features, and is actively being developed into an even more robust too. I understand that it's not open source so you can't run your own, but we've been very very open about our plans, and have been praised time and time again for listening to our user - both from a support standpoint, as well as from a feature request standpoint.
So help me understand - what is the appeal for you of HB over GMB? I realize we'll never be able to make 100% of the community happy, but I'm genuinely curious.

I'm positive all of you are aware of GM Binder. But to reiterate, it exceeds the features of HB by far, gets regular new features, and is actively being developed into an even more robust too. I understand that it's not open source so you can't run your own, but we've been very very open about our plans, and have been praised time and time again for listening to our user - both from a support standpoint, as well as from a feature request standpoint.

Speaking for myself, it's indeed as simple as that: GMB is not open-source.  Nothing is lost.
No amount of extra features is going to make up for that, I'm afraid.

So help me understand - what is the appeal for you of HB over GMB? I realize we'll never be able to make 100% of the community happy, but I'm genuinely curious.

Perhaps you can help us understand -- how do you plan to make money from GMB? You seem to be heavily pushing a patreon page, but Scott also has one, which does just fine (well, clearly fine enough to keep the main server running). Do you ever plan to do anything more?
A related question: While of course it's your prerogative to keep GMB closed-source, could you explain why you don't open it up? I'm sure if you did plenty of people would feel much better about switching over, and I doubt you would lose any patreon revenue; in fact, you would probably gain some.

Thanks for the follow up. I always feel really odd bringing up this topic here as I want to be respectful to the time / effort / knowledge that has been applied to HB. I am 100% ok with answering your questions (as i've answered them before for people), but I don't want to muddy this thread, or the HB issue tracker in general. Would it make sense for you to ask these in /r/gmbinder? Or should I just reply here?

I'd say that ship has sailed, so please reply here; may as well keep the conversation in one place.

Ok, so on the idea of one day GMB shutting down and the users lose everything:
GMB is supported my company. We're a dev shop in the midwest, and maintaining this app is negligible compared to the other work we do. Even if everyone stopped backing our patreon tomorrow, GMB would stay up for many years to come. I personally get enough value from it to keep it going.
Clarifying, multiple devs in our office work on GMB in their free time. It's not just me. I just happen to be the face.
I want to point out something about data though. If either service were to shut down tomorrow, you would be out of 100% of your data. Wayback Machine will be useful, but that's about it. HB being open source means nothing because you do not have access to the actual database. Yes, you can and should always back up your work, but the majority of users do not do this.
Regarding OSS - The primary reason that we do not open source GMB is because it uses components that we have, as a dev shop, created and use with our clients. I do think there's some squish in this answer, but ultimately it's the decision we came to. That being said, it is based on AngularJS, and we're doing less and less AngularJS work (more and more Angular), so maybe there's a case for it in the future.
And finally, revenue. We've done a ton of research / communication with the community to better understand what they want and / or are will to do. This is in the context of both features of GMB, as well as what they'd pay. We have been very clear that the core ability to create and share content will always be free for everyone. The end result was that a significant portion of the community is happy with the free services provided, and a smaller, but still reasonably sized part of the community is more than willing to pay $3 or $5 a month for more features and to support us.
We do currently have features that are patron only features, and do have a plan to migrate away from Patreon to our own monthly subscription (to reduce Patreon fees and because doing payment processing is something we are very familiar with). Doing so will not change what every user can do for free.
Bottom line is, we have no misconceptions of GMB ever being a self sustaining business. It's a fun side project that buys us beer, coffee, and cool stuff for our office campaigns. If we can work to recoup a fraction of the value of effort put into it, great!

Outside of all of this, here's my rub with with the idea of nursing along HB. Extrapolating from our numbers, I know that HB more than likely sees more than 200k unique visitors a month and has somewhere around 100k or more users who have created 250k documents or more (all my educated guesses). Those users have put an unimaginable amount of time into their content. Literally 100's of thousands of hours of collective time.
And if there's an issue? Nothing.
Imagine what would happen if Imgur cut off HB like they did GMB a few months ago. We spent some long nights working with Imgur staff to understand the issue, building a system to scrape images, host them, cache them, and then reprocess 65k documents (documents plus versions) for the new URLs.
Those of you who have stepped up to help maintain are awesome, don't get me wrong. But if you can't get your fixes to prod, it really doesn't help.

Again, I get why HB still exists and why people use it. HB is the incumbent and their's a lot of content out there causing the "network effect". Scott has also held to his word on keeping it alive. I have full faith that he will continue to do so. But to see people actively spend their time in HB when there is - and I guess this is simply my opinion - an equally available and more feature rich tool that is getting regular updates and has better community support, Why? And why would anyone encourage others who don't know the history to repeat that mistake?

I hope none of this comes off as snarky or disrespectful. It's not my intent. We all know that some times text doesn't carry inflection / emotion well. Although it has been quite some time since I've made many of these statements, I do think this needs to be my last. People will do what they want to do, and I can't stop them from making what I think is a poor decision.
After all, it's just like, my opinion man...   :)

Thanks for the reply. There's a lot of detail there, but it seems to boil down to "trust us, we'll keep doing this, although it's not our primary business". Like you, I don't mean to come off as disrespectful -- but you're explicitly describing it as a group of volunteers who happen to work together working on a project that's useful to them. That sounds like a great basis for an open-source project to me, but does not make for a closed-source project I would want to invest creative time with.
For the record, of course data stored in HB.com's database is not safe from disappearance. The difference is that I have all of my markdown sources locally, and can always recreate the rendered output even if it goes away; in contrast, if GMB goes away, all my markdown sources become useless.

Hi, @LeviRosol

Help me understand the desire of moving forward with this project when the maintainer has made it clear there is no interest in doing so on his part.

I'm not a real user of Homebrewery - I have been looking at the project for some time and now I decided to contribute into it. As I understand Homebrewery users are still exists and I can make them more productive and happy by developing new features. You are right: there are some problems with pushing new changes to the prod, but I think all of them can be solved by communicating with @stolksdorf.
I'm not interested in GMBinder, because I don't need to create custom rule-books. But when I need such - I will use Homebrewery, because I already familiar with this tool: I can tweak and improve it for my own needs. Also I might contribute to the GMBinder too, but it is not open-source.

Anyway, if we jump back to the original topic:
I saw @AlexeySachkov has been trying to contact @stolksdorf . I have also sent him emails and PM'ed his reddit account, but alas, no replies so far.
Are we able to set up gitter.im on our github organization at this point or do we need to link it to the repo itself? It looks like gitter can work either way, and it would be nice to get some of this discussion out of the issues tracker.

Regarding production hosting; I could easily provide hosting for the site as it's already running on my swarm cluster, if you want that. What's missing is all the natural crit connection, no login and so on.

Are we able to set up gitter.im on our github organization at this point or do we need to link it to the repo itself?

@calculuschild, it is possible to create gitter chat for github organization and you should be able to do it by yourself as organization owner. I think we can start without linking a repo

Ok guys. I set up a gitter chat for the naturalcrit organization and invited everyone there. Maybe we can start moving this discussion over there.

My issue is I've been a GM for 41 years I have all the software tools available for cartography from a half-dozen companies I've never heard of GM binder what is it how much does it cost what are its features just give me a link somewhere that's not a subreddit / R something... I'm looking for a website with some hard information.
I've been involved with roll20 since its Inception and before that open RPG with python and before that web RPG and I've never heard of this GM binder so whoever is doing your ads they're not reaching hard core GM's that are on roll20 for whatever reason or I've never heard of it it mentioned in any blogs or videos from famous to semi-professional gamemaster's. Thanks.

Hi, @Pardalis66
Here you go: https://www.gmbinder.com
AFAIK, GMBinder is a tools similar to Homebrewery which allows you to create and share "your favorite tabletop RPG documents"

Closing this... the Gitter page and github org are set up.


cilium bpf metrics list pollutes the screen

Bug report
# cilium bpf metrics list
REASON             DIRECTION                          PACKETS   BYTES
|▒Z     count:19167137 bytes:94163499922
1⎼▒   ↓$°
S┤cce⎽⎽            E±⎼e⎽⎽                             3568      3▮83▮4
   ⎻1
⎼⎺⎺├184▮:·#

Not every run will fail, but at least 50% percent reproducible in my case.
General Information

Cilium version: 1.5.1
Kernel version: 4.14
Host OS: CentOS 7.1
Orchestration system version in use: k8s

How to reproduce the issue

Attach to container: docker exec -it <cilium container> bash
Issue command: cilium bpf metrics list

Or in one shot: docker exec <cilium container> cilium bpf metrics list
Dig into the problem
By some debugging, I found the problem comes from method Dump in pkg/bpf/map_linux.go:
// Dump returns the map (type map[string][]string) which contains all
// data stored in BPF map.
func (m *Map) Dump(hash map[string][]string) error {
	callback := func(key MapKey, value MapValue) {
		// No need to deep copy since we are creating strings.
		hash[key.String()] = append(hash[key.String()], value.String())
	}

	if err := m.DumpWithCallback(callback); err != nil {
		return err
	}

	return nil
}

Following line seems to be misbehaving.:
hash[key.String()] = append(hash[key.String()], value.String())

If I replace it with (force to deep copy the key string):
k := fmt.Sprintf("%s", key.String())
hash[k] = append(hash[k], value.String())

the problem will disappear.
But note that following version doesn't work:
k := key.String()
hash[k] = append(hash[k], value.String())

Look at the code, key.String() really returns a new string by fmt.Sprintf(), in pkg/maps/metricsmap/metricsmap.go, just as the comment line goes: // No need to deep copy since we are creating strings.

I also added some logs before and after the problematic line:
               fmt.Println("before append ...")
               for k, _ := range hash {
                       fmt.Println("key[", k, "], len[", len(k), "]")
               }
               hash[key.String()] = append(hash[key.String()], value.String())
               fmt.Println("after append ...")
               for k, _ := range hash {
                      fmt.Println("key[", k, "], len[", len(k), "]")
               }

This is what the output looks like:
# c bpf metrics list
before append ...
--------
after append ...
key[ reason:139 dir:2 ], len[ 16 ]

before append ...
key[ ▒ ], len[ 16 ]
--------
after append ...
key[ reason:151 dir:1 ], len[ 16 ]
key[ ▒ ], len[ 16 ]

before append ...
key[ ▒ ], len[ 16 ]
key[ reason:151 dir:1 ], len[ 16 ]
--------
after append ...
key[ ▒ ], len[ 16 ]
key[ reason:151 dir:1 ], len[ 16 ]
key[ reason:0 dir:2 ], len[ 14 ]

Seems the key has been corrupted by later rounds (loops).

@ArthurChiao Thanks for the detailed GH issue. Can you try with cilium v1.5.5 and v1.6.0-rc2? You don't need to restart Cilium, just using that CLIs provided for that versions should be enough.

OK, I will have a try, thanks! @aanm

Tested with 1.5.5, the problem disappeared.
I noticed the dump parser changes, which provided default values for the keys and values to be printed:
v1.5.5:
func init() {
        possibleCpus = getNumPossibleCPUs()
        // Metrics is a mapping of all packet drops and forwards associated with
        // the node on ingress/egress direction
        Metrics = bpf.NewMap(
                MapName,
                bpf.BPF_MAP_TYPE_PERCPU_HASH,
                int(unsafe.Sizeof(Key{})),
                int(unsafe.Sizeof(Value{})),
                MaxEntries,
                0, 0,
                func(key []byte, value []byte) (bpf.MapKey, bpf.MapValue, error) {
                        k, v := Key{}, Value{}

                        if err := bpf.ConvertKeyValue(key, value, &k, &v); err != nil {
                                return nil, nil, err
                        }
                        return &k, &v, nil
                })
}

v.1.5.1:
func init() {
        possibleCpus = getNumPossibleCPUs()
        // Metrics is a mapping of all packet drops and forwards associated with
        // the node on ingress/egress direction
        Metrics = bpf.NewMap(
                MapName,
                bpf.BPF_MAP_TYPE_PERCPU_HASH,
                &Key{},
                int(unsafe.Sizeof(Key{})),
                &Value{},
                int(unsafe.Sizeof(Value{})),
                MaxEntries,
                0, 0,
                bpf.ConvertKeyValue,
        )
}

But still not sure how the data was corrupted in 1.5.1?

@ArthurChiao there were some regressions introduced by https://github.com/cilium/cilium/commit/79c247a955f8c3e02f05dc172fce67e2dd268b2b which they were reverted back in the v1.5 branch. Did you try it out with v1.6.0-rc2?

thanks, I'd like to have a look at the commit.
v.1.6.0-rc2 not tested, using the CLI with 1.5.1 OK? I can verify it later today.

v1.6.0-rc2 verified. Problem solved.