add android implementation.

@huangmr thanks for the pull request. Based on my testing I don't think the Android implementation matches the iOS one and I just want to make sure I'm not missing something:
In iOS if the app is launched and running in the background and a user returns to the home screen, clicks a quick action link for the running app, the quickActionShortcut event will be fired via DeviceEventEmitter so the app can respond. I'm not seeing the same behavior when testing in Android, however I do see what appears to be code that should support that functionality. Any ideas?
Also it looks like the implementation of popInitialActiononly returns type and no other attributes (for example title and userInfo). Is this a limitation of Android or just an oversight?

Hi @jordanbyron, thanks for your comments.
The current android implementation also uses DeviceEventEmitter and should behave the same way as iOS. but it only support dynamic quick actions (or app shortcuts on android:) ) at the moment, which is probably why you are not seeing them. the static actions support can be easily added although I wasn't needing them.
Yes, you are right that it only sends type back for cold startup use case on android, if app is running in the background, then full objects are returned. this can be easily added as part of static quick action support, (we only need type for our use cases).
My initial intention for this PR is to get basic frame up running, so extra support like mentioned above can be easily added.
One quick comment is that on android side popInitialAction is a promise, where the iOS is a direct function call. just wondering if that can be consolidated. :)

Hi @jordanbyron, all review comments are addressed.

Thanks @huangmr. I'll take a look when I get some downtime and let you know if I have any more feedback.

The current android implementation also uses DeviceEventEmitter and should behave the same way as iOS. but it only support dynamic quick actions (or app shortcuts on android:) ) at the moment, which is probably why you are not seeing them.

I'm sorry I don't think I was clear. The app shortcut link is showing up in my simulator, but I'm not seeing the event come across the DeviceEventEmitter when the app is relaunched when the app is active. Have you confirmed that is working? Here are the steps I did to recreate the problem:

Build and launch an app with a shortcut (App opens and no events triggered because it was launched without an initial action)
Return to the home screen and launch the app with a shortcut

Expected Behavior
An event (quickActionShortcut) is triggered via the DeviceEventEmitter
Actual Behavior
No event is triggered.

Hi @jordanbyron, thanks for your comment, the behaviour is like below:

app not started before, launch it from shortcut directly.
getting popInitialActions: { type: 'sometype' }
app runs in background, launch it from shortcut again.
receiving an quickActionShortcut event form DeviceEventEmitter: {userInfo: Object, icon: 'someicon', title: 'some title', type: 'sometype'}
if you didn't receive the event from DeviceEventEmitter, make sure you added
DeviceEventEmitter.addListener('quickActionShortcut', this.doSomethingAboutShortcutEvents)

if you still having issue seeing the events, please let me know. cheers

this is how my code looks like:
  const ComposedComponent = class extends React.Component {
    props: Props;

    componentDidMount() {
      isSupported((error: ?Error, supported: Boolean) => {
        if (!supported) {
          return
        }

        popInitialAction().then(this._handleInitAction).catch(logError)

        this._setLoggedInShortcuts()

        DeviceEventEmitter.addListener('quickActionShortcut', this._handleQuickAction)
      })
    }

    componentWillUnmount() {
      DeviceEventEmitter.removeListener('quickActionShortcut', this._handleQuickAction)
    }

    render(): React.Element<any> {
      return <BaseComponent {...this.props} />
    }

    _setLoggedInShortcuts = () => {
      setLoggedInShortcuts(this.props.isLoggedIn)
    }

    _handleInitAction = (shortcut: QuickActionShortcut) => {
      console.log('popInitialAction', shortcut)
      this.handleQuickActions(shortcut)
    }

    _handleQuickAction = (shortcut: QuickActionShortcut) => {
      console.log('quickActionShortcut', shortcut)
      this.handleQuickActions(shortcut)
    }```

@huangmr here is what I am seeing:

Launching an app via a shortcut always comes from popInitialAction even if the app was previously loaded. This might be an android specific thing but no matter what I do I can't trigger the quickActionShortcut in my app. Here is what I'm running (which is very similar to your code)
import React, { Component } from "react";
import {
  AppRegistry,
  StyleSheet,
  Text,
  View,
  DeviceEventEmitter
} from "react-native";

var QuickActions = require("react-native-quick-actions");

QuickActions.setShortcutItems([
  {
    type: "Orders", // Required
    title: "See your orders", // Optional, if empty, `type` will be used instead
    subtitle: "See orders you've made",
    icon: "Compose", // Pass any of UIApplicationShortcutIconType<name>
    userInfo: {
      url: "app://orders" // provide custom data, like in-app url you want to open
    }
  }
]);

QuickActions.isSupported(function(error, supported) {
  if (!supported) {
    console.log("Device does not support 3D Touch or 3D Touch is disabled.");
  }
});

export default class Wow extends Component {
  componentDidMount() {
    QuickActions.popInitialAction()
      .then(function(data) {
        if (data == null) return;
        console.log("popInitialAction", data);
      })
      .catch(console.error);

    DeviceEventEmitter.addListener(
      "quickActionShortcut",
      this.handleQuickAction
    );
  }
  componentWillUnmount() {
    DeviceEventEmitter.removeListener(
      "quickActionShortcut",
      this.handleQuickAction
    );
  }
  handleQuickAction(data) {
    // This never gets triggered
    console.log("quickActionShortcut", data);
  }
  render() {
    return (
      <View style={styles.container}>
        <Text style={styles.welcome}>
          Welcome to React Native!
        </Text>
        <Text style={styles.instructions}>
          To get started, edit index.android.js
        </Text>
        <Text style={styles.instructions}>
          Double tap R on your keyboard to reload,{"\n"}
          Shake or press menu button for dev menu
        </Text>
      </View>
    );
  }
}

hi @jordanbyron, thanks for the details comment. :)
The reason you are seeing only seeing popInitialAction is because the activity is closed when you press back key. it should work if you press home key to send the app to background.

Hi @jordanbyron any more comments about this PR please. thanks

@huangmr I haven't forgotten about you. It's been a busy week. As soon as I confirm the back key workflow you described and it works I'll get this merged in. Thanks again for your patience!

@huangmr even hitting the home key in the emulator, and sending the app into the background, I am not able to get the quickActionShortcut event to fire. Can you try the simplified example I sent you and see if you can get it to work? Thanks!

@jordanbyron I have been busy recently too. would you mind resending the example over again sorry I couldn't find your last email for some reason. thanks

@huangmr https://github.com/madriska/react-native-quick-actions/pull/31#issuecomment-291185594

@jordanbyron looks like its launching a new instance every time with the demo, adding this line in AndroidManifest.xml  fixes the issue.
android:launchMode="singleTask"
also not sure if this helps, but handleQuickAction will need to be bound first, i'm doing it like this:
handleQuickAction = (data) => {

@huangmr do you think we should add a note about the launch mode configuration to the README? Something along the lines of:

Unless android:launchMode is set to singleTask in AndroidManifest.xml the quickActionShortcut event will never be triggered. In that case you'll need to use QuickActions.popInitialAction to get the selected app shortcut.

@jordanbyron guess setting the launchMode is the app's choice, but yeah it is worth mentioning that in the readme so the user is aware of the case. I have added some comments in README just now.

Hi @jordanbyron have you got any further comments please.

@huangmr nope I think we are all set. I just want to add that android:launchMode configuration to my demo app and confirm the quickActionShortcut event is fired. Once I've done that I'll merge this in and let you know. Thanks again for all of your work on this. I know it's taken a long time to get merged but we're very close now 🥇

Merged 3bafd1a18bc4ad6a2c09cbc020dd9849003bbb87
Thanks again @huangmr for all of your help. I'm going to push a release to npm shortly and add release notes.


READme for example amf and smf packages

Ok, this is a start. I think we'll want to get more into how these fit into the entire flow, but we can add that later.

/approve
/lgtm


Add link to requirement strings explanation in the manifest.md doc

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @huonw (or someone else) soon.
If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. The way Github handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes.
Please see CONTRIBUTING.md for more information.

@bors: r+ 96b2e3a
Thanks!

:hourglass: Testing commit 96b2e3a with merge 9915971...

:broken_heart: Test failed - cargo-win-32

@bors: retry

:hourglass: Testing commit 96b2e3a with merge 4a8609d...

:broken_heart: Test failed - cargo-win-32

@bors: retry

:hourglass: Testing commit 96b2e3a with merge 395b7f4...

:sunny: Test successful - cargo-linux-32, cargo-linux-64, cargo-mac-32, cargo-mac-64, cargo-win-32, cargo-win-64


Default scrape interval for ingressNginx ServiceMonitor in rancher-monitoring chart too small for NGINX / Request Performance Handling dashboard queries

Issue description:
There is no default values for ingressNginx.serviceMonitor.interval in the rancher-monitoring charts, as a result this takes the Prometheus default scrape interval of 10s. The 10s data points are too granual for the 1m rate calculations in the queries of the built-in NGINX / Request Performance Handling dashboard, and No Data is displayed for the dashboard as a result. The upstream ingress-nginx ServiceMonitor defines a scrape interval of 30s, which works for the dashboard (https://github.com/kubernetes/ingress-nginx/blob/helm-chart-3.39.0/charts/ingress-nginx/values.yaml#L604)
Business impact:
NGINX / Request Performance Handling dashboard in rancher-monitoring is blank and displays No Data
Troubleshooting steps:
N/A
Repro steps:
Provision an RKE cluster, install Rancher and install rancher-monitoring
Observe no data for the NGINX / Request Performance Handling dashboard in Grafana
Upgrade rancher-monitoring chart to set ingressNginx.serviceMonitor.interval: 30s and observe dashboard is functional

Workaround:
Is workararound available and implemented? Yes
What is the workaround: Set ingressNginx.serviceMonitor.interval: 30s in values when installing/upgrading rancher-monitoring chart
Actual behavior:
NGINX / Request Performance Handling dashboard in rancher-monitoring is blank and displays No Data
Expected behavior:
NGINX / Request Performance Handling dashboard works
Files, logs, traces:
N/A
Additional notes:
N/A
SURE-3750

Pass Verified in 2.6-head Commit ID 8ece6ae

created downstream ec2 cluster
installed rancher monitoring v2
opened grafana dashboard for nginx

data populated; graph present; no 'no data' label
reproduced original issue in 2.6.3


Ionic 2: iOS navbar height too large when component with button+badge inserted.

Short description of the problem:
If you declare a custom component with a button that contains a badge or an icon and import it into a navbar, the height of the component is too large, causing the navbar to swell in height on iOS.
What behavior are you expecting?
Navbar height is not affected, component height is correct.
Steps to reproduce:

Make a component with a button containing a badge or an icon (see code block).
Import that component into the page template navbar.
Observe swollen navbar.

custom-component template:
      <button>
          <ion-badge complete>3</ion-badge>
      </button>

page navbar template:
<ion-header>
  <ion-navbar>
    <button menuToggle>
      <ion-icon name="menu"></ion-icon>
    </button>
    <ion-buttons end>
      <custom-component></custom-component>
    </ion-buttons>
    <ion-title>My Jobs</ion-title>
  </ion-navbar>
</ion-header>
// etc...

Result:

Which Ionic Version?
2.x
Run ionic info from terminal/cmd prompt: (paste output below)
Your system information:

Cordova CLI: 6.2.0
Ionic Framework Version: 2.0.0-beta.10
Ionic CLI Version: 2.0.0-beta.32
Ionic App Lib Version: 2.0.0-beta.18
ios-deploy version: 1.8.6
ios-sim version: 5.0.8
OS: Mac OS X El Capitan
Node Version: v4.3.0
Xcode version: Xcode 7.2.1 Build version 7C1002

This is caused by the bar-button classes not applying since you are nesting the button in another component. Issue https://github.com/driftyco/ionic/issues/5927 was created for this, there's a workaround to add the category to the button. In your case something like this:
  <button category="bar-button">
      <ion-badge complete>3</ion-badge>
  </button>

Thanks!

Great, thanks.

Hi @brandyscarney this issue has regressed with the removal of the category attribute.
I have update my html to be:
<button ion-button icon-only (click)="showNotificationsModal()">
    <ion-icon *ngIf="notificationsCount == 0" name="cloud-upload"></ion-icon>
    <ion-badge *ngIf="notificationsCount > 0" color="complete">{{notificationsCount}}</ion-badge>
</button>

But now it looks like this:

@daveshirman
try this:
<button ion-button="bar-button" icon-only (click)="showNotificationsModal()">
    <ion-icon *ngIf="notificationsCount == 0" name="cloud-upload"></ion-icon>
    <ion-badge *ngIf="notificationsCount > 0" color="complete">{{notificationsCount}}</ion-badge>
</button>

Now category is passed like this: ion-button="bar-button"

Perfect.  Thank you.


Test for maximum tctrack radius.

The new test will fail until the new api-server code is deployed.


Update "Other Patients" name on the app drawer.

Describe the feature request.
Currently, Other patients items on app drawer, one cannot change the name "Other Patients". However, I would like to suggest some flexibility such that one can define a custom name.
Additional context

Acceptance criteria
One should be able to define a custom display name on the config and reflect on the app.
Area path
A list of ordered steps in the app on usage of the feature to support anyone testing it e.g. Code reviewer, QA e.g.

Login to the app
Open app drawer
One should be able to see the name defined.

Nice job, implementing this in a configurable way.


CSW GetRecords for harvested results

Status quo
The CSW GetRecords and GetRecordById is designed to create decent, specification based output for registered services and metadata.
However, using the gmd:Md_Metadata as output schema
http://<IP_ADDRESS>:8000/csw/?version=2.0.2&request=GetRecords&resultType=results&outputSchema=http://www.isotc211.org/2005/gmd&typenames=gmd:MD_Metadata

leads in case of harvested metadata to some errors, which roots can be found in the fact, that these metadata do not have Service records, since they didn't provide Service Model related data in the harvesting procedure.
Discussion
@joki
@armin11
@hollsandre

We have to refactor the CSW output gmd:MD_Metadata schema to work ...

... only on Metadata -> will work always, but we can not provide certain Service model data
... only on Metadata for harvested metadata (detectable by related_metadata.relation_type=HARVESTED_THROUGH) and regularly on registered metadata -> means more if-else cases for special treatment

We exclude harvested metadata from the CSW interface generally

we should use typeNames="csw:Record” - and outputSchema="http://www.isotc211.org/2005/gmd
this should work as expected ;-)

we should use typeNames="csw:Record” - and outputSchema="http://www.isotc211.org/2005/gmd
this should work as expected ;-)


Fix figure whitespace issue, introduced in PR #5276

As a result of #5276, there is no space between the caption and the attribution link of the figure shortcode. I.e. this:

Image byAuthor

renders in browser as:
Image byAuthor.
This patch should fix it, although I'm not very happy with the extra if.

I think this is the wrong approach.
You have deleted this line:
{{- with .Get "attrlink" -}}
Instead of doing that, try changing that line to:
{{- with .Get "attrlink" }}
When I did that, the issue resolved itself. Maybe you can verify that on your end @max-arnold ?


How to cancel a FormFlow when Validating

I have a Form in my bot, but at any time the user may want to cancel and continue later. I'm using FormFlow (new FormBuilder) and what I want is to in the validate methods check if the user send a specific word like 'EXIT' and if so to cancel the form and go back to context.wait().
Is there a way to stop the form? I can't find a way to access the context before onCompletion

There is a built-in cancel.  You can override the terms if you need to by specifying your terms in FormConfiguration.Commands[FormQuit].  If that doesn't work for you, you can also use Scorables to have commands override.

@pcbarroso did this solve your problem?


Bump phoenix html

This PR bumps phoenix_html from ~> 2.6 to ~> 2.10. Current version is 2.10.3.
All tests passing.

@zazaian This PR appears to be identical to #51, am I missing something?

Hi there @jonmast - sosry, didn't realize I'd submitted two here. I think I intended to issue an incremental release on my own fork and accidentally issued a PR. You should be able to merge #51 and close #52 and everything should be current.

P.S. nice work on phoenix_slime, it seems to be the most complete and well-supported minimalist templating library in the elixir ecosystem right now, including the available options for haml and pug. In a young ecosystem like this having a reliable library like this is invaluable for relying upon to build production-ready tools, and you guys seem to be doing a great job. Thanks again.

Thanks @zazaian!  I'll close this in favor of #51


Support decorating methods with handlers

Currently, decorating methods with handlers like poutine.broadcast fails because Messenger.__call__ returns a callable Handler object, not a function.  This PR removes Handler objects in favor of returning a function to support that use case.
cc @martinjankowiak

Consider using ContextDecorator, available in contextlib 3.5 and contextlib2 2.7

https://docs.python.org/3/library/contextlib.html#contextlib.ContextDecorator
https://contextlib2.readthedocs.io/en/stable/#contextlib2.ContextDecorator

Consider using ContextDecorator, available in contextlib 3.5 and contextlib2 2.7

I don't like that part of the standard library, I think it's too opaque for the tiny amount of functionality it provides.  Also, I'm setting an attribute on the return value of Messenger.__call__, which means I'd have to redefine Messenger.__call__ anyway, and TraceMessenger.__call__ has to be defined from scratch regardless.


Any plans for supporting distributed runners?

Currently using locust which has options for distributed runners (non-web testing).
Do you have any plans to do such things with f1?

Hi @rcowham :wave:
Sorry for the delay in responding.
What do you mean by distributed runners? Do you mean F1 orchestrating load test executions across multiple processes?
If so, we don't currently have any plans to implement this sort of thing. Internally, we normally orchestrate large and varied load tests by running several separate instances of F1.


please approve

https://github.com/amarcelja/swot/commit/5fea5318f2c8f1bb37dbbc54a2e37b27777897cd

@amarcelja you need to open a pull request for this see CONTRIBUTING.md


NWIS Client: Expose cache filename as option

Allow users to set an alternative path for the cache when instantiating IVDataService.
Relevant line here:
https://github.com/NOAA-OWP/hydrotools/blob/7294aac3cb65001c933b80fcc4a73bd5724f3765/python/nwis_client/src/hydrotools/nwis_client/iv.py#L89

Nice!

@amaes3owp, see #176. Ill post a link to pypi once this PR has been merged in and i've published the new version to pypi.

Thank you guys for getting this done so quickly!

@amaes3owp, version 3.1.0 of hydrotools.nwis_client is now on pypi. Please upgrade to the latest version using:
pip install hydrotools.nwis-client==3.1.0

Oh yeah of course! Thanks for opening up the ticket!

Thanks Austin!


pyodbc for AWS lambda

How do i download pyodbc when i want to run the code using AWS lambda, i have tried most of the ways but for some reason pyodbc doesnt install successfully on my RHEL machine.

Is this a continuation of issue #254 ?

No i have been able to install pyodbc , wanted to know if this can be used in AWS lamda functions rather than running the solution on a server.

I haven't tried this myself.
It may be possible to build pyodbc into a binary wheel on an identical system and install from that wheel file.
I'm going to close for now because this seems environmental, but reopen if you have any particular error messages or something you need help with.  Good luck.

@gordthompson Did you ever get pyodbc working in an AWS Lambda?


"cf api" fails if the 1st nameserver fails to resolve the endpoint

Condition:
Several name servers are defined in /etc/resolv.conf:
nameserver "internal"
nameserver "public"
Then, the "api endpoint" is accessible from nameserver "public", but not from nameserver "internal".
In this situation, I can
1 . ping "api endpoint" successfully,
2.  curl "api endpoint"/v2/info successfully
3. nslookup "api endpoint" successfully
nslookup "api endpoint"
;; Got recursion not available from "internal", trying next server
Server:        "public"
Address:    "public"#53
Non-authoritative answer:
Name:    "api endpoint"
Address: "ip address of api endpoint"
4. But failed with "cf api" cmd:
[exec] Setting api endpoint to https://"api endpoint" ...
[exec] FAILED
[exec] Error performing request: Get https://"api endpoint" /v2/info: dial tcp: lookup "api endpoint"  on "internal":53: no such host
It looks like "cf api" cmd only check the 1st nameserver, and fails to do recursive lookup as nslookup, curl, ping and etc system cmd.

Hi @cdlliuy,
If you change the Go resolver, does it make a difference?
GODEBUG=netdns=cgo cf api https://api endpoint

hi, @dkoper , it works with GODEBUG=netdns=cgo cf api https://api endpoint, but when I do "cf login", I must "GODEBUG=netdns=cgo cf login -a https://api.xxx" , and the further request must be works with "GODEBUG=netdns=cgo" as well, i.e. "GODEBUG=netdns=cgo cf apps".
I think this is a workaround, right?

Hi @cdlliuy,
Thanks for getting back to me so quickly.
The CLI is implemented in Golang, which defaults to a DNS resolver that doesn't seem to cater for your use case. Setting the environment variable makes it use a non-default DNS resolver that does cater for your use case.
The CLI team will need to investigate the impact of changing the CLI to use the other resolver by default.
In the meantime, you can set GODEBUG=netdns=cgo as a global environment variable in your shell so cf (and other programs developed in Golang that likely weren't able to resolve external addresses either) will work.
Regards,
Dies Koper
CF CLI PM

Got it. Thanks Dies

Hi @dkoper
Oh yes, the issue we're facing is the same. But without setting GODEBUG=netdns=cgo for v6.15.0 it works fine. So v6.16.x doesn't work with this flag.

Possibly related, we noticed that cf v6.16 does not handle a misconfigured /etc/resolv.conf on linux well. Because of the hard-coded 5 second timeout when configuring net.Dial, if the DNS resolution takes longer than 5 seconds, the CLI will exit with error. I created https://www.pivotaltracker.com/story/show/115252237 to address this.
We saw the above behavior on a bosh-deployed 64-bit linux VM (for cf-smoke-tests) that had a bad entry in /etc/resolv.conf but could not reproduce this on OSX. Possibly related to the fact that the linux 64-bit CLI is dynamically-linked and all other binaries are statically-linked.
We have also had similar reports from the CF community in the last week or so (see https://github.com/cloudfoundry/cf-release/issues/923).

@cdlliuy we were unable to reproduce this on Ubuntu Trusty or Wily, using CLI 6.16.1.
Can you tell us more about your system?
You can see our attempt to reproduce below:
$ cat /etc/resolv.conf
nameserver <IP_ADDRESS>
nameserver <IP_ADDRESS>

$ nslookup api.run.pivotal.io <IP_ADDRESS>
Server:		<IP_ADDRESS>
Address:	<IP_ADDRESS>#53

** server can't find api.run.pivotal.io: REFUSED

$ nslookup api.run.pivotal.io
;; Got recursion not available from <IP_ADDRESS>, trying next server
Server:		<IP_ADDRESS>
Address:	<IP_ADDRESS>#53

Non-authoritative answer:
Name:	api.run.pivotal.io
Address: <IP_ADDRESS>
Name:	api.run.pivotal.io
Address: <IP_ADDRESS>

$ cf api api.run.pivotal.io
Setting api endpoint to api.run.pivotal.io...
OK

API endpoint:   https://api.run.pivotal.io (API version: 2.51.0)
Not logged in. Use 'cf login' to log in.

@cbguder, the problem happens on 6.13.0-e68ce0f-2015-10-15T22:53:58+00:00, and I don't have permission to change the cf version of the target env.   I contact the admin and check whether v6.16.1 works

$ cf --version
cf version 6.16.1+924508c-2016-02-26
I installed cf-cli through brew installer, and the version was the 6.16.1
with the version, I was continually gettting the error message as follows.
$ cf api https://api.run.pivotal.io

Error performing request: Get https://login.run.pivotal.io/login: dial tcp: i/o timeout
TIP: If you are behind a firewall and require an HTTP proxy, verify the https_proxy environment variable is correctly set. Else, check your network connection.

even with GODEBUG=netdns=go and GODEBUG=netdns=cgo option, it failed.
But when i reinstall cf-cli version 6.15.0, it works.
I guess there is some issue on the latest version.

We face the same issue when trying to execute the following command:
$ cf install-plugin Diego-Enabler -r CF-Community -f Looking up 'Diego-Enabler' from repository 'CF-Community' FAILED Error getting plugin metadata from repo: Error requesting from 'CF-Community' - Get http://plugins.cloudfoundry.org/list: dial tcp: lookup plugins.cloudfoundry.org on first_dns_server:53: n o such host
Have tried with CF cli 6.16.1 and 6.15.0 on Ubuntu 14.04.4,  3.13.0-63-generic.
It worked only with GODEBUG=netdns=cgo enabled on both versions and failed with GODEBUG=netdns=go.

@cdlliuy @vvraskin
We have released cf CLI 6.18.0 with changes that may affect its behaviour in circumstances such as the ones you have described. Would you mind trying it out and report back how it works without the environment variables, and with?
Cheers,
Dies Koper
CF CLI PM

@dkoper
Hello,
I've checked the latest version of cf CLI (6.18.1+a1103f0-2016-05-24) and I still see similar problems.
Command:
CF_TRACE=true ./cf api api.fabric.ng.mydomain.net
Output:
`Setting api endpoint to api.fabric.ng.mydomain.net...

REQUEST: [2016-06-01T02:03:54-05:00]
GET /v2/info HTTP/1.1
Host: api.fabric.ng.mydomain.net
Accept: application/json
Content-Type: application/json
User-Agent: go-cli 6.18.1+a1103f0 / linux
REQUEST: [2016-06-01T02:03:54-05:00]
GET /v2/info HTTP/1.1
Host: api.fabric.ng.mydomain.net
Accept: application/json
Content-Type: application/json
User-Agent: go-cli 6.18.1+a1103f0 / linux
FAILED
Error performing request: Get http://api.fabric.ng.mydomain.net/v2/info: dial tcp: lookup api.fabric.ng.mydomain.net on <IP_ADDRESS>:53: no such host
TIP: If you are behind a firewall and require an HTTP proxy, verify the https_proxy environment variable is correctly set. Else, check your network connection.`
I have following DNS configuration in /etc/resolv.conf:
nameserver <IP_ADDRESS> # Consul DNS nameserver <IP_ADDRESS> # powerDNS  nameserver <IP_ADDRESS> # Softlayer DNS
The address I'm trying to resolve (http://api.fabric.ng.mydomain.net) is located on the Softlayer DNS.  nslookup and ping can resolve it, but dig is failing.
However, when I try to comment the powerDNS entry in /etc/resolv.conf, dig is working, but cf api is showing the error.
So I think that the problem is that cf client still cannot iterate over all DNS entries in /etc/resolv.conf.

Hello
i'm using the latest cf version 6.19.0+b29b4e0-2016-06-08 and keep getting the same message.  if i tether laptop to my phone, i can login, push applications, but soon as i am connected to my home wireless... i get the following errors when i try to do "cf login, cf push , etc"
auth request failed: Error performing request: Post https://login.run.pivotal.io/oauth/token: dial tcp: i/o timeout
TIP: If you are behind a firewall and require an HTTP proxy, verify the https_proxy environment variable is correctly set. Else, check your network connection.

@cdlliuy, @umairriaz82, @SimyungYang, @rahulkj
Possibly the issue is that the cf CLI has a (hardcoded) 5 sec timeout for resolving the domain name and connecting to the IP address. So if /etc/resolv.conf is configured to switch to the secondary DNS server after 5 seconds (its documented default timeout value), the CLI will already have given up.
In cf CLI 6.20.0 we have experimentally replaced the hardcoded value with an environment variable CF_DIAL_TIMEOUT to allow you to override the 5 sec timeout. Please let us know how that works out for you.
@vvraskin If you can reproduce the panic with cf CLI 6.20.0, please submit a new issue and we'll take a look.
Cheers,
Dies Koper
CF CLI PM

There is a feeling that cf cli makes a DNS request for every connection to API and does not reuse already resolved name. This feeling comes from cf being slow if when dns is slow.

@giner I believe the idea was that the connection would be reused for subsequent API calls, so there would be no need to cache resolved addresses (a process which leave to golang, which doesn't seem to come with a cache itself).
As part of another investigation we recently found out that we're not reusing connections. I was about to create a story for that. Feel free to create a new GitHub issue for that to make it easier for you to track.
Regards,
Dies Koper
CF CLI PM

@dkoper,  with the cf cli "cf version 6.19.0+b29b4e0-2016-06-08"  , the workaround "export GODEBUG=netdns=cgo" can't work anymore . Here is the cmd & response I got

:~$ cf -v
cf version 6.19.0+b29b4e0-2016-06-08
:~$ export GODEBUG=netdns=cgo
:~$ cf api http://api.
Setting api endpoint to http://api....
FAILED
Error performing request: Get http://api./v2/info: dial tcp: lookup api. on <IP_ADDRESS>:53: no such host
TIP: If you are behind a firewall and require an HTTP proxy, verify the https_proxy environment variable is correctly set. Else, check your network connection.

========
In the meanwhile, the ping & nslookup both work:

:~$ ping api.
PING  (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from 12.9c.559e.ip4.static.sl-reverse.com (<IP_ADDRESS>): icmp_seq=1 ttl=185 time=226 ms
64 bytes from 12.9c.559e.ip4.static.sl-reverse.com (<IP_ADDRESS>): icmp_seq=2 ttl=185 time=226 ms
64 bytes from 12.9c.559e.ip4.static.sl-reverse.com (<IP_ADDRESS>): icmp_seq=3 ttl=185 time=226 ms
^C
---  ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 226.650/226.766/226.860/0.087 ms

:~$ nslookup api.
;; Got recursion not available from <IP_ADDRESS>, trying next server
Server:		<IP_ADDRESS>
Address:	<IP_ADDRESS>#53

Non-authoritative answer:
api.	canonical name = .
Name:
Address: <IP_ADDRESS>
=========
On another similar env, the "cf version 6.13.0-e68ce0f-2015-10-15T22:53:58+00:00" cli worked with workaround  "export GODEBUG=netdns=cgo" .
At this time point, I hope to get the workaround works again

@cdlliuy
Can you try increasing the dial timeout by setting environment variable CF_DIAL_TIMEOUT (in seconds, defaults to 5) in your shell when running the cf command and report back?

@dkoper, here you go.  You can see I set the timeout to 20, and using "date" to dump the time.  But the cf cmd failed almost at one, and didn't wait for 20 seconds at all .

:~$ export GODEBUG=netdns=cgo
:~$ cf api https://api.
Setting api endpoint to https://api....
FAILED
Error performing request: Get https://api./v2/info: dial tcp: lookup api. on <IP_ADDRESS>:53: no such host
TIP: If you are behind a firewall and require an HTTP proxy, verify the https_proxy environment variable is correctly set. Else, check your network connection.
:~$ export CF_DIAL_TIMEOUT=20
:~$ date
Sat Jul 30 03:37:29 CDT 2016
:~$ cf api https://api.
Setting api endpoint to https://api....
FAILED
Error performing request: Get https://api./v2/info: dial tcp: lookup api. on <IP_ADDRESS>:53: no such host
TIP: If you are behind a firewall and require an HTTP proxy, verify the https_proxy environment variable is correctly set. Else, check your network connection.
:~$ date
Sat Jul 30 03:37:35 CDT 2016

@dkoper, see my latest post for the CF_DIAL_TIMEOUT on v6.19 version. Is that worth to try on v6.20 version?

@cdlliuy yes, the variable was introduced in v6.20.0. Sorry, I should have mentioned that!

@dkoper , the CF_DIAL_TIMEOUT didn't work even with cf v6.21.  The same behaviour as v6.19, no effect at all.  Also, it didn't wait for 20 seconds when setting to CF_DIAL_TIMEOUT=20
:/tmp$ cf -v
cf version 6.21.0+dff2cf8-2016-07-27
:/tmp$ date
Wed Aug 10 04:06:16 CDT 2016
:/tmp$ export CF_DIAL_TIMEOUT=20
:/tmp$ GODEBUG=netdns=cgo cf api https://api.
Setting api endpoint to https://api. ...
FAILED
Error performing request: Get https://api./v2/info: dial tcp: lookup api.ng.bluemix.net on <IP_ADDRESS>:53: no such host
TIP: If you are behind a firewall and require an HTTP proxy, verify the https_proxy environment variable is correctly set. Else, check your network connection.
:/tmp$ date
Wed Aug 10 04:06:21 CDT 2016

@dkoper , is there any progress on this issue?

I'm having the same problem, dns responds with:
;; ANSWER SECTION:
<cut>.com. 21599 IN	CNAME	<cut>.elb.amazonaws.com.

My cli version:
cf version 6.21.1+6fd3c9f-2016-08-10

But if I build it by myself with bin/build script, it works well

Some more information:
Turned out official binary is already built with go's dns resolver and there's no way to switch it to cgo with environment variable.
go package net: built with netgo build tag; using Go's DNS resolver
FAILED

My binary (golang 1.7)
go package net: dynamic selection of DNS resolver
OK

go package net: using cgo DNS resolver
OK

go package net: GODEBUG setting forcing use of Go's resolver
FAILED

Probably you should remove the netgo build flag?

In my case, the cli didn't work whatever GODEBUG=netdns=cgo set or unset.  Is  there anyone to take care this issue?

Hi @cdlliuy
We're concerned we're building the CLI with Go's DNS resolver to allow static building so that the binary works on more Linux distributions (in particular, also on minimal distributions like Alpine) and therefore the ability to make it switch to the cgo resolver dynamically is disabled.
I've asked the team to take another look.

@cdlliuy @dkoper
We've rebuilt the CLI with go 1.7.1 which has fixed a bug related to DNS retry logic. Can you please see if you still run into this issue with the latest edge binaries. In the meantime we will try to reproduce this issue on our end.

@nickwei84 , do you mean the latest CLI binary 6.21.1 in the download page??

@cdlliuy No, the edge binaries, also available from the links in the last section of https://github.com/cloudfoundry/cli#downloads.

@cdlliuy
If you are still running into a DNS issue with the latest edge binary, can you please provide us with one of the following:

provide us access to your environment so we can directly debug your issue instead of reproducing it in our environment which may differ
provide us with the following additional information:

contents of your /etc/resolv.conf file
output from running nslookup "your-domain"
output from running nslookup "your-domain" dns-server-from-/etc/resolv.conf for each domain name server in your /etc/resolv.conf file
output from running dig "your-domain"
output from running ping "your-domain"
output from running both tcpdump -ni eth0 -v port 53& (this will run in the background) and then cf api "your-domain"

Thanks!

The edge build works in my environment! thanks a lot!

Thanks again for your cooperation and patience in resolving this issue.
We have published the release.
https://github.com/cloudfoundry/cli#downloads
Cheers,
Dies Koper
CF CLI PM

I had downloaded the latest version:
C:\Users\pradipta>cf --version
cf version 6.22.1+6b7af9c-2016-09-24
However, I am still stuck with the same problem:
C:\Users\pradipta>cf_edge api https://api.springcloudeureka.com
Setting api endpoint to https://api.springcloudeureka.com...
FAILED
Error performing request: Get https://api.springcloudeureka.com/v2/info: dial tc
p <IP_ADDRESS>:443: i/o timeout
TIP: If you are behind a firewall and require an HTTP proxy, verify the https_pr
oxy environment variable is correctly set. Else, check your network connection.

@pmaitra, please submit a new issue as with our tracking system it is difficult to track issues that have been marked resolved.
Please include full details. In your post above you show the version of cf but you run the api command on cf_edge? What did you set CF_DIAL_TIMEOUT to? What does curl -vvv to the same API endpoint return? Please include that in the issue report.

Hello all,
Just wanted to mention; I've had this issue with the DNS timeouts for quite a while now, but the CF_DIAL_TIMEOUT environment variable worked for me. I set it to a value of 20 and I'm now able to
run cf l -a https://<api endpoint> ... and login successfully.
@dkoper mentioned on https://www.pivotaltracker.com/n/projects/892938/stories/113792769 that nobody had come back to report success, so here's one.


Bug: Application error: Maximum call stack size exceeded

Error message: Maximum call stack size exceeded
Error stack:
RangeError: Maximum call stack size exceeded
    at String.match (<anonymous>)
    at Zi.match (altair://-/main.js:1:263142)
    at altair://-/main.js:1:555095
    at altair://-/main.js:1:555172
    at Object.token (altair://-/main.js:1:556022)
    at Gr (altair://-/main.js:1:265988)
    at No (altair://-/main.js:1:267833)
    at _r (altair://-/main.js:1:263931)
    at hi (altair://-/main.js:1:264673)
    at be (altair://-/main.js:1:273565)

When did this error occur? And does it re occur, or it happened only once?
Please provide some helpful screenshots of the bug
trying to paste a 14MB text file for a mutation into my graphql server (my server accepts images in base64), in my normal client this mutation works, altair hogs and freezes
now altair is stuck on loop and displays the query area as blank and i can't clear it
Version 4.4.1

If I understand correctly, Altair hangs because you paste a very large quantity of text into the query editor and it can't seem to handle the large content?
If that's the case, then looks like this fixes the problem https://github.com/codemirror/CodeMirror/commit/b88e8c3f8077a2481b0f26c3b74a7913cacac00f

Using codemirror 6 for the query response now. This should be able to handle large content without breaking.


investigate possibility to remove qaprosoft_3rdparty repository from pom.xml

we have to try to remove completely qaprosoft_3rdparty repository from carina
        <repository>
            <id>qaprosoft_3rdparty</id>
            <name>Qaprosoft Thirdparty</name>
            <url>https://ci.qaprosoft.com/nexus/content/repositories/thirdparty/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>

3rd party removed. testing should be done using 7.2.11-SNAPSHOT core version


More sensible paths

This:

installs to /opt now
doesn't use /root anymore
has some other path related things that seem more sensible now

This will eventually also lead to the app running under an ordinary user (not root).
I've considered storing the recordings/answers somewhere into /var, but decided to think that through thoroughly later.
@alexa-pi/coreteam Please test. Maybe @maso27 has some time to give it a try?

On the storing of recordings and answers piece there is a clause in the
Amazon T&C's that says you aren't supposed to store the voice files, it
seems like it's allowed to store temporary files in order to make the
device function but we should minimise this.
I'd suggest storing in /tmp so that they are cleared on a reboot. Also
prevents the storage filling up and causing issues.
On Wednesday, 14 September 2016, René Kliment<EMAIL_ADDRESS>wrote:

This:

installs to /opt now
doesn't use /root anymore
has some other path related things that seem more sensible now

This will eventually also lead to the app running under an ordinary user
(not root).
I've considered storing the recordings/answers somewhere into /var, but
decided to think that through thoroughly later.
@alexa-pi/coreteam https://github.com/orgs/alexa-pi/teams/coreteam
Please test. Maybe @maso27 https://github.com/maso27 has some time to
give it a try?
You can view, comment on, or merge this pull request online at:
https://github.com/alexa-pi/AlexaPi/pull/10
Commit Summary

more sensible paths; don't use /root directory
tmp_path variable; recording.wav in tmp_path

File Changes

M .gitignore
https://github.com/alexa-pi/AlexaPi/pull/10/files#diff-0 (1)
M CODE_NOTES.md
https://github.com/alexa-pi/AlexaPi/pull/10/files#diff-1 (4)
M README.md
https://github.com/alexa-pi/AlexaPi/pull/10/files#diff-2 (6)
M src/main.py
https://github.com/alexa-pi/AlexaPi/pull/10/files#diff-3 (17)
M src/scripts/initd_alexa.sh
https://github.com/alexa-pi/AlexaPi/pull/10/files#diff-4 (2)
M src/scripts/initd_alexa_monitored.sh
https://github.com/alexa-pi/AlexaPi/pull/10/files#diff-5 (6)
M src/scripts/monitorAlexa.sh
https://github.com/alexa-pi/AlexaPi/pull/10/files#diff-6 (2)
M src/scripts/setup.sh
https://github.com/alexa-pi/AlexaPi/pull/10/files#diff-7 (38)

Patch Links:

https://github.com/alexa-pi/AlexaPi/pull/10.patch
https://github.com/alexa-pi/AlexaPi/pull/10.diff

—
You are receiving this because you are on a team that was mentioned.
Reply to this email directly, view it on GitHub
https://github.com/alexa-pi/AlexaPi/pull/10, or mute the thread
https://github.com/notifications/unsubscribe-auth/AALc_cmyxyj32JOma7Q-_hVMlsIWuD8Zks5qqGtcgaJpZM4J9R67
.

I'll try installing on a fresh pi this weekend and report back
On Thursday, 15 September 2016, Sam Machin<EMAIL_ADDRESS>wrote:

On the storing of recordings and answers piece there is a clause in the
Amazon T&C's that says you aren't supposed to store the voice files, it
seems like it's allowed to store temporary files in order to make the
device function but we should minimise this.
I'd suggest storing in /tmp so that they are cleared on a reboot. Also
prevents the storage filling up and causing issues.
On Wednesday, 14 September 2016, René Kliment<EMAIL_ADDRESS><javascript:_e(%7B%7D,'cvml','notifications@github.com');>> wrote:

This:

installs to /opt now
doesn't use /root anymore
has some other path related things that seem more sensible now

This will eventually also lead to the app running under an ordinary user
(not root).
I've considered storing the recordings/answers somewhere into /var, but
decided to think that through thoroughly later.
@alexa-pi/coreteam https://github.com/orgs/alexa-pi/teams/coreteam
Please test. Maybe @maso27 https://github.com/maso27 has some time to
give it a try?
You can view, comment on, or merge this pull request online at:
https://github.com/alexa-pi/AlexaPi/pull/10
Commit Summary

more sensible paths; don't use /root directory
tmp_path variable; recording.wav in tmp_path

File Changes

M .gitignore
https://github.com/alexa-pi/AlexaPi/pull/10/files#diff-0 (1)
M CODE_NOTES.md
https://github.com/alexa-pi/AlexaPi/pull/10/files#diff-1 (4)
M README.md
https://github.com/alexa-pi/AlexaPi/pull/10/files#diff-2 (6)
M src/main.py
https://github.com/alexa-pi/AlexaPi/pull/10/files#diff-3 (17)
M src/scripts/initd_alexa.sh
https://github.com/alexa-pi/AlexaPi/pull/10/files#diff-4 (2)
M src/scripts/initd_alexa_monitored.sh
https://github.com/alexa-pi/AlexaPi/pull/10/files#diff-5 (6)
M src/scripts/monitorAlexa.sh
https://github.com/alexa-pi/AlexaPi/pull/10/files#diff-6 (2)
M src/scripts/setup.sh
https://github.com/alexa-pi/AlexaPi/pull/10/files#diff-7 (38)

Patch Links:

https://github.com/alexa-pi/AlexaPi/pull/10.patch
https://github.com/alexa-pi/AlexaPi/pull/10.diff

—
You are receiving this because you are on a team that was mentioned.
Reply to this email directly, view it on GitHub
https://github.com/alexa-pi/AlexaPi/pull/10, or mute the thread
https://github.com/notifications/unsubscribe-auth/AALc_cmyxyj32JOma7Q-_hVMlsIWuD8Zks5qqGtcgaJpZM4J9R67
.

@sammachin Thanks for the clarification, I didn't know that. The code currently cleans up the directory on startup, but we can do better then. I thought about moving it out of /opt, since it's against FHS and what's more important, it bothers the file storage every time the user interacts with AlexaPi and it makes it harder to just copy the directory somewhere else / to someone else. So it's for sure we need to move it.
I did a little bit of reading on /var vs /tmp (1, 2, etc.) and you're right - it makes sense to store it in /tmp, which is often mounted on RAM and therefore:

doesn't bother file storage like HDD, which can sleep instead if otherwise possible,
doesn't take up space on the storage,
cleans-up automatically on reboot.

My main concern when I thought about this before was that it takes up RAM (well, who would have guessed) and on memory constrained devices, like OpenWRT routers, where I want to run this too, it could be a problem. And like 512 MB RAM Pis are better off with memory not wasted.
Thinking about it again:

Having looked at the files, they're really small!
Since a lot of the devices are gonna run 24/7 without a restart, we should implement periodical cleanups or a rule like "store only last N files" so we don't reach some limit even with these small files.
Depending on the rule, we should let the limit be configurable - for users with small RAM devices.
If we decide on like "10 last answers", they're gonna take up ~300 kB and we also have the recording which should all fit into 0.5 MB and with this we can probably forget about the file size limit, because this is fine even for really small devices. I don't see a worst case scenario where this would go beyond 1 MB.
So we can't use the files as cache? The file names look like they're unique for every request, even with the same answer, so I guess not :-(

I think moving it into /tmp and doing the "last N files" is a good idea. If you agree, I'd file a separate issue for that and merge this as it is (if there are no other problems with this), since we need to implement the cleanup as well as creating the directory with proper permission, etc.

I'd have to check the specific details of the T&C's but I think the big one
is not storing users request speech files, Its mainly a privacy thing, I
don't think there's as much of an issue with the responses but we should
try to limit that anyway, I don't think we should cache responses if they
are duplicates just play back whatever AVS responds with.
My code always just had the last one as recording.wav partly for easy of
coding and partly to keep to the T&C's its useful to be able to do in and
replay your last command when trying to debug mic issues, users often had
silent requests as their mic wasn't setup right.
On Thu, Sep 15, 2016 at 11:31 AM, René Kliment<EMAIL_ADDRESS>wrote:

@sammachin https://github.com/sammachin Thanks for the clarification, I
didn't know that. The code currently cleans up the directory on startup,
but we can do better then. I thought about moving it out of /opt, since
it's against FHS and what's more important, it bothers the file storage
every time the user interacts with AlexaPi and it makes it harder to just
copy the directory somewhere else / to someone else. So it's for sure we
need to move it.
I did a little bit of reading on /var vs /tmp (1
http://unix.stackexchange.com/questions/30489/what-is-the-difference-between-tmp-and-var-tmp,
2 https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard, etc.)
and you're right - it makes sense to store it in /tmp, which is often
mounted on RAM and therefore:

doesn't bother file storage like HDD, which can sleep instead if
otherwise possible,
doesn't take up space on the storage,
cleans-up automatically on reboot.

My main concern when I thought about this before was that it takes up RAM
(well, who would have guessed) and on memory constrained devices, like
OpenWRT routers, where I want to run this too, it could be a problem. And
like 512 MB RAM Pis are better off with memory not wasted.
Thinking about it again:

Having looked at the files, they're really small!
Since a lot of the devices are gonna run 24/7 without a restart, we
should implement periodical cleanups or a rule like "store only last
N files" so we don't reach some limit even with these small files.
Depending on the rule, we should let the limit be configurable - for
users with small RAM devices.
If we decide on like "10 last answers", they're gonna take up ~300
kB and we also have the recording which should all fit into 0.5 MB and with
this we can probably forget about the file size limit, because this is fine
even for really small devices. I don't see a worst case scenario where this
would go beyond 1 MB.
So we can't use the files as cache? The file names look like they're
unique for every request, even with the same answer, so I guess not :-(

I think moving it into /tmp and doing the "last N files" is a good
idea. If you agree, I'd file a separate issue for that and merge this as it
is (if there are no other problems with this), since we need to implement
the cleanup as well as creating the directory with proper permission, etc.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/alexa-pi/AlexaPi/pull/10#issuecomment-247292981, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AALc_Z5WSOqhFRaqvZSQJwDolsYJX96sks5qqR5lgaJpZM4J9R67
.

Ok, let's forget about the cache, it probably wouldn't be that useful anyway for 20K files and it might not even be possible.
With the recording.wav it still works the same, which I also think we should keep for debugging purposes. One last recording is fine IMHO.
So, do you agree that we'll do this in a separate issue? Which limiting method do you vote for (file size, number of files, combination, your own idea)? This is mainly to not to waste RAM.

Yep create an issue and we'll discuss :)
On Thu, Sep 15, 2016 at 11:44 AM, René Kliment<EMAIL_ADDRESS>wrote:

Ok, let's forget about the cache, it probably wouldn't be that useful
anyway for 20K files and it might not even be possible.
With the recording.wav it still works the same, which I also think we
should keep for debugging purposes. One last recording is fine IMHO.
So, do you agree that we'll do this in a separate issue? Which limiting
method do you vote for (file size, number of files, combination, your own
idea)? This is mainly to not to waste RAM.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/alexa-pi/AlexaPi/pull/10#issuecomment-247295459, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AALc_Q-bBb5tAqG4BlAfcnuHe7j15P-0ks5qqSGXgaJpZM4J9R67
.

Something worth being aware of, is that I put in a step to empty the tmpcontent directory every time Alexa finishes processing a command.  I didn't like the idea of that folder constantly filling with mp3's, and didn't know if Amazon liked it either.  The --debug switch turns that emptying step off.
It could just as easily go into some subdirectory within /tmp (instantiated when Alexa initializes), and the "empty" step would just free up the RAM instead of HDD space.

@maso27 My mistake, thanks for the clarification! I have to admit, I just skimmed the code and thought that it cleans up only once per app load. I will read it now more carefully, since I'll be actually doing the code, not just changing paths, directory structure, etc. Sorry again for the confusion.
Issue solved then. I'll change the temp directory to be a subdir of /tmp along with its creation, permissions, etc. I'll send the commit to this PR first thing tomorrow morning. Please test then.
You're supposed to clone it into /opt as in the updated README in this PR. You have to still do it as root (or sudo from pi) and run it as root, but we're getting there for it to be able to run it as regular user.

So I cloned it into /opt and ran it as pi, with the sudo command.  Everything worked great.
A question I've got, though, is what happens when someone tries cloning and installing it from a different directory, like /root?  At first glance, it appears you're storing SCRIPT_DIRECTORY separate from INSTALL_DIR in setup.sh.
The script already does a check if you're running as root, can it also check if you're in the right directory?  Then it could either exit if it's wrong, or else perhaps copy the appropriate files into /opt if you're starting from somewhere else?
I don't have time to check it now, but it seems that someone could do a janky install and never know it the way things are sitting. (Of course, they could do that before, but now I'm thinking about it a bit.)

So I originally wanted to just change the tmp_path to /tmp/something and handle its creation/permissions/deletion, but then I remembered that I want for this to be cross-platform (even Windows eventually), so I went there for a multi-platform solution using python's tempfile module. This way it should always go into /tmp if your machine is sane. If it is for some reason a little crazy, it should be handled in the best way possible.

@maso27 Thanks for pointing that out. So now the situation is that SCRIPT_DIRECTORY is where the install script is actually stored. The INSTALL_DIR is there just for pocketsphinx.
Which brings me to the fact, that we need to think about pocketsphinx installation and also about hard-coding /opt or any other directory, because we want this cross-platform and for users to be able to run it from any other directory. Because if you don't care about about init scripts and want to test it manually the only problem is pocketsphinx path to the model.
So what do we do with pocketsphinx to

enable users to use AlexaPi even if they don't download it to our chosen path or don't have permissions to write there?
have the code cross-platform?
reduce its size? The current git clone takes ~200 MB.

If we add --depth=1 to the clone, it takes only ~30 MB.

I see these options:

we could have pocketsphinx as a subdirectory of AlexaPi,

cloning it in the setup script,
or even having it as a git submodule

we could even distribute the model only (if that's all that's needed and the license allows this) directly in our repo as a subdirectory

I'm tired so I can't tell which option sounds best.
Let me know what you think. Thank you.

Yeah, that git clone of pocketsphinx bugs me. It's available through apt-get, but I didn't have luck making that version work. In setup.sh, it's installed with pip, but I never found a directory to point to that made things happy either. So I just clone it and point main.py to it.
It's possible that the dictionary file (and realistically, just the Alexa = "ah leks ah" portion of that) is all that's required. But I have a sneaking suspicion it involves more than that. Might be possible to really pare that down though.
But I like the idea of moving whatever we need into the AlexaPi directory. I made it separate.back when it was building and installing a number of different programs and I wanted to keep track. That can be changed now.
Incidentally, a number of distros have shairport-sync in their apt repos. For some.reason it isn't in Raspbian so I build it from source.

@maso27 Yep, I've looked at those packages in repo and they didn't seem complete.
I am for keeping the whole dictionary, because, correct me if I'm wrong, users can set their own trigger word now.
What I'm planning to do regarding #4 is to make the setup script modular and depending on the OS (or even Linux distribution) if would first try to install stuff from the system repos and then fall back to building it from source or whatever. This would cover both pocketsphinx and shairport-sync.
What I'm thinking now (and just saw this over at some other repo) is to create a thirdparty directory inside AlexaPi/src and download/clone stuff in there when needed (when it defaults to that). If there was a working X installed by a system method, we could just symlink thirdparty/X to that.
Thinking about this, I actually quite like it. What do you think?

So I looked at the PyPI version of pocketsphinx and I was able to make it work with it. So this solves all of our issues with pocketsphinx install (

huge repo clone wasting storage space, internet data and time,
wanting to have it multi-platform (even Windows and OS X)
and getting rid of hard-coded paths to run it

).
MIC. DROP!
@alexa-pi/coreteam Please test.

So this should be all from me regarding this PR. I'd like to merge this and move on to #11 when you test it and if you don't have any other issues with it. Thanks!

@renekliment
Glad to hear it on the pocketsphinx front!
I'm working on a fresh install to test.  Will report back later.

@renekliment
Oh, to answer your question about the always-on monitoring: I developed that when I was trying to port to an Arch Linux box.  My install was really crashy and I came up with it as a means to keep it running anyway.
I haven't needed it on any raspbian configs, ever.  As far as I'm concerned it can go away.

@maso27 Awesome. I'm also excited about this elegant solution :-) Let me know when you've tested that.
I see. I think we should keep the monitor, but merge the init script with the other one as indicated in #9. On most systems, systemd will handle that, but we need to write the unit file first. I might actually have a look at that, since it doesn't collide with any of the other architectural changes (other than this PR so we have the path in /opt).

So my fresh install went well.  I'm not at home, so I can't talk to her until this evening, but Alexa runs and reports "connection OK".  Starts again successfully after a reboot.
I tried to install from /home/pi first, just to see what would happen.  It alarmed and let me terminate as expected.
I've installed git and screen in addition to the base install (with shairport-sync enabled).  And after everything is installed, it takes up 1.6 GB of space.  So it would even fit on my dinky 2 GB SD cards!
Good work.

 There's one more commit to this PR from me. But this should be it - seriously!
Also, I've got some sweet init scripts refactor on my local machine waiting - say hello to systemd unit file, running it under an ordinary user, pid files, etc. Yay!

Ok I've finally had a chance to test this, first off this is what I did starting from a fresh install of raspbian 2016-05-27.
ssh<EMAIL_ADDRESS>sudo bash
cd /opt
git clone https://github.com/renekliment/AlexaPiNG.git
cd AlexaPiNG/src/scripts
./setup

I went with the no shairport and no monitoring option.
Install went OK apart from the AlexaPi init.d script has the old path to /root/ for startup so it doesn't auto start. After I corrected that it runs fine.
I've noticed a couple of differences from my version I'm guessing they came in in @maso27's changes:

If you are running in non wakeword mode then the button is now a press & release to talk rather than a press and hold to talk. I guess this means we are using some for of speech detection? This means there is a slight lag before it starts listening. Also in some use cases I have found the Press and Hold to talk to be a better experience especially in noisy environments or for people who's speech isn't great, you can add longer pauses. I can see the flip side that press and release is also nice and more like the way the Amazon TAP works.

The original version had a 3rd LED state "processing" essentially this was both LED's on while the request was being send to amazon and waiting for a response, if using a dual Red/Green LED this gave me a yellow light. So the indication was Red (Recording) > Yellow (Processing) > Green (Playing)
We now have Red LED (recording) > LED off for a few secs > Green LED (playing)
@renekliment I think if you can fix that startup script issue then I can work on putting back those previous features in a new PR later.

@sammachin Thank you for testing. You have however used my master branch, which is even with the official _master _ as it should be. You need to do git checkout universal-paths after the git clone. Which is why the path was incorrect, because it was using the old code, not from this PR.
ad 1: Yes, there is a speech detection from maso27 so you can speak as long as you want (there is no timer). The way it works now is that a button triggers Alexa and optionally while you are holding the button it forces her to listen, which you can use if you need to make a pause while you're thinking what to say next.
ad LEDs: Yeah, I've noticed it's little a different in the code, but I don't use LEDs (I'll give it a try later) so I haven't noticed what. However, please wait with this until device_platforms get merged, because I changed the code regarding this a lot in my local branch. You can file an issue in the meantime.

ah yeah I cloned the repo and forgot to switch branches!
Just about to test on another pi using the detection option will use the
correct branch this time :)
Ah thats nice so we have both tap and hold options.
On Wed, Sep 21, 2016 at 1:16 PM, René Kliment<EMAIL_ADDRESS>wrote:

@sammachin https://github.com/sammachin Thank you for testing. You have
however used my master branch, which is even with the official _master
_ as it should be. You need to do git checkout universal-paths after the git
clone. Which is why the path was incorrect, because it was using the old
code, not from this PR.
ad 1: Yes, there is a speech detection from maso27 so you can speak as
long as you want (there is no timer). The way it works now is that a button
triggers Alexa and optionally while you are holding the button it forces
her to listen, which you can use if you need to make a pause while you're
thinking what to say next.
ad LEDs: Yeah, I've noticed it's little a different in the code, but I
don't use LEDs (I'll give it a try later) so I haven't noticed what.
However, please wait with this until device_platforms get merged, because I
changed the code regarding this a lot in my local branch. You can file an
issue in the meantime.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/alexa-pi/AlexaPi/pull/10#issuecomment-248593918, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AALc_QgRMvTDvREfoQw5kOAqh6qEOMSmks5qsSAagaJpZM4J9R67
.

@sammachin
Yep, you've seen some of the things that changed between my version1.1 and version1.2 branches.  The silence detection for voice did change the way the button functions, in that a tap will begin a listening process in addition to it continuing to record as long as the button is held.
The LED functionality was changed to provide distinct feedback to the user for when the box is listening. Having both LEDs illuminate is misleading when only one has been implemented, or when they are in separate locations.
You can see it for yourself on your own install, but here's how I've been using it:
https://youtu.be/wlj4N7HQYs4
(You can see how the listening LED works at 2:20.)
And it's fine if you want to change how they're working. I just wanted to illustrate why I did what I did.

@maso27
Yeah fair points I've always used dual color LED so I've been expecting those indications,
The ones in my latest hardware are RGB LED's with 3 pins so we could also move to using a 3rd pin for monitoring, personally i do like having some kind of visual feedback when its completed the record and is working so you know 'something' is happening.
One of my eventual goals would be to make the code modular enough that people can use anything they like for indication and we just call some sort of 'event' to say the state has changed, then you can hookup whatever LED's other devices you like, even using something like smart light bulbs across the network!
Only thing I've found with the silence detection now is that there is a slight ~750ms delay between pressing the button and LED coming on to start recording. I'll look into that a bit more.

@renekliment just run 2 more installs again with a fresh raspbian;
ssh<EMAIL_ADDRESS>sudo bash
cd /opt
git clone -b universal-paths https://github.com/renekliment/AlexaPiNG.git
mv AlexaPiNG AlexaPi
cd AlexaPi/src/scripts
./setup.sh

First one was done with no shairport no monitoring, all ok this time with the startup script.
However, even though I've selected no monitoring she is still responding to the Alexa wakeword!
Second one was with no shairport but monitoring yes.
This works as expected and detects the wakeword most of the time.

The "always-on monitoring" option isn't to disable the wakeword.
It instantiates a script that runs behind the scenes and turns AlexaPi back on any time it stops. It turns on in silent mode so it doesn't say "hello" and startle the whole family when it happens.
It was designed when I was working on a crashy arch Linux port, but really isn't necessary.

@sammachin Actually the monitoring is the monitoring of AlexaPi process so it gets started again when it crashes. I know it's confusing. I've changed in in my local branch regarding refactoring of init scripts.

ah right ok that makes sense I thought we had an option to choose if you wanted wakeword/monitoring.
So the only feature choice is to include shairport then?

Yes.

So what's your opinion on this PR @alexa-pi/coreteam? Ready to be merged?

I just did a reinstall with your updates from two days ago.
No issues.
So yeah, as far as I'm concerned it's ready.

Great! I can't wait for the things that can come now. Merging.


Finish implementing inner (nested) procedures

The parser and possibly the type-checker support it, but the codegen (& optimizers) don't'

I don't think I'm ever going to get to this.


The client can't be connected to the MQTT broker over TLS with the self-signed cert file.

Environment

VerneMQ Version: Latest
OS: debian

SSL: enabled
name/password: enabled
Actual behaviour

The client can't be connected to the MQTT broker over TLS with the self-signed cert file.

I can see the message from wireshark:

client hello
server hello, certificate
alert: fatal, description: handshake failure

What I have done:
I tried to add my cert to be trusted by openssl.
Thank you!!

@nitan2001 Thanks, I don't really see an effective way of helping out here. Can you open a connection to the server with the same cert using openssl's client?

@ioolkos Thanks for your hint.
The openssl is a little bit confused.
It works now, while the failure before was caused by the incorrect certificate.


[binary] Allow no policy

Coverage decreased (-0.002%) to 37.921% when pulling cceb8ef4f0cfbd8604d43010ccd424a1445c5d3c on viraptor:binary_no_policy into 80b634c740554314c8509bf73df75d1f2d4a19a8 on HewlettPackard:master.


VM Startup (QEMU RAM Allocation) Errors with High (>32GB) RAM on M2 Max Macbook

When attempting to start a virtual machine using a large amount of RAM (e.g. 81,920MB or 65,536MB) on my physical 96GB RAM M2 Max MacBook through UTM, I intermittently receive one of two error messages. Purpose is to build Android OS code.
The first is:
QEMU error: QEMU exited from an error: qemu-aarch64-softmmu: Error: HV_BAD_ARGUMENT
and the second:
QEMU error: QEMU exited from an error: qemu-aarch64-softmmu: -drive if=none,media=cdrom,id=drive6EA5E6A4-0E92-4C50-9C56-405C793F1C8E,file=/Users/aeonitis/Downloads/ubuntu-22.04.2-live-server-arm64.iso,readonly=on: Could not open '/Users/aeonitis/Downloads/ubuntu-22.04.2-live-server-arm64.iso': Operation not permitted.
The issue does not persist when the RAM allocation is set to 32,768MB or less. Everything seems to run fine within that limit.
Additionally, upon inspecting the code, I noticed that the RAMSlider is limited to 32GB maximum. Considering modern Macs now support up to 192GB RAM, I suggest updating this slider for better alignment with the latest hardware capabilities. The systemMemory might also play a role in this limitation.
Configuration

UTM Version: 4.3.5
macOS Version: 13.5
Mac Chip: M2 Max
Storage: 300GB
Cores: 20 out of 24

Sorry I can't provide logs as the folders didn't seem to produce them pre-boot I guess, and for some reason the mac app reporting popup stopped appearing. I'm kinda glad this is the case as I don't wanna share more private device data.

@agarf Is there a HVF limitation on the amount of RAM that can be allocated?

@oscarbg I thought you're on Apple Silicon? That change only applies to x86_64

Thank you guys!!! @oscarbg & @osy
So I guess it'll be available in v9.2.0 release right?


ESP8266 with Arduino Mega 2560

I am using ESP8266-01 with Arduino Mega 2560...i want to know how to send user-defined data to a server, if for example my website name is "www.mysite.com" and my php file there is "receive.php", and the whole link of php looks like ,
www.mysite.com/project/receive.php           where i receive one value in string form
How will i do the code for posting this to web server? please help with hint codes

Hi Syed --
The GUIslice library is focused primarily on the graphical display functionality of the Arduino, so my assistance may be a bit limited. Nonetheless, I recommend you start by using a HTTP GET methodology to send data from the ESP8266 to your webserver (as this makes testing much easier). Many examples of this approach can be found on the web; here is one example: http://www.instructables.com/id/ESP8266-Building-Blocks-Send-Data-to-a-Web-Server-/
Hope that helps!


Implement partial encoding/decoding for the sharding indexed codec.

Add partial reads and writes to optimize the implementation of the sharding indexed codec as per recommendations in https://zarr-specs.readthedocs.io/en/latest/v3/codecs/sharding-indexed/v1.0.html#implementation-notes

closed by #37


[Rust] Subtype checking only for reference types (WIP)

Implement #311

See the tests in https://github.com/dfinity/candid/pull/323/files if your haven't already

Close in favor of https://github.com/dfinity/candid/pull/395


Align sections

Hey, I had the same issue as in #189. Don't ask me why this works I looked at other linker scripts.
Fixes #189

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @korken89 (or someone else) soon.
If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes.
Please see the contribution instructions for more information.

I'll see if I can create a reproducer for #189 and test this out later today.

The change looks good to me but I'm really curious why this is necessary. Maybe some crappy/picky linkers in play?

I saw this technique in the template linker scripts you get from microchip (atmel). You can see an example here: https://github.com/digitalbitbox/mcu/blob/master/bootloader.ld
I'm not using any strange linker, it is GCC 8.
https://developer.arm.com/-/media/Files/downloads/gnu-rm/8-2018q4/gcc-arm-none-eabi-8-2018-q4-major-linux.tar.bz2?revision=d830f9dd-cd4f-406d-8672-cca9210dd220?product=GNU Arm Embedded Toolchain,64-bit,,Linux,8-2018-q4-major

This fixed my issue. I don't understand it either, but it works :+1:

I had a look at the ChibiOS linker implementation, which also does this trick. It seems as the first align should be enough, but multiple sources double do it. I was also not able to reproduce though.
Feels like some linker trickery, but adding this should not alter the original intention so I will accept this.

bors r+


⚠ Processors has degraded performance

In 9452102, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 84 ms

Resolved: Processors performance has improved in c901b21.


Why the domain name change?

Toptal has a logo in the page itself.
What's the reasoning behind changing the page url? gitignore.io is pretty url.
This is not https://www.toptal.com/developers/gitignore
https://github.com/toptal/gitignore.io/issues/496

This has already been answered in the issue you referenced: "Due to business requirements, we can't serve the page from gitignore.io directly..."
https://github.com/toptal/gitignore.io/issues/496#issuecomment-644411787


Problem with Hurtworld script

Hello, after setting up a hurtworld server using the game script I have this problem:
Set current directory to /home/hurtworld/serverfiles
Found path: /home/hurtworld/serverfiles/Hurtworld.x86
The only thing I changed in the script was the ip, server name and added my steam id to become admin.
Can anyone help me? Thanks

Hi,
I'm sorry, i don't get what the issue is. Could you make a screenshot or something ?

Sure, you can check it here: http://i.imgur.com/XefICdv.png
What I did: Started the server and then console:
./hwserver start
./hwserver console
Then I got this message, and I followed everything on the how to setup page.

The console won't display anything else. This isn't an issue, this is the normal behavior of a Hurtworld server. If you think it sucks, blame Hurtworld team or Unity Engine, or both. :o))

I know, what I am saying is that the server doesnt start, it give me that message:
Set current directory to /home/hurtworld/serverfiles
Found path: /home/hurtworld/serverfiles/Hurtworld.x86
and then it shuts down.
Like if the directory in the start script is wrong.

what I am saying is that the server doesnt start

You didn't say that at any point.
As you're able to see the console, it seems like the server is starting.
If you exit the console with ctrl + c (instead of ctrl + b, d), that's why the server shutdowns. ctrl + c will terminate the process, while ctrl +b, d will let it run in background.
./hwserver start
Wait a few seconds
then ./hwserver monitor
-> output ?
Also, when adding you as an admin, make sure you follow the right syntax :
admins="addadmin<PHONE_NUMBER>01234567"

I use the ctrl+b, d to exit the console.
The addadmin is correct.
This is my output:
[hwserver@ubuntu-1gb-nyc3-01 ~]$ ./hwserver start [  OK  ] Starting hurtworld-server: BR Survival x5 |TP|Home|Shop [hwserver@ubuntu-1gb-nyc3-01 ~]$ ./hwserver monitor     fetching functions/command_monitor.sh...OK [  OK  ] Monitor hurtworld-server: Checking session: OK     fetching functions/monitor_gsquery.sh...OK [ .... ] Monitor hurtworld-server: Querying port: <IP_ADDRESS>:12881 : QUERYIN           [ FAIL ] Monitor hurtworld-server: Querying port: <IP_ADDRESS>:12881 : ERROR:            Unable to receive [ FAIL ] Monitor hurtworld-server: Querying port: <IP_ADDRESS>:12881 : ERROR: Unable to receive [ FAIL ] Stopping hurtworld-server: BR Survival x5 |TP|Home|Shop is already stopped [  OK  ] Starting hurtworld-server: BR Survival x5 |TP|Home|Shop [hwserver@ubuntu-1gb-nyc3-01 ~]$ ./hwserver monitor [  OK  ] Monitor hurtworld-server: Checking session: OK [  OK  ] Monitor hurtworld-server: Querying port: <IP_ADDRESS>:12881 : OK [hwserver@ubuntu-1gb-nyc3-01 ~]$ ./hwserver monitor [  OK  ] Monitor hurtworld-server: Checking session: OK [  OK  ] Monitor hurtworld-server: Querying port: <IP_ADDRESS>:12881 : OK [hwserver@ubuntu-1gb-nyc3-01 ~]$
Strange is that I can't connect, I got a no response from server message.

OK, so your first "monitor" attempt failed, but the second one is fine.
If the monitor says OK, it means your server accept querying, and supposedly connections from local.
No response could be a firewall issue,either on your OS, or a hardware firewall to set from your server provider. Also make sure that for some reason, you don't have several hurtworld processes started. (use the "top" command or webmin to check).

I checked now it says firewall is not running, and only one process is running.
I have to run firewall to enable the tcp/udp connections so?

Nope. If iptables -L shows you the default policy is to accept connections, you have nothing to do.
However, some servers like the "game" series from OVH have a firewal that you have to manage from your OVH panel. I'd search for that.
You can also use the netstat -atunp | grep Hurtworld command to check that your Hurtworld server is listening correctly for connections. If the monitor function tells you it's OK, then everything should be normal there.
After that, i'll be a bit short on clues if you can't manage to get it working.

Okay, so far so good. The server appears on the server list now.
But for some strange reason I can't connect to it.
I started the firewalld service, and added the ports 12871 and 12881 to the list. Both tcp and udp.
Tried the command you said: netstat -atunp it outputs this:
[hwserver@ubuntu-1gb-nyc3-01 ~]$ netstat -atunp | grep Hurtworld
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
udp        0      0 <IP_ADDRESS>:3565            <IP_ADDRESS>:*                           4427/./Hurtworld.x8
udp        0      0 <IP_ADDRESS>:12881           <IP_ADDRESS>:*                           4427/./Hurtworld.x8

I am using DigitalOcean with centos 7.2 to deploy a test server.

Why put a firewall when you're diagnosing stuff ? -_-

Because before the udp and tcp ports were closed, I activated the firewall service to enable them.
Why its so hard to get it working under linux -_-

No firewall doesn't mean the ports are closed. It means there is no restriction.
If your firewall policy was to deny all connections, of course it couldn't work.
Here is a properly disabled firewall output
root@game:~# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

I disabled the firewall and it outputs:
`[root@ubuntu-1gb-nyc3-01 ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
`

And you still can't connect ? What is the exact message ?
You didn't answer about that : Does your server have another kind of firewall ? Like a hardware firewall, that you would setup within your server provider's panel ?

The only message it gives is that I can't connect.
There's no other firewall, not from the panel itself.

What is the exact message ?

http://i.imgur.com/pkO3tpu.png
This is what shows, and the message is "connection failed"
The server appears on the list

Can you connect to other servers ? (make sure it's not a client issue)
Are both your client and server up to date ?
./hwserver validate

Boy, i noticed you're lacking a port listening.
Compare to my output :
ultimatebyte@game:~/hwtest$ netstat -atunp | grep Hurtworld
udp        0      0 <IP_ADDRESS>:12871           <IP_ADDRESS>:*                           28772/Hurtworld.x86
udp        0      0 <IP_ADDRESS>:12881           <IP_ADDRESS>:*                           28772/Hurtworld.x86
udp        0      0 <IP_ADDRESS>:3565            <IP_ADDRESS>:*                           28772/Hurtworld.x86

Yeah I can connect to others. I have 1 server up using windows, but the problem is linux.
I validated the files, started it again and same...
It may be something with a port???

See my upper message.
What's your distro ?

I am using Centos 7.2

Any reason for using CentOS ?
I'd recommend Debian 8 or Ubuntu 14+. 64 bits.
BTW, your query port is listening and responds, that's why monitor says it's ok, and that's why you're listed into the server list. But for some reason, your game port isn't listening. Don't mess with the firewall again, if the process doesn't even listen correctly, you can open whatever you want it won't help.
./hwserver details
Output of "Command-line Parameters" section ?

Okay, I will destroy this vps and create another with Ubuntu 14 so..
The output of server details:
Distro Details
========================================================================================================================================================================================================
Distro:   CentOS Linux release 7.2.1511 (Core)
Arch:   x86_64
Kernel:   3.10.0-327.10.1.el7.x86_64
Hostname:   ubuntu-1gb-nyc3-01
tmux:   tmux 1.8
GLIBC:   2.17

Performance
========================================================================================================================================================================================================
Uptime:   0d, 3h, 27m
Avg Load:   0.28, 0.09, 0.06

Mem:   total    used   free
Physical:   993M   393M   66M
Swap:   0B   0B     0B

Storage
========================================================================================================================================================================================================
Filesystem:   /dev/vda1
Total:   30G
Used:   2.8G
Available:   26G
Serverfiles:   1.4G

Hurtworld Server Details
========================================================================================================================================================================================================
Server name:   BR Survival x5 |TP|Home|Shop
Server IP:   <IP_ADDRESS>:12871
Slots:   50
Game world:   diemensland
Status:   ONLINE

hwserver Script Details
========================================================================================================================================================================================================
Service name:   hurtworld-server
hwserver version:   271215
User:   hwserver
GLIBC required:   2.15
Email notification:   off
Location:   /home/hwserver

Backups
========================================================================================================================================================================================================
No Backups created

Command-line Parameters
========================================================================================================================================================================================================
./Hurtworld.x86 -batchmode -nographics -exec "host 12871 diemensland ;queryport 12881;maxplayers 50;servername BR Survival x5 |TP|Home|Shop;creativemode 0;76561198024356708" -logfile "gamelog.txt"

Ports
========================================================================================================================================================================================================
Change ports by editing the parameters in
hwserver script

Useful port diagnostic command:
netstat -atunp | grep Hurtworld

DESCRIPTION  DIRECTION  PORT   PROTOCOL
> Game/RCON  INBOUND    12871  udp
> Query      INBOUND    12881  udp

Status: ONLINE

In your hwserver
You have map="diemensland" don't you ?
Try to remove "diemensland"
so that you have map=""
And restart hwserver.

More importantly, your admin syntax is wrong.
What did i tell you in my first posts ?

Also, when adding yourself as an admin, make sure you follow the right syntax :
admins="addadmin<PHONE_NUMBER>01234567"

What did you do ?
admins="76561198024356708" >>>>>> WRONG WRONG WRONG
Can't you actually read ?

admins="addadmin<PHONE_NUMBER>4356708"

I corrected that already. Sorry :(
Here's the corrected:
Distro Details
========================================================================================================================================================================================================
Distro:   CentOS Linux release 7.2.1511 (Core)
Arch:   x86_64
Kernel:   3.10.0-327.10.1.el7.x86_64
Hostname:   ubuntu-1gb-nyc3-01
tmux:   tmux 1.8
GLIBC:   2.17

Performance
========================================================================================================================================================================================================
Uptime:   0d, 3h, 48m
Avg Load:   0.34, 0.52, 0.31

Mem:   total    used   free
Physical:   993M   388M   70M
Swap:   0B   0B     0B

Storage
========================================================================================================================================================================================================
Filesystem:   /dev/vda1
Total:   30G
Used:   2.8G
Available:   26G
Serverfiles:   1.4G

Hurtworld Server Details
========================================================================================================================================================================================================
Server name:   BR Survival x5 |TP|Home|Shop
Server IP:   <IP_ADDRESS>:12871
Slots:   50
Game world:   NO MAP SET
Status:   ONLINE

hwserver Script Details
========================================================================================================================================================================================================
Service name:   hurtworld-server
hwserver version:   271215
User:   hwserver
GLIBC required:   2.15
Email notification:   off
Location:   /home/hwserver

Backups
========================================================================================================================================================================================================
No Backups created

Command-line Parameters
========================================================================================================================================================================================================
./Hurtworld.x86 -batchmode -nographics -exec "host 12871  ;queryport 12881;maxplayers 50;servername BR Survival x5 |TP|Home|Shop;creativemode 0;addadmin<PHONE_NUMBER>4356708" -logfile "gamelog.txt"

Ports
========================================================================================================================================================================================================
Change ports by editing the parameters in
hwserver script

Useful port diagnostic command:
netstat -atunp | grep Hurtworld

DESCRIPTION  DIRECTION  PORT   PROTOCOL
> Game/RCON  INBOUND    12871  udp
> Query      INBOUND    12881  udp

Status: ONLINE

The strange thing is that the game tries to connect to that ip:12881 and not 12871

Now it looks better.
./hwserver restart
Then wait 30s
Then : netstat -atunp | grep Hurtworld
Output  ?

Strange, now it shows this when I use that command:
[hwserver@ubuntu-1gb-nyc3-01 ~]$ netstat -atunp | grep Hurtworld
(No info could be read for "-p": geteuid()=1000 but you should be root.)

Now it shows this:
[hwserver@ubuntu-1gb-nyc3-01 ~]$ netstat -atunp | grep Hurtworld
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
udp        0      0 <IP_ADDRESS>:3565            <IP_ADDRESS>:*                           8055/./Hurtworld.x8
udp        0      0 <IP_ADDRESS>:12871           <IP_ADDRESS>:*                           8055/./Hurtworld.x8
udp        0      0 <IP_ADDRESS>:12881           <IP_ADDRESS>:*                           8055/./Hurtworld.x8

"@ubuntu-1gb-nyc3-01"
So your CentOS server is called ubuntu ? Or you managed to reinstall it ?
Now you got a decent netstat.
Try to connect again to <IP_ADDRESS>:12871 ?

Yeah, its called that, don't know why. Every server is called ubuntu in digitalocean.
Tried, no luck.
The server shows on the list, if I try to connect through the list it tries the port 18881 and not 12871.
Manually no luck too. Even using 12871

Weird. I wish i could try your server, but i don't own the game.
Is there any output in serverfiles/gamelog.txt ?
Can you try to connect to my server ? If mine works, we'll know that it's not a general error.
IP : <IP_ADDRESS>:12871

I connected to your server, it worked. But mine not.
Here is the output from gamelog.txt
http://pastie.org/10839546

Server failed to start: Exception0: Failed to bind to port range 12881-12881 ---> System.Net.Sockets.SocketException: Address already in use
Something is using that port already on your machine.
netstat -tulpn | grep :12881

Weird...
[hwserver@ubuntu-1gb-nyc3-01 ~]$ netstat -tulpn | grep :12881
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
udp        0      0 <IP_ADDRESS>:12881           <IP_ADDRESS>:*                           8551/./Hurtworld.x8

Try the same as root.

Maybe to isolate issues, you can try to shutdown your hurtworld server first.

Now it shows nothing...
The server I connected you installed on ubuntu?

Weird.
It's Debian 8.4 x64
Maybe try an OS reinstall if you got nothing on this machine.
If it still doesn't work, then see with your provider. If you don't have a dedicated IP, that could explain the thing.

So, installed Ubuntu 14.04 x64...
Installed the scripts...
Voilá... It worked.
Who knows why with the other its not working.
Again, thank you so much for the help UltimateByte :D

Well, it's often like that with CentOS, that OS isn't appealing to me...  The safest way to go still seems to be running the latest Debian. Debian, my sweetheart. :o))

Glad you got it solved though. Closing ;)


Port number for cognitive services

Hello,
Our company is behind the corporate proxy, which port numbers (like 80,443) should we open if we  want to use cognitive services and bot service diretline APIs?
Thanks!
Wayne

Ports 80 and 443 are it.  The calls are just standard REST api calls, there are no special pots involved.

Thanks!


Clean up ScalaJSClassEmitter and JSDesugaring

Seriously, this is such a mess ...

Hahahaha, I was gonna say :) Btw. in the course of this, also get rid of all the private[scalajs] because of Rhino. The only stuff it actually needs can be easily made available through Emitter.


Better Display for Current Player

The Icon should be displayed bigger and under the text.

Found a different solution for the display of the current player.


use true/false functions instead of variables to allow monkey-patched Mojo::JSON

Fixes _decode_value() to use the true and false functions in case they have been monkey patched to return different boolean objects, e.g. by Mojo::JSON::MaybeXS.

What's the performance cost?

There is a cost, but it's not that bad.

Any cost is certainly mitigated by being able to use XS-based JSON encoders anyway ;)

And reverted, since modules like Mojo::JSON::MaybeXS should always be monkey patching all functions exported by Mojo::JSON. https://github.com/kraih/mojo/commit/997873fb9f679dfc22ea88dbf55f098b7c4f7bff

The other day I was considering to monkey patch Mojo::JSON. I think it would be very beneficial to make Mojo::JSON to use internally JSON::XS if installed?..


Add test for SQL server schema filters

Add test for SQL server schema filters. This requires smaller change in test helper which currently allows to enable CDC only for tables under default schema.
https://issues.redhat.com/browse/DBZ-2793

@vjuranek, could you check whether those options are in SQL Server connector docs yet, and if not, add them there? Thx!

@vjuranek Applied, thanks!


Crawler craws more than expected

When i start the crawler i set a CLOSESPIDER_ITEMCOUNT=5 (in which I see that the config is assigned) , however when the crawler finished it crawls more than 5, which is not expected.
Result from log file:
'finish_reason': 'closespider_itemcount',
Is there a special reason for that?

It had already made the requests to additional pages so it finished extracting from those before shutting down.


pypi: Upgrade Zulip API bindings to version 0.7.1.

@timabbott FYI :)

“AttributeError: 'EmbeddedBotHandler' object has no attribute 'react'”—it looks like the incompatibility between EmbeddedBotHandler and ExternalBotHandler has come back to bite us again. We should really come up with a better solution to whatever problem EmbeddedBotHandler was solving and get rid of this cast.

Agreed.  The intent here was that EmbeddedBotHandler be a different implementation of the ExternalBotHandler API that would work via calling the internal_send_message type functions rather than making an API call.

I’d prefer to have a solution that can be explained to Mypy without unchecked casts. Can we make EmbeddedBotHandler subclass ExternalBotHandler, or make them both subclass a common base class?

The last options make the most sense to me.  We'll need to do the main refactor in the python-zulip-api codebase to create the base class there, since that's how the dependencies flow.

Closing, since we've since upgraded past this point.
(Though we should do a new release).


TypeError: an integer is required

when i start running it,it threw one error to me;
error  log:
./aliyun-exporter --port 9555 --config-file ./aliyun-exporter.yml
INFO:root:Start exporter, listen on 9555
Traceback (most recent call last):
File "./aliyun-exporter", line 11, in
sys.exit(main())
File "/usr/local/python3/lib/python3.6/site-packages/aliyun_exporter/init.py", line 40, in main
start_http_server(args.port)
File "/usr/local/python3/lib/python3.6/site-packages/prometheus_client/exposition.py", line 181, in start_http_server
httpd = _ThreadingSimpleServer((addr, port), CustomMetricsHandler)
File "/usr/local/python3/lib/python3.6/socketserver.py", line 453, in init
self.server_bind()
File "/usr/local/python3/lib/python3.6/http/server.py", line 136, in server_bind
socketserver.TCPServer.server_bind(self)
File "/usr/local/python3/lib/python3.6/socketserver.py", line 467, in server_bind
self.socket.bind(self.server_address)
TypeError: an integer is required (got type str)
promblem:
Is there something wrong with my use? or how  can i use it? my QQ645158469,

Thanks! this is a bug of the exporter I suppose, I will fix it and release a new version😁

Hi @gecailong, I've fixed this bug and release 0.2.2, upgrading the package will fix your problem!


How I can use it with requirejs?

Hi.
I use django, requirejs, gulp and bower in project.
So I try to load this module async like
define(['react-telephone-input'], function(TelInput){
  /* do something */
});

and I get an error Uncaught error: Module name .... include require([]);
I try wrap that in r.js -convert, but I get the same error by deps for this plugin.
Thanks for your attention.

@candyboober Can you provide the complete error?

Closing due to lack of data.


Vac Bans

Basicly just wanted to know like have you calculated the account value with vacs?

because i have 2 vac bans and it says my account is worth 300-750
or something like that

Account value is based on your games, not VAC.


initial sdsc package for better sds testing.

README.md illustrates how to run the test manually. Not running automatically as go test. node_agent_k8s requires more refactoring to be able to set up server within test code, rather than a separate binary cli.
heavily influenced by asdc.go. reason to not extending adsc.go is two reasons

citadel agent right now is not ads server, adsc is targetted as adsc/pilot.
we plan to add more features in this client mostly for cert related.
duplication is not a lot.

https://github.com/istio/istio/issues/14199

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: incfly
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

security/OWNERS [incfly]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Adding @JimmyCYJ since who is most familiar with SDS client real implementation, Envoy.

@incfly: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/integ-pilot-k8s-presubmit-tests.sh
13121ddc0174ea3337f301f2fc2057a0b12eedd4
link
/test integ-pilot-k8s-presubmit-tests-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


Allow JSON to be passed as a String to SchemaMapper

This is a proposed fix for #255 to allow example JSON to be passed to SchemaMapper as String. Currently it needs to be passed as an URL which is not always convenient. Fix #221 only added support for JSON schema. This PR adds support for example JSON as well.

Thanks a lot for submitting this, I've made some minor review comments. If you fix these up, I will merge and release this in 0.4.19.

@joelittlejohn I have fixed code as per your comments. Please review. Thanks!

Thanks @raks81. One final step, please squash these commits into one.

@joelittlejohn I have squashed the commmits. Please review. Thanks!

:+1:


how to encode binary data into QRcode?

how to encode binary data into QRcode?

Hi, could you please explain the use case for this?


Lexer ends tag when attribute value contains ">"

Take a look at this fiddle

This is because the lexer does not properly detect the tag when the value of an attribute has a ">" in it.

Should be working with v1


Mac App from URL doesn't work

I used your site to convert a url into a Mac App.  It opens this:

It doesn't load the URI at all.  However, if I show package contents on OSX and go into Contents --> MacOS --> nwjs.exec ....the url opens just fine:

What am I missing here?

What's the url?

Any url that I put in there (even http://google.com)

I tried on another system at work, and the same.  I was thinking it might have been local settings on my machine.  Are you able to replicate the same issue?

I haven't received this problem at all. Can you by any chance record the process you're doing to export? That way I can resolve this for you.

 Is this still an issue or can I close?