Lots of Features, Coding Standards and Fixes

New Entities

Added Symbol.js to Mappings Wrapper.
Added Fill.js for encapsulating abstraction to layer.fill or layer.fills needs.
Added Border.js for encapsulating abstraction to layer.border or layer.borders needs.
Added ColorHelper.js for encapsulating RGB, HSV, HUE, SVG and HEX conversions.
Added Utility.js to start the move in the direction of #6 (issuecomment-255722876)

Feature Additions
Selection.js

Added first() to Selection.js so that if you want simply the first item in the selection developers don't have to iterate through the inner workings just to resolve a API type.

WrapperObject.js

Added wrapObject overload ( #32 ) that points to Application.wrapObject that also automatically self references.
Renamed _object to sketchObject given its usage can be used both internally and externally (plugin dev like myself need a resolver between new and old layers).

Application.js

Added Application.reloadInspector for situations that require the client to repaint itself. SharedStyle changes require this.
Added Application.selectedNativeDocument to enable access to the underlying MSDocument DOM
Added Application.showDialog to enable standardised Dialog creation.

Document.js

Added  newPage that adds blankPages to selectedDocument
Moved wrapObject into WrappedObject.js which removes a lot of the mixed singleton access points throughout the code.

ColorHelper.js

Added  adjustBrightness basically the utility that can add % of white/black to a HEX value (useful for designer color palette hue/sat designs).
Added isHex using regex will determine if a value is a valid HEX Color code
Added hexToRgb converts HEX codes to RGB struct
Added hexToRgbPercent converts HEX codes to RGB Percent struct
Added hexToNativeColorFormat converts hex to MSColor
Added tryGetHex attempts to get unknown object type to MSColorwhere possible (similiar to TryGetValue() in other languages such as .NET)
Added nativeToHex converts MSColor to HEX (ensures future ObjectiveC dependencies on MSColor.colorWithSVGString are in place.
Added hsvToRgb converts HSV to RGB
Added hslToRgb converts to HSL to RGB
Added rgbToHex converts to RGB to HEX
Added rgbToHsv converts to RGB to HSV
Added rgbToHsl converts to RGB to HSL
Added NamedColor struct which enables you to resolve "named" colors to their HEX format.

Layer.js

Added moveToPosition to enable layers to be moved to a X/Y positions.

Style.js

Added fill single and plural getter/setters that can take Hex Colors, MSColor or MSStyleFill
Added border single and plural getter/setters that can take Hex Colors, MSColor or MSStyleBorder
Added SharedStyle Updater and Converter for turning a defined Style into a SharedStyle (need to do the removals etc next)

Fixes / Issue Solutions
README.md

Added Developer section toREADME.md from Master as well as fixing the default write wasn't correct. Developers would need the .plist extension for this to work correctly. Also added newPage / newArtboard example code

Style.js

Fixed (#23) colorFromString was using older objectiveC methods that are no longer available to us.

Header.js

Fixed case sensitivity for Sketch and Rectangle.

Document.js

Added wrapObject tolayerNamed() as if you're searching for a layer by name it didn't resolve to the API centric types which would make all the isGroup (#11) , isPage etc moot.
Fixed (#22) (shapeWithRect_ function not found)and reverted it back to the master branches approach to shape creation.
Refactored layerNamed to use Predicate search to enable partial keyword search
Added allLayersNamed() to enable a search on all layers with the keyword provided. Will return an array of SketchAPI objects.
Refactored pages to use wrapObject instead of new Page()

gulpfile.js

Fixed gulp issue relating to __globals = undefined in Custom Plugin console. Header.js was not being prepended to the api.js. Looking at the current SketchAPI.js it appears it's been there, so using prependify I just injected it back into place before browserify did its work.

TODO

[x]  Predicate Search for LayerNames
[ ]  SharedStyle Conversion
[ ]  Add/Remove Style.border and Style.fill by Fill.js/Border.js as arguments
[ ]  Symbol Unlinking
[ ]  Layer to Symbol conversion.
[x]  Layers parent and reparenting.

For why my opinion is worth, these updates look great!

@kgn thanks! ... I'll be adding about 40-50 hours next week to this project in order to bring it into a position where I can write a @Unity3D export pipeline so figured I'd throw it at you folks to see if there is any value..

Refactored Style.js so that ColorHelper.js can take over more of the general Color duties.

Adding both Boder.js and Fill.js to the mix. Given the intent here is to abstract SketchClient from developers my spidey senses would argue that this is necessary (having written Minecraft mods/plugins and faced the pain of dependency changes on native clients - ASM Bytecode is the true north)

Added a pointer back to Application.js within WrapperObject.js via name of sketchApplication. Ideally I'd personally prefer a more IoC way of attacking this pattern, but if you want to reloadInspector or showDialog right now you'd need to know the inner workings of NSApplication / NSDocumentController which i think misses the point of this API.

Fixed gulp issue relating to __globals = undefined in Custom Plugin console. Header.js was not being prepended to the api.js. Looking at the current SketchAPI.js it appears it's been there, so using prependify I just injected it back into place before browserify did its work.

Documented some of the new code.

Microsoft coding standards habits .. will need to go back to the old ways again heh

It'd be good to have coding standards for the repo, but seems only classes are capitalized.

Yeah I'm open to any standards imposed as whatever keeps the consistency
alive is always a positive thing.
On Sunday, 30 October 2016, David Keegan<EMAIL_ADDRESS>wrote:

It'd be good to have coding standards for the repo, but seems only classes
are capitalized.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/BohemianCoding/SketchAPI/pull/36#issuecomment-257127545,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA2qfs3Uxbad6YxHOdk2rIbAD0deUfYyks5q4_xjgaJpZM4KjXdw
.

--
Regards,
Scott Barnes
http://www.riagenic.com

Added more Color conversion methods
Brought the documentation and code coverage back into a higher %  level.

I must admit I did agonise a little over whether to create a seperate class
for enums or just key/value pair dictionary style then. I choose the other
route given their footprint was small.
gradient is shared with borders and fills. I'm yet to implement the fills
and bring it all together ..
On Monday, 31 October 2016, David Keegan<EMAIL_ADDRESS>wrote:

@kgn commented on this pull request.
In Source/Border.js
https://github.com/BohemianCoding/SketchAPI/pull/36#pullrequestreview-6365181
:

       var border = new Border()

       border.positions = borderPosEnum["outside"];

       tester.assertEqual(border.positions, 2)

       border.positions = borderPosEnum["inside"];

       tester.assertEqual(border.positions, 1)

       border.positions = borderPosEnum["center"];

       tester.assertEqual(border.positions, 0)

     },

     "testGradientTypes" : function(tester) {

       var border = new Border()

       border.gradientType = ColorHelper.gradientTypeEnum["flat"];

Another opinion ;) my preference would be to remove the Enum from them,
but to be verbose for clarity: position instead of pos. (This is my
Obj-c/Swift developer mindset talking :)
border.positions = borderPosition.outsideborder.positions = borderPosition.center
ColorHelper.gradientType.flatColorHelper.gradientType.linearColorHelper.gradientType.radial
Also, why are the two enums used differently? It looks like borderPosEnum
is a global object? If that's the base it probably should be capitalized:
BorderPosition. But then why is gradient type different, being hung off
of ColorHelper?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/BohemianCoding/SketchAPI/pull/36#pullrequestreview-6365181,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA2qfuFDTaZadgzv2vntgfBdO9MQfEy1ks5q5LDJgaJpZM4KjXdw
.

--
Regards,
Scott Barnes
http://www.riagenic.com

Well the helper is essentially a utility pattern. The idea here is that
I've noticed a lot of plugins export / import to CSS for variety of reasons
and the ability to convert both ways back to rgb will likely be of use to
some.
On Monday, 31 October 2016, David Keegan<EMAIL_ADDRESS>wrote:

@kgn commented on this pull request.
In Source/ColorHelper.js
https://github.com/BohemianCoding/SketchAPI/pull/36#pullrequestreview-6365208
:

"slategray": "#708090",

"snow": "#fffafa",
"springgreen": "#00ff7f",
"steelblue": "#4682b4",
"tan": "#d2b48c",
"teal": "#008080",
"thistle": "#d8bfd8",
"tomato": "#ff6347",
"turquoise": "#40e0d0",
"violet": "#ee82ee",
"wheat": "#f5deb3",
"white": "#ffffff",
"whitesmoke": "#f5f5f5",
"yellow": "#ffff00",
"yellowgreen": "#9acd32"
+};

Is this useful enough to be in this API layer? This doesn't seem like
something that will be used a lot, and based on this diagram if this was
needed by many people it might be better in the utilities layer: #6
(comment)
https://github.com/BohemianCoding/SketchAPI/issues/6#issuecomment-255722876
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/BohemianCoding/SketchAPI/pull/36#pullrequestreview-6365208,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA2qfr59gEdPZEbKxTWAbYNDiry-FF2cks5q5LFlgaJpZM4KjXdw
.

--
Regards,
Scott Barnes
http://www.riagenic.com

Well that would be misleading as there is no "Color" type and the other
conversion methods handle the generic colour approaches. This explicitly
enables hex to. Stove color for when devs need an actual native
implementation. The framework may provide coverage for 90% of edge cases
but going in/out of the two layers should be simplified as much as possible
as well - as in where possible provide a bridge to remove deeper
dependencies.
There is NSColor and MSColor too btw
On Monday, 31 October 2016, David Keegan<EMAIL_ADDRESS>wrote:

@kgn commented on this pull request.
In Source/Border.js
https://github.com/BohemianCoding/SketchAPI/pull/36#pullrequestreview-6365170
:

@@ -50,7 +50,7 @@ export class Border extends WrappedObject {
*/
set flatColor(value) {
// TODO : Create internal overloader that routes color conversion based on type (hex, int etc)

var hexToNSColor = ColorHelper.colorFromHex(value);

var hexToNSColor = ColorHelper.hexToMSColor(value);

This just may be me, and again should be defined by coding standards. But
since it's early days and we don't have this I'll insert my opinion ;) I'm
not a big fan of Hungarian notation and think that the end user of the API
shouldn't have to know about the underlying objects like MSColor, so
think this would be better as simply hexToColor.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/BohemianCoding/SketchAPI/pull/36#pullrequestreview-6365170,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA2qflkSTkfv0AqFaNP-NymrV7eLmpl0ks5q5LChgaJpZM4KjXdw
.

--
Regards,
Scott Barnes
http://www.riagenic.com

Incorporated ideas/changes that @kgn gave.

Stubbed Fill.js to help the DOM tree retain developer affordance.

Added Utility.js to start the move in the direction of #6 (issuecomment-255722876)

I'm not sure but I think this PR has so many changes that may be hard to review and test.
And may be eslint would be better?
Just my opinion.

@plrthink Yup, and its likely to get bigger, so where is the "cut-off" point really?
eslint which style guide - Google, Standard or Airbnb ?
Seems most of the packages for eslint in Atom aren't updated either.

@mossyblog I think we need to get some inputs from the BohemianCoding team.

Sure, in the meantime though i'm opting for Standard can always move to a different blend later. Also note that eslint may not work out cleanly, as areas where we take dependencies on native API it will trigger warnings around them not being defined... so will need to also bake in ignores or forgiveness layers.

@mossyblog Awesome

Moved wrapObject into WrappedObject.js which removes a lot of the mixed singleton access points throughout the code.

I think  the whole factory approach to resolving API centric types here can be better handled in a more centralised approach. I had agonised a little whether to just move all that logic into WrapperObject direct but to do that each export class would have be known, which to me is a bad code smell. Instead i simply routed the calls back to Application.js (Application scope) to marshall further from there.

Added first() to Selection.js so that if you want simply the first item in the selection developers don't have to iterate through the inner workings just to resolve a API type.

Added Symbol to the mappings lookup (More to do here)

Refactored Application.currentDocument to more inline with its cousin instance.selectedDocument only with the name Application.selectedNativeDocument to ensure seperate remains intact. Ideally this should go away eventually once code coverage on likely invocation points are in place (i.e. reloadInspector etc)

Tidied up the Notes here.. as its getting to be a massive pull request in changes ...well if you factor in time...
Where is the team? :)

Sorry for the late reply, life's been pretty hectic at Sketch HQ lately : )
We're pretty stoked about the activity here! I'll spend some time today reviewing all the PRs, and hopefully will get this stuff merged ASAP.
Thanks for the awesome work!

@bomberstudios no probs, I have to write a Sketch-> Unity3D plugin for work reasons and figured my efforts are better served where possible here first (assuming i didn't write crap code - which i'm not entirely ready to rule that out either hehe).

@bomberstudios no probs, I have to write a Sketch-> Unity3D plugin for work reasons and figured my efforts are better served where possible here first (assuming i didn't write crap code - which i'm not entirely ready to rule that out either hehe).

Any progress @bomberstudios and @mossyblog? Loads of good stuff in here that I know a few of us would love to use!

I took my foot off the gas as i wasn't sure what the team were wanting to do :/ ...

This is a very much needed update that adds a lot of useful features. Any notice on the progress of the PR review would be appreciated. Good work, @mossyblog — was just about to sort that out myself, but now I don't have to!

@bomberstudios Any updates on the team's plans? The API is pretty limited as-is.


Add view PDF button

Configuration:

Web browser and its version: Chrome 84.0.4147.89 64-bit
Operating system and its version: Windows 10 1909
PDF.js version: 2.6.150
Is a browser extension: no

Steps to reproduce the problem:

Open a PDF with pdf.js viewer
You want to open the PDF using the browsers native PDF viewer (e.g. Chrome or Edge)
You need to download the PDF with the download button, open the downloads folder, drag in browser window again

What is the expected behavior?
3. An easy-to-use button (similar to the download button) allows to view the PDF directly (basically just a link to the current PDF url, displayed as toolbar button)
If others are interested in this feature as well, I'd be glad to submit a PR. The new feature would improve the document handling workflow e.g. with large PDFs, where the native viewers provide more features, but PDF.js is a nice and consistent user interface.
Thank you very much!

You want to open the PDF using the browsers native PDF viewer (e.g. Chrome or Edge)

Note that with the built-in Firefox PDF Viewer, which is why this library exists in the first place, clicking the download button should (by default) offer the user a choice of either saving the file or open it with the system default PDF viewer.

(basically just a link to the current PDF url, displayed as toolbar button)

Given that a PDF document can also be opened using binary data (e.g. in a Uint8Array), there's generally no guarantee that a link actually exists. Furthermore, in some cases even if a link exists, it may e.g. only be valid once and trying to access it again could thus fail. (All of this is why the download functionality, in the PDF.js default viewer, will attempt to offer the download as binary data whenever possible)
Hence the assumption that "just a link to the current PDF url" would work isn't generally correct, unfortunately.
All-in-all, I'm really not convinced that you want yet another "download"-button, since that'd also risk causing unnecessary user-confusion (in addition to the points above).
Ninja-edit: Duplicate of #2553

Ok, thank you for the quick feedback.


IndexError: string index out of range

command :
bamsnap -bam ./F1_dad.bam -ref new_GCA_024713975.2_ASM2471397v2_genomic.fna -ref_index_rebuild -pos CM045671.1:1-31859138
I got bam file for  "olive flounder" species, and then names of the chromosomes are
"CM045671.1", "CM045672.1" ...
As I wanted to screen shot the alignment image for chromosome "CM045671.1",
I set the position like above.
And then, the error occured:
/home/jwshin0727/miniconda3/lib/python3.10/site-packages/pyfaidx-<IP_ADDRESS>-py3.10.egg/pyfaidx/init.py:523: RuntimeWarning: Index file /home/jwshin0727/CNU/Reference/Chinese/new_GCA_024713975.2_ASM2471397v2_genomic.fna.fai is older than FASTA file /home/jwshin0727/CNU/Reference/Chinese/new_GCA_024713975.2_ASM2471397v2_genomic.fna.
warnings.warn(
Process proc 1:
Traceback (most recent call last):
File "/home/jwshin0727/miniconda3/lib/python3.10/multiprocessing/process.py", line 314, in _bootstrap
self.run()
File "/home/jwshin0727/miniconda3/lib/python3.10/multiprocessing/process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "/home/jwshin0727/miniconda3/lib/python3.10/site-packages/bamsnap-0.2.19-py3.10.egg/bamsnap/bamsnap.py", line 233, in run_process_drawplot_bamlist
refseq = rseq.get_refseq(pos1)
File "/home/jwshin0727/miniconda3/lib/python3.10/site-packages/bamsnap-0.2.19-py3.10.egg/bamsnap/bamsnap.py", line 543, in get_refseq
refseq = self.get_refseq_from_localfasta(pos1)
File "/home/jwshin0727/miniconda3/lib/python3.10/site-packages/bamsnap-0.2.19-py3.10.egg/bamsnap/bamsnap.py", line 592, in get_refseq_from_localfasta
refseq[gpos+1] = seq[i]
IndexError: string index out of range
2023-05-18 23:02:10,954 : [INFO] Total running time: 0.0 sec
How can I solve the problem??

I have this same problem. I investigated the code and it's a problem with the function that loads ref data from the fasta file. Something is wrong with the position indexing causing the number of bases to be shorter than the range that's trying to read those bases. The data loader seems to add a configurable margin and well as an additional 500 bases on each side of the range. I'm not really sure why, maybe for visualization reasons? Anyway, i tried debugging it and mostly just got confused because it loads 599 bases when I use a range of 1-1700, but it only loads 1 base with a range of 1-581 and 19 bases with a range of 581-1700. Which means that somehow not only is the program running into indexing errors by making the range larger than the number of bases, but when I try to narrow the range it just loads barely any data at all, which is incredibly confusing. Normally I would expect the number of bases in range 1:1700 to equal the number of bases in any split of the range, so I simply don't understand how indexing is supposed to work in for this program. I think it's some kind of user error on the indexing, but the documentation doesn't really explain how to make this work. I get the sense the program was designed primarily for downloading reference data from a database so that the overlap margin data exists and this is causing weird out of range error behaviour for a full "chromosome" interval where you want to visualize the entire chromosome interval because your reference fasta database is made up of single genes (which is my use case).

I met this problem too and I worked 1 day to solve it... I am gonna list some points that may be helpful if someone needs it.
The first key process is in _option.py, line112-113 (the line may be inaccurate because I have changed the code):
p1['g_spos'] = p1['t_spos'] - int(opt['margin'])
p1['g_epos'] = p1['t_epos'] + int(opt['margin'])

The code afterward uses arguments 'g_spos' and 'g_epos', so make sure the margin is what you need. However, the _option.py doesn't receive the reference file, so I did not change it and just modified another scripts.
The second key process is in bamsnap.py, line 587:
def get_refseq_from_localfasta(self, pos1):

   spos = pos1['g_spos'] - int(opt['margin'])  - 500
   epos = pos1['g_epos'] + int(opt['margin'])  + 501
   seq = (self.get_refseq_from_fasta(pos1['chrom'], spos, epos, self.opt['ref_index_rebuild']))
   i = 0
   refseq = {}
   for gpos in range(spos, epos):
       refseq[gpos+1] = seq[I]
       i += 1
   return refseq, chrom_len

The code expands the range of selection for about 500 bp and 2 times of margin length. If you wanna show the whole region, it will tried to extract this longer range from your reference and caused error. My solution is to limit the spos and epos, just like:
spos = max(0, pos1['g_spos'] - 500)

However, it is easy to limit the spos but difficult for epos, because we don't know the max length of reference. So I changed the code of next function:
    def get_refseq_from_fasta(self, chrom, spos, epos, rebuild_index=False):
        f = self.fasta
        fastachrommap = {}
        for c1 in list(f.keys()):
            arr = c1.split(' ')
            tchrom = arr[0]
            fastachrommap[tchrom] = c1
        chrom_seq = f[fastachrommap[chrom]]
        chrom_len = len(chrom_seq)

        if spos < 0:
            spos = 0
        if epos >= chrom_len:
            epos = chrom_len - 1
        ref_seq = chrom_seq[spos:epos + 1]

        return str(ref_seq), chrom_len

So that it can return the chromosome length, which can be used to limit the epos. The final code is like:
    def get_refseq_from_localfasta(self, pos1):

        spos = max(0, pos1['g_spos'] - 500)
        epos = pos1['g_epos'] + 501
        seq, chrom_len = (self.get_refseq_from_fasta(pos1['chrom'], spos, epos, self.opt['ref_index_rebuild']))
        epos = min(chrom_len, epos)
        i = 0
        refseq = {}
        for gpos in range(spos, epos):
            if i >= len(seq):
                break
            refseq[gpos+1] = seq[i]
            i += 1
        return refseq, chrom_len

In this way, we can solve the problem in code "refseq[gpos+1] = seq[I]". However the change of spos and epos will cause some other problems. Sorry for I forget the exact error, and I will just paste the edited code below:
line 293 in drawreadset.py:
    def calculate_readmap(self, is_strand_group=False):
        group_list = ['all']
        if is_strand_group:
            group_list.extend(self.STRAND_GROUP_LIST)

        for group in group_list:
            self.max_cov[group] = 0

        start_pos = max(0, self.g_spos - self.read_gap_w - 500)
        end_pos = self.g_epos + 500

        for a in self.samAlign.fetch(self.chrom, start_pos, end_pos):
            if len(a.positions) > 0:
                rid = self.get_rid(a)
                self.update_ref_seq_with_read(a)
                if not self.is_exist_read(rid):
                    r = DrawRead(a, self.refseq)
                    r.id = rid
                    r.read_gap_h = self.read_gap_h
                    r.read_gap_w = self.read_gap_w
                    r.panel_g_spos = self.g_spos
                    r.opt = self.opt
                    self.readset[rid] = r
                else:
                    r = self.readset[rid]

and line 27 in basetrack.py:
def draw(self, dr):
        y = self.h - 1
        y1 = 0
        y2 = y
        x1 = 0
        x2 = self.w

        yi = int( y / 2 ) - 5
        h = 10
        dr.line([(x1, 0), (x2, 0)], fill=COLOR['SEPARATE'], width=1)
        dr.line([(x1, y), (x2, y)], fill=COLOR['SEPARATE'], width=1)
        vcls = ""
        i0 = max(1, (1 - self.spos))
        for i in range(i0, self.g_len):
            if i > self.chrom_len - self.spos:
                break
            else:
                posi = self.spos + i
                base = self.refseq[posi]
                base = base.upper()

The trouble is, code above used an argument "self.chrom_len" which is not defined in the raw code. It was quoted in bamsnap.py. It originated from the function : get_refseq_from_fasta(), and was transported among several functions. It is hard to track it secondly, so if you want to solve this problem, work on yourself.
Hope these work can help you. The project is fantastic, and just needs a little improvement. Thanks to the author.


Mongo 6: Remove broken summary and report generation

Drops a whole heap of untested and unused code.  I found out in #1065 that users have never been able to see the summary page, and nobody ever mentioned it, so this drops the page, the report generation, and the Max-N csv generation that was also broken for a long time, untested, and seemed to be of dubious value.
We should have a follow-up discussion

about how to replace summary with a version that Matt would find useful.
about what kinds of report generation we actually need rather than having an unneeded demo report.

Drops a whole heap of untested and unused code. I found out in #1065 that users have never been able to see the summary page, and nobody ever mentioned it, so this drops the page, the report generation, and the Max-N csv generation that was also broken for a long time, untested, and seemed to be of dubious value.
We should have a follow-up discussion

about how to replace summary with a version that Matt would find useful.
about what kinds of report generation we actually need rather than having an unneeded demo report.

I'll need quite a bit of background on what this was supposed to be, what kinds of problems it was meant to solve, etc. Let's discuss it the next time we have a planning meeting.


Provide Swift 4.2 runtime 🚀

User asked about this recently...
Swift 4.2 has now been released.
https://www.hackingwithswift.com/articles/77/whats-new-in-swift-4-2

Swift 4.2 Released 🎉

Now that Swift 4.2 is released, we can move forward with implementing support.
@sciabarracom is looking into using the new actionloop to make swift 4.2 stateful, meaning the swift application will not exit with every invocation/run, it will read from stdin every invocation input params including env variables.
From an user perspective, no braking changes they can migrate their swift 4.1 actions to 4.2 just by recompiling and using the new epilogue based on actionloop
https://github.com/apache/incubator-openwhisk-runtime-go/tree/master/actionProxyLoop

is this issue still relevant?

This is done


firebase_auth: Unhandled exception in user.reload() if the user is disabled

'dart:async/future_impl.dart': Failed assertion: line 146: '<optimized out>': is not true.
#0      _AssertionError._doThrowNew (dart:core/runtime/liberrors_patch.dart:40:39)
#1      _AssertionError._throwNew (dart:core/runtime/liberrors_patch.dart:36:5)
#2      _FutureListener.handleError (dart:async/future_impl.dart:146:14)
#3      Future._propagateToListeners.handleError (dart:async/future_impl.dart:654:47)
#4      Future._propagateToListeners (dart:async/future_impl.dart:675:24)
#5      Future._completeError (dart:async/future_impl.dart:494:5)
#6      _SyncCompleter._completeError (dart:async/future_impl.dart:55:12)
#7      _Completer.completeError (dart:async/future_impl.dart:27:5)
#8      _AsyncAwaitCompleter.completeError (dart:async/runtime/libasync_patch.dart:40:18)
#9      FirebaseUser.reload (package:firebase_auth/firebase_auth.dart)
<asynchronous suspension>
#10     FireBackend._loadUser.<anonymous closure> (package:cuida/firebacke<…>
flutter: UserInfo change listener: null data
flutter: UserInfoRO change listener: null data

The title says it all. I call reload() on a user and everything works fine until I disable the user in the Firebase Authentication console. The next reload() call bombs out.

Hi @kika looks like on Android this exception is not caught. Did you try this on Android and iOS and if so what were the results? Did it fail on both?

I'm no longer having this issue on iOS or Android. Instead of assert exception i'm getting correct PlatformException(ERROR_USER_DISABLED, The user account has been disabled by an administrator., null)

@kika
This issue has been moved to https://github.com/FirebaseExtended/flutterfire/issues/515. Any further collaboration will be done there.


Is there any way to partial update inner arrays

This is the case:
for p in auth_permissions
update p with {roles[2]: {name:"admin"}} in auth_permissions
return NEW
I want to update the name of the 3rd row of roles to "admin" in auth_permissions, is there any way to do this in arangodb?

The easiest way to do this is probably by using the AQL functions UNION and SLICE:
FOR p IN auth_permissions
UPDATE p WITH {
  roles: UNION(
    SLICE(p.roles, 0, 2),
    [{name: 'admin'}],
    SLICE(p.roles, 3)
  )
} IN auth_permissions
RETURN NEW

If you need to keep existing properties of the object, you could also use MERGE in the second argument to UNION above like so:
[MERGE(p.roles[2], {name: 'admin'})]

In quite a similar situation, I've used the following query:
where:

the array attribute ('subitems') is created if non existent
the new subitem values are merged with existing ones if any.
the subitem may be created or updated in different positions in the array: 0 -> Length(array)+1

FOR item IN myColl
FILTER item._key == "someKey"
LET newItem = {"subid":"15d05ce5a7f6","name":"subitem1"}
LET itemPos = 1
LET updatedArr = HAS(item, "subitems")
?
(
LET arrLength = LENGTH(item.subitems)
LET updItem = ( itemPos < arrLength) ? MERGE(item["subitems"][itemPos], newItem) : newItem
LET updatedArr1 = (itemPos>0) ? UNION(SLICE(item["subitems"], 0, itemPos),[updItem]) : [updItem]
LET  updatedArr2 = (itemPos+1 < arrLength) ? UNION(updatedArr1, SLICE(item["subitems"], itemPos+1)) : updatedArr1
RETURN updatedArr2
)
:
[[newItem]]
UPDATE item WITH {"subitems": updatedArr[0]} IN myColl
RETURN NEW

I've also had similar problem. I have a document like the following
{
 _key:1234,
  list: {1:[], 2: [], 3: [] }
}

I want to update some parts list.1 or list.2, How can I do this? I did try like this query UPDATE '1234' with {list.2: ['test 1', 'test 2']} but it's not working. list[1] or list["1"] is also not working

@narenderv7 in you example list is an object, so you have to use something like this:
UPDATE '1234' WITH {list: {2: ['test 1', 'test 2']}} IN <collection>

@mpoeter Thanks for you replay. It worked.


docker pull is not working on windows containers

Description
docker pull microsoft/aspnetcore not working
Steps to reproduce the issue:
1.install docker for windows version 1.12.3 beta30 on windows 10 version 1607
2.switch to windows containers
3.run  docker pull microsoft/aspnetcore
Describe the results you received:
error pulling image configuration: Get https://dseasb33srnrn.cloudfront.net/registry-v2/docker/registry/v2/blobs/sha256/
2f/2f9f5374bb7003abd768e3da072bd47775503cdde04dcda782f76d945aaf4baa/data?Expires=1479062647&Signature=BCBt-s0nFLUwcH50k2
PrWCaVVbHxL5tMpRCzaTCbedgjHe8409j4qZPBoBkY6vqkmvrZWzFW7bf1j0UUf1G1gBmI62IuXKDtkGU3QtEwTxFvxMPr2ETNcjBnLsoqoYumugsf4oJpUn
xiRnj6sMpk8ucDlmb5TAJzbmRekdHB~~Y_&Key-Pair-Id=APKAJECH5M7VWIS5YZ6Q: read tcp <IP_ADDRESS>:3953-><IP_ADDRESS>:443: wsare
cv: An existing connection was forcibly closed by the remote host.
Describe the results you expected:
container downloading
Additional information you deem important (e.g. issue happens only occasionally):
Output of docker version:
 Version:      1.12.3
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   6b644ec
 Built:        Thu Oct 27 00:09:21 2016
 OS/Arch:      windows/amd64
 Experimental: true

Server:
 Version:      1.12.2-cs2-ws-beta
 API version:  1.25
 Go version:   go1.7.1
 Git commit:   050b611
 Built:        Tue Oct 11 02:35:40 2016
 OS/Arch:      windows/amd64

Output of docker info:
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: 1.12.2-cs2-ws-beta
Storage Driver: windowsfilter
 Windows:
Logging Driver: json-file
Plugins:
 Volume: local
 Network: nat null overlay transparent
Swarm: inactive
Security Options:
Kernel Version: 10.0 14393 (14393.447.amd64fre.rs1_release_inmarket.161102-0100)
Operating System: Windows 10 Pro
OSType: windows
Architecture: x86_64
CPUs: 4
Total Memory: 5.864 GiB
Name: HAMDI
ID: QEK4:NFJE:KHN4:QLVQ:PRNI:OVXZ:36SO:OWTW:6PZM:54AR:7NNP:L32J
Docker Root Dir: C:\ProgramData\Docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Insecure Registries:
 <IP_ADDRESS>/8

Additional environment details (AWS, VirtualBox, physical, etc.):
some output form the service log
[20:47:12.197][WindowsDockerDaemon][Info   ] time="2016-11-13T20:47:12.197388300+03:00" level=error msg="Not continuing with pull after error: error pulling image configuration: Get https://dseasb33srnrn.cloudfront.net/registry-v2/docker/registry/v2/blobs/sha256/c5/c54a2cc56cbb2f04003c1cd4507e118af7c0d340fe7e2720f70976c4b75237dc/data?Expires=1479060429&Signature=Jiv5bU5qbkt5Q6VxEe9GzHYGvpwbwEyaKZKD-wBfjTsZbmkjEAs0VU3AF6X~JC40hgldEo9P6VdUWIPVu7wpnvQr8JysHtiCOLIbH1OUZX75Q~s4JG5KlUz1-I-D0D0Cvq0BY5tW6oAmwuaOq-Xm7JKSeIvVCA9flyqbagy0BkY_&Key-Pair-Id=APKAJECH5M7VWIS5YZ6Q: read tcp <IP_ADDRESS>:2886-><IP_ADDRESS>:443: wsarecv: An existing connection was forcibly closed by the remote host."
[20:47:12.197][ApiProxy       ][Info   ] proxy << POST /v1.24/images/create?fromImage=hello-world&tag=latest
[20:47:37.508][VpnKit         ][Debug  ] com.docker.slirp.exe: using default callback for non-IPv4 frame

@hamdiRuwiss do  you happen to be running the windows machine on virtualbox, and specifically 5.1.8 ?

No never used virtualbox and i desiable firewall and windows defender and i get the same error

@hamdiRuwiss ok, i just asked because i had this issues when using virtualbox 5.1.8, seems its not specific to virtualbox then.

Ok wait i think this is related to server side resources because when i tried now it is working yaee.Thank you

@hamdiRuwiss well for me, if i retry couple of times, it used to succeed and not succeed sometimes (completely randomly).

this is definitely network related because now i use in my workplace network and it is fast

Looks like this is resolved, so I'll close this issue, but let me know if theres something to be resolved :)


Fix keyboard custom

Now uses the correct Keyboard Effect for a number of methods.

The Custom designator for the effect is misleading as the actual effect getting set (Razer.Keyboard.Effects.Custom) implements CUSTOM_KEY. The API (and headers) gave the implication that CUSTOM_KEY's regular mode (using only the color array and not keys array) was supposed to be identical to the old CUSTOM when not having set any key colors.
We should check with Razer first to make sure the non-key array on CUSTOM_KEY not setting positional keys is a bug, I think.

There should be a separation between CUSTOM and CUSTOM_KEY. CUSTOM_KEY is purely for usage with RZKEYS, where as CUSTOM is a pure grid.

CUSTOM_KEY has the normal grid layer as well though. With the "keys" part as an optional additional array that can be passed. So the idea should be that it can be used for both, but this is seemingly not the case then.
I say we still get some clarification from Razer before reverting to having two different (but near identical) grid implementations. If nothing in the "keys" array is set, then logically it should (and is documented to) fall back to the regular grid definition within CUSTOM_KEY.

I've already raised the issue of consistency between devices, in the case of the Deathstalker, I'd imagine CUSTOM_KEY isn't implemented.

Also, using a grid reference for CUSTOM_KEY makes no sense. _KEY refers to the use of RZKEY and not a grid reference.

The CUSTOM_KEY effect has two arrays in the SDK implementation. One that acts exactly as the grid in CUSTOM, and the second which is for setting RZKEY values, which are only active when flagged with 0x01000000, otherwise falling back to the regular grid.
So our implementation simply follows that.

To maintain compatibility with the Deathstalker we'd then have to add the old Custom back, but there should be a cleaner way of doing it.
Simply changing the effect type when passing the Custom (key) effect is non-ideal as we're not actually passing a CUSTOM effect struct and it may break in the future.

It's in their backlog to investigate 👍

Have there been any news on this?

I was playing with this PR the other day and when I implement the changes, I can get my Deathstalker to work but my BlackWidow Chroma breaks then. Not sure if I was just doing something wrong though.

Yeah, that's the crux of it. Word was that Razer was going to investigate the change but I'm not sure on the status of that investigation.

Closing this in favor of #243.


[PASS] Enhance gpu verify pass

Check the mismatch of axis lengths.
This error is easy to meet when we schedule cooperative fetching
cc @eqy

Do we have another way of supporting multi-axis bind?
I think the typical CUDA style for doing this if the axes are independent is to just do
if (threadIdx.x ... < axis_size)
     do_something;

It is a problem of the compiler. But this pattern typically cannot make the performance better. So we can leave this problem latter and use this verification pass to ensure correctness.

I am going to merge this for now as this is an improvement over previous one. However,  note that if there are two thread extent, there can actually be the different thread bound if a schedule contains multiple stages of kernels, a better way is to not check the string, but check by address IterVar

@tqchen My code can handle this case. I only do check inside a kernel


Fetch and display mission

Hi Sir @admirerbrown  👋
I have done some work in the branch which is mentioned below:

Create a route and a view component.
Fetch data from the Missions endpoint
Display Fetched Data in view Component

Hello @MudasirSherwani , good job implementing the project requirements 👍🏾 , However there are still some minor changes before your project is 💯 🏁 complete.

🥇 HIGHLIGHTS:
☑ Good code Structure.
☑ Good commit message
☑ Awesome Code organisation
☑ Good job implementing clean code.

REQUESTED CHANGES.

👉🏾 Please make sure your minimum code styling represents the structure of the wireframe.

Your code vs wireframe..

vs

👉🏾 please show table lines in your minimum or basic structure.


Game way too hard

Need to tweak values in World.tscn and Pipe.tscn
Also adding a difficulty system based on score and adjusting pipe gaps would help

Widened the gaps between pipes and adjusted pipe spawn rate


feat: adding isGooglePaySupported to mock

Summary
added isGooglePaySupported to mock file
Motivation
as mentioned here https://github.com/stripe/stripe-react-native/issues/1129 missing a lot of mocks. not sure if want to add all missing functions in this pr?
Testing

[x] I tested this manually
[ ] I added automated tests

Documentation
Select one:

[ ] I have added relevant documentation for my changes.
[ ] This PR does not result in any developer-facing changes.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Thanks for the PR, I went ahead and added all missing functions/hooks/components in https://github.com/stripe/stripe-react-native/commit/e8745297506e4d20372cc7104691ea53e7dd2cdf, so I'm going to close this out :)


Clearing/Resetting Local Blockchain

Hi all,
As most of us I'm new to programming with EOS and have done some improper actions on the wallet/accounts side and would like to redo my testing.
I've been looking through the documentation and was not able to find any info on how to reset or clear the blockchain that is run through nodeos. Tracing back in the logs I've found out most data is (Mac) /Users/pauloostenrijk/Library/Application Support/eosio/nodeos/data, by clearing this I do get the notion I've just created a new blockchain.
After that I try to import the eosio account, but it then notes that this is already included.
My question is if there is any instructions on completely clearing out the blockchain and their wallets/accounts? I'm definitely willing to create a PR to create these instructions on the Wiki/Documentation. It would be good to have these lined out, thoughts?
Thanks in advance!

bump. I've deleted files from data/ and $user/eosio-wallet folder, but I can still query my keys.

To be sure that you're looking at the correct wallets directory do:
cleos wallet open -n boguswalletname
and you should see an error that gives you the full path of where keosd tried to find that wallet file.
Then delete that directory or whichever individual wallet file you want to get rid of.
No opinion re putting this in separate docs.

Yes, deleting the data folder or using --delete option should delete the blockchain. When you said importingeosio account, do you actually mean importing eosio private key to the wallet? You will need to delete your wallet too if you want to do it. Your wallet files should be found inside ~/eosio-wallet folder

Please let me know if the problem still persists!


V0.11.2.x masternodemanager

Originally this was meant to be just some functions to save masternodes to masternode db file (masternodes.dat) but now it's extended a bit:

CMasternodeMan - masternode manager

separate messages processing
relay only enabled MN or when it's "stop"

CMasternodeDB - serializing masternodes to masternodes.dat file

flush MNs to file every MASTERNODES_DUMP_SECONDS and on shutdown
request full mn list by dseg on start only if update is required because of timeout

rename CMasterNode to CMasternode
clean out unused functions from masternode.cpp/.h
move ProcessMasternodeConnections to CDarkSendPool
check MNs and remove inactive every minute after (MASTERNODE_MIN_DSEEP_SECONDS + MASTERNODE_PING_WAIT_SECONDS) or if update is required because of timeout
rpc

make "masternode list" separate command (backward compatible)
add "full" mode to "masternode list"
add filtering to "masternode list"
"count" can show enabled only

show enabled/total MNs on info tab and update it on separate signal from separate timer (4x times less frequent than in general -> 1 time per second)

Now with 2e05bf2 it seems like it finally starts to make sense "why" :)

Fantastic work! This is exactly what I wanted


Fail to override endpoint

I am trying to override endpoint by using ClientConfiguration but got "InternalError Unable to parse ExceptionName" and "InternalError Message: We encountered an internal error. Please try again.".
Could anyone please explain it is a bug or something wrong in my code ? thanks a lot !
/////////////////////////////
{
Aws::SDKOptions options;
options.loggingOptions.logLevel = Aws::Utils::Logging::LogLevel::Info;
Aws::InitAPI(options);
Aws::Client::ClientConfiguration clientCfg;
clientCfg.scheme = Aws::Http::Scheme::HTTP;
clientCfg.connectTimeoutMs = 1000;
clientCfg.requestTimeoutMs = 1000;
clientCfg.endpointOverride = "<IP_ADDRESS>.:9070";    //storage service address compatible with s3
Aws::S3::S3Client* s3client = new Aws::S3::S3Client(Aws::Auth::AWSCredentials("mykey",
"mysecret"), clientCfg);
auto list_buckets_outcome = s3client->ListBuckets();
if (list_buckets_outcome.IsSuccess()) {
std::cout << "OK" << std::endl;
}
else
{
std::cout << "ListBuckets error: " <<
list_buckets_outcome.GetError().GetExceptionName() << " " <<
list_buckets_outcome.GetError().GetMessage() << std::endl;
}
Aws::ShutdownAPI(options);
}

"InternalError Message: We encountered an internal error. Please try again."
You'll probably have to ask the team that owns the storage service.

Try specifying authRegion. Also, check source code to see if empty "bucket name" variable could lead to problems.

"<IP_ADDRESS>   .     :9070"
Are you sure about that dot between "10" and ":9070" ?

lol

@Bu11etmagnet  Thanks for indicating that typo. Unfortunately the error still happens after correct the wrong address.
@crusader-mike I was trying to modify "authenticationRegion" but it looks the filed is not defined in the struct ClientConfiguration. I am using vs2015 and AWSSDKCPP-Core version is v1.0.97, and AWSSDKCPP-S3 version is v1.0.20060301.97.

debugger and wireshark are your best friends. No idea where did authenticationRegion go. Only @JonathanHenson knows. I remember having to use it (with some older version of SDK) when connecting to Webscale.

https://github.com/aws/aws-sdk-cpp/blob/master/aws-cpp-sdk-core/include/aws/core/client/ClientConfiguration.h
I actually have no idea where it went. It wasn't purposefully removed. Ill add it back tonight. Sorry for the confusion.
Sent from my iPhone

On Apr 26, 2017, at 7:41 PM, crusader-mike<EMAIL_ADDRESS>wrote:
debugger and wireshark are your best friends. No idea where did authenticationRegion go. Only @JonathanHenson knows. I remember having to use it (with some older version of SDK) when connecting to Webscale.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Huh... I checked old code to refreshed my memory on authenticationRegion. Basically:

if seems that at some point authenticationRegion was removed and 'region' was used for authentication. Probably to prevent people from using authentication token produced in another region?

for Webscale I ended up using empty region and empty bucket -- bucket was encoded in endpoint override url anyway, like this:   /blah1/blah2 . I confess -- it is cheating... But I verified that it works in SDK source code. In my case endpoint URL is given from outside and I have not a single clue what is the target bucket name (which, by the way, may not show up on URL at all).

Btw, @lepsiloon -- where is the bucket name in your code? I don't see you setting clientCfg.bucket variable, nor it is present in endpoint override...

oh I remember now... lol... thanks for the refresher.
Sent from my iPhone

On Apr 26, 2017, at 9:57 PM, crusader-mike<EMAIL_ADDRESS>wrote:
Huh... I checked old code to refreshed my memory on authenticationRegion. Basically:
if seems that at some point authenticationRegion was removed and 'region' was used for authentication. Probably to prevent people from using authentication token produced in another region?
for Webscale I ended up using empty region and empty bucket -- bucket was encoded in endpoint override url anyway, like this: /blah1/blah2 . I confess -- it is cheating... But I verified that it works in SDK source code. In my case endpoint URL is given from outside and I have not a single clue what is the target bucket name (which, by the way, may not show up on URL at all).
Btw, @lepsiloon -- where is the bucket name in your code? I don't see you setting clientCfg.bucket variable, nor it is present in endpoint override...
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

bucket is prepended to url due to virtual addressing.
It is loosely document here: https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html
However, S3Client documentation itself never mentions the impact of the final constructor argument, which always defaults to true:
https://sdk.amazonaws.com/cpp/api/LATEST/class_aws_1_1_s3_1_1_s3_client.html#aec09aaff1ecfba34054c5e44b155ec48


Mini Doom II: resize screenshot (900x522 -> 640x480)

screenshot.png is too big

The change can be seen in ab51bb4


HHH-10977 - Entity not enhanced after MappedSuperclass

The first commit causes HHH-10977 and HHH-10973 to be reproduced in the existing test suite, so this PR should be merged before the PR for HHH-10973 (https://github.com/hibernate/hibernate-orm/pull/1487).

Merged. Thanks Luis!


Stop doing a Reset() in ParseReader. It is unnecessary and limiting

Avoid calling *BinlogParser.Reset() in *BinlogParser.ParseReader()
see: https://github.com/siddontang/go-mysql/pull/132 for discussion
This allows streaming data into the parser from files incrementally instead of all at once.

Thanks @apokalyptik


Failed to resolve : com.android.support.appcompat-v7:26.0.0

My dear
When i add compile project , i have receive this error although i have compile appcompat 26.+ library

Hi,
Did you add google repository in your top most build.gradle file?
allprojects {
    repositories {
        jcenter()
        maven { url "https://maven.google.com" }
    }
}


Dask now supports item assignment. Shouldn't xarray support it too?

As of a few weeks ago, dask now supports item assignment. Documentation here.
At the moment, xarray prevents item assignment if a DataArray uses dask arrays.
>>> import xarray as xr
>>> foo = xr.DataArray([1,2,3,4,5,6], dims=('x'), coords={'x':[1,2,3,4,5,6]}).chunk(2)
>>> foo.loc[1] = 44
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/tammas/miniconda3/envs/da/lib/python3.8/site-packages/xarray/core/dataarray.py", line 213, in __setitem__
    self.data_array[pos_indexers] = value
  File "/home/tammas/miniconda3/envs/da/lib/python3.8/site-packages/xarray/core/dataarray.py", line 724, in __setitem__
    self.variable[key] = value
  File "/home/tammas/miniconda3/envs/da/lib/python3.8/site-packages/xarray/core/variable.py", line 889, in __setitem__
    indexable[index_tuple] = value
  File "/home/tammas/miniconda3/envs/da/lib/python3.8/site-packages/xarray/core/indexing.py", line 1379, in __setitem__
    raise TypeError(
TypeError: this variable's data is stored in a dask array, which does not support item assignment. To assign to this variable, you must first load it into memory explicitly using the .load() method or accessing its .values attribute.

Now that this is possible in dask, shouldn't xarray allow it too if the installed dask version supports it?
Kind regards,
Tam

Yes! We'd definitely take a PR for this.
Related — we can also speed up .stack for dask arrays, which we currently have a workaround for because of this.

PR #5174 . This is a start. I'm not too familiar with the inner workings of xarray, so it might need more work.


File Upload Unexpected Focus Order With Mobile Screenreader

Description of the issue
When navigating with Android TalkBack enabled, focus intermittently jumps to an unexpected place on the page after selecting a file through the File Upload component.

Steps to reproduce the issue

Navigate to https://design-system.service.gov.uk/components/file-upload/ or other page using the file upload component on a mobile device
Enable screenreader
Move focus to the file input.
Select a file.

Issue is intermittent, have not been able to narrow down any differences in steps between when focus jumps and when it doesn't.
Actual vs expected behaviour

Actual behaviour: Intermittently, after completing the steps to reproduce, the screenreader loses it's focus position, jumping to the top of the browser. We have also observed it move focus to a different element on the page a couple of times.
Expected behaviour: Screenreader focus remains on the file upload component.
Environment (where applicable)

Originally observed on:

iPhone 8 - iOS 16.5 - Safari 16 with iOS VoiceOver as the screenreader.
Google Pixel 4a - Android 13 - Chrome 121 with Android TalkBack as the screenreader.

Also been reproduced on a Google Pixel 6 with Android TalkBack enabled.

Hi, thanks for raising this.
I've managed to reproduce this (and its intermittent nature) on iOS 17.4.1 using VoiceOver in Safari. Unfortunately, I don't have a modern Android device with TalkBack on hand to test with.
As the form control here is a native element and we don't attach any custom behaviour to it, this is quite likely to be an issue with VoiceOver and TalkBack themselves, rather than an issue unique to GOV.UK Frontend. I was also able to reproduce this on a non-GOV.UK website, which would seem to corroborate that.
We'll do some more digging and see what we can come up with. Thanks again!

@querkmachine Thank you for looking into it and raising the further ticket, really appreciate it!


ENH: reading event header in CTF

It seems that Fieldtrip has the ability to read event type headers, and get strings for each event value. I don't think MNE has this functionality yet.

Check out the Brainvision and EEGLAB readers for API (assuming I've understood the problem correctly)

Yes the CTF software allows you to mark events

we should indeed be able to read these...
do we know how brainstorm or fieldtrip reads these?

The acq console creates the file, but generally only has the initial trigger mark.
Then there’s a whole host of command line helper functions that can parse the ADC channels to add marks, or use thresholds on an optical sensor channel, etc. The marks can also be manipulated manually (with a graphical interface) in the CTF DataEditor software, which is the browsing tool. So you can easily and rapidly manually clean a dataset by pulling out marks that occur during an artifact (useful if you don’t have EOG channels, or muscle artifacts).
Allison C. Nugent, PhD
Director, MEG Core Facility
NIMH/NIH/DHHS
10 Center Drive, MSC 1059
Building 10 Room 4N242
Bethesda, MD 20892-1059
301-451-8863
nugenta<EMAIL_ADDRESS>From: Alexandre Gramfort<EMAIL_ADDRESS>Reply-To: mne-tools/mne-python<EMAIL_ADDRESS>Date: Wednesday, May 29, 2019 at 11:56 AM
To: mne-tools/mne-python<EMAIL_ADDRESS>Cc: "Nugent, Allison C. (NIH/NIMH) [E]"<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [mne-tools/mne-python] ENH: reading event header in CTF (#3543)
we should indeed be able to read these...
do we know how brainstorm or fieldtrip reads these?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/mne-tools/mne-python/issues/3543?email_source=notifications&email_token=ADXW4YGFNOFLIZTAT7C6JJLPX2RNDA5CNFSM4CN6I5D2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODWPZIEA#issuecomment-496997392, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ADXW4YGXFI325LEDOZISVK3PX2RNDANCNFSM4CN6I5DQ.

Tom Holroyd, in our group, is actually working on this… he already had a way to parse them into python (with a sed backend, lol), it’s relatively trivial to put it in the format mne-python expects. He has a pyctf module just for manipulating ctf datasets, there are likely many functions that would be useful.
Allison C. Nugent, PhD
Director, MEG Core Facility
NIMH/NIH/DHHS
10 Center Drive, MSC 1059
Building 10 Room 4N242
Bethesda, MD 20892-1059
301-451-8863
nugenta<EMAIL_ADDRESS>From: "Nugent, Allison C. (NIH/NIMH) [E]"<EMAIL_ADDRESS>Date: Thursday, May 30, 2019 at 10:29 AM
To: mne-tools/mne-python<EMAIL_ADDRESS>mne-tools/mne-python<EMAIL_ADDRESS>Cc: Mention<EMAIL_ADDRESS>Subject: Re: [mne-tools/mne-python] ENH: reading event header in CTF (#3543)
The acq console creates the file, but generally only has the initial trigger mark.
Then there’s a whole host of command line helper functions that can parse the ADC channels to add marks, or use thresholds on an optical sensor channel, etc. The marks can also be manipulated manually (with a graphical interface) in the CTF DataEditor software, which is the browsing tool. So you can easily and rapidly manually clean a dataset by pulling out marks that occur during an artifact (useful if you don’t have EOG channels, or muscle artifacts).
Allison C. Nugent, PhD
Director, MEG Core Facility
NIMH/NIH/DHHS
10 Center Drive, MSC 1059
Building 10 Room 4N242
Bethesda, MD 20892-1059
301-451-8863
nugenta<EMAIL_ADDRESS>From: Alexandre Gramfort<EMAIL_ADDRESS>Reply-To: mne-tools/mne-python<EMAIL_ADDRESS>Date: Wednesday, May 29, 2019 at 11:56 AM
To: mne-tools/mne-python<EMAIL_ADDRESS>Cc: "Nugent, Allison C. (NIH/NIMH) [E]"<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [mne-tools/mne-python] ENH: reading event header in CTF (#3543)
we should indeed be able to read these...
do we know how brainstorm or fieldtrip reads these?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/mne-tools/mne-python/issues/3543?email_source=notifications&email_token=ADXW4YGFNOFLIZTAT7C6JJLPX2RNDA5CNFSM4CN6I5D2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODWPZIEA#issuecomment-496997392, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ADXW4YGXFI325LEDOZISVK3PX2RNDANCNFSM4CN6I5DQ.

Hi. Tom Holroyd here. Yes, I have (now pure) python code that reads MarkerFile.mrk of CTF datasets.
Eric suggested using Annotations to hold them, as opposed to creating an event array. Annotations have a duration, however the marks in a CTF dataset do not, they only indicate a time point in seconds.
As Allison mentioned, there are CTF tools for converting the raw trigger events in the STIM channel to named marks. This can be done with DataEditor or typically, two programs called thresholdDetect (creates marks from ADCs or similar) and addMarker (can create marks from a file or from the STIM channel like mne.find_events). (I also have a python version of thresholdDetect.) None of these tools include the notion of a duration associated to a mark.
Often, one wishes to score a dataset based on some behavioral response or similar, and then include in subsequent analyses only those marks in "correct" trials. One may also wish to manipulate the time of marks for ease of processing, such as moving a stimulus category mark to a response mark. We also have python code for that. Thus, part of the pre-processing in our normal workflow is to threshold, filter, and mark a dataset (including removing marks in bad trials). We have many such pre-processed datasets, where the important "event" information is stored in the MarkerFile.mrk file inside the dataset.
It would be easy to create an Annotations instance directly from the MarkerFile.mrk file, with the duration always set to zero since it's just a collection of (time, name) pairs. It would also be easy to create a simple interface such as
event, event_id = raw.annotations.get_marks(['marker1', 'marker2', ...])

where event is the usual event array and event_id is a dict like {'marker1': 1, 'marker2': 2}, both suitable for passing to Epochs() or whatever, and where the marker names are read directly from the CTF dataset.
 At least that's how mne.find_events() structures the event array. Is this true for annotations as well? There seems to be some notion of "absolute time" associated to an annotation. That is, if I have a trial that lasts 25 seconds, then an arbitrary delay between collection of the first trial and a second, a marker placed at the beginning of the second trial would have a CTF time of (1, 0) --- second trial, time 0 --- and find_events() converts that to a sample number of 25 * sfreq. Do Annotations work the same way? I'm a little confused by the "meas_date" and "orig_time" things, especially in the case of non-contiguous data. If when a CTF dataset is opened we did something like this
raw.set_annotations(mne.Annotations(..., orig_time = 0)

would that use the same time structure as find_events()? Then getting whichever marks you want by name would be easy.

Often, one wishes to score a dataset based on some behavioral response or similar, and then include in subsequent analyses only those marks in "correct" trials... We have many such pre-processed datasets, where the important "event" information is stored in the MarkerFile.mrk file inside the dataset.

These sorts of things can end up living in Annotations, so it seems like a good place to put it.

I'm a little confused by the "meas_date" and "orig_time" things, especially in the case of non-contiguous data. If when a CTF dataset is opened we did something like this

For non-contiguous raw CTF data (?), I don't think we insert any "gaps" between the intervals, just concatenate them together. But you should be able to see this with raw.plot -- if there are just vertical red lines to indicate gaps, we don't do any zero insertion -- if there are periods of zeros that are red, then we do. (Neuromag has the option to pause and restart recordings, and for these files there are these zeroed-out sections.)
In either case, some sort of running offset should allow you to get the raw.annotations set properly for each trial. Maybe try implementing it with Annotations and see if the events line up at the correct times?

So it's OK to have an annotation with a zero duration?
Yeah, CTF datasets can be non-contiguous. You pause recording, then restart (a new "trial" in CTF speak, although trials can be and often are contiguous). The AUX.ds, btw, is a contiguous copy that records through the breaks for those who want that, but it's a larger file).
Sure, I'll try it and see what happens. :-)

So it's OK to have an annotation with a zero duration?

Yes I think currently we do have some like this, such as EDGE_boundary that actually give the boundary locations when you concatenate raw instances.
In principle if no zeros are inserted in the CTF recordings, we should also have the EDGE_boundary annotations added, too. But that should be a separate PR. (Or maybe we do it already, I haven't checked.)

+1 to use an Annotations
the way I would suggest to proceed:

create mne.io.ctf._read_annotations_ctf('fname.mrk') files
update
https://github.com/mne-tools/mne-python/blob/master/mne/annotations.py#L551 to
it can read the ctf .mrk files based on extension
make sure the mne.io.read_raw_ctf reads these annotations automatically
without creating a stim channel

note that I find .mrk files in all the ctf files we share (bst_phantom_ctf,
bst_auditory, MNE-spm-face)
and so I think we just never bothered reading them in the read_raw_ctf
function.

(I've no idea why I didn't see this before) But yes, @larsoner sent me the files I'll take a look.

we should definetly add ctf to supported annotations files.

@massich you have such files
alex@:~$ cd ~/mne_data/
alex@:mne_data$ find . -name "*.mrk"
./MNE-brainstorm-data/bst_auditory/MEG/bst_auditory/S01_AEF_20131218_01.ds/MarkerFile.mrk
./MNE-brainstorm-data/bst_auditory/MEG/bst_auditory/S01_AEF_20131218_02.ds/MarkerFile.mrk
./MNE-brainstorm-data/bst_phantom_ctf/emptyroom_20150709_01.ds/MarkerFile.mrk
./MNE-brainstorm-data/bst_phantom_ctf/phantom_200uA_20150709_01.ds/MarkerFile.mrk
./MNE-brainstorm-data/bst_phantom_ctf/phantom_20uA_20150603_03.ds/MarkerFile.mrk
./MNE-brainstorm-data/bst_raw/MEG/bst_raw/subj001_somatosensory_20111109_01_AUX-f.ds/MarkerFile.mrk
./MNE-fieldtrip_cmc-data/SubjectCMC.ds/MarkerFile.mrk
./MNE-phantom-4DBTi/1/e,rfhp1.0Hz.mrk
./MNE-spm-face/MEG/spm/SPM_CTF_MEG_example_faces1_3D.ds/MarkerFile.mrk
./MNE-spm-face/MEG/spm/SPM_CTF_MEG_example_faces2_3D.ds/MarkerFile.mrk


FIX: broken images issue on production

After adding middleware, customers' images are broken after being deployed on production. So, have added a matcher for "public/customers" in middleware. This resolved the issue on production.

Thank you for the contribution @shnoman97, closing as it look like it was fixed here: https://github.com/vercel/next-learn/pull/355


Addressing #10 : Attendance Chart

I have replaced a bar chart with a pie chart to show attendance. Please check.
By the way, I have deployed my master branch to vercel. should I create and commit to different branches (As I did in this PR) or I should push all my changes into my master. So that you can see changes in my vercel?

give @manan2501 25 points


wilson review 1

Overall a few style guide issues

Incorrect ordering of functions (view and pure should be at bottom)
Prefer named arguments for clarity
Events emitted before state changes (we actually haven't codified this but should)

Medium

Users can be tricked into calling useRecurringAllowance and bork an allowance.

Low

isPermissionApproved doesn't check if revoked, will confuse callers/require calling two

Info
See comments, but a couple to call out

P256SignatureCheckerLib name is not accurate
Error definitions in UserOperationLib not used there and only used in one file: can we put in other file?
rotateCosigner name confusing
I would prefer we separate the example code for permissionCallable.
Some of the things in /utils don't feel like utils to me.

Addressed!


feat: add AnyOf that matches values that satisfy at least one matcher

Closes #58.
Question: I was checking whether I handled copyright correctly, but CONTRIBUTORS seems very out of date?

@favonia we're looking into the out of date CONTRIBUTORS file issue that you raised. Our team needs to decide on what the new contents should be since we've forked the repo from Google but I can go ahead and merge your changes since we've done that with every other change.


Add log server log env variable to template

Why are we adding this? If I vaguely remember there were some deprecated environment variables that I removed in 2.0. I think this was one of them...

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/8499/
Test FAILed.

@ZacBlanco hmm, looks like the documentation is still pointing to these env variables are the recommended way to configure remote logging. are you familiar w/ the alternative?

Let go back through my commits and see if this was actually one of the removed variables. If it is, then I'll let you know about the workaround

@ZacBlanco I found it: https://docs.alluxio.io/os/user/edge/en/reference/Properties-List.html#alluxio.logserver.hostname. Looks like we recommend using ALLUXIO_JAVA_OPTS now. I'll fix the docs


Restructure github project for support of different C++ standards

Currently the C++ standard is not clearly defined.
Create branches for C++14 and C++17.

Strategy clear.


Custom Jasmine Reporters

As part of the upgrade to Jasmine 2, the reporter functionality stopped to work, I added the feature back in a more generic approach. Essentially you bring your own reporters as assets and add them to the configuration file in this way:
reporters:
  junit:
    - "junit_reporter.js"
    - "junit_reporter.boot.js"

And then you can run guard with the --reporters junit flag

Thanks @juanger - the custom reporters will be good to support. I'm going to merge this and then see if I can mixup the tests.


Unable to expose ports to outside on https://labs.play-with-k8s.com

The services exposed from the cluster is not accessible from outside. @marcosnils I created a cluster similar to the one you shown here. But I'm getting gateway timeout error when accessing the service. It would be great to have this functionality working.

yes, Not able to access the application with URL and exposed port number. Please help some once.

Not able to access the application with URL and exposed port number. Please help some once.


not using ldap

hi,
I set postgres server and ran aptlyweb_init_db. And the website was up and running.
But authentication is going to ldap.
In the config file i have commented out all the ldap related settings.
I don't have ldap server to connect to. Is there any way i can disable ldap connection by default?

Hello!
We don't store user passwords now, but you can disable authentication by setting LOGIN_DISABLED=true in configuration.
Another option is adding some logic before this line:
https://github.com/istarion/aptly-web/blob/d8ef3662a0924f5c942fa45ed4d92fae49bf8aae/aptlyweb/views.py#L79
Pull requests are appreciated
I have some ideas on better UX, you can find it in branch feature/angular4 (only design stub now)
https://www.youtube.com/watch?v=6SRm80XjxkU

Thanks for quick reply.
I went with LOGIN_DISABLED = True
earlier i did try to change the auth logic, but my changes did not reflect.
The problem encountered it the sym link for index.html. Seems like symlink is pointing to your machine. and you ended up uploading symlink in git.
I'm getting this error:
raise TemplateNotFound(template) jinja2.exceptions.TemplateNotFound: index.html
And in git is like this:
https://github.com/istarion/aptly-web/blob/develop/aptlyweb/templates/index.html
Nice UX concept. Will try to contribute under my little expertise :)

Yes, you need to build static previously and provide valid symlink to backend.
Readme have been  updated.

couldnt successfully work with npm install. i got these errors:
`root@ubuntuserver:/home/ubuntu/aptly-env/aptly-web/aptlyweb/static# npm install -g gulp
npm WARN deprecated<EMAIL_ADDRESS>gulp-util is deprecated - replace it, following the guidelines at https://medium.com/gulpjs/gulp-util-ca3b1f9f9ac5
npm WARN deprecated<EMAIL_ADDRESS>please upgrade to graceful-fs 4 for compatibility with current and future versions of Node.js
npm WARN deprecated<EMAIL_ADDRESS>Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated<EMAIL_ADDRESS>Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated<EMAIL_ADDRESS>please upgrade to graceful-fs 4 for compatibility with current and future versions of Node.js
npm WARN deprecated<EMAIL_ADDRESS>This module relies on Node.js's internals and will break at some point. Do not use it, and update to<EMAIL_ADDRESS>/usr/local/bin/gulp -> /usr/local/lib/node_modules/gulp/bin/gulp.js
/usr/local/lib
└──<EMAIL_ADDRESS>root@ubuntuserver:/home/ubuntu/aptly-env/aptly-web/aptlyweb/static# npm install
npm WARN deprecated<EMAIL_ADDRESS>This npm package 'angular-ui-router' has been renamed to '@uirouter/angularjs'. Please update your package.json. See https://ui-router.github.io/blog/uirouter-scoped-packages/

<EMAIL_ADDRESS>install /home/ubuntu/aptly-env/aptly-web/aptlyweb/static/node_modules/@uirouter/core
node ./migrate/migratewarn.js

sh: 1: node: not found
npm WARN optional Skipping failed optional dependency /chokidar/fsevents:
npm WARN notsup Not compatible with your operating system or architecture<EMAIL_ADDRESS>npm ERR! Linux 4.4.0-112-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install"
npm ERR! node v4.2.6
npm ERR! npm  v3.5.2
npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn
npm ERR<EMAIL_ADDRESS>install: node ./migrate/migratewarn.js
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script 'node ./migrate/migratewarn.js'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the @uirouter/core package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node ./migrate/migratewarn.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs @uirouter/core
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls @uirouter/core
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR!     /home/ubuntu/aptly-env/aptly-web/aptlyweb/static/npm-debug.log
root@ubuntuserver:/home/ubuntu/aptly-env/aptly-web/aptlyweb/static#
`


fix: modal closing on text select

Description

Modals were closing when selecting text.  This was because the modal was listening to the click option in the mask.  When they would go to select text, they would select and drag outside the modal and mouseup which would cause the modal to close.
This has been changed so that only when the user does a mousedown event outside the modal the modal will close (only if the modal is defined with the ability to close by clicking outside the modal).

BEFORE:
https://github.com/DARPA-ASKEM/Terarium/assets/33158416/07ff9cde-0662-42c9-952e-3c3703c496f0
AFTER:
https://github.com/DARPA-ASKEM/Terarium/assets/33158416/4f0c1d33-9c13-46cf-8fd8-86ff3bf2ab8b
Resolves #(issue)
https://github.com/DARPA-ASKEM/Terarium/issues/1688

@blanchco @YohannParis I think part of the problem is that we are interchanging parent-child relations vs z-indices but they are different things.
Here,  is the parent of  so the events are bubbled up and we have some problems telling them apart.
Maybe we can try something like this (make them siblings) that will prevent further issues and not only clicks?
<transition>

 </transitin>

We'd need to adjust the CSS though
main {
  position: relative;
  z-index: 1005;
  ...
}

Also we did something similar before in World-Modeler with trying to disambiguate events using the raw mouse-events themselves, here is the implementation if interested.
https://github.com/uncharted-causemos/causemos/blob/master/client/src/components/modals/modal.vue

root of the problem should be addressed now - videos are behaving the same way as before


[Snyk] Upgrade nuxt from 2.14.4 to 2.14.7

Snyk has created this PR to upgrade nuxt from 2.14.4 to 2.14.7.
As this is a private repository, Snyk-bot does not have access. Therefore, this PR has been created automatically, but appears to have been created by a real user.

:information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.

The recommended version is 3 versions ahead of your current version.
The recommended version was released a month ago, on 2020-10-15.

The recommended version fixes:

Severity
Issue
PriorityScore (*)
Exploit Maturity

Regular Expression Denial of Service (ReDoS) SNYK-JS-UAPARSERJS-610226
482/1000  Why? Proof of Concept exploit, CVSS 7.5
Proof of Concept

(*) Note that the real score may have changed since the PR was raised.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information:
🧐 View latest project report
🛠 Adjust upgrade PR settings
🔕 Ignore this dependency or unsubscribe from future upgrade PRs

Already upgraded manually

Already upgraded manually


SCSS + concatination fails

My following SCSS rule
.mejs-overlay-button {
  background-image: url($icon-mediaelementjs + 'play_custom.svg');
}

results in
.mejs-overlay-button {
  background-image: url($icon-mediaelementjs ) 'play_custom.svg';;
}

which is not what it supossed to result.
Am I doing something wrong?

Perhaps you could use SASS's string interpolation feature? You'd wrap your variable in #{$variable}, so your code would look like this:
.mejs-overlay-button {
    background-image: url('${$icon-mediaelementjs}play_custom.svg');
}

Docs for this are here, and there's a good article here.

Thank you for your reply.
I am totaly aware that there are options to prevent this from happening. I also could put the concationation into a variable and so on.
The main problem on my side is, that I work in a team of 15+ poeple and try to convince them to use csscomb but since this bug exists noone uses it, since this could happpen in the futur on places where we are not aware of.

That makes sense, you want to be sure that csscomb doesn't accidentally break your code!
I couldn't find the cause of this. No combination of options fixes this.
I can add some extra info though, it might help others figure this out:

This only seems to occur with url()
It occurs with strings or variables
The position of the space around + (space left/right) affects the output
If there's no space around + and the variable is used first, the issue does not occur

These break:
background: url('string'+'string'); // url('string')'string';;
background: url($var +'string');    // url($var )'string';;
background: url($var + 'string');   // url($var ) 'string';;
background: url($var+ 'string');    // url($var+ );;
background: url($var + $var);       // url($var ) $var;;
background: url('string'+$var);     // url('string')$var;;

This doesn't break:
background: url($var+'string'); // no space around + and variable must come first

As this is specific to url(), this may be an issue with the parser, gonzales-pe rather than csscomb itself.
Sorry I couldn't be more help @wesselbaum!

This is fixed in the latest csscomb release :tada:


Support  for latest version of Ember.js

Hi there.
Your component is looking promising, however when I tried to use it with Ember 2.8.1 it doesn't work from the box. (for example, BIND-ATTR is deprecated since 1.11).
Are you planning to update it for the actual version of Ember.js ?

Yes, I will roll that out in the next day or so. Thanks.

On Oct 17, 2016, at 5:20 AM, Sergey Popov<EMAIL_ADDRESS>wrote:
Hi there.
Your component is looking promising, however when I tried to use it with Ember 2.8.1 it doesn't work from the box. (for example, BIND-ATTR is deprecated since 1.11).
Are you planning to update it for the actual version of Ember.js ?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Been pretty, will update this soon :)


Pane on did change path

Description of the Change
Change a pane elements .dataset.activeItemPath and .dataset.activeItemName when the path changes.

Alternate Designs

Why Should This Be In Core?
needs to change the core pane-element

Benefits
atom.workspace.getActivePane().element.dataset.activeItemPath

will be more reliable.

Possible Drawbacks
none

Applicable Issues
#15691

can someone please help on how to contribute(I am new to Open Source) :)

start here https://github.com/atom/atom/blob/master/CONTRIBUTING.md

Great work @UziTech; thanks for fixing this!


[FR] Sort options for find_notes

Please confirm

[x] I am running the latest version of this plugin

Is your feature request related to a problem? Please describe.
I want to add a sort option to find_notes.
Describe the solution you'd like
require('telekasten').find_notes( {sort = { 'modified' }} )

sort options: title, created, modified
Additional context
In zk, sorting is implemented
https://github.com/mickael-menu/zk-nvim

I am not 100% sure, but it seems that this is considerably more difficult to do here than with zk. AFAIK, what zk-nvim does is that it calls zk with the sort option, and simply display what is returned (correct me if I am wrong).
Here we just pass everything to telescope and let it handle stuff. I am not sure telescope has the ability to sort stuff based on created or modified dates.

For reference, there is a plugin called telescope-frecency. Maybe it could be nice to see if that can be added as a sort option at a later stage.


doc: Update maintenance window info and jenkins patching instructions

Checklist

[x] commit message has one of the standard prefixes
[ ] faq.md updated if appropriate
[x] other documentation is changed or added (if applicable)
[ ] playbook changes run through VPC or QPC (if you have access)
[x] VPC/QPC not applicable for this PR
[ ] for inventory.yml changes, bastillion/nagios/jenkins updated accordingly

Note that I don't plan to implement this window until June, since I am away at the start of May, but it can form the basis of our ongoing policy (and can, of course, be updated later if desired)

/thaw


AVS refresh_token not found in config

Thank you for reporting an issue with AlexaPi.
Make sure you are running the latest version of AlexaPi, and look through issues before submitting.
Check out our Wiki, and make sure to look at Debugging, and Audio debugging in particular before filing an issue.
In order to help troubleshooting, be sure to include the following information:
Output of the audio debugging script.
Your OS (including version) where you are running AlexaPi:
Raspbian Desktop
4.9.59-v7+
Your hardware platform and model you are running on:
Raspberry Pi 3 Model B
Python release (python2 --version):
Python 2.7.13
Description of problem:
When checking is the service is running, it replies with the critical error "AVS refresh_token not found in the configuration file."
**Expected:
Should the token be there?
Problem-relevant config.yaml entries:
When checking the config file, the refresh token section is blank.
Steps to reproduce:

Run setup script
Enter correct Amazon developer information
Service does not start

Traceback (if applicable):

Additional info:

I think I had same issue: https://github.com/alexa-pi/AlexaPi/issues/381
You need to leave a white space in front of values in config file, like below:

Due to a large number of issues, this one is going to be closed because we think your problem is solved.
If you still have any problem, please feel free to re-open it!


Add MVP Support for OPA Gatekeeper

Rancher should deploy and support Gatekeeper out of the box.
Key MVP requirements:

Install OPA:

Delivered via a system chart, and will have UX similar to the way Rancher deploys Istio into an existing cluster.

Dashboard UI:

at a minimum, there needs to be UI at the cluster level for editing the Gatekeeper CR objects. This can be a simple editor with Rego syntax highlighting in phase 1.
Stretch for MVP is to have the global level policy manager.

Policies:

Will reside at the cluster level initially, with plans to be able to apply from a global catalog.

Additional constraints:
Users should be able to leverage the Custom Resources provided by Gatekeeper directly without using Rancher’s interface.
Users should be able to enable this through the Terraform provider / cluster provisioning process.

Nice to have and future design considerations.
Nice to have:
Rancher should have some pre-canned policies for whitelisting registries, PSP functionality.

Nice to have: Simple enable toggle during RKE provisioning similar functionality as monitoring.
Design Implications:

Users should be able to setup global policies and apply to one or many clusters.
If rancher has a predefined policy, it should be editable by the user. If the user would like to “reset” and go back to the default setting that should be an option to them.
Out of the box policies that could be included:

Policy for whitelisting registries in a namespace, cluster, and globally.

A user should be able to add Registries easily from the UI/API at each scope.

Policy for enforcing a specific registry.

At a project, cluster and global level, an admin should be able to rewrite the images to use a specific registry.

Policy to enforce cluster level unique ingress names.

Users should be able to leverage Gatekeeper's ability to mutate deployments.

To tack onto this request, the Rancher UI should include a Rego editor that works more-or-less like the Rego playground (https://play.openpolicyagent.org/) except should take advantage of the Rancher API to tune the interface specifically to the Gatekeeper+Rancher schema.  For example, it should allow the user to use a drop-down + search box or something to select an extant resource in a cluster and experiment with how different policies will react to the resource.  The user should be able to make changes to the extant resource, to experiment with how changes to the resource result in a pass/fail (and/or mutation) for the policy.
OPA policy should be stored at the Rancher master level and be distributed to all managed clusters.  A tagging system should be used to determine which policies get applied to which clusters.  The idea being that by centralizing the policy, it will reduce duplication and will work hand-in-hand with cluster templates.
We have a Rancher support case #7680 open to track this implementation as well.

Tested on Rancher server master-2523-head- 371ec137f.
Things tested:
API:

Enabling OPA gatekeeper on a cluster level using v1 API.
Template create edit and delete.
Constraint create, edit and delete.
Constraint for whitelisting repos and constraint for enforcing labels.
Verified violations with enforcement type deny and dryrun.

Issues going to be addressed in coming releases :
https://github.com/rancher/rancher/issues/25844
https://github.com/rancher/rancher/issues/25816
https://github.com/rancher/rancher/issues/25769
UI:

Enabling OPA gatekeeper on a cluster level using UI.
UI Dashboard for Constraint template and constraint creation, editing.
Constraint applied for whitelisting repos and enforcing labels.
Verified violations with enforcement type deny and dryrun.

Issues related to UI:
https://github.com/rancher/dashboard/issues?q=is%3Aopen+is%3Aissue+label%3Aarea%2Fopa


copy inputs between signup and login forms on splash

Questions:

Is it a bad idea to copy over the password?
Can using the login/signup be even more similar and streamlined in the future?

I figured I'd do this while I still had it fresh from #311, since I've been meaning to work on this forever.

I think I would feel uncomfortable having my password copied. But maybe less tech savvy people wouldn't care?

The idea is that it's not supposed to feel like it's being copied. It's supposed to feel like it was the same field. But I'm wondering if creating that illusion requires a real security risk.

If it works, there's no security risk. And as long as we require them to fill out a second password field to make sure they match, it should be fine.
I am a little curious as to whether the copied password is actually copied correctly...

If so, I'd say it's probably fine?

I'm fairly sure this should copy the password correctly. I haven't tested it, but the only thing special about password fields versus text fields is that they mask the password in the UI. Javascript should still have access as usual.

I will also say there's no security risk. The password is already exposed on the frontend. Manipulating it with javascript does not expose it any further.

It worked correctly for me. I tested it, obviously :p


Geode was working perfectly fine until now

Platform
MacOS
SDK commit
No response
Geode Version
v1.0.1(?)
Mods Installed
anticheat (2).geode
camila314.acbypass.geode
camila314.demonlist-button.geode
fleym.nongd.geode
hjfod.custom-keybinds.geode
mat.practice-music.geode
mat.rgb-color-input.geode
mat.scroll-zoom.geode
ninxout.crystalclient.geode
Expected Behavior
Expected to open as usual, as all the usual geode files I've been using forever were, and still are in their usual folders.
Actual Behavior
Geometry Dash keeps opening without any signs of geode, just the normal untouched game. All my stats and noclipped levels are still there, but no mods, geode buttons, or hacks are present.
Steps to Reproduce
I just opened GD one day and it wasn't loading geode.
Additional Information
I did verify the integrity of the GD files beforehand, but when it no longer worked, I triple checked the geode files, and again they were all in the right spots, but just didn't work for some reason. My game also wasn't opening because of missing libraries (Which is why I verified the files) And I've tried re-installing, doing everything, and nothing has worked.

did your game auto update, or did you install the new version?

I found the version, its 1.0.0. I don't think it matters though

the 1.0.0 installer for macos was broken, I'd recommend using nightly installer right now

did your game auto update, or did you install the new version?

Well, steap updated about twice while I was working on this, but not recently beforehand.

Does anyone know what geode means by "Unable to find restored fmod?"

what is the exact message?

what is the exact message?

I just saw that when trying to uninstall geode using the installer.

the old installer/uninstaller is deprecated currently, we now have new installers bundled with every release, you should be using them instead
and dont use the 1.0.0 one because its broken, use 1.0.1 when we release it in like 10 min

the old installer/uninstaller is deprecated currently, we now have new installers bundled with every release, you should be using them instead and dont use the 1.0.0 one because its broken, use 1.0.1 when we release it in like 10 min

Heres an error I get when trying to download a newer version:

Yes that is why the 1.0.0 installer is broken, it's fixed in 1.0.1

Yes that is how the 1.0.0 installer is broken, it's fixed in 1.0.1

Thanks, Ill try the 1.0.1 installer when it's released. Ill send an update when I do, but I'm guessing it should work.

Alright, published 1.0.1

Update: I installed 1.0.1, and everything is still there. The libraries, Geode files, but for some reason the game just refuses to use them. Are there any extra installation steps I must take?

Fixed with 1.0.3 release.


Support for reactivity on sub-classed Arrays

What problem does this feature solve?
Support sub-classed arrays.
Prevent vueJS from completely removing the subclassed array's prototype and revert it back to the native Array prototype. This in turn breaks other application code that was expecting the array to have the extended methods.
Example:
const A = class extends Array {
    constructor() {
        super();
    }

    push(...args) {
        console.log("push() called");
        return super.push(...args);
    }
}

const arr = new A();
arr.push(1); // console.log == "pushed() called";

const v = new Vue({
    el: mountEle,
    data: { arr }
});

arr.push(2); // no console output

(Related to #6920)
What does the proposed API look like?
No API changes.
This feature request is simply to request that an array prototype, when replaced in support of Vue's reactivity, continue to call the super method of that array instance when wrapped with VueJS's mutator code.

This will be supported in future versions. See https://github.com/vuejs/vue/issues/5893#issuecomment-308914608

I don't think we can support arbitrary Array-like objects - the line between a actual "object" vs. "array-like" is blurry. We will stick to Array.isArray in this case. But we can and should support Array subclasses.
Also - since subclassing Array is a ES6+ feature, we will likely implement this when we re-implement the reactivity system with Proxies.

@posva thanks for the reference and good to know you are looking to address this at some point in the future.
I needed to have this addressed sooner, rather than later, so I have forked the project and applied a solution to it. You can view it here if you like:
https://github.com/purtuga/vue/commit/56eba101cfdf7acf7009d64d68965fa57acc00d6
Test cases are passing and I will now continue on with its usage on my project. If there is any interest in taking that as a contribution, I will be happy to make it.
(BTW: one test cases was failing even before I made any changes (test: transition out-in on async component (resolve after leave complete)... Just FYI)

For anyone finding this and wanting to use the work-around until the Vue team is ready to introduce this feature: I have created a branch in my forked repo that includes the built files with my changes. You can use it by:
npm i purtuga/purtuga/vue#2.5.2-sub-class-support --save-dev

Thanks @purtuga - that's an interesting approach. While for core we will probably hold on for this, there are a few things that can be improved for your fork. In particular, you are creating a fresh prototype object for every Array being observed, but technically you only need to create a wrapper prototype object once for each original prototype object. This cost can be avoided by having a Map that serves as a cache.

Thank @yyx990803 for taking the time to look at the fork.
That's a good point about the caching of the prototype. I normally use WeakMap for that type of stuff, but I could not any usages of it in Vue's codebase... I did find use of Map, but it was inside of src/server... Perhaps I will create a property on the original prototype and store the VueJS wrapped prototype there. Only potential issue with that approach is if the Prototype been frozen (Object.freeze)
Thanks again. Looking forward to when this feature lands on VueJS.


The readme instructions lead to an error.

I reached the point 3

If you want to run tests on the app -
In the VM run:
cd devops-kungfu
To install app specific node packages:
sudo npm install
Now you can run tests - grunt -v

but after the sudo npm install I get the following error.

I can't find the instructions you are referring to. What file are they in?

Closing due to inactivity.