YADR is slow.

I love this repo, but I've had lots of problems with speed. I've tried on a 3.4ghz iMac and a 2.4ghz 2011 Macbook Pro, and both are sluggish when running commands like irb and rails c. Even with cd, I get a quarter to half second delay. Vim takes about two seconds to start. Is this a sacrifice for the large amount of plugins, or am I getting unusually low performance?
I've also noticed that when text has filled the terminal so that the scrollbar must be used, delays becomes longer.
And again, when I'm using plain zsh or bash I get instant output on most commands. I'm not sure what other information to give at this point so just let me know what you need.

I've also tried Prezto on it's own and it runs great, so I can rule that out as well.

I remember having these problems some two years ago. The number of plugins certainly slows down vim but this issue disappeared when I switched to an SSD.
Probably not the fix you were looking for but doesn't hurt to know :smiley:

I've had this problem on and off over the past few years depending on the changes.  At the moment I'm struggling with it again.  I'll try and figure out how to speed things up and report back.

@portOdin Try this branch: https://github.com/ryansch/yadr/tree/ryansch-fast
It's an old branch without about a years worth of changes.  It seems much faster to me.  If you agree we can bisect from there.

True that, specially after upgrading to El Capitan, vim became quite slow,
haven't had the time to debug it, though.
On Sat, Oct 10, 2015 at 9:19 AM, Ryan Schlesinger<EMAIL_ADDRESS>wrote:

@portOdin https://github.com/portOdin Try this branch:
https://github.com/ryansch/yadr/tree/ryansch-fast
It's an old branch without about a years worth of changes. It seems much
faster to me. If you agree we can bisect from there.
—
Reply to this email directly or view it on GitHub
https://github.com/skwp/dotfiles/issues/661#issuecomment-147093496.

I tried out neovim with latest yadr over the weekend.  I've changed a few of the plugins but other than that it's working beautifully.  I'll post instructions soon.

Ryan, please do!
On Tue, Oct 13, 2015 at 10:26 AM, Ryan Schlesinger<EMAIL_ADDRESS>
wrote:

I tried out neovim with latest yadr over the weekend. I've changed a few
of the plugins but other than that it's working beautifully. I'll post
instructions soon.
—
Reply to this email directly or view it on GitHub
https://github.com/skwp/dotfiles/issues/661#issuecomment-147749891.

I'm going to continue the shakedown cruise before I do.  No blockers yet but some workarounds required.

On fresh install of El Capitan. Running new MBP with SSD. I'm experiencing a slight lag while in input mode, especially when vim is suggesting autocompletions.

@charlimmelman with iTerm2 in full screen, vim running with no splits, do you see any lag when scrolling down a large (few hundred lines) file on high key repeat rate? (~20ms)
Is scrolling affected when the NERDTree panel is open?

@nkgm I installed Karabiner. I set the repeat rate to 20ms. Restarted to ensure. Opened a large ruby file (1480 lines) in Vim / iTerm2. Set to full-screen. Scrolling seems to be nice and smooth. I then opened NERDTree, and it definitely seemed to slow it down a bit, but still useable.

Thanks @charlimmelman. I'm on fresh El Capitan on a 2011 quad I7 MBP. iTerm appears to be consuming twice the CPU (~70%) when scrolling with NERDTree panel visible. Still the lowest CPU I can get on scrolling is ~35%.

@nkgm My major issue is when in insert mode and holding the left arrow down. That can be super slow. But I think it has to do with the amount of files in my buffer. Also, stuff like using ",mc" then crtl+n and then pressing "c" to change more than one instance can literally cause my whole machine to go into seizure :-)

This has been a major blockage for me lately. I completely stopped using yadr/tmux + vim after updating to El Capitan, and switched to Sublime Text 3. I much prefer working from tmux, but the slowness is unbearable, and sometimes, when opening big files, it reaches a point where it's unusable. Sublime is the fastest editor I've ever used and excels at opening big files.
I even thought about completely wiping out El Capitan and switching to Ubuntu on my macbook pro, but while I like Ubuntu, my workstation has been OSX-based for many years, so switching now would take quite a bit of time until I find replacements for all the OSX software I use.
If anyone has any suggestions on how to get yadr/tmux/vim to a usable state (meaning fast as it should be), please share. For now, I've put htem under suspendend animation, as much as I'd like to keep using them.
Obs: I use iterm2.

@ryansch do you have anything on using neovim? I'm also experiencing slowness in vim and was looking into replacing it with neovim.

I’ve been using it as my daily driver since Oct 2015.  Honestly I just need
to clean up my yadr/neovim adapter and push it somewhere.
On June 29, 2016 at 6:56:58 AM, Drew Boshardy<EMAIL_ADDRESS>wrote:
@ryansch https://github.com/ryansch do you have anything on using neovim?
I'm also experiencing slowness in vim and was looking into replacing it
with neovim.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/skwp/dotfiles/issues/661#issuecomment-229363469, or mute
the thread
https://github.com/notifications/unsubscribe/AAI6Xb9DZ3nnV600-MtAh-n1C6t5pGJzks5qQnmqgaJpZM4F9TpR
.

Is it as simple as symlinking .nvim* to ~/.yadr/vim*, or have you done other tweaks as well?

sorry just catching up on here. I've noticed recent slugishness as well. My guess is that it's a combination of various plugins. I haven't tried neovim yet

I've created a gist with my current neovim settings (with yadr installed).
https://gist.github.com/ryansch/e9a8b19dce1926e32ae63ba324e84e79

I'm currently just using Prezto, but I've noticed fasd makes ls sluggish. It sucks, because fasd is a massive time saver. Can anyone recommend an alternative?

Any plan to use neovim?

As far as vim redraws go (equally affects neovim), you might want to check https://github.com/skwp/dotfiles/issues/670#issuecomment-282773995
@katgironpe I've been using neovim for a while now and so far I've observed no discernible speed difference.

@katgironpe yay for neovim!
As @nkgm said, there's no noticeable speed difference in neovim, perhaps only a few neat features here and there, but roughly the same bottlenecks when I started profiling slow processes. On my end, often the culprit is a ruby-related plugin (e.g. tpope/vim-bundler, vim-ruby/vim-ruby, etc.).
For now, I keep 2 rc files: one for YADR + vim & macvim, and another slimmer custom ~/.config/init.vim for neovim, adding stuff from YADR as I see fit.
https://padi.github.io/articles/profiling_vim/

@padi I kind of like Neovim for Ubuntu. Then I am slowly switching to Spacemacs. What I found is I am maintaining my own dotfiles for Ubuntu, which I should not be doing. It's not much effort. There are no significant differences, indeed. I still use this repo for Mac OS X. And sadly, I have to use Atom Editor too. Don't ask me why.

In my fork I'm also using NeoVim, and I also removed many of the ruby plugins, as I'm not a ruby dev and didn't want to clutter my vim config with so many plugins I wouldn't use. And I have not experienced any speed issues.
I encourage everyone in this thread to profile their vim usages in order to help find the (possible) issue and hence help move this thread move forward.
That being said, the biggest speed advantage for me was moving from Ag to RipGrep. The speed was noticeable. Ctrlp was fast even on a friend's non-SSD machine. I think we are almost there. See the PR I just mentioned above... Help is welcome!

Does anyone have a guide to moving yadr to neovim? It doesn't read vimrc by default?

@skwp https://github.com/neovim/neovim/wiki/FAQ#where-should-i-put-my-config-vimrc

@skwp one of the things we'd need to do is update the nvim config path. I also had to change the vundle initialization path, as neovim uses the XDG Base Directory Specification for application
configuration and data file locations.
Some other issues we'd have to solve before moving to NeoVim:

Move away from NeoComplete https://github.com/neovim/neovim/wiki/FAQ#can-i-use-lua-based-vim-plugins-eg-neocomplete
Move away from GUI. NeoVim per se is terminal only. And although there's plenty of GUI implementations out there already, there isn't an official one. So either we'd have to pick one, or decide to move to the terminal.

Personally I'm trying to move to the terminal...

As for a guide of moving Yard to NeoVim... I did it in my fork. But since I decided to stay in the terminal that also meant changing some keymaps to not depend on Cmd key (also thinking about Linux support...).
Also changed some plugins like NeoComplete (to Deoplete), Vundle (to Plug) and many others. After we agree on whether/how to tackle the above points, I could elaborate in more details, maybe a blog post... And then we could cherry pick some commits or create some PRs, one by one...

Also, just so we don't loose sight of the real problem of this thread (YADR being slow), NeoVim won't make things much faster. It's more likely that a (set of) plugin(s) are causing the sluggishness so in order to speed those up (while moving to NeoVim) we would also have to change those plugins for plugins that actually use the advanced features of NeoVim, otherwise I think we might just be inserting another variable in the equation...
In fewer words, we should have other reasons to move to NeoVim instead of just the promise of being (immediately) faster.
IMHO RipGrep and profiling some ruby/rails plugins as suggested above could be promising than the mere switch to NeoVim.

I want to close this issue as it's not really a solvable issue but many things interacting together. We can make efforts to make things faster but we need individual issues opened for specific plugins making things "slow" with specific examples.


[SimpleStore] Ensure Update call doesn't erase existing metadata

In resource.SimpleStore.Update, make a Get call first to get the current metadata (as only the spec is passed), then run the ObjectMetadataOptions on the resulting metadata. Otherwise, the subsequent PUT call in the underlying Client erases the existing non-managed metadata (such as finalizers).

@cesararmada does this affect your work at all?

@cesararmada does this affect your work at all?

Yes, this fixes the bug I was trying to solve.

@IfSentient I'm not sure this is the correct approach here. I agree with TODO however – this could work if we'd switch to patching instead of updating.
IMHO we should either:
a) Keep current semantics of Update intact and add a new Patch (?) method with patch semantics. b) Rename Update to Patch (?) and change it to use patch semantics. C) Keep current semantics of Update intact and add a new Merge (?) method. Merge would work with Get-and-Put semantics.
i.e. the way I see it Update == PUT, so the caller must keep track of the client vs. server state themselves but in return they get better performance (i.e. calling Update results in a single API call).
In general I would prefer not to rely on get-and-put semantics unless absolutely necessary, because they create a lot of server-side overhead.

@radiohead the big problem with the PUT semantics of Update in SimpleStore is that SImpleStore is designed to only consume the spec object (in order to be "simple"), so the only way to pass along metadata is via get-and-put. This isn't a problem for TypedStore and Store, because they take whole objects in their Update methods.
Also note that get-and-put is done anyway if a ResourceVersion is not present in the UpdateOptions for any Client.Update interaction (via stores or directly), because for CRD's in kubernetes, leaving the RV empty to implicitly use latest doesn't work.

@IfSentient I'm not sure this is the correct approach here. I agree with TODO however – this could work if we'd switch to patching instead of updating.
IMHO we should either:
a) Keep current semantics of Update intact and add a new Patch (?) method with patch semantics. b) Rename Update to Patch (?) and change it to use patch semantics. C) Keep current semantics of Update intact and add a new Merge (?) method. Merge would work with Get-and-Put semantics.
i.e. the way I see it Update == PUT, so the caller must keep track of the client vs. server state themselves but in return they get better performance (i.e. calling Update results in a single API call).
In general I would prefer not to rely on get-and-put semantics unless absolutely necessary, because they create a lot of server-side overhead.

@radiohead the big problem with the PUT semantics of Update in SimpleStore is that SImpleStore is designed to only consume the spec object (in order to be "simple"), so the only way to pass along metadata is via get-and-put. This isn't a problem for TypedStore and Store, because they take whole objects in their Update methods.

Fair point – in such case I suggest that we switch to using PATCH instead of PUT.

Also note that get-and-put is done anyway if a ResourceVersion is not present in the UpdateOptions for any Client.Update interaction (via stores or directly), because for CRD's in kubernetes, leaving the RV empty to implicitly use latest doesn't work.

Yeah and I'm not a big fan of this, but it's a separate topic for discussion.
Let me expand on my reasoning – I tend to think of Kubernetes API as just another storage layer with optional write serialisability. If I were using e.g. SQL I can choose whether I want to force-write some data for efficiency's sake vs. using a transaction for read-compare-update semantics.
Now, Kubernetes API is unfortunately opinionated in that it doesn't provide its API clients with the ability to forcefully apply a specific configuration via the PUT / update verb, i.e. one has to always supply the correct RV. However, in order to emulate the forced write we could use the PATCH verb instead and that'd be my preferred approach here.

@IfSentient I'm not sure this is the correct approach here. I agree with TODO however – this could work if we'd switch to patching instead of updating.
IMHO we should either:
a) Keep current semantics of Update intact and add a new Patch (?) method with patch semantics. b) Rename Update to Patch (?) and change it to use patch semantics. C) Keep current semantics of Update intact and add a new Merge (?) method. Merge would work with Get-and-Put semantics.
i.e. the way I see it Update == PUT, so the caller must keep track of the client vs. server state themselves but in return they get better performance (i.e. calling Update results in a single API call).
In general I would prefer not to rely on get-and-put semantics unless absolutely necessary, because they create a lot of server-side overhead.

@radiohead the big problem with the PUT semantics of Update in SimpleStore is that SImpleStore is designed to only consume the spec object (in order to be "simple"), so the only way to pass along metadata is via get-and-put. This isn't a problem for TypedStore and Store, because they take whole objects in their Update methods.

Fair point – in such case I suggest that we switch to using PATCH instead of PUT.

The only problem I see here (and why I didn't use PATCH originally in the Update method) is that we can't do optimistic resource locking with ResourceVersion. I'm OK with saying that SimpleStore doesn't do resource locking, and if you want to use that, you have to use TypedStore or Store, but I just want to make sure this is clear for all folks.
@cesararmada @joeblubaugh IIRC the resource.WithResourceVersion option was added for SLO app purposes, is it ok if we make this change to disallow ResourceVersion locking in the SimpleStore and refer folks to using TypedStore or Store for it? TypedStore is actually very easy to use with an operator.Watcher, as the type you supply it is the same type that comes in from the watcher events.


Comparing Hwameistor with HostPath-storage, Hwameistor is relatively difficult to get started

Hi hwameiStor Team
hwamei 的上手门槛有一些高，没有办法直接上手，能否有一些优化？
hostpath-storage 安装记录

deployment.apps/hostpath-provisioner created
storageclass.storage.k8s.io/microk8s-hostpath created
serviceaccount/microk8s-hostpath created
clusterrole.rbac.authorization.k8s.io/microk8s-hostpath created
clusterrolebinding.rbac.authorization.k8s.io/microk8s-hostpath created

Output of lsblk:
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0    7:0    0  55.5M  1 loop /snap/core18/2409
loop1    7:1    0  67.2M  1 loop /snap/lxd/21835
loop2    7:2    0  61.9M  1 loop
loop3    7:3    0 219.8M  1 loop /snap/microk8s/3272
loop4    7:4    0  67.8M  1 loop /snap/lxd/22753
loop6    7:6    0    47M  1 loop /snap/snapd/16010
loop7    7:7    0  55.6M  1 loop /snap/core18/2538
loop8    7:8    0    47M  1 loop /snap/snapd/16292
loop9    7:9    0   220M  1 loop /snap/microk8s/3597
loop10   7:10   0    62M  1 loop /snap/core20/1611
loop11   7:11   0    62M  1 loop /snap/core20/1593
sda      8:0    0 238.5G  0 disk
├─sda1   8:1    0   1.1G  0 part /boot/efi
└─sda2   8:2    0 237.4G  0 part /
sdb      8:16   0   3.7T  0 disk
sdc      8:32   0   3.7T  0 disk
sdd      8:48   0   3.7T  0 disk
sde      8:64   0   3.7T  0 disk

Output of blkid:
# paste output here

Output of kubectl version:
# paste output here

Output of kubectl get lsn -o yaml:
# paste output here

Cloud Provider/Platform (AKS, GKE, Minikube etc.):
# paste output here

@Ye-Ting Thanks for you feedback.
The requirements are not very clear. We are also gradually optimizing the installation guidelines.


[WIP] Add /authors page.

Contributor visualization showing the avatar, user name and number of commits for each contributors.
TODO:

Add caching for generated markdown
[optional] Cache avatar to serve as static content.

Screenshot:
Normal

Responsive (wide: 4 columns, narrow: 2 columns)

I tried testing this out, and got the "Error fetching from GitHub" error; does this view work for you in the current code?

It works for me for most of the time, but sometimes the Github API stop responding after I reload it several times in a row.

Interesting.
I think it's possible we will want to move the query into update-prod-static (aka the code that runs when one is deploying Zulip) and save the result in a JSON file.  That way (1) we don't need to worry about querying the GitHub API live and (2) each Zulip server will show stats more corresponding to the version of Zulip involved (i.e. a server running Zulip 1.5 wouldn't have contributions from Zulip 2.0).

@timabbott I have moved the code to a standalone script which is called from update-prod-static. Where should the JSON file be stored?
Also do we still need caching?

If we're fetching from a JSON file on disk, I don't think we need to also cache in memcached -- the GitHub API query will already have been done.

I included the JSON data as part of the repo so we do not have to fetch the data when developing. It would be updated during release.

@tommyip, looks great. Left some feedback.

@umairwaheed PR updated with Django templates, it is indeed a lot easier for future maintenance.

I asked Tommy to make a couple changes (on chat):

4-space indents for the template
use six.zip_longest

After these, this looks ready to merge, @timabbott !   The code looks great, and I'm excited for the feature.

Updated!

@tommyip Thanks for addressing my concerns about indents and zip_longest.  It seems like the last "merge" commit needs to be squashed somehow.

Sounds great! I will fix those issues once I have time.

Updated! Should have fixed everything now.
In production, data are fetched from github and formatted into github_contributors.json.
In dev/Travis CI, the zerver/fixtures/authors.json file is copied into static/generated.

Fixed!

@timabbott Ready for final review.

@tommyip this looks great; I'm going to tweak update-prod-static to use the fixtures when running in the production CI suite and then merge this.  I think there is some follow-up work that would be valuable, though:

Pinging contributors with >10 commits like @rafidaslam, @rwbarton, @540KJ, @anirudhjain75, @arpith, @lonerz, @krtkmj, @rahuldeve, @jhurwitz, and @alya who don't have avatars on GitHub that they might want to consider adding GitHub avatars (though of course they don't have to).  Accomplished with this comment :).
Showing the grant total number of contributors at the top of the page, and clarifying we're only showing the top 100.  Possibly in the form of a short paragraph of text between the heading and the grid of contributors explaining what this is, e.g. "Over N people have contributed code to Zulip!  The page shows the GitHub profiles of the top 100 of these contributors to this version of Zulip." (but maybe worth wordsmithing a bit).
Including contributions to the other large Zulip repos?  I think this is basically zulip-android, zulip-mobile, and zulip-electron, but if we make it a list of repos in the code it'll be easy to add others as appropriate.

Depending how soon you can address them, can you either submit a PR or open GitHub issues for 2 and 3 @tommyip?
Huge thanks for building this!

Merged.


Implement AltIndex

AltIndex currently only works when used as the root index. Implement the rest of it so that it can add indexes when used as a tail index in a chain.
This will involve the ability to find all its instances and populate the new index in each one. This could be done a few ways:
a) keep a list of all instances (bad)
b) pass the root index to addIndex() , modify AltIndex.put() to check for and create missing subindexes, and call put() on the root for every item (probably bad)
c) pass the root index to addIndex() and add a method to call up through the index and do the work  on all matching instances (being worked on)

Why doesn't AltIndex work when not a root?

To build a complete index it needs to find all its "sibling" instances (the other tails in the tree it belongs to, for instance) and build the index for them too.

Also, this same kind of ability to make structural changes would allow for indexes that can decorate, remove or swap themselves.

Work in progress: be1185a4d97ed076ec46e034c57499d9fb9a9cf7

This is now working.
Pending: benchmarks to measure performance, more in depth tests and general cleanup.

Removing feature requirement to modify index structure. AltIndex on AutoIndex3 still retains some of the changes to separate delegate factories from instance delegates.


Is this project dead?

No response from pull requests in over a year?  Hmmmm.

Yea, looks pretty dead;
Thats a shame!

I do no see as a "shame" they give all the tools to move content to StackEdit. I am using it to edit my wordpress posts like I did in Classeur

Yea, I was more talking about @Flamencos prs that were ignored. This is as close to something as typora as I could find, but if its dead, it wouldn't make alot of sense to develop for it. I'm not a fan of side by side markdown editors so stackEdit is no good for me.

The stackedit.io does not have a search feature either.
But stackio it is built using Vue and that is IMHO way better than Classuer's Angular.  If there is anything that came out of the PRs, it is that I learned Angular in the process and discovered that I am not a fan of that technology.

Theres actually a pretty cool alternative that seems to be very active right now https://github.com/marktext/marktext, its also written in vue from what I can gather.

@saivan That won't run in a browser though.  It's also based off of Electron, that is really neat and native, but HUGE with lots of overhead.  IIRC the launch/init times are a bit sluggish for Electron apps too.
I started on stackedit, but they pushed/persuaded me to switch to Classeur, hailing it as the next-gen editor, but turning out to be a dead-end.
My needs are really simple:  Find and edit a markdown file from any browser as fast as possible.  I would add a PR to search titles and/or text in stackedit, but I refuse to get dissed again by the maintainer (stackedit and classuer are the same).

Sad that classeur "didn't find it's place in the market" as they say.. I quite liked it.
I don't really see the point in markdown editors like stackedit and dillinger because they seem focused on the side-by-side editor aspect rather than storage & accessibility. What's the point of rendering markdown while you're editing it ? By it's very nature it looks fine in plain text.
it would be nice to have a selfhostable classeur. Sadly I'm not familiar with the stack (angular).

The main feature of classeur (that is not in stackedit.oi) was it's way of organizing markdown files into books, and being able to search the content.
StackEdit.io uses Vue, not angular, and IMO so much easier to maintain and extend, so I can see why that is the current direction.  What would have been ideal would have been to wrap stackio in a classeur-like interface, also using Vue.


Use appveyor cache to speed up initial setup

Use the cache feature for depedancies
Use VS instead of nmake for multithreading

[ ]   General Comment
<img border=0 src='https://avatars.githubusercontent.com/u/6862950?v=3' height=16 width=16'> :-1: For some unknown reason, appveyor is not restoring the cache.

This pull request is now managed with CodeReviewHub. Refresh.

:-1: For some unknown reason, appveyor is not restoring the cache.

This was not supposed to be a branch on 01org but on my fork.


[Serialization] Allow rebuilding modules from the resource dir on SDK mismatch

Modules loaded from the resource dir are not usually rebuilt from the swiftinterface as it would indicate a configuration problem. Lift that behavior for SDK mismatch and still rebuild them.
This use case applies when a toolchain is used with a different SDK than the one use to build the modules in the toolchain.
rdar://106101760

@swift-ci Please smoke test

@swift-ci Please smoke test Windows

@swift-ci Please smoke test macOS


grid not working when have areas

When I have Area in my project, grid not rendering and not showing any errors but when I dont have Area in my project its working.

Maybe your area didn't include grid namespaces? And errors are not shown by mvc core, but instead are logged using logger factory so you can also check there.

this is the logged error:
The tag helper 'div' must not have C# in the element's attribute declaration area

Look like one of your tag helpers getting executed on a grid div, which has inline c# code.
It's currently a limitation of razor and is tracked here.
You could change that line to
<div<EMAIL_ADDRESS>class="mvc-grid">

And in the mean time I will try to think of a workaround for this problem.


Timber Wordpress plugin has 2 vendor folders

The first vendor folder is in the root (correct), but then this folder has an other folder in it called vendor, with the exact same files and folders

Going to close this as going forward we will be changing how the project is setup for composer


Check if Parsec was indeed used

by checking the mappings folder.
Fix #19

On a successfull run:
2021-03-04T11:26:42.9758105Z [TRACE parsec_service::front::front_end] handle_request ingress
2021-03-04T11:26:42.9759113Z [INFO  parsec_service::front::front_end] New request received without authentication
2021-03-04T11:26:42.9760031Z [TRACE parsec_service::back::dispatcher] dispatch_request ingress
2021-03-04T11:26:42.9760888Z [TRACE parsec_service::back::backend_handler] execute_request ingress
2021-03-04T11:26:42.9761758Z [TRACE parsec_service::providers::core] list_authenticators ingress
2021-03-04T11:26:42.9762690Z [TRACE parsec_service::back::backend_handler] list_authenticators egress
2021-03-04T11:26:42.9763570Z [TRACE parsec_service::back::dispatcher] execute_request egress
2021-03-04T11:26:42.9764393Z [TRACE parsec_service::front::front_end] dispatch_request egress
2021-03-04T11:26:42.9765312Z [INFO  parsec_service::front::front_end] Response sent back from request without authentication
2021-03-04T11:26:42.9766113Z [TRACE parsec] handle_request egress
2021-03-04T11:26:42.9856053Z [TRACE parsec_service::front::front_end] handle_request ingress
2021-03-04T11:26:42.9856854Z [INFO  parsec_service::front::front_end] New request received from application name "0"
2021-03-04T11:26:42.9857640Z [TRACE parsec_service::back::dispatcher] dispatch_request ingress
2021-03-04T11:26:42.9858371Z [TRACE parsec_service::back::backend_handler] execute_request ingress
2021-03-04T11:26:42.9859109Z [TRACE parsec_service::providers::core] list_providers ingress
2021-03-04T11:26:42.9859815Z [TRACE parsec_service::back::backend_handler] list_providers egress
2021-03-04T11:26:42.9860755Z [TRACE parsec_service::back::dispatcher] execute_request egress
2021-03-04T11:26:42.9861460Z [TRACE parsec_service::front::front_end] dispatch_request egress
2021-03-04T11:26:42.9862215Z [INFO  parsec_service::front::front_end] Response for application name "0" sent back
2021-03-04T11:26:42.9862846Z [TRACE parsec] handle_request egress
2021-03-04T11:26:42.9956545Z [TRACE parsec_service::front::front_end] handle_request ingress
2021-03-04T11:26:42.9959447Z [INFO  parsec_service::front::front_end] New request received from application name "0"
2021-03-04T11:26:42.9960262Z [TRACE parsec_service::back::dispatcher] dispatch_request ingress
2021-03-04T11:26:42.9961019Z [TRACE parsec_service::back::backend_handler] execute_request ingress
2021-03-04T11:26:42.9961880Z [TRACE parsec_service::providers::tpm] psa_generate_key ingress
2021-03-04T11:26:43.0880045Z [WARN  parsec_service::key_info_managers::on_disk_manager] Saving Key Triple (Application Name: "0", Provider ID: Tpm, Key Name: "parsec-se-driver-key1") mapping to disk.
2021-03-04T11:26:43.0881348Z [TRACE parsec_service::back::backend_handler] psa_generate_key egress
2021-03-04T11:26:43.0882178Z [TRACE parsec_service::back::dispatcher] execute_request egress
2021-03-04T11:26:43.0882968Z [TRACE parsec_service::front::front_end] dispatch_request egress
2021-03-04T11:26:43.0883799Z [INFO  parsec_service::front::front_end] Response for application name "0" sent back
2021-03-04T11:26:43.0884530Z [TRACE parsec] handle_request egress
2021-03-04T11:26:43.0976072Z [TRACE parsec_service::front::front_end] handle_request ingress
2021-03-04T11:26:43.0976853Z [INFO  parsec_service::front::front_end] New request received from application name "0"
2021-03-04T11:26:43.0977618Z [TRACE parsec_service::back::dispatcher] dispatch_request ingress
2021-03-04T11:26:43.0978346Z [TRACE parsec_service::back::backend_handler] execute_request ingress
2021-03-04T11:26:43.0979050Z [TRACE parsec_service::providers::tpm] psa_export_public_key ingress
2021-03-04T11:26:43.1397883Z [TRACE parsec_service::back::backend_handler] psa_export_public_key egress
2021-03-04T11:26:43.1398985Z [TRACE parsec_service::back::dispatcher] execute_request egress
2021-03-04T11:26:43.1399788Z [TRACE parsec_service::front::front_end] dispatch_request egress
2021-03-04T11:26:43.1400617Z [INFO  parsec_service::front::front_end] Response for application name "0" sent back
2021-03-04T11:26:43.1401356Z [TRACE parsec] handle_request egress
2021-03-04T11:26:43.1484106Z [TRACE parsec_service::front::front_end] handle_request ingress
2021-03-04T11:26:43.1484886Z [INFO  parsec_service::front::front_end] New request received from application name "0"
2021-03-04T11:26:43.1485651Z [TRACE parsec_service::back::dispatcher] dispatch_request ingress
2021-03-04T11:26:43.1486364Z [TRACE parsec_service::back::backend_handler] execute_request ingress
2021-03-04T11:26:43.1487053Z [TRACE parsec_service::providers::tpm] psa_sign_hash ingress
2021-03-04T11:26:43.1493150Z [TRACE parsec_service::back::backend_handler] psa_sign_hash egress
2021-03-04T11:26:43.1493937Z [TRACE parsec_service::back::dispatcher] execute_request egress
2021-03-04T11:26:43.1494626Z [TRACE parsec_service::front::front_end] dispatch_request egress
2021-03-04T11:26:43.1495364Z [INFO  parsec_service::front::front_end] Response for application name "0" sent back
2021-03-04T11:26:43.1495995Z [TRACE parsec] handle_request egress
2021-03-04T11:26:43.1581444Z [TRACE parsec_service::front::front_end] handle_request ingress
2021-03-04T11:26:43.1582227Z [INFO  parsec_service::front::front_end] New request received from application name "0"
2021-03-04T11:26:43.1582991Z [TRACE parsec_service::back::dispatcher] dispatch_request ingress
2021-03-04T11:26:43.1583741Z [TRACE parsec_service::back::backend_handler] execute_request ingress
2021-03-04T11:26:43.1584429Z [TRACE parsec_service::providers::tpm] psa_verify_hash ingress
2021-03-04T11:26:43.2004475Z [TRACE parsec_service::back::backend_handler] psa_verify_hash egress
2021-03-04T11:26:43.2006235Z [TRACE parsec_service::back::dispatcher] execute_request egress
2021-03-04T11:26:43.2007105Z [TRACE parsec_service::front::front_end] dispatch_request egress
2021-03-04T11:26:43.2007945Z [INFO  parsec_service::front::front_end] Response for application name "0" sent back
2021-03-04T11:26:43.2008691Z [TRACE parsec] handle_request egress
2021-03-04T11:26:43.2093279Z [TRACE parsec_service::front::front_end] handle_request ingress
2021-03-04T11:26:43.2095517Z [INFO  parsec_service::front::front_end] New request received from application name "0"
2021-03-04T11:26:43.2096287Z [TRACE parsec_service::back::dispatcher] dispatch_request ingress
2021-03-04T11:26:43.2097011Z [TRACE parsec_service::back::backend_handler] execute_request ingress
2021-03-04T11:26:43.2097705Z [TRACE parsec_service::providers::tpm] psa_destroy_key ingress
2021-03-04T11:26:43.2098393Z [TRACE parsec_service::back::backend_handler] psa_destroy_key egress
2021-03-04T11:26:43.2099081Z [TRACE parsec_service::back::dispatcher] execute_request egress
2021-03-04T11:26:43.2099772Z [TRACE parsec_service::front::front_end] dispatch_request egress
2021-03-04T11:26:43.2100509Z [INFO  parsec_service::front::front_end] Response for application name "0" sent back
2021-03-04T11:26:43.2101134Z [TRACE parsec] handle_request egress
2021-03-04T11:26:43.2105331Z make: Leaving directory '/tmp/parsec-se-driver/ci/c-tests'
2021-03-04T11:26:45.4179023Z Cleaning up orphan processes

Modifying Mbed TLS version to reproduce #18 and check if CI then fails

And the failing log, showing that the check works:
2021-03-04T12:10:33.0906772Z [TRACE parsec_service::front::front_end] handle_request ingress
2021-03-04T12:10:33.0908390Z [INFO  parsec_service::front::front_end] New request received without authentication
2021-03-04T12:10:33.0910147Z [TRACE parsec_service::back::dispatcher] dispatch_request ingress
2021-03-04T12:10:33.0911734Z [TRACE parsec_service::back::backend_handler] execute_request ingress
2021-03-04T12:10:33.0913206Z [TRACE parsec_service::providers::core] list_authenticators ingress
2021-03-04T12:10:33.0914588Z [TRACE parsec_service::back::backend_handler] list_authenticators egress
2021-03-04T12:10:33.0916045Z [TRACE parsec_service::back::dispatcher] execute_request egress
2021-03-04T12:10:33.0917807Z [TRACE parsec_service::front::front_end] dispatch_request egress
2021-03-04T12:10:33.0918788Z [INFO  parsec_service::front::front_end] Response sent back from request without authentication
2021-03-04T12:10:33.0919580Z [TRACE parsec] handle_request egress
2021-03-04T12:10:33.1010104Z [TRACE parsec_service::front::front_end] handle_request ingress
2021-03-04T12:10:33.1011035Z [INFO  parsec_service::front::front_end] New request received from application name "0"
2021-03-04T12:10:33.1012246Z [TRACE parsec_service::back::dispatcher] dispatch_request ingress
2021-03-04T12:10:33.1013105Z [TRACE parsec_service::back::backend_handler] execute_request ingress
2021-03-04T12:10:33.1014163Z [TRACE parsec_service::providers::core] list_providers ingress
2021-03-04T12:10:33.1014943Z [TRACE parsec_service::back::backend_handler] list_providers egress
2021-03-04T12:10:33.1015748Z [TRACE parsec_service::back::dispatcher] execute_request egress
2021-03-04T12:10:33.1016520Z [TRACE parsec_service::front::front_end] dispatch_request egress
2021-03-04T12:10:33.1017338Z [INFO  parsec_service::front::front_end] Response for application name "0" sent back
2021-03-04T12:10:33.1018025Z [TRACE parsec] handle_request egress
2021-03-04T12:10:33.1107988Z make: Leaving directory '/tmp/parsec-se-driver/ci/c-tests'
2021-03-04T12:10:34.8504996Z ##[error]Process completed with exit code 1.

Removing the last commit to merge hte PR.


Sort Community Committee Members alphabetically by first name in README

follow up for https://github.com/nodejs/community-committee/pull/137#issuecomment-332949316
Any objections?

I prefer it. +1

Sounds good to me.

Thank you!
On Mon, Oct 2, 2017 at 9:29 PM, Michael Dawson<EMAIL_ADDRESS>wrote:

Sounds good to me.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/nodejs/community-committee/issues/140#issuecomment-333670822,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AB46oE1am2hhDIvFMIirqgDQRB4AkiIFks5soVWxgaJpZM4PpLmH
.

Included this fix in my #141 PR, with the update of sorting alphabetically by Github handle, as opposed to the original suggestion of first name.
Because I first converted the list to be formatted like the TSC Committee, I felt this made more sense.  Feedback appreciated.

Just shipped https://github.com/nodejs/community-committee/pull/141, so going to close this.


Tom/3837 - Added option for autocompleting parameters

in beaker.pref.json
autocomplete-parameters: [true|false]
defaults to true.
Also refactored various calls to getPreference into a getBeakerPreference on bkUtils.

kick jenkins


Submitting value is always false

Hello,
I am not sure what I did wrong, but the submitting value is always false in my case. Since the submitting value is always false, during the submit, the Register button is never disabled. I am using the redux-thunk middleware, and I have the followings:
handleFormSubmit(formProps) {
    console.log("signing up user");
    this.props.registerUser(this.props.id, this.props.email, formProps.firstName, formProps.lastName, formProps.password);
}

render () {
    const { handleSubmit, fields: { email, firstName, lastName, password, passwordConfirm }, t , submitting} = this.props;
<form onSubmit={handleSubmit(this.handleFormSubmit.bind(this))}>
//
...
   <button action="submit"  disabled={submitting}>{t('content.register')}</button>
...
//
</form>
  }

In my action creator,

export function registerUser(id, email, givenName, surName, password) {
   return function(dispatch) {
    return dispatch(updateUserPersonalData(id,email,givenName, surName)
    ).then(() => {
    dispatch(sendMail('confirmation-email')),
    browserHistory.push('/profiles?email='+email);
  })
}
}

export function updateUserPersonalData(id, email, givenName, surName) {
  return function(dispatch) {
    let jsonData = {
      "primaryEmailAddress" : email,
      "givenName" : givenName,
      "surname" :  surName,
      "displayName" : givenName + " " +  surName
    }

    let url = `${root_api_url}/v1/updateuser?id=${id}&info=ldapInfo`;
    return axios.put(url, jsonData)
    .then(response => {
      dispatch({
            type: UPDATE_USER_DATA,
            payload: JSON.parse(response.data)
            });

    })
  }
}

Thank you

The submitting flag only works if your onSubmit returns a Promise, so that redux-form can track when it starts and ends.

I'm returning a Promise on onSubmit but submittingis still always false.
I'm using redux-thunk middleware and I return fetch from the action like in the example found here: http://redux.js.org/docs/advanced/AsyncActions.html.
Do you have any idea what else could be going on?

@erikras I found that submitting is false even if you use a promise for the onSubmit props if only the sync validation kicks in and return a non-empty errors object. Is that the expected behavior?

I just noticed the same behavior, if it is expected, what would be the right way to have a disable button when the submitting action is in progress?

This is still a problem.

@RamonBeast I created a state property in my component called canSumbit that I set appropriately depending on conditions to "solve" the problem. Not ideal but it removes this blocker.

Can anyone create a working demo using JSFiddle, Webpackbin, Codepen, whatever?
It's gonna be easier to see the actual problem.

So for example if you are using axios in your thunk
handleSubmit(values) {
    return new Promise(resolve => {
        this.props.myThunkWhereIsCallAsync(values, resolve);
    })
}

and then in the thunk you can resolve the promise to turn submitting to false just like that!

What if i'm using redux-saga not redux-thunk?

I was able to solve this by using the redux form action creators startSubmit() and stopSubmit() provided here: http://redux-form.com/6.7.0/docs/api/ActionCreators.md/.  I used the redux matchDispatchToProps to create a function that can explicitly dispatch an action to toggle the submitting prop passed by redux-form.
In my redux connected parent component I did:
import {startSubmit, stopSubmit} from 'redux-form';
... // other imports

class FormParentComponent extends Component {
    handleSubmit(e) {
        e.preventDefault();
        this.props.setSubmittingState('reduxFormInstanceLabel', true);
        this.props.actions.submitForm()
            .then((response) => {
                this.props.setSubmittingState('reduxFormInstanceLabel', false);
                // do other things after submitting is finished
            });
    }
    render() {
        return <ReduxFormComponent handleSubmit={this.handleSubmit.bind(this)} />
    }
}

mapStateToProps() {
    ...
}

function mapDispatchToProps(dispatch) {
    return {
        actions: bindActionCreators(Actions, dispatch),
        setSubmittingState: (form, isSubmitting) => {
            if (isSubmitting === true) {
                dispatch(startSubmit(form))
            } else if (isSubmitting === false) {
                dispatch(stopSubmit(form))
            }
        }
    };
}

export default connect(
    mapStateToProps,
    mapDispatchToProps
)(FormParentComponent);

I don't think it is the most elegant or best solution, but it worked for me and might help someone.

Here is what I did, and it works perfect so far:
class Something extends Component {
    constructor(props) {
        super(props)
        this.state = { busy: false }
    }

    handleFormSubmit({ field1, field2 }) {
        this.setState({ busy: true })

        // doing work
        // ok done:

        this.setState({ busy: false })
    }

    render() {
        // inside form:
        <button action="submit" disabled={this.state.busy}>
            {(this.state.busy) ? 'Please wait...' : 'Submit'}
        </button>
    }
}

I don't really know what the cause is, but I feel that the submitting props only works in a functional base form component.

@agm1984
perfect if doing work is not asynchrone task.
I am facing the same issue and I am using redux-saga. I can't pass a Promise. Anybody else have  different purposition?

I am using redux-saga as well. Ended up using a variable in redux-state and pass it to the submit button as prop. When clicking the submit-button, action to toggle isSubmitting is dispatched, thus button gets disabled. At the end of my submit*()-saga the action is dispatched again, enabling the button for further usage.
    <Button
      type="button"
      onClick={() => {
        dispatch(actions.toggleSubmitting());
        dispatch(submit(FORM_NAME));
      }}
      disabled={disabled || isSubmitting}
      style={{float: 'left'}}
    >
      Save
    </Button>

Hint: Props come via selectors, so I composed my form component. Maybe there is a more cleaner solution however.
export default InspectionFormForFeatureGroup = compose(
  connect(
    (state, props) => ({
      form: FORM_NAME,
      onSubmit: submitHandlerWValidation(state, props),
      validate: connectedValidate(state, props),
    })),
    connect(createStructuredSelector({
      isSubmitting: selectors.isSubmitting(),
    })),
    reduxForm({}) // https://github.com/erikras/redux-form/issues/3083
  )(InspectionFormForFeatureGroup);

(this is composed, since we are using props on the Component as form-properties)
selector
export const isSubmitting = () => (state) => state.getIn(['qm', 'submitting']);

I am using redux-saga and I solved this submitting issue by manually dispatching the redux-form actions.
Also you can see the source code here
Code of LoginForm component

const LoginForm = (props) => {
  // getting handleSbmit and submitting which are received as props
  const {handleSubmit, submitting } = props;

  return (

      <Grid centered>
        <Form onSubmit={handleSubmit} loading={submitting}>
          <Field
            component={CustomInput} name="username"
            type="text" placeholder="Your username"
            label="Username"
          />
          <Field
            component={CustomInput} name="password"
            type="password" placeholder="minimum 5 chars long"
            label="Password"
          />
          <Button style={{marginTop: '1em'}} primary type='submit'>Login</Button>
        </Form>
      </Grid>
      <Grid centered>

          New Here? <Link to="/register"> Register Me </Link>

      </Grid>

  );
}

export default reduxForm({
  form: 'LoginForm'
})(LoginForm);

Code where LoginForm is rendered
Here inside your custom submit function, dispatch the startSubmit from redux-form
import { loginUser } from './actions';
// importing startSubmit from redux-form
import { SubmissionError, startSubmit } from 'redux-form';
import LoginForm from '../../../components/LoginForm';

class Login extends Component {
  constructor(props){
    super(props);
    this.handleSubmit = this.handleSubmit.bind(this);
  }

  handleSubmit({ username = '', password = '' }) {
    // dispatch startSubmit when your form is submitted
    this.props.startSubmit('LoginForm');
    const error = {};
    let isError = false;

    if (username.trim() === '' || username.trim().length < 5) {
      error.username = 'Required and minimum 5 chars';
      isError = true;
    }

    if (password.trim() === '' || password.trim().length < 5) {
      error.password = 'Required and minimum 5 chars';
      isError = true;
    }

    if (isError) {
      throw new SubmissionError(error);
    } else {
      this.props.loginUser({ username, password });
    }
  }

  render() {
    return (
      <LoginForm onSubmit={this.handleSubmit} />
    );
  }
}
// mapping dispatch to props
export default connect(null, { loginUser, startSubmit })(Login);

Code for your saga
// at the top, import the stopSubmit action from redux-form
import { stopSubmit } from 'redux-form';

.
.
.
.

// inside the handle login generator
function* handleLogin(action) {
  try {
    const { data } = yield(call(loginUser, action.payload));
    const response = data;

    localStorage.setItem('user', `${response.data.token}`);
    yield put(loginUserSuccess(response.data.token));
    yield put(stopSubmit('LoginForm'));
  } catch (error) {
    //get response from server
    const { response } = error;
    const message = response.data.message;
    yield put(loginUserFailed(message));
    yield put(stopSubmit('LoginForm'));
  }
}

If you find it helpful, star my repo.
Suggestions and improvements ? open an issue here

This works for me:
ajaxStatus actions
export function beginAjaxCall() {
  return {type: actiontypes.BEGIN_AJAX_CALL};
}

export function ajaxCallError() {
  return {type: actiontypes.AJAX_CALL_ERROR};
}

ajaxStatus reducer:
function actionTypeEndsInSuccess(type) {
    return type.substring(type.length - 8) === '_SUCCESS';

}

export default function ajaxStatusReducer(state = initialState.ajaxCallInProgress, action) {
    if (action.type === actiontypes.BEGIN_AJAX_CALL) {
        return state + 1;
    } else if (action.type === actiontypes.AJAX_CALL_ERROR || actionTypeEndsInSuccess(action.type)) {
        return state  -1;
    }
    return state;
}

in the send method I call beginAjaxCall before the ajax call, and dispatch a action ended on _SUCCESS on the response
export const sendForm = (data) => {
    return (dispatch,getState) => {
        dispatch(beginAjaxCall())

        axios.post()
            .then(function (response) {
                    dispatch({type: types.SUBMIT_FORM_SUCCESS, success: 1});
            })
            .catch(function (error) {
                    dispatch(ajaxCallError())
            });
    }
}

then I just add the submit button component
<RemoteSubmitButton disabled={ajaxCallInProgress !== 0}/>

(taken from Cory House Redux Course)


Uptime-kuma on OpenWRT ?

⚠ Please verify that this feature request has NOT been suggested before.

[X] I checked and didn't find similar feature request

🏷 Feature Request Type
Other
🔖 Feature description
Add uptime-kuma to openwrt
See the following guide on how to add packages to the openwrt repository
https://openwrt.org/docs/guide-developer/packages
I think uptime-kuma would be a great addition to openwrt, what better place for uptime monitoring than your router ?
✔ Solution
Add the package, integrate UI to the openwrt web interface called LuCi
More resources
https://github.com/openwrt/luci/wiki/
https://openwrt.org/docs/techref/luci
❓ Alternatives
No response
📝 Additional Context
No response

Would love to see it!

I don't see us having the resources to maintain this
=> Closing as not planned.
If someone wants to maintain this packaging, we can add this under third party section in the wiki


Profiles as files vs profile as comment in thread

May I ask:
What was the reasoning behind using a comment thread for student profiles vs using markdown files in the repository?
It seems like a file in a repository is more 'tangible'...because we don't actually issue any degrees of certificates, it seems like the 'academic program' would benefit from having students in their own separate files.  This way, we can link to a file or we can embed the file on a website; sure, the comments in an issue thread can be linked, but it's not as 'tangible'.
I realize that it's probably a lot of work to approve hundreds of pull requests...which is probably why we switched to comments.
That being said, I think managing your profile should be as easy as editing a comment.  Making a pull request is not very convenient for the student or the administrators.
I propose we develop a way to make a {student-name}.md file from each comment in the Student Profiles thread.  And, when someone updates their comment, their file is updated, accordingly.
What do you guys think?

I think that we can use threads by now, and after we can create an application that lists all courses and allow students to create their profiles and track their progress.
The student can also have a public profile and share it with others.

A web app for this also makes sense and is probably easier than using git hooks to make files and commits.

I think we could really benefit from an app that lets us manage our profiles.  A few features I think would be useful for the basic functionality:

Login with github credentials
Manage profile contact details
Manage courses (maybe inprogress and completed)
Ability to post (FB post, LinkedIn post, Twitter tweet) when you complete a course.

@oscar-g really cool specs! We definitely should think in something like yours description :smile:

+1
@ericdouglas you can count on me if you wanna develop something like this.

@ericdouglas @dishark
I think we should move with this as soon as we can. I am not sure if the project has other priorities, though.
Overall, the app looks to be really simple/straightforward.
One challenging aspect may be migrating the current profiles from the profile comment thread.
What do you think?

@oscar-g
If you were to close the current application thread (thus freezing it), traversing it and scraping all the data into another format (database, objects, whatever) would be possible with the Github API:
https://developer.github.com/v3/issues/#get-a-single-issue

@odiefrom That sounds good...not too complicated, either.
We should be able to keep the thread open while developing the app. Then, the migration would take place when we're ready to launch the site.

@oscar-g Right...only fire off the migration (and thus, closing the thread) once the app is launched (unless you care about registration order / internal numbering of students, in which case you have to tweak that timing slightly).

Cool @oscar-g,
waiting @ericdouglas's feedback

Hey, guys!
Such app will be really helpful, and indeed we have so many cool things that we can add to it.
We need to keep a very lean mind here, and focus on our MVP.
Our MVP now consists in finish our curriculum with possible missing topics/courses.
After we have a "frozen version" of our curriculum, we should start to think in that application.
It makes sense for you?

There are no problem with students enrolling in the issue #31. We can easily ask for them to register in our app, if it is the case.

Yeah importing data isn't big deal.
What about an app you register with github. Point where you are from on google's map. And check courses out as you go.
Note: We need to take care, 'cause we might end up losing the easy changing feature that github gives to us.

We need to be very careful here and not disturb the student experience with some moving parts.
Let's first understand our business and see what will be our necessities.
The main point here is to enjoy the path, and learn a lot =)

Good points, @ericdouglas.  We should take care not to release something that hasn't been thoroughly planned and tested.
Right now, I think the google group is a decent place for members to discuss...and github works well for some things.  With time, we can work to add more sophisticated conversation options, like a topic=-based discussion forum.
Also, I think members could benefit from being able to display their profile in a single page, where the focus of that page is one member's contact information and achievements.  As I've said before, I think having a single member profile spaces could bolster the authenticity and (dare I say) authority of the program.  In a way, the design and marketing of the effort will create a sense of higher organization that will look great when a member shows off their work.
Maybe we're not trying to come off as a degree from an established university (at least that's not the way I think of this, but I am open to hearing your thoughts on this and learning more about the philosophy of OSS)...the fact is that that members learn skills they can use in the real world and complete a self-guided curriculum, something that not everyone can do because it requires commitment and patience (in some cases, even more discipline than a university degree because of jobs, kids, and living situations).  I think this is a great quality of folks going through self-guided educational programs.  For this reason, I think it will be important to give members a space to show their achievements in an 'official' manner.
Nevertheless, let's keep planning this!

@oscar-g I agree with all of your arguments. Let's plan this and deliver an awesome app that attends all of our necessities.
It'll definitely be a big plus for all OSS students! :smile:

The profile as comments approach is more simple to deal now.
But the app thing is a great idea.

Hi guys!
I really love this project is for me the best project in github for learn! Congrats @ericdouglas!
Well, just put here my ten cents.
When I need update my course profiles in comments issue are really bad and untrackable for perform new users or any way because when we have a lot of students imagine you update your comment on the 8k position?
Maybe for this case, two approaches can be more useful, the forks maybe the user can use the "Students Register" an repo when the user put yours study objects, and if I need se how many students the project have we can simple see the forks and see yours repos.
Or using a simple webapp to support this.
Thanks and grow up!

@thebergamo many thanks for your suggestions and your feedback!
Any solution involving github seems not scalable. I think that a web/mobile app with those specifications by @oscar-g will be a really good solution.
Students will have to use the search from browsers to find their profile, because we already have a lot of students :smile:

If I may suggest WordPress as a platform.
We could extend the built-in User object and add the data fields we need; we can also build a user search function.  If we want to get fancy, we could add a "Course" object that will let us manage the available courses like posts...then users can choose from this list of courses.
Any thoughts on using WordPress for this?

I can't help with WordPress... But let's see what other guys have to say about the stack.

I'm no expert, but I've heard some very good things about Meteor.
More info: http://wiki.dandascalescu.com/essays/why_meteor

One of the reasons I suggested WP is that the content management code is already written for us, which will things easier to implement. Another cms-type platform we could use could be http://keystonejs.com/
@SoullessWaffle I've heard good things about Meteor, too.  I looked at a tutorial about a year ago...I'm sure a lot has changed since then.  I do remember that Meteor excels at real-time data and syncing changes in the data to all connected clients.  I wonder if that is something that will be useful for the type of application we're designing?  Maybe not in the 'member profile' aspect, but if we implement discussions, real-time data updates would be very nice.

I think Django might be nice, the github API wrapper is also really easy to use. Rails and Meteor would be nice if we want to make a nice API for mobile apps, but that can be done in Django as well. Spring and Boot are too big for something like this, but Flask could also be viable be as a backend.

I think that each of the stacks suggested so far have their strengths and weaknesses. It seems from this issue thread that we are all tending toward favoring an app in the near future. Perhaps we should SWOT each of the currently and future proposed stacks to help decide what direction we go in. I'm mostly a javascript type, but I'd love to contribute to the build out in any way I can regardless of the stack ultimately chosen!

Wow, well the web/mobile app is the best fit really.
VersoApp is an platform for learning built in Meteor.
But if we will develop the platform, it is a huge work, but we can do that as quickly we want. In my particular case opt to develop the entire app using just Node.js, and not a complete framework. Because Node.js is simple and any people who knows JS can help in the project.

I'm with @thebergamo . I would suggest to use Node.js (Express), MongoDB and maybe React, as we'll have a lot of cards to display on the screen.

@ericdouglas, that might be the best choice. Like @thebergamo said, most people will be able to contribute to a javascript stack.
I've been messing around with ReactJS and there is a steep learning curve, but it is rewarding.
If we do start something from scratch, let's try not to reinvent the wheel.  One of the strengths of using a framework with a cms is that an an administrator could easily manage profile content, class offerings, and pages...so this app could double as the homepage for the curriculum. Also, imporant things like login security will come standard with a cms.

@ericdouglas Meteor runs on Node.js (meaning you can require node modules), it comes with full MongoDB integration by default including latency compensation and also lets you use react.
A mobile app would be great as well, and Meteor uses Cordova for this.
I agree with @waterlooSunset in that an evaluation of each of the stacks' strengths and weaknesses is a good idea.
To this end, I've created a spreadsheet that anyone can edit.
I've already started populating it, but I don't know enough about the other stacks to complete the whole sheet. Feel free to add more stacks and features to it.

@SoullessWaffle thanks for the intiative! It'll be very helpful.

This is great @SoullessWaffle, we've got a wide range of options.

And after options? We will vote?

Hey guys the Profile as Comment is going bad.
#31

@ericdouglas opened this issue 3 days ago · 683 comments

And growing...

@maicoqb it's true... maybe open another issue just to give some time for us. What do you think?
Students Profile 2

Let's discuss the options for a day or two...then vote somehow?

@maicoqb @oscar-g yes, I think that we can choose tomorrow.

Almost 700 in that members thread...that's awesome! and a dangerous way to organize heh

Do you know if a lock the issue people will sitll be able to edit their comments?

@oscar-g it's indeed an amazing number! In just 3 days :scream:

@ericdouglas, try locking this thread to test...you can open it back up, I think

@oscar-g I made this test... When a issue is locked, nobody can edit a comment.

Ouch, then leave open the Students Profile 2 and close the issue #31.
I know that closed issues can be edited.

But closed issues can also be commented. :confused:

Yeah, closing the issue wouldn't do much except confuse would-be students.

Hacked together something simple here as proof of concept:
http://<IP_ADDRESS>/public/#/courses/
http://<IP_ADDRESS>/public/#/student/12
http://<IP_ADDRESS>/public/#/students/
Any AngularJS/PHP devs wanna take this up?

@vongst thats very pretty!
The source has in github?

@vongst, Great start! Maybe add it the 'dev' branch on your fork of this
repo.  Then we can make pull requests against your branch.
On Thu, Oct 8, 2015 at 2:29 PM, Marcos Vinicius Bérgamo <
<EMAIL_ADDRESS>wrote:

@vongst https://github.com/vongst thats very pretty!
The source has in github?
—
Reply to this email directly or view it on GitHub
https://github.com/open-source-society/computer-science/issues/81#issuecomment-146646284
.

@thebergamo
@oscar-g
@ericdouglas
Thanks guys, here's the repo: https://github.com/vongst/open-source-society
Take it away! It's still very rough around the edges, if there's official interest/support I could try spending more time on it

That a nice job ! A web site for opensourcesociety would help many people (to discover) to join as a first step before to jump in github. I don't know if I can help for content (don't know php) but I will, thanks for that.

@vongst that does look great! And nice job with the data scraping, looks like it was less of an issue than I initially thought.
I'm in the same boat as @mseyne in that I don't know PHP, so I doubt I'll be able to help with the code.

I don't know PHP too...
We should decide which stack we'll use.
@oscar-g @thebergamo @dishark @odiefrom @maicoqb @Heasummn @waterlooSunset @SoullessWaffle @vongst
Which technologies are you able to help?
I can help with Node.js, MongoDB and Angular.js.

I can help with Node.js, MongoDB, CSS & HTML (also Stylus & Jade), as well as Meteor.
I think by now it's pretty clear I'm enthusiastic about Meteor.
One of the nice things about Meteor is that if you know Node.js, or even just JavaScript, it should not be difficult to learn since it runs on those technologies.
There's a talk I found which serves as a great introduction to Meteor and what it can do: https://youtu.be/SYqyWff6iMQ?t=217
If you're busy, here's (an outdated) 10 minute video: https://www.youtube.com/watch?v=fsi0aJ9yr2o

@SoullessWaffle
I'm a bit against monolithic solutions, but if there are more people that know Meteor, and this number is greater than the people that know another stack, we can go with Meteor for sure.

I can help with any of JS, PHP, MySQL, Mongo, and HTML/CSS.  I know Angular
well and some ReactJS.
It looks like most of us know js.
@vongst started on the right track. Maybe we can split into frontend (JS)
and backend (PHP) teams.
Let's also try to get the requirements ready, before starting to code too
much.
On Fri, Oct 9, 2015 at 8:37 AM, Eric Douglas<EMAIL_ADDRESS>wrote:

@SoullessWaffle https://github.com/SoullessWaffle
I'm a bit against monolithic solutions, but if there are more people that
know Meteor, and this number is greater than the people that know another
stack, we can go with Meteor for sure.
—
Reply to this email directly or view it on GitHub
https://github.com/open-source-society/computer-science/issues/81#issuecomment-146855184
.

@oscar-g specifications are a must have! :smile:
Maybe we can try to document it using app-specs, so we'll have two more projects.
I also think that we need to have two team, and communicate those apps via a REST API.

I agree with @oscar-g we should split between frontend (JS) and backend (PHP) teams. Though, for backend I would vote for python/django because it is what I am learning (and I love it) but I am not a veteran enough to push for this choice. Hope python coders will come here :)

@ericdouglas fair enough, all I'm saying is it might be the right kind of monolith.
If we're not using Meteor, then REST sounds good. There's also websockets if we want realtime, perhaps through Primus.

You talk a lot when I'm not here :smile:
@vongst I can help with PHP, but now isn't my expertise. If we can work with JS(Node.js) to creating a REST API is an profit solution because more people can participate, JS is a common language.
PHP is so common in Web too  :p
By the way, you has do a great job! Congratz!!
@oscar-g  the ideia to split the groups in Backend and Frontend is the best approach I think.
@ericdouglas You can create 2 repos for the App? A repo for frontend and other to backend and centralising the discussion?

@ericdouglas  Sorry to be late to the party.  I can help with PHP and SQL (more geared toward MySQL, but I don't see the differences coming up in a project of this scope). :)

@SoullessWaffle yeah! Meteor here would be a good fit!
@thebergamo for sure!
For those that have interest to become a member of the OSS organization, just let me know! :smile:
I would love to have more contributors here!

Maybe we should establish requirements before we choose a stack?

Backend

:octocat:
Node.js
PHP
Python
MongoDB
MySQL

@oscar-g

✔

✔
✔

@thebergamo
✔
✔

✔
✔

@dishark

@odiefrom

✔

✔

@maicoqb

@Heasummn

@waterlooSunset

@SoullessWaffle
✔

✔

@vongst

✔

@eric
✔

✔

Frontend

:octocat:
Angular.js
React
HTML
CSS
Jade
Stylus
Sass

@oscar-g
✔
✔

@thebergamo

@dishark

@odiefrom

@maicoqb

@Heasummn

@waterlooSunset

@SoullessWaffle

✔
✔
✔
✔

@vongst
✔

✔
✔

@eric
✔

UX/UI
??? :sob:

@ericdouglas I'm able to help out with any of these.
As far as features go:

Login with github credentials
Manage profile contact details (including map position)
Manage courses (maybe inprogress and completed)
Ability to post (FB post, LinkedIn post, Twitter tweet) when you complete a course.
admins can manage (CRUD) courses and profiles
list all profiles, search profiles

On the front page, maybe we can show a map with the user map positions and when you click the marker it takes you to the profile page.
What else should we include?

I am also a big fan of meteor, but I can help out with Node, HTML, CSS, Jade, React, and MongoDB
Of course, I'd enjoy using React with Meteor just as well.

@ericdouglas Nice touch with the octocat :+1:
Since Node.js and Meteor kinda blur the line between Frontend and Backend, here are some tables sorted by Languages and Frameworks:
Languages

:octocat:
HTML
CSS
JS
PHP
SQL

@oscar-g

✔
✔
✔

@thebergamo

✔
✔
✔

@dishark

@odiefrom

✔
✔

@maicoqb

@Heasummn

@waterlooSunset

@SoullessWaffle
✔
✔
✔

@vongst
✔
✔
✔
✔

@ericdouglas

✔

@m-schrepel
✔
✔
✔

Frameworks

:octocat:
Angular.js
Meteor
Node.js
React

@oscar-g
✔

✔

@thebergamo

✔

@dishark

@odiefrom

@maicoqb

@Heasummn

@waterlooSunset

@SoullessWaffle

✔
✔

@vongst
✔

@ericdouglas
✔

✔

@m-schrepel

✔
✔
✔

And also a table for CSS preprocessors, as we will probably want to pick one (for code reusability):
CSS and its Preprocessors

:octocat:
CSS
Less
Sass
Stylus
Swith
Turbine

@oscar-g

@thebergamo

@dishark

@odiefrom

@maicoqb

@Heasummn

@waterlooSunset

@SoullessWaffle
✔

✔

@vongst
✔

@ericdouglas

@m-schrepel
✔

Please let me know if I missed anything

@SoullessWaffle great! Thanks for that!
Just MongoDB is not listed.

@ericdouglas good catch! I'll add it under frameworks.

@SoullessWaffle :+1:

@dishark @odiefrom @maicoqb @Heasummn @waterlooSunset are you guys familiar with JS? If so I'll add that to the tables.

@SoullessWaffle  I have basic JS practice, nothing with frameworks or anything.  I've also been working with HTML5 features lately, and have been using HTML in general for about a decade, so throw me down for that if I can help :)

@SoullessWaffle maybe also could help you guys, I know some React, Stylus or Sass, Flux and Reflux. I liked the project, I would love to contribute.

@odiefrom @jdinartejesus I've added your skills to the tables :)
I guess it's up to @ericdouglas to handle the invites to the OSS org.

@soulesswaffle I've got some Javascript experience and some html5, css3 and jade experience. A liitle bit of exposure to passport, express, mongoose library/frameworks. Oh and little jQuery and bootstrap, grunt and mocha. I'd love to help anyway i can even its just writing unit tests

@SoullessWaffle can add to me HTML and CSS I can help in frontend too =D In frameworks I can all at all too!

@waterlooSunset @thebergamo I've added you both :)
@ericdouglas for reference, here's a realtime production-stage collaboration app built with Meteor: https://hansoftx.com
They also wrapped the app in Cordova so it's available on Android/iOS.

@SoullessWaffle  don't forget also to select HTML for my side :+1:

You're amazing, guys! Thank you so much for your help!
I sent an invite for all of you :wink:
I created two repositories, ossu-api (that will contain our backend code) and ossu-ui (that will contain our frontend code).
As I can see now, our stack will be:

Node.js
MongoDB
Angular or React (the frontend team should decide)
Stylus
HTML

Now we need to split the teams!
Let's make history here! :rocket:

Great Job guys!
Where should we discuss about frontend tools?
I don't understand that much about backend, so I guess already know my team!
Really excited about the project and learn CS at the same time! :+1:

@jdinartejesus I think that you can open an issue in the ossu-ui repository and start to discuss about it :smile:

Already done @ericdouglas.
How want to join the front-end, please give your feedback and help us choose the best approach to everyone.
Here is the issue, feel free to give your opinion and recommendation.
https://github.com/open-source-society/ossu-ui/issues
Let's change the education! :book:

Looks like it's time for more tables! :smile:
Teams

:octocat:
Front-end
Back-end

@oscar-g

@thebergamo

@dishark

@odiefrom

@maicoqb

@Heasummn

@waterlooSunset

@SoullessWaffle
✔

@vongst

@ericdouglas

@m-schrepel

@jdinartejesus
✔

If you would like to collaborate in this project, please let us know whether you want to be part of the Front-end or Back-end team

@ericdouglas Why 2 teams? This isn't exactly a large undertaking, unless the data api is meant to be used for both web and mobile apps in the future.
The important questions should be what is the scope?

A searchable list of users
A list of courses with attendees (in progress?/complete?)

Is that it?
If so, it might be a good idea just to to use the layout provided by @vongst and scrape user listings daily to update the static version. If you use Angular, you can dump the updated user listing as a json file and read it in as a data variable. That'll make it easy to implement search.
If the desire is to grow into a bigger app/platform, where are the webserver and database going to be located. Will development servers be made available for testing? Who will be responsible for the setup, payment, maintenance?
Will this be used to host relevant documentation in the future? It wouldn't be too difficult to add Markdown directive support in angular. That way, documentation can be written and managed directly in source control without requiring a back-end or ACL to edit.
BTW, you can put me down for back-end dev.

Two questions:

Do we want to use a REST api or websockets for client-server communication (or a mix of both)?
The devs in this project may have more experience using REST than websockets
Websockets are better suited for realtime apps because there is less overhead since the socket doesn't close after every message
For the front-end, do we want to use Jade or just HTML?
Jade will be quite a bit faster to develop in for anyone who has ever used it
Jade's syntax is easy to learn (HTML without angle brackets and with some javascript-like syntax)
Everyone knows HTML
Some (understandably) can't be bothered to learn a new syntax if they can instead use what is familiar (HTML)

@SoullessWaffle
Back-End
Definitely REST. Websockets would only be necessary if there was some form of real-time communication such as chat. Either way, REST would be used for the content portion.
Front-End
If Angular is the chosen framework, then there's no need for Jade.
I may be the outlier here but I prefer not to include additional framework layers until I can justify the added complexity.
@ericdouglas How will commits be handled. Will direct push access be granted or is it back to the ol' fork, branch, submit, merge churn?

@evanplaice it seems that @ericdouglas has already given me push access to both repos, so I guess that's what we're doing.
With Angular2 just around the corner, I doubt many would find learning Angular1 very enticing.
Having used neither, if we have to choose between one or the other I would say React sounds like a better deal.

@evanplaice I also would recommend Reactjs, also see this project as a opportunity to learn.
So if we had thins like Jade or other simple tools easy to learn will be good for people start implementing them and learn in the end.

@evanplaice

"Why 2 teams? This isn't exactly a large undertaking, unless the data api is meant to be used for both web and mobile apps in the future."

We'll create a web and mobile app :wink:

"The important questions should be what is the scope?"

Basically, these are the specs.
Students need to register again, but it'll be for a good cause. I think that no one will care about it.

"Will development servers be made available for testing? Who will be responsible for the setup, payment, maintenance?"

We need to discuss about it.

"Will this be used to host relevant documentation in the future?"

To document what kind of things?

"How will commits be handled. Will direct push access be granted or is it back to the ol' fork, branch, submit, merge churn?"

I'd highly recommend use this git workflow.
@SoullessWaffle

"Do we want to use a REST api or websockets for client-server communication (or a mix of both)?"

REST. We need basically a CRUD system for now. :smile:

I agree with @ericdouglas, also I recommend use git workflow. Good way to keep organize.

@ericdouglas OK, I switched to committing to the 'develop' branch. Also pushed another pull request. There's a minor conflict in README.md.
Getting a basic database up with CRUD access should be straightforward enough. MongoDB isn't a relational database so faking relationships between collections is pointless. I'll see if I can come up with a basic data model to share.
GitHub login is going to be a huge pain and is beyond my ability. oAuth is not the easiest authentication method to implement. Hopefully, somebody with prior experience with it will come along.
If the site is handling logins, HTTPS support would be ideal for security purposes.
Posting to social media when you complete a course is strictly a front-end thing. Once a user is viewing his/her profile, all the social links should be there. Authentication to post should come up when the social site's API is called.
User map positions will only be possible if location data is made available. Unless the users type a location into their profile, then a dataset that maps city names to coordinates is needed.

oAuth is not the easiest authentication method to implement.

*cough* Meteor *cough*
Alright, I'll shut up now ( ͡~ ͜ʖ ͡°)

So, to recap:
Project Tools

Function
Tool

Team Communication
Slack

Development Planning
Hansoft X

Git Workflow
Git Flow

Server
Node.js

Database
MongoDB

Asset Bundler
Webpack

App Framework
ReactJS

View Language
HTML

CSS Preprocessor
Stylus

CSS Framework
Semantic UI

Unit Testing
Jest?

Code Coverage
Coveralls?

CI Service
Travis CI?

Hosting
DigitalOcean*

* I have some credits on DigitalOcean, and depending on how long it takes it should be enough to cover development.

@SoullessWaffle I'd suggest

Transpiler: Babel (backend & frontend)
Test (backend): Mocha, Chai, Sinon.js, Supertest
Code Coverage: codecov.io
CI Service: Travis :+1:
Hosting: DO* :+1:

* I've some credits, too.

Form to catch your e-mail and send an invitation to our Slack Channel for the dev team.

@ShirazSuleman Looks good for me. :+1:
For testing maybe using Jest for React it's better, if i'm not wrong. @ericdouglas

@jdinartejesus those tools are for the backend :smile:

@oscar-g	@thebergamo	@dishark	@odiefrom @maicoqb @Heasummn @waterlooSunset @vongst @m-schrepel @jdinartejesus @evanplaice
If you want to contribute, please fill out this form so we can send you invites to the Slack chat and Hansoft X development board.

@ericdouglas that table I made lists all the tools we're using for the project, including back-end and front-end.

Looks great, everyone! Let's keep planning in the development board.

@oscar-g I filled out the form... Still awaiting approval.

I didn't receive anything yet about Hansoft x or Slack. I'm the only one? @ericdouglas

@mseyne @waterlooSunset @oscar-g @jdinartejesus I invited you guys to the dev board. You should receive an email any minute.
@evanplaice we didn't receive your form submission, could you please try again?

@jdinartejesus I sent the slack's invitation for you.
@evanplaice we didn't receive your info... Can you fill this out again?

I am super excited about this! I just submitted the form and I am excited to participate and help wherever I can.

@jbhum great! Thank your for your interest! :smile:
Closing this issue because we already started to develop the app.

If anyone else wants to help develop the app, please see these instructions.

@SoullessWaffle Done...

@SoullessWaffle sorry I just saw this and the form's closed. Can I get an invite to slack?

@vongst You should have an invite from @SoullessWaffle.

I filled in the form but didn't receive a slack invite, would it be possible for me to get one?

@ShirazSuleman You will probably get one some time tomorrow. Most of the people that can send one have not been online for most of the day. Post on here again tomorrow evening if you haven't received one yet and I will make sure someone sends one your way.

Hi! Would love to help on all things Node and React!

@firstdoit Feel free to look at this to get started contributing to this project!

Great! Can someone invite me to slack at<EMAIL_ADDRESS>?

Invite me to slack too<EMAIL_ADDRESS>

@maicoqb see this section. :wink:

@ericdouglas Done. ;)

@maicoqb :+1:

@jbhum I've not received any slack invite yet.

@ShirazSuleman did you fill out the form on the page I linked?

Yep, I can do it again if needed?


AAA: Let event Pokemon change their ability

Don't be fooled by the comparison; all I did was add an if statement around the preexisting code and indent it, but GitHub didn't quite get that.

@Zarel do you think this is the right way to implement this

I'd prefer if we just passed a boolean "ignore abilities" instead of calling getRuleTable fifty times.

What if we just store ruleTable as a global instance variable?

It's not a global, it's associated with the format which is associated with the validator which is non-global; you can't make it global.
I guess you could make it a member. I wouldn't be opposed.

So like define this.ruleTable in the constructor?

Yeah.

Maybe even define a method this.hasRule

I still think "ignore abilities" should be a boolean to pass into validateEvent.

I disagree. validateEvent is called by both validateSet and validateSource so you'd need to either pass that parameter to validateSource even though that function doesn't doesn't need that itself, or call .hasRule once in validateSource instead of calling it once in validateEvent which neither saves time nor simplifies the code. Better to just declare this.ignoreIllegalAbilities once in the constructor than to have to constantly pass a parameter around just so one function can use it once per call.

I think it makes sense for individual callers to determine whether or not they care about illegal abilities.

Individual callers don't get to choose. It's entirely dependent on the ruleset of the format which is stored as a const in the constructor. The value of the parameter would literally never change until you constructed a new validator for a different format altogether, so there's no reason to pass it as a parameter as if it could ever be different from call to call.

...fair, I guess.


type alias byte for bytes1

Notes:

Had to change some of the tests because 'byte' was being used as a variable.
All tests pass in /packages/cashc dir, however, they fail from the root. Even on a fresh copy, it still threw errors.

#59

Awesome! Thanks for the PR @nathanielCherian, I'll look at it early coming week.

Looks great! I added two more test cases and removed one that was apparently duplicate (unrelated to this PR, but I noticed it along the way).

Oh and the failing tests were because I run some tests on mainnet, and the wallets ran oout of money. Sorry about that!

Great, sounds good!


Generator with logging support issue

When logging is specified through the generator it doesn't add the redact option under the logger branch in the generated config.json
"redact": ["password"],

My thinking was to only add the redact field where appropriate e.g. the auth service. Might make sense to include it in the generator as an example though.
On Dec 20, 2016, at 5:44 PM, Carlos Justiniano <notifications<EMAIL_ADDRESS>wrote:
When logging is specified through the generator it doesn't add the redact option under the logger branch in the generated config.json
"redact": ["password"],
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fflywheelsports%2Fgenerator-fwsp-hydra%2Fissues%2F18&data=01|01|eric%40flywheelsports.com|caf8c244039346fe6d1208d42929d224|e110a28e5f4f4e558488575a2ed46dbc|0&sdata=l8DMdYdWtbVHpN8Y11rM6Gg%2F0IRk0vsMV%2F7fe4FBZyQ%3D&reserved=0, or mute the threadhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAASVeXWp82PhIsWWW3OHL2t1IjLJZUGYks5rKFpngaJpZM4LSYgK&data=01|01|eric%40flywheelsports.com|caf8c244039346fe6d1208d42929d224|e110a28e5f4f4e558488575a2ed46dbc|0&sdata=1h7A7UioObytZZtOBkGTuw5b0sdzDKCR8k%2FVgJu1KZs%3D&reserved=0.
This message contains confidential information and is intended only for the individual named. If you are not the named addressee you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately by e-mail if you have received this e-mail by mistake and delete this e-mail from your system. E-mail transmission cannot be guaranteed to be secure or error-free as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain viruses. The sender therefore does not accept liability for any errors or omissions in the contents of this message, which arise as a result of e-mail transmission. If verification is required please request a hard-copy version.


Create new "emergencymanagement" PostgreSQL enterprise geodatabase during install

Added fix to Esri\ops-server-config v.next. Closing issue.

Reverse this change. Turned out EM team didn't need this enterprise geodatabase.

Removed emergencymanagement database creation from OpsServerConfig.py. Closing issue.


Update channels

I've changed the icon for ViaplayTv to a png as previously requested and added another additional channel.

is there a way to add south korea tvn channel? tia.

Of course there is, but I'm trying to limit the scope of my PR in order to get it approved.
I'm having some issues getting them approved so I kinda don't want to take the risk.

The reason I didn't filed an issue is that I wanted to help out.
It seemed more reasonable to submit an individual change rather than ask for it.
I'm sorry if my actions had the opposite effect.
I've made some changes to my PR and run them through the validate script.
It seems like now there are no issues.

The SBS channel was replaced by Viaplay.
This link proves what i'm saying.

I filled in the replaced by columna but not the closet column. I'll make those changes and put Viaplay by alphabetical order.

LGTM. Thank you.


ciao-deploy: use a generic base clear image for building cnci.

Rather than use a custom image, just use the latest clear release
as a base image and install the packages we need.
Signed-off-by: Kristen Carlson Accardi<EMAIL_ADDRESS>

Coverage increased (+0.01%) to 65.395% when pulling 9608fb61863cc09ff8f1286b57ceebd693e80a56 on kaccardi:topic/update-cnci-image into fabdde43d25d4365ddc84a5727829bf7b13438c4 on ciao-project:master.

Coverage increased (+0.01%) to 65.395% when pulling 9608fb61863cc09ff8f1286b57ceebd693e80a56 on kaccardi:topic/update-cnci-image into fabdde43d25d4365ddc84a5727829bf7b13438c4 on ciao-project:master.

Coverage increased (+0.01%) to 65.395% when pulling 9608fb61863cc09ff8f1286b57ceebd693e80a56 on kaccardi:topic/update-cnci-image into fabdde43d25d4365ddc84a5727829bf7b13438c4 on ciao-project:master.

Coverage increased (+0.01%) to 65.395% when pulling 60f72491567c7287cf7dd22346fd5a3d69741fa6 on kaccardi:topic/update-cnci-image into fabdde43d25d4365ddc84a5727829bf7b13438c4 on ciao-project:master.

@rbradford my best guess on why this is failing on semaphore is the size of the image. We can try using a different clear base image - the cloud image is smaller, but would need the addition of "network-basic".
and "kvm_host" - https://download.clearlinux.org/current/config/image/cloud-config.json

and that image is qcow2

@kaccardi  I think you need to install even more. I tried this on ccloudvm and i noticed that e.g. no dnsmasq was inside: here is the list of bundles for the original ciao-networking image: https://download.clearlinux.org/current/config/image/ciao-networking-config.json

@kaccardi  also does the chroot swupd process work inside a proxied network?

@rbradford yes it should work on proxied network, but that's why we have to do that copy of /etc/resolv.conf before running swupd.

Coverage decreased (-0.08%) to 65.302% when pulling e4899848caecfe1fa9af6bb0f799b7c0bc595fe5 on kaccardi:topic/update-cnci-image into fabdde43d25d4365ddc84a5727829bf7b13438c4 on ciao-project:master.

Coverage decreased (-0.01%) to 65.289% when pulling 9e993cc63b8f59e93da1ae97e2153743ce3e04fd on kaccardi:topic/update-cnci-image into 7f660611a2c30b5aae5b80522c19f6531b45e406 on ciao-project:master.

Coverage decreased (-0.01%) to 65.289% when pulling 9e993cc63b8f59e93da1ae97e2153743ce3e04fd on kaccardi:topic/update-cnci-image into 7f660611a2c30b5aae5b80522c19f6531b45e406 on ciao-project:master.

Coverage remained the same at 65.302% when pulling 9e993cc63b8f59e93da1ae97e2153743ce3e04fd on kaccardi:topic/update-cnci-image into 7f660611a2c30b5aae5b80522c19f6531b45e406 on ciao-project:master.

Coverage remained the same at 65.302% when pulling a7b5c889c5b8fac38045734a28d2190e381fbe94 on kaccardi:topic/update-cnci-image into 7f660611a2c30b5aae5b80522c19f6531b45e406 on ciao-project:master.

Coverage decreased (-0.007%) to 65.295% when pulling e9e3d4461dc1d2ce8e1b23acf324d1d547405177 on kaccardi:topic/update-cnci-image into 7f660611a2c30b5aae5b80522c19f6531b45e406 on ciao-project:master.

Coverage increased (+0.005%) to 65.307% when pulling 0fe6f2072e335a44a908fee57ef50fd18ab22b64 on kaccardi:topic/update-cnci-image into 7f660611a2c30b5aae5b80522c19f6531b45e406 on ciao-project:master.

Coverage remained the same at 65.307% when pulling 2c3bbf5ec41df8b035243130f2598b97715b8a11 on kaccardi:topic/update-cnci-image into 57016de0760da68fc244a78f58d0253c3d6ae3da on ciao-project:master.

Coverage decreased (-0.005%) to 65.302% when pulling 73bcdb41a5040e865ae8dfa2e78ea392ffd2fb45 on kaccardi:topic/update-cnci-image into 57016de0760da68fc244a78f58d0253c3d6ae3da on ciao-project:master.

@rbradford I think this change will address your proxy issues. I also added code to clean up any old clear images that might be left if latest changes.

Coverage remained the same at 65.307% when pulling a8da7a7ba9f319ab183a045ac80845088eacc6ab on kaccardi:topic/update-cnci-image into 57016de0760da68fc244a78f58d0253c3d6ae3da on ciao-project:master.

Coverage decreased (-0.005%) to 65.302% when pulling f19cc27c8be73fb1a47265ef78ac24230292a0c7 on kaccardi:topic/update-cnci-image into 57016de0760da68fc244a78f58d0253c3d6ae3da on ciao-project:master.

Coverage decreased (-0.005%) to 65.302% when pulling f19cc27c8be73fb1a47265ef78ac24230292a0c7 on kaccardi:topic/update-cnci-image into 57016de0760da68fc244a78f58d0253c3d6ae3da on ciao-project:master.

Coverage remained the same at 65.307% when pulling b2d749d0d6b060abb68d14c4df686840a5c57815 on kaccardi:topic/update-cnci-image into 57016de0760da68fc244a78f58d0253c3d6ae3da on ciao-project:master.

Coverage remained the same at 65.307% when pulling 3f2f16c0f1cae43416511d17b0c74ce3a64dd674 on kaccardi:topic/update-cnci-image into 57016de0760da68fc244a78f58d0253c3d6ae3da on ciao-project:master.

Coverage decreased (-0.03%) to 65.279% when pulling 208f7405f65f631062468947c80a4cf8c1c6895f on kaccardi:topic/update-cnci-image into 57016de0760da68fc244a78f58d0253c3d6ae3da on ciao-project:master.


Roslyn Analyzer works even though I disabled It

I don't like analyzing my code while Editing So I Disabled the Roslyn Analyzer through  Enable support for roslyn analyzers, code fixes and rulesets setting
But It still works even after restarting language server and restarting vscode
I switched to version v1.26.0 and Everything is working fine

This is a side effect of switching to the new roslyn based language server as a default in the latest version of the extension.  For now as workaround you can either downgrade or set the dotnet.server.useOmnisharp flag to get back the old behavior.
This is an option we should consider in the new roslyn based language server as well
cc @mavasani

I upgraded to the latest version and set dotnet.server.useOmnisharp to true and restarted vscode but unfortunately the behavior did not change

Hmm that's definitely unexpected.  Mind sharing your C# / Omnisharp logs from the output window when you have the 'dotnet.server.useOmnisharp' setting checked?

from c# output

Ah gotcha.  When the devkit extension is installed, the dotnet.server.useOmnisharp option is ignored - this is because devkit requires that the C# extension is launched with the new Roslyn LSP based server.
In order to use the dotnet.server.useOmnisharp flag, C# devkit needs to be uninstalled or disabled.

Is there any chance to fix it ?

I have the same behaviour, but from the C# output log it will stuck at Starting server... indefinitely.

I want to use the IntelliCode extension but it depends on the C# Dev Kit, which will enforce the use of Roslyn. But it's so broken that the language server can't even be started.
I'm on openSUSE Tumbleweed with .NET 7.

Hmm that's definitely unexpected. Mind sharing your C# / Omnisharp logs from the output window when you have the 'dotnet.server.useOmnisharp' setting checked?

Really? Unexpected? Considering latest few releases this kind of stuff becomes rather greatly expected. "Oh, look, they released a new version of C# extension!


Persistent route after restart

Can we add a persistent route script after restart? Every time I restart the machine, previous client connection is invalid.

Not sure what you are referring to, but it has nothing to do with the installer.
If every time you restart the machine you are unable to connect, check that the IP address of your server is not changing.


Remove transparency section from screening-schema.json

Propagate the changes from DPGAlliance/DPG-Standard#17
And migrate any existing content from primero and opencrvs files from termsOfServiceURL to privacySecurityDescription

Removed transparency section from screening schema and migrated its fields to dataPrivacySecurity section below privacySecurityDescription


Add prettier config options

Currently there are no options such as:
pluginOrder: [
  'container',
  'display',
  ...
]

https://github.com/tailwindcss/tailwindcss/tree/master/src/plugins
Need a method of adjusting the order of classes.

Implemented. Available under prettier config with:
twPluginsOrder: "container,position,inset"


#87: Конкретная реакция

Job gh:dronmdf/telebot#90 is in scope.

Oops! There is no order for job gh:dronmdf/telebot#90.

Job gh:dronmdf/telebot#90 is now out of scope.


Converting the warning on discover parts send into an error

By default the error is deactivated and can be manually activated
by setting PartitionedArrays.ERROR_DISCOVER_PARTS_SND[] = true

Codecov Report

Merging #45 (4ebb51b) into master (8b4a5ae) will decrease coverage by 0.04%.
The diff coverage is 80.00%.

@@            Coverage Diff             @@
##           master      #45      +/-   ##
==========================================
- Coverage   91.74%   91.69%   -0.05%
==========================================
  Files           7        7
  Lines        2084     2084
==========================================
- Hits         1912     1911       -1
- Misses        172      173       +1

Impacted Files
Coverage Δ

src/Interfaces.jl
91.33% <80.00%> (-0.09%)
:arrow_down:

src/Helpers.jl
95.45% <0.00%> (+0.06%)
:arrow_up:

Continue to review full report at Codecov.

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

By default the error is deactivated and can be manually activated
by setting PartitionedArrays.ERROR_DISCOVER_PARTS_SND[] = true

I am not sure this is a good idea. I think the warning is better.
It is not actually an error to use that algorithm, it causes a serious performance issue that we want the user to be aware of.
As it is now, it might pass unadverted that you are using that algorithm. I know that you can activate the error, but it is very easy to forget that that option exists, etc.


Sensu mutators do not scale under many events

Hello,
It seems like Sensu Mutators are very expensive and if you are handling many alerts Sensu starts to fold under the load of forking so many events.   Is there a best practice on how to scale these?
-John

@johntdyer you will either need to write the mutator in an efficient language (e.g. golang or c) or write a mutator extension (eventmachine Ruby) that runs within the Sensu server process (much or efficient).

@johntdyer can you provide some additional context around what you're trying to do with mutators? Perhaps there's an alternative solution for what you're trying to accomplish, or maybe some improvements to the documentation will help... please advise.

@calebhailey So we this one process which returns a list of IP's it can not reach.  We have a mutator which checks this list of IP's against another source of truth to see if they are out of routing
gateway ----->   [runtime,runtime,runtime,runtime,runtime]

Sometimes we take a runtime out of routing for maintenance and there is no reason to get a page for a blacklisted runtime in that case.
I think what I would love to see is if you could have a mutator scoped to a check, or class of checks, and only then run the mutator under those conditions.
I hope that makes sense...
Here is the mutator as it stands today:
#!/usr/bin/env ruby

require 'rubygems'
require 'json'
require 'net/http'
require 'uri'
require 'sensu/logger'
require 'logger'

logger = Logger.new('/var/log/sensu/gateway_blacklist_mutator.log')

# Read event data
event = JSON.parse(STDIN.read)
logger.info("CHECK NAME: #{event['check']['name']}")
logger.info("CHECK OUTPUT: #{event['check']['output'].delete('\n')}")
if event['action'].to_s != 'create'
  logger.info("This event is not a 'create' action event for the 'check-gateway-blacklist' check -- No need to run this mutator.  Exiting...")
  puts event.to_json
  exit
end
if event['check']['name'] != 'check-gateway-blacklist'
  logger.info("This event is not a 'create' action event for the 'check-gateway-blacklist' check -- No need to run this mutator.  Exiting...")
  puts event.to_json
  exit
end

# Modify event action so that certain check alerts do not get resolved automatically via API
begin
  blacklisted_ips = event['check']['output'].split("--[")[1].split("]--")[0].gsub(/\s|"/, "").split(',')
  logger.info("BLACKLISTED_IPS: #{blacklisted_ips}")
rescue
  logger.info("I was not able to parse the blacklisted IP's from the event output. Exiting...")
  puts event.to_json
  exit
end

## Get the number of hosts in the blacklist
counter = blacklisted_ips.length
blacklisted_ips.each do |i|
  logger.info("IP: #{i}")

  begin

    uri = URI.parse("http://ops.xxxx.com/routing/#{i.chomp}")
    http = Net::HTTP.new(uri.host, uri.port)

    request = Net::HTTP::Get.new(uri.request_uri)
    response = http.request(request)
    status = JSON.parse(response.body)['routing']

    if status['inbound'] == false && status['outbound'] == false
      logger.info("IP(#{i}) Seems to be out of routing. Ignoring...")
      counter -= 1
    end

  rescue Errno::ECONNREFUSED => e
    logger.error("Unabled to hit routing dashboard")
  end
end

if counter == 0
  logger.info("All of the Blacklisted IPs are out of routing. No need to alert.")
  event['action'] = 'resolve'
  event.merge!('mutated' => true, 'why_mutated' => "Alerting hosts are out of routing")
else
  logger.info("One or more of the blacklisted IPs is in Routing.  We must alert.")
end

puts event.to_json

This is a known limitation of spawning/forking many processes. Using the right language for your mutators can make a big difference, particularly those without a heavy runtime vm to start up, i.e. golang or c.


Fix App Stanza target in Sassquatch Cask

This fixes the following error, which I was seeing when trying to install Sassquatch:
Error: It seems the symlink source is not there: '/opt/homebrew-cask/Caskroom/sassquatch/1.5.0/Sassquatch.app'

Thank you for the contribution. It needed some fixes, so they were made in 1b6c0f423007259dfb4fa6405337b01a6acf219e. Your contribution is still included (and still credited to you), with the appropriate modifications. Please feel free to ask about any of the changes.

Thanks!


Adding a layer of abstraction to Servo integration for Hystrix command metrics that doesn't assume a specific implementation

NetflixOSS » Hystrix » Hystrix-pull-requests #187 SUCCESS
This pull request looks good