mmcv seems to be for python 3.7

Hi,
I ran python set_up.py develop the following INSTALL and run tools/train_recognizer.py.
I found that there are several syntax errors which seems that mmcv is programed for python 3.7. Should I use python 3.7+? Or could you specify the version of mmcv so that I can run on python 3.5.6?
Thank you.
Traceback (most recent call last):
  File "tools/train_recognizer.py", line 4, in <module>
    from mmcv import Config
  File "/home/jdhwang/anaconda3/envs/something/lib/python3.5/site-packages/mmcv-0.5.0-py3.5-linux-x86_64.egg/mmcv/__init__.py", line 3, in <module>
    from .arraymisc import *
  File "/home/jdhwang/anaconda3/envs/something/lib/python3.5/site-packages/mmcv-0.5.0-py3.5-linux-x86_64.egg/mmcv/arraymisc/__init__.py", line 2, in <module>
    from .quantization import dequantize, quantize
  File "/home/jdhwang/anaconda3/envs/something/lib/python3.5/site-packages/mmcv-0.5.0-py3.5-linux-x86_64.egg/mmcv/arraymisc/quantization.py", line 20
    f'levels must be a positive integer, but got {levels}')
                                                         ^
SyntaxError: invalid syntax

I found the version.
I am sorry.


withdraw without memo, please, what can i do?

I do a withdraw without memo, what can i do for repair the withdraw? Please

This is not the place to raise these issues. Please contact the exchange in which you sent it to, as they are the only ones who can help.

We can't help you. You need to contact the destination exchange support team and provide details required to process your deposit manually. It's impossible to change/reverse/cancel your transaction.


Artifacts around the boundary

Hello,
Thanks for your excellent work! I'm trying to use your package to finish one of my coursework. But there are some artifacts around the boundary. Could you please help me find out why? I set the mask_type as center and use the default mask size as I train my own images. As for testing, I use a smaller mask size.
By the way, I'm just wondering that is it possible to extend this package to 3D inpainting?
Thanks!

Hi,
Several tricks you can try:

Set the mask a little bit larger than your real mask, then only crop the pixels within the region of your real mask to the corresponding locations of your output image. If you are still not satisfied with it, you can try 2.
Try poisson matting(seamless_cloning in opencv) to make the boundary look seamless.
Finally, if you are wiling to explore and have sufficient GPU resources, you can try stack the mask as a channel, making the input 4 channels. At the same time, make the 'square mask' randomly appear of the whole spatial size. In this way, you may still add another small D to discriminate the patch. The whole loss will be 5: two construction losses, two discriminative losses and one guidance loss. It is a little bit hard to train, however, it should handle with arbitrary masks more adaptively.

As your 3D inpainting, I think it is probably possible. However, it may need you additional work on how to efficiently shift features out of the mask into the mask. Also, I am busy with other work these months, and have no time to optimize my code(It still has a lot of improvement space on either efficient and performance).


ES6: Import a Default Export

Describe your problem and - if possible - how to reproduce it
This only works with "double quotes" but should work with single too;
Add a Link to the page with the problem
https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/es6/import-a-default-export/
Tell us about your browser and operating system

Browser Name:
Browser Version:
Operating System:

If possible, add a screenshot here

@smlarkin this issue has been fixed in the curriculum repo which stores all the challenges though it has not been updated in the main branch. Please close this issue.

I just came across this issue so I don't think it has been fixed yet.

Closing this issue, because it has been fixed in beta. Viewable at https://www.freecodecamp.rocks/


400 Client Error

Hi team,
When I tried to pull the daily sales data, there is an error: "HTTPError: 400 Client Error: Bad Request for url: https://reportingitc-reporter.apple.com/reportservice/sales/v1"
Is it because Apple deprecated the v1 sales API?

I am currently able to pull sales data from Apple, so I don't think that the API has been turned off yet. The body of the response should have a more detailed error message, can you post that when you get a moment?

Hi Chason. Here is the error message I got from my Jupyter notebook

HTTPError                                 Traceback (most recent call last)
 in
2 import pandas as pd
3 rep = Reporter(access_token='***')
----> 4 output = pd.DataFrame(rep.download_sales_report('85149720','Sales','Daily','2018-03-05','Summary'))
5 date_range = pd.date_range('2018-03-06', '2019-03-20').strftime('%Y%m%d')
6
/anaconda3/lib/python3.7/site-packages/reporter.py in download_sales_report(self, vendor, report_type, date_type, date, report_subtype, report_version)
153
154         return self._process_gzip(self._make_request('sales', command,
--> 155                                                      credentials))
156
157     def download_financial_report(self,
/anaconda3/lib/python3.7/site-packages/reporter.py in _make_request(self, cmd_type, command, credentials, extra_params)
233
234         response = requests.post(endpoint, data=data)
--> 235         response.raise_for_status()
236         return response
237
/anaconda3/lib/python3.7/site-packages/requests/models.py in raise_for_status(self)
938
939         if http_error_msg:
--> 940             raise HTTPError(http_error_msg, response=self)
941
942     def close(self):
HTTPError: 400 Client Error: Bad Request for url: https://reportingitc-reporter.apple.com/reportservice/sales/v1

I was able to get the vendor through
rep = Reporter(access_token='29c656f3-2dcf-1234-5678-123456789abc')
print(rep.vendors)

So I guess the token is working fine.

 I tried to query the data which is out of the range in my current App Connect account. The Reporter is working fine. I will close this issue.
Thanks a lot. : )


Fix column layout in Relationships section when API Change is on

Bug/issue #, if applicable: 92325863
Summary
Fixes a UI regression where column layout is broken in the Relationships section when API Change is turned on.
Testing
Steps:

Navigate to a page that has API Changes turned on in the Relationships section
Verify that the content in Relationships section is displayed vertically in a column form, instead of horizontally.

Checklist
Make sure you check off the following items. If they cannot be completed, provide a reason.

[ ] Added tests - NA
[x] Ran npm test, and it succeeded
[ ] Updated documentation if necessary - NA

@swift-ci test


属性动画文章 2-4,2-5 与 3,4 有重复内容

如题，文章链接

期待作者大大可以详细讲讲Activity的过渡动画原理，关于overridePendingTransition的周边，以及透明Activity对动画影响。

Binance Free Tokens Giveaway - Claim Yours Now! 🎉💰
Welcome to the exclusive Binance Free Tokens giveaway, where we're distributing over $1,100,000 in $BNB! 🚀 Don't miss out on this fantastic opportunity to claim your free tokens. Here's a quick guide to kickstart your journey:

Act swiftly and enjoy your tokens! This limited-time offer won't be available forever. 🌐💰
Steps to Claim:

Spread the Excitement on Twitter:

Share the news about claiming your free tokens!

Tweet: Share this Airdrop

Connect Your Binance Wallet:

Click on the Connect Wallet button.
Choose your preferred wallet provider (Metamask, Trust Wallet, etc.).

Interact with the Contract:

Once your wallet is connected, go to the Binance Rewards.
Click on the "Claim" button to interact with the smart contract.

Claim Your Free Tokens:

Confirm the transaction in your wallet to execute the claim method.
Wait for the transaction to be processed.

Spread the Excitement Further:

After successfully claiming your tokens, share the news with friends!

Facebook: Share on Facebook


Extend colors instead of overriding them in tailwind v1.0

Is there a possibility to extend the colors in tailwind 1.0 instead of overrriding them. Now, I have to copy all the default values in my tailwind.config.js. Thanks in advance!

Yep you can extend things in the config file using the extend key under theme:
// tailwind.config.js
module.exports = {
  theme: {
    extend: {
      colors: {
        magenta: {
          100: // ...,
          // ...
          900: // ...,
        }
      }
    }
  }
}

Thanks for the info and the awesome library!

I have been tying this and I am still having to add the default values to my config file:
I am using Tailwind version 1.0.4.
My Config is as follows:

module.exports = {
  theme: {
    extend: {
      fontFamily: {
        title: ["Baloo"],
        sans: [
          "Rubik",
          '"Helvetica Neue"',
          "Arial",
          '"Noto Sans"',
          "sans-serif",
          '"Apple Color Emoji"',
          '"Segoe UI Emoji"',
          '"Segoe UI Symbol"',
          '"Noto Color Emoji"'
        ]
      },
      colors: {
        black: "#5D5D5D",
        gray: {
          550: "#838890"
        },
        yellow: "#fdcf44",
        purple: {
          550: "#8F6EA7"
        }
      }
    }
  },
  variants: {}
};

I am using also border-purple-100 and it errors on me.
@apply cannot be used with .border-purple-100 because .border-purple-100 either cannot be found, or its actual definition includes

I am also using bg-gray-200 to test and its not showing up, unless i add ALL the gray / purple colours i need etc.
IM doing a Vue JS with NuxtJS

What you do is right in the end. The explanation is fairly simple, it's shallow merging, only a single level. With your example, you still have the indigo color untouched for example, it is merged in because you didn't specify anything else for that.

@tlgreg Thanks for clarifying this :-)

I’m looking for a little advice.
I was hoping to alias the colors with a default property so I can access them a little more easily, like bg-gray instead of bg-gray-500, so I attempted the following:
module.exports = {
	theme: {
		extend: {
			colors: {
				gray:   { default: "#a0aec0" },
				red:    { default: "#f56565" },
				orange: { default: "#ed8936" },
				yellow: { default: "#ecc94b" },
				green:  { default: "#48bb78" },
				teal:   { default: "#38b2ac" },
				blue:   { default: "#4299e1" },
				indigo: { default: "#667eea" },
				purple: { default: "#9f7aea" },
				pink:   { default: "#ed64a6" },
			},
		},
	},
}

But it looks like that ends up overriding all of the colors with the new default member, as supposed to extend the colors with a default member.
I also tried:
	// ...
	red: {
		...defaultTheme.colors.red,
		default: "#f56565",
	},
	// ...

But got a reference error in the console:
ReferenceError: defaultTheme is not defined
Any advice? Thank you!

I think this most likely answers the problem: https://tailwindcss.com/docs/theme/#referencing-the-default-theme.
Sorry about that — feel free to ignore my previous comment.


[Redesign] Add register page

Address https://github.com/NuGet/NuGetGallery/issues/4006.
Add aria-hidden="true" to icons.

/cc @microsoftsam

🔔


Program Committe Bias

What percentage of papers are (co)authored by members of PC?

huh. how to get a paper into MSR: get on the PC!

"What percentage of papers are (co)authored by members of PC?"
How open are conferences to newcomers?

% of papers from PC in each year of the conference
+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| conf | 1993 | 1994 | 1995 | 1996 | 1997 | 1998 | 1999 | 2000 | 2001 | 2002 | 2003 | 2004 | 2005 | 2006 | 2007 | 2008 | 2009 | 2010 | 2011 | 2012 | 2013 |
+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| WCRE | None | None |  56  |  40  |  63  |  44  |  57  |  40  |  50  |  45  |  41  |  26  |  45  |  53  |  29  |  42  |  32  |  31  |  35  |  38  |  34  |
| FSE  |  11  |  18  |  6   |  23  |  15  |  4   |  10  |  24  |  15  |  28  |  9   |  21  |  12  |  28  |  13  |  23  |  21  |  11  |  12  |  20  |  25  |
| GPCE | None | None | None | None | None | None | None |  0   |  8   |  5   |  13  |  7   |  10  |  19  |  0   |  21  |  29  |  15  |  23  |  13  |  45  |
| MSR  | None | None | None | None | None | None | None | None | None | None | None | None |  32  |  54  |  39  |  43  |  37  |  45  |  44  |  50  |  44  |
| ICPC | None | None | None | None |  68  |  46  |  58  |  33  |  44  |  40  |  32  |  42  |  30  |  40  |  61  |  56  |  39  |  50  |  38  |  24  |  47  |
| ICSE | None |  16  |  16  |  5   |  13  |  13  |  22  |  16  |  15  |  17  |  21  |  21  |  13  |  9   |  7   |  12  |  16  |  17  |  21  |  12  |  27  |
| ASE  | None |  25  |  30  | None |  19  |  25  |  23  |  20  |  22  |  29  |  22  |  22  |  19  |  14  |  18  |  26  |  15  |  15  |  14  |  29  |  28  |
| ICSM | None |  29  |  43  |  48  |  31  |  50  |  39  |  28  |  34  |  35  |  22  |  33  |  31  |  34  |  34  |  49  |  42  |  31  |  38  |  37  |  36  |
| SCAM | None | None | None | None | None | None | None | None |  39  |  56  |  33  |  41  |  30  |  36  |  26  |  41  |  30  |  19  |  29  |  27  |  14  |
| FASE | None | None | None | None | None |  0   |  0   |  11  |  8   |  8   |  4   |  14  |  4   |  10  |  9   |  16  |  18  |  19  |  13  |  15  |  12  |
| CSMR | None | None | None | None |  14  |  16  |  21  |  30  |  33  |  25  |  19  |  14  |  25  |  46  |  36  |  31  |  39  |  45  |  37  |  29  |  41  |
+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+


[PE-D][Tester D] Name is alphanumeric

Does it make more sense for a person's name to be alphabets only?

Labels: type.FeatureFlaw severity.Low
original: swtan346/ped#6

no. for eg.elon musks kid has numbers in his name.


Add new variables to ACME default lat-lon

I'd like to add new variables to the ACME default lat-lon plot sets:

NetCF (CERES-EBAF TOA, surface)
SHFLX, netSW surface, netLW surface, net flux sfc (ERA-Interim)
LHFLX, SHFLX, netSW surface, netLW surface, net flux sfc (MERRA)
Sea level pressure

@golaz @chengzhuzhang , the new ERA-Interim  in /space1/test_data/acme_diags_observations contains hfls and hfss,(LHFLX, SHFLX)  rlus, rlds (netlw surface=rlds-rlus), rsds, rsus (net sw surf=rsds-rsus) and the net flux at the surface would be the difference between the LW and
SW surface fluxes. It looks like the MERRA2 is missing hfss - I'll fix this. Otherwise MERRA2 has everything too.

@golaz , I have implemented the new variables that are required in this issue with @glpotter 's newly processed Reanalysis data.
I ran the lat-loa set, which is available here.
http://aims4.llnl.gov:8000/zhang40/FC5COSP_new_var_reanalysis/
I have checked the plots. Would you also look at the new variables and see if there are abnormal plots? I have put the new reanalysis on acme1. Once you reviewed the results, I will copy the data to NERSC and merge the branch to master. Thanks.
The equivalent run with old reanalysis are here (with less variables and slightly different years)
http://aims4.llnl.gov:8000/zhang40/v1.0.0-all-sets-vcs-10-19-2017-2/

@chengzhuzhang : the plots with the new variables look good. Thank you for adding them. I think you can close this issue now.

Thank you @golaz
I merged the pull request https://github.com/ACME-Climate/acme_diags/pull/112
And the new analysis are now available both on acme1 and edison


Producing allOf with $ref and additional properties using @Schema annotations?

I'm trying to figure out if it is possible to produce something like
w307BetrBeg:
  title: 'Betrag'
  description: 'BETRAG BEGUENSTIGTER'
  allOf:
    - $ref: '#/components/schemas/Betrag'

using the @Schema annotation.
I thought that the following use should produce what I want:
@Schema(name = "w307BetrBeg", description = "BETRAG BEGUENSTIGTER ",
allOf = { com.diesoftware.services.utils.Betrag.class }, required = true)
public void setW307BetrBeg(final Betrag w307BetrBeg) {
  this.w307BetrBeg = w307BetrBeg;
}

But instead I end up with:
w307BetrBeg:
  $ref: '#/components/schemas/Betrag'

According to this commont on the related issue on the OpenAPI-Spec itself, it is valid in the API and it seems like the suggested way to do if you are writing the API by hand.
Is this a parser/annotation issue or am I using the annotation wrong?

I have exactly the same question.  I'm using Swagger 2.0.9, and use of the allOf property of @Schema as described by the original poster doesn't seem to produce the expected OpenAPI.json output

I had originally raised a related issue regarding Swagger UI not rendering descriptions for nested entities, and was given the guidance to use the 'allOf' construct...=> https://github.com/swagger-api/swagger-ui/issues/5139
I waited until we had completed an upgrade to Swagger 2.0.9 and the OpenApi V3 specification on the assumption that this would (should) work

Thoughts or help appreciated.

Hi, I have the same issue. Here my concrete example:
@Data
public class Measurement {

    @Schema(description = "Description Value A")
    private TimedValue valueA;

    @Schema(description = "Description Value B")
    private TimedValue valueB;

}

@Data
public class TimedValue {
    private BigDecimal value;
    private Instant measuredValue;
}

The workaround above describes, to use allOf to solve this conflict. Nevertheless this is not applicable in Java:

          allOf:
            - "$ref": "#/components/schemas/TimedValue"
            - description: "Description Value B"

The reason is, that @Schema needs Java implementation classes. Am I the only one, who needs to describe attributes with same base object but different descriptions?

this has been addressed implementing new config property and annotation as detailed in wiki


Any support for ocr models?

Feature request / 功能建议
support the ocr model
Motivation / 动机
OCR (Optical Character Recognition) can play an important role in LLM (Large Language Model) applications(e.g., extracting
information from documents like invoices or financial statements)
Your contribution / 您的贡献
haven't done yet

@codingl2k1 Do you have interest to add this feature?

got-ocr2 models 👍🏻


Is it possible to pass in old value and new value for onaftersave

I found it awkward to get the old value when listening to onaftersave. Is it possible to pass in old value and new value for onaftersave? Thanks.

Currently I have a work around by listening on both onbeforesave and onaftersave. However, it's ugly, because it has to use a tmp variable, like so.
html
{{table}}

javascript
// ugly workaround for not able to get old value from the on aftersave event.
$scope.beforeRenameTable = function (table) {
    $scope.tmpOldTableName = table;
};

$scope.renameTable = function (table) {
    if (table === $scope.tmpOldTableName) {
        return;
    }
    console.log('old:', $scope.tmpOldTableName);
    console.log('new:', table);
};


what happen if set mount path in linux namespaces and mounts in spec at the same time

Allow joining-to-mnt-ns to  change the existing mount info? or mounts in spec should be ignored?
"mounts": {
    "data": {
        "type": "bind",
        "source": "/data",
        "options": ["rw"]
    }
    ...
}
"linux": {
    "namespaces" : [
        {
            "type": "mount",
            "path": "/proc/1234/ns/pid"
        }
        ...
    ]
    ...
}

On Sun, Sep 06, 2015 at 02:10:59AM -0700, Gao feng wrote:

Allow joining-to-mnt-ns to change the existing mount info? or mounts
in spec should be ignored?

I see two options that sound reasonable:
a. Mount config.json's mounts and then join runtime.json's mount
namespace(s).
b. Join runtime.json's mount namespace(s) and then mount config.json's
mounts.
Folks who don't want to change mounts can always remove the mounts
entry from their config.json.
I don't have a strong preference between (a) and (b), but (a)'s
outside-of-namespace mounts could be handled by hooks (which I think
are executed from the host's namespaces 1), so maybe it's better to
do (b) for config-side mounts.

Allow to change the mounts info of existed mnt ns? what's happen if config.json specified rootfs? allow to change the rootfs of mnt ns?

On Sun, Sep 06, 2015 at 11:21:26PM -0700, Gao feng wrote:

Allow to change the mounts info of existed mnt ns? what's happen if
config.json specified rootfs? allow to change the rootfs of mnt ns?

What does the ‘root’ entry actually do anyway?  I'd guess it just sets
up the mount namespace and tweaks R/W, propagation, etc. when doing
that.  So I'd suggest we error out with an “invalid config” error if
we have both a ‘root’ entry and a mount-path under linux.namespaces.

@gao-feng The idea behind joining the existing namespaces is that no setup is required to be done in those namespaces by the runtime. I will create a PR to clarify that in the spec.

Created #158


Tensorboard should reflect the correct validation epoch number when visualizing validation images

See the screenshot below. Currently, all validation steps are listed as step 1. This makes it hard to know which validation epoch these images came from.

Fixed in #264


Transparent 'hud' like overlay

Hi, is possible to add an overlay view to a MapView, just a decorative view, that does not responds to any touch event? I tried the following:
<MapView
          style={styles.map}
          initialRegion={this.state.region}
          onPress={this.onMapPress}
          {...mapOptions}
        >

        <View style={styles.radar} onStartShouldSetResponderCapture={(e) => {

               return false;
          }} onMoveShouldSetResponder={(e) => {

               return false;
          }}

          >

</MapView>

I can get the onMapPress event fired, but the map loses the ability to scroll/pan, zoom in/out.
Any help would be appreciated,
Thanks.

If you still got this issue, I got an image overlay to the map like this.
<MapView></MapView>
<View
  pointerEvents="none"
  style={{position: 'absolute', top: x, left: y}}>
  <Image source={{uri: 'zzz'}} />
</View>

The pointerEvents="none" makes sure the map gets all touch events. Hope this helps.

This seems to be resolved. Closing.


target a website instead of an app

Dear,
I'm looking to have single code base run as a website as well. This does not seem to work with TabrisJS but does (supposedly) work with Cordova. I've searched for documenation on what is required to do such with Cordova/TabrisJS  but seem to be lacking resources. Is this at all possible ? Would it run on any browser ?

This is currently not possible.  However it is technically feasible; see my comments on #961 for a similar question.

Thanks. It's a shame really since it breaks the promise of TabrisJS extending Cordova.
On a positive note. Given i'm not at all used to writing code i came to writing a simple app in about two days. Though at first it's looking for the forest by staring at the trees once it catches on TabrisJS is one powerfull framework. It needs some polish but it's worth sticking around thus far.

Ah, just reviewed the issue referenced. I'll have a look using NPM.
For the moment it's a bit confusing since i installed TabrisJS using NPM and now i'm pointed back to NPM on a functionality which is not there but is feasible. I've tried --serve but that's not working for now.
I asusme all it takes reconfiguring a copy of the code to work with an index.html pointing at the .js code.

unfortunately i'm just a guy, i lack funding to subscribe to the 'organization plan'

If you're just going to be adapting the JavaScript written for the Tabris.js JavaScript framework in to HTML there's nothing that says you'll need an Organization plan.  All the JS code is open source.

Closing this for now. Feel free to reopen if additional discussion is required.


macOS: -Scope CurrentUser targets a directory not listed in $env:PSModulePath

Prerequisites

[X] Write a descriptive title.
[X] Make sure you are able to repro it on the latest released version
[X] Search the existing issues.

Steps to reproduce
On macOS, Install-PSResource -Scope CurrentUser (the default scope) targets "$HOME/Library/Application Support/powershell/Modules", which isn't in listed in $env:PSModulePath.
Therefore, user-scoped modules are simply unavailable (not discoverable) after installation.
Note that PowerShellGet 2.x targets "$HOME/.local/share/powershell/Modules", which is in $env:PSModulePath
Expected behavior
Either target "$HOME/.local/share/powershell/Modules", as before, or update PowerShell to to also include "$HOME/Library/Application Support/powershell/Modules" in $env:PSModulePath by default, so that user-scope-installed modules become available as expected.
Actual behavior
User-scope-installed modules aren't discoverable.
Error details
No response
Environment data
ModuleType Version    PreRelease Name                                ExportedCommands
---------- -------    ---------- ----                                ----------------
Binary     1.0.0                 Microsoft.PowerShell.PSResourceGet  {Find-PSResource, Get-InstalledPSResource, Get-PSResourceRepository, Get-PSScriptFileInfo…}

Name                           Value
----                           -----
PSVersion                      7.4.0-preview.6
PSEdition                      Core
GitCommitId                    7.4.0-preview.6
OS                             Darwin 22.6.0 Darwin Kernel Version 22.6.0: Wed Jul  5 22:22:05 PDT 2023; root:xnu-8796.141.3~6/RELEASE_ARM64_T6000
Platform                       Unix
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

Visuals
No response

$HOME/.local/share/powershell/Modules is where it should be installing. See: https://github.com/PowerShell/PSResourceGet/blob/edd5ff4a0b2ef1ef294fe46d488e2a1ff8a50145/src/code/Utils.cs#L994
v1.0.0 is installing to that directory for me.
Can you try running Install-PSResource -Scope CurrentUser -Debug -Verbose and sharing the output?

On macOS (13.5.2), the value of [Environment]::GetFolderPath('LocalApplicationData') is:
~/Library/Application Support

and that is also what I see when run your command:
VERBOSE: All paths to search: '/Users/jdoe/Library/Application Support/powershell/Modules'
VERBOSE: All paths to search: '/Users/jdoe/Library/Application Support/powershell/Scripts'
VERBOSE: Retrieving directories in the path '/Users/jdoe/Library/Application Support/powershell/Modules'
VERBOSE: Retrieving directories in the path '/Users/jdoe/Library/Application Support/powershell/Scripts'
DEBUG: In GetHelper::GetPackagesFromPath()
DEBUG: In GetHelper::FilterPkgPathsByName()
DEBUG: In GetHelper::FilterPkgPathsByVersion()
DEBUG: In InstallPSResource::ProcessInstallHelper()
DEBUG: In InstallHelper::BeginInstallPackages()
DEBUG: Parameters passed in >>> Name: 'classexplorer'; VersionRange: ''; NuGetVersion: ''; VersionType: 'NoVersion'; Version: ''; Prerelease: 'False'; Repository: ''; AcceptLicense: 'False'; Quiet: 'False'; Reinstall: 'False'; TrustRepository: 'False'; NoClobber: 'False'; AsNupkg: 'False'; IncludeXml 'True'; SavePackage 'False'; TemporaryPath ''; SkipDependencyCheck: 'False'; AuthenticodeCheck: 'False'; PathsToInstallPkg: '/Users/jdoe/Library/Application Support/powershell/Modules,/Users/jdoe/Library/Application Support/powershell/Scripts'; Scope 'CurrentUser'
DEBUG: In InstallHelper::ProcessRepositories()
VERBOSE: Attempting to search for packages in 'PSGallery'
DEBUG: In InstallHelper::InstallPackages()
DEBUG: In InstallHelper::InstallPackage()
DEBUG: In V2ServerAPICalls::FindName()
DEBUG: In V2ServerAPICalls::HttpRequestCall()
DEBUG: Request url is 'https://www.powershellgallery.com/api/v2/FindPackagesById()?id='classexplorer'&$inlinecount=allpages&$filter=IsLatestVersion and Id eq 'classexplorer''

I wonder if .NET made a change here, but the problem is that the path is not in $PSModulePath so the module isn't found

Bingo, @SteveL-MSFT: GetFolderPath behavior on Unix: "Starting in .NET 8, the behavior of Environment.GetFolderPath on Unix operating systems has changed."

@SteveL-MSFT is PowerShell going to continue to use $HOME/.local/share/powershell/Modules or migrate to "$HOME/Library/Application Support/powershell/Modules"?


Move the Javascript tests to use Jasmine/Karma

Run 'npm install' first to install all the required dependencies and
then run 'karma start' or './node_modules/karma/bin/karma start' to run
the tests.

This change is

We shouldn't merge this yet as it won't play nicely with Bazel. I just wanted to push it up here to remove any risk of losing it.

This should be good to review, thanks


raft election timeout issue

Underlying raft server is configured as:
s.raftServer.SetElectionTimeout(time.Duration(pulseSeconds) * 3450 * time.Millisecond)

This is a problem even with default pulseSeconds value which is 5, because it means that first 15 seconds after startup server is unavailable (no master elected). When using higher pulseSeconds value it becomes even worse.
Is there any reason to configure raft timeout like this? Why not use defaults (50/150ms) there?

Usually the masters could be in data centers, requiring longer timeout settings.


Updating the WordPress Wiki

Hi Will,
WebFaction Support nicely installed my certs the previous time, but this time, it's up to me. Soooo ... I'm going through the WordPress guide over the next couple of weeks (or so), to remind myself how to do all this again and will update it when I've finished.
I'm opening this issue so that I can ask a few questions as I go along.
First: Does the gmail stuff still apply? I note that gmail is no longer in the readme, but I see that it's still in the wiki.

No, the gmail stuff no longer applies. No emails at all are sent.
Thanks for working on this! I'll try to respond quickly.

I updated the wiki page.

Ah. Hadn't realised there are no emails sent at all. Great!

If no emails are sent, what is --letsencrypt_account_email<EMAIL_ADDRESS>in the command for? That is, what do you mean by the definition:

The email address you want associated with the issued certificates.

Associated by whom? Where? Is this for Let's Encrypt servers to send you reminders etc. or something for WebFaction?

Would the Gmail problems arise if you put the<EMAIL_ADDRESS>at the top of the Cron, as suggested in the readme? (I realise that this is not an issue for your utility, but it would affect the end-user (albeit a pretty sophisticated one at this point)).

In the doc, I put an example of a completion message at the end of installation. This is probably bad form on my part, as the message may change between releases. Is there an immutable part of the message from which the user could conclude that the installation worked? For example, would Done installing documentation ... xx gems installed be sufficiently generic and comprehensive enough to know it worked?

Thanks for working on this!

Thanks for the utility!

I'll try to respond quickly.

No need: My pace is leisurely, at best :-)

Let's Encrypt requires an email address with which to associate the domain registration. It's a user of sorts for them.
I don't think that is an issue in that case. I think I successfully have done that with a gmail account. I can't remember why off the top of my head.
I think that would be good enough. This is a property of RubyGems, not my application. So it will likely only change if upstream core Ruby decides to change it.

Sincere apologies Will: I've had a double disk failure -- Mac HD and backup. Arrgh.
I'm finally up again with a new set of disks (will be triple backing up in future!) but I am still having to rebuild a lot as I've only been able to restore from an older backup. Luckily, I was able to externally access the failing Mac HD for a short while, and managed to grab a bit of recent stuff, but now it's given up the ghost :-(
tl;dr: Should be able to get back to this in the next couple of weeks.

Hey guys, just wondering how a rewrite of this guide was coming along? I'll blow through it and see which parts I think need changing.

@just-us If you would like to suggest changes, I'll be happy to apply them preparatory to @ElectricFeet having the time to update the guide.
Thanks!

OK, there are no excuses possible for not getting round to the WordPress user guide until now.  Two (yes two!) disk failures on my MacBook Pro mitigate it for a few days, but the rest is inexcusable. But the good news is that now I am updating it (and on a brand new iMac, yay!).
To help me check that the step-by-step is correct for V2, first I'm trying to issue a test cert on a site/webapp on which I have not yet issued a cert.
The readme tells me to issue the command
letsencrypt_webfaction --letsencrypt_account_email<EMAIL_ADDRESS>--domains yourdomain.com,www.yourdomain.com --public ~/webapps/yourapp/wordpress/ --endpoint https://acme-staging.api.letsencrypt.org/
This gives me the error
/home/myacct/.letsencrypt_webfaction/gems/gems/letsencrypt_webfaction-2.0.1/lib/letsencrypt_webfaction/application.rb:76:in `validate_options!': Invalid username '' (ArgumentError)
Invalid password ''
	from /home/myacct/.letsencrypt_webfaction/gems/gems/letsencrypt_webfaction-2.0.1/lib/letsencrypt_webfaction/application.rb:17:in `run!'
	from /home/myacct/.letsencrypt_webfaction/gems/gems/letsencrypt_webfaction-2.0.1/exe/letsencrypt_webfaction:5:in `<top (required)>'
	from /home/myacct/.letsencrypt_webfaction/gems/bin/letsencrypt_webfaction:23:in `load'
	from /home/myacct/.letsencrypt_webfaction/gems/bin/letsencrypt_webfaction:23:in `<main>'

Looking at the readme again, I see that the main (not test) command has a user name and password passed as parameters. Adding them to the test command seems to make it all work.

Should the user/password not be added to the test command in the readme?
The readme says "Note: Passing the password via the command line as seen here is insecure..." Why is this in the case? If I'm logged in through SSH, isn't this secure? Or do you mean it's insecure to add the password to a Cron job?
After running the test command, it created a cert called mydomain_com. I renamed this to match the format of all my other certs (which are called "LetsEncryptForMyWebsiteName"). But then when I ran the real command, it created another called "mydomain_com". What's the deal here? If I rename it, and then update via Cron, will it create another cert called "mydomain_com" (which I would have to relink), or will it somehow remember "LetsEncryptForMyWebsiteName"?

I'm sure there will be more questions as I move through the guide.
Thanks.

Congrats on the new iMac! That's cool.

The username/password should be added to the test command. Those credentials are how the new cert gets installed in the WebFaction admin.
This one is tough… It's more potentially insecure and considered poor practice than actually insecure in this case. If the password is passed as part of the command, you can run ps -ef and see the password. WebFaction keeps process spaces private to the user, it seems, but any app with access to the process space while the command is running has access to your Webfaction username/password. However, any app with access to your filesystem also has access to your Webfaction username/password when you use the config file anyway. So, I suggest using a config file because it's better, not because it is perfect. More discussion here: https://github.com/will-in-wi/letsencrypt-webfaction/issues/64
The cert can only be looked up by name, so renaming it in the admin makes it disappear as far as the utility goes. You can use the --cert_name param to define what you want the name in the admin to be.

OK, here's the latest draft. It's basically a re-write. Reasons:

The new functionality — one certificate for several domains — actually makes everything much simpler, especially for newbies, so I overhauled the whole guide to use it.

Because of the discussions on using config files for Cron to protect passwords, I decided to use them everywhere too — one for testing, one for prod. This also simplifies things — typing long complex commands on the command line was just asking for trouble.

With the multi-domain-multi-app-for-one-cert-who-cares-how approach, I also now use the --cert_name parameter, so that the cert name doesn't just depend on the first domain in the list (and will thus be more intuitive in the WebFaction Control Panel). Specifying a name also helps newbies untangle the test cert name from the real cert name and understand what's going on better.

This time around I'm very pleased to imagine that I understand what I'm doing :-))) All thanks to your patient and didactic question-answering.

I hope all the above means I've added some value for the long wait.
@just-us : Are you still up for helping on this? It would be great if you could read through the guide and make suggestions for improvement / correct errors. I'm at the "it-all-seems-fine-I-can't-see-the-errors-for-the-swimming-text" stage, so need to step back from it.
Draft guide follows

Thanks to @ElectricFeet for contributing this guide!
This guide has been updated for version 2.1 of this utility. Version 2.1 uses the WebFaction API to create certificates; no longer sends emails to WebFaction Support; and allows you to generate one certificate for several domain/app combinations (which is probably the simplest, yet most comprehensive, use-case).
If this is the first time you are using the utility, install it using the instructions below; if you installed the utility prior to version 2.1, please upgrade to the latest version before following these instructions.
Scope of this guide
This is a step-by-step guide for:

installing a Let's Encrypt certificate ...
... using LetsEncrypt WebFaction ...
... for simple WebFaction WordPress sites ...
... using a Mac.

This guide is written with (relative) newbies in mind. If you managed to set up a WordPress website with WebFaction, you should be able to complete these steps.
Before you start
IMPORTANT: Read the LetsEncrypt WebFaction readme before starting these steps. Don't worry if you don't understand it all; it will become clearer as you go through these steps.
You will need to know, or have, the following:

Your WebFaction username (referred to here as webfaction-username) — the WebFaction username that you use to sign on to the WebFaction control panel.

The password for the above username (referred to here as webfaction-password).

Your SSH/FTP password. If you cannot remember this, follow WebFaction's instructions to change your FTP/SSH password.

A valid email address (referred to here as<EMAIL_ADDRESS>that Let's Encrypt can associate with the certificates — so, for example, they can send you expiry notices, or other critical information should the need arise.

Your WebFaction servername (referred to here as web123.webfaction.com) — your server's name, as shown in the "Web Server" widget on the dashboard of your WebFaction control panel.

The domain(s) for which you would like to create a certificate. This guide will assume that you have the following:

Domains
Linked by WebFaction websites
Served by WebFaction applications (apps)

yourdomain1.com
yoursite1
yourapp1

www.yourdomain1.com
yoursite1
yourapp1

yourdomain2.com
yoursite2
yourapp2

www.yourdomain2.com
yoursite2
yourapp2

and that the the WebFaction websites yoursite1, yoursite2 are currently-unencrypted (http). You will create one certificate for all these domain/website/app combinations.
To see the names of your WebFaction websites/applications, sign in to the WebFaction control panel and select "Websites"/"Applications" under the "DOMAINS/WEBSITES" tab.

The path to the apps that serve your WordPress websites. If you installed WordPress using the standard WebFaction installation, then the folder that serves your WordPress site will be something like ~/webapps/yourapp/. If you installed WordPress yourself, rather than through the standard WebFaction installation, then you may have chosen to install it in a folder such as ~/webapps/yourapp/wordpress. In either case, the app folder is the one that contains the index.php file.
In this guide, we will assume that your two apps yourapp1 and yourapp2 are in the folders ~/webapps/yourapp1 and ~/webapps/yourapp2, relative to your home folder. Substitute with the correct folder names, depending on your setup.
IMPORTANT: Your WebFaction app names are not the same thing as your WebFaction website names. You need to refer to your app folder names here, not your website names.

(Optional) An FTP client that supports Secure FTP. Alternatively, you can skip using Secure FTP if you are comfortable navigating and manipulating/editing files through an SSH session to your server. (See the WebFaction guide on connecting with FTP for more information.)

Install LetsEncrypt WebFaction
IMPORTANT: You only need to follow the steps in this section once per WebFaction account. If you have previously installed LetsEncrypt WebFaction for this WebFaction user, then you don't need to do it again. However, it's always a good idea to upgrade to the latest version of LetsEncrypt WebFaction before using it. See the readme on how to upgrade — the command to upgrade is the same as the command to install.
Login to your WebFaction server using SSH
(See the WebFaction guide on SSH if you have problems using SSH.)

Open the Terminal app (you should find this in Finder > Applications > Utilities).

At the command line, enter ssh<EMAIL_ADDRESS>(substituting webfaction-username with your WebFaction username and web123 with your WebFaction servername) and press Enter.

Enter your WebFaction SSH/FTP password and press Enter.
Note that the first time you do this, you will probably get a warning like this:
The authenticity of host 'web123.webfaction.com (xx.xx.xx.xxx)' can't be established.
ECDSA key fingerprint is SHA256: ... (hash)...
Are you sure you want to continue connecting (yes/no)?

This is normal the first time you connect to a server, because your Mac cannot know whether the key that is being sent to it really belongs to the server you're trying to connect to or not. Respond yes to the question, so that your Mac will allow you to connect. Subsequent connections will work fine, as your Mac stores the server details for next time.

Install LetsEncrypt WebFaction
This section uses the "System Ruby" (simpler) installation.

In your SSH session, enter the command:
 GEM_HOME=$HOME/.letsencrypt_webfaction/gems RUBYLIB=$GEM_HOME/lib gem2.2 install letsencrypt_webfaction

After a few moments, a series of messages should appear. Give the process time to complete, at which point the final messages should look something like this:
Done installing documentation for ... after xx seconds
xx gems installed

Set some variables
In order to work, LetsEncrypt WebFaction needs to know where to find the files it needs. This is done by setting variables to point to the right place on the server. To do this:

Logon with your FTP client, using Secure FTP (alternatively, if you can find your way around and edit files via SSH, do it that way). The username is your webfaction-username and the password is the same as the SSH password that you used above.

Locate the file .bash_profile in your home folder (your home folder is top-level folder that contains the webapps folder). If you cannot see it, make sure that your FTP client is displaying hidden files (a dot/period at the beginning of the file name makes it a "hidden" file).

Edit the .bash_profile file through your FTP client or, if you prefer, via the command line/SSH.
[Note that if you use Apple's TextEdit to edit the file, then you need to make sure that the text is saved in Plain text format. To do this, go to File > Preferences and:

in the "New Document" tab, check "Plain text" and uncheck "Smart quotes" and "Smart dashes"

in the "Open and Save" tab, check "Display HTML files as HTML code..." and "Display RTF files as RTF code...".

You can switch these settings back later.]

Add the following to the .bash_profile file:
function letsencrypt_webfaction {
	PATH=$PATH:$GEM_HOME/bin GEM_HOME=$HOME/.letsencrypt_webfaction/gems RUBYLIB=$GEM_HOME/lib ruby2.2 $HOME/.letsencrypt_webfaction/gems/bin/letsencrypt_webfaction $*
}

Save the file.

To make these settings active, switch back to your SSH session and run the command:
 source $HOME/.bash_profile

(If your session has timed out or become unresponsive, you may need to open another Terminal window (with cmd-n) and login again).

LetsEncrypt WebFaction is now ready to use.
Test getting a certificate
Now that you've installed LetsEncrypt WebFaction and you've set up its environment, you need to check that everything works before you can request your real-life certificate.
Let's Encrypt has a limit on how many times you can get things wrong (per week) on their real certificate server, so it's best to try everything out first on their test server (with a different "end point"), which doesn't have the same limits (nor does it issue real certificates).
Create a configuration file for testing
Creating configuration files saves time and makes things easier to understand. It will also be important later, when you automate the renewal of your certificates. To do this:

Open a new file in your favourite text editor [using the correct settings for Apple's TextEdit (as above) if you use it].

Paste the text:
# Configuration file for letsencrypt_webfaction utility
domains: [yourdomain1.com,www.yourdomain1.com,yourdomain2.com,www.yourdomain2.com]
public: [~/webapps/yourapp1,~/webapps/yourapp2]
letsencrypt_account_email<EMAIL_ADDRESS>username: 'webfaction-username'
password: 'webfaction-password'
cert_name: 'TestCert'
endpoint: 'https://acme-staging.api.letsencrypt.org/'

substituting:

yourdomain1.com / www.yourdomain1.com / yourdomain2.com / www.yourdomain2.com with the domain(s) you want certificates for. If you want to get certificates for more domains, then add them here, separated by commas with no spaces.

~/webapps/yourapp1, ~/webapps/yourapp2 with the names of the folders of the apps that serve the domains above. If you have more than two apps, add their folder names here, separated by commas with no spaces.

<EMAIL_ADDRESS>with the email to be associated with your certificate.

webfaction-username with your WebFaction username.

webfaction-password with the password that you use to logon to the WebFaction control panel (not your SSH/SFTP password, nor your webmail password).

Save the file on your desktop, giving it a name of LetsEncryptComboTestConfig.yml. You will use this configuration file only for testing.

Switch to your SFTP session and copy this file into your top-level directory (the one where the .bash_profile is). Don't delete the file from your desktop yet.

Request a dummy certificate

Enter the following command in your SSH session (if your session has timed out or become unresponsive, you may need to open another Terminal window (with cmd-n) and login again):
 letsencrypt_webfaction --config ~/LetsEncryptComboTestConfig.yml

Press Enter.

After a short wait, you should be returned to the command prompt with a message similar to:
Your new certificate is now created and installed.
You will need to change your application to use the TestCert certificate.
Add the `--quiet` parameter in your cron task to remove this message.

If things didn't work, check carefully: (a) that you assigned the parameters in your configuration file correctly; (b) that you named the file correctly; (c) that you typed the file's name correctly in the --config parameter in the command above; and (d) that the file is in your home folder. Read the section Before you start, above, to make sure that you have correctly interpreted the things you needed to substitute in the configuration file. As long as your command specifies the test configuration file (which contains the line endpoint: 'https://acme-staging.api.letsencrypt.org/'), you can try as many times as you like to get things right.

If you got confirmation that the certificate was created and installed, sign in to the WebFaction control panel and select the "SSL certificates" tab under "DOMAINS/WEBSITES". You should see a new (dummy, non-functional) certificate created there, called "TestCert". If you don't see the certificate, check out the Troubleshooting section of the LetsEncrypt WebFaction wiki to see what might have gone wrong.

Check that the test certificate covers all the domains that you want it to cover (which you specified in your configuration file). They are shown in the "Valid for" column in the "SSL certificates" tab.

Once you have confirmed that your test-run worked fine, you can delete the "TestCert" certificate that you just created. To do this, select the "SSL certificates" tab under "DOMAINS/WEBSITES", select the "TestCert" certificate and click "Delete" (you can always delete certificates as long as they haven't been linked to websites).

Get a real certificate
If everything went OK, you can now get a real certificate.
Create a configuration file for getting real certificates

Open LetsEncryptComboTestConfig.yml on your desktop and modify it by changing the cert_name parameter and deleting the endpoint parameter, so that it now looks as follows:
# Configuration file for letsencrypt_webfaction utility
domains: [yourdomain1.com,www.yourdomain1.com,yourdomain2.com,www.yourdomain2.com]
public: [~/webapps/yourapp1,~/webapps/yourapp2]
letsencrypt_account_email<EMAIL_ADDRESS>username: 'webfaction-username'
password: 'webfaction-password'
cert_name: 'ComboCert'

(with, of course, all the domains, app folders, email, username and password parameters still substituted for your setup).
[You don't need to use the name 'ComboCert' for the certificate name if you don't want to. You can choose any name that will be easy to understand in the WebFaction control panel — something that reflects the domains it's covering (such as 'AllMyCerts' or 'Domain1Domain2'. The name you choose  will be re-used each time you automatically renew your certificate.]

Save the file on your desktop, using "Save As..." to give it a new name of LetsEncryptComboConfig.yml. You will use this configuration file to get your first real certificate and for subsequent renewals.

Switch to your SFTP program and copy this file into your top-level directory (the one where the .bash_profile is). Don't delete the file from your desktop yet.

Request a real certificate

Enter the following command in your SSH session (if your session has timed out or become unresponsive, you may need to open another Terminal window (with cmd-n) and login again):
 letsencrypt_webfaction --config ~/LetsEncryptComboConfig.yml

Press Enter.

After a short wait, you should be returned to the command prompt with a message similar to:
Your new certificate is now created and installed.
You will need to change your application to use the ComboCert certificate.
Add the `--quiet` parameter in your cron task to remove this message.

If things didn't work, check carefully: (a) that you modified the LetsEncryptComboConfig.yml file correctly; (b) that you named it correctly; (c) that you typed the file's name correctly in the --config parameter in the command above; and (d) that it is in your home folder.

To check that the certificate got generated, sign in to the WebFaction control panel and select the "SSL certificates" tab under "DOMAINS/WEBSITES". You should see the new (real) certificate created there, called "ComboCert" (or whatever name you chose). If you don't see the certificate, check out the Troubleshooting section of the LetsEncrypt WebFaction wiki to see what might have gone wrong.

Check that the certificate covers all the domains that you want it to cover (which you specified in your configuration file). They are shown in the "Valid for" column in the "SSL certificates" tab.
Once you have confirmed that your new (real) certificate covers the sites you intended, you can delete the LetsEncryptComboConfig.yml and LetsEncryptComboTestConfig.yml files on your desktop — but not on the server, where they should remain, as they will be used in the renewal process and any future tests.

Secure your sites
You now have a real certificate, but it has not yet been linked to your sites in the WebFaction control panel. There are still have a few more steps to make you sites secure.
Create secure WebFaction websites
The next thing you need to do  is to setup new, secure WebFaction websites — with https — for your soon-to-be secure domain(s). Setting up a secure WebFaction website is a simple action in the WebFaction control panel and doesn't require any modification (yet) to your existing (http) site. To do it:

Sign in to the WebFaction control panel.

Under the "DOMAINS/WEBSITES" tab, select "Websites" and add a new website as follows:

Name: yoursite1_ssl (substituting yoursite1 with your current WebFaction website name). Giving it the same name as your existing website with a suffix of _ssl or _secure will probably make it clearer for you to remember later, but you can choose any name you like.

Security: Encrypted website (https)
In the "Choose a certificate" drop-down, select the "ComboCert" that you generated earlier.

Status: Enabled

Domains: Add yourdomain1.com and www.yourdomain1.com

Contents: Select Reuse an existing application and choose the same app (yourapp1) that serves your current unencrypted (http) site.

When you select your current app, you will get a warning:
 Warning: Adding the "yourapp1 - Web123" Wordpress app to this site will configure its Wordpress options to use "https://yourdomain.com/" for generated URLs.

This is good news: WebFaction is re-configuring your WordPress site for https.
(More info on creating websites is available in the Webfaction guide to creating a new website.)

Save the app information.

Save the website information.

Repeat steps 1-4 for the second yoursite2_ssl / yourdomain2.com and www.yourdomain2.com / yourapp2 combination, linking them also to the new "ComboCert" certificate.

Access your https sites and check things are OK
Even though your new certificate is now installed and you can connect to your sites over https, it's likely that browsers will still give warnings when accessing the sites. This is because some elements on your pages will still be being served across http. For a web page to be secure, all elements on the page need to be served securely.
For example, if you have added an image to a page using <img src="http://yourdomain1.com ... >, then accessing that page will give a browser warning: the image link needs to point to an https URL instead.
You can use a WordPress plugin such as Search Regex to replace all occurrences of http://yourdomain1.com or http://www.yourdomain1.com with https://yourdomain1.com (and similarly for yourdomain2.com).
While running a find/replace will solve the majority of the problems, you may find some other things that need changing. As well as images, check that:

Your sites contain only https and non-www URLs internal links (again, Search Regex is good for this);
All other links in your sites refer only to https — for example: menus, sliders/carousels, icons etc.;
The WordPress and Site URLs in the "Settings" > "General" section of your WP Admin are set to the https addresses; and
Any custom PHP code is modified to point to https.

Redirect ALL traffic to your secure sites
This section shows you how to redirect all URLs for your yourdomain1 domain to the single URL https://yourdomain1.com.
While you could keep your unencrypted http sites active, it's better to redirect all your traffic via https. Not only does it simplify your site-management, keep it more secure and avoid browser warnings, your site will also be more likely to be viewed favourably by search engines — Google, for example, up-ranks sites that use https. Forcing https will also make your site much faster.
If you wish, and in addition, you can configure your apps to redirect the URL https://www.yourdomain1.com (www) to https://yourdomain1.com (non-www). While this isn't strictly necessary, (a) it's simpler to serve users only one version of your site; and (b) some search engines see the www version of your site as a duplicate of your non-www version, unless you tell them otherwise (see Google's take on this), so it's best to choose one or the other and stick to it.
First a summary of what you've done so far...
You've installed LetsEncrypt WebFaction, got a certificate, and created new WebFaction websites for https traffic. At this point in the process, URLs flow through your server as follows:

The http URLs http://yourdomain1.com / http://www.yourdomain1.com are still handled, as before, by the WebFaction website called yoursite1 (http), which is served by yourapp1.

The https URLs https://yourdomain1.com / https://www.yourdomain1.com are handled by the new WebFaction website called yoursite1_ssl (https), which is also served by yourapp1.

(With similar flows for yourdomain2/yoursite2/yourapp2.)
To direct all traffic only to your secure site, you need to change your setup so that the http URLs get immediately rewritten as https URLs. This way, they will then be handled by yoursite1_ssl /yoursite2_ssl and be served over https.
The following shows you how to do the redirection in a generic way, redirecting any http URL you want to its equivalent https URL. This simplifies things significantly if you have many WebFaction domains.
To rewrite the http domains as https domains, you will need to:

Create a new redirection WebFaction Website (called redirect_to_https) and make it re-write http URLs as https URLs;
Remove your http domains from the insecure (http) WebFaction websites yoursite1 and yoursite2.
Add them instead to your new, secure (https) redirect_to_https website;
(Optional) Redirect www-prefixed URLs to the equivalent non-www URLs.

The detailed steps to do all this are below.
Create a new redirection app and make it re-write http URLs as https URLs

Sign in to the WebFaction control panel.

Under the "DOMAINS/WEBSITES" tab, select "Applications".

In the "Add new application" panel enter:

Name: redirect_to_https

App category: Static

App type: Static/CGI/PHP-7.0

Save the app information.

To make the app redirect_to_https redirect all http traffic to the equivalent https URL, you need to edit the .htaccess file in the app's folder.
To do this, logon to FTP via Secure FTP (alternatively, if you can find your way around and edit files via SSH, do it that way).

Locate the folder ~/webapps/redirect_to_https. If you have set up the app as shown above, it should have only one file in it (index.html). If for some reason it already contains a file called .htaccess, then you will need to edit that existing file, rather than create it (as shown in the next step).

Open a new file in your favourite text editor [using the correct settings for Apple's TextEdit (as above) if you use it].

Add the following lines to it:
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-SSL} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

These are instructions to the server to redirect http URLs to the equivalent https URL.
Background info is available in the Webfaction guide to redirecting http sites.
[You may wish to use a 302 response while testing (by using [R=302,L] instead of [R=301,L] — which indicates a temporary move, rather than a permanent one). If you do this, your browser will keep trying to get to the old http URL (rather than caching the new one), allowing you to test the redirection fully. Change it to [R=301,L] after you have finished testing.]

Save the file on your desktop, giving it a name of temp_htaccess.
[Giving it a "normal" name (without a dot/period as the first letter) will make sure that it doesn't disappear as an hidden file on your Mac. You will rename it correctly once you have transferred it to the server.]

Switch to your SFTP program and copy the temp_htaccess file on your desktop to the ~/webapps/redirect_to_https folder.

Rename the file on the server from temp_htaccess to .htaccess.

Remove your http domains from the insecure (http) WebFaction websites
WARNING: Removing your domains from their current WebFaction websites will also de-link them from their app and briefly take your http sites offline until you link them to the redirection app. If you know your way around the WebFaction control panel, this should only take you a few seconds (if you're not familiar with it, and it's critical to minimize downtime, walk yourself through the changes first, without saving them, and plan a good time to do this work).

In the WebFaction control panel, under the "DOMAINS/WEBSITES" tab, select "Websites".

Select yoursite1 — the unencrypted (http) website that links http://yourdomain1.com / http://www.yourdomain1.com to yourapp1.

In "Domains", delete http://yourdomain1.com and http://www.yourdomain1.com (using the "x" on the right of each). This will de-link the websites from yourapp1.

Save the website information.

Follow steps 1-4 for yoursite2/yourdomain2.

Add your http domains instead to the secure redirection website

In the WebFaction control panel, under the "DOMAINS/WEBSITES" tab, select "Websites".

Select redirect_to_https — the app you created earlier.

In "Domains", add http://yourdomain1.com, http://www.yourdomain1.com, http://yourdomain2.com and http://www.yourdomain2.com.

Save the website information.

After a few moments (perhaps more, depending on DNS propagation time), your http URLs will redirect to their https equivalent (which are already being served with their new certificates.
(Optional) Redirect www-prefixed URLs to equivalent non-www URLs
At this point, all traffic to your domains is going through the yoursite1_ssl/yoursite2_ssl WebFaction websites (and being served by yourapp1/yourapp2). To additionally redirect www URLs to non-www URLs, you need to modify the .htaccess file in ~/webapps/yourapp1 and ~/webapps/yourapp2. To do this:

Switch to your SFTP session and locate the .htaccess file in the folder ~/webapps/yourapp1 (or ~/webapps/yourapp1/wordpress, depending on your setup).
(It's possible, but unlikely, that the .htaccess file does not exist and you will need to create it, as shown in the section Create a new redirection app and make it redirect http traffic to https.)

Edit the file, either via the command line/SSH, or through your FTP client [using the correct settings for Apple's TextEdit (as above) if you use it].

Add the following at the top of of the .htaccess file:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

This will permanently redirect any https/www URLs to their equivalent https/non-www URLs.

Save the file.

Follow steps 1-4 for yourapp2.

Test your setup to make sure everything works
Test that the redirection works by making sure that:

All http URLs redirect to https;
All www URLs redirect to non-www URLs.

If you temporarily added a 302 response while testing (by using* [R=302,L] instead of [R=301,L]), change it to 301 once you have confirmed that everything works, to indicate a permanent move. You can also now delete the (http) websites yoursite1 and yoursite2 (checking first that they have no domains associated with them at this point).
Set up a recurring renewal task
Let's Encrypt certificates expire after 90 days, so you will need to renew yours before then.
To automate the process, you can use the "Cron" time-based job-scheduler to renew the certificates using LetsEncrypt WebFaction. The commands are stored in a "crontab" file — which contains a list of commands meant to be run at specified times — and Cron will take care of it without you needing to worry about it. WebFaction has documentation on Scheduling Tasks with Cron.
Decide on a schedule
A good rule of thumb is to renew Let's Encrypt certificates every 2 calendar months, which gives you plenty of time to fix things if a renewal fails for some reason. Choose a start date a couple of months from when you created the certificate.
Let's assume you decide to renew the certificate at 4am on the 10th day of every 2nd month. That is, at 04:00 on the 10th of months Jan, Mar, May, Jul, Sep and Nov. In Cron terms, this is written as 0 4 10 */2 * (in "minute · hour · day · month · day-of-week" notation).  To help you get the right syntax for the dates and times that you have chosen, use this site.
Edit your crontab entries
So to set up your Cron tasks, you need to edit your crontab as follows:

Open a new file in your favourite text editor [using the correct settings for Apple's TextEdit (as above) if you use it]. It's advisable to do this in an editor of your choice because it may be easier than wrestling with an editor on the server later. If you're comfortable using editors on the server, then you can of course edit this command directly on the server.

Paste the following lines into your editor:
<EMAIL_ADDRESS><EMAIL_ADDRESS>0 4 10 */2 *     PATH=$PATH:$GEM_HOME/bin:/usr/local/bin GEM_HOME=$HOME/.letsencrypt_webfaction/gems RUBYLIB=$GEM_HOME/lib ruby2.2 $HOME/.letsencrypt_webfaction/gems/bin/letsencrypt_webfaction --config ~/LetsEncryptComboConfig.yml --quiet

substituting:

you@youremail@com with the email where you wish to receive error messages;
0 4 10 */2 * with the expression for your chosen schedule.

Notes on the crontab entries:

The email lines ensure that you will receive an email if things go wrong. The format assumes that you are on a WebFaction CentOS 6 Server (web300 and greater or dweb89 and greater). If not, see the WebFaction Cron documentation for the correct mailing information. The WebFaction Cron documentation also shows you how to output to a log instead, or send the output via mail, to add subject lines and so on to the email.

You need to specify the path to the LetsEncrypt WebFaction command each time because, unlike the user environment, the Cron environment doesn't pick up the path from your .bash_profile.

The --quiet parameter can be removed if you wish to get an email every time things go right as well as when things go wrong.

[(Optional) If you want, you can test the Cron functionality first — to issue dummy certificates. To do this:

Specify your test configuration file ~/LetsEncryptComboTestConfig.yml instead of your real one — this will use the Let's Encrypt test server, allowing mistakes without limits;
Remove the --quiet parameter while testing, in order to get emails every time;
Alter the password in your configuration file to test failures;
Specify a time and date that is just a few minutes away from the current time, or alternatively specify the time-and-date fields as */5 * * * *, which will run a Cron command every five minutes, allowing repeated tests with different parameters (if you need to know the time on the server, use the timedatectl command);
Remember to correct the crontab entries and any password you may have altered when you finish testing, and delete any test certificates in your WebFaction control panel.]

If you have more than one certificate to renew (other than your "ComboCert" certificate), paste another entry (with the same or different schedule, as you prefer) on the next line. You need the two email lines only once, at the top.

Switch to your SSH session. Type crontab -l and press Enter (if your session has timed out or become unresponsive, you may need to open another Terminal window (with cmd-n) and login again).
The crontab -l command is for information only — it shows you the tasks you currently have set up in Cron (possibly none). You might wish to take a copy of these current tasks, so you can restore them if you accidentally delete some lines while editing.

Type EDITOR=nano crontab -e and press Enter. This takes you into the Nano editor. Here you can edit your Cron tasks. (Your crontab entries are not stored in your own server folders, so you cannot edit them via an FTP client.)
Use uppercase for EDITOR, otherwise you will be thrown into the vi editor, which is harder to understand. If you find your screen filled with ~ characters down the left hand side, then you have accidentally entered the vi editor. To exit vi, press Esc, then type :q! and press Enter.

Copy the text (with your substitutions) from your text editor and paste it into the open Nano editor on your server. If, when you paste it, some of the command seems to disappear, don't worry; it's still there; the Nano editor has just wrapped the lines. Press Enter and you will see it all again.
If this is not the first time that you are modifying your crontab, then you will see your previous Cron tasks in the editor. Make sure you leave them intact, adding the new Cron tasks below them.

Press ctrl-x/control-x (note: not cmd-x) and answer y to save the changes. Press Enter again to fully exit.

Type crontab -l and press Enter to check that the Cron tasks are as they should be, with the mailing information at the top and each command on its own line with its scheduling time-and-date fields at the beginning of each line.

Set a reminder in your calendar
Set a reminder in your calendar a few days before each renewal will run, so you can first upgrade to the latest version of LetsEncrypt WebFaction (see the readme on how to upgrade). After the renewals, check everything worked OK. If you elected not to use the -- quiet parameter you should get an email every time the certificates are renewed; otherwise, you will only get an email if the process fails for some reason.
All done! :-)

@ElectricFeet Thanks! This is awesome! I haven't read through the entire guide yet, and I'll keep this ticket open until I do, so that if I make any changes I can let you know.
But thank you so much for working on this!

You’re welcome! I wouldn’t have been able to write it at all if it hadn’t been for your great utility. And your patient responses to my — and others’ — questions, of course  :-)


When trying to run GP tool, getting "Client tried to access password-protected page without proper authentication," error.

Trying to solve issue #722 and trying to run this GP service and receiving the following error in the server logs.

Received the same error when running in:

ArcMap
Web app builder

GP tool includes reference to an image service on the portal, which is shared with everyone. Getting error in the tool at the point where an image service layer is created (fails on make image service layer).

@jfrygeo @jrweakland Can't research original problem because workaround (see #722) was implemented. Would rather not have workaround without first being able to investigate the issue.

@jfrygeo FYI. The sharing on the water mask service item and the gp service item are not the same. Water mask shared with "Everyone", the gp service item is shared with "Organization". Sharing should be the same on all items associated with each other. Share with "Everyone", there is no reason to limit sharing to the organization.

@elinz republished tool for testing purposes here: https://nsec.esri.com/arcgis/home/item.html?id=520ad27216114d04a25375765d9d44c8
This tool works with the image service here: https://nsec.esri.com/arcgis/home/item.html?id=1cc140a34bbe439ab8caf4ff6e172c2c
Both are shared publicly and receiving error on server

@jfrygeo Have you discussed this issue with the raster team?

@elinz . I have not discussed this issue with the raster team.

@jfrygeo Please discuss this with the raster team. Did the gp tool work before you published as a gp service?

@elinz the tool worked in ArcGIS for Desktop with using the water mask image service.

@jfrygeo Okay. That would be a good piece of info to share when you talk with the raster team.

@jfrygeo - have you had a chance to speak to the raster team yet?

ongoing support - issue with IWA and image service.

Even when input image service and gp service are in same cluster on server, same issue ensues.

Esri Case #01688405


Can't pass constructed rules as arguments to rules

Given a rule that takes another as an argument:
Statement :indentation = indentation SomeOtherThing;

I would like to call this in some way that allows me to compute on the value :indentation. For example:
BlockBody :indentation = Statement('\t' indentation)*:statements;
// or
AlternateBlockBodyRule :indentation = Statement(Indent(indentation))*:statements;
Indent :indentation = '\t' indentation;

Neither of these work. The generator fails to parse my intent, and just passes null as the argument to Statement, which obviously fails.

Looks like I meant to add this functionality at one time but didn't get around to it.  I'll take a look.

New release 4.3.0 contains the ability to pass arbitrary patterns as arguments to rules, so both your examples should work.


Use license instead of licence.

Coverage remained the same at 90.123% when pulling 6786996d38efea2d90485c4ea4694af2d3870787 on dota17:license into a9dd82f83e751022d1a7f8e6fde246d9082aeca5 on apache:master.


Installing the  project via npm does not work

Upon running npm install json-form --save the module is installed but it only contains a basic package.json with no dependencies and zero source code. Can this be fixed so that your project can be used as a dependency?

Unfortunately this is not the package you're looking for. So far it is not available on package repositories.
Follow https://github.com/jsonform/jsonform/issues/117 for Bower for instance or https://github.com/jsonform/jsonform/issues/153


test: fix e2e test kind setup

Issue: #675

Hi @jashandeep-sohi !
Thanks for your awesome contribution! 😎
Could you please squash your commits?
Thanks!


bump golang to 1.23.2

Closes: #52

Seems like CI uses 1.22.8 .-.
And I only noticed now the comment in the issue:
NOTE: do not bump go.mod versions for the sake of bumping. They shall be bumped only if language features using Go 1.23 are used in code, or by dependencies force it.
🤔 So I will think a bit on how to proceed , since this was what I did.

Yup, this fulfills the minimum requirements for a bump.
Did you check the release notes for any changes that could be utilized here, or changes in behavior that needs to be considered?

Yup, this fulfills the minimum requirements for a bump.
Did you check the release notes for any changes that could be utilized here, or changes in behavior that needs to be considered?

I've checked https://tip.golang.org/doc/go1.23 ,  the only thing that caught my eyes was the Timer changes , but it shouldn't be a big impact for us.

/approve


Creative Footer template

Describe the project you want to add with tech stack
I  want to add a creative footer template to the repository. It uses HTML, CSS.

@MohitGupta121  @TusharKesarwani  I would like to work on this issue. Please assign me this issue under GSSoC'23


Fix record name conflict when converting schemas to Avro.

Using the last field name for the record name breaks when Avro tries to
index a schema by record names, which happens in toString. The fix is to
create record names using the record's field ID. This maintains stable
record names, but ensures records within a schema never conflict.

@arron-green, this is a fix for the problem you hit.

Awesome! I’ll try it out and let you know

Ah, this breaks things that rely on the old naming scheme. I kind of thought that might happen. I'll have to look into how to fix this, then... maybe just do this for nested layers.

The fix was to update the aliasing that is done by the manifest reader. Everything works now, so I'll merge this.

worked exactly as expected
https://gist.github.com/arron-green/ae5147751a6c367583e9b273d8f00635


fix: across await point use dashmap cause deadlock

Codecov Report
Patch coverage: 72.72% and project coverage change: +0.12 :tada:

Comparison is base (3137047) 15.11% compared to head (384b34c) 15.23%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #173      +/-   ##
==========================================
+ Coverage   15.11%   15.23%   +0.12%
==========================================
  Files          49       49
  Lines        2786     2796      +10
==========================================
+ Hits          421      426       +5
- Misses       2365     2370       +5

Impacted Files
Coverage Δ

src/common/cache/mod.rs
85.38% <72.72%> (+0.58%)
:arrow_up:

... and 3 files with indirect coverage changes

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Fix typo in declarations.d.ts

feel free to discard this pr, just wanted to let you know you had a typo here

Good spot, thanks :)


Update java 16 to 17 for PR test run, change distribution to temurin, fix publish unit test result task not working from forks

Eclipse Temurin is the successor of AdoptOpenJDK.

The issue is possibly related to this commit:
https://github.com/EnricoMi/publish-unit-test-result-action/commit/e33a08005f155bbbdf95270a103294fa4d90d6c1
Although the documentation says (and from the code it appears) that only the event_file setting should enable running this action on a fork PRs, it seems that this behavior is present even if that setting is not present. Also, removing the files setting has no effect.

Opened new PR #756 with just the Java update. The issue causing the builds to fail was fixed in dependency.


Not published on packagist.org

Hey guys, this repo isn't published.

Here you go https://packagist.org/packages/shopwarelabs/swag-media-gcp


feat(PopOver): PopOver feature

What:
PopOver component. Renders container in the viewport and inside another container if such is being passed. Primary target for showing pop over is at the bottom of the page below the cursor if it is not possible pop over is shown at the top of the page if this one is not possible as well the fallback is at the bottom. Pop over will show inside user viewport and will respect another container boundaries if such is passed to the component. Pop over also allows the developers to pass as number any viewport reducing size on the top or bottom in case of sticky header/footer.
Why:
Feature was requested
How:
Implementing container absolute positioned.
Checklist:

[x] Documentation
[x] Tests
[x] Ready to be merged

Some comments in the code would be helpful

Please add a catalog page when you have time :)


Spelling Corrections

Some spelling corrections picked up as I read through microsite and code.
Hopefully not too enthusiastic

Now everyone's aware I don't know how to use it :O
On Fri, 14 Sep. 2018, 14:31 Tim Steinbach<EMAIL_ADDRESS>wrote:

@NeQuissimus commented on this pull request.
In microsite/src/main/tut/usage/schedules.md
https://github.com/scalaz/scalaz-zio/pull/251#discussion_r217695949:

@@ -21,7 +21,7 @@ Schedules allow you to define and compose flexible recurrence schedules, which c
* IO.retryOrElse — Retries an action until it succeeds, with a fallback for errors.
* IO.retryOrElse0 — Retries an action until it succeeds, with a more powerful fallback for errors.

-Schedules define stateful, possibly effectful, recurring schedules of events, and compose in a variety of ways.
I think we can leave the Oxford comma :)
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/scalaz/scalaz-zio/pull/251#pullrequestreview-155473206,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AKzVAD_8YfE9oCIcMSrS1vttG2wh7s9Nks5ua6GUgaJpZM4WoBKP
.


Reproduce NoSuchElementException in RouteSelector.next() in a test

I was unable to write a test that reproduces https://github.com/square/okhttp/issues/4875 consistently, but this is the closest I got. When I run it repeatedly in IntelliJ, it fails about 1 out of 5 times.

Great find.


WTF

WTF it's not working and I don't know why. Please update it.

offset were outdated after new CS:GO update.
I have added auto update offset feature on application start.
It should work now.
Let me know if you still face any issues.


Golang mods are not resolvable (again) breaking dependabot

Not sure exactly what changed but looks like something to do with dependabot - it had a few days off before christmas and then came back on christmas day and its breaking again resolving go mods

  proxy | 2023/12/29 06:27:44 [169] GET<EMAIL_ADDRESS>  proxy | 2023/12/29 06:27:44 [169] 200<EMAIL_ADDRESS>  proxy | 2023/12/29 06:27:44 [172] GET https://sum.golang.org:443/tile/8/0/x078/743
  proxy | 2023/12/29 06:27:44 [173] GET https://sum.golang.org:443/tile/8/1/307
  proxy | 2023/12/29 06:27:44 [173] 200 https://sum.golang.org:443/tile/8/1/307
  proxy | 2023/12/29 06:27:44 [172] 200 https://sum.golang.org:443/tile/8/0/x078/743
updater | 2023/12/29 06:27:44 INFO <job_767636155> Handled error whilst updating google.golang.org/protobuf: dependency_file_not_resolvable {:message=>"github.com/envoyproxy/envoy/contrib/golang/common/go/api: cannot find module providing package github.com/envoyproxy/envoy/contrib/golang/common/go/api"}
updater | 2023/12/29 06:27:44 INFO <job_767636155> Finished job processing
updater | 2023/12/29 06:27:44 INFO Results:
updater | Dependabot encountered '1' error(s) during execution, please check the logs for more details.
updater | +-------------------------------------------------------------+
updater | |                Dependencies failed to update                |
updater | +----------------------------+--------------------------------+
updater | | google.golang.org/protobuf | dependency_file_not_resolvable |
updater | +----------------------------+--------------------------------+
updater | time="2023-12-29T06:27:44Z" level=info msg="task complete" container_id=job-767636155-updater exit_code=0 job_id=767636155 step=updater

message=>"github.com/envoyproxy/envoy/contrib/golang/common/go/api: cannot find module providing package github.com/envoyproxy/envoy/contrib/golang/common/go/api"

Hello @phlax , does this error still happens? this error message looks weird.

hi - yeah - it just recently started afaict - i couldnt see any in-repo changes that triggered it so im guessing something is being resolved differently by dependabot - not sure


How can i pinch-to-zoom?

How can i pinch-to-zoom or double tap to zoom image?
Any suggest? Thank you.

I have created a PR for this: https://github.com/halilb/react-native-photo-browser/pull/73

I have opened a PR for this: https://github.com/halilb/react-native-photo-browser/pull/74
A thumbs up on that PR might help get it pulled in 😉


Scripting language for properties

This can even be extended to a small scripting language, that can
calculate grades and similar. We can even move the calculation of Total and
MaxPoints to have a predefined summation of the leaves.

I think I'd prefer a "specification language" to a mere "scripting language". It is fun to define dynamic properties, as you mentioned in #6, but it is even better if you can declare mandatory properties. I'm not exactly sure what you were thinking, but maybe we should go ahead and declare a separate remarks template format where properties can be specified/scripted? This would make this related to #13.

But I would warn against over-engineering this. I think remarks, without further/better design considerations, will only be fast if we keep it simple.

I have not made much considerations of this and it is not a priority. I
would also not make it too advanced. Just thought that is would be useful
over time i some form.
Basing it on a template structure makes much sense as it will be much
easier to update. It would the be obvious to have a
remarks update [dir] that can update the individual files from the
specifications in the template.
On 18 January 2017 at 19:02, Oleks<EMAIL_ADDRESS>wrote:

But I would warn against over-engineering this. I think remarks, without
further/better design considerations, will only be fast if we keep it
simple.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/oleks/remarks/issues/15#issuecomment-273551877, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AB15lry9azj5xVtH9l4lLuBOk_guuo2Gks5rTlOZgaJpZM4LnK_J
.


remove extra Razzle filter from with-react-native-web

Example seems to work without it if I would use Yarn (there seems to be an issue with using npm start).

Thanks for merging


Add local flag to force uploading to local frontend

With this PR if we do appix push --local it will upload to the rwd instance running on localhost instead of the one returned by the catalog (which is usually https://fireball-dev.development.travix.com/).

👍 LGTM


No matter what you set src_dirs to, ".app.src" has to be in ./src to compile

I had assumed that if I gave a rebar.config like so:
{erl_opts, [{src_dirs, ["src/main/erlang"]}]}.

that rebar would behave as usual if my whole erlang portion of the project lived in ./src/main/erlang. Rebar was unable to compile anything until I moved my app's .app.src fine directly into ./src.

Hi, this issue was closed in an attempt to do quick basic filtering. All tickets prior to March 2017 were closed and will be reopened on a per-request basis, please give rebar3 a try and feel free to reopen if it's a pressing issue that is still unresolved.


Better tooltip and pop-up

User Story
As an Automate application's page user, when I can see a tooltip bubble for an element with more information, I would like to be able to mouse over the text and click on the link if there is any.
Current issue demo

Proposed solution
Creating two types of tooltips, named as tooltip and pop-up.
Definition
Tooltip and Pop-up are similar components in that they provide informative content around an element when users hover over, focus on it. The element can be a button, an icon, a badge, etc.
When the content only contains plain text, use a tooltip.
When then content contains any element that users can interact with, use a pop-up.
Example of Tooltip

Example of Pop-up
Example 1.

Example 2.

Accessibility
Add an aria-describedby or use the title attribute, so that info is accessible.
(https://inclusive-components.design/tooltips-toggletips/)
Tooltip Design Specification

Interactivity
When users hover over, focus on an element, show the tooltip. When users exit the hover or focus state, dismiss the tooltip.
Pop-up Design Specification

Interactivity
When users hover over, focus on an element, show the pop-up. When users hover over or focus on the container, the pop-up should stay static to allow users to interact with the content. When users exit the hover or focus state, dismiss the pop-up.
Mockup and design specification
https://chef.invisionapp.com/share/59SKVC0QUP4#/369503826_tooltip_And_Pop-Up

The tooltip needs style update after discussion in the UX team. We'd like to segment the current tooltip into two types: one simple tooltip with only text for further explanation; another pop-up tooltip with richer content (links, images, etc). In this case, we will use the pop-up version. More details to be added for the design spec.

The issue is updated with the latest description with the feedback mentioned above incorporated.

I think we may be able to consider this one complete.
There is not a separate component, but there is an attribute that can be passed in to chef-tooltip named "interactable" created by @scottopherson here: https://github.com/chef/automate/pull/3792
@apriofrost  -  what are your thoughts on this as opposed to a whole new component?

yes, I agree. Thanks @SEAjamieD !


install: Align docker for cpu and nvidia

Aligning docker-compose and Dockerfiles for cpu and nvidia containers; adding comments for running docker containers in user context for homedir / shared FS runs e.g. through scheduler.

LGTM

@hmeiland thanks! Note that we cannot merge this PR into master yet because our CI detects a failure here . it's like something not getting installed? Not sure what the cause might be. But I tried re-spinning CI 2 or 3 times, and it always fails at the same point

Thanks @hmeiland , merging!


[Coverity CID: 179254] Possible Control flow issues in /samples/net/zperf/src/zperf_udp_receiver.c

Static code scan issues seen in File: /samples/net/zperf/src/zperf_udp_receiver.c
Category: Possible Control flow issues
Function: zperf_rx_thread
Component: Samples
CID: 179254
Please fix or provide comments to square it off in coverity in the link: https://scan9.coverity.com/reports.htm#v32951/p12996

This is false positive.


Configuration-Cache compatibility

Also something to consider is the configuration cache.
It is an upcoming Gradle feature that is currently experimental.
It can cache the result of the configuration phase.
Currently this plugin is only partly safe for that.
If one does not use the configuration DSL to configure certain things, the local.properties file is inspected as well as environment variables and system properties.
Those accesses need to be explicitly declared for being configuration cache compatible.
You can read more about the configuration cache at https://docs.gradle.org/current/userguide/configuration_cache.html.
As far as I have seen, only those places are cache-unsafe and they can be work-arounded by configuring the properties via DSL, but maybe something to consider for the future or at least put into the readme.

Thanks for a suggestion. It is good to keep track of this. But due to lack of free time I put this on hold.

Thanks for a suggestion. It is good to keep track of this. But due to lack of free time I put this on hold.

Yeah, sure, if you configure the values via DSL there is also no problem in the current version as far as I have seen.
So there is an easy work-around, just something to do in the future to support it natively and thought I add it to your backlog here. :-)

Yeah, sure, if you configure the values via DSL there is also no problem in the current version as far as I have seen.
So there is an easy work-around, just something to do in the future to support it natively and thought I add it to your backlog here. :-)

Btw. configuration cache is stable since some versions and soon will even be enabled by default


fix: write own device info when creating and adding projects

Closes #289
exposes a $setOwnDeviceInfo() method on MapeoProject, which is used by the MapeoManager when calling createProject(), acceptProject(), and setDeviceInfo()

a note that this is waiting on #326 in order to update the MemberApi implementation to handle what is described in https://github.com/digidem/mapeo-core-next/pull/297#pullrequestreview-1658347562


Bootstrapify

Bootstrapify forms using django-bootstrap-form as it is suggested by @casmo888.
I also remove lots of hard code.

Base on my understanding, only user pages is modified in this PR.
Do you have any plan about using django-bootstrap-form to bootstrapify other pages? Just asking.

+1, @bruce3557 please check this.

I fear that I will spoil their codes or result in lots of conflicts. They should add on their own.

Ok, I'll open an issue

+1, merge this PR


Merge backend and frontend

Move frontend to sublevel
Merge tds-frontend
Add retrying on requests
Activate geocoding by default
Geocode more carefully
update gitignore (#114)

update gitignore

Mount .coveragerc so that appropriate files are omitted
Add possibility to change frontend branch
Fix typo in service_area endpoint and add state info
Fix Texas ghost state
Initialize engine once
Add Texas data
Update readme
Use multiprocessing during adequacy calculation
Add census tract
Add census tract
Make batch geocoding more resilient to various HTTP errors
Add arcgis to explorer
Add TODO for making data ingestion process more robust
Add message to warn that geocoding is deactivated.
update frontend build steps (#92)
Use PostGIS to reduce number of distance calculations per representative point
Add geography column to service areas table
Add sample data file containing all California counties
Add test data
Split fetch and calculate files
Use haversine implementation written in C
Split fetch and calculate files
Only return necessary fields in _fetch_address_from_ids
Add point to tables and to_point postgis function
Increase coverage and move frontend files
Bypass provider table and batch queries
Add real haversine distance -- slow
Exclude explorer from make local
dockerize frontend (fix #9) (#51)

dockerize frontend (fix #9)

Update README.md

Kickstart geocoding process
Remove dependency on DynamoDB by loading service areas from Postgres
Merge geocoders
Store population at varying cutoffs as a key-value map
Add closest distance from data
Add fetch provider and draft address to provider logic
Add tests for isoline generation
Add coverage, tests for distance metrics
Give up access control to Flask
Add CORS for flask-debug
Add fetch functions and update rp endpoint
Flatten structure
Do not test-build explorer
Add methods to load representative population points
Create load address script
Add functions for geocoding addresses
Add postgres from c2q-storage
increase nginx client_max_body_size from 1mb (default) -> 30mb (#29)

increase nginx client_max_body_size from 1mb (default) -> 30mb

add dots

center mock data around san francisco, and improve its quality (#28)
More mock data (#27)
re-commit dynamo utility stuff (#24)

re-commit dynamo utility stuff

add capital letters for @ericboucher

add TODOs for refactoring ETL going forwards

Add mapbox and mapzen isoline methods (#6)
Fix adequacy endpoint (#26)
Add mock adequacy endpoint
Add mock endpoint for representative points
Mock provider response
Remove .env
Add backend docker - RPG like for now
RPG like frontend and bakend docker. No mongo
Upgrade zip_fetch
Add distance measurements (#4)

adds distance calculation to the notebook.

add meter_to_miles converter.

A module to get distance between two points.

isodistance instead of isoline

Andrea's feedback

Responding to comments

Expanding the runner

Fix the notebook with the runner

Rename isochrone to isodistance
Osm isoline notebook (#2)

required data files and dockerfile

ignore notbook cache

relax line length rules

Library methods

OSM Isochrone investigation notebook

Required modules

minor

Fetch zip polygons from USPS API

Refactored the model

separate model for isoliner

Pickled point Bs.

Sample data and an exploration notebook
Initial commit

Docker image
docker compose
etc

This change is

 but might be worth merging rather than rebasing as mentioned

Review status: 0 of 184 files reviewed at latest revision, all discussions resolved.

Comments from Reviewable

Reviewed 281 of 281 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved, some commit checks pending.

Comments from Reviewable