Clarification of MIDI instrument numbers

On the page:
http://music-encoding.org/guidelines/v3/attribute-classes/att.midiinstrument.html
The definition of a midi.instrnum attribute is to be of type data.MIDIVALUE:
<attDef ident="midi.instrnum" usage="opt">
<desc>Sets the MIDI instrument number.</desc>
<datatype maxOccurs="1" minOccurs="1">
<rng:ref name="data.MIDIVALUE" />
</datatype>
</attDef>

And on the page
http://music-encoding.org/guidelines/v3/data-types/data.midivalue.html
The definition of a MIDI value is:
<content>
<rng:data type="nonNegativeInteger">
<rng:param name="maxInclusive">127</rng:param>
</rng:data>
</content>

Is this correct?  In other words, did I win the argument about the starting number for instruments?  As these were originally offset from 1 rather than 0 in MEI.
I will have to check verovio whether or not this new definition is followed.  @rettinghaus just gave me an example which was indexed from 1 rather than 0 (Drawbar_Organ is 16 or 17 depending on the starting instrument number, with 16 being the value to use according to the above definition).
https://github.com/humdrum-tools/verovio-humdrum-viewer/issues/80

I implemented the MIDI program change in Verovio with offset.
Wikipedia tells about GM

The 0 to 127 numbering is usually only used internally by the synthesizer; the vast majority of MIDI devices, digital audio workstations and professional MIDI sequencers display these Program Numbers as shown in the table (1-128).

As I see MEI coding more on the visual side, I would go with 1-128.
Although it is not always a good idea to follow MusicXML, this is how it is used there.
https://usermanuals.musicxml.com/MusicXML/Content/CT-MusicXML-midi-instrument.htm

And whatever it may be, it should be harmonized with data.MIDICHANNEL.

One idea related to data.MIDICHANNEL data types would be to allow both systems (enumerating from 1 or enumerating from 0): A plain integer would be zero offset, so MIDI channels would be in the range from 0 to 15.  To use the one-indexed version, the channel would be a string rather than a number, and the values would be something like: ch1, ch2, ch3, ..., ch16,  prefixing the data with ch to indicate it is a 1-offset channel number.  These would be mapped to the integers 0–15 when converting to MIDI files.  This is probably the sanest thing to do.
This is how I often do it in my C++ MIDI code, where I use the integers to match how the MIDI protocol implement the channel enumerations from 0, and then I use an enumeration such as CH_1 = 0, and use CH_1 in the code rather than 0.  Then for clarity if I am working from a user's viewpoint I use CH_1 for the first MIDI channel, and 0 when from a programming viewpoint.

As I see MEI coding more on the visual side, I would go with 1-128.
Although it is not always a good idea to follow MusicXML, this is how it is used there.
https://usermanuals.musicxml.com/MusicXML/Content/CT-MusicXML-midi-instrument.htm

MusicXML is indexing them from 1.  But there are parameters like pan and elevation which need to be mapped even further to translate into MIDI data, which are strictly integers in the range from 0 to 127.
Compare how pan is currently expressed in MEI:
http://music-encoding.org/guidelines/v3/elements/instrdef.html

@midi.pan(optional)Sets the instrument's position in a stereo field. Values of 0 and 1 both pan left, 127 pans right, and 64 pans to the center. Value conforms to data.MIDIVALUE. att.midiinstrument

While in MusicXML the value for pan is in the range from -180 to 180 deg.
When converting to a MIDI file, the range -180 to 180 would be mapped to the range 0 to 127.  A hybrid system would be to use integers in the range from 0 to 127, and then allow a data type such as "deg", so 0deg would map to the MIDI data value 64, for example.  Then you can use raw MIDI data values or degrees.
A esthetic problem is that percussion timbers are implemented as MIDI data values representing keys.  These are typically indicated by 0-indexed values (such that middle C is the integer 60) in the user domain.  So if you are indexing your timbres from 1 and percussion MIDI data from 0, there is some incongruity.
The true values for MIDI protocol data is integers in the range from 0 to 127, so plain integers should represent these values directly.  For convenience mappings, there should be a datatype associated with the alternate interpretation, such as ch1 meaning the first channel, which maps to the integer equivalent 0, or 50% representing a MIDI volume of 64.  In other words, there are two units for describing MIDI channels, just as there are multiple units for describing distances.   So allowing both by adding a unit type with the value is a good way to allow flexibility and avoid potential confusion (and the unitless version is the raw MIDI data type which is 0-indexed).
The system proposed above for MIDI channels could also be applied to General MIDI instrument numbers:  integer values could be index from 0 as in the MIDI protocol, and string variants could be indexed by 1.  For example the integer 0 or the string i1 (or pc1 for "patch change 1" which might be more readable) could represent the first instrument in the enumeration (Acoustic_Grand_Piano).  This would allow for MIDI instruments to have the MIDI data datatype as well as a string for which could be easily converted to the integer form by removing the string prefix and subtracting one.

I like @craigsapp's idea of accommodating both 0- and 1-based values.  I'd keep integer or "ch"+integer values for MIDI channels, but use integers or "in"+integer (for "instrument") values for instrument numbers.  "pc" (for "patch change") implies a change from something to something else; "in" is more declarative.

Using in as a prefix for General MIDI instrument numbers that are indexed starting at 1 sounds good to me.
"Patch change" is the traditional name for the MIDI message that changes the instrument, but of course the input parameter is the instrument number.  "Patch change" is a bit technically obscure now and comes from electroacoustic era and early computers where there was a patch bay that was "programmed" by making connections with wires:

@craigsapp, Can you submit a feature request please?
Is this pressing enough to add to v. 4.0.0 or can it wait 'til 5.0.0?

It should be definitely in 4.0.0, as the current state isn’t ok!

I'll implement the following ODD asap --
<macroSpec ident="data.MIDICHANNEL.0BASED" mode="add">
  <desc>0-based MIDI channel numbers; i.e., 0-15.</desc>
  <content>
    <rng:data type="nonNegativeInteger">
      <rng:param name="maxInclusive">15</rng:param>
    </rng:data>
  </content>
</macroSpec>

<macroSpec ident="data.MIDICHANNEL.1BASED" mode="add">
  <desc>1-based MIDI channel numbers; i.e., 1-16. Distinguished from 0-based values by the
    addition of leading "ch".</desc>
  <content>
    <rng:data type="token">
      <rng:param name="pattern">ch([1-9]|1[0-6])</rng:param>
    </rng:data>
  </content>
</macroSpec>

<macroSpec ident="data.MIDICHANNEL" module="MEI" type="dt" mode="replace">
  <desc>MIDI channel number.</desc>
  <content>
    <alternate>
      <macroRef key="data.MIDICHANNEL.0BASED"/>
      <macroRef key="data.MIDICHANNEL.1BASED"/>
    </alternate>
  </content>
</macroSpec>

<macroSpec ident="data.MIDIINSTR.0BASED" mode="add">
  <desc>0-based MIDI instrumental number, i.e., 0-127.</desc>
  <content>
    <rng:data type="nonNegativeInteger">
      <rng:param name="maxInclusive">127</rng:param>
    </rng:data>
  </content>
</macroSpec>

<macroSpec ident="data.MIDIINSTR.1BASED" mode="add">
  <desc>1-based MIDI instrumental number, i.e., 1-128. Distinguished from 0-based values by the
    addition of leading "in".</desc>
  <content>
    <rng:data type="token">
      <rng:param name="pattern">in(12[0-8]|1[01][0-9]|[1-9][0-9]?)</rng:param>
    </rng:data>
  </content>
</macroSpec>

<macroSpec ident="data.MIDIINSTR">
  <desc>MIDI instrument number.</desc>
  <content>
    <alternate>
      <macroRef key="data.MIDIINSTR.0BASED"/>
      <macroRef key="data.MIDIINSTR.1BASED"/>
    </alternate>
  </content>
</macroSpec>

<classSpec ident="att.midiInstrument" module="MEI.midi" type="atts" mode="replace">
  <desc>Attributes that record MIDI instrument information.</desc>
  <constraintSpec ident="One_of_instrname_or_instrnum" scheme="isoschematron">
    <constraint>
      <sch:rule<EMAIL_ADDRESS>        <sch:assert test="not(@midi.instrnum)">Only one of @midi.instrname and @midi.instrnum
          allowed.</sch:assert>
      </sch:rule>
    </constraint>
  </constraintSpec>
  <constraintSpec ident="One_of_patchname_or_patchnum" scheme="isoschematron">
    <constraint>
      <sch:rule<EMAIL_ADDRESS>        <sch:assert test="not(@midi.patchnum)">Only one of @midi.patchname and @midi.patchnum
          allowed.</sch:assert>
      </sch:rule>
    </constraint>
  </constraintSpec>
  <attList>
    <attDef ident="midi.instrnum" usage="opt">
      <desc>Captures the General MIDI instrument number.</desc>
      <datatype>
        <rng:ref name="data.MIDIINSTR"/>
      </datatype>
    </attDef>
    <attDef ident="midi.instrname" usage="opt">
      <desc>Provides a General MIDI label for the MIDI instrument.</desc>
      <datatype>
        <rng:ref name="data.MIDINAMES"/>
      </datatype>
    </attDef>
    <attDef ident="midi.pan" usage="opt">
      <desc>Sets the instrument's position in a stereo field. Values of 0 and 1 both pan left, 127
        pans right, and 64 pans to the center.</desc>
      <datatype>
        <rng:ref name="data.MIDIVALUE"/>
      </datatype>
    </attDef>
    <attDef ident="midi.patchname" usage="opt">
      <desc>Records a non-General MIDI patch/instrument name.</desc>
      <datatype>
        <rng:data type="NMTOKEN"/>
      </datatype>
    </attDef>
    <attDef ident="midi.patchnum" usage="opt">
      <desc>Records a non-General MIDI patch/instrument number.</desc>
      <datatype>
        <rng:ref name="data.MIDIVALUE"/>
      </datatype>
    </attDef>
    <attDef ident="midi.volume" usage="opt">
      <desc>Sets the instrument's volume.</desc>
      <datatype>
        <rng:ref name="data.MIDIVALUE"/>
      </datatype>
    </attDef>
  </attList>
</classSpec>

Question -- Should other places where 0-127 is currently expected,

midi.port
midi.pan
midi.patchnum
midi.volume
att.midiNumber/num
att.midiValue/value
att.midiValue2/value2
vel

also allow 0- and 1-based values?
If so, then we may want to use a single, generic prefix for distinguishing the different kinds of values. The only thing that comes to mind immediately is "o" (oh) for "one".

midi.port
midi.pan
midi.patchnum
midi.volume

For midi.pan 0-127 is the raw MIDI implemetation.  It might be nice to have two alternate units:  percentage from 0% to 100%, and degrees from -90deg to +90deg (however for degrees, how to deal with MusicXML range from -180degrees to +180degrees should be considered):
https://usermanuals.musicxml.com/MusicXML/Content/EL-MusicXML-pan.htm
MIDI panning is strictly stereo panning between left/right speakers.  Allowing for 360 degree panning might be useful for surround-sound applications, but that is not MIDI.
For midi.volume, also a percentage unit might be nice in addition to raw MIDI: 0% to 100%.
midi.port is rare and would be used to play a MIDI file on several synthesizers at the same time (allowing for more than the 16 instrument limit of standard MIDI protocol).  I think I have seen it as "Port A" and "Port B" on MIDI patch bays (so not necessarily presented to the user as a number).
What is midi.patchnum?  That seems to be what I was thinking midi.instrnum is.  There is also to consider how percussion timbers are encoded in MEI.  These are encoded in a different way from regular instruments in MIDI.  Regular instruments are selected using the patch-change MIDI message, but percussion instruments are selected in General MIDI by playing a particular key on the tenth MIDI channel.

Instead of "o" (oh) we could use "-" (minus, as in minus 1) for 1-based values. Not a bad mnemonic, I think.
Putting the "-" after the value, i.e. @midi.pan="100-" would fit well with any of those places where percentage values could also be used, i.e. @midi.pan="100%".  Bare integers, i.e. @midi.pan="100", would still indicate 0-based values.

@craigsapp, I'm inclined to allow 0- and 1-based values everywhere.  That way, I can modify the data.MIDIVALUE declaration and be done for those attributes that use only a number.
For those items in your list that need another kind of value, percent or degree, the data.MIDIVALUE can be alternated with other kinds of values.
@midi.patchnum was added to handle non-General MIDI instrument layouts where, for instance, instrument 1 might not be an acoustic piano. Same impetus behind<EMAIL_ADDRESS>

Currently, there's no distinction between percussion and non-percussion instrument names/numbers.  It's up to the encoder to use the correct values.

I don't think handling 1-based values with a minus or an "o" would be very obvious. The whole problem arises from differentiating between programmable (internal) MIDI values and the user-side "visual" values. And the suggestions by @craigsapp are pointing in a more convenient direction. I like the proposed ODD very much, but it shoud be, indeed, expanded consistently over other attributes. But IMHO that is nothing a generic prefix could handle. Percentage would be the way to go midi.volume and perhaps midi.pan.

@rettinghaus, my intention is to allow both 0-based and 1-based values everywhere a "raw" MIDI value is expected and to allow "alternative" values where convenient, 0-100% for pan and volume, -90 to +90 deg for pan, etc.  However, rather than prefix each 1-based value with a different mnemonic, such as 'ch' for values for MIDI channel or 'in' for MIDI instrument numbers, I'd prefer to use a single mnemonic for all 1-based values, such as 'o'.  This will reduce the number and complexity of the data type declarations in the schema.  Following this plan, a MIDI channel value can be expressed as 0-127 or 1-128o, while pan can be written as 0-127, 1-128o, -90 to +90deg, or 0-100%.  Since "value + units" is used in many other places in MEI, for example, "100%" or "6pt", it makes sense to do the same here, i.e., "128o" instead of "o128".
As @craigsapp points out, the MusicXML value range for pan isn't supported by the MIDI spec.  One option is to allow the MusicXML range and force (most?) applications to map values to the proper MIDI range.  A variation of this is to use MEI's data.DEGREES which permits values from -360 to +360.  Of course, this range would also need to be mapped onto -90/+90 for strict MIDI compliance.  Another option is to stick with the MIDI spec and map MusicXML values (or other values like clock positions) to the proper range during conversion.

Yet another possibility is to use only MIDI-approved values in @midi.pan, but add another attribute (such as @surround, @field, etc.) to hold values intended to represent a 180- or 360-degree sound field.  While we're at it, we could add an attribute that's equivalent to MusicXML's concept of elevation (with the same 180- or 360-degree range, but on an "above/below" axis).

Regarding my earlier comments, I'm including percentage values in the phrase "MIDI-approved values", since they're another expression of the 0-127 range.
On the other hand, spatial location seems like a different thing to me.  How about "azimuth" and "elevation" as names for the new attributes that describe this concept?  Just to be clear -- @azimuth is different from @midi.pan because it describes not just left-to-right position, but rather a circle around the listener's head.  Therefore, @azimuth should use the range from -360 to +360, where -360, +360, and 0 all describe a position directly in front of the listener, and -180 and +180 both describe a place directly behind the listener. In the case of @elevation, -360, +360, and 0 describe a position above the listener, while -180 and +180 both describe a place below the listener.

Here's another stab at it --
<macroSpec ident="data.MIDICHANNEL" module="MEI" type="dt" mode="replace">
  <desc>MIDI channel number.</desc>
  <content>
    <rng:data type="token">
      <rng:param name="pattern">(0|([1-9]|1[0-5])o?|16)</rng:param>
    </rng:data>
  </content>
</macroSpec>

<macroSpec ident="data.MIDIVALUE" module="MEI" type="dt" mode="replace">
  <desc>MIDI values in the 0-127 or 1-128 range.</desc>
  <content>
    <rng:data type="token">
      <rng:param name="pattern">0|([1-9]|[1-9][0-9]|1([0-1][0-1]|2[0-7]))o?|128</rng:param>
    </rng:data>
  </content>
</macroSpec>

<macroSpec ident="data.PERCENT.LIMITED" module="MEI" type="dt" mode="add">
  <desc>Positive decimal number between 0 and 100, plus '%'.</desc>
  <content>
    <rng:data type="token">
      <rng:param name="pattern">(([0-9]|[1-9][0-9])(\.[0-9]+)?|100)%</rng:param>
    </rng:data>
  </content>
</macroSpec>

<macroSpec ident="data.MIDIVALUE_PERCENT" module="MEI" type="dt" mode="add">
  <desc>MIDI values allowed by data.MIDIVALUE plus percentage values.</desc>
  <content>
    <alternate>
      <macroRef key="data.MIDIVALUE"/>
      <macroRef key="data.PERCENT.LIMITED"/>
    </alternate>
  </content>
</macroSpec>

<macroSpec ident="data.NCNAME" module="MEI" type="dt" mode="add">
  <desc>"Convenience" datatype that permits combining enumerated values with user-supplied
    values.</desc>
  <content>
    <rng:data type="NCName"/>
  </content>
</macroSpec>

<macroSpec ident="data.MIDIVALUE_NAME" module="MEI" type="dt" mode="add">
  <desc>MIDI values allowed by data.MIDIVALUE plus NCName values.</desc>
  <content>
    <alternate>
      <macroRef key="data.MIDIVALUE"/>
      <macroRef key="data.NCNAME"/>
    </alternate>
  </content>
</macroSpec>

<classSpec ident="att.instrDef.ges" module="MEI.gestural" type="atts" mode="replace">
  <desc>Gestural domain attributes.</desc>
  <classes>
    <memberOf key="att.channelized"/>
    <memberOf key="att.midiInstrument"/>
    <memberOf key="att.soundfield"/>
  </classes>
</classSpec>

<classSpec ident="att.soundfield" module="MEI.gestural" type="atts" mode="add">
  <desc>Attributes that locate a sound source within 3-D space.</desc>
  <attList>
    <attDef ident="azimuth" usage="opt">
      <desc>The lateral or left-to-right plane.</desc>
      <datatype>
        <rng:ref name="data.DEGREES"/>
      </datatype>
    </attDef>
    <attDef ident="elevation" usage="opt">
      <desc>The above-to-below axis.</desc>
      <datatype>
        <rng:ref name="data.DEGREES"/>
      </datatype>
    </attDef>
  </attList>
</classSpec>

<classSpec ident="att.midiInstrument" module="MEI.midi" type="atts" mode="replace">
  <desc>Attributes that record MIDI instrument information.</desc>
  <constraintSpec ident="One_of_instrname_or_instrnum" scheme="isoschematron">
    <constraint>
      <sch:rule<EMAIL_ADDRESS>        <sch:assert test="not(@midi.instrnum)">Only one of @midi.instrname and @midi.instrnum
          allowed.</sch:assert>
      </sch:rule>
    </constraint>
  </constraintSpec>
  <constraintSpec ident="One_of_patchname_or_patchnum" scheme="isoschematron">
    <constraint>
      <sch:rule<EMAIL_ADDRESS>        <sch:assert test="not(@midi.patchnum)">Only one of @midi.patchname and @midi.patchnum
          allowed.</sch:assert>
      </sch:rule>
    </constraint>
  </constraintSpec>
  <attList>
    <attDef ident="midi.instrnum" usage="opt">
      <desc>Captures the General MIDI instrument number. Use an integer for a 0-based value. An
        integer preceded by "in" indicates a 1-based value.</desc>
      <datatype>
        <rng:ref name="data.MIDIVALUE"/>
      </datatype>
    </attDef>
    <attDef ident="midi.instrname" usage="opt">
      <desc>Provides a General MIDI label for the MIDI instrument.</desc>
      <datatype>
        <rng:ref name="data.MIDINAMES"/>
      </datatype>
    </attDef>
    <attDef ident="midi.pan" usage="opt">
      <desc>Sets the instrument's position in a stereo field. Values of 0 and 1 both pan left, 127
        pans right, and 64 pans to the center.</desc>
      <datatype>
        <rng:ref name="data.MIDIVALUE_PERCENT"/>
      </datatype>
    </attDef>
    <attDef ident="midi.patchname" usage="opt">
      <desc>Records a non-General MIDI patch/instrument name.</desc>
      <datatype>
        <rng:data type="NMTOKEN"/>
      </datatype>
    </attDef>
    <attDef ident="midi.patchnum" usage="opt">
      <desc>Records a non-General MIDI patch/instrument number.</desc>
      <datatype>
        <rng:ref name="data.MIDIVALUE"/>
      </datatype>
    </attDef>
    <attDef ident="midi.volume" usage="opt">
      <desc>Sets the instrument's volume.</desc>
      <datatype>
        <rng:ref name="data.MIDIVALUE_PERCENT"/>
      </datatype>
    </attDef>
  </attList>
</classSpec>

<classSpec ident="att.channelized" module="MEI.midi" type="atts" mode="replace">
  <desc>Attributes that record MIDI channel information.</desc>
  <attList>
    <attDef ident="midi.channel" usage="opt">
      <desc>Records a MIDI channel value.</desc>
      <datatype>
        <rng:ref name="data.MIDICHANNEL"/>
      </datatype>
    </attDef>
    <attDef ident="midi.duty" usage="opt">
      <desc>Specifies the 'on' part of the duty cycle as a percentage of a note's duration.</desc>
      <datatype>
        <rng:ref name="data.PERCENT.LIMITED"/>
      </datatype>
    </attDef>
    <attDef ident="midi.port" usage="opt">
      <desc>Sets the MIDI port value.</desc>
      <datatype>
        <rng:ref name="data.MIDIVALUE_NAME"/>
      </datatype>
    </attDef>
    <attDef ident="midi.track" usage="opt">
      <desc>Sets the MIDI track.</desc>
      <datatype>
        <rng:data type="positiveInteger"/>
      </datatype>
    </attDef>
  </attList>
</classSpec>

I believe this captures all the desired features --

anywhere 0-127 values are allowed, so are values in the range 1-128
the letter "o" may be appended to values 1-127 to identify 1-based values
@midi.channel is limited to 0-15 or 1-16
@midi.pan allows numeric or percentage values
@azimuth and @elevation record "surround sound" values; MusicXML pan and elevation can be mapped to these attributes

In addition, a bug that allowed @midi.duty to be greater than 100% is also fixed.

Have I spotted an error in your regex? Shouldn't it be
0|([1-9]|1[0-5])o?|16o
and 0|([1-9]|[1-9][0-9]|1([0-1][0-1]|2[0-7]))o?|128o ?

Perhaps for clarity, but not absolutely necessary.  "16" and "128" are only possible in a 1-based system, just as "0" is only possible in a 0-based one. It's only the values that are possible in both systems, 1-127, which must be differentiated with "o".

I like clarity. :-)
Take data.PERCENT for example: 0% is always 0, but you have to add the %.

True, but this case is somewhat different.
A percent sign is not significant for values that are always expressed in hundredths of something.  Its real value is in differentiating percent values from others when something may be expressed in multiple ways, for instance, in the case of font size.  In addition to percentage values, data.FONTSIZE allows other numeric values -- it's the trailing "%," "pt", or "vu" that makes it possible to tell a value in one system from one in another system.
Extrapolating to data.MIDIVALUE, it's the trailing 'o' that makes it possible to differentiate a 0-based value from a 1-based one, "127" and "127o", for instance.  "0 (1-based)" and "128" (zero-based) are impossible; therefore, there's no need to tell them apart from their "opposing" cousins. A value of "0" is always in the 0-based system; likewise, "128" is always 1-based.  Without any confusion factor, there's no need for "128o", just as there's no need for "0" in a 1-based system.
Insisting on "128o" creates a different inconsistency problem; that is, for absolute clarity we must introduce a way to say that a value of "0" is not 1-based.  Alternatively, we must introduce another required trailing symbol for zero-based counting, something like "0z".  But, requiring that every MIDI value state its counting system seems like overkill to me, especially if the encoding is limited to 0-based values.

@craigsapp and @lpugin, thoughts?

A somewhat confusing thing is that o looks like a zero, but that is not very much of a problem (definitely do not allow a capital O...).  Also o can also mean "ordinal" which is what is happening here, which is good:  0 is the first channel, 1 is the second channel and so on.  So 0 = 1o, 1 = 2o, etc.
A reverse point of view could be to use m for the 0-indexed numbers and leave the 1-indexed numbers without units.  The m would mean "MIDI numbers that are indexed from 0".

Perhaps for clarity, but not absolutely necessary. "16" and "128" are only possible in a 1-based system, just as "0" is only possible in a 0-based one. It's only the values that are possible in both systems, 1-127, which must be differentiated with "o".

I would say that the the o should be appended in all cases where the number is 1-indexed.  Allowing for the default unit to change is dangerous and probably adds unnecessary complexity.
16 would be an invalid token for the MIDI channel, since it should be 16o which is equivalent to the integer 15.  Likewise, the gunshot timbre should be 128o or 127, and not allowed to be 128.  There is no ambiguity for the human, but for the computer it would require knowledge of the (full) MEI specification to understand the difference between 127 (0-index) and 128 (1-indexed).

I can get behind the argument for "o" as short hand for "ordinal".  So, "16o" and "128o" it is.  I'll make the change to the regex.

Sounds good.


Migration to Swift 4.0

Merge from https://github.com/peterprokop/SwiftOverlays, conflicts solved
peterprokop added support for Swift 4.0 on master

Never mind. I see this is on the pod, not the main project

How should someone test this?

@reidmweber let me add the instructions to test this PR


includes

https://lodash.com/docs/4.17.15#includes

renamed to any, and implemented by https://github.com/shogo82148/hi/pull/12 and https://github.com/shogo82148/hi/pull/185


Add roadmap

What type of PR is this?
/kind documentation
What this PR does / why we need it:
Update documentation adding roadmap focusing on features we want to implement around other security areas.
Which issue(s) this PR fixes:
None
Special notes for your reviewer:
Does this PR introduce a user-facing change?
NONE

I love this graphic. It's truly on point! :heart:


Which version to use?

I'm with django 1.9 and planning to go 1.10. AFAIK, the latest stable release (12.3) does not support django 1.9. Should I just be using 12.4a then? And, when will you release 12.4, are there any obstacles?

@mariocesar The latest release is an alpha and more than one year old. What is the current state of master - and are there any plans of cutting a new release anytime soon?

@vesterbaek the main issue is backward compatibility.
I agree is had been a long wait, now that django drop supports for olders versions, I will like to review drop some fixes, specifically the TEMPLATE_DEBUG, and possible others

@mariocesar ok, thanks. Not be be pushy, but do you have any timeline in your head regarding when a new version should hit pypi? Is HEAD of master generally considered safe to use?

I just spent days tracking down and fixing a bug only to find that it has already been solved here (316), but not yet pushed to pypi :( Please update soon!

@mariocesar soon!

sorl-thumbnail is now a Jazzband project. As soon as we can get the tests to pass, I think any member of Jazzband can release the next version on PyPI.

Use the latest one https://pypi.python.org/pypi/sorl-thumbnail/12.4.1


Add NS_LD variable to be used for alternate linker

PR Checklist

[x] The PR title follows our guidelines: https://github.com/NativeScript/NativeScript/blob/master/CONTRIBUTING.md#commit-messages.
[ ] There is an issue for the bug/feature this PR is for. To avoid wasting your time, it's best to open a suggestion issue first and wait for approval before working on it.
[x] You have signed the CLA.
[x] All existing tests are passing: https://github.com/NativeScript/ios-runtime/blob/master/CONTRIBUTING.md#contribute-to-the-code-base
[ ] Tests for the changes are included.

What is the current behavior?
nsld.sh script always calls $TOOLCHAIN_DIR/usr/bin/clang.
What is the new behavior?
Introduce new NS_LD variable that can point to an alternate linker that user wants to use. If not set - then we call the default one.

test

test


Added data types '.cef' and '.xlsx' for transcriptomics, updated data modalities

The ontology hbp_macaca_fascicularis_brain_ontology.ttl doesn't have a hierarchy, all brain regions are at the same level


read chunked responses ... doesn't seem to work in chunks

hi,
i'm reading chunked responses from a requests.post(...), however calling local chunk, err = r:iter_content() doesn't give me a chunk each time, but rather many of the chunks all joined together. i.e. the following outputs a single big chunk.
local chunk, err = r:iter_content()

ngx.log(ngx.ERR, "CHUNK")
ngx.log(ngx.ERR, chunk)
ngx.log(ngx.ERR, "END CHUNK")

if i access the same endpoint with, say, a js XHR i successfully get each of the chunks coming through separately.
if i set a very small chunk size in the r:iter_content() call, i can get an approximation of the desired behaviour (indicating that it is receiving the chunks from the server in a chunk like fashion ... and i can also confirm that the chunked encoding heading is being successfully read in the r.headers.
i am using the 7.3-1 from luarocks.
any tips on how i could debug this?
with thanks

Hi,
When handling the chunked response. r:iter_content doesn't return content according to the chunk boundary. Instead, it tries to read data until the size is equal to the one you want (pass from the size arg in the iter_content method or using the default one), unless the rest content is less than the one you specified.
If you want to read each chunk body one by one, we may have to update the implementation of the r:iter_content().


Cannot find the classification engines in the master branch

Hi,
I noticed that many 3D deep learning architectures were implemented until the reformatting of kaolin is done. I cannot find them in the latest master branch. Will they added eventually as part of this repo or will they moved to another repo?

Hi @praveenv4k ,
As stated in the change logs model zoo will part of another repo.

Hi @praveenv4k ,
As stated in the change logs model zoo will part of another repo.

Is there any timeline for when the Model Zoo and 3D DL "task" examples / tutorials (classification, segmentation, object detection, etc.) will be available?
I wanted to use Kaolin in my projects, but I'll have to move to another 3D DL library for the time being, until your examples and Model Zoo are released for the 0.9 version of Kaolin.

Is there any timeline for when the Model Zoo and 3D DL "task" examples / tutorials (classification, segmentation, object detection, etc.) will be available?
I wanted to use Kaolin in my projects, but I'll have to move to another 3D DL library for the time being, until your examples and Model Zoo are released for the 0.9 version of Kaolin.

@MBrandt-NASA Do you have some model in mind? It would help us prioritize.

@MBrandt-NASA Do you have some model in mind? It would help us prioritize.

Hi @Caenorst thanks for asking :).
This year I'm trying to accomplish 3 tasks with 3D DL:

3D object detection w/ bounding boxes. (e.g. detecting a crater in lunar terrain), or potentially semantic segmentation, but I prefer objects w/ bounding boxes
pose estimation (e.g. estimating the pose of a known model -- satellite in orbit)
map generation / registration -- matching an incoming terrain patch (from a Lidar scan) with the larger containing terrain (e.g. a lunar rover, w/ Lidar, traverses a large terrain and generates a terrain map in real time as each Lidar scan comes in)

I'm evaluating models for: simplicity, reliability, and performance (speed and accuracy)
---------------- Potential models ----------------
Object Detection:

PointPillars / SECOND (https://github.com/nutonomy/second.pytorch, https://pdfs.semanticscholar.org/5125/a16039cabc6320c908a4764f32596e018ad3.pdf)
YOLOv4 (https://github.com/maudzung/Complex-YOLOv4-Pytorch)
VoteNet (https://github.com/facebookresearch/votenet)
PVR-CNN (https://arxiv.org/abs/1912.13192)
PVCNN (NVIDIA Jetson spotlight -- https://news.developer.nvidia.com/point-voxel-cnn-3d/?ncid=so-twit-99540#cid=em02_so-twit_en-us, https://github.com/mit-han-lab/pvcnn)

Pose Estimation:

PCRNet -- uses PointNet (https://github.com/vinits5/pcrnet_pytorch)

Registration:

PointNetLK -- uses PointNet (https://github.com/hmgoforth/PointNetLK)
DeepMapping (https://github.com/ai4ce/DeepMapping)

I'm open to other models if you all know others that are simpler or have higher performance, for the above 3 tasks.
Btw, I'm trying to prototype on Windows 10 and potentially deploy to Linux if needed, so it would be nice if both OS's are supported, as with Kaolin 0.1.
I really enjoyed working with Kaolin 0.1 -- PointNet and PointNet++ both worked great for me!  So I'm looking forward to seeing task examples / tutorials for Kaolin 0.9.
Very important -- examples / tutorials on how to adapt custom datasets to Kaolin 0.9.

Hi @Caenorst thanks for asking :).
This year I'm trying to accomplish 3 tasks with 3D DL:

3D object detection w/ bounding boxes. (e.g. detecting a crater in lunar terrain), or potentially semantic segmentation, but I prefer objects w/ bounding boxes
pose estimation (e.g. estimating the pose of a known model -- satellite in orbit)
map generation / registration -- matching an incoming terrain patch (from a Lidar scan) with the larger containing terrain (e.g. a lunar rover, w/ Lidar, traverses a large terrain and generates a terrain map in real time as each Lidar scan comes in)

I'm evaluating models for: simplicity, reliability, and performance (speed and accuracy)
---------------- Potential models ----------------
Object Detection:

PointPillars / SECOND (https://github.com/nutonomy/second.pytorch, https://pdfs.semanticscholar.org/5125/a16039cabc6320c908a4764f32596e018ad3.pdf)
YOLOv4 (https://github.com/maudzung/Complex-YOLOv4-Pytorch)
VoteNet (https://github.com/facebookresearch/votenet)
PVR-CNN (https://arxiv.org/abs/1912.13192)
PVCNN (NVIDIA Jetson spotlight -- https://news.developer.nvidia.com/point-voxel-cnn-3d/?ncid=so-twit-99540#cid=em02_so-twit_en-us, https://github.com/mit-han-lab/pvcnn)

Pose Estimation:

PCRNet -- uses PointNet (https://github.com/vinits5/pcrnet_pytorch)

Registration:

PointNetLK -- uses PointNet (https://github.com/hmgoforth/PointNetLK)
DeepMapping (https://github.com/ai4ce/DeepMapping)

I'm open to other models if you all know others that are simpler or have higher performance, for the above 3 tasks.
Btw, I'm trying to prototype on Windows 10 and potentially deploy to Linux if needed, so it would be nice if both OS's are supported, as with Kaolin 0.1.
I really enjoyed working with Kaolin 0.1 -- PointNet and PointNet++ both worked great for me!  So I'm looking forward to seeing task examples / tutorials for Kaolin 0.9.
Very important -- examples / tutorials on how to adapt custom datasets to Kaolin 0.9.

We are not able to support rapidly growing variety of models. Rather, Kaolin focuses on maintainable and robust fundamental building blocks. We hope you find it useful when building your own DL pipelines.


Some info on this page might be slightly misleading

Part of this page reads, "If it's set to another service or device, it's possible to override Secure by default with a Transport Rule to bypass all spam filtering. When Microsoft detects messages as High Confidence Phish with this rule in place, they still deliver to the Inbox." However, there is a link on Transport Rule pointing to another Microsoft doc. On that page, it reads, "Bypass spam filtering: The messages will skip spam filtering. High confidence phishing messages are still filtered. Other features in EOP are not affected (for example, messages are always scanned for malware)."
These two things seem to contradict each other.

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

ID: 472b3a0c-7ad8-8245-9b57-29431490370b
Version Independent ID: 8671f04a-b7b3-402c-1e65-59a52c1cdaf5
Content: Secure by default in Office 365
Content Source: microsoft-365/security/office-365-security/secure-by-default.md
Service: microsoft-365-security
Sub-service: mdo
GitHub Login: @Dansimp
Microsoft Alias: dansimp

To make it easier for you to submit feedback on articles on learn.microsoft.com, we're transitioning our feedback system from GitHub Issues to a new experience.
As part of the transition, this GitHub Issue will be moved to a private repository. We're moving Issues to another repository so we can continue working on Issues that were open at the time of the transition. When this Issue is moved, you'll no longer be able to access it.
If you want to provide additional information before this Issue is moved, please update this Issue before December 15th, 2023.
With the new experience, you no longer need to sign in to GitHub to enter and submit your feedback. Instead, you can choose directly on each article's page whether the article was helpful. Then you can then choose one or more reasons for your feedback and optionally provide additional context before you select Submit.
Here's what the new experience looks like.
Note: The new experience is being rolled out across learn.microsoft.com in phases. If you don't see the new experience on an article, please check back later.
First, select whether the article was helpful:

Then, choose at least one reason for your feedback and optionally provide additional details about your feedback:

Article was helpful
Article was unhelpful

Finally, select Submit and you're done!


Add Docker support

Add Docker support just like in pg2b3dm

fixed in https://github.com/Geodan/i3dm.export/pull/47


Refactor distributed_launcher logic and simplify fb build

Summary: we are bringing in submitit to VISSL (thanks to QuentinDuval ) and this required moving the launch_distributed to the core vissl library. Some refactorings needed to make the fblearner workflow adapt accordingly.
Differential Revision: D26340992

will open a new one!


⚠ Secret Website 3 has degraded performance

In fc0f3c8, Secret Website 3 ($SECRET_WEBSITE_3) experienced degraded performance:

HTTP code: 200
Response time: 12235 ms

Resolved: Secret Website 3 performance has improved in 58a1922.


Is there any way to stream the screen?

I think that would be a really awesome thing to add to our app so that we can support our users better. We could stream the screen to a web browser for support.

related #57

track this issue in #57


Make "delete a KubeVirt CR" test Serial

What this PR does / why we need it:
Deleting Kubevirt object is usually only allowed when no VMI and other Kubevirt objects exist. Therefore this test needs to be serial.
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Release note:
NONE

/lgtm
/approve
Makes sense!

/cherry-pick release-0.49

/retest


Make DataTable default settings publication-quality

Publication-quality formatting by default
Smart spacing between columns
Formatting options for each column (text alignment, value formats, text formats)
Smart text-wrapping rules for headers and table cell content
Handling of many columns (scrolling, visual indications of full table width)

@hughess is this closed by https://github.com/evidence-dev/evidence/pull/567?


Saving serviceUrl best practice - using tenant as key

For proactive messaging we need to save a user or team serviceUrl.
Right now my bot saves the serviceUrl for every single user/team. (using userid, and teamid as the key respectively.)
I was wondering if it might be possible to save a serviceUrl for a tenant. (Instead of saving for every user/team.) and just retrieve the serviceUrl as needed via a tenantId. Then use that service url for proactively messaging all users/teams in that tenant,
This would ONLY work if the serviceUrl for each user/team across the entire tenant is the SAME ONE.
I was wondering if there was any guarantee that users/teams under the SAME TENANT use the same service url.
Any help/clarification is greatly appreciated!

@liangchr : Yes, within the same tenant service URL will be same for all users across the tenant level. You don't need to keep track of service URL, if your Bot is installed on some other tenant this will result in change of  service URL. For proactive messaging, you can store the service URL for one tenant and use it accordingly.

@Manish-MSFT Thanks a lot for the reply! I was wondering if you could follow up with me on two more things:
1.) According to documentation I am told that serviceUrls are subject to change-- does this mean that its best practice to re-cache it for the user/team regularly from the incoming requests?
2.) How might I go about changing a single users region in order to test that their serviceUrl changes with the region as well?

Thank you so much! @Manish-MSFT One more thing to clarify. Within a tenant there is no possible way for some users to be in a different region from others-- They all have to be in the same region, correct? Sorry if you've already answered this. I just want to me absolutely sure.

@liangchr : Yes, In each tenant users are of same region to give best understanding please refer this image. This image perfectly describes tenants in azure.

Please feel free to open if you have further query on this.


API docs: Avoid escaping double-quotes in curl examples

Since double-quotes have to be escaped inside regular quotes, but are needed in JSON, it is clearer to have single quotes on the outside of the curl command line.
Instead of a line such as the following (from get messages api docs):
-d "narrow=[{\"operator\":\"stream\", \"operand\":\"party\"}]"

we might use:
-d 'narrow=[{"operator":"stream", "operand":"party"}]'

This is a lot clearer to read.
A first pass might ensure that escaped double-quotes are substituted along the lines of the above, but it would be simpler if we could use single quotes for all the curl demos, for consistency.

This would be a nice improvement.

I've added it in my queue.

@timabbott  @neiljp  I would like to work on this issue.Hope it's not assigned by any one yet.


[vm/ffi] Missing analyzer error for type argument in Native.addressOf

@dcharkes
Consider this code:
import 'dart:ffi';

@Native<Void Function(Pointer)>()
external void free(Pointer p);

@Native<Int32>()
external int x;

void main() {
  Native.addressOf<NativeFunction>(free); // No analyzer error but CFE reports error
  //     ^
  //  Error: Expected type 'NativeFunction<Function>' to be a valid and instantiated subtype of 'NativeType'.
  // - 'NativeFunction' is from 'dart:ffi'.
  // - 'Function' is from 'dart:core'.

  Native.addressOf<NativeFunction<Void Function(Pointer)>>(free); // No CFE error as expected

  Native.addressOf(x); // No analyzer error but CFE reports error
  //     ^
  //  Error: Expected type 'NativeType' to be a valid and instantiated subtype of 'NativeType'.
  // - 'NativeType' is from 'dart:ffi'.

  Native.addressOf<Int32>(x); // No CFE error as expected
}

For native functions: If NativeFunction is used as a type argument for Native.addressOf, the analyzer doesn’t report any errors, but the CFE does.
For native fields: If no type argument is provided, the analyzer again doesn’t flag it, but the CFE does.

I looked into the relevant code in ffi_verifier.dart, and the analyzer only checks if the type argument is assignable to the native type. This doesn’t seem right – it should be checking if the types are exactly equal.
Here’s the code that handles these checks:

Native functions: https://github.com/dart-lang/sdk/blob/5c313c77ba511eca9ab77d681b656ef73bfc0ea9/pkg/analyzer/lib/src/generated/ffi_verifier.dart#L1709
Native fields: https://github.com/dart-lang/sdk/blob/5c313c77ba511eca9ab77d681b656ef73bfc0ea9/pkg/analyzer/lib/src/generated/ffi_verifier.dart#L1734

If this sounds correct, I’d be happy to create a CL to fix it.

the analyzer only checks if the type argument is assignable to the native type. This doesn’t seem right – it should be checking if the types are exactly equal.

Let's see do we need exactly equal, or assignable? Maybe assignable is the right behavior. The resulting Pointer object would have a less precise type, meaning it can be passed in to less places where a pointer with a more specific type is required.
However, since we don't have type inference from the Dart type to the C type (which is the pointer type argument), it is very likely that one would want spell out the full type. So maybe requiring the exact mapping is better from a user experience point of view. 👍
Type inference should work:
import 'dart:ffi';

@Native<Void Function(Pointer<Void>)>()
external void free(Pointer<Void> p);

@Native<Int32>()
external int x;

void main() {
  Pointer<NativeFunction<Void Function(Pointer<Void>)>> pointer = Native.addressOf(free); // No error.

  NativeFinalizer(Native.addressOf(free)); // No error.
}

If this sounds correct, I’d be happy to create a CL to fix it.

❤ 🚀
You should be able to add tests here:

pkg/analyzer/test/src/diagnostics/ffi_native_test.dart
tests/ffi/static_checks/vmspecific_static_checks_native_test.dart

Let's see do we need exactly equal, or assignable? Maybe assignable is the right behavior. The resulting Pointer object would have a less precise type, meaning it can be passed in to less places where a pointer with a more specific type is required.

Yeah, that was my first thought too. I tried relaxing the type check in the CFE, but it caused some crashes (I think crashed happened when converting a native function to a Dart function. The type argument wasn’t precise enough after relaxing the check). Anyway, since type inference works fine, it’s not a big deal.

You should be able to add tests here:

Thanks!


Add --password command-line arg (or environment variable)

User request: would allow people to edit their own desktop shortcuts to automatically open ENLIGHTEN with the production password.
Obviously putting clear-text passwords on the command-line is insecure (they typically appear in process listings, especially on POSIX), yet this is also a very common mechanism with database clients and the like.
An alternative would be to check for an environment variable (export ENLIGHTEN_PASSWORD=foo).
I'm ambivalent on the mechanism, but agree it's a valid request.

resolved in 4.0.67


Dynamic scripting?

Hi, could this be used to script the game during runtime? Meaning that the player could influence the game by executing Kotlin scipts during gameplay, for example using the console.

That could be doable, check the Hot Reload feature in the wiki
https://github.com/hiperbou/kotlin-unreal/wiki/Hot-Reload

OK, I will check it out. Thanks!


STEINS;GATE ELITE [PCSG01166]

App summary

App name: STEINS;GATE ELITE
App serial: PCSG01166
App version: 1.00

Vita3K summary

Version: v0.1.8
Build number: 3248
Commit hash: https://github.com/vita3k/vita3k/commit/5c3754e3
CPU backend: Dynarmic
GPU backend: Vulkan

Test environment summary

Tested by: Sam
OS: Windows 10
CPU: AMD 5500u
GPU: AMD Radeon Graphics
RAM: 6 GB

Issues

Fully playable
Screenshots

Log
vita3k.log
Recommended labels

-https://github.com/Vita3K/compatibility/labels/Playable

B?
C?

slight graphical bug: facial animations dont work(most of the times), but i guess it is "playable" rather than "ingame+"


Removed unused StringBuilder

Removed unused StringBuilder

I bet you the intent of this toString was to actually use this StringBulder. Check whether we have a test for this and fix?

Closing as this is duplicated by #15362 which has discussion


Use SVG as avatar for user/org/repo

SVG images are not supported as avatars (cannot be uploaded, reported to "not be an image").
I'm not sure this is a duplicate of #1095 so I'm filing it separately

I think it's the same. Since it cannot be rendered safely, we cannot allow it uploaded.

@lunny could this issue eventually being resolved by using the method implemented in this pull request https://github.com/go-gitea/gitea/pull/14101?

I don't know if there is a risk for that.

Some reference:

https://developer.mozilla.org/en-US/docs/Web/SVG/Element/script The SVG script element allows to add scripts to an SVG document.
https://stackoverflow.com/questions/5378559/including-javascript-in-svg   Including JavaScript in SVG

Thanks for the references.
@wxiaoguang
I've looked at the code and found out that it is already implemented. But for an unknown reason it doesn't work. So I think this issue should be considered as a bug.
The error message "The uploaded file is not an image." is the locale value for the variable "uploaded_avatar_not_a_image" which is present in the 2 files "routers/web/repo/setting.go" and "routers/web/user/setting/profile.go".
For an uploaded image there is the following content type check.
st := typesniffer.DetectContentType(data)
if !(st.IsImage() && !st.IsSvgImage()) {
	return errors.New(ctx.Tr("settings.uploaded_avatar_not_a_image"))
}

I've also looked at the DetectContentType function in typesniffer and realized that there are implementations for recognizing image/svg+xml which are svg images. But for some reason it is not working.

If there is a battle-tested SVG sanitizer available in golang, we could reconsider.

@silverwind I've done a quick search on gh and Google for one, but unfortunately I found just a few simple tag cleaners (removes script tags, so far away from battle tested).
As far as I have seen, the current method for providing security with svgs is by using an adequate content security policy (http header) or (better and) using img tags for displaying the svg image.
Additionally I would suggest that svg uploads must be enabled in the ini config.
I think the gitea admins should be able to decide on their own if they want to use this functionality and eventually have a rest risk of that it can be exploited. For a public instance it can make sense to forbid it, but for private instances the adminis should have the possibility to allow it.


audit check_shim_references: Mirror keg_contain?

Do not report matches to files that do not exist.

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[x] Have you written new tests for your changes? Here's an example.

[ ] Have you successfully run brew tests with your changes locally?

This PR mirrors the logic of brew bottle.
https://github.com/Homebrew/brew/blob/7db771be3072660d00b5bee96d39e65884e3a1a0/Library/Homebrew/dev-cmd/bottle.rb#L150-L151
It prevents false positives of matches to informational lines such as
C++ Compiler: /usr/local/Homebrew/Library/Homebrew/shims/mac/super/clang++ <IP_ADDRESS>10046

While I do think that how it is in bottle.rb is problematic in some cases (it fails to detect pkg-config as non-relocatable), I agree that the behaviour should at least be consistent.
I wonder if the exact line matching logic should only apply to binary files however. We do want to catch cases where shell scripts have stuff like:
/usr/local/Homebrew/Library/Homebrew/shims/mac/super/pkg-config --libs whatever
I think ImageMagick is an example of this.

I wonder if the exact line matching logic should only apply to binary files however.

That makes sense to me. I've implemented that logic.

While I do think that how it is in bottle.rb is problematic in some cases (it fails to detect pkg-config as non-relocatable), I agree that the behaviour should at least be consistent.

I think if we've got a known problem in bottle.rb we should fix it there rather than making this consistent(ly incorrect).


App crashes when no value is entered for intersection IDs

How to get error:

Open new game
Either in setup phase leave intersection ID blank OR in regular gameplay, click "Road", "Settlement", or "City" and enter a blank intersection ID

App crashes

Fixed the issue awhile ago, forgot to close the issue; just handled with a try/catch block


Can't find VmDatabase and package:moor/ffi.dart

I am following the Getting Started tutorial, but IntelliJ can't find the VmDatabase class required by LazyDatabase at the end of the tutorial.
I assume, VmDatabase is declared in the package:moor/ffi.dart package which should be used according to the tutorial. However, the package:moor/ffi.dart can't be found either.
Am I missing some dependency in my pubspec.yaml? Or is there an incosistency in the documentation?

Maybe you're using an older moor version? The package:moor/ffi.dart library was added in moor version 3.3.0.

Thanks. I changed my pubspec.yaml from
dependencies:
  moor:

to
dependencies:
  moor: ^3.3.0

and then it worked.
Apparently it doesn't work without the version specified (which is weird because it would normally get the newest version then?).


Create test_pr.txt

Issue #, if available:
Description of changes:
How Has This Been Tested:
[x] My testing has passed

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license

AWS CodeBuild CI Report

CodeBuild project: yyan-cf-trigger-test
Commit ID: 5b9c20d19f888d4152dea94f28460f4734779faa
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: yyan-cf-trigger-test
Commit ID: ab037237d324464dafa511a0cff29f4a9888aa5e
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: yyan-cf-trigger-test
Commit ID: 35ad0ecd37fe1df3a62789612aa39dfa638eec78
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: yyan-cf-trigger-test
Commit ID: 35ad0ecd37fe1df3a62789612aa39dfa638eec78
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: yyan-cf-trigger-test
Commit ID: b4c6fd53e78ff567a8d3beed4dda6ddd896b336e
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: yyan-cf-trigger-test
Commit ID: ce84c91218f1810aed5fa4b9f9614e597a3c962b
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: yyan-cf-trigger-test
Commit ID: 0633bd6bc842aaf0fda1d6b16f5b0c4ecf9bc99b
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: yyan-cf-trigger-test
Commit ID: 878862a3dc3669151ae91771d60f97d55ea25657
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

test comments

test comments

test comments

test comments

test comments

test comments


Paging on Activity page always switches tab back to the first tab.

Ideally, going to a different page would keep you on the same tab on the Activity page.

I don't know another way to keep track of the previous active tab besides using localStorage. If that approach seems OK, I'll go for it. @corylown

@corylown do you mean paging through the Uploads table? This is potentially irrelevant now when https://github.com/pod4lib/aggregator/pull/841 merges.

@marlo-longley right, I think this is irrelevant with the activity summary only appearing on page one.


Clarification on Output Neuron Pruning Method in "Deja Vu: Contextual Sparsity for Efficient LLMs at Inference Time

Clarification on Output Neuron Pruning Method in "Deja Vu: Contextual Sparsity for Efficient LLMs at Inference Time"
Hello,
I am attempting to replicate the findings of "Deja Vu: Contextual Sparsity for Efficient LLMs at Inference Time" and have some questions regarding the methodology for predicting and applying sparsity in the MLP layers of LLMs, specifically for models like llama2 7b.
Both the "Deja Vu" paper and subsequent works, such as "ProSparse: Introducing and Enhancing Intrinsic Activation Sparsity within Large Language Models," propose using two small, low-rank MLP layers to predict the output sparsity level of large MLP layers. These approaches suggest replacing typical activation functions (SiLU or GeLU) with ReLU and applying the Deja Vu method for sparsity prediction.
However, it is unclear how the determination is made regarding which output neurons should be pruned based on the output of the predictor layer. Is it more appropriate to identify the top-k indices of the predictor output as significant, or should a threshold-based method be applied, indicating that any predictor output below zero means the corresponding output of the real MLP + ReLU should be zero?
Code Snippet from Deja Vu's Training:
...
x, y = batch
y = y.float().to(device)
logits = model(x.to(device))
probs = logits.sigmoid()
preds = probs >= 0.5

dif = y.int() - preds.int()
miss = dif > 0.0  # classifier didn't activate target neuron

weight = (y.sum() / y.numel()) + 0.005
loss_weight = y * (1 - weight) + weight
eval["Loss Weight"] += [weight.item()]
eval["Loss"] += [
    torch.nn.functional.binary_cross_entropy(probs, y, weight=loss_weight).item()
]
...

This code suggests a threshold-based approach to neuron pruning.
Deja Vu's Python Modeling:
...
def prepare_fc_weights(self, hidden_states: torch.Tensor):
    with torch.no_grad():
        self.predictor = self.predictor.float()

        _logit = self.predictor(hidden_states.reshape(-1, self.embed_dim).float())
        _, _top_indices = _logit.topk(self.topk, dim=1)
        _top_k_indices = _top_indices[:, :self.topk]
        self._mask = torch.zeros_like(_logit)
        self._mask = self._mask.scatter(1, _top_k_indices, 1).bool().half()
...
    hidden_states = self.fc1(hidden_states)
    if self.predictor != None:
        hidden_states = hidden_states * self._mask
...

In contrast, this snippet utilizes a top-k function for identifying active neurons.
PowerInfer's Implementation Snippet:
...
float *ffdata = (float *)dst->src[2]->data;
int *gid = (int *)dst->src[3]->data;
float *predictor_data = (float *)dst->src[2]->data;
const size_t predictor_row_size = dst->src[2]->ne[0]*ggml_type_size(GGML_TYPE_F32)/ggml_blck_size(GGML_TYPE_F32);
...
    ffdata = (float *)((char *)predictor_data + (i11 + i12*ne11 + i13*ne12*ne11)*predictor_row_size);
    float *dst_col = (float *)((char *)dst->data + (i1 * nb1 + i2 * nb2 + i3 * nb3));

    if (gid[ir0] == 1 || ffdata[ir0] < threshold) {
        dst_col[ir0] = 0;
        continue;
    }
    vec_dot(ne00, &dst_col[ir0], src0_row + ir0 * nb01, src1_col);
...

This implementation appears to adopt a threshold-based method, yet it's unclear how it aligns with the methods described in Deja Vu or ProSparse.
So how does the predictor work?
Given these observations and my own experimentation—where the top-k method proved effective but without clear guidance on selecting "k" due to the absence of details in ProSparse—I seek clarification on two fronts:
1 What is the recommended method for determining which neurons should be pruned: top-k or threshold-based?
2 How is the "k" value for the top-k method determined in practice, especially considering the variable sparsity levels across different models and tasks?
Any insights or clarifications on these points would be greatly appreciated, as they could significantly enhance the practical application and exploration of these promising sparsity techniques.
Thank you.

Thank you for your interest! Please see https://huggingface.co/SparseLLM/prosparse-llama-2-7b/discussions/2

Thank you for your prompt response. I truly appreciate it. I have updated my question in huggingface. Thank you again for your help!


feat: add support for OCP 4.14

Description
Update OCP related modules to only support the following versions: 4.12, 4.13, 4.14
Release required?

[ ] No release
[ ] Patch release (x.x.X)
[x] Minor release (x.X.x)
[ ] Major release (X.x.x)

Release notes content

Run the pipeline
If the CI pipeline doesn't run when you create the PR, the PR requires a user with GitHub collaborators access to run the pipeline.
Run the CI pipeline when the PR is ready for review and you expect tests to pass. Add a comment to the PR with the following text:
/run pipeline

Checklist for reviewers

[ ] If relevant, a test for the change is included or updated with this PR.
[ ] If relevant, documentation for the change is included or updated with this PR.

For mergers

Use a conventional commit message to set the release level. Follow the guidelines.
Include information that users need to know about the PR in the commit message. The commit message becomes part of the GitHub release notes.
Use the Squash and merge option.

/run pipeline

/run pipeline

/run pipeline

:tada: This PR is included in version 2.11.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


enhancements for Archaeopteryx tree

enhancements:

added additional metadata attributes for phylogenetic tree viewer (see https://github.com/BV-BRC/issues/issues/113
https://github.com/BV-BRC/issues/issues/113).

enabled Archaeopteryx tree to select individual genomes/features or clades to view or to create a group (see https://github.com/BV-BRC/issues/issues/521)

These enhancements depend on the latest Archaeopteryx submodule.

Fixed format errors.


IOTA does not appear in firefly wallet

Issue description
I did a transfer of IOTA to my wallet,
This transaction does not appear in firefly but does appear on Tangle Explorer. I've re-installed to 1.3 with a clean install, i've created a brand new profile with backup phrase, i've tried using balance finder, i've tried connecting to the Tangle Bay node https://mainnet-node.tanglebay.com, the funds still do not appear and were sent many days ago, thankyou for help. My total balance showing is NOT Correct.
Transaction ID:
42c85c174736f47211c32d661b47a68eca84a4e89f7cf9b579223618d2543159
Firefly version
1.3
OS details
Windows 10 Home 64-bit (10.0, Build 19043) (19041.vb_release.191206-1406)
Can the issue be reliably reproduced?
Yes
Steps to reproduce the issue

Login
All settings
Balance finder
Find balance
Search balance

Expected behaviour
All transaction histories should show.
Actual behaviour
Every other transaction log i've sent to the same address is there, just not this latest one
Errors
Wed, 22 Dec 2021 10:15:47 GMT
StrongholdError: failed to perform action: Engine Error: Crypto Error: error in algorithm XCHACHA20-POLY1305, Unable to read snapshot. Please try another password.``
Mon, 13 Dec 2021 06:24:43 GMT
StrongholdError: failed to perform action: Engine Error: Crypto Error: error in algorithm XCHACHA20-POLY1305, Unable to read snapshot. Please try another password.``
Mon, 13 Dec 2021 06:24:42 GMT
StrongholdError: failed to perform action: Engine Error: Crypto Error: error in algorithm XCHACHA20-POLY1305, Unable to read snapshot. Please try another password.``
Mon, 13 Dec 2021 06:24:25 GMT
StrongholdError: failed to perform action: Engine Error: Crypto Error: error in algorithm XCHACHA20-POLY1305, Unable to read snapshot. Please try another password.``
Mon, 13 Dec 2021 06:24:24 GMT
StrongholdError: failed to perform action: Engine Error: Crypto Error: error in algorithm XCHACHA20-POLY1305, Unable to read snapshot. Please try another password.``
Sat, 04 Dec 2021 06:44:21 GMT
ClientError: {}
Thu, 18 Nov 2021 08:48:22 GMT
ClientError: {}
Sat, 26 Jun 2021 09:12:35 GMT
ClientError: {}
Fri, 11 Jun 2021 12:04:02 GMT
ClientError: {}

Hello,
can you try to uninstall your current Firefly installation and also delete the folder Firefly from C:\Users[user]\AppData\Roaming. After that please install Firefly 1.3.2 and try to restore your profile with your backup phrase.

Thankyou, I've done this, my balance didnt change. It's possible the moneys there but the actual transaction history in firefly never updated. I'm happy to let it go, every other transaction ive sent to the exact same wallet adress has landed. Is there anything else I could possibly try?

And the total balance of your profile is not correct?

Apologies, ive tallied all the transactions and yes the total balance is correct, the transaction history in firefly just didnt record that 1 transaction, thankyou


solc - command not found.

➜  openprep git:(master) ✗ ./node_modules/.bin/doxity build
solc --combined-json abi,asm,ast,bin,bin-runtime,clone-bin,devdoc,interface,opcodes,srcmap,srcmap-runtime,userdoc contracts/*
/bin/sh: solc: command not found
sudo npm -g install solc - ends up with a solcjs binary, not solc.
How do I get the solc binary?

Hi There,
Yeah, doxity requires native solc as solc-js doesn't support the natspec flags yet.
Installation instructions are over at: http://solidity.readthedocs.io/en/develop/installing-solidity.html under 'binary packages'


influx restore can't restore to an existing bucket

Our docs for influx restore show an example of restoring to an existing bucket. This doesn't actually work at the moment. The restriction is consistent with 1.x, which didn't allow users to restore to an existing DB.
Relevant URLs

Original user report: influxdata/influxdb#20758
Example in 2.x docs: https://docs.influxdata.com/influxdb/v2.0/reference/cli/influx/restore/#restore-backup-data-to-an-existing-bucket
Parallel 1.x docs showing the restriction there: https://docs.influxdata.com/influxdb/v1.8/administration/backup_and_restore/#restore-examples

The linked OSS issue has a comment detailing a work-around that could be nice to include in our docs

@danxmoran How do the --bucket and --bucket-id flags with influx restore? Do they simply restore data from a single bucket inside a backup that has multiple buckets?

Yes, they set the single "source" bucket to restore. By default the bucket will be restored using the same name; --new-bucket is used to set a new name.

Gotcha, so if a user wants to export a "snapshot" of all buckets or a particular bucket, then restore that snapshot, they'd have to delete the existing buckets before restoring to use the same bucket names?

Yup!


Download_dsyms Unauthorised Access

New Issue Checklist

[x] Updated fastlane to the latest version
[x] I read the Contribution Guidelines
[x] I read docs.fastlane.tools
[x] I searched for existing GitHub issues

Issue Description
I'm having an issue here with download_dsyms command. The error is because of the api_key missing.
Although in documentation here you don't mention anywhere that you accept API_KEY, like you do in upload_to_testflight.
Is there any work around?
Command executed
      download_dsyms(
        username<EMAIL_ADDRESS>        team_name: ENV["MATCH_TEAM_NAME"],
        app_identifier: ENV["BUNDLE_IDENTIFIER"],
        min_version: options[:min_version],
        output_directory: "fastlane/dsyms"
      )

Complete output when running fastlane, including the stack trace and command used

 [18:59:00]: ----------------------------
[18:59:00]: --- Step: download_dsyms ---
[18:59:00]: ----------------------------
[18:59:00]: Login to App Store Connect<EMAIL_ADDRESS>Available session is not valid any more. Continuing with normal login.
This account is being prompted to upgrade to 2FA
Attempting to automatically bypass the upgrade until a later date
To disable this, remove SPACESHIP_SKIP_2FA_UPGRADE=1 environment variable
+------------------+------------------+
|            Lane Context             |
+------------------+------------------+
| ENVIRONMENT      | xm               |
| DEFAULT_PLATFORM | ios              |
| PLATFORM_NAME    | ios              |
| LANE_NAME        | ios upload_dsyms |
+------------------+------------------+
[18:59:25]: Unauthorized Access
+------+---------------------------------------------+-------------+
|                         fastlane summary                         |
+------+---------------------------------------------+-------------+
| Step | Action                                      | Time (in s) |
+------+---------------------------------------------+-------------+
| 1    | Verifying fastlane version                  | 0           |
| 2    | default_platform                            | 0           |
| 3    | mkdir -p ../reports/static_analysis || true | 0           |
| 4    | mkdir ../dist || true                       | 0           |
| 5    | bundle 2.1.4 install                      | 0           |
| 💥   | download_dsyms                              | 25          |
+------+---------------------------------------------+-------------+
[18:59:25]: fastlane finished with errors

Environment

 🚫 fastlane environment 🚫
Stack

Key
Value

OS
10.15.6

Ruby
2.4.1

Bundler?
true

Git
git version 2.24.3 (Apple Git-128)

Installation Source
~/.rvm/gems/ruby-2.4.1/bin/fastlane

Host
Mac OS X 10.15.6 (19G2021)

Ruby Lib Dir
~/.rvm/rubies/ruby-2.4.1/lib

OpenSSL Version
OpenSSL 1.1.1i  8 Dec 2020

Is contained
false

Is homebrew
false

Is installed via Fabric.app
false

Xcode Path
/Applications/Xcode.app/Contents/Developer/

Xcode Version
11.5

No Appfile found
fastlane gems

Gem
Version
Update-Status

fastlane
2.174.0
🚫 Update available

Loaded fastlane plugins:

Plugin
Version
Update-Status

fastlane-plugin-badge
1.3.0
🚫 Update available

fastlane-plugin-test_center
3.8.3
🚫 Update available

Loaded gems

Gem
Version

did_you_mean
1.1.0

bundler
2.1.4

rake
13.0.3

CFPropertyList
3.0.3

concurrent-ruby
1.1.5

i18n
0.9.5

minitest
5.11.3

thread_safe
0.3.6

tzinfo
1.2.5

activesupport
<IP_ADDRESS>

public_suffix
4.0.6

addressable
2.7.0

artifactory
3.0.15

atomos
0.1.3

aws-eventstream
1.1.0

aws-partitions
1.427.0

aws-sigv4
1.2.2

jmespath
1.4.0

aws-sdk-core
3.112.0

aws-sdk-kms
1.42.0

aws-sdk-s3
1.88.1

babosa
1.0.4

curb
0.9.10

fastimage
2.2.2

colored
1.2

highline
1.7.10

commander-fastlane
4.4.6

dotenv
2.7.6

emoji_regex
3.2.1

excon
0.79.0

faraday-net_http
1.0.1

multipart-post
2.0.0

ruby2_keywords
0.0.4

faraday
1.3.0

unf_ext
<IP_ADDRESS>

unf
0.1.4

domain_name
0.5.20190701

http-cookie
1.0.3

faraday-cookie_jar
0.0.7

faraday_middleware
1.0.0

gh_inspector
1.1.3

jwt
2.2.2

memoist
0.16.2

multi_json
1.15.0

os
1.1.1

signet
0.14.1

googleauth
0.15.1

httpclient
2.8.3

mini_mime
1.0.2

declarative
0.0.20

declarative-option
0.1.0

uber
0.1.0

representable
3.0.4

retriable
3.1.2

google-api-client
0.38.0

digest-crc
0.6.3

rexml
3.2.4

webrick
1.7.0

google-apis-core
0.2.1

google-apis-iamcredentials_v1
0.1.0

google-apis-storage_v1
0.2.0

google-cloud-env
1.4.0

google-cloud-errors
1.0.1

google-cloud-core
1.5.0

google-cloud-storage
1.30.0

json
2.5.1

mini_magick
4.9.5

plist
3.6.0

rubyzip
2.3.0

security
0.1.3

naturally
2.2.1

simctl
1.6.8

slack-notifier
2.3.2

terminal-notifier
2.0.0

unicode-display_width
1.7.0

terminal-table
1.8.0

tty-screen
0.8.1

tty-cursor
0.7.1

tty-spinner
0.9.3

word_wrap
1.0.0

claide
1.0.3

colored2
3.1.2

nanaimo
0.3.0

xcodeproj
1.19.0

rouge
2.0.7

xcpretty
0.3.0

xcpretty-travis-formatter
1.0.1

badge
0.11.0

chunky_png
1.3.11

clamp
1.3.0

fuzzy_match
2.0.4

nap
1.1.0

cocoapods-core
1.6.1

cocoapods-deintegrate
1.0.4

cocoapods-downloader
1.2.2

cocoapods-plugins
1.0.0

cocoapods-search
1.0.0

cocoapods-stats
1.1.0

netrc
0.11.0

cocoapods-trunk
1.3.1

cocoapods-try
1.1.0

escape
0.0.4

fourflusher
2.2.0

molinillo
0.6.6

ruby-macho
1.4.0

cocoapods
1.6.1

colorize
0.8.1

fastlane-plugin-badge
1.3.0

xctest_list
1.1.8

fastlane-plugin-test_center
3.8.3

imatcher
0.1.9

mini_portile2
2.4.0

nokogiri
1.10.2

slather
2.4.7

generated on: 2021-03-08

Seeing the same issue here.

As sad as it is, this was discussed a bunch of times already. It is not currently fixable, because Apple does not offer a dsym download API using their ASC API-key: https://github.com/fastlane/fastlane/discussions/17485

ASC Connect API does not provide this endpoint. This is an "issue" on Apple's side.


ImportError: No module named mycobot_description.srv

Traceback (most recent call last):
File "/home/wwd/catkin_mycobot_ros/src/mycobot_ros/mycobot_280/scripts/listen_real.py", line 9, in
from mycobot_description.srv import GetAngles
ImportError: No module named mycobot_description.srv

Change the mycobot_description to mycobot_communication is OK.
I have fixed the error.

I will close this issue，Too long no reply.


Adjust golangci-lint linters

Added new linters (some commented out if not needed) and removed deprecated linters. Also addressed violations reported by new linters (in separate commits).
Related to https://github.com/submariner-io/enhancements/issues/231

@aswinsuryan Please review


docs: Update v1beta1 to v1 examples

Fixes #N/A
Description

Update the example APIs to use v1

How was this change tested?

Manually Tested

Does this change impact docs?

[ ] Yes, PR includes docs updates
[ ] Yes, issue opened: #
[x] No

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>1
Details

0 of 0   changed or added relevant lines in 0 files are covered.
2 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.01%) to 79.132%

Files with Coverage Reduction
New Missed Lines
%

pkg/fake/utils.go
2
94.56%

Totals

Change from base Build<PHONE_NUMBER>6:
-0.01%

Covered Lines:
5927

Relevant Lines:
7490

💛  - Coveralls


Administrator unlock without logoff

1.x had this, an administrator (as defined by plugins) could unlock and get to locked users desktop.  Definitely possible with GINA, may not be possible with Credential Provider though.

I know this is a bit of a rabbit hole away from the OP initial intent here but, I've been doing some research around SecureString and DPAPI http://www.codeproject.com/Articles/36449/String-Encryption-using-DPAPI-and-Extension-Method and using them in concert along with a  secureString version of a maskedTextBox http://weblogs.asp.net/pglavich/440191 to achieve a nearly end-to-end control on sensitive information handling.
I initially wanted to implement them into my pGina plugins but it definitely defeats the purpose (partly or arguably in its entirety) when under the hood it is being held as a System.String. I know next to nothing about c++ to adjust the handoff of the creds to but I'm going to poke around and I hope there is some interest from others, it would be great to know swap files, mem-dumps, etc would all be so much less likely to include pwd or other sensitive information.


fix install bug

fix install bug for #92

Thanks for the contribution, please recommit this with a git -s option so it would be signed by your name.

LGTM


Arm64 Version

Please, make arm64 version for ms surface pro x.

https://github.com/basil00/Divert/issues/236


[bug] ReserveSecurityToken: exception "RPC Error: The execution failed due to an exception."

Code sample
const sdk = new Polymath()
await sdk.connect(config)
const q = await sdk.reserveSecurityToken({symbol: 'ACME'})
const ret = await q.run()

Result
Reserving a symbol spits the following exception:
MetaMask - RPC Error: The execution failed due to an exception.

Likely culprit
I added a console.log to the compiled ReserveSecurityToken.js class in<EMAIL_ADDRESS>...
            const [usdFee, polyFee] = yield securityTokenRegistry.getFees({
                feeType: contract_wrappers_1.FeeType.TickerRegFee,
            });
            console.log('usdFee, polyFee, contract_wrappers_1.FeeType.TickerRegFee', usdFee.toNumber(), polyFee.toNumber(), contract_wrappers_1.FeeType.TickerRegFee)
            yield addProcedure(ApproveErc20_1.ApproveErc20)({
                amount: polyFee,
                spender: yield securityTokenRegistry.address(),
            });

It appears that fees fetched from the STR are all zeros:
0 0 tickerRegFee

Fixed in beta37.


docker setup stuck at login page

Hello,
I followed your docker guide with the self-hosted keycloak and everything went without errors.
On the first load in the browser, after all containers were up, there was only a blank page with this error in the browser console:
Uncaught TypeError: Failed to construct 'URL': Invalid base URL
at LoginError.tsx:54:12
at index.tsx:54:24
As there were no errors in the container logs, I think this is a bug in the frontend javascript. Any idea how to resolve this? :-)

How did you solve it?


Render interpretation line for Barcode128

Addresses issue #119
Set properties in the BarcodeLib.Barcode to correctly render the interpretation line, if present. A FontHelper class is added to conveniently convert from SkiaSharp.SKFont to System.Drawing.Font, as needed by BarcodeLib. The label font is chosen to be font 1 from the given DrawerOptions.

PR will be reworked from current master.


mobile-friendly and datatables for views

It's a first approximation, it can be improved but it's a good start for a mobile-friendly forum :)
I added it into a new folder so the people can choose, but I think the idea would be to merge at some point.

Thanks, but those are not actually used in the system.
We would be open for a solution where the user can choose to use your set of views or have them working with the current set of views.
Thanks.

Any dev or contributor can help with linking the views to the routes/controller? I'm better at frontend than programming.

I cancel this to continue with my develop rather than improving the original code because it take too much time


Cache Java AST nodes at Ruby nodes to always convert every Ruby node …

…to the same Java node
With this PR the NodeConverter will first ask the NodeCache if there is already a Java Node for the given Ruby node.
The NodeCache caches such information in the new member @asciidoctorj_cache that is a RubyHash and will contain the Java object under the key :asciidoctorj_node.
Additionally I changed the methods like getDocument(), getParent() & findBy() to always invoke the NodeConverter when returning a node.

I went further on this PR and now completely separated Java AST objects from Ruby AST objects!
All Java AST nodes have IRubyObjects as delegates instead of magic JRuby proxies that magically transform method calls in a way that we cannot predict. (See also the discussion in #323)
The Java AST implementation classes will also ensure that only Ruby objects will be put into the Ruby classes and therefore removes the mixup between Ruby objects and JRuby proxies generated via JavaEmbedUtils.rubyToJava (in Processor.createBlock())
I also tested with the leanpub converter by @ysb33r and it seems to work fine with this converter as well.

it looks good to me

Failed on appveyor due to a timeout on one of the two build environments.
I think there is no real error that made the build fail and build times on travis were pretty normal as well as the succeeding build on appveyor.

It's interesting how we've moved away from the automatic method mapping provided by an interface. I think it says a lot about the (lack of) maturity of that feature in JRuby. I agree with this new approach since it gives us much more flexibility and, thus, requires us to create less hacks.
Instead of calling JavaEmbedUtils.rubyToJava explicitly in the accessor methods, could you create a helper method on the abstract class to delegate to this method? Something like "toJava". That way, we don't have the static call hardcoded everywhere.
I made some inline comments where the mappings aren't quite lined up. Aside from those, this looks good.

Sorry, I had a lot of inline comments :) Hopefully you can work through them.

Thank you Dan for these comments!
I really appreciate that!

@mojavelinux I think I implemented all your proposed changes. Could you please take another look?

A few more small things, but we're almost there. This is really taking shape!

Solid! Let's go with it!

:beers:

I ran your changes against the Leanpub converter and I am happy to report that it went through first time without any rework!!

Awesome!
Your original problem should work as well!
node.document.options.attributes.docdir

Am 06.06.2015 um 14:15 schrieb Schalk W. Cronjé<EMAIL_ADDRESS>I ran your changes against the Leanpub converter and I am happy to report that it went through first time without any rework!!
—
Reply to this email directly or view it on GitHub.

\o/


[BUG] AnalyticalEngineInternalError

Describe the bug
AnalyticalEngineInternalError
To Reproduce

AnalyticalEngineInternalError: "'/work/analytical_engine/core/server/dispatcher.cc:72: operator() -> Unmatched std::exception detected: [json.exception.type_error.305] cannot use operator[] with a string argument with null\n0x0000000000464EEE: (SP:0x00007F12B5EF03F0) (void boost::throw_exceptionboost::bad_function_call(boost::bad_function_call const&) + 0x5B3)\n0x0000000000534719: (SP:0x00007F12B5EF0690) (gs::Dispatcher::publisherLoop() + 0x3B9)\n0x00007F12C5EEE8D0: (SP:0x00007F12B5EF0840) (execute_native_thread_routine + 0x10)\n0x00007F12BC3E2E25: (SP:0x00007F12B5EF0860) (start_thread + 0xC5)\n0x00007F12BADC534D: (SP:0x00007F12B5EF0900) (clone + 0x6D)\n\n/work/analytical_engine/core/server/dispatcher.cc:72: operator() -> Unmatched std::exception detected: [json.exception.type_error.305] cannot use operator[] with a string argument with null\n0x0000000000464EEE: (SP:0x00007F5163FF64C0) (void boost::throw_exceptionboost::bad_function_call(boost::bad_function_call const&) + 0x5B3)\n0x0000000000533AE2: (SP:0x00007F5163FF6760) (gs::Dispatcher::subscriberLoop() + 0xB2)\n0x00007F5177BAF8D0: (SP:0x00007F5163FF6840) (execute_native_thread_routine + 0x10)\n0x00007F516E0A3E25: (SP:0x00007F5163FF6860) (start_thread + 0xC5)\n0x00007F516CA8634D: (SP:0x00007F5163FF6900) (clone + 0x6D)\n\n'"

1.读取单文件4.2G 5400w条边(字符串id)异常
2.读取单文件255M 450w条边(字符传id)耗时90s
Screenshots

Environment (please complete the following information):

GraphScope version: [master]
OS: [Linux]
单机部署 服务器配置：256G内存,32C

Hi @inurfuture
Could you add me as a WeChat friend and we can help you on this case?
our wechat account: graphscope

Hi, I did some experiment with a generated file (5000w lines, where the vertex ID is a string with length 32) but cannot reproduce the error.
Could you provide more details such as the format of your input file and some lines of example?

We will feedback the result after testing on the dataset provided by @inurfuture.

Closed as stale.


Translated string not showed in Project manager

Operating system or device - Godot version:
Ubuntu 16.04 (64bit) - Godot v2.1.alpha.custom_build
Issue description
I add russian translation. In Project manager text strings are empty.
In Editor all fine.
Project manager and editor use various fonts?
Steps to reproduce:

get ru_RU.po from my branch
build
run
see buttons without text in Project Manager

Thanks for the report. It appears to be the same issue as #4879, so closing it as duplicate.


Publish LoggerPro as a package for Delphinus package manager

It's just a little idea to consider.
Maybe the whole Delphinus project (https://github.com/Memnarch/Delphinus) is not so mature but I think it's just nice idea because it can work directly with GitHub (in opposite to GetIt).
This could also allow to add LoggerPro as a dependency for other Delphinus packages.
The line with keyword "Delphinus-Support" in readme is required to find repository via GitHub API.
Oh... I also fixed headers styling in README.md :wink:

<bump>
Any opinion?...

Oh... Thanks :wink:
In case of any questions ask @Memnarch (creator of this tool)
Have a nice day!

Thank you. I just forgotted to click "merge" :-)

Oh... :grin:

PS. O... I've noticed that You added support for Linux.
I'll try to add Linux entry when I'll have some free time :smile:


Improve pull request templates

In spending some time maintaining this repo, I've noticed a few areas of friction with our current contribution guidelines and pull request templates. For example:

It's not 100% clear that we do not allow contributors to be affiliated with the project. Some folks are not checking the box, so let's make it more prominent and harder to miss. (example)

The formatting is not very easy to scan through, both for contributors and reviewers. Clean things up a bit and use headers to separate sections. (example)

There is some duplication between sections. Consolidate! (same example)

The topic.md and collection.md templates are not being used. Remove 'em!

<👀> See the before and after </👀>

@damaneice @brandonrosage @kenyonj would love your input!

@talsafran I think it looks great!


Cant install PTVS on a freshly installed version of VS2013 update 5

I get the message on my VS Express 2013 update 5 saying that my:
version of Visual Studio is not Supported.
Please install the latest update from http://www.visualstudio.com

Yes, you were right.
I knew it had to be the desktop version, but still I downloaded the windows version and had realized it.
Oh boy... I am getting old.
Thanks for the tip


Bug: Hover over data points in chart glitch

Summary of issue
When hovering over data points in charts for both "Total number of lab-confirmed cases in England by specimen date" and "Total number of COVID-19 associated UK deaths in hospital by date reported" glitches back to other dats
Steps to reproduce
Open dashboad
Hover over chart data point in either "Total number of lab-confirmed cases in England by specimen date" and "Total number of COVID-19 associated UK deaths in hospital by date reported" and move cursor to follow the line
Expected result
Should show total number of deaths or cases for each day
Actual result
Glitches back and forth
System
Global error - tested on Chrome, Firefox and Safari

 Bug: Hover over data points in chart glitch


Better optimize build by checking out-of-date generated grammar files with input grammar

Calc.g4 -> CalcBaseVisitor and JSON.g4 -> JSONBaseVisitor

So, it does this already. The problem is that we're setting a property value with "uptodate" which is IMMUTABLE. So, once it is set false, the subsequent check does NOT set to true, and it runs the Antlr generation again.  Checking now to see if there is a way to fix this.


replaced deprecated substring

Replaced substring(to:) here as it is showing warning: 'substring(to:)' is deprecated: Please use String slicing subscript with a 'partial range upto' operator.

#389 @texasmichelle I saw this issue after making PR. Sorry if I have duplicated your work

The issue was there so that someone could fix it :) Thank you for this submission @SumanSudhir !!

@texasmichelle now I have made changes in only one line and have not run any cell still unable to get a small difference.


Add usage docs to readme

Most of the usage documentation should flow pretty directly from the inline documentation (try crystal docs with this repo) along with the code already in example/example.cr.

Closed by 593d298ed930d1554020ed40f1edc35ff90e72d7


user-Third Party users

预期结果：点击第三方用户跳转成功
实际结果：点击第三方用户跳转失败

Third-party users have not yet developed


Can the flowcharts update live?

I have some elements of my chart linked to queries representing the statuses of various systems and services.
For example when my site takes too long to respond, the item turns orange and flashes the error symbol.
However the status does not change unless I refresh the page, which is not very helpful if I want to passively monitor the status of stuff without spamming refresh.
Is there any way to accomplish this?

Hi,
Can you try last version. publication coming soom.
You can download it at
https://algenty.github.io/flowcharting-repository/ARCHIVES.html
BR
Arnaud

0.6.0 published

So I updated to this version, and there's a couple things:

I don't think the flowcharts are updating live. I'm looking at a ping response where the variable is bound to text showing milliseconds. I am staring at this for minutes at a time without any of these numbers changing.

Previously I had the decimal places setting to 0, because I don't need accuracy to the hundredth of a millisecond when I'm looking at ping. This update changes the decimal count back to 2 and even when I manually change the number back to 0 and save the dashboard it reverts back to 2.

Hi @GideonWolfe
When you write "flowchart", it's flowcharting or graph in tooltip ? Graph is not updated when it is visible.
I'll fix decimal in next version.

I am referring to the chart itself.
For example, I used draw.io to get a diagram of a computer, and if a database query returns a response time of over 100ms for that computer, the computer shape will turn orange and the warning icon will blink.
I can only see the state of the computer as it was when the flowchart was loaded. If I load the page and the diagram is green, it will stay green until I refresh the page, even if the warning should show.
Get Outlook for Androidhttps://aka.ms/ghei36

From: Arnaud GENTY<EMAIL_ADDRESS>Sent: Saturday, December 28, 2019 3:01:42 AM
To: algenty/grafana-flowcharting<EMAIL_ADDRESS>Cc: Gideon Wolfe<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [algenty/grafana-flowcharting] Can the flowcharts update live? (#101)
Hi @GideonWolfehttps://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FGideonWolfe&data=02|01|wolfeg2%40wwu.edu|1c4d86758e1f47103d6d08d78b8552dc|dc46140ce26f43efb0ae00f257f478ff|0|0|637131277058932480&sdata=Qf74%2BSzeTC1oqskRIbOuUc5PG%2BBBohB7vTH%2BruNMUOU%3D&reserved=0
When you write "flowchart", it's flowcharting or graph in tooltip ? Graph is not updated when it is visible.
I'll fix decimal in next version.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Falgenty%2Fgrafana-flowcharting%2Fissues%2F101%3Femail_source%3Dnotifications%26email_token%3DAH3KPZELADBGJARCP5VE6ILQ24WZNA5CNFSM4J4CB76KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEHYHLXA%23issuecomment-569406940&data=02|01|wolfeg2%40wwu.edu|1c4d86758e1f47103d6d08d78b8552dc|dc46140ce26f43efb0ae00f257f478ff|0|0|637131277058942443&sdata=MYZlwVP1c9FXNqCl%2FSqaM2aD%2Fk55g5poSX%2BTypYPagw%3D&reserved=0, or unsubscribehttps://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAH3KPZADT74KQTXWPDP27MDQ24WZNANCNFSM4J4CB76A&data=02|01|wolfeg2%40wwu.edu|1c4d86758e1f47103d6d08d78b8552dc|dc46140ce26f43efb0ae00f257f478ff|0|0|637131277058942443&sdata=fFdqLuFgGs0sJhuJRIa%2FhnJKJenpBQ7VTP5rlnwEZ80%3D&reserved=0.

Hi Gideon,
For me the flowchart is updated automatically with the given update frequency in the top-right of grafana. The fastest update speed is 1 second. In the picture below it is set to 30 seconds. When you have zoomed in, the autofresh is disabled until you select autorefresh again.

I think the normal autofresh goes down to 5 second, you can insert 1s in the dashboard settings when you want faster updates:

Kind regards,
Dennis

That worked perfectly, thanks!