onPacketCreate netid

https://github.com/GuckTubeYT/GTProxy/blob/23e535b11ce800306e57751872c95b12e57b6da7/packet/packet.c#L49
feel like missing netid at this line

https://github.com/GuckTubeYT/GTProxy/blob/23e535b11ce800306e57751872c95b12e57b6da7/packet/packet.c#L88 at here maybe?

like packet_t.netid = 1; ?

https://github.com/GuckTubeYT/GTProxy/blob/23e535b11ce800306e57751872c95b12e57b6da7/packet/packet.c#L88
at here maybe?

try already at this line but didnt send anything to my netid server

may i ask which one is Packet Type

https://github.com/GuckTubeYT/GTProxy/blob/23e535b11ce800306e57751872c95b12e57b6da7/packet/packet.c#L87
at here @FeffyLaffy

@FeffyLaffy is the issue is solve?

@FeffyLaffy did you solve the issue?

nope still not but i try my best way to find out if can

@FeffyLaffy i want to ask, you want to send onPacketCreate to server, or to client?

https://github.com/GuckTubeYT/GTProxy/blob/23e535b11ce800306e57751872c95b12e57b6da7/packet/packet.c#L87
at here @FeffyLaffy

for sure this packet is seems like NET_MESSAGE_GAME_MESSAGE and didnt create a another GameUpdatePacket for PACKET_CALL_FUNCTION because i want to try sending netid to PACKET_CALL_FUNCTION to create a new packet

ohh, later, i will update to can custom netid, not only 4

https://github.com/GuckTubeYT/GTProxy/blob/23e535b11ce800306e57751872c95b12e57b6da7/packet/packet.c#L87
at here @FeffyLaffy

for sure this packet is seems like NET_MESSAGE_GAME_MESSAGE and didnt create a another GameUpdatePacket for PACKET_CALL_FUNCTION because i want to try sending netid to PACKET_CALL_FUNCTION to create a new packet

eh, btw, PACKET_CALL_FUNCTION is already on packet_t.netid

https://github.com/GuckTubeYT/GTProxy/blob/23e535b11ce800306e57751872c95b12e57b6da7/packet/packet.c#L87
at here @FeffyLaffy

for sure this packet is seems like NET_MESSAGE_GAME_MESSAGE and didnt create a another GameUpdatePacket for PACKET_CALL_FUNCTION because i want to try sending netid to PACKET_CALL_FUNCTION to create a new packet

eh, btw, PACKET_CALL_FUNCTION is already on packet_t.netid

that why i ask what function is packet_t.netid = 1; at this line because i change to my netid is not working at my client

that why i ask what function is packet_t.netid = 1; at this line because i change to my netid is not working at my client

sorry 😂 i changed it to packet_t.gamePacketType to not confused 😂
https://github.com/GuckTubeYT/GTProxy/blob/9d54e426228ef2cc031bc1ddb910bac6dd72de3a/packet/packet.c#L88

that why i ask what function is packet_t.netid = 1; at this line because i change to my netid is not working at my client

sorry 😂 i changed it to packet_t.gamePacketType to not confused 😂
https://github.com/GuckTubeYT/GTProxy/blob/9d54e426228ef2cc031bc1ddb910bac6dd72de3a/packet/packet.c#L88

i not sure if i can find netid or not make sure PR https://github.com/GuckTubeYT/GTProxy/pull/15/commits/14c4ff441f30ec929083b45f9acfdb79c478b8db this

lol, i forget to add that on header

somehow i see netid is using uint_32

hmmmmm... maybe i was wrong, maybe it is netid, not gamepackettype 😂

i need to find that out

here if you are looking for netid
https://github.com/GuckTubeYT/GTProxy/blob/c8017955268349281568dc2aefb48085f310a5fd/packet/packet.c#L89

here if you are looking for netid
https://github.com/GuckTubeYT/GTProxy/blob/c8017955268349281568dc2aefb48085f310a5fd/packet/packet.c#L89

ohh, is it netid?

here if you are looking for netid
https://github.com/GuckTubeYT/GTProxy/blob/c8017955268349281568dc2aefb48085f310a5fd/packet/packet.c#L89

ohh, is it netid?

yes

here if you are looking for netid
https://github.com/GuckTubeYT/GTProxy/blob/c8017955268349281568dc2aefb48085f310a5fd/packet/packet.c#L89

i guess is it that is default netid int_32

https://github.com/GuckTubeYT/GTProxy/blob/c8017955268349281568dc2aefb48085f310a5fd/packet/packet.c#L90
and this is seems like flag packet 8

after i create for packet call function for OnNameChaged is does work

is the issue is solve?

nope still not but i close the issue


Add error code for docstring styles that deviate from selected style

If a user is linting sphinx-style docstrings, pydoclint should be able to detect whether docstrings deviating from the selected style, such as google/numpy, are present and raise a violation.

Hi @alpastor4 , @kehoecj, @jack-swiney:
If I were to implement this feature, changes would need to be made here: https://github.com/jsh9/pydoclint/blob/27ff76915d548ebc19bcd1e9f802bb7c0386b4a6/pydoclint/utils/doc.py#L26-L35
The logic would be:

Parse the docstring using 3 different parsers
Write some logic to determine what style the docstring actually is
Report violation if there's discrepancy

The difficulty is in Step 2, because the logic isn't trivial to write, especially when the dosctring is written with a mixed style (I don't know how often it happens).
Would you want to try to write some logic yourself?  If it is solid, I can consider implement it.
Here's a script that you can use as a basis for experimenting the logic:
# Install first: https://github.com/jsh9/docstring_parser_fork
from docstring_parser.google import GoogleParser
from docstring_parser.numpydoc import NumpydocParser
from docstring_parser.rest import parse as parseSphinx

docstring = """Fetches rows from a Smalltable.

    Retrieves rows pertaining to the given keys from the Table instance
    represented by table_handle.  String keys will be UTF-8 encoded.

    Args:
        table_handle: An open smalltable.Table instance.
        keys: A sequence of strings representing the key of each table
          row to fetch.  String keys will be UTF-8 encoded.
        require_all_keys: If True only rows with values set for all keys will be
          returned.

    Returns:
        A dict mapping keys to the corresponding table row data
        fetched. Each row is represented as a tuple of strings. For
        example:

        {b'Serak': ('Rigel VII', 'Preparer'),
         b'Zim': ('Irk', 'Invader'),
         b'Lrrr': ('Omicron Persei 8', 'Emperor')}

        Returned keys are always bytes.  If a key from the keys argument is
        missing from the dictionary, then that row was not found in the
        table (and require_all_keys must have been False).

    Raises:
        IOError: An error occurred accessing the smalltable.
"""

numpy_parser = NumpydocParser()
parsed_numpy = numpy_parser.parse(docstring)

google_parser = GoogleParser()
parsed_google = google_parser.parse(docstring)

parsed_sphinx = parseSphinx(docstring)

print(parsed_numpy)
print('--------------------')
print(parsed_google)
print('--------------------')
print(parsed_sphinx)

How about just showing a warning/error when something was not found? For example: function xxx.py: WARNING: No Long description found in docstring?
And if the parser founds nothing (empty or really badly formatted docstring) raise a function xxx.py: Could not parse docstring?

Hi @Gabriel-p , sorry for the late reply!

How about just showing a warning/error when something was not found? For example: function xxx.py: WARNING: No Long description found in docstring?

Lack of long description is entirely fine in a docstring, and also it's out of the scope of pydoclint.  Because pydoclint's goal is to check consistency between docstring args/exceptions/returns against args/exceptions/returns in the function's signature or body.

And if the parser founds nothing (empty or really badly formatted docstring) raise a function xxx.py: Could not parse docstring?

I could potentially implement this idea, but this doesn't solve @alpastor4's original issue, which is to detect mixture of docstring styles.
I think a more elegant way is to write a new linter that contains a machine learning model to detect docstring styles.  It will essentially be a 4-category classification model:

Category 0: unrecognizable or mixed
Category 1: numpy
Category 2: google
Category 3: sphinx

Such a machine learning model should be very easy to train and with very high accuracy (although not 100%).
But I don't know how much demand are there in the community, and I don't know how to gather such data.  A poll or something?  I'm not sure.

I think that my issue is simpler than the one reported by the OP. To me, having a warning shown when the docstring could not be parsed with the selected style would be enough. I don't need the package to auto-detect the docstring's style, I just need it to warn me if my docstring does not conform to the style I selected.
Should I open a new issue?

I think that my issue is simpler than the one reported by the OP. To me, having a warning shown when the docstring could not be parsed with the selected style would be enough. I don't need the package to auto-detect the docstring's style, I just need it to warn me if my docstring does not conform to the style I selected.
Should I open a new issue?

Sure, please open a new issue. Thanks!


expose some prototype transforms utils

In order to make it easy to subclass the v2 transforms, we also need to expose some utilities for public usage. This PR adds a new module torchvision.prototype.transforms.utils for that. Everything else stays in _utils as before.
For completeness, we also discussed dynamically create this module. This can be achieved by adding the following to __init__.py
def _load_utils():
    import sys
    import types

    from torchvision.prototype.transforms import _utils

    utils = types.ModuleType(f"{__package__}.utils")
    utils.__package__ = __package__
    for attr in ["has_any", "has_all"]:  # TODO: expand this to everything we want to expose
        utils.__dict__[attr] = getattr(_utils, attr)
    sys.modules[utils.__name__] = utils

    return utils

utils = _load_utils()

del _load_utils

Now, one can do
>>> from torchvision.prototype.transforms import utils
>>> utils.has_any
<function has_any at 0x7f92516060e0>
>>> from torchvision.prototype.transforms.utils import has_any
>>> has_any
<function has_any at 0x7f92516060e0>

This would save us the split between the two modules, but has some issues as well:

This is a fairly complex solution to an otherwise simple problem
Due to the dynamic creation, imports such as from torchvision.prototype.transforms.utils import has_any work perfectly fine, but are not picked up by static analyzers like mypy or IDE's

cc @vfdev-5 @datumbox @bjuncek

When we merge this, we should update #6721 and #6534 to avoid breaking their code again.

We are having issues with the flaky bbox resize tests. Could you please prioritise the fix?

See #6995.


updated file name

updated the script filename upgrade_mattermost.sh to update_mattermost.sh

Summary

Ticket Link

Hello @trishitapingolia,
Thanks for your pull request! A Core Committer will review your pull request soon. For code contributions, you can learn more about the review process here.


CDS example: Cloudant Sync, Spark Streaming, Machine Learning

This example is to highlight the following CDS functionality:

ml algorithm by offline training on a dataset using Spark
cloudant sync application that generates new data unlabeled data
spark cloudant sync streaming adapter to listen for the new data
realtime prediction on new data
depending on predication push result to cloudant where the next step of the process will handle it

This example comes to mind, predicting caravan insurance as per this machine learning challenge
The strongest single predictor of having a caravan insurance policy is having a single car insurance policy where the contribution is high (level 6), or having two car policies. The other predictors that are most statistically significant are:

"purchasing power class" is high (5 or higher, especially 7 or higher)
a private third party insurance policy
a boat policy
a social security insurance policy
a single fire policy with higher contribution (level 4)

The example could represent a mobile app for insurance agent acting on behalf of their prospects who are visiting about their car insurance policy.  The agent enters prospect information such as the above predictors.   The insurance agent's input gets sync'd into a remote Cloudant database "insurance-quotes-requested".
Spark steaming would listen to the above changes feed and make predictions whether the prospect would likely buy caravan insurance.  The predicted outcome will go into a database "realtime-insurance-offers", where it will be processed by some downstream component.
NOTE:

Naive bayes, the approach used by the challenge winner appears to be able to possible through spark streaming.  An example is here

@wilhol @KimStebel  - any thoughts on this?

I'd suggest talking to Holger about this as well as there is overlap with the indexing / integration team work. I'm wary of using _changes for this due to rewinds/duplicates - instead you might want to proxy/monitor bulk_docs / writes.

Thanks @willholley.
@HolgerKache - what is the situation regarding spark streaming and issues with rewinds/duplicates on _changes?

So that would work with Spark as part of BIoC?

Hi @KimStebel - correct.  It should also work with SparkAAS

@snowch I don't think Spark itself would care about rewinds but your app logic has to. If you're building anything that reacts to document updates / changes, the _changes feed doesn't have quite the right semantics. My thinking was that perhaps the MessageHub team are using a custom integration point in dbcore that posts to MessageHub on doc creation/update.

@willholley @snowch can someone elaborate on the question you are asking me? What is the rewinds/duplicate problem you are talking about with respect to the Spark Connector in Cloudant?

_changes doesn't guarantee that things will move forward in time - the contract is that _changes will return all the documents that have changed following the sequence number provided as a since parameter, but it may also return documents that changed before then as well. Additionally, _changes consumers are expected to ensure that their operations are idempotent - effectively they need to keep track of all changes that they've ever processed (not surprising since _changes primary function is to allow sync).
On the extreme end, there have been bugs which caused existing sequence numbers to be invalid, resulting in  _changes to replay from the start (e.g. when shard moves occur).
We have a number of customers today using _changes to drive app notifications or integration to non-CouchDB systems and they nearly all get burned by the issue of duplicates or rewinds at some point. I think Chris was hoping that these issues would be solved by the integration layer but it sounds like consumers would still have to know that duplicates or rewinds might occur when reading data from Cloudant in Spark or MessageHub.
If we instead pushed out notifications to e.g. MessageHub triggered by doc writes/updates then we would at least avoid the rewind issue (handy for the notification / Whisk use case)

In the perspective of this example, I think it could be designed such that duplicates aren't an issue.  It would be good to state the spark-cloudant adapters behaviour though so developer's using it know that they are responsible for handling duplicates.  I've raised a ticket to cover this: https://github.com/cloudant-labs/spark-cloudant/issues/60

Ok, understood. As you have guessed correctly, the Spark Streaming receiver and the Message Hub connector are both based on the _changes feed and use the sequence number as primary key. There is no concern for document _id or _rev or the order in which revisions are being processed. Both consumers work in append only fashion where every _change is a net new event being put on the bus (and processed by the stream receiver).
We can make that clear in the connector documentation but have no means to work around it. The semantics of the _changes feed is what we depend on.


Example of matrix testing may be wrong.

Hi, I'm glad to make such a awesome package!
On matrix testing,
        with:
          version: '26.3'

should be
        with:
          version: ${{ matrix.emacs_version }}

, as far as I see Actions config for package-lint referenced by Set up Emacs.
Thanks!

Thanks for your report! I fix that.

Fixed! Thanks!


Tensorrt integration 3

Description
This PR fixes the build stage, makes a few copy updates to the readme, and addresses some linting errors.
Todo after this PR for me are

Give a cpp review
Get a test stage working with your provided tests and run it on a p3.

Thanks @KellenSunderland !!!


Truffle Decoupling

This PR decouples the deployment futures from truffle. This accomplishes two things:

Sets us up for generating code from non-truffle sources (for example #112)
Gives us more control over how the generated code (for example #100)

Test Plan
CI - This is mostly a refactoring and adding new abstractions

@fleupold So, we are still very much dependent on Truffle artifacts for generating code. The important decoupling is that deployment (so DeployedFuture and Deploy{Builder,Future}) no longer depend on a truffle Artifact. This allows the generated code to slowly add support for things outside of truffle for example:

Custom networks definitions (for the dev networks in dex-services for example so we can use pre-built contracts from the npm package).
Support for other formats like ethPM and maybe getting verified contracts directly from etherscan.io

While the Instance type still depends on Truffle artifacts, the building blocks for it no longer do so we can start generating code that doesn't as well.


Add suite thread pool size testng option

Signed-off-by: sergey gotovsky<EMAIL_ADDRESS>Fixes https://github.com/gradle/gradle/issues/20773
Context
TestNg have an option to run xml suites in parallel. It's very useful feature for project with big count tests stored in xml (with other params like parallel/threads-count/parameter/etc), but we still can't set up this option via gradle. In this pr I try to add this option.
Contributor Checklist

[x] Review Contribution Guidelines.
[x] Make sure that all commits are signed off to indicate that you agree to the terms of Developer Certificate of Origin.
[ ] Make sure all contributed code can be distributed under the terms of the Apache License 2.0, e.g. the code was written by yourself or the original code is licensed under a license compatible to Apache License 2.0.
[ ] Check "Allow edit from maintainers" option in pull request so that additional changes can be pushed by Gradle team.
[ ] Provide integration tests (under <subproject>/src/integTest) to verify changes from a user perspective.
[ ] Provide unit tests (under <subproject>/src/test) to verify logic.
[ ] Update User Guide, DSL Reference, and Javadoc for public-facing changes.
[x] Ensure that tests pass sanity check: ./gradlew sanityCheck.
[x] Ensure that tests pass locally: ./gradlew <changed-subproject>:quickTest.

Reviewing cheatsheet
Before merging the PR, comments starting with

❌ ❓must be fixed
🤔 💅 should be fixed
💭 may be fixed
🎉 celebrate happy things

@bot-gradle test and merge

WARN: Based on labels, this pull request addresses notable issue but no changes to release note found.


Add option to Auto Close Preview when switching focused tab away from the markdown file

It would be quite convenient if there was an option to automatically close the Preview when you switch the focused tab away from a Markdown file in VSCode. The workflow would be as follows: You start coding, then open a Markdown (MD) file, which triggers the Preview window to open on the right side. When you switch back to your previous coding tab, the Preview window would automatically close.

Good advice! Now, you can try setting markdown-auto-preview.autoClosePreviewAfterSwitch to enable this feature:

Thanks for the quick implementation @vv13!!!
However, I've noticed that it doesn't seem to work when switching from a Markdown file to a .ipynb Jupyter notebook (which is my main workflow). I've attached a GIF demonstrating the issue. Is this a limitation, or does it require extra handling for notebooks?

Thanks for the quick implementation @vv13!!! However, I've noticed that it doesn't seem to work when switching from a Markdown file to a .ipynb Jupyter notebook (which is my main workflow). I've attached a GIF demonstrating the issue. Is this a limitation, or does it require extra handling for notebooks?

Sorry, I can't find a way to make everything work. There's a mechanism where .ipynb files are not treated as a TextEditor, so I can't subscribe to state changes between certain types of editor.
I'll try to solve this problem after a few days, thanks for your support.
references:

https://github.com/microsoft/vscode-docs/issues/3424

Perfect, thanks!
But don't worry too much about it. Your extension is already proving to be really useful for my workflow :)


Renames now that we have a build section

I'd like to rename:

cmake.targets -> build.targets
cmake.verbose -> build.verbose

Old will work but be deprecated (minimum-version based).

cmake.verbose would be useful to separate verbose for configure and build stage

Probably also a configure section too, see #790.

I'm not sure what would go in config, though. cmake.args mirrors CMAKE_ARGS better, and we think of it as args to cmake more than configure-time arguments. configure.preset sounds good, though.

Why not have cmake.args be alias to config.args? From CMake point of view it kinda mirrors the cmake without any option is implicitly configure. Would fit more naturally with build.args.
But also tool.scikit-build.config.xxx or tool.scikit-build.cmake.config.xxx? I don't think the latter is too verbose when it is being used within a group tool.scikit-build.cmake

I don't like the idea of a permeant alias. Then you have to solve the question of what to do if both are specified. Though I do like the potential symmetry there somewhat, but these are cmake args as well, while build args are not cmake args.


Adjust version info

Closes #266
Basically the buildpack wasn't entirely accurate when it said "the latest supported version", when in reality it uses the DefaultVersion specified in data.json when no version is specified.
Additionally the version message handling wasn't in the right place for go modules.
This PR fixes those two things.

Should the go.mod/etc detection path start you with go1.11 now instead of needing to have it specified in go.mod?

I don't feel comfortable making that assumption. I can't really explain why though either.

@danp Actually nevermind. thinking about this it probably makes the most sense for now.


Spanish whois: UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 50: ordinal not in range(128)

I get the following error searching via whois ARP <IP_ADDRESS>:
Traceback (most recent call last):
  File "/usr/local/bin/ipwhois_cli.py", line 6, in <module>
    exec(compile(open(__file__).read(), __file__, 'exec'))
  File "/root/src/ipwhois/ipwhois/scripts/ipwhois_cli.py", line 1481, in <module>
    get_asn_description=(not script_args.skip_asn_description)
  File "/root/src/ipwhois/ipwhois/scripts/ipwhois_cli.py", line 1059, in lookup_rdap
    json_data=ret, hr=hr, show_name=show_name, colorize=colorize
  File "/root/src/ipwhois/ipwhois/scripts/ipwhois_cli.py", line 974, in generate_output_objects
    i_value
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 50: ordinal not in range(128)

The normal output via the whois command is throwing this data:
$ whois <IP_ADDRESS>
% This is the RIPE Database query service.
% The objects are in RPSL format.
%
% The RIPE Database is subject to Terms and Conditions.
% See http://www.ripe.net/db/support/db-terms-conditions.pdf

% Note: this output has been filtered.
%       To receive output for a database update, use the "-B" flag.

% Information related to '<IP_ADDRESS> - <IP_ADDRESS>'

% Abuse contact for '<IP_ADDRESS> - <IP_ADDRESS>' is<EMAIL_ADDRESS>
inetnum:        <IP_ADDRESS> - <IP_ADDRESS>
netname:        IPCOM-NET
descr:          VODAFONE ESPANA, S.A.U.
descr:          VODAFONE-Broadband
descr:          Infraestructura Red y Servicios IP
country:        ES
admin-c:        PRC8-RIPE
tech-c:         PRC8-RIPE
status:         ASSIGNED PA
mnt-by:         COMUNITEL-MNT
created:        2019-04-25T15:59:35Z
last-modified:  2019-04-25T15:59:35Z
source:         RIPE

role:           Planificacion RMS Comunitel
address:        Oficina Vodafone Bouzas I (oficina Comercial Vigo)
address:        Consorcio. Zona Franca Bouzas.
address:        36208 Vigo Espanha
remarks:        Grupo de Planificacion Broadband
abuse-mailbox<EMAIL_ADDRESS>admin-c:        ACG18-RIPE
tech-c:         SRO19-RIPE
tech-c:         RMD13-RIPE
tech-c:         ACG18-RIPE
tech-c:         ERP9-RIPE
tech-c:         ISC17-RIPE
tech-c:         RLC13-RIPE
tech-c:         MTP58-RIPE
nic-hdl:        PRC8-RIPE
mnt-by:         COMUNITEL-MNT
created:        2008-11-06T12:08:42Z
last-modified:  2011-12-22T12:18:12Z
source:         RIPE # Filtered

% Information related to '<IP_ADDRESS>/21AS12357'

route:          <IP_ADDRESS>/21
descr:          Vodafone-BB Global PA Block
origin:         AS12357
mnt-by:         COMUNITEL-MNT
created:        2016-07-12T07:02:21Z
last-modified:  2016-07-12T07:02:21Z
source:         RIPE

% This query was served by the RIPE Database Query Service version 1.97 (HEREFORD)

I get this same error for other ips like <IP_ADDRESS>, <IP_ADDRESS>

Are you still having this issue? I was not able to reproduce using the IPs provided.


[Attributes] some mesh fields not displayed in color in 3D

Since this PR https://github.com/Inria-Asclepios/medInria-public/pull/714 some attributes of meshes were not displayed in color in 3D orientation. It was because vtkIdFilter vas not properly initialized. This PR solves this problem.
:m:

Done, removed the update method


Implement Han Xin code

[x] High-level data encoding

[x] Byte mode

[x] Version selection
[x] Reed Solomon error codewords

[x] Codeword splitting into blocks/Interleaving

[x] Lucky 13 interleaving
[x] Matrix setup (finders, alignment, assistant alignment, function modules)
[x] Data placement in matrix
[x] Apply masking
[x] Mask evaluation and selection
[x] Add function information

Support added in version 2016-04-20 by commit cdc0d4e069b8a327f7a960597112da088d283af0.


update docker runtime to push master tag to Docker from Travis build

Update the Travis build to push a tag "master" to Docker when the master branch is updated.
This will make it easier to pull the image that aligns with the latest changes on the Master branch.
Reference can be taken from: apache/incubator-openwhisk-runtime-java#37

we are using latest as the most recent image


Issue with running tram.py

COULD NOT CONNECT TO TAXII SERVERS: 'description'
PLEASE UTILIZE THE OFFLINE CAPABILITY FLAG "-FF" FOR OFFLINE DATABASE BUILDING
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ERROR:asyncio:Task exception was never retrieved
future: <Task finished coro=<background_tasks() done, defined at tram.py:21> exception=SystemExit()>
Traceback (most recent call last):
File "tram.py", line 34, in background_tasks
await data_svc.insert_attack_stix_data()
data_svc.py", line 54, in insert_attack_stix_data
"description": i['description'].replace('', '').replace('', '').replace(
python3.7/site-packages/stix2/base.py", line 195, in getitem
return self._inner[key]
KeyError: 'description'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/asyncio/base_events.py", line 571, in run_until_complete
self.run_forever()
File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/asyncio/base_events.py", line 539, in run_forever
self._run_once()
File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/asyncio/base_events.py", line 1775, in _run_once
handle._run()
File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/asyncio/events.py", line 88, in _run
self._context.run(self._callback, *self._args)
File "tram.py", line 40, in background_tasks
sys.exit()
SystemExit
Please help, having issues solving this...

This at face value appears to be the same issue as Issue 59
https://github.com/mitre-attack/tram/issues/59

I am also having the same issue:
CRITICAL:root:!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
COULD NOT CONNECT TO TAXII SERVERS: 'description'
PLEASE UTILIZE THE OFFLINE CAPABILITY FLAG "-FF" FOR OFFLINE DATABASE BUILDING
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ERROR:asyncio:Task exception was never retrieved
future: <Task finished coro=<background_tasks() done, defined at tram.py:23> exception=SystemExit()>
Traceback (most recent call last):
File "tram.py", line 36, in background_tasks
await data_svc.insert_attack_stix_data()
File "C:\Users\Arif\TRAM\tram\service\data_svc.py", line 54, in insert_attack_stix_data
"description": i['description'].replace('', '').replace('', '').replace(
File "C:\Users\Arif\AppData\Roaming\Python\Python37\site-packages\stix2\base.py", line 216, in getitem
return self._inner[key]
KeyError: 'description'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\ProgramData\Anaconda3\lib\asyncio\base_events.py", line 571, in run_until_complete
self.run_forever()
File "C:\ProgramData\Anaconda3\lib\asyncio\base_events.py", line 539, in run_forever
self._run_once()
File "C:\ProgramData\Anaconda3\lib\asyncio\base_events.py", line 1775, in _run_once
handle._run()
File "C:\ProgramData\Anaconda3\lib\asyncio\events.py", line 88, in _run
self._context.run(self._callback, *self._args)
File "tram.py", line 42, in background_tasks
sys.exit()
SystemExit
How to fix it?? Please help.

I found the solutions here. It needs to change the code in /service/data_svc.py file as given in the below link:

I found the solutions here. It needs to change the code in /service/data_svc.py file as given in the below link: jecarr@060b4f2

that workes for me aswell, but now the analyze content doesn't render iike in this post https://github.com/mitre-attack/tram/issues/67 and loading just one file of my queue takes up to 20 minutes

I found that error as below, but I changed my data_svc.py as  that link
said https://github.com/jecarr/tram/commit/060b4f2152cf7692aa5c76851a86b441247e4645 , but the error didn't solved
INFO:root:Welcome to TRAM
DEBUG:root:Will build model from static file
DEBUG:asyncio:Using selector: SelectSelector
DEBUG:root:[#] 0 Existing items in the DB
ERROR:asyncio:Task exception was never retrieved
future: <Task finished coro=<background_tasks() done, defined at tram.py:21> exception=KeyError('description')>
Traceback (most recent call last):
File "tram.py", line 42, in background_tasks
await data_svc.insert_attack_json_data(json_file)
File "D:\coding\python\tram\service\data_svc.py", line 143, in insert_attack_json_data
'description': item['description'],
KeyError: 'description'
INFO:root:[] Found punkt
INFO:root:[] Found stopwords
INFO:root:server starting: <IP_ADDRESS>:9999

Hi @jecarr, with the latest commit<PHONE_NUMBER>aa704381899a20fae490a3e0424fc8 I still have the same issue as mentioned above https://github.com/mitre-attack/tram/issues/60#issuecomment-729803202.
With the code change in data_svc.py as mentioned in jecarr@060b4f2 is was able to get TRAM running .
However, this code change is not included in the latest commit...
Is this still a valid solution or do I break something with this code change?
Many thanks in advance!

Hey @buyushan - thanks for the feedback. It looks like my fix didn't work for you because you've specified the config to build the database locally (and not online). So my forked repo and commit doesn't hit

... line 143, in insert_attack_json_data

(to quote from your stack trace).
Without any fixes applied, KeyErrors therefore will occur:

In insert_attack_json_data if you build the db locally
In insert_attack_stix_data if you leave the config as is and fetch data from the taxii server

@buyushan, given this you should now notice a slight difference between your error stack trace and those that have been pasted earlier in this issue by others (i.e. different culprit 'insert_' methods)
I realise @GoldBigDragon came across the same scenario as you and created #79. You should be able to take their branch as is or apply solely GoldBigDragon/tram@321e156 to fix your issue.
For completeness of my branch, I've also updated my PR to include this fix (jecarr/tram@7d357fd). I would be keen to know the local json file you specified in the config because the config currently points to an enterprise-attack.json file which doesn't exist. Even if I point to attack_dict.json which does exist, I will receive KeyErrors much earlier than the 'description' line when calling insert_attack_json_data().
It would be good to know how you triggered the error so we can make insert_attack_json_data() more resilient in the future.

Hi @MarleenSteinhoff - apologies if this doesn't answer your question and/or I'm stating things you already know. Feel free to let me know if so:
Is this still a valid solution?
For the given error you are facing (KeyError), this is a valid solution. This is because the code is at a point where it is trying to go through attack data. For a single attack entry in this attack data, it attempts to read the description of that attack. Let's take a look at the error stack trace from the beginning of this issue:

data_svc.py", line 54, in insert_attack_stix_data
"description": i['description'].replace('', '').replace('', '').replace(

i is the current attack being read at this point. It just so happens this attack doesn't have a description. Therefore when i['description'] occurs, Python will throw a KeyError because it can't find 'description' belonging to i (the attack). In Python terms, it can't find a key 'description' in dictionary i. Once this error is thrown, the code has exited so tram will not load (see end of the stack trace):

sys.exit()
SystemExit

You mentioned you applied the code and tram was able to run. Let's see what is actually applied there; to quote from that commit, it is this:
..."description": i['description']. ... if hasattr(i, "description") else 'No description provided', ...
In Python, this is a ternary operator assignment. It's a shorthand for assigning a variable based on a condition. For example, I could have x = 5 if False else 7. Because False is not True, x becomes 7.
Back to the line: "description": i['description'] -> we have a dictionary (see use of { } around this line and its neighbouring attack fields like name, id, etc). In this dictionary, we have a field 'description' which we are assigning a value for (use of colon, :).
As for the fix: this if statement is checking if the attack (i) has a key 'description'. If it does, it can proceed as normal accessing the description via i['description'] but if it doesn't, the part i['description'] never gets executed and the KeyError is avoided.
Because this is a KeyError, there are different approaches to this fix so someone might check 'description' in object i differently.

Do I break something with this code change?
No, this enables tram to finish loading the attack data so will not break anything. You may come across errors whilst using tram - refer to other existing issues here - but (unless they involve the description in some way) it will not be the fault of this fix.
Definitions of a 'breaking change' may change from person to person. For this repo, it could be a fix that raises a new error is a breaking change. Other repos may have tests for you to run to check your code is fine (and doesn't break other parts). You can see an example in a different repo here  codelucas/newspaper#885 where there are green ticks and red crosses next to commits which informs me of breaking something. Back to tram, there are no tests (at time of writing) to tell me if something breaks therefore I trust in having tram loaded to tell me it's not breaking anything.

However, this code change is not included in the latest commit...
Short answer: It's not included because these are changes applied after that commit. You can see the timestamp for 5321499 is earlier than the timestamp for jecarr/tram@060b4f2.
Longer answer: This is to do with the use of a different branch.
What are branches? These are different versions of the code you may have for a repo. You usually have branches when you want to make code changes without affecting a default or different version of the repo. You can see the tram repo's branches here:

(You can click 'View all branches' at the bottom of the list or the '20 branches' hyperlink to the side of the list to see details of each branch)
All repositories have a default branch, tram's repo has a default branch of master (as you can see from the image). When you cloned the repo (git clone https...), git would have selected the default branch for you to use. Git is a VCS (version control system). Assuming you haven't done any git commands other than the initial git clone, if you go into the tram folder on a terminal and type git status, you will be told On branch master. You will also be told you modified a file (to apply the KeyError fix).
To go beyond branches, I'll briefly mention forked repositories. This is where there is an original repository but a user wants to own a copy. For example, if you go here, in the top left below the repo name, it is stated my jecarr/tram repo is forked from mitre-attack/tram. My jecarr/tram repo therefore has a different default branch, main, which you are told This branch is even with mitre-attack:master. There's that commit 5321499!
When I use my default branch of jecarr/tram, I face the KeyError you faced. I want to apply my fix. So I created an attack-keyerror branch. You'll spot that in the list of branches in jecarr/tram but not mitre-attack/tram. Like many repositories on github, the security settings are such that I can't create a branch in a repo that is not mine/I have permission to contribute to, hence my fix is in a forked repo.

Where it says Create branch: ... from 'main', this means the new branch will contain everything it has in branch main for me to build off of (add code, remove code, etc) in the new branch.
With this separate branch attack-keyerror, I have the goal for it to be merged back in the mitre-attack/tram default branch. This is so people who git clone in the future will have that fix. But this isn't my repo; my change needs to be code reviewed by someone who maintains the mitre-attack/tram repo to determine if it can be merged into their default branch. If you scroll up to the top of this issue and see its info on the right, I have linked a pull request there. If you click it or hover over it, you'll see something like mitre-attack:master <- jecarr:attack-keyerror. This reflects that I want to merge attack-keyerror from my jecarr/tram repo into master of the mitre-attack/tram repo.
Now that I have a separate branch, it is down to me to maintain it. Future commits may occur in mitre-attack/tram:master. I'll then need to ensure my forked repo and its attack-keyerror branch includes such commits. As someone who wants to verify this, you could check the latest commit in the default branch of mitre-attack/tram (as you have done, it being 5321499 at time of writing). You can then view my attack-keyerror branch and see if it is behind master (missing commits) or is even with it (as we saw earlier).

Whilst viewing the attack-keyerror branch (left), you are told it is ahead of mitre-attack/tram:master by 7 commits. That means in addition to being even with the master branch, there have been more commits. If you click the '102 commits' hyperlink, you can see the timeline of commits and can see the 5321499 is present.
Therefore my fix is not included in the latest commit because it is from a forked repo. It is also committed later than the latest commit for the mitre-attack/tram master branch and is pending a merge via the linked pull request.
Hope that helps!


feature/did_resolver_plugin_registry

(#15 did_resolver_plugin_registry WIP)
Signed-off-by: Adam Burdett<EMAIL_ADDRESS>

Sorry for the hassle, this PR should be opened against the did-resolver branch rather than master. Rebasing from did-resolver first is also likely a good idea.

Sorry for the hassle, this PR should be opened against the did-resolver branch rather than master. Rebasing from did-resolver first is also likely a good idea.


Add a populating script for awards.

Seems like this generates negative and positive award values?
I dont think that's an issue but I want to think if that's the right idea here.
In addition this seems to knock loose some issues with the Team template so I'll patch that up in master.

Yes, the reasoning was that it could make sense to attribute negative award to people cheating, or whatever… But we can change it to be always positive, if you want :)

I think this is good to merge into testing.
If anything I need to make the populate script do a little more so that it can be used for more than just generate testing data.


Check output datatiers during assignment

Fixes #6062 . Also fixed a bunch of unittests for DBS
@ticoann I remember some time ago we didn't want to make DBS calls during assignment, but for this case the api call should be very efficient. Anyways, if you know another way to validate it, let me know :-)
I ran a few tests in my VM and unittests and everything looks fine. Please review.

Beginning pylint and unit tests.
See https://cmssdt.cern.ch/jenkins/job/DMWM-PR-test/130/ for details

retest this please

Beginning pylint and unit tests.
See https://cmssdt.cern.ch/jenkins/job/DMWM-PR-test/131/ for details

No pylint warnings for pull request 6067:

Unit test changes for pull request 6067:

WMCore_t.WebTools_t.REST_t.RESTTest:testBadMethodEcho changed from success to error
WMCore_t.WebTools_t.REST_t.RESTTest:testDAOBased changed from error to success
WMCore_t.WebTools_t.NestedModel_t.NestedModelTest:testOuterFooError changed from error to success
WMCore_t.Services_t.Requests_t.testRepeatCalls:test10Calls_with_pycurl changed from success to error
WMCore_t.WebTools_t.REST_t.RESTTest:testList changed from failure to error
WMCore_t.WebTools_t.REST_t.RESTTest:testUnsupportedFormat changed from success to error
WMCore_t.WebTools_t.REST_t.RESTTest:testSanitisePassHTTP changed from error to failure
WMCore_t.WebTools_t.REST_t.RESTTest:testSanitiseFailHTTP changed from error to success
WMCore_t.WebTools_t.RESTFormat_t.RESTFormatTest:testNoArgMethods changed from success to error
WMCore_t.WebTools_t.REST_t.RESTTest:testGoodEcho changed from success to error
WMCore_t.WebTools_t.NestedModel_t.NestedModelTest:testInnerPingPass changed from success to error
WMCore_t.WebTools_t.NestedModel_t.NestedModelTest:testOuterFooPass changed from error to success
WMCore_t.WMSpec_t.WMWorkload_t.WMWorkloadTest:testDbsUrl was added. Status is success

Beginning pylint and unit tests.
See https://cmssdt.cern.ch/jenkins/job/DMWM-PR-test/132/ for details

Summary of pylint changes for pull request 6067:

Score for test/python/WMCore_t/Services_t/DBS_t/DBSReader_t.py decreased from 9.84 to 10.00

test/python/WMCore_t/Services_t/DBS_t/DBSReader_t.py got worse in pylint. Report follows:

Line 19 in DBSReaderTest R0904 Too many public methods (39/20)
plus 7 comments on code style

Unit test changes for pull request 6067:

WMCore_t.WebTools_t.REST_t.RESTTest:testException changed from success to error
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testListBlockParents was added. Status is success
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testBlockExists was added. Status is success
WMCore_t.WebTools_t.NestedModel_t.NestedModelTest:testOuterFooError changed from error to success
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testListProcessedDatasets was added. Status is error
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testlistRuns was added. Status is success
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testListFileBlocks was added. Status is success
WMCore_t.WebTools_t.REST_t.RESTTest:testBadEchoWithPosArg changed from success to error
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testGetFileBlockWithParents was added. Status is success
WMCore_t.WebTools_t.REST_t.RESTTest:testSanitisePassHTTP changed from error to failure
WMCore_t.WebTools_t.REST_t.RESTTest:testSanitiseFailHTTP changed from error to success
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testListOpenFileBlocks was added. Status is success
WMCore_t.RequestManager_t.Admin_t.AdminTest:testA_SoftwareManagement changed from success to error
WMCore_t.WebTools_t.RESTFormat_t.RESTFormatTest:testNoArgMethods changed from success to error
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testBlockIsOpen was added. Status is success
WMCore_t.WebTools_t.REST_t.RESTTest:testDAOBased changed from error to success
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testListFilesInBlockWithParents was added. Status is success
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testListDatatiers was added. Status is error
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testListFileBlockLocation was added. Status is failure
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testGetDBSSummaryInfo was added. Status is success
WMCore_t.WebTools_t.NestedModel_t.NestedModelTest:testInnerPingPass changed from success to error
WMCore_t.WMSpec_t.WMWorkload_t.WMWorkloadTest:testDbsUrl was added. Status is success
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testLfnsInBlock was added. Status is success
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testGetFiles was added. Status is success
WMCore_t.WebTools_t.REST_t.RESTTest:testA changed from success to error
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testGetFileBlock was added. Status is success
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testBlockToDatasetPath was added. Status is success
WMCore_t.WebTools_t.REST_t.RESTTest:testUnsupportedFormat changed from success to error
WMCore_t.WebTools_t.NestedModel_t.NestedModelTest:testOuterFooPass changed from error to success
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testlistDatasetFileDetails was added. Status is success
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testlistRunLumis was added. Status is success
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testListFilesInBlock was added. Status is success
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testGetFileBlocksInfo was added. Status is failure
WMCore_t.WebTools_t.RESTFormat_t.RESTFormatTest:testEncodedInput changed from failure to error
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testMatchProcessedDatasets was added. Status is error
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testListPrimaryDatasets was added. Status is error
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testlistDatasetFiles was added. Status is success

On Jul 22, 2015, at 11:51, DMWM Autobot <notifications<EMAIL_ADDRESS>wrote:

Score for test/python/WMCore_t/Services_t/DBS_t/DBSReader_t.py decreased from 9.84 to 10.00

Well that’s interesting. I’m probably doing a string comparison
Eric W. Vaandering
Computing Physics Developer
CMS Computing Development Lead
Scientific Computing Division
Fermi National Accelerator Laboratory
630 840 6678 office
www.fnal.govhttp://www.fnal.gov/

Beginning pylint and unit tests.
See https://cmssdt.cern.ch/jenkins/job/DMWM-PR-test/133/ for details

Summary of pylint changes for pull request 6067:

Score for test/python/WMCore_t/Services_t/DBS_t/DBSReader_t.py decreased from 9.84 to 10.00

test/python/WMCore_t/Services_t/DBS_t/DBSReader_t.py got worse in pylint. Report follows:

Line 20 in DBSReaderTest R0904 Too many public methods (39/20)
plus 7 comments on code style

Unit test changes for pull request 6067:

WMCore_t.WebTools_t.REST_t.RESTTest:testDAOBased changed from error to success
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testListBlockParents was added. Status is success
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testBlockExists was added. Status is success
WMCore_t.WebTools_t.REST_t.RESTTest:testUnsupportedFormat changed from success to error
WMCore_t.WebTools_t.NestedModel_t.NestedModelTest:testOuterFooError changed from error to success
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testListFileBlocks was added. Status is success
WMCore_t.WebTools_t.REST_t.RESTTest:testList changed from failure to error
WMCore_t.WebTools_t.REST_t.RESTTest:testBadMethodEcho changed from success to error
WMCore_t.WebTools_t.RESTFormat_t.RESTFormatTest:testNoArgMethods changed from success to error
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testGetFileBlockWithParents was added. Status is success
WMCore_t.WebTools_t.REST_t.RESTTest:testSanitisePassHTTP changed from error to failure
WMCore_t.WebTools_t.REST_t.RESTTest:testSanitiseFailHTTP changed from error to success
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testListOpenFileBlocks was added. Status is success
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testBlockIsOpen was added. Status is success
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testGetDBSSummaryInfo was added. Status is success
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testListFilesInBlockWithParents was added. Status is success
WMCore_t.WebTools_t.REST_t.RESTTest:testGoodEcho changed from success to error
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testGetFileBlock was added. Status is success
WMCore_t.WebTools_t.NestedModel_t.NestedModelTest:testInnerPingPass changed from success to error
WMCore_t.WMSpec_t.WMWorkload_t.WMWorkloadTest:testDbsUrl was added. Status is success
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testLfnsInBlock was added. Status is success
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testGetFiles was added. Status is success
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testListFilesInBlock was added. Status is success
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testBlockToDatasetPath was added. Status is success
WMCore_t.Services_t.Requests_t.testRepeatCalls:test10Calls_with_pycurl changed from success to error
WMCore_t.WebTools_t.NestedModel_t.NestedModelTest:testOuterFooPass changed from error to success
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testlistRunLumis was added. Status is success
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testlistDatasetFileDetails was added. Status is success
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testlistRuns was added. Status is success
WMCore_t.Services_t.DBS_t.DBSReader_t.DBSReaderTest:testlistDatasetFiles was added. Status is success

@ticoann as we discussed a week ago, this should work Ok, but in the near future we better
check these datatiers during job configuration injection (configCache) and cache the output of the dbs api. This way it would cover both reqmgr and reqmgr2


Changing 3D pixel order from python to matlab

Python and open CV stores pixels in memory ordered by channels then rows and then columns.
That is, assuming w.l.o.g. that data is kept in RGB order, the data is stored in memory as
R(0,0), G(0,0), B(0,0), R(0,1), G(0,1), B(0,1) ... B(0,W-1),
R(1,0), G(1,0), B(1,0), R(0,1), G(0,1), B(0,1) ... B(1,W-1),
...
R(H-1,0), G(H-1,0), B(H-1,0),  ...                 B(H-1,W-1),
Matlab does it in reversed order:
All red pixels (in column major) then all blue pixels then all green.
In order to get the same HOG result, the data order in memory should be changed.

We should be aware that the same bug may occur also in other places where color images are passed from python/openCV and are assumed to be matlab ordered by vlfeat.

The point of cyvlfeat is not to have 1-1 output with vlfeat. The point is to provide a Pythonic API to cyvlfeat's functions. The output of the HOG function at the moment is by design.

I'm not talking about being bit-exact with the matlab code.
This is an issue that the C++ part expect the image to be stored in memory in one format while it is given in another.

In this example, a image with a circle (top left) was sent through the pythonic hog function.
Since the HOG rendering was not exposed yet, I cannot tell hte meaning of each HOG channel, but it can be clearly seen in the bottom images that the two channels are much different from the original image. and are much more similar to the Synthetic image (top right) imitating how matlab will show the same data as ordered in memory.
If this is not convincing, this also means that the HOG coding of an 8x8 crop of an image will not be the same as the HOG coding of the same location in the entire image.
It is true that you will get a "feature vector" and it will be more or less consistent between similar images of identical sizes, but you will get inferior performance as you will have a lot of fake edges, color inconsistencies etc.
As a nice bonus, after making these corrections, the results are similar to matlab's up to numerical level allowing porting SVM classifier from matlab to python (or vice versa).
Above example's code:
import numpy as np
import matplotlib.pyplot as plt
from cyvlfeat.hog import hog
w = 100
r = int(w*0.75)
x1, x2 = np.meshgrid(range(2 * w + 1), range(2 * w + 1))
c1 = c2 = ((x1 - w) ** 2 + (x2 - w) ** 2 < r ** 2).astype(np.uint8)*255
c3 = 255 - c1
im_rgb = np.stack((c1, c2, c3), 2)
matlab_channles = np.split(im_rgb.ravel(), 3)
im_matlab = np.stack([x.reshape(c1.shape) for x in matlab_channles], axis = 2)
ax = plt.figure(1).add_subplot(221)
ax.imshow(im_rgb)
ax.set_title('image in python')
ax = plt.figure(1).add_subplot(222)
ax.imshow(im_matlab)
ax.set_title('image as seen by hog code')
im_hog = hog(im_rgb, 8)
ax = plt.figure(1).add_subplot(223)
plt.imshow(im_hog[:, :, 0])
ax.set_title('hog results - channel #0')
ax = plt.figure(1).add_subplot(224)
plt.imshow(im_hog[:, :, 30])
ax.set_title('hog results - channel #30')

OK yes you are correct! Though the issue is slightly different from what you are saying. The problem is that vlfeat expects the image to be contiguous across channels - which for the case of Matlab and it's column-major memory ordering is true when the channels are the last axis. Unfortunately, for Python/numpy, where the default memory ordering is row-major, this would only be true if the channels were the first axis. This is actually why channels are the first axis in our other project, Menpo.
Therefore, the fix for this is simple, but annoying as it involves copying the entire image in order to rearrange the memory layout. Had I been more controversial and imposed channels as the first axis this wouldn't even be a problem!

Just a thought - sounds like the copy to the other memory format is going to be something that had to be done across many cyvlfeat methods. Is it worth extracting that out and offering two APIs - one for channels at front, one channels at back? That way menpo can benefit from the avoided copy, along with any other projects that use a channels at front Python convention?

The way I see it, there are 3 options:

Restricting the data such that the channel is the first axis, that is 2/0/1 transposing the data. In this case, there is no impact on manpo, but imho there must be an assertion checking that the channels axis is the first one.
Ditto, but requiring that the channels are the 3rd axis - this will have big impact on manpo.
Allowing the two options. I have a fix for hog for that, If possible I'll add it to this PR

If we choose to take option 1 or 2 without adding these assertions, we are knowingly failing other users, as the channel/ row / column standard is easy to be missed.
Whatever is decided, this probably should be done across all image inputs of cyvlfeat.

Yeah that assertion is literally impossible to enforce. What about the case where I have a 20x20 patch of 128-SIFT features that I (for some reason) take HOG on? As a note, your fix for the fortran ordering could be much simpler by removing the ::1 here and adding requirements=['F'] here.
Probably the safest thing to do would be to have an explicit kwarg that tells the code whether the channels are at the front or the back and then the requirements can be changed to either C (front) or F (back).

Making the changes as I suggested yields the following:

@jabooth We don't need to do anything because we can access the non-public cyhog function and just pass our data in C-ordering and everything will work correctly.

Thanks

Actually I'm still a touch confused. The vlfeat documentation defines the orientation directions as:

The orientation of a gradient is expressed as the angle it forms with the horizontal axis of the image. Angles are measured clock-wise (as the vertical image axis points downwards), and the null angle corresponds to a horizontal vector pointing right.

@nontas Does that image I posted look correct given this definition? Should it be the left edge or the right edge that activates?

Closed by #52


Support for authenticating with API keys

Thanks for working on this!
Currently the SGX depends on authenticating to Twilio using the account's SID and access token. This grants full access to the Twilio account, and cannot be revoked.
Support for authenticating using API keys would be a nice security improvement.
More information on the different types of Twilio credentials.

Added support for Api Tokens for both IQ ( d4af1a292f4af42391fdb5725f260f74c2de4a21 )  and bot ( 820784a8caf551b57032797b7c302b66aa9b3fe6 ) registration.
By default, bot registration will ask for an API key, but there is the option to provide auth token instead.
If an Auth Token IS provided, then that will be preferred to the API key for authentication.


Add a new language

How i can add Ukranian to program?
I added the Ukrainian language to arrays wherever I saw that it was possible, but as a result I get an error
Last progress at
An Error occurred: 'Ukrainian'.

For add new language you need
In comic-translate\modules\utils\pipeline.utils.py
add your language to language_codes on 24 line

in comic-translate\app\localizations
create <language_code>.json file

in comic-translate\app\localizations\progress_mappings.py
add your language

in comic-translate\app\state_manager.py
add your language code on line 15 (locale_code)
do same in 175, 196 line

in comic.py
add you language to supported_target_languages on 12 line
add language code on 47 line (font_mappings)
add this code on 95 line
dpg.add_menu_item(label='LANGUAGE', callback=lambda: state_manager.lang_change_process('LANG_CODE'), tag = '<LAND_CODE>_lang_select')

Maybe I forgot something, but it seems everything

@illya1004  This is right. If you manage to add Ukrainian, You can fork this repo and issue a pull request and i'd be happy to merge it.


NPE When Reading Header

We use OkHTTP as a dependency for our Android SDK at Optimizely.  We have been seeing this crash in the wild.  It only happens for one customer.  Any ideas?
Package: com.snowball.app
Version Code: 66
Version Name: 2.1.1
Android: 5.0.1
Manufacturer: LGE
Model: Nexus 5
CrashReporter Key: 718B9F67-EEC4-AAC0-AA77-E2BC2E9868E18BD68E1B
Date: Mon Oct 05 13:23:03 PDT 2015

java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:300)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'com.squareup.okhttp.Headers com.squareup.okhttp.Response.headers()' on a null object reference
at com.squareup.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:796)
at com.squareup.okhttp.Call.getResponse(Call.java:274)
at com.squareup.okhttp.Call$ApplicationInterceptorChain.proceed(Call.java:230)
at com.squareup.okhttp.Call.getResponseWithInterceptorChain(Call.java:201)
at com.squareup.okhttp.Call.execute(Call.java:81)
at com.optimizely.LogAndEvent.OptimizelyTimeSeriesEventsManager$TimeSeriesEventTask.doInBackground(OptimizelyTimeSeriesEventsManager.java:280)
at com.optimizely.LogAndEvent.OptimizelyTimeSeriesEventsManager$TimeSeriesEventTask.doInBackground(OptimizelyTimeSeriesEventsManager.java:242)
at android.os.AsyncTask$2.call(AsyncTask.java:288)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)

Please let me know how I can help debug and fix.

This happens when the call times out. When there is no response, the Response object is null, and in readResponse, it calls the object without checking whether it's null or nto

@jophde my theory is that you have a network interceptor that is returning null. Is that possible?


fix: adding error when Server/Client is used on abstract methods

Adding an error because adding Server/Client to abstract method does nothing and may lead people to leave the attribute off the overridden method.
also test for virtual, abstract and override methods

@James-Frowen what's the reasoning for this?
if i have a Energy.cs class that is abstract, and I have a void Recover() function that should only be called on the server, then the [Server] attribute makes a lot of sense for my abstract function.

[Server] adds an if check to the top of the method both, if a method is abstract it doesn't have a body, so weaver does nothing (doesn't fail before of if check below).
I think some Attributes can be inherited, but the ones in mirror do not have this Inherited flag enabled so they are not.
Later on we should make them Inherited so they are automatically applied to overridden methods, but for now we should give an error so that people dont make a mistake by assuming they are Inherited.

@James-Frowen sorry, forgot about this one. it makes sense.
could you resolve conflicts and merge please? :)

nice fix @James-Frowen


ImportError: cannot import name mse

from lasagna.objectives import mse
ImportError: cannot import name mse

solution: As the latest Lasagne, change the file "dist-packages/nolearn/lasagne.py" [from lasagna.objectives import mse] to [from lasagne.objectives import squared_error]

Not sure which version of Lasagne and nolearn you're using, but this error shouldn't occur if you follow the installation instructions.

Strange, I installed the version from requirements but still get this issue. I looked up the commit version mentioned for Lasagne but I don't see mse defined:
https://github.com/Lasagne/Lasagne/blob/b6f1250eb95b6b036cd348a37dbfc4dbf84d8a67/lasagne/objectives.py

The latest version of Lasange renames mse as squared_error. PLease check this link for further clarification http://lasagne.readthedocs.org/en/latest/modules/objectives.html#lasagne.objectives.squared_error
possible solution : Update the requirements.txt line 7
-e<EMAIL_ADDRESS>for the latest version of lasange

Strange, I installed the version from requirements but still get this issue. I looked up the commit version mentioned for Lasagne but I don't see mse defined

Yes, Lasagne now has squared_error, which is what nolearn uses.

Got It ! I just made the change manually in my local files, but I think I'll pull the latest from nolearn .. Thanks !

I have upgraded both the modules but nolearn is still reluctant to use squared_error. Fixed Lasagne though.


error storing apikey

Hello, Everything seems to work well when I initialize, but I have to pair the unit on every boot. I get the following
No local API key stored
registering with bridge...
error storing apikey
Bridge registration complete
I'm using a MC3 with up-to-date firmware and up-to-date software

Sounds like a possible datastore issue when the api key was first attempted to be written. I’m not sure if there is a more targeted way to clear out a single program instance as it relates to its local datastore but an initialize will flush the system. I believe this occurred to someone else and they were able to recover after the initialize.

On Oct 1, 2018, at 2:26 PM, knewson<EMAIL_ADDRESS>wrote:
Hello, Everything seems to work well when I initialize, but I have to pair the unit on every boot. I get the following
No local API key stored
registering with bridge...
error storing apikey
Bridge registration complete
I'm using a MC3 with up-to-date firmware and up-to-date software
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub https://github.com/mthyden/PhillipsHueSIMPLSharp/issues/13, or mute the thread https://github.com/notifications/unsubscribe-auth/AEluUqK4YAacDTGpU9sKdFNN6GLqbNQcks5ugoiIgaJpZM4XC63c.

I've tried an init a couple times and still come up with the same issue.
More Info:
Exception is System.ArgumentOutOfRangeException:
Parameter name: index
at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
at System.Collections.Generic.List`1.get_Item(Int32 index)
at Crestron.SimplSharp.CrestronDataStore.CrestronDataStoreStatic.i(Boolean A_0)
at Crestron.SimplSharp.CrestronDataStore.CrestronDataStoreStatic.GetLocalStringValue(String tag, String& value)
at HueLights.HueBridge.GetDataStore()
at HueLights.HueProc.Register()
at UserModule_HUELIGHTSPROC_R1_5.UserModuleClass_HUELIGHTSPROC_R1_5.GETREGISTER_OnPush_1(Object EventInfo)
at Amib.Threading.Internal.WorkItem.o()
at Amib.Threading.Internal.WorkItem.Execute()
at Amib.Threading.SmartThreadPool.e(WorkItem A_0)
at Amib.Threading.SmartThreadPool.p()
Get IP of Bridge complete...
No local API key stored
registering with bridge...
error storing apikey
Bridge registration complete
9 Bulbs discovered
1 Rooms discovered
11 Scenes discovered

Hmm, I’ll have to try this on my MC3 with the latest firmware. Previously this has worked on MC3s but I haven’t tested it on the latest. Do you have any other modules in your program that are simplsharp based using the datastore?

On Oct 2, 2018, at 3:30 PM, knewson<EMAIL_ADDRESS>wrote:
I've tried an init a couple times and still come up with the same issue.
More Info:
Exception is System.ArgumentOutOfRangeException:
Parameter name: index
at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
at System.Collections.Generic.List`1.get_Item(Int32 index)
at Crestron.SimplSharp.CrestronDataStore.CrestronDataStoreStatic.i(Boolean A_0)
at Crestron.SimplSharp.CrestronDataStore.CrestronDataStoreStatic.GetLocalStringValue(String tag, String& value)
at HueLights.HueBridge.GetDataStore()
at HueLights.HueProc.Register()
at UserModule_HUELIGHTSPROC_R1_5.UserModuleClass_HUELIGHTSPROC_R1_5.GETREGISTER_OnPush_1(Object EventInfo)
at Amib.Threading.Internal.WorkItem.o()
at Amib.Threading.Internal.WorkItem.Execute()
at Amib.Threading.SmartThreadPool.e(WorkItem A_0)
at Amib.Threading.SmartThreadPool.p()
Get IP of Bridge complete...
No local API key stored
registering with bridge...
error storing apikey
Bridge registration complete
9 Bulbs discovered
1 Rooms discovered
11 Scenes discovered
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/mthyden/PhillipsHueSIMPLSharp/issues/13#issuecomment-426452227, or mute the thread https://github.com/notifications/unsubscribe-auth/AEluUihR2TwgzHzxrSNs86wWAF6O3wB7ks5ug-kKgaJpZM4XC63c.

I don't

Can you do me a favor and type from console datastorestatus and reply with the response
Should something similar to  this:
DIN-AP3MEX>datastorestatus
CrestronDataStore: SIMPLLOCAL          2 records
Main	  1 records 	 116 bytes 	 1% used
Lighting	  1 records 	 124 bytes 	 1% used
CrestronDataStore: SIMPLGLOBAL          0 records

On Oct 3, 2018, at 8:09 AM, knewson<EMAIL_ADDRESS>wrote:
I don't
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/mthyden/PhillipsHueSIMPLSharp/issues/13#issuecomment-426673363, or mute the thread https://github.com/notifications/unsubscribe-auth/AEluUqcc7YXNL4aWmDnDXitYy2Dn8tCSks5uhNM-gaJpZM4XC63c.

MC3>datastorestatus
DataStores not Available

Tested DataStore setup/read/write on an MC3 with latest firmware, seems to check out. In my current release ver of the module I don’t have any advanced error checking to see what the exact error is when the DataStore is first getting setup but could add a quick mod perhaps later today and send you a new CLZ. You may want to delay your init from SIMPL as the MC3 takes long to settle after boot. As a test you could throw in a 10 sec delay on program start to the Primary module init or something similar.

On Oct 3, 2018, at 8:14 AM, knewson<EMAIL_ADDRESS>wrote:
MC3>datastorestatus
DataStores not Available
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/mthyden/PhillipsHueSIMPLSharp/issues/13#issuecomment-426675144, or mute the thread https://github.com/notifications/unsubscribe-auth/AEluUmgPXDp7x8SXSc8EOrKayhPAGiPbks5uhNRLgaJpZM4XC63c.

Had a chat with TrueBlue, They confirmed DataStore wasn't working on any of their test MC3's. A ticket is created to find out why but it may not be possible...Can you modify the # to allow me to send the key from the program? Then I can store and send on program start

Like I did confirm DataStore read/write access this morning on my MC3 in my office, running release firmware so that is not the issue unless the problem is the initial creation of the datastore with current firmware where an existing datastore if created and upgraded doesn’t work as expected. What is the true blue support ticket number so I can follow up with them.
Yeah, I can modify the proc module to accept a key from the parameter field. Gonna be a few days as I am traveling to our HQ this weekend.

On Oct 4, 2018, at 2:17 PM, knewson<EMAIL_ADDRESS>wrote:
Had a chat with TrueBlue, They confirmed DataStore wasn't working on any of their test MC3's. A ticket is created to find out why but it may not be possible...Can you modify the # to allow me to send the key from the program? Then I can store and send on program start
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/mthyden/PhillipsHueSIMPLSharp/issues/13#issuecomment-427172443, or mute the thread https://github.com/notifications/unsubscribe-auth/AEluUjMqikEqQ5CM7dgJoE446oUzxg-qks5uhnrTgaJpZM4XC63c.

TrueBlue Incident #181003-000553. No worries. It's working great for now. Really well done!

going to close this as it appears to be localized to the MC3 hw platform. this week I plan to add a field to allow folks to insert their API key after pairing so if the parameter field is populated will use that rather then the datastore. stay tuned


iPhone vibrates every update

Hi! Love the app, one problem though:
When i have a Libre 3 sensor active my iPhone vibrates every five minutes, even with do not disturb on. I have to turn on airplane mode to get it to stop.
I have tried turning off notifications and everything. What could be causing this?

This could be the 'Normal Glucose Notification' setting. Is this enabled for you, and does turning it off remove the problem?


remove $ so gitclip works

could also do this one later in the file...
$ php bin/console schedule:list

Thanks @tacman!


Spades: Bots should set more

Please don't feel criticized! I love trickster! It's amazing. I'm just trying to do whatever I can to help it be better. Thanks!
Playing the second hand in today's Daily Challenge with account<EMAIL_ADDRESS>Table is at 11. Last two tricks. Opps need two tricks to make their bid because we have already taken two bags. E leads so my P is in 4th seat. My p is holding a spade and chooses to NOT use it to win the second to last trick which would have set them. Instead he sloughs his other card and then loses his spade on last trick. So instead of taking three bags and setting them, he decides to take just two bags and let them get their bid. Bit frustrating.

Although . . . this might be the preferred behavior for daily challenge because taking the bag does risk us getting bag set and making the game last longer. We’d end up with a safer victory but that’s not the ranking mechanism. Which brings me to another thing my friends and I have been discussing which is how should daily challenge be ranked? Maybe margin of victory is more important than number of rounds and score? Although I guess it might incentivize some people to intentionally set themselves to avoid winning early and building giant margins in very long games . . .

@johnbent no worries, we appreciate the feedback!
I agree there's an opportunity for the bots to try to set their opponents more often. The current bot logic is based largely on how many bags they'd have to take relative to how many points the opponents would lose if set. Here's the specific function that decides whether or not to try to set the opponents:
https://github.com/TricksterCards/TricksterBots/blob/105693e85f0cd19c6b03f050da603706cce19624/TricksterBots/Bots/Spades/SpadesBot.cs#L718
You'll see there are a couple of TODOs still hanging around for scenarios we've already identified for future bot enhancements (😉). But for this specific case I think we'd be looking to tweak the logic for determining the allowedBags the bot is willing to take to set the opponents. Here's the relevant line of code: https://github.com/TricksterCards/TricksterBots/blob/105693e85f0cd19c6b03f050da603706cce19624/TricksterBots/Bots/Spades/SpadesBot.cs#L756
As you can see, the bot doesn't currently take into account how many of those bags it's already taken. I think we should add some logic here to make it willing to take "one more trick" if that's all that's needed for the set (so long as that one trick doesn't bring us to 10 bags).
What do you think?

P.S. yes, we prioritize number of hands in Daily Challenges for exactly the reason you mention: discouraging delaying a win to finish with a higher score / bigger margin of victory. But I'll note we prefer to adjust the bots for typical play and leave Daily Challenge specific strategy to us humans. After all, everyone plays with/against the same bots using the same cards - it's how you play that makes a difference in the rankings.

@johnbent what do you think of the proposed fix?

As you can see, the bot doesn't currently take into account how many of those bags it's already taken. I think we should add some logic here to make it willing to take "one more trick" if that's all that's needed for the set (so long as that one trick doesn't bring us to 10 bags).


how  to use sip.min.js directly in browser html

These are typically directed to the google group.
the default released sip.min.js can not be used directly in html javascript tag, what should we do to achive this ? it seems import js lib to node module work  , but some sdk users want use it in html directly, maybe need some work in sdk build script ?  need your help, thanks.

We removed the distributables from npm in our 0.17.0 release, but you can still download them (or link directly to the github URL) and use them that way. We use the distributable in this fashion on sipjs.com, so you can view it there. I do not believe we've touched our build mechanisms since then, so it should still work as expected on 0.20.0, although on our site we have 0.17.1.


Fix metal binary file extension

Might be overkill but we could wire this up to flatbuffer schema.  It'll generate function: build/include/ttmlir/Target/TTMetal/binary_generated.h, TTMetalBinaryExtension


FixCommand - allow to pass multiple path argument

Closes #1230
Replaces #1231
I still need to update readme file.

Travis is dead ?


Slider Swipe in Tablet and Mobile

I'm submitting a...

[ ] Regression (a behavior that used to work and stopped working in a new release)
[ ] Bug report
[x] Feature request
[ ] Documentation issue or request
[ ] Support request

Current behavior
In mobile and tablet,  the swipe is inverted: when we swipe left, the slider navigates to the previous slider.
Expected behavior
When we swipe left, the slider navigates to the next slider, wich is the expected common behavior.
What is the motivation / use case for changing the behavior?
The most common behavior, wich we would like to have in our website, is that when we swipe left, the slider navigates to the next image and, when we swipe right, the slider navigates to the previous image.

Ok.
I'll add a new config property to invert the sliding in 6.2.0

@anacatarinasousaaa feature implemented (develop branch) and it will be released as 6.2.0 this weekend.
I have to write some unit tests to be sure that everything is ok.

tests completed I'll release 6.2.0 today.

released. Doc website will be updated in today, please be patient.


Update the note about custom SSL certificates in README.md

I get the following error when trying to use my custom privkey.pem and fullchain.pem:
unifi-1  | [2024-11-29 00:32:16,446] <docker-entrypoint> WARN - Custom SSL: missing '/usr/lib/unifi/cert/cert.pem'
unifi-1  | [2024-11-29 00:32:16,458] <docker-entrypoint> WARN - UniFi v7.3+ Custom SSL: *********** '/usr/lib/unifi/cert/fullchain.pem' IS DEPRECATED ***********
unifi-1  | [2024-11-29 00:32:16,470] <docker-entrypoint> WARN - UniFi v7.3+ Custom SSL: Use a single / non-chain cert file named '/usr/lib/unifi/cert/cert.pem' moving forward
unifi-1  | [2024-11-29 00:32:16,483] <docker-entrypoint> WARN - UniFi v7.3+ Custom SSL: Failure to update current setup may result in constant <ble-load-keystore> errors
unifi-1  | [2024-11-29 00:32:16,497] <docker-entrypoint> WARN - Custom SSL: certificate import was NOT performed

Apparently, Unifi app versions 7.3+ expect a different filename for the custom certificate.
@goofball222

Thanks! I missed updating the documentation when that changed.


Driver standings error after update

I updated to the latest version after that  I got the message error getting driver standings
Using the latest ha version  2024.9.1and os. 13.1

Duplicate, please follow the other issue.


SFU Proposal

Not ready to land yet -- just submitting for early feedback on the idea.

Pull Request Test Coverage Report for Build 1032

43 of 50 (86.0%)  changed or added relevant lines in 2 files are covered.
1950 unchanged lines in 46 files lost coverage.
Overall coverage decreased (-27.8%) to 22.947%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

rtcpeerconnection.go
39
46
84.78%

Files with Coverage Reduction
New Missed Lines
%

internal/sctp/common.go
3
100.0%

internal/dtls/dtls.go
5
15.82%

internal/util/util.go
5
100.0%

internal/sdp/util.go
6
29.03%

internal/sctp/chunk_cookie_echo.go
6
33.33%

pkg/rtcerr/errors.go
6
60.0%

internal/sctp/param_forward_tsn_supported.go
9
100.0%

internal/sctp/param_random.go
10
100.0%

pkg/datachannel/message.go
10
62.5%

pkg/datachannel/message_channel_ack.go
10
100.0%

Totals

Change from base Build 1028:
-27.8%

Covered Lines:
1495

Relevant Lines:
6515

💛  - Coveralls


Crash

https://gist.github.com/ziceptor/ab370d6c415c271901de97bf86b513aa
forge-1.12.2-<IP_ADDRESS>86-universal.jar
spongeforge-1.12.2-2586-7.1.0-BETA-2863.jar
projectcore-7.1.0-0.2.1.jar
projectportals-7.1.0-0.14.2.jar

I created a clean server. The failure occurs because of a conflict with the Nucleus. I've disabled all the modules from the Nucleus and ProjectPortals. But it still does crash.
forge-1.12.2-<IP_ADDRESS>86-universal.jar
spongeforge-1.12.2-2586-7.1.0-BETA-2868.jar
projectcore-7.1.0-0.2.2.jar
projectportals-7.1.0-0.14.2.jar
Always when you log on to the server.

Maybe it's related? https://gist.github.com/ziceptor/b56350e19bc6697ea00faf6e9f5e3ffb#file-gistfile1-txt-L6558
This error nucleus (@dualspiral please see) https://gist.github.com/ziceptor/b56350e19bc6697ea00faf6e9f5e3ffb#file-gistfile1-txt-L6556

Register your keys during pre-init by calling something from the class so that the static members are constructed at that time. The class is only loaded when someone calls for a key, which turns out to be me off the main thread, constructing the keys then. Because I’m only getting users, my async operation should be safe.

I solved this by building this project with the line
Object ldKeys = Keys.BED_LOCATIONS;
added to Main.java in
onPreInitializationEvent()
as recommended by @dualspiral. I would have generated a pull request but this is fairly minor and I didn't feel the need to create a branch for this.

Try the latest release on Ore and report back

Worked like a charm. Thanks for the great mod.

Yes, now it works. Many thanks!


GCP asset internet exposure NO_VALUE exception

Title: GCP asset internet exposure exception
Description:
The GCP asset internet exposure analysis job produces an exception with the following error in on statement #7: ERROR:cartography.graph.job:Unhandled error while executing statement in job 'GCP asset internet exposure': Expected a numeric value but got: NO_VALUE
To Reproduce:
Running this query in neo4j will produce the error:
MATCH (ac:GCPNicAccessConfig)<-[:RESOURCE]-(:GCPNetworkInterface)<-[:NETWORK_INTERFACE]-(n:GCPInstance)<-[:FIREWALL_INGRESS]-(firewall_a:GCPFirewall)<-[:ALLOWED_BY]-(allow_rule:GCPIpRule{protocol:'all'})<-[:MEMBER_OF_IP_RULE]-(:IpRange{id:"<IP_ADDRESS>/0"})
OPTIONAL MATCH (n)<-[:FIREWALL_INGRESS]-(firewall_b:GCPFirewall)<-[:DENIED_BY]-(deny_rule:GCPIpRule{protocol:'all'})
WHERE exists(ac.public_ip) and (
        deny_rule is NULL
        OR firewall_b.priority > firewall_a.priority
        OR NOT allow_rule.fromport IN RANGE(deny_rule.fromport, deny_rule.toport)
        OR NOT allow_rule.toport IN RANGE(deny_rule.fromport, deny_rule.toport)
)
SET n.exposed_internet = True, n.exposed_internet_type='direct'
RETURN count(*) as TotalCompleted

Querying for the values in ac and allow_rule it appears that allow_rule.fromport and allow_rule.toport are empty.
Changing the Query to the following produces results as expected:
MATCH (ac:GCPNicAccessConfig)<-[:RESOURCE]-(:GCPNetworkInterface)<-[:NETWORK_INTERFACE]-(n:GCPInstance)<-[:FIREWALL_INGRESS]-(firewall_a:GCPFirewall)<-[:ALLOWED_BY]-(allow_rule:GCPIpRule{protocol:'all'})<-[:MEMBER_OF_IP_RULE]-(:IpRange{id:"<IP_ADDRESS>/0"})
OPTIONAL MATCH (n)<-[:FIREWALL_INGRESS]-(firewall_b:GCPFirewall)<-[:DENIED_BY]-(deny_rule:GCPIpRule{protocol:'all'})
WHERE exists(ac.public_ip) and exists(allow_rule.fromport) and exists(allow_rule.toport) and (
        deny_rule is NULL
        OR firewall_b.priority > firewall_a.priority
        OR NOT allow_rule.fromport IN RANGE(deny_rule.fromport, deny_rule.toport)
        OR NOT allow_rule.toport IN RANGE(deny_rule.fromport, deny_rule.toport)
)
SET n.exposed_internet = True, n.exposed_internet_type='direct'
RETURN count(*) as TotalCompleted

Is this specific to our environment or a known bug?
Logs:
 File "/usr/local/lib/python3.9/site-packages/cartography/sync.py", line 74, in run
    stage_func(neo4j_session, config)
  File "/usr/local/lib/python3.9/site-packages/cartography/util.py", line 69, in timed
    result = method(*args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/cartography/intel/gcp/__init__.py", line 252, in start_gcp_ingestion
    run_analysis_job(
  File "/usr/local/lib/python3.9/site-packages/cartography/util.py", line 24, in run_analysis_job
    GraphJob.run_from_json(
  File "/usr/local/lib/python3.9/site-packages/cartography/graph/job.py", line 111, in run_from_json
    job.run(neo4j_session)
  File "/usr/local/lib/python3.9/site-packages/cartography/graph/job.py", line 55, in run
    stm.run(neo4j_session)
  File "/usr/local/lib/python3.9/site-packages/cartography/graph/statement.py", line 71, in run
    session.write_transaction(self._run_noniterative).consume()
  File "/usr/local/lib/python3.9/site-packages/neo4j/__init__.py", line 718, in write_transaction
    return self._run_transaction(WRITE_ACCESS, unit_of_work, *args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/neo4j/__init__.py", line 682, in _run_transaction
    result = unit_of_work(tx, *args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/cartography/graph/statement.py", line 92, in _run_noniterative
    summary: neo4j.BoltStatementResultSummary = result.summary()
  File "/usr/local/lib/python3.9/site-packages/neo4j/__init__.py", line 961, in summary
    self.detach()
  File "/usr/local/lib/python3.9/site-packages/neo4j/__init__.py", line 921, in detach
    return self._session.detach(self, sync=sync)
  File "/usr/local/lib/python3.9/site-packages/neo4j/__init__.py", line 563, in detach
    count += fetch()
  File "/usr/local/lib/python3.9/site-packages/neo4j/__init__.py", line 527, in fetch
    detail_count, _ = self._connection.fetch()
  File "/usr/local/lib/python3.9/site-packages/neobolt/direct.py", line 419, in fetch
    return self._fetch()
  File "/usr/local/lib/python3.9/site-packages/neobolt/direct.py", line 461, in _fetch
    response.on_failure(summary_metadata or {})
  File "/usr/local/lib/python3.9/site-packages/neobolt/direct.py", line 755, in on_failure
    raise CypherError.hydrate(**metadata)
neobolt.exceptions.CypherTypeError: Expected a numeric value but got: NO_VALUE

Screenshots:

Please complete the following information::

Cartography 0.52.0
Python 3.9
Alpine 3.14

Querying for the values in ac and allow_rule it appears that allow_rule.fromport and allow_rule.toport are empty.

Interesting, haven't seen this before. I don't get that issue in my env.
Thanks for digging into this - it looks like your change won't break any functionality so feel free to submit a PR to update the query.

Hey @achantavy, thanks for your response. I have created a PR here: https://github.com/lyft/cartography/pull/761


Fix README typo

Codecov Report

Merging #3791 (56dc9ed) into main (f1dd93b) will not change coverage.
Report is 7 commits behind head on main.
The diff coverage is n/a.

Additional details and impacted files

@@           Coverage Diff            @@
##             main    #3791    +/-   ##
========================================
  Coverage   61.80%   61.80%
========================================
  Files         513      513
  Lines        9925     9925
  Branches     2319     2168   -151
========================================
  Hits         6134     6134
- Misses       3545     3788   +243
+ Partials      246        3   -243

see 63 files with indirect coverage changes

Continue to review full report in Codecov by Sentry.

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


Don't assume 'v' prefix for Git tags

The plugin currently hard-codes the assumption that Git tags have a v prefix, so source references are broken for tags without prefix.  I guess it might be nice to make this configurable.

That's fair. There was a request for this in rebar3_hex as well.

:+1: would be nice if this could be fixed somehow

I tell ya what we can do on this one... I think the "assumption" is a good convention myself, but we can provide an option that instructs rebar3_ex_doc "Don't do that".

This is done, the option is {prefix_ref_vsn_with_v, false}


Re-name library to tools

Re-name library to tools, and include tree implementation as a subtool.

Completed with a push to main.


Testimonial heading styling

The testimonial heading is showing up as an h2, which is semantically correct, but the intended style is the h3 style.
Example page

should be good now


python310Packages.greeclimate: fix build on Darwin

Description of changes

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

ZHF: #172160

Result of nixpkgs-review pr 175204 run on aarch64-darwin 1

2 packages failed to build:

python310Packages.greeclimate
python39Packages.greeclimate

@dotlambda do you plan on revisiting this and rebasing?


Apple incorrect IAP validation

the error Subscription Receipt. Use the appropriate function instead. is incorrect, you can no longer assume LatestReciept is empty, see https://developer.apple.com/forums/thread/63092

it came up while testing re-validation of the same receipt


[BREAKING] Require --split or --no-split flag

Background

#74
#57

To help guide people to generate efficient code, we want to make splitting source code into multiple files the default behaviour. This however would be a breaking change that would bring with it potential confusion if made on its own.
Instead, we should consider making the decision to split sources a conscious one during a transitional phase.
Changes
In this change, I update the split flag to remove the default value of false and instead define an inversion that introduces the --no-split flag.
This means that when running create-api without specifying -s, --split or --no-split, you will now get an error:
$ create-api generate schema.json
Error: Missing one of: '--split', '--no-split'
Help:  --split <split>  Split output into separate source files.
Usage: create-api generate [<options>] <input> --split
  See 'create-api generate --help' for more information.

If you already used -s or --split everything is ok, but if you didn't, you will be forced to make a decision:

Continue with --no-split
Transition to using --split

To help guide users about this decision, I added some more discussion to the flag when using --help:
$ create-api generate schema.json --help
USAGE: create-api generate [<options>] <input> --split

ARGUMENTS:
  <input>                 The OpenAPI spec input file in either JSON or YAML format

OPTIONS:
  --output <output>       The output folder (default: ./.create-api/)
  --config <config>       The path to generator configuration. If not present, the
                          command will look for .create-api.yaml in the current
                          directory. (default: ./.create-api.yaml)
  -s, --split/--no-split  Split output into separate source files.

        Merging the source files offers a compact output, but prevents the compiler
        from parallelizing build tasks resulting in slower builds for larger
        schemas.

        It's recommended that you use --split, but behaviour prior to 0.1.0 matched
        --no-split.

        In a future version, these flags will be deprecated and replaced with an
        alternative opt-out flag instead. For more information, see
        https://github.com/CreateAPI/CreateAPI/issues/74

  -v, --verbose           Print additional logging information
  ...

As a result in 0.1.0 you are forced to make a decision. In a future version however, we will relax this again by deprecating --split and --no-split and replacing it with a more clearly named --merge-sources flag which defaults to false.
Release Note

You are now required to explicitly pass the --split or --no-split flag when running the generator. --no-split matches the default behaviour prior to 0.1.0 but it is recommended to split your sources for improved build times of your generated code. For more information, see #74.

Closing in favour of #95


Cloud adoption framework appears to lack an Identity Perimeter perspective

Your cloud adoption frameworks is well thought through and provides solid advise, but seems to provide this for environments reliant on network perimeter constructs given the vms, network security groups, ip filtering and controls, etc. Do you have an equivalent perspective based on identity perimeter using only SaaS and Server-less consumption based resources?

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

ID: 2b6c9632-28af-7abb-d244-b0d1228e4f43
Version Independent ID: 099f2c55-6a50-01f7-ebc4-0c1f0597f48c
Content: What is an Azure landing zone? - Cloud Adoption Framework
Content Source: docs/ready/landing-zone/index.md
Service: cloud-adoption-framework
Sub-service: ready
GitHub Login: @BrianBlanchard
Microsoft Alias: brblanch

Hi @elafnit - Thank you so much for your feedback! So sorry for the delay. I hope you found something in the meantime. If not perhaps, this series of documents can help: https://learn.microsoft.com/en-us/azure/security/fundamentals/identity-management-overview.


HELP

First of all, thank you very much for your contribution, for a beginner. Your technology is a good learning direction, I also downloaded it, but my system is WINDOWS 7 64 and VS2013, and I cannot use the .NET 4.6 version. Unable to compile. And there are too many errors. I am learning VB.NET. I cannot modify these errors independently. Your technology is up to date. Could you provide me with some low version of .NET for me and other novices to learn.

Hello @ht17085 , MaterialSkin (from IgnaceMaes) do not support a version lower than .NET 4.6. I recommend to you check for the follow  repository.

First of all, thank you very much for your contribution, for a beginner. Your technology is a good learning direction, I also downloaded it, but my system is WINDOWS 7 64 and VS2013, and I cannot use the .NET 4.6 version. Unable to compile. And there are too many errors. I am learning VB.NET. I cannot modify these errors independently. Your technology is up to date. Could you provide me with some low version of .NET for me and other novices to learn.

Next time use a descriptible title using correctly the capital letters.
Upgrade your Visual Studio to 2019, if not, then upgrade Windows.


Car Game

@Mrinank-Bhowmick I want to add a car game. Can you please assign this issue to me?

Just make sure its user playable 👍

Ok

@pratyusha0710 Any progress ?