A queue already exists with the same name and a different value for attribute RedrivePolicy

I am not yet sure as to the origins of the error, potentially JustSaying is trying to create the queue twice, but I have not looked what is the root cause.
 justSaying
                .WithSqsTopicSubscriber()
                    .IntoQueue("queue1")
                        .ConfigureSubscriptionWith(x =>
                        {
                            x.VisibilityTimeoutSeconds = (int)TimeSpan.FromHours(12).TotalSeconds;
                            x.RetryCountBeforeSendingToErrorQueue = 1;
                        })
                .WithMessageHandler<Handler1>(handlerResolver)
                .WithSqsPointToPointSubscriber()
                    .IntoQueue("queue1")
                    .ConfigureSubscriptionWith(x =>
                    {
                        x.VisibilityTimeoutSeconds = (int)TimeSpan.FromHours(12).TotalSeconds;
                        x.RetryCountBeforeSendingToErrorQueue = 1;
                    })
                .WithMessageHandler<Handler2>(handlerResolver)

The above code fails with this error. I have not found a workaround for this, except for removing sqs point to point subscriber and switching to sns subscriber
2016-06-07 09:19:24,191 [7] INFO  JustSaying [(null)] - Created Queue: dev-dariouso-ringcentral2_error on Arn: arn:aws:sqs:eu-west-1:xxxxxx:dev-dariouso-ringcentral2_error
2016-06-07 09:19:24,268 [7] ERROR JustSaying [(null)] - Create Queue error: dev-dariouso-ringcentral2
Amazon.SQS.Model.QueueNameExistsException: A queue already exists with the same name and a different value for attribute RedrivePolicy ---> Amazon.Runtime.Internal.HttpErrorResponseException: The remote server returned an error: (400) Bad Request. ---> System.Net.WebException: The remote server returned an error: (400) Bad Request.
   at System.Net.HttpWebRequest.GetResponse()
   at Amazon.Runtime.Internal.HttpRequest.GetResponse() in d:\Jenkins\jobs\build-sdkandtools-release\workspace\sdk\src\AWSSDK_DotNet35\Amazon.Runtime\Pipeline\HttpHandler\HttpWebRequestFactory.cs:line 106
   --- End of inner exception stack trace ---
   at Amazon.Runtime.Internal.HttpRequest.GetResponse() in d:\Jenkins\jobs\build-sdkandtools-release\workspace\sdk\src\AWSSDK_DotNet35\Amazon.Runtime\Pipeline\HttpHandler\HttpWebRequestFactory.cs:line 114
   at Amazon.Runtime.Internal.HttpHandler`1.InvokeSync(IExecutionContext executionContext) in d:\Jenkins\jobs\build-sdkandtools-release\workspace\sdk\src\AWSSDK_DotNet35\Amazon.Runtime\Pipeline\HttpHandler\HttpHandler.cs:line 84
   at Amazon.Runtime.Internal.PipelineHandler.InvokeSync(IExecutionContext executionContext) in d:\Jenkins\jobs\build-sdkandtools-release\workspace\sdk\src\AWSSDK_DotNet35\Amazon.Runtime\Pipeline\PipelineHandler.cs:line 55
   at Amazon.Runtime.Internal.Unmarshaller.InvokeSync(IExecutionContext executionContext) in d:\Jenkins\jobs\build-sdkandtools-release\workspace\sdk\src\AWSSDK_DotNet35\Amazon.Runtime\Pipeline\Handlers\Unmarshaller.cs:line 47
   at Amazon.Runtime.Internal.PipelineHandler.InvokeSync(IExecutionContext executionContext) in d:\Jenkins\jobs\build-sdkandtools-release\workspace\sdk\src\AWSSDK_DotNet35\Amazon.Runtime\Pipeline\PipelineHandler.cs:line 55
   at Amazon.SQS.Internal.ValidationResponseHandler.InvokeSync(IExecutionContext executionContext) in d:\Jenkins\jobs\build-sdkandtools-release\workspace\sdk\src\AWSSDK_DotNet35\Amazon.SQS\Internal\ValidationResponseHandler.cs:line 25
   at Amazon.Runtime.Internal.PipelineHandler.InvokeSync(IExecutionContext executionContext) in d:\Jenkins\jobs\build-sdkandtools-release\workspace\sdk\src\AWSSDK_DotNet35\Amazon.Runtime\Pipeline\PipelineHandler.cs:line 55
   at Amazon.Runtime.Internal.ErrorHandler.InvokeSync(IExecutionContext executionContext) in d:\Jenkins\jobs\build-sdkandtools-release\workspace\sdk\src\AWSSDK_DotNet35\Amazon.Runtime\Pipeline\ErrorHandler\ErrorHandler.cs:line 70
   --- End of inner exception stack trace ---
   at Amazon.Runtime.Internal.HttpErrorResponseExceptionHandler.HandleException(IExecutionContext executionContext, HttpErrorResponseException exception) in d:\Jenkins\jobs\build-sdkandtools-release\workspace\sdk\src\AWSSDK_DotNet35\Amazon.Runtime\Pipeline\ErrorHandler\HttpErrorResponseExceptionHandler.cs:line 99
   at Amazon.Runtime.Internal.ExceptionHandler`1.Handle(IExecutionContext executionContext, Exception exception) in d:\Jenkins\jobs\build-sdkandtools-release\workspace\sdk\src\AWSSDK_DotNet35\Amazon.Runtime\Pipeline\ErrorHandler\ExceptionHandler.cs:line 38
   at Amazon.Runtime.Internal.ErrorHandler.ProcessException(IExecutionContext executionContext, Exception exception) in d:\Jenkins\jobs\build-sdkandtools-release\workspace\sdk\src\AWSSDK_DotNet35\Amazon.Runtime\Pipeline\ErrorHandler\ErrorHandler.cs:line 202
   at Amazon.Runtime.Internal.ErrorHandler.InvokeSync(IExecutionContext executionContext) in d:\Jenkins\jobs\build-sdkandtools-release\workspace\sdk\src\AWSSDK_DotNet35\Amazon.Runtime\Pipeline\ErrorHandler\ErrorHandler.cs:line 76
   at Amazon.Runtime.Internal.PipelineHandler.InvokeSync(IExecutionContext executionContext) in d:\Jenkins\jobs\build-sdkandtools-release\workspace\sdk\src\AWSSDK_DotNet35\Amazon.Runtime\Pipeline\PipelineHandler.cs:line 55
   at Amazon.Runtime.Internal.CallbackHandler.InvokeSync(IExecutionContext executionContext) in d:\Jenkins\jobs\build-sdkandtools-release\workspace\sdk\src\AWSSDK_DotNet35\Amazon.Runtime\Pipeline\Handlers\CallbackHandler.cs:line 45
   at Amazon.Runtime.Internal.PipelineHandler.InvokeSync(IExecutionContext executionContext) in d:\Jenkins\jobs\build-sdkandtools-release\workspace\sdk\src\AWSSDK_DotNet35\Amazon.Runtime\Pipeline\PipelineHandler.cs:line 55
   at Amazon.Runtime.Internal.Signer.InvokeSync(IExecutionContext executionContext) in d:\Jenkins\jobs\build-sdkandtools-release\workspace\sdk\src\AWSSDK_DotNet35\Amazon.Runtime\Pipeline\Handlers\Signer.cs:line 38
   at Amazon.Runtime.Internal.PipelineHandler.InvokeSync(IExecutionContext executionContext) in d:\Jenkins\jobs\build-sdkandtools-release\workspace\sdk\src\AWSSDK_DotNet35\Amazon.Runtime\Pipeline\PipelineHandler.cs:line 55
   at Amazon.Runtime.Internal.CredentialsRetriever.InvokeSync(IExecutionContext executionContext) in d:\Jenkins\jobs\build-sdkandtools-release\workspace\sdk\src\AWSSDK_DotNet35\Amazon.Runtime\Pipeline\Handlers\CredentialsRetriever.cs:line 72
   at Amazon.Runtime.Internal.PipelineHandler.InvokeSync(IExecutionContext executionContext) in d:\Jenkins\jobs\build-sdkandtools-release\workspace\sdk\src\AWSSDK_DotNet35\Amazon.Runtime\Pipeline\PipelineHandler.cs:line 55
   at Amazon.Runtime.Internal.RetryHandler.InvokeSync(IExecutionContext executionContext) in d:\Jenkins\jobs\build-sdkandtools-release\workspace\sdk\src\AWSSDK_DotNet35\Amazon.Runtime\Pipeline\RetryHandler\RetryHandler.cs:line 84
   at Amazon.Runtime.Internal.PipelineHandler.InvokeSync(IExecutionContext executionContext) in d:\Jenkins\jobs\build-sdkandtools-release\workspace\sdk\src\AWSSDK_DotNet35\Amazon.Runtime\Pipeline\PipelineHandler.cs:line 55
   at Amazon.Runtime.Internal.CallbackHandler.InvokeSync(IExecutionContext executionContext) in d:\Jenkins\jobs\build-sdkandtools-release\workspace\sdk\src\AWSSDK_DotNet35\Amazon.Runtime\Pipeline\Handlers\CallbackHandler.cs:line 45
   at Amazon.Runtime.Internal.PipelineHandler.InvokeSync(IExecutionContext executionContext) in d:\Jenkins\jobs\build-sdkandtools-release\workspace\sdk\src\AWSSDK_DotNet35\Amazon.Runtime\Pipeline\PipelineHandler.cs:line 55
   at Amazon.Runtime.Internal.EndpointResolver.InvokeSync(IExecutionContext executionContext) in d:\Jenkins\jobs\build-sdkandtools-release\workspace\sdk\src\AWSSDK_DotNet35\Amazon.Runtime\Pipeline\Handlers\EndpointResolver.cs:line 34
   at Amazon.Runtime.Internal.PipelineHandler.InvokeSync(IExecutionContext executionContext) in d:\Jenkins\jobs\build-sdkandtools-release\workspace\sdk\src\AWSSDK_DotNet35\Amazon.Runtime\Pipeline\PipelineHandler.cs:line 55
   at Amazon.SQS.Internal.ProcessRequestHandler.InvokeSync(IExecutionContext executionContext) in d:\Jenkins\jobs\build-sdkandtools-release\workspace\sdk\src\AWSSDK_DotNet35\Amazon.SQS\Internal\ProcessRequestHandler.cs:line 23
   at Amazon.Runtime.Internal.PipelineHandler.InvokeSync(IExecutionContext executionContext) in d:\Jenkins\jobs\build-sdkandtools-release\workspace\sdk\src\AWSSDK_DotNet35\Amazon.Runtime\Pipeline\PipelineHandler.cs:line 55
   at Amazon.Runtime.Internal.Marshaller.InvokeSync(IExecutionContext executionContext) in d:\Jenkins\jobs\build-sdkandtools-release\workspace\sdk\src\AWSSDK_DotNet35\Amazon.Runtime\Pipeline\Handlers\Marshaller.cs:line 37
   at Amazon.Runtime.Internal.PipelineHandler.InvokeSync(IExecutionContext executionContext) in d:\Jenkins\jobs\build-sdkandtools-release\workspace\sdk\src\AWSSDK_DotNet35\Amazon.Runtime\Pipeline\PipelineHandler.cs:line 55
   at Amazon.Runtime.Internal.CallbackHandler.InvokeSync(IExecutionContext executionContext) in d:\Jenkins\jobs\build-sdkandtools-release\workspace\sdk\src\AWSSDK_DotNet35\Amazon.Runtime\Pipeline\Handlers\CallbackHandler.cs:line 45
   at Amazon.Runtime.Internal.PipelineHandler.InvokeSync(IExecutionContext executionContext) in d:\Jenkins\jobs\build-sdkandtools-release\workspace\sdk\src\AWSSDK_DotNet35\Amazon.Runtime\Pipeline\PipelineHandler.cs:line 55
   at Amazon.Runtime.Internal.ErrorCallbackHandler.InvokeSync(IExecutionContext executionContext) in d:\Jenkins\jobs\build-sdkandtools-release\workspace\sdk\src\AWSSDK_DotNet35\Amazon.Runtime\Pipeline\Handlers\ErrorCallbackHandler.cs:line 44
   at Amazon.Runtime.Internal.PipelineHandler.InvokeSync(IExecutionContext executionContext) in d:\Jenkins\jobs\build-sdkandtools-release\workspace\sdk\src\AWSSDK_DotNet35\Amazon.Runtime\Pipeline\PipelineHandler.cs:line 55
   at Amazon.Runtime.Internal.MetricsHandler.InvokeSync(IExecutionContext executionContext) in d:\Jenkins\jobs\build-sdkandtools-release\workspace\sdk\src\AWSSDK_DotNet35\Amazon.Runtime\Pipeline\Handlers\MetricsHandler.cs:line 40
   at Amazon.Runtime.Internal.RuntimePipeline.InvokeSync(IExecutionContext executionContext) in d:\Jenkins\jobs\build-sdkandtools-release\workspace\sdk\src\AWSSDK_DotNet35\Amazon.Runtime\Pipeline\RuntimePipeline.cs:line 135
   at Amazon.Runtime.AmazonServiceClient.Invoke[TRequest,TResponse](TRequest request, IMarshaller`2 marshaller, ResponseUnmarshaller unmarshaller) in d:\Jenkins\jobs\build-sdkandtools-release\workspace\sdk\src\AWSSDK_DotNet35\Amazon.Runtime\AmazonServiceClient.cs:line 117
   at Amazon.SQS.AmazonSQSClient.CreateQueue(CreateQueueRequest request) in d:\Jenkins\jobs\build-sdkandtools-release\workspace\sdk\src\AWSSDK_DotNet45\Amazon.SQS\AmazonSQSClient.cs:line 730
   at JustSaying.AwsTools.SqsQueueByNameBase.Create(SqsBasicConfiguration queueConfig, Int32 attempt)

I have never used both TopicSubscriber and PointToPoint subscriber into a queue.
Did you intentionally name your queue 'queue1' for both subscribers?
If yes then I don't understand your intentions. Do you want a topic based pub/sub or do you want to directly drop a message in a queue without a topic?

@payman81 yes, both queue names are same.    And it works fine without the custom redrive policy.

Do you want a topic based pub/sub or do you want to directly drop a message in a queue without a topic?

It depends. My service might listen for UserCreated event (SNS subsription), and it might also listen for command SendWelcomeEmail message. Not ideal example, as it does not make much business sense what i've described here.
Both messages are send to same queue. Commands - directly to queue. Events - subscribes a queue to a topic. There is really no difference if queue is same in both cases.

I have run into this problem with the plain AWS SDK. It is because for some reason AWS differs between:

Creating a queue and setting it's attributes at the same time, by using this AmazonSQSClient.CreateQueue(CreateQueueRequest) blows up and you get the exception.
But creating a queue using AmazonSQSClient.CreateQueue(string) and then setting the queue attributes with AmazonSQSClient.SetQueueAttributes(string, Dictionary<string, string>). I suspect because the latter overwrites.

Hi Singh400,
Thanks for the input.
I've submitted a PR for the fix.
https://github.com/justeat/JustSaying/pull/331

Looks like this could be the cause of the problem: https://github.com/justeat/JustSaying/commit/9a9be6b413613223a5be312e32db0b0e4ac00996#diff-510a036709714161cb690792aba4801b
A change was made which means when determining if a queue exists, it switched from enumerating all queues to fetching the url of queues one-by-one. And our components that had problems with this versions only have permission to sqs:ListQueues and not sqs:GetQueueUrl.
When you do not have permission it appears that QueueDoesNotExistException is thrown by the AWSSDK - so JustSaying would treat it as not existing and attempt queue creation.
So maybe the fixes in the recent PRs are sidestepping the issue somewhat- because in this situation where a queue already exists, Create() shouldn't ever be called in the first place, and making it work in this case shouldn't be necessary.

@tomhaigh Thanks for figuring out the root cause. I suspected Exists() as this issue started happening quite of a sudden. Still, IMO, it's good to override the attribute to avoid any issues in the future.


Output file lacking hyperlinks to actual PRs

I am trying to save changelog  in a CHANGELOG.md file, however it doesn't have hyperlinks to pull requests

@shozabhussain the action uses this default template:
https://github.com/mikepenz/release-changelog-builder-action/blob/develop/src/configuration.ts#L77
You can configure the template to any format you will need for your usecases. Including making out of the auto links which work on gitHub real links for your file

@mikepenz Grateful for such quick reply, it's working


Error downloading file to be converted

Hello,
After installing UCS4.4, let's encrypt, owncloud and onlyoffice I'm getting an error when I'm trying to configure onlyoffice. This is what I get :

And the log file simply says :
[2019-06-05T13:47:49.248] [ERROR] nodeJS - error downloadFile:url=https://<IP_ADDRESS>/owncloud/apps/onlyoffice/empty?doc=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhY3Rpb24iOiJlbXB0eSJ9.8Xxno0drgo6gkkmYFYtSDppopeJvVpqLfY31X7e98N4;attempt=3;code:null;connect:null;(id=conv_check_1107174278_docx)
Error: Hostname/IP doesn't match certificate's altnames: "IP: <IP_ADDRESS> is not in the cert's list: "
By no mean I am a pro regarding all this, but I did this kind of installation quite a few times already and this never happened. Any idea anyone ?

Hello @Sarcasthik please move this issue in owncloud repo.

Hello @Carazyda , oh thanks for the heads up, I didn't see this one.
Now this might be dumb but..how does one move an issue to another repo ? I close this one and reopen it there ?
Thanks for your response !


Bottom contact cards animated

We have here three cards which are currently static and doesnt enhance User experience. I think we should do something cool on hover

done, cursor pointer and hover effect


45 fix toggle menu

The transition of the toggle button has been corrected (the icon was returning to its initial state without transition)
The position of the button has been modified to display it on the left of the logo
The menu container has been modified to be displayed on the whole width of the screen when activated on mobile; a transition has been added for a better reading.
The different states of the menu (active/not active) have been corrected and should not be a problem anymore, both on mobile and desktop computers

https://user-images.githubusercontent.com/16835349/164456659-34b47c7b-7472-4f5c-b596-ae43fcaffd18.mp4

2 little remarks to fix:

could you center the logo when on mobile version, then? (PS: I really like how the toggle button is on the left! <3 )
when you're logged in, the log out link isn't center, could you fix it please?

All the position problems have normally been solved; if you have a better suggestion in terms of design I leave it to you because I didn't really have any ideas that I like 🤐

All the position problems have normally been solved; if you have a better suggestion in terms of design I leave it to you because I didn't really have any ideas that I like 🤐

Could you just change every unit you've used to rem, please? I can see there are still some em and vh, let's try and remain consistant :)

Could you just change every unit you've used to rem, please? I can see there are still some em and vh, let's try and remain consistant :)

fix: inconsistency of units That's exactly what I did, right? 😥

Indeed you were right, I had completely forgotten those!

You can now resolve the conflicts due to the merge of my PR hahaha

Indeed you were right, I had completely forgotten those!

You can now resolve the conflicts due to the merge of my PR hahaha

Yes, I'm on it 🤯

Indeed you were right, I had completely forgotten those!

You can now resolve the conflicts due to the merge of my PR hahaha

I had to solve a problem with the header disappearing when the mobile menu was open, but normally everything should be fine!


Added Crown Field Protocols from 2019

from our Google Drive for Crown, all the current protocols, edited as of the end of 2019

Looks good.  Sorry to be slow


Fix category icons not being shown on the first load

What

Fix category icons not being shown on the first load

How

Assign private variable to the app config result

Instead of useState or a "private" variable, we can use useRef.
// Declaration
const appConfigRef = useRef();

// When the App Config has been read from the backend
appConfigRef.current = appConfigResult;

// When we want to use it
const appConfigCategory = appConfigRef.current?.menuInfo.mainmenu.find(category => category.categoryKey === key);

That's a much better solution 👏🏻

That's a much better solution 👏🏻

This pattern may even solve our other "private" hacks.


Add support for Flexy Pool 3

Flexy Pool 3 will bring the following changes:

The minimum Java version is 17
All dependencies are updated to the latest versions
Remove all the deprecated modules: BoneCP, BTM, Dropwizard Metrics 3
Fix typos in variable names (e.g., connectionAcquisition instead of connectionAcquiring or connectioAcquire)
Rename the Configuration class name to FlexyPoolConfiguration to avoid conflicts with other frameworks

Fixed.


Duplicated policy and image files in a release

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
After recent changes in the release CI to add files with list of policies and images a release ended having two versions of the same file.
Expected Behavior
The release should have one file for the policy list and another one for the image list
Steps To Reproduce
No response
Environment
- OS:
- Architecture:

Anything else?
No response

This seems solved with the changes @jvanz did, https://github.com/kubewarden/helm-charts/releases/tag/kubewarden-defaults-1.4.0 is fine.
Closing!


Remove executable permission where not needed

What does this PR (Pull Request) do?

[x] This PR is not related to any Issue

Removes the executable bit from files that don't need it
Which Traffic Control components are affected by this PR?

Documentation
Traffic Ops
Traffic Ops ORT (atscfg)
Traffic Portal
Traffic Router

What is the best way to verify this PR?
Build RPMs and run tests for all affected components
If this is a bug fix, what versions of Traffic Control are affected?

master (6eed2b058f46e7505ce55389ea8666298582b220)
3.1

The following criteria are ALL met by this PR

[x] Tests are unnecessary
[x] Documentation is unnecessary
[x] An update to CHANGELOG.md is not necessary
[x] This PR includes any and all required license headers
[x] This PR does not include a database migration
[x] This PR DOES NOT FIX A SERIOUS SECURITY VULNERABILITY

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4709/


Add version to transform-runtime plugin

By default, babel assumes babel/helpers version 7.0.0-beta.0, this PR explicitly resolves the helpers to match the provide functions.
See: https://github.com/babel/babel/issues/10261

Nvm, I see this repo uses an undocumented absoluteRuntime config which should do the same thing. Although we do see lots of duplicated _objectSpread and ownKeys helpers in our application.


Negotiated PDU Size

This is my modified Open-code which supports negotiated PDU size.  The original code hardcodes an effective 222-byte PDU size (240-18).  S7-400 supports 480-18 and I believe S7-1500 supports 960-18.
This code requests highest possible PDU size and PLC will respond with its highest supported size which is saved to the PDUSize property.
I am using this code successfully with 300 and 400 PLCs and I've briefly tested with 1500 but I don't remember if I got a 480 or 960 PDU.
PS.  Sorry for posting code here instead of contributing :)
    public ErrorCode Open()
    {
	    byte[] bReceive = new byte[256];

	    if (OnlyConnectIfRespondsToPing && !Ping())
        {
		    LastErrorCode = ErrorCode.IPAddressNotAvailable;
		    LastErrorString = string.Format("Destination IP-Address '{0}' is not available!", IP);
		    return LastErrorCode;
	    }

	    try {
		    // open the channel
            if (_mSocket != null)
                _mSocket.Dispose();

            _mSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

		    _mSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, ReceiveTimeout);
		    _mSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, SendTimeout);

		    IPEndPoint server = new IPEndPoint(IPAddress.Parse(IP), Port);
            IAsyncResult result = _mSocket.BeginConnect(server, null, null);
            result.AsyncWaitHandle.WaitOne(1000, true);
            if (!_mSocket.Connected)
                throw new TimeoutException();
	    }
        catch (TimeoutException ex)
        {
		    LastErrorCode = ErrorCode.ConnectionTimeout;
		    LastErrorString = ex.Message;
		    return ErrorCode.ConnectionError;
	    }
        catch (Exception ex)
        {
            LastErrorCode = ErrorCode.ConnectionError;
            LastErrorString = ex.Message;
            return ErrorCode.ConnectionError;
        }

	    try
        {
		    byte[] bSend1 = { 3, 0, 0, 22, 17, 224, 0, 0, 0, 46, 0, 193, 2, 1, 0, 194, 2, 3, 0, 192, 1, 9 };
            // 0 = version number (for S7 communication always 0x03)
            // 1 = reserved (always 0x00)
            // 2-3 = size of ISO-TCP message (including this header) in byte
            // 4 = length (in byte) of TPDU header  (without this byte and possible user data)
            // 5 = CR code (1110) & credit (always 0000)
            // 6-7 = destination reference
            // 8-9 = source reference
            // 10 = class option (always class 0)
            // 11 = 0xC1 (code: calling TSAP-ID)
            // 12 = 0x02 (number of bytes following)
            // 13 = 0x02 (unknown function; part of TSAP-ID)
            // 14 = TSAP-ID (rack & slot)
            // 15 = 0xC2 (code: called TSAP-ID)
            // 16 = 0x02 (number of bytes following)
            // 17 = 0x02 (unknown function; part of TSAP-ID)
            // 18 = TSAP-ID (rack & slot)
            // 19 = 0xC0 (code: TPDU size)
            // 20 = 0x01 (number of bytes following)
            // 21 = TPDU size (as exponent to base of 2)

		    switch (CPU) {
			    case CpuType.S7200:
				    //S7200: Chr(193) & Chr(2) & Chr(16) & Chr(0) 'Eigener Tsap
				    bSend1[11] = 193;
				    bSend1[12] = 2;
				    bSend1[13] = 16;
				    bSend1[14] = 0;
				    //S7200: Chr(194) & Chr(2) & Chr(16) & Chr(0) 'Fremder Tsap
				    bSend1[15] = 194;
				    bSend1[16] = 2;
				    bSend1[17] = 16;
				    bSend1[18] = 0;
				    break;
			    case CpuType.S7300:
				    //S7300: Chr(193) & Chr(2) & Chr(1) & Chr(0)  'Eigener Tsap
				    bSend1[11] = 193;
				    bSend1[12] = 2;
				    bSend1[13] = 1;
				    bSend1[14] = 0;
				    //S7300: Chr(194) & Chr(2) & Chr(3) & Chr(2)  'Fremder Tsap
				    bSend1[15] = 194;
				    bSend1[16] = 2;
				    bSend1[17] = 3;
				    bSend1[18] = (byte)(Rack * 2 * 16 + Slot);
				    break;
			    case CpuType.S7400:
				    //S7400: Chr(193) & Chr(2) & Chr(1) & Chr(0)  'Eigener Tsap
				    bSend1[11] = 193;
				    bSend1[12] = 2;
				    bSend1[13] = 1;
				    bSend1[14] = 0;
				    //S7400: Chr(194) & Chr(2) & Chr(3) & Chr(3)  'Fremder Tsap
				    bSend1[15] = 194;
				    bSend1[16] = 2;
				    bSend1[17] = 3;
                    bSend1[18] = (byte)(Rack * 2 * 16 + Slot);
				    break;
                //case CpuType.S71200:
                case CpuType.S71500:
                    // Eigener Tsap
                    bSend1[11] = 193;
                    bSend1[12] = 2;
                    bSend1[13] = 0x10;
                    bSend1[14] = 0x2;
                    // Fremder Tsap
                    bSend1[15] = 194;
                    bSend1[16] = 2;
                    bSend1[17] = 0x3;
                    bSend1[18] = 0x0;
                    break;
                default:
				    return ErrorCode.WrongCPU_Type;
		    }

            //Console.WriteLine("> " + string.Join(" ", bSend1.Select(b => b.ToString("x2"))));
            _mSocket.Send(bSend1, 22, SocketFlags.None);
            int receiveCount = _mSocket.Receive(bReceive, 22, SocketFlags.None);

            /*
            0-3 ISO-TCP header
            4 length (in byte) of TPDU header (without this byte and possible user data)
            5 CC code (1101) & credit (always 0000)
            6-7 destination reference
            8-9 source reference
            10 class option (always class 0)
            11 0xC0 (code: TPDU size)
            12 0x01 (length of bytes following)
            13 TPDU size (as exponent to base of 2)
            14 0xC1 (code: calling TSAP-ID)
            15 0x02 (length of id)
            16 0x02 (unknown function; part of TSAP-ID)
            17 TSAP-ID (rack & slot)
            18 0xC2 (code: called TSAP-ID)
            19 0x02 (length of id)
            20 0x02 (unknown function; part of TSAP-ID)
            21 TSAP-ID (rack & slot)
             *
             * More about data structurs can be found on http://www.bj-ig.de/147.html
            */

            //Console.WriteLine("< " + string.Join(" ", bReceive.Take(receiveCount).Select(b => b.ToString("x2"))));
            //Console.WriteLine("PDU: " + bReceive[13] + " (" + Math.Pow(2, bReceive[13]) + ")");
            if (receiveCount != 22)
		    {
                throw new Exception(ErrorCode.WrongNumberReceivedBytes.ToString());
		    }

            byte[] bsend2 = { 3, 0, 0, 25, 2, 240, 128, 50, 1, 0, 0, 255, 255, 0, 8, 0, 0, 240, 0, 0, 3, 0, 3, 0x3, 0xC0 };
            //Console.WriteLine("> " + string.Join(" ", bsend2.Select(b => b.ToString("x2"))));
            _mSocket.Send(bsend2, 25, SocketFlags.None);
            receiveCount = _mSocket.Receive(bReceive, 27, SocketFlags.None);
            //Console.WriteLine("< " + string.Join(" ", bReceive.Take(receiveCount).Select(b => b.ToString("x2"))));
            if (receiveCount == 27)
            {
                PDUSize = IPAddress.NetworkToHostOrder((short)BitConverter.ToUInt16(bReceive, 25));
            }
            else
		    {
                //Console.WriteLine("< " + string.Join(" ", bReceive.Select(b => b.ToString("x2"))));
                throw new Exception(ErrorCode.WrongNumberReceivedBytes.ToString());
		    }
	    }
	    catch
        {
		    LastErrorCode = ErrorCode.ConnectionError;
		    LastErrorString = string.Format("Couldn't establish the connection to {0}!", IP);
		    return ErrorCode.ConnectionError;
	    }

	    return ErrorCode.NoError;
    }

Thanks! I will add it then make a pull request.

I checked the code but i need more information to merge it.
Actually i don't know the value of CpuType.S71500 and how do you use PDUSize in the code.
If you can provide the full source, i can make the merge.

The only relevant part for PDU is the last two bytes of bSend2 (0x3 0xC0) which requests max PDU size from PLC.  Bytes 25/26 in the response is the PLCs PDU.
A single read-request can request at most PDUSize-18 bytes.  I often read several kilobytes from a datablock so I need to make multiple read requests where each request is at most PDUSize-18.
For a S7-300 which has a PDU of 240, each request can be 222 bytes max.
From my code that use the PLC-class, I use
public int MaxRequestSize { get { return Math.Max(222,plc.PDUSize - 18);  } }

Thks for the help i update the code so pls i wanna contribuite with the comunity:
public ErrorCode Open()
{
byte[] bReceive = new byte[256];
	    try
        {
		    // check if available
            if (!IsAvailable)
            {
                throw new Exception();
            }
        }
	    catch
        {
		    LastErrorCode = ErrorCode.IPAddressNotAvailable;
		    LastErrorString = string.Format("Destination IP-Address '{0}' is not available!", IP);
		    return LastErrorCode;
	    }

	    try {
		    // open the channel
		    _mSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

		    _mSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 1000);
		    _mSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 1000);

		    IPEndPoint server = new IPEndPoint(IPAddress.Parse(IP), 102);
		    _mSocket.Connect(server);
	    }
	    catch (Exception ex) {
		    LastErrorCode = ErrorCode.ConnectionError;
		    LastErrorString = ex.Message;
		    return ErrorCode.ConnectionError;
	    }

	    try
        {
		    byte[] bSend1 = { 3, 0, 0, 22, 17, 224, 0, 0, 0, 46, 0, 193, 2, 1, 0, 194, 2, 3, 0, 192, 1, 9 };

		    switch (CPU) {
			    case CpuType.S7200:
				    //S7200: Chr(193) & Chr(2) & Chr(16) & Chr(0) 'Eigener Tsap
				    bSend1[11] = 193;
				    bSend1[12] = 2;
				    bSend1[13] = 16;
				    bSend1[14] = 0;
				    //S7200: Chr(194) & Chr(2) & Chr(16) & Chr(0) 'Fremder Tsap
				    bSend1[15] = 194;
				    bSend1[16] = 2;
				    bSend1[17] = 16;
				    bSend1[18] = 0;
				    break;
                case CpuType.S71200:
			    case CpuType.S7300:
				    //S7300: Chr(193) & Chr(2) & Chr(1) & Chr(0)  'Eigener Tsap
				    bSend1[11] = 193;
				    bSend1[12] = 2;
				    bSend1[13] = 1;
				    bSend1[14] = 0;
				    //S7300: Chr(194) & Chr(2) & Chr(3) & Chr(2)  'Fremder Tsap
				    bSend1[15] = 194;
				    bSend1[16] = 2;
				    bSend1[17] = 3;
				    bSend1[18] = (byte)(Rack * 2 * 16 + Slot);
				    break;
			    case CpuType.S7400:
				    //S7400: Chr(193) & Chr(2) & Chr(1) & Chr(0)  'Eigener Tsap
				    bSend1[11] = 193;
				    bSend1[12] = 2;
				    bSend1[13] = 1;
				    bSend1[14] = 0;
				    //S7400: Chr(194) & Chr(2) & Chr(3) & Chr(3)  'Fremder Tsap
				    bSend1[15] = 194;
				    bSend1[16] = 2;
				    bSend1[17] = 3;
                    bSend1[18] = (byte)(Rack * 2 * 16 + Slot);
				    break;
                case CpuType.S71500:
                    // Eigener Tsap
                    bSend1[11] = 193;
                    bSend1[12] = 2;
                    bSend1[13] = 0x10;
                    bSend1[14] = 0x2;
                    // Fremder Tsap
                    bSend1[15] = 194;
                    bSend1[16] = 2;
                    bSend1[17] = 0x3;
                    bSend1[18] = 0x0;
                    break;
			    default:
				    return ErrorCode.WrongCPU_Type;
		    }

		    _mSocket.Send(bSend1, 22, SocketFlags.None);
		    if (_mSocket.Receive(bReceive, 22, SocketFlags.None) != 22)
		    {
		        throw new Exception(ErrorCode.WrongNumberReceivedBytes.ToString());
		    }

		    byte[] bsend2 = { 3, 0, 0, 25, 2, 240, 128, 50, 1, 0, 0, 255, 255, 0, 8, 0, 0, 240, 0, 0, 3, 0, 3, 1, 0 };
		    _mSocket.Send(bsend2, 25, SocketFlags.None);

		    if (_mSocket.Receive(bReceive, 27, SocketFlags.None) != 27)
		    {
		        throw new Exception(ErrorCode.WrongNumberReceivedBytes.ToString());
		    }
		    IsConnected = true;
	    }
	    catch
        {
		    LastErrorCode = ErrorCode.ConnectionError;
		    LastErrorString = string.Format("Couldn't establish the connection to {0}!", IP);
		    IsConnected = false;
		    return ErrorCode.ConnectionError;
	    }

	    return ErrorCode.NoError;
    }

and in Enums class: me update with this:
public enum CpuType
{
S7200 = 0,
S7300 = 10,
S7400 = 20,
S71200 = 30,
S71500 = 40,
}

I haven't looked at this yet, but if you wrap it in a pull request I can take a closer look and get it merged.

It would be nice to have a pull request to integrate this.

See https://github.com/killnine/s7netplus/issues/21


Mapping a Lua function over a Rust Iterator

I suspect I'm running up against the downside of the "stackless" style here.
In Rust, I have a reference to some World that I'm wrapping in a piccolo_util::Frozen and sticking in a global Lua variable to be accessed from Lua. This works great for World methods that return static things. When doing more complex queries on the world though, I end up with an iterator which contains a reference to the World, which thanks to Frozen, is only valid within the call to Frozen::with.
My first approach was to pass a Function from Lua to Rust which takes the iterator's Item, and create an Executor to run it inside the callback. Then I found this blurb in the Executor docs:

Executors are not meant to be used from callbacks at all, and Executors should not be nested. Instead, use the normal mechanisms for callbacks to call Lua code so that it is run on the same executor calling the callback.

I'm guessing these "normal mechanisms" are CallbackReturns like Call and Sequence? Since neither the World reference nor the iterator can escape the Frozen::with callback, it doesn't seem like I'd be able to wrap and return the iterator directly, and it can't be recreated and resumed from an arbitrary point. And even if that were possible, it would be handing out references which themselves couldn't be Function::bind'ed and escape.
It seems like the best approach available to me is to copy/collect the iteration results into a Table and return that back to Lua, but I'd like to avoid that overhead if possible.
Is there anything I've missed? Any other approaches to consider?

This is kind of a long response and I'm probably telling you things you already know. This is not only to respond to you but also me laying out the situation around the "stackless" design for anyone else reading this. Sorry for the lengthy response!
You're correct about the blurb, the whole system is really not designed to nest Executors, and you can panic the interpreter that way (through cross-thread upvalues).
Also, look at it this way, if you ran Lua code in a nested Executor, the system would no longer have the main property that piccolo is designed for: that Executor::step runs for a bounded amount of time. An out of control World query would hang the script for an arbitrary amount of time (depending ofc on how bad you can make a single World query).
Not everybody cares about this ofc, and I get that, but that's the niche that I've decided to fit piccolo into. Besides, not all hope is lost, and I think there are still good and not too difficult strategies for almost all use cases.
In your case, one possibility you already figured out, which is to collect the query into a big Table and call it a day. Honestly, even for cases where users cared deeply about sandboxing, this can be a fine approach. You can consume execution fuel proportional to the query size and set sane max query limits, and this could be a reasonable and fast approach to passing a large amount of data to Lua, especially with the current (this will get better over time but it's not there yet) overhead of Lua -> Rust callback calls. Since the query is one call, and Lua accessing a Table is a builtin operation, one function call and a malloc to fit 1,000 results in a Table can be faster than 1,000 callback calls, right?
Another approach you may not have considered is to follow the Lua iterator protocol. You return an iterator function and any arbitrary control value, and the iterator function is called to update the control value until the control value becomes nil. This would allow Lua to use generic for loops to iterate over the results. This is very similar to the approach you already stated with storing an iterator, but like you said.. you do have to deal with the lifetimes of an iterator, and may need to use something other than a plain Rust iterator to store the Lua iterator state. You would probably have run into a similar problem no matter the approach, because passing references to items of that Rust Iterator still has the same lifetime problems, though you could theoretically have gotten around that with the Frozen system from piccolo_util.
You can still take your original desired approach of calling Lua functions for each element of the query result, but what you can't do is get around the lifetime limitations of this. Using a nested Executor like system, if a script put while true do end in its query callback, that would block the outer interpreter from ever returning. If the interpreter was somehow able to suspend this nested Executor setup, then it still could violate the lifetime of the iterator by returning control to Rust with a live iterator unknown to the rust borrow checker.
The system you're wanting only works if the only way to exit out of the inner loop of Lua is through unwinding through the Rust stack frame holding the iterator, and yeah.. that goes against the way piccolo is currently designed. This problem is not unique to piccolo either, the same problem shows up with Rust futures, because a future may suspend execution, you have to make sure that the data that a future refers to can live beyond a potential suspension, and this is the exact same situation.
I think the best advice I can give right now is to try as little as possible to fight with Lua about data with non-'static Rust lifetimes. Lua is not designed to deal with non-'static data, you can smuggle references to anything to almost anywhere from almost anywhere, it's just how the language works. This means that most of the time, you want to make the data you pass to Lua 'static and just live with this limitation. In your case of a World query, you could make the case that returning a collected query as a Lua iterator is maybe a potential abuse vector, since the script can make large queries and then never actually iterate them, holding arbitrary amounts of memory. You can either record this memory through gc-arena and add memory limits, OR do your original approach of calling Lua callback functions for each query result. However, you still need to make the produced Sequence hold the query results as a 'static value so that Executor::step can still suspend execution periodically. This means that the calling Rust code could, for example, go change the running state of the World during a query and you need to handle that somehow, but with this approach you can at least more sanely forbid Lua from executing multiple queries at one time.
I know this is all very very complicated, and what we need is a library of combinators to handle each of these common situations so the user can just choose which tradeoff they want. I want to push back though on the idea that these problems are unique to piccolo or that it makes piccolo completely non-viable, these limitations are the same that Rust futures have, you cannot hold references across await points (which in piccolo are disappointingly currently expressed as Sequence returns, but I want to change this one day to be actual futures / coroutines once the language has enough features to support it).
piccolo fills a very particular need. Running Lua scripts every tick of a game loop can be a problem because Lua is slow, scripts can be slow etc. piccolo's niche is to fix this by allowing Lua scripts to run concurrently with the game loop (and with each other) via polling, like a Rust future, but ofc this means they have the same limitations as Rust futures. I still think this is a very good idea, and you almost always run into similar problems anyway becuase Lua is just not designed to handle non-'static data in the first place, but it's not an idea without tradeoffs.

Thanks for the reply! I actually dug through discord shortly after posting and found more or less this exact spiel from you to more or less the exact question :grin: Anyway, agreed that it's good to have it here as well for visibility :+1:

In your case, one possibility you already figured out, which is to collect the query into a big Table and call it a day.
...
Since the query is one call, and Lua accessing a Table is a builtin operation, one function call and a malloc to fit 1,000 results in a Table can be faster than 1,000 callback calls, right?

Yep, this is precisely what I'm doing now! And that's a very good point regarding the callback vs table access overhead that I hadn't considered, but makes a lot of sense now that you mention it.

Another approach you may not have considered is to follow the Lua iterator protocol. You return an iterator function and any arbitrary control value, and the iterator function is called to update the control value until the control value becomes nil. This would allow Lua to use generic for loops to iterate over the results.

I considered this as well, but as you mentioned - lifetimes are still problematic. Once I switched over to collecting into a Table, I figured "why reinvent the wheel?" and now simply return a CallbackReturn::Call { function: ctx.get_global("ipairs").bind(&ctx, query_result), .. }. I might even skip that and return the table directly and let the caller decide what to do with it :shrug:
One other vague idea I considered trying out would be to yield some sort of "Please create this query" result all the way up to Rust, create and freeze the query, and then resume Lua execution with that. It would invalidate the World reference as long as the frozen query is live though, would probably be fiddly to implement, and I think yielding the main thread isn't possible in the first place? So yeah, "collect into a Table" still seems like the best set of tradeoffs. All of this is probably premature optimization on my part anyway :grinning:

I actually dug through discord shortly after posting and found more or less this exact spiel from you to more or less the exact question.

I am truly sorry that you had to listen to it twice 😆

I think yielding the main thread isn't possible in the first place?

Absolutely it's possible, I didn't even bother to implement the "main thread" distinction that PUC-Rio Lua has with yieldable / un-yieldable threads.

Actually yield and treat the main thread as a coroutine in the normal way. The executor will have results you can take and then move to the "Suspended" state where it can be resumed.
This is probably the better option, you "yield" in a way invisible to Lua and call Fuel::interrupt() which transfers control immediately to the Rust which called Executor::step. If you wanted to do a like.. "active query" system where you had to transfer control out of Lua, then execute the query in Rust, then set up something with Frozen to pass non-'static results back into Lua, that'd be what I'd do I think?


NPM RUN BUILD fails

[ X] bug report
Current behavior:
When I attempt to run the npm run build command, I receive several errors.
Expected behavior:
From reading the documentation this should run the build scripts which will ultimately allow me to use custom webpack configs
Steps to reproduce:
I cloned the repo on my machine and ran the instructions cli instructions in the project readme and served the app once[ionic serve]. Then I stopped serving and tried npm run build so I could start working on the webpack scripts and everything broke.

Other information:
npm-debug.txt

@virtualprodigy There were no errors when you ran ionic serve? Can you run ionic info and npm ls typescript and paste the output here? Also, if you run ionic build does it work?

@brandyscarney When I finish cloned the project, I didn't have any issues with ionic serve until I tried running npm run build. It seems like after that something broke somewhere.  I just ran ionic serve and ionic build. I'm seeing errors with both
ionic serve output

ionic info output

npm ls typescript output

ionic build output
I couldn't grab a screenshot of the output
ionic build output.txt

@virtualprodigy Can you try running rm -rf node_modues and then a new npm install? It looks like something weird happened with your npm install. Did you update node or npm after running it?

I'll give that a try. I did update node after the issue started happening. My teammate suggested doing so, because he saw npm was getting a lot of peer unmet issues.

@brandyscarney I ran rm -rf node_modues and then npm install but it's still not installing all of the dependencies.  It won't pull es6-shim and rxjs
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.

@virtualprodigy There was a typo in my command, first one should be rm -rf node_modules, sorry.

@brandyscarney haha I didn't even notice it. I copied and pasted...
I ran rm -rf node_modules and it deleted the node folder. Once I  re-running npm install I still saw npm fail to pull a few peers again. Is this an issue with node?
`UNMET PEER DEPENDENCY<EMAIL_ADDRESS>UNMET PEER DEPENDENCY<EMAIL_ADDRESS>UNMET PEER DEPENDENCY<EMAIL_ADDRESS>UNMET PEER DEPENDENCY<EMAIL_ADDRESS>UNMET PEER DEPENDENCY<EMAIL_ADDRESS>UNMET PEER DEPENDENCY<EMAIL_ADDRESS>`

whats your node and npm version?
node -v
npm -v

@mhartington
node is running v6.9.4
npm is running 4.1.1

could you run
sudo npm install npm@3

It could be an npm4 issue

@virtualprodigy have you gotten a chance to try npm 3?

I am having the exact same issue with this.

@jgw96 @mhartington I never downgraded my npm. Instead I created the same project in a new directory. After I did that the issue which resolved the issue.

Hello all, I am going to go ahead and close this issue for now as there does not seem to be a good repro case for this issue. If anyone can come up with a solid repro case then feel free to open a new issue. Thanks!


Error while the 1st argument of twemoji.parse is undefined

It gets error when the 1st arg of twemoji.parse method is undefined.
var message;
try {
  twemoji.parse(message)
} catch (e) {
  console.error(e.message);
}

So I always need to convert the value manually to avoid the error (message = message || '') which is not very convenient.
Live Example:
http://jsbin.com/kahaca/edit?html,console

The signature expects either a string or a DOM node. Any reason you don't know you are converting something that you shouldn't?
What I mean is that this is not really a bug, rather an API expectation. It will be eventually fixed, I just don't know if it's worth bothering too much. What kind of error would you prefer instead? Or you are suggesting a silent error?

in case silent error is what you are looking for, should it be silent with anything that is not typeof "string" and doesn't have childNodes? woudl this work? Thanks

How about returning the original input value when it's not String nor HTML Element? #137

#137


Download of new version fails

You forgot to include the gwtoolbox.dll (rather than only gwtoolboxdll.dll?) in the release. Not sure if that's the reason, but it fails with 0 bytes downloaded and throws a warning.

hi, please use the current launcher from the GWToolbox website from now on, we won't be supporting the older versions

Unfortunately the loader I just downloaded pops up with this notice:

And simply closes without doing anything upon clicking "Yes".

I'll look into it, thanks for the heads up

Debugging the installer code myself it's the file download that once again fails with a 0kb download size and a missing filename.

Huh, it suddenly started working. Now TB injects successfully, but "cannot load font" and is invisible in the game.

Sounds like you're having issues downloading resources from Github atm

I suppose I'll delete the toolbox folder and attempt reinstalling with a VPN.

Still the same issue about the font not loading.

Turns out it downloaded everything but failed on the font install, even with the VPN. Manually downloading it fixed the issue.,


Using showInfoWithStatus causes an error to prompt Main Thread Checker: UI API called on a background thread: -[UIApplication applicationState]

Main Thread Checker: UI API called on a background thread: -[UIApplication applicationState]
PID: 8506, TID: 1192746, Thread name: com.apple.CoreMotion.MotionThread, Queue name: com.apple.root.default-qos.overcommit, QoS: 0
Backtrace:
4   libobjc.A.dylib                     0x00000001cea73894  + 56
5   CoreMotion                          0x00000001d52f0760 CoreMotion + 304992
6   CoreMotion                          0x00000001d52f0c94 CoreMotion + 306324
7   CoreMotion                          0x00000001d52f0ba4 CoreMotion + 306084
8   CoreMotion                          0x00000001d5322384 CoreMotion + 508804
9   CoreMotion                          0x00000001d53223e4 CoreMotion + 508900
10  CoreFoundation                      0x00000001cf8094d8  + 28
11  CoreFoundation                      0x00000001cf808dbc  + 276
12  CoreFoundation                      0x00000001cf8040c0  + 2324
13  CoreFoundation                      0x00000001cf803494 CFRunLoopRunSpecific + 452
14  CoreFoundation                      0x00000001cf8041f8 CFRunLoopRun + 84
15  CoreMotion                          0x00000001d5321d1c CoreMotion + 507164
16  libsystem_pthread.dylib             0x00000001cf47e9c8  + 132
17  libsystem_pthread.dylib             0x00000001cf47e924 _pthread_start + 52
18  libsystem_pthread.dylib             0x00000001cf486ddc thread_start + 4
2018-11-29 10:17:10.592513+0800 GateBimIPAD[8506:1192746] [reports] Main Thread Checker: UI API called on a background thread: -[UIApplication applicationState]
PID: 8506, TID: 1192746, Thread name: com.apple.CoreMotion.MotionThread, Queue name: com.apple.root.default-qos.overcommit, QoS: 0
Backtrace:

@titiphoque @yingzhang524 is app crashed on devices with this exception?

Problem on XS devices only!

The same issue, and app not crashed, it occurred in iPhone XS Max and iPhone XR ,not occurred in iPad Air,

The same issue!

The same issue, and app not crashed, it occurred in my iPhone XR ,not occurred in my iPhone 6

The same issue, and app not crashed, it occurred in my iPhone XR ,not occurred in my iPhone 7

same issue here on iPhone xr, is anyone even looking into it?

The same issue!

The same issue, news?

Maybe the answers here are helping: https://github.com/SVProgressHUD/SVProgressHUD/issues/950

if app crashed {
Please goto:
Edit Scheme -> Run -> Diagnostics -> Pause on issues。
Click on close。
}

The same issue on iPhone XS Max!

The same issue

Hi all, I was able to work around this issue by updating my window so that it could be visible to objective C.  @objc open var window: UIWindow.  Hope that saves someone a headache.

The same issue!

How to fix it?


consensus: add BlockHeader getter trait

Should close #1301

@emhane @mattsse Now that https://github.com/paradigmxyz/reth/pull/10691 is merged, in order to completely remove BlockHeader trait from reth and have it in alloy, do we want to merge this? Or reduce the implementation strictly to what has be done in reth (less getter)?

also for rpc header we want HeaderResponse: BlockHeader, as for rpc transaction
https://github.com/alloy-rs/alloy/pull/1328#issuecomment-2368075961

@emhane FYI just opened a follow up issue here on reth https://github.com/paradigmxyz/reth/issues/11127


Use [[fallthrough]] in tinyxml2.cpp

[[fallthrough]] makes fallthroughs explicit in a way compilers can verify, which makes them less scary and allows the enablement of -Wimplicit-fallthrough.

That's way too fancy for the compilers tinyxml2 supports. (C++ 17 required, tinyxml2 runs well before that)


Adding logic for extreme odds ratio cases

Adding logic for extreme odds ratio cases:
peer_pct = 0.0 --> odds = null
target_pct = 0.0 & peer_pct = 0.0 --> odds = null
target_pct = 0.0 --> odds = 0.0
target_pct = peer_pct --> odds = 1.0

:+1:


734 view and modify list of metadata definitions in UI

Backend Change

Add Delete, Search, and GET {metadata_definition_id} endpoint.
Modify the pytest

Frontend Change

Rewrite the Metadata Definition page
Add list view
Add Delete capability

Sorry @longshuicy can you resolve conflicts? codegen? Thank you.


Special characters in the reported traits

I noticed some special characters in the reported traits. I've made the list of these and also suggested the correct ones.
https://docs.google.com/spreadsheets/d/1c8zSXw4bnZ0OlupMBgOCEoaaDATPAylsC-SSzodY-E8/edit#gid=0

Note that these cannot be edited in the depocuration UI as the special characters are not visible there, only in the data download files from the UI

@Santhi1901 can you confirm where are you checking this because in Depo Curation DB I see no traits are mapped to GCST "GCST90091795"

@sajo-ebi This was done before we started adding reported traits in the depo-curation app. All the traits were added in the curation app at that time. In the UI all the traits are looking fine (https://www.ebi.ac.uk/gwas/publications/34610981), only in the downloaded file this special characters are visible


userData for specific fid not returned by Hubble

What is the bug?
My hub does not return userData for fid=3887. I know that this is the fid of https://warpcast.com/slokh that removed their signer, etc. Can this be a bug in hub syncing in some edge cases?
How can it be reproduced? (optional)
On my hub (1.6.0). (I also request an other fid, to illustrate that in general, I get results.)
$ curl -D - http://<IP_ADDRESS>:2281/v1/userDataByFid\?user_data_type\=1\&fid\=3887
HTTP/1.1 400 Bad Request
vary: Origin
access-control-allow-origin: *
content-type: application/json; charset=utf-8
content-length: 130
Date: Sun, 08 Oct 2023 17:50:28 GMT
Connection: keep-alive
Keep-Alive: timeout=72

{"errCode":"not_found","presentable":false,"name":"HubError","code":5,"details":"NotFound: ","metadata":{"errcode":["not_found"]}}%

$ curl -D - http://<IP_ADDRESS>:2281/v1/userDataByFid\?user_data_type\=1\&fid\=3886
HTTP/1.1 200 OK
vary: Origin
access-control-allow-origin: *
content-type: application/json; charset=utf-8
content-length: 524
Date: Sun, 08 Oct 2023 17:50:52 GMT
Connection: keep-alive
Keep-Alive: timeout=72

{"data":{"type":"MESSAGE_TYPE_USER_DATA_ADD","fid":3886,"timestamp":69403837,"network":"FARCASTER_NETWORK_MAINNET","userDataBody":{"type":"USER_DATA_TYPE_PFP","value":"https://mubs.me/assets/site/mubs-512.png"}},"hash":"0x97423233b3df4b45d429135dd0b3613ff4f54980","hashScheme":"HASH_SCHEME_BLAKE3","signature":"mSK3BtbRhALgOqsi73XAPly5jBcASxWBpOuI84gtp7/p+rYGfVvDd/AP8Kq5SK7+lP8YiHEELF9LzAH8535qCw==","signatureScheme":"SIGNATURE_SCHEME_ED25519","signer":"0xe126702d6e742285c47a32e02365e08efa70f05ea4e82f36aec2b5a2f2f80c07"}

Thank you! Yes this explains it.
My confusion came from the fact that almost every other client out there did not share this view 😄 . Warpcast, Neynar, etc. all showed (still show) a full user profile, with a username, avatar and description.
Not a good sign to have different data on hubs and different data presented to users.

Agreed—Warpcast in particular usually does not show this data, but in this specific case the user revoked the Warpcast signer itself, which is the case we didn't explicitly handle. We are hoping to resolve this anomaly for this user in a little while.


Unable to save a temp = 0

Enter in the sampling panel
Choose "temperature" as sampling method, and set temp to 0
Save
Come back to the sampling panel : the sampling method is set to "greedy"
Other values (0,01 for example) are working.

Hi sampling in llama.cpp has recently undergone many changes, new samplers added, new API,  etc.
I can hardly keep up with this trend.
Previously llama.cpp itself decided that greedy sampling mode is enabled if temp=0.
I don't know how it is now. I'll try to figure it out later.


data

Hello，there is no data

Hello, you can download data from https://www.kaggle.com/c/ml-2017fall-hw4/data.

Thanks!

Can you share your data with me? I can not download the data.
------------------ 原始邮件 ------------------
发件人<EMAIL_ADDRESS>发送时间: 2018年4月17日(星期二) 中午12:31
收件人<EMAIL_ADDRESS>抄送<EMAIL_ADDRESS><EMAIL_ADDRESS>主题: Re: [wslc1314/TextSentimentClassification] data (#1)
Hello, you can download data from https://www.kaggle.com/c/ml-2017fall-hw4/data.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

OK.
Please send me your email address.

<EMAIL_ADDRESS>thank you very much!
------------------ 原始邮件 ------------------
发件人<EMAIL_ADDRESS>发送时间: 2018年4月17日(星期二) 晚上10:52
收件人<EMAIL_ADDRESS>抄送<EMAIL_ADDRESS><EMAIL_ADDRESS>主题: Re: [wslc1314/TextSentimentClassification] data (#1)
OK.
Please send me your email address.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

No such file or directory: 'data_helpers/dataset/training_v2i.json'
------------------ 原始邮件 ------------------
发件人<EMAIL_ADDRESS>发送时间: 2018年4月17日(星期二) 晚上10:52
收件人<EMAIL_ADDRESS>抄送<EMAIL_ADDRESS><EMAIL_ADDRESS>主题: Re: [wslc1314/TextSentimentClassification] data (#1)
OK.
Please send me your email address.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

You need to run data_helpers/data_preprocessing.py first to get new data. By the way, data_helpers/data_analysis.py used for analyzing new data after preprocessing, and data_helpers/wv_generation.py used for generating word2vec word vectors and other related files.
About GloVe word vectors, you need to get it by downloading GloVe and do as it is needed.
After generation, you can use data_helpers/wv_evaluation.py to evaluate word vectors by analogical problem. And then you should use data_helpers/utils.py to generate all the dicts that you ask for.

<EMAIL_ADDRESS>thank you very much!

<EMAIL_ADDRESS>thank you very much!

<EMAIL_ADDRESS>thank you very much!

<EMAIL_ADDRESS>thank you very much!

<EMAIL_ADDRESS>thank you very much.

<EMAIL_ADDRESS>thank you very much.


MVKPipeline: Disable fragment shader outputs for unused attachments.

Naturally, Metal complains when a fragment shader write to a
[[depth]] output, but there be no depth attachment. I imagine that it
will also complain if the shader write to [[stencil]] with no
stencil attachment, or it write to a [[color(n)]] output with no
corresponding attachment.

Thanks for remembering SPIRVToMSLConversionOptions::matches() and serialize(Archive & archive, CompilerMSL::Options& opt)! They're easy to forget!


Versions outdated, V5 released

Just dropping this here i'm sure the team are already aware. :)
Updating the create-keystone-app versioning should probably be a release task for any deployments on the keystone repo to make sure no one gets caught on old versions by accident (especially with a major version change).

Updating the create-keystone-app versioning should probably be a release task for any deployments on the keystone repo to make sure no one gets caught on old versions by accident (especially with a major version change).

@TheRealFlyingCoder yes! I thought about this with the latest release and on seeing @alex-frx be caught out by https://github.com/keystonejs/create-keystone-app/issues/367.
I'll be fixing this momentarily :+1:

Legend!
I can't comment any ideas for testing... Although i'll point out that you make life a little harder by separating this package into it's own repo.
If you reference some larger solutions they follow similar patterns:
https://github.com/vercel/next.js/
https://github.com/remix-run/remix/
/packages/create-_____
There will usually be a chore task assigned for versioning across each folder in /packages

Although i'll point out that you make life a little harder by separating this package into it's own repo.

Excellent point, I'm not sure why this was broken out as separate.  I'll see if I can find and post any justification, and if not, well, sounds like that could be an easy win


buildUniqueExclusionRules table name bugfix.

Ardent breaks unique rules update if table name is implicity (e.g. without a explicit $table property). This PR fixes this behavior using $this->getTable() instead of $table property.

thanks man!


call contracts by proxy

Codecov Report

Merging #60 into dev will decrease coverage by 5.73%.
The diff coverage is 3.79%.

@@             Coverage Diff              @@
##                dev      #60      +/-   ##
============================================
- Coverage     43.15%   37.42%   -5.74%
- Complexity      266      268       +2
============================================
  Files            42       45       +3
  Lines          2609     3025     +416
  Branches        207      242      +35
============================================
+ Hits           1126     1132       +6
- Misses         1399     1809     +410
  Partials         84       84

Impacted Files
Coverage Δ
Complexity Δ

...nk/wecross/stub/bcos/abi/ABIObjectJSONWrapper.java
49.63% <0.00%> (-4.99%)
34.00 <0.00> (ø)

...webank/wecross/stub/bcos/common/BCOSFileUtils.java
0.00% <0.00%> (ø)
0.00 <0.00> (?)

...ebank/wecross/stub/bcos/common/BCOSStatusCode.java
25.00% <ø> (ø)
3.00 <0.00> (ø)

...k/wecross/stub/bcos/custom/RegisterCnsHandler.java
10.00% <0.00%> (+6.38%)
2.00 <0.00> (ø)

.../com/webank/wecross/stub/bcos/AsyncCnsService.java
2.00% <2.00%> (ø)
2.00 <2.00> (?)

...ecross/stub/bcos/custom/DeployContractHandler.java
2.81% <3.33%> (+1.03%)
2.00 <0.00> (ø)

.../java/com/webank/wecross/stub/bcos/BCOSDriver.java
24.65% <4.30%> (-17.22%)
33.00 <4.00> (-2.00)

...ebank/wecross/stub/bcos/common/RequestFactory.java
83.33% <83.33%> (ø)
2.00 <2.00> (?)

... and 2 more

Continue to review full report at Codecov.

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


Test pull_request_target workflow trigger

Hopefully the workflow that is ran should have the name "Add to project" and not "This message shouldnt be seen in the workflow i think", which would prove that modifications to the yml don't get used. In turn, this should make it safe to use pull_request_target on the actual mods repo, and therefore automate adding PRs to the project

seems to work


Changelog Misses Some Changes And Versions

Not included in the changelog are these PRs:

#2 - Use file of the same name.
#4 - Fix bug in filenames with dashes.
#5 - Add asset listing function.
#7 - Ignore some clippy lints in generated code.
#9 - Use $crate to improve macro hygiene.
#11 - Removes Cargo.lock so the library can be used on the latest nightlies
#12 - Removes the log macros in debug mode. This caused errors if you didn't include the log macro in your crate, or if you used Rocket (they have some macros with the same names).
#13 - Moves the use statements in the debug code to not conflict with the other use statements of the file the macro is used in.

These are all useful to see in a changelog so that people can see what bugs each release fixed. Besides PRs, there are probably some missed changes you directly made without going through a PR.
Also missing are these versions:

0.3.0
0.3.2
0.3.4
0.3.5
0.4.0
0.5.1
0.5.2
1.0.0
1.1.0

Sure. Will take it up next weekend.

Done.


Multiple CurrentBuild VMR legs failing on missing tarball

main build: https://dev.azure.com/dnceng/internal/_build/results?buildId=2416861&view=logs&j=e690eb20-f225-5013-36f6-f0b956524e66&t=117402a2-d41d-5467-8180-13d8c0d3df1d
Seems there is some issue with how the CentOSStream8_Online_CurrentSourceBuiltSdk_x64 and Fedora39_Offline_CurrentSourceBuiltSdk_x64 legs handle SDK and assets tarballs from previous build. Specifically, the Copy Previous Build does not find any files to copy, which in turn fails the Prep the Build stage. The build reports that it has downloaded some artifacts, though logs don't show if they match what is expected

Suspect its due to the tarball location changing in the artifact, from being in the root folder to being under assets\Release, while the CopyTask tries to search for the tarball in the root

Testing a fix with build: https://dev.azure.com/dnceng/internal/_build/results?buildId=2417066&view=results

The fixed helped:
found 3 files
Copying /mnt/vss/_work/1/CentOSStream8_Online_MsftSdk_x64_Artifacts/assets/Release/Private.SourceBuilt.Artifacts.9.0.100-preview.4.24178.1.centos.8-x64.tar.gz to /mnt/vss/_work/1/s/prereqs/packages/archive/assets/Release/Private.SourceBuilt.Artifacts.9.0.100-preview.4.24178.1.centos.8-x64.tar.gz
Copying /mnt/vss/_work/1/CentOSStream8_Online_MsftSdk_x64_Artifacts/assets/Release/Sdk/9.0.100-preview.4.24178.1/dotnet-sdk-9.0.100-preview.4.24178.1-centos.8-x64.tar.gz to /mnt/vss/_work/1/s/prereqs/packages/archive/assets/Release/Sdk/9.0.100-preview.4.24178.1/dotnet-sdk-9.0.100-preview.4.24178.1-centos.8-x64.tar.gz
Copying /mnt/vss/_work/1/CentOSStream8_Online_MsftSdk_x64_Artifacts/assets/Release/dotnet-sdk-9.0.100-preview.4.24178.1-centos.8-x64.tar.gz to /mnt/vss/_work/1/s/prereqs/packages/archive/assets/Release/dotnet-sdk-9.0.100-preview.4.24178.1-centos.8-x64.tar.gz

It seems that the patterns are not restrictive enough as multiple SDK tarballs are downloaded. Also, the path used by Prep the Build step also needs to be fixed

Already fixed in https://github.com/dotnet/installer/pull/19252


Switched numbers for variables (test smell)

It is a test refactoring.
The idea is to remove the smell Magic Number.
This smell occurs when a test method contains unexplained and undocumented numeric literals as parameters or as values to identifiers. These magic values do not sufficiently indicate the meaning/purpose of the number.

Reason of fail: https://github.com/bndtools/bnd/blob/master/biz.aQute.bnd.gradle/README.md#replacing-use-of-gradles-deprecated-osgi-plugin

"In Gradle 5.0, the OSGi Plugin was deprecated. If you used the OSGi Plugin and want to switch to the Bnd Gradle Plugin, you will need to modify your build scripts."

Hard-coded numbers aren't automatically bad.
This change makes the tests harder to understand.


Service folder multiplication

Observed on rc61, Mac M3
Issue:

app started fine
agent started fine
agent never made a bet
there were two service folders present in .operate/services
I prepended some text to the first one and the folder was immediately deleted
that file was immediately deleted
agent started transacting
after about two rounds of transactions, agent stopped transacting
second folder had been created

Logs:
rc61-not-betting.zip
logs (12).txt

@jmoreira-valory's hypothesis:

App starts with hash1
App runs Trader-hash1 process
App exits
(Trader-hash1 process is not closed)
App starts again with hash2
App starts process of upgrading hash1 to hash2
App cannot remove hash1 folder completely because Trader-hash1 process is using some file in the corresponding folder

I'm yet to observe this whilst testing rc64.

Fixed in rc64.


Blog app: add devise

Blog app: add devise

In this feature update:

[x] Remove current_user method in ApplicationController, devise will provide us with one.
[x] Install and setup devise.

Can register a new user.
User logs in with a combination of email and password.
Hashed password should be stored in the database.
Ask for confirmation of email.
Can reset password.

[x] Modify the views in devise for registration and login to match the wireframes from the Sneak Peek and your styling.

https://user-images.githubusercontent.com/52143815/161935917-d537116a-3397-4223-9373-9535a1393bac.mp4

Fixed!!


jQuerify in Firefox developer tools

Hi there,
I don't have the jQuerify button in my dev tools (Firefox 52).
Is it still supported ?
Thanks

Same issue in Firefox 54


[Feedback] inventory scan is not available under certain conditions

oldresearch-1.1.1.jar
It may not be accurate to say that, inventory scanning is only available when you open the research table. I don't know if this is a bug or a feature ;) .
But would prefer to be able to open the inventory and just scan it. Otherwise, going through boxes when there are too many items can be a pain in the ass, as it would require having a research table with you at all times.
By the way request to add a command to get aspect quickly. Just like old times.

Hi @Dawnwalker666 Can you please see if this is still an issue with version 1.1.2 jar? I've been unable to reproduce it, if you do see the issue still on the latest version can you provide some more information? Are you playing single player, on a server, etc...

@Wong-Innovations Looking at your reply, this seems to be a bug rather than a feature. Sorry, I'll add more details then.
This time I'm using 1.1.2. the latest version.
jdk1.8.0_281
minecraft 1.12.2
forge 1.12.2-<IP_ADDRESS>54
modlist:
ThaumicWaila-1.12.2-0.0.2.jar
jei_1.12.2-<IP_ADDRESS>1.jar
Hwyla-1.8.26-B41_1.12.2.jar
AppleSkin-mc1.12-1.0.9.jar
journeymap-1.12.2-5.5.5b7.jar
VanillaFix-1.0.10-150.jar
Baubles-1.12-1.5.2.jar
CodeChickenLib-1.12.2-<IP_ADDRESS>8-universal.jar
JustEnoughCharacters-1.12.0-3.4.7.jar
oldresearch-1.1.2.jar
Patchouli-1.0-23.6.jar
Thaumcraft-1.12.2-6.1.BETA26.jar

As shown in this gif. Inventory scanning is only available when you open the research table. The first and second items did not scan. When using the Thaumometer it only scans when the research table is open and it scans successfully.
Using a single-player archive. Superflat and Redstone Ready.

As well, I retested it with only the necessary mods and still got this result. So it's safe to assume it's not a mod conflict.

@Dawnwalker666 do you not have !mixinbooter installed?.... I don't see it in your mod list.

the code disables inventory scanning in creative tab because that's what the 1.7.10 mod did. I'll add a config value to enable scanning in the creative menu which is off by default.


Filtered Galleries

This PR allows the gallery "searches" from a pre-determined set of tags (spanning packages, formats, and domains) to be generated at build time.

Because @kmpaul and I chose to put all of the search-result link galleries in a folder called "links" to avoid cluttering the pages folder -- there are some additional challenges involving path names.
I added a line to check if we are in one of these searchable galleries because otherwise the path to the image thumbnail would be wrong (it is different if on the main gallery links.html or in a subset links/numpy.html, e.g.).
There is a similar challenge with the links that the tags and dropdown menu bring you to. Currently I set them to be absolute based on the html link -- but the problem with this is that the https://projectpythia.org/pages/links/numpy.html site does not exist yet and should look like the page at my local .../projectpythia.github.io/content/_build/html/pages/links/numpy.html. (before if you were on a searched page already (let's say links/documentation.html and then selected numpy it would try to bring you to links/documentation/numpy.html which does not exist.
Perhaps there is a way in the toc tree to have an id for each .md page generated and then use an absolute reference to that .md page.

I don't know why this is failing.  I fixed the error in the main branch, and now both Readthedocs and the GitHub deploy action work in the main branch.  I've updated this PR with the latest changes in the main branch, but it still fails.  I think we have to follow the exact sequence of events that RTD is doing on its VMs and try to reproduce the error.

Really cool that you got this working!
I played around with the rendered version on readthedocs and it's pretty slick.
My main comment, or feature request: there should be an obvious way to get back "home", i.e. undo any filtering you've selected. Yes the user can just click on the "External Links Gallery" link on the nav bar, but I felt like I was missing some obvious button on the page that would remove or undo filters.

I was having the same question about needing another button to return to the External Links Gallery (not in the nav bar). I do think it will be an improvement and will look into how to add it.

@kmpaul @brian-rose I have added the button to remove filtering, called "Return to External Links Gallery".

This all looks great! Curiously though, at least when I build this in my server environment, and then make my _build directory visible to my dept web server, the various filter URLs that get generated strip out a portion of the path.
e.g.  for the Atmospheric Science filter, where the link should read:
http://www.atmos.albany.edu/facstaff/ktyle/pythia/portal/content/_build/html/pages/links/atmospheric-science.html

(note: you won't actually be able to reach this link outside the atmos.albany.edu IP space)
It instead reads:
http://www.atmos.albany.edu/pages/links/atmospheric-science.html
I.e., this part of the URL gets stripped out:
**facstaff/ktyle/pythia/portal/content/_build/html/**

Maybe this is not a situation that we have to worry about when it's deployed on the master site?

This all looks great! Curiously though, at least when I build this in my server environment, and then make my _build directory visible to my dept web server, the various filter URLs that get generated strip out a portion of the path.
e.g. for the Atmospheric Science filter, where the link should read:
http://www.atmos.albany.edu/facstaff/ktyle/pythia/portal/content/_build/html/pages/links/atmospheric-science.html

(note: you won't actually be able to reach this link outside the atmos.albany.edu IP space)
It instead reads:
http://www.atmos.albany.edu/pages/links/atmospheric-science.html
I.e., this part of the URL gets stripped out:
**facstaff/ktyle/pythia/portal/content/_build/html/**

Maybe this is not a situation that we have to worry about when it's deployed on the master site?

Perhaps this is something that needs to be added to the contributors guide! Since the paths are absolute they will not link correctly if you view the build with open _build/html/index.html where all of your files are available (not just the ones that will be available/are relative to the site)- instead you have to use some sort of local HTTP server as in python -m http.server --directory _build/html/.

Note that the issue I described above almost certainly relates to the absolute / relative paths conundrum that @jukent mentioned above.

This all looks great! Curiously though, at least when I build this in my server environment, and then make my _build directory visible to my dept web server, the various filter URLs that get generated strip out a portion of the path.
e.g. for the Atmospheric Science filter, where the link should read:
http://www.atmos.albany.edu/facstaff/ktyle/pythia/portal/content/_build/html/pages/links/atmospheric-science.html

(note: you won't actually be able to reach this link outside the atmos.albany.edu IP space)
It instead reads:
http://www.atmos.albany.edu/pages/links/atmospheric-science.html
I.e., this part of the URL gets stripped out:
**facstaff/ktyle/pythia/portal/content/_build/html/**

Maybe this is not a situation that we have to worry about when it's deployed on the master site?

Perhaps this is something that needs to be added to the contributors guide! Since the paths are absolute they will not link correctly if you view the build with open _build/html/index.html where all of your files are available (not just the ones that will be available/are relative to the site)- instead you have to use some sort of local HTTP server as in python -m http.server --directory _build/html/.

@jukent can you elaborate on what you're doing to get the links to work with a local build, or is there another way to view an operational version of this PR? Thanks!

This all looks great! Curiously though, at least when I build this in my server environment, and then make my _build directory visible to my dept web server, the various filter URLs that get generated strip out a portion of the path.
e.g. for the Atmospheric Science filter, where the link should read:
http://www.atmos.albany.edu/facstaff/ktyle/pythia/portal/content/_build/html/pages/links/atmospheric-science.html

(note: you won't actually be able to reach this link outside the atmos.albany.edu IP space)
It instead reads:
http://www.atmos.albany.edu/pages/links/atmospheric-science.html
I.e., this part of the URL gets stripped out:
**facstaff/ktyle/pythia/portal/content/_build/html/**

Maybe this is not a situation that we have to worry about when it's deployed on the master site?

Perhaps this is something that needs to be added to the contributors guide! Since the paths are absolute they will not link correctly if you view the build with open _build/html/index.html where all of your files are available (not just the ones that will be available/are relative to the site)- instead you have to use some sort of local HTTP server as in python -m http.server --directory _build/html/.

@jukent can you elaborate on what you're doing to get the links to work with a local build, or is there another way to view an operational version of this PR? Thanks!

I used this package: https://docs.python.org/3/library/http.server.html
I believe it is as simple as "build html" as usual and then the above command. Can you try this and let me know what you see?
@kmpaul helped me figure it out, maybe he can answer some of your questions.

Looks great to me now!

This all looks great! Curiously though, at least when I build this in my server environment, and then make my _build directory visible to my dept web server, the various filter URLs that get generated strip out a portion of the path.
e.g. for the Atmospheric Science filter, where the link should read:
http://www.atmos.albany.edu/facstaff/ktyle/pythia/portal/content/_build/html/pages/links/atmospheric-science.html

(note: you won't actually be able to reach this link outside the atmos.albany.edu IP space)
It instead reads:
http://www.atmos.albany.edu/pages/links/atmospheric-science.html
I.e., this part of the URL gets stripped out:
**facstaff/ktyle/pythia/portal/content/_build/html/**

Maybe this is not a situation that we have to worry about when it's deployed on the master site?

Perhaps this is something that needs to be added to the contributors guide! Since the paths are absolute they will not link correctly if you view the build with open _build/html/index.html where all of your files are available (not just the ones that will be available/are relative to the site)- instead you have to use some sort of local HTTP server as in python -m http.server --directory _build/html/.

@jukent can you elaborate on what you're doing to get the links to work with a local build, or is there another way to view an operational version of this PR? Thanks!

I used this package: https://docs.python.org/3/library/http.server.html
I believe it is as simple as "build html" as usual and then the above command. Can you try this and let me know what you see?
@kmpaul helped me figure it out, maybe he can answer some of your questions.

Still not working for me. I'm doing:
cd /Users/clyne/tmp/projectpythia.github.io/content
python -m http.server --directory /Users/clyne/tmp/projectpythia.github.io/content
open _build/html/index.html

but If I try to access any of search links, e.g. Formats/Books I get an absolute file reference:
file:///pages/links/book.html

This all looks great! Curiously though, at least when I build this in my server environment, and then make my _build directory visible to my dept web server, the various filter URLs that get generated strip out a portion of the path.
e.g. for the Atmospheric Science filter, where the link should read:
http://www.atmos.albany.edu/facstaff/ktyle/pythia/portal/content/_build/html/pages/links/atmospheric-science.html

(note: you won't actually be able to reach this link outside the atmos.albany.edu IP space)
It instead reads:
http://www.atmos.albany.edu/pages/links/atmospheric-science.html
I.e., this part of the URL gets stripped out:
**facstaff/ktyle/pythia/portal/content/_build/html/**

Maybe this is not a situation that we have to worry about when it's deployed on the master site?

Perhaps this is something that needs to be added to the contributors guide! Since the paths are absolute they will not link correctly if you view the build with open _build/html/index.html where all of your files are available (not just the ones that will be available/are relative to the site)- instead you have to use some sort of local HTTP server as in python -m http.server --directory _build/html/.

@jukent can you elaborate on what you're doing to get the links to work with a local build, or is there another way to view an operational version of this PR? Thanks!

@clyne if you just want to view the PR, click on the "Show all check" links above to reveal the link to the preview build on readthedocs.org, then click on "Details". This will take you to a full build of the site rendered on readthedocs.org.

@clyne "open _build/html/index.html" will not work because the directory structure will be the same as on your laptop as opposed to what it will be on the site.
Try "python -m http.server --directory _build/html/"

@clyne "open _build/html/index.html" will not work because the directory structure will be the same as on your laptop -- and not the same as what it will be on the site.
Try "python -m http.server --directory _build/html/"
Here is some more information on how to set up a local testing server: https://developer.mozilla.org/en-US/docs/Learn/Common_questions/set_up_a_local_testing_server
Or you can look at the "Read the Docs" build.

OK. I think the missing crucial step was point your browser to localhost:8000. It's working for me now. I will add this to our contributor's guide. thanks

Very nice!
One small nit: the pythia foundations books have a GitHub icon/menu at the top (sandwiched between the "fullscreen" and "print" icons. The dropdowns provide links to the repo, "opening an issue", and "suggesting an edit". Can we get those here?
I'm only reviewing this PR for content. Presumably someone from the infrastructure team who actually knows something about the infrastructure (e.g. @andersy005, @kmpaul, etc.) is reviewing the code?

@clyne I agree that we should add the GitHub icon link. I think that belongs in a separate pull request, and will start working on it

Very nice!
One small nit: the pythia foundations books have a GitHub icon/menu at the top (sandwiched between the "fullscreen" and "print" icons. The dropdowns provide links to the repo, "opening an issue", and "suggesting an edit". Can we get those here?
I'm only reviewing this PR for content. Presumably someone from the infrastructure team who actually knows something about the infrastructure (e.g. @andersy005, @kmpaul, etc.) is reviewing the code?

@clyne I agree that we should add the GitHub icon link. I think that belongs in a separate pull request, and will start working on it

Works for me. Awesome job! I will approve.

This is ready for merge.

Following brief discussion at today's EWG, we think this PR could use a review from the infrastructure team before merging. Are there any concerns about the code?

Good point @andersy005 I didn't notice that. I will try to figure out why. Do you have any ideas of where to start?

@andersy005 It seems this is the intended behavior built into the Jupyter book theme for galleries (set to 136% width). This will be edited with @kmpaul 's Sphinx theme, so I think we don't have to worry about it until we have that theme to edit.

@jukent, some minor nitpick so feel free to ignore
diff --git a/content/_ext/yaml_gallery_generator.py b/content/_ext/yaml_gallery_generator.py
index f184d16..d2ea52b 100644
--- a/content/_ext/yaml_gallery_generator.py
+++ b/content/_ext/yaml_gallery_generator.py
@@ -50,11 +50,12 @@ def _generate_tag_menu(all_items, tag_key):
     tag_set = _generate_tag_set(all_items, tag_key)
     tag_list = _sort_tags(tag_set)

-    hrefs = ''
-    for tag in tag_list:
-        hrefs = hrefs + f'{tag.title()} \n'
+    hrefs = ''.join(
+        f'{tag.title()} \n'
+        for tag in tag_list
+    )

-    tag_menu_html = f"""
+    return f"""

 <button class="btn btn-sm btn-primary m-2 dropdown-toggle" data-toggle="collapse" data-target="#{tag_key}" aria-haspopup="true">{tag_key.title()}</button>

@@ -62,7 +63,6 @@ def _generate_tag_menu(all_items, tag_key):

 """
-    return tag_menu_html

 def _generate_menu(all_items, flt=None):
@@ -104,13 +104,18 @@ def build_from_items(items, filename, display_name, menu_html):
             authors_str = f'Created by: {authors[0]} and {authors[1]}'

         email = [a.get("email", None) for a in item['authors']][0]
-        email_str = '' if email == None else f'Email: {email}'
+        email_str = '' if email is None else f'Email: {email}'

         affiliation = [a.get("affiliation", None) for a in item['authors']][0]
-        affiliation_str = '' if affiliation == None else f'Affiliation: {affiliation}'
+        affiliation_str = '' if affiliation is None else f'Affiliation: {affiliation}'

         affiliation_url = [a.get("affiliation_url", None) for a in item['authors']][0]
-        affiliation_url_str = '' if affiliation_url == None else f'{affiliation} Site: {affiliation_url}'
+        affiliation_url_str = (
+            ''
+            if affiliation_url is None
+            else f'{affiliation} Site: {affiliation_url}'
+        )
+

         panels_body.append(
             f"""\
@@ -148,7 +153,6 @@ def build_from_items(items, filename, display_name, menu_html):
 {menu_html}

 ````{{panels}}
-:container: full-width
 :column: text-left col-6 col-lg-4
 :card: +my-2
 :img-top-cls: w-75 m-auto p-2
@@ -174,11 +178,7 @@ def main(app):

     for tag in tag_set:

-        items=[]
-        for item in all_items:
-            if _tag_in_item(item, tag):
-                items.append(item)
-
+        items = [item for item in all_items if _tag_in_item(item, tag)]
         build_from_items(items, f'links/{tag.replace(" ", "-")}', f'External Links Gallery - "{tag}"', menu_html_flt)

@andersy005 Can you explain the first change?
"""
--- a/content/_ext/yaml_gallery_generator.py
+++ b/content/_ext/yaml_gallery_generator.py
"""

@andersy005:  Can you suggest these changes in a Code Review?

@andersy005 Can you explain the first change?
--- a/content/_ext/yaml_gallery_generator.py
+++ b/content/_ext/yaml_gallery_generator.py

This is just a "git diff" header. So, I wouldn't worry about it...

@andersy005: Can you suggest these changes in a Code Review?

It appears that @jukent integrated my suggestions already... I'll use the web UI suggestion feature next time...

If tests pass, is this ready to merge?

I'm wondering if there is any way to enforce a uniform height/width of the various emblems that go along with each gallery item:

(i.e., the Unidata logo should occupy the same area in both entries).
Nevertheless, I think this should be merged at this time! We can always make it better via subsequent PR's!


Add guide for installation with Windows and Anaconda paths in setup.py

There was no guide for Windows and I had a hard time figuring out how to install the package with Anaconda 3 (Python 3.7).
The solution is quiet simple by adding the anaconda paths to suitesparse include and library in the setup.py.

Thanks for this. The instructions still work with the latest conda/scikit-sparse though you need to make a trivial change to modify the new INCLUDE_DIRS and LIBRARY_DIRS variables in setup.py rather than the setup arguments directly.

Or I guess you can maybe use the new feature in #71 to set the paths.

I will have a look at it and change it.

@batterseapower I updated my guide by using the new features SUITESPARSE_INCLUDE_DIR and SUITESPARSE_LIBRARY_DIR


Exit Zero, add -dit, bash & all to docker-compose.yml

$ docker run --name u1804 -dit -p 8080:80 ubuntu:18.04 //bin/bash
$docker attach u1804
Running these 2 commands will get me into the prompt of a Linux system, which is really all I need for now.  Most of my time has been on Windows or Mac.. so I really just want a Local Linux to review from first principles.
root@u1804:/# exit
It's been much easier to find tutorials about running Docker on Linux rather than Linux in Docker..
Now, I'm trying to move that functionality into docker-compose.yml so with just compose-docker up brings me back to that same Linux prompt. I'm getting as far as an exit zero, it looks like it's pulling the image and building the container, but then it exits with a zero because it's finished.. I'm not sure about the syntax to add

-detached
-interactive
-TTY and the
//bash call?
Also, instead of just adding the usr/local/, could I expose the entire file structure of 18.04 to local development?

docker-compose.yml
version: "3.2"
services:
  bionic:
    image: ubuntu:${DISTRO:-bionic}
    ports:
      - "8080:80"
    volumes:
      - ./usr_local/:/usr/local/
    container_name: u1804

command: nodemon --debug server.js
docker-compose.yml
   services:
      command:

command: ["bundle", "exec", "thin", "-p", "3000"]


Low download speed

So I have a 250mbit line and the first time i used Inflatable Donkey to download it was fast, between 6 - 12 mb/s .
But now I rarely pass 1mb/s and mostly hover between 0.4-0.7 mb/s.
Anyone know why ?
Command im running
--item-type PHOTOS PNG MOVIES --domain MediaDomain Camera Whatsapp Kik -o ./outputpath --threads 7 -d
Authenticating with token.

So Including Kik made it gather kik folders once found, but it somehow slowed down the downloading of everything. I Removed KIK and im back at 10 mb/s.

Hi there. As far as I'm aware I've not made any code alterations that would account for this.
Have you been using the same version of InflatableDonkey or did the issue occur after downloading a particular build?
ISPs do throttle connection speeds for various reasons, could this be an issue? Does the issue occur during peak hours? Are things like torrent clients also affected?
Folders with many small files are not downloaded as efficiently as folders with a few large files. An example would be a large WhatsApp archive with a huge number of thumbnails. InflatableDonkey does double the thread count for this (--turbo default 2) but it's only a partial compensation. After experiencing a slow download does the backup consist of many many small files?
Additionally with a --thread 7 and the default --turbo 2 there's a possibility that we have up to 14 threads hammering your connection. Check your routers logs to see if there are any entries pertaining to flooding. You could try reverting to the default --thread 4 settings.
Lastly, although I don't think it will help and could actually aggravate throttling issues, you could navigate to Property.java and double the following values:
HTTP_CLIENT_CONNECTIONS_MAX_TOTAL("256"),
HTTP_CLIENT_CONNECTIONS_MAX_PER_ROUTE("32"),

Oh. There's a deleted comment that references a similar issue when downloading Kik folders that goes away then these are excluded from the backup. Again this ties in with the inefficiency of downloading large archives with many small files such as thumbnails.
In this case you could also try --turbo 4. Just be mindful that at some point we might start choking the connection with high --thread and --turbo values.

I can run network speed test while inflatabledonkey is running and im getting 250mbit on the test. Torrents and everything else is also running fine.
Tried removing Whatsapp and kik, setting the threadcount back to 4, it didnt help.
Nothing related to flooding in the router logs.
I'll try experimenting with the turbo flag, thanks.


emoji: Remove single-digit names for number emojis.

Names like :1:, :2: etc don't seem to be of much benefit rather
they seem to get rendered at places not intended.

Merged, thanks @HarshitOnGitHub!


RTError is not defined

help "RTError" is not defined Pylance(reportUndefinedVariable)

Tryout https://github.com/radon-project/radon for more advance features.

Give more details. Also, does the code work when you execute it using Python?


A warning is thrown if the input string is of odd length.

This behaviour is new in PHP 5.4.1.
http://php.net/manual/en/function.hex2bin.php

Hey @duzun, thank you so much for this PR. I am very sorry for the long wait after you put in this work. This project and my motivation were in a bad spot. I recently did a lot of work to breathe new life into it (http://locutus.io/2016/05/announcing-locutus/). Unfortunately for your PR this also means it's currently outdated and cannot be merged as is.
I'll close this issues, but if this PR is still relevant to you, please re-open. You should then rebase with this project's master branch, make sure it complies with the contributing document (https://github.com/kvz/locutus/blob/master/CONTRIBUTING.md), and then we can merge this in, because the work really does look good to me.
Again, I'm very sorry for not having attended to this earlier, and putting you through all this extra hassle. I hope you'll agree that the project was in a dead-end street though, and with this new big push, we're going somewhere again.


Domain machines response incorrect

The "Response" section shows "If domain do not exist - 404 Not Found"; however, it appears to return 200 OK with an empty set. This was tested by using registered domains not in any alerts on the tenant, unregistered domains that could be legitimate if registered, and domains that had TLDs that are invalid. All returned 200 OK.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 776417af-7b1e-8829-5143-7f7f3e700292
Version Independent ID: 0e18b1a2-3c61-dab6-f3f8-146aac8802a4
Content: Get domain related machines API
Content Source: microsoft-365/security/defender-endpoint/get-domain-related-machines.md
Product: m365-security
GitHub Login: @mjcaparas
Microsoft Alias: macapara

@MastaDisasta Thank you for your feedback. We have made changes to the document via PR#https://github.com/MicrosoftDocs/microsoft-365-docs/pull/6025
Thanks
Sri

@msbemba Thank you very much for the contribution and updating the documentation with PR. @MastaDisasta Hope this update is helpful for you. Thanks for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.


fix!: move files, rename sub exports

This PR changes the exports to:

/detect for detect function
/commands for resolving and constructing commands (Renamed from /agents as it can be a bit ambiguous)
/constants shared constants
/ re-exports of all of them

Merging this for now to move forward. Feedback still welcome!


Uninstall issues

Hi. I no longer use this addon but I can't seem to uninstall it. I click uninstall, and the reload and install buttons appear, but when I reload the addon is still present and a icon says it's updating to the latest version:

It appears it cannot be removed :/

My addon does not influence the uninstall process in any way, so please file a bug report for VS Code.
My guess is that this happens when you try to uninstall an addon while VS Code is downloading an update for that addon. You could try installing the update and then uninstalling again...


AccountBalanceQuery() cant differentiate between accounts and contracts.

I am checking for Hbar balance through a method that can check balance for both accounts and contracts. So I use this:
Hbar balance = new AccountBalanceQuery()
                .setAccountId(AccountId.fromString(id))
                .setContractId(ContractId.fromString(id)) //check balance of contracts!
                .execute(client);

        return balance.asTinybar();

However, even when I pass an account id (e.g. 0.0.143267), this throws an error saying INVALID_CONTRACT_ID but I can confirm that it is actually an account.
Interestingly, if I swap the two builder method calls, so call .setContractId first and then .setAccountId:
Hbar balance = new AccountBalanceQuery()
                .setContractId(ContractId.fromString(id))
               .setAccountId(AccountId.fromString(id))
                .execute(client);

        return balance.asTinybar();

now, this works for account ids but not contract ids.

really makes you think

Hi @rahul-ki, what you have documented above is unsupported behavior. As you may be able to tell from the above behavior, whichever entity you set last will determine the type.
Please use one entity type or the other when executing queries!

@cacampbell this is for an API exposed to the public so they can input in anything (account or contract), so I have no real control over

It's not possible for the SDK to tell the difference between an account or a contract ID. You could try doing one followed by the other?

Will not implement.
HAPI cannot differentiate between entity types.