Setup python packaging to ease dependency resolution

The dependency tree for DoSOCS is quite large. There are a number of system packages that are required and also at least one python library (https://pypi.python.org/pypi/MySQL-python/1.2.5).
I'm thinking it would be helpful to, at very least, express the dependencies as a list of Debian packages and pip packages, as a step towards automating the install of DoSOCS. For example:
Debian packages required:
fossology-nomos
python2.7
mysql-client
(any other direct dependencies I missed)
...
pip (Python) packages required:
mysql-python
(any others I missed)
I am, of course, willing to take on this effort myself. My big concern as a user of DoSOCS is that the toolchain is big and unwieldy, and getting it up and running from scratch is potentially a day-long effort in which a lot of things can go wrong. I figured this would be a logical step towards easing the pain, the next step being to create a Python package for DoSOCS that pulls in needed dependencies.

Is this not already part of the prerequisite section in the readme? We can add the mysql-pythong plugin I suppose.

It is, but not in terms of what actual Debian packages DoSOCS is directly
dependent on. Obviously this is distro specific. But it would be nice to be
able to run a script that installs all system packages that are needed (like
the fo_installdeps used by FOSSology); to do that you need to know all the
packages. Debian-based systems are probably most common, so it makes sense to
target them with such a script.

Is this not already part of the prerequisite section in the readme? We can add
the mysql-pythong plugin I suppose.

Reply to this email directly or view it on GitHub:
https://github.com/socs-dev-env/DoSOCS/issues/31#issuecomment-90295077

Sounds like a good idea to me.


Support subprotocol negotiation

The list of subprotocols requested by the client could be passed as environment variable to the script. To pass back the selected subprotocol, the script would have to write it to a pipe or file (its location also passed via ENV). If websocketd does not find this suggested pipe/file it would act as now, so the solution is backwards compatible.

I think it's overkill... Look at technological history of web-servers in general. You have to have something very special implemented to redirect HTTP 1.0 clients or HTTP 2.0 clients to separate services; you normally support everything you can in one.
Similarly with websocketd... We abstract out from frame exchange protocol and replace it to message-exchange for underlying program(s).  This makes it possible to ignore technical details about protocol itself and just communicate in messages.
In my opinion, if our users would see that we do not support some particular sub-protocol, they should just ask to add it's support. Such support will be implemented in HTTP side of websocketd, leaving Handler side (program runner)  intact.

A less complicated feature would be a --subprotocol parameter with a fixed value that clients must include in its list of accepted subprotocols to establish connection. Most services stick to one subprotocol anyway or just assume clients to implicitly know the protocol details.

Having read again RFC6455 I now think that subprotocols are of little use because a server MUST NOT return a subprotocol name unless the subprotocol has explicitly be included in the client request. My use case was to return the subprotocol as additional metadata for clients such as HTTP content type - this is not allowed with websockets.


Parallel AOT compilation

I'd like to improve the compilation time for doing AOT compilation using pycc by adding parallelism. Here is an example of the sort of thing I am talking about, which takes several minutes to compile
from __future__ import absolute_import, division, print_function

import numba
import numba.pycc
import numpy as np

cc = numba.pycc.CC('extension')

# An iterative quicksort implementation which sorts multiple arrays doing row-wise comparisons.
# It uses numba and code generation to generate efficient code.
# The quicksort implementation in this file is a slightly adapted version of numpy's quicksort:
# https://github.com/numpy/numpy/blob/master/numpy/core/src/npysort/quicksort.c.src
_quicksort_template = '''
def quicksort(idxs, s, e, stack, {arr_names}):
    def lt(x, y):
        return {lt_impl_x_y}

    def swap(x, y):
        t = idxs[x]
        idxs[x] = idxs[y]
        idxs[y] = t

    stack[0] = s
    stack[1] = e - 1
    sptr = 2

    SMALL_QUICKSORT = 15

    while sptr > 0:
        # pop interval to be sorted from stack
        pr = stack[sptr - 1]
        pl = stack[sptr - 2]
        sptr -= 2

        # use quicksort iteratively until interval is too small
        while pr - pl > SMALL_QUICKSORT:
            # compute median element of left, median, right and swap
            pm = pl + ((pr - pl) >> 1)
            if lt(idxs[pm], idxs[pl]):
                swap(pm, pl)
            if lt(idxs[pr], idxs[pm]):
                swap(pr, pm)
            if lt(idxs[pm], idxs[pl]):
                swap(pm, pl)

            # this is our pivot value
            vp = idxs[pm]

            # stash pivot in last unknown element of interval (pr has to be greater than pm from above)
            pi = pl
            pj = pr - 1
            swap(pm, pj)

            # swap left and right according to pivot
            while True:
                pi += 1
                while lt(idxs[pi], vp):
                    pi += 1
                pj -= 1
                while lt(vp, idxs[pj]):
                    pj -= 1
                if pi >= pj:
                    break
                swap(pi, pj)

            # put pivot in its place
            pk = pr - 1
            swap(pi, pk)

            # push largest partition on stack
            assert sptr + 2 <= len(stack)
            if pi - pl < pr - pi:
                stack[sptr] = pi + 1
                stack[sptr + 1] = pr
                sptr += 2
                pr = pi - 1
            else:
                stack[sptr] = pl
                stack[sptr + 1] = pi - 1
                sptr += 2
                pl = pi + 1

        # insertion sort
        for pi in range(pl + 1, pr + 1):
            vp = idxs[pi]
            pj = pi
            pk = pi - 1
            while pj > pl and lt(vp, idxs[pk]):
                idxs[pj] = idxs[pk]
                pj -= 1
                pk -= 1
            idxs[pj] = vp
'''

def _get_quicksort(n_arrs):
    arr_names = tuple('a{}'.format(i) for i in range(n_arrs))
    lt_impl_x_y = '{an}[x] < {an}[y]'.format(an=arr_names[-1])
    for an in reversed(arr_names[:-1]):
        lt_impl_x_y = 'True if {an}[x] < {an}[y] else (False if {an}[x] > {an}[y] else ({lt_impl_x_y}))' \
            .format(an=an, lt_impl_x_y=lt_impl_x_y)
    quicksort_code = _quicksort_template.format(lt_impl_x_y=lt_impl_x_y, arr_names=', '.join(arr_names))
    quicksort_module = compile(quicksort_code, __file__, 'exec')
    globals_dict = {}
    locals_dict = {}
    exec(quicksort_module, globals_dict, locals_dict)
    return locals_dict['quicksort']

AOT_SORT_SUPPORTED_DTYPES = [np.dtype('int64'), np.dtype('int32'), np.dtype('float64')]

for dt1 in AOT_SORT_SUPPORTED_DTYPES:
    cc.export(
        'quicksort_{}'.format(dt1),
        'none(int64[:], int64, int64, int64[:], {}[:])'.format(dt1)
    )(_get_quicksort(1))

for dt1 in AOT_SORT_SUPPORTED_DTYPES:
    for dt2 in AOT_SORT_SUPPORTED_DTYPES:
        cc.export(
            'quicksort_{}_{}'.format(dt1, dt2),
            'none(int64[:], int64, int64, int64[:], {}[:], {}[:])'.format(dt1, dt2)
        )(_get_quicksort(2))

for dt1 in AOT_SORT_SUPPORTED_DTYPES:
    for dt2 in AOT_SORT_SUPPORTED_DTYPES:
        for dt3 in AOT_SORT_SUPPORTED_DTYPES:
            cc.export(
                'quicksort_{}_{}_{}'.format(dt1, dt2, dt3),
                'none(int64[:], int64, int64, int64[:], {}[:], {}[:], {}[:])'.format(dt1, dt2, dt3)
            )(_get_quicksort(3))

for dt1 in AOT_SORT_SUPPORTED_DTYPES:
    for dt2 in AOT_SORT_SUPPORTED_DTYPES:
        for dt3 in AOT_SORT_SUPPORTED_DTYPES:
            for dt4 in AOT_SORT_SUPPORTED_DTYPES:
                cc.export(
                    'quicksort_{}_{}_{}_{}'.format(dt1, dt2, dt3, dt4),
                    'none(int64[:], int64, int64, int64[:], {}[:], {}[:], {}[:], {}[:])'.format(dt1, dt2, dt3, dt4)
                )(_get_quicksort(4))

if __name__ == "__main__":
    cc.compile()

A suggestion is to compile each function to a separate object file and then merge them together in the linking step in CC.compile and CC._compile_object_files.

It was mentioned at the dev meeting that something like foo.overloads[foo.signatures[0]].metadata could be used to access a metadata object that gives information about how much time was spent in each part of the compilation pipeline. However, it isn't clear if this information is available here, or if numba needs to be patched somehow to make it accessible.

It looks like this section https://github.com/numba/numba/blob/d774cdd4e89c1929dda38fa6c7285e21a0fc129b/numba/pycc/cc.py#L195-L202 could be rewritten so as to have a "Function" compiler which targets a single _export_entries item and creates an object file for each function. Such a targeted compiler could comprise some of the code from https://github.com/numba/numba/blob/d774cdd4e89c1929dda38fa6c7285e21a0fc129b/numba/pycc/compiler.py#L129-L191 particularly the loop body, at which point I think that this could just be done with multiprocessing to avoid the global compiler lock. It'd probably be a bit wasteful in that there's potentially parts of the call graph being recompiled in each process, but it would likely be covered by the parallelisation opportunity (particularly in cases such as that presented above). I think the necessary IPC would comprise the export entries and perhaps a base temporary directory name as the fan out and the file paths of the object files fanning in.
I think that doing this will be quite challenging, there's likely a load of nuances, particularly in codegen and linking, and it's quite a heavy refactor on top of that.

Aggregate timings for a cut down version of the above:
$ python issue6424.py
0_translate_bytecode                    : 0.2573907709993364
1_fixup_args                            : 4.859199725615326e-05
2_ir_processing                         : 0.10590391099867702
3_with_lifting                          : 0.12073841100209393
4_rewrite_semantic_constants            : 0.004042602999106748
5_dead_branch_prune                     : 0.009521444004349178
6_generic_rewrites                      : 0.19480372699945292
7_inline_closure_likes                  : 2.92764353399798
8_make_function_op_code_to_jit_function : 0.0029370079973887186
9_inline_inlinables                     : 0.006572256001163623
10_dead_branch_prune                    : 0.010594265000690939
11_find_literally                       : 0.003489007003736333
12_literal_unroll                       : 0.0028861660011898493
13_reconstruct_ssa                      : 1.2664999289991101
14_nopython_type_inference              : 2.9215443470002356
15_annotate_types                       : 0.4540639539973199
16_strip_phis                           : 0.3231070840029133
17_inline_overloads                     : 0.21728335900479578
18_nopython_rewrites                    : 0.851719274000061
19_ir_legalization                      : 0.3591205269949569
20_nopython_backend                     : 7.549393654002415
21_dump_parfor_diagnostics              : 8.982299914350733e-05
Elapsed: 21.64033317565918

patch to generate:
diff --git a/numba/pycc/compiler.py b/numba/pycc/compiler.py
index 4fea21126..0952664f0 100644
--- a/numba/pycc/compiler.py
+++ b/numba/pycc/compiler.py
@@ -149,12 +149,17 @@ class _ModuleCompiler(object):
             nrt_module, _ = nrtdynmod.create_nrt_module(self.context)
             library.add_ir_module(nrt_module)

+        from collections import defaultdict
+        _total_time = defaultdict(float)
         for entry in self.export_entries:
             cres = compile_extra(self.typing_context, self.context,
                                 entry.function,
                                 entry.signature.args,
                                 entry.signature.return_type, flags,
                                 locals={}, library=library)
+            npt = cres.metadata['pipeline_times']['nopython']
+            for k, v in npt.items():
+                _total_time[k] += v.run

             func_name = cres.fndesc.llvm_func_name
             llvm_func = cres.library.get_function(func_name)
@@ -174,6 +179,9 @@ class _ModuleCompiler(object):
                 llvm_func.name = entry.symbol
                 self.dll_exports.append(entry.symbol)

+        for k, v in _total_time.items():
+            print(f"{k:<40}: {v}")
+
         if self.export_python_wrap:
             wrapper_module = library.create_ir_module("wrapper")
             self._emit_python_wrapper(wrapper_module)

I think that doing this will be quite challenging, there's likely a load of nuances, particularly in codegen and linking, and it's quite a heavy refactor on top of that.

Thanks for that info. Do you still think that targeting at this at the LLVM level is an easier possibility, or is that not where the bottleneck is?

Thanks for that info. Do you still think that targeting at this at the LLVM level is an easier possibility, or is that not where the bottleneck is?

Actually I didn't see your timings comment when I wrote this. Which part(s) of the pipeline would be affected by parallelizing at the LLVM layer?

Ping on this. Any thoughts on if we can get significant wins by using the threadsafe LLVM APIs, which was mentioned to be a relatively easy improvement in this direction? Also has any work been done on this issue or related things since October?

Ping on this. Any thoughts on if we can get significant wins by using the threadsafe LLVM APIs, which was mentioned to be a relatively easy improvement in this direction? Also has any work been done on this issue or related things since October?

FYI, I created https://github.com/numba/numba-extras/pull/4 with a script that speeds up parallel compilation.

Great, thank you! By putting this on the radar of the numba team they will hopefully not make any breaking changes.
And maybe they'll even be convinced that this is the better way to do AOT compilation...


fix: added tests for getChallenges

Checklist:

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the main branch of freeCodeCamp.
[x] I have tested these changes either locally on my machine, or GitPod.

Two more tests added for getChallenges.js file inside curriculum folder.

Hi @jcjc2019, thanks for opening the PR, can you elaborate about the need to update the package and add the tests?

Hi @jcjc2019, thank you f


Referring to ... as an operator

so the rest or spread is referred to as an operator but I've been informed that it's not.
You can see it in the following places (both coding challenges and guides)
https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/es6/use-the-rest-operator-with-function-parameters/
https://guide.freecodecamp.org/certifications/javascript-algorithms-and-data-structures/es6/use-the-rest-operator-with-function-parameters/
https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/es6/use-the-spread-operator-to-evaluate-arrays-in-place/
https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-data-structures/combine-arrays-with-the-spread-operator/
There's probably some more, I stopped checking there.

The ... is in fact an operator only afaik and those places have the correct terms. Check here: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax

Spread is fine, but in the ECMAScript specification, rest is refereed as "Rest Parameter".
Also, in MDN Rest isnt under "operators".
With Object/Array destructuring they both are referred as "Spread/Rest properties". Source.
Perhaps updating "Rest Operator" to "Rest Parameter" would be better.

MDN seems to call it a spread operator as well: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators#Spread_operator .
I think this name is perfectly legal to use. To me, starting to call it a parameter would be more confusing (it's being used as a function -> operator).

Spread and Rest are different things (albeit denoted by same token).
In functions ...args is used as a parameter and hence Rest parameter.

Yes, with the rest parameter I'm on the same page. Perhaps replace those and keep the spread as is? I could write a PR for that I think

Yes, I'm fine with keeping spread as is and updating the "Rest Operator" to "Rest Parameter".
Lets get some more discussion on this then you can open a PR.

Pls, the last assertion test still fails to pass even after naming the parameter (...args).

@nwachuks Can you give the whole code and which challenge you're unable to pass the test?

We are currently seeking assistance from contributors (first timers are welcome) to help change the wording from "Rest Operator" to "Rest Parameter" for this challenge.

Hi! If someone isn't already working on this, I would like to take it.

1.577287066246057

@alialooooosh055455

@dnntrn Doesnt seem like, you're good to go!
If you need help, feel free to ask here or visit our contributors room.

IMEI:<PHONE_NUMBER>70508
SV: 01
Phone Number:
ICCID:<PHONE_NUMBER>0185464544
IMSI:<PHONE_NUMBER>46454
Mac Address: 8C:F5:A3:2F:0F:6C

@ezioda004 Hey! I think I got them all. Not sure if I missed some, but I checked the guides and challenges under ES6, projects, and certifications. Pull Request submitted.

@dnntrn Check this link . There are 28 files in this repo where rest operator comes up

@dnntrn Nicely done. I have no idea what you guys are talking about.

Hi! I'm a first timer hoping I can contribute here. Is this already taken including the 28 files? Thanks.

@theproactivedev Hey! I'm still working on this, but I'll let you know if I need help. Thanks!

@dnntrn Oh, sure! :D Thanks.

@dnntrn Still working on this?

@Drithyl yup!

This issue was fixed with PR #35496, so I am closing it.  If anyone feels the issue has not been fixed on the master branch, feel free to request this issue be reopened.


Dynamic height and then relayout but where?

I'm adding a comment section to each of the 'tiles'.
This can be either a comment box or, a comment box and previous comments, therefore height unknown.
As there are multiple I'm adding them in after the fact.
The problem is that that comment field is loaded under each image but the tiles are not updating their size to fit, therefore they are overlapping, the comments are laying over the tiles below them.
I understand I can refresh the layout but just don't know where, have tried every where I can think of.
This is the code to load the comments (Each <LI> has a div named .comment_holder at the bottom of it)
/** Refreshes the layout. */
function applyLayout() {

	$('.comment_holder').each(function(index, elem){
	   $(elem).load('/pages/includes/comments.php', {
			wl_id: $(elem).attr("id")
		});
	});

  // Clear our previous layout handler.
  if(handler) handler.wookmarkClear();
  // Create a new layout handler
  handler = $('#tiles li');
  handler.wookmark(options);

};

Any ideas? Many thanks.

// Update the layout.
// Jquery Object
var $wookmark = $('#container').wookmark({....});
wookmark.wookmarkInstance.initItems();
wookmark.wookmarkInstance.layout(true);
//JavaScript new
var wookmark = new Wookmark(container);
wookmark.initItems();
wookmark.layout(true);


Remove unittest.mock.Mock uses from production code; make tests pass with zilencer disabled

unittest.mock.Mock is somewhat expensive to import and confuses mypy. This reduces our type: ignore count from 15 to 10.
Testing Plan: Dev server; test-backend with zilencer manually removed from EXTRA_INSTALLED_APPS.

Great, merged, thanks for the cleanup @andersk!

We have one other use of unittest.mock in production; though it's much more contained (import is in a code path that's default-off).
    def done(self, form_list: List[Form], **kwargs: Any) -> HttpResponse:
        """
        Login the user and redirect to the desired page.

        We need to override this function so that we can redirect to
        realm.uri instead of '/'.
        """
        realm_uri = self.get_user().realm.uri
        # This mock.patch business is an unpleasant hack that we'd
        # ideally like to remove by instead patching the upstream
        # module to support better configurability of the
        # LOGIN_REDIRECT_URL setting.  But until then, it works.  We
        # import mock.patch here because mock has an expensive import
        # process involving pbr -> pkgresources (which is really slow).
        from unittest.mock import patch
        with patch.object(settings, 'LOGIN_REDIRECT_URL', realm_uri):
            return super().done(form_list, **kwargs)

We should probably report an issue at https://github.com/Bouke/django-two-factor-auth/issues/new for this one.


Validation message not translated

Hi
We are using Laravel 5.2 and cannot get the validation message to be translated. We placed the vat_number key inside the validation.php file, but we always get: vatnumber-validator::validation.vat_number as a result. Any idea what we could be missing?

Ok I found that the translation file should live in resources/lang/vendor/vatnumber-validator, which was not really clear.


Fix for 034 fuzzer

This fix corrects solution of PIPs for internal feedback path of PLLE2_ADV

Modified 071 to dump PPIPs for CMT column tiles.
There were duplicated features emitted due to the fact that PPIPs were activated along with PIPs. This is solved by reading list of PPIPs and ignoring them during tag generation.
A manual routing mechanism was introduced to the PLL feedback path. A random route is chosen and enforced using TCL.

@mkurc-ant : https://storage.cloud.google.com/symbiflow-prjxray/artifacts/prod/foss-fpga-tools/prjxray/presubmit/database/artix7/914/20191007-134920/fuzzers/fails.tgz

@litghost Investigating... Now it seems to be a fuzzer dependency problem. I'm getting the error:
2019-10-28T18:19:26.487689 - 034-cmt-pll-pips         -   16s: Traceback (most recent call last):
2019-10-28T18:19:26.487689 - 034-cmt-pll-pips         -   16s:   File "/tmpfs/src/github/symbiflow-prjxray-presubmit-db-artix7/fuzzers/034-cmt-pll-pips/top.py", line 333, in <module>
2019-10-28T18:19:26.487689 - 034-cmt-pll-pips         -   16s:     main()
2019-10-28T18:19:26.487689 - 034-cmt-pll-pips         -   16s:   File "/tmpfs/src/github/symbiflow-prjxray-presubmit-db-artix7/fuzzers/034-cmt-pll-pips/top.py", line 149, in main
2019-10-28T18:19:26.487689 - 034-cmt-pll-pips         -   16s:     db, tile, site, pin, dir, occupied_wires)
2019-10-28T18:19:26.487689 - 034-cmt-pll-pips         -   16s:   File "/tmpfs/src/github/symbiflow-prjxray-presubmit-db-artix7/fuzzers/034-cmt-pll-pips/top.py", line 53, in get_random_route_from_site_pin
2019-10-28T18:19:26.487689 - 034-cmt-pll-pips         -   16s:     tile = db.get_tile_type(tile_type)
2019-10-28T18:19:26.487689 - 034-cmt-pll-pips         -   16s:   File "/tmpfs/src/github/symbiflow-prjxray-presubmit-db-artix7/prjxray/db.py", line 98, in get_tile_type
2019-10-28T18:19:26.487689 - 034-cmt-pll-pips         -   16s:     tile_type, self.tile_types[tile_type])
2019-10-28T18:19:26.487689 - 034-cmt-pll-pips         -   16s: KeyError: 'CMT_TOP_R_UPPER_T'

The 034 uses information about tile PIPs which seems not to be in the database at the time it is being run (I guess).
Apart from that I reworked the fuzzer so now it uses the segmatch and is able to solve PIPs related to CLKFBIN, CLKIN1 and CLKIN2 inputs.

fuzzer dependency problem

Tile type data is not available until after 074 is run.  However there is a timing penalty to waiting for 074 to finish.  Is there another way you can the data you need other than using the data from 074?

Hmmm, I can either hardcode PIP names in top.py or read them from the piplist files as the generate.py does. I'll try that tomorrow.

Hmmm, I can either hardcode PIP names in top.py or read them from the piplist files as the generate.py does. I'll try that tomorrow.

Please use the piplist, which is why it is there.  Do not hard code pips.  If you need additional data, there are ways to run Vivado tcl prior to generate.py, etc.

Now it failed on Z7 and K7... The Zynq does not have "R" versions of CMT tiles so the fix is simple. But for the K7 I have:
ERROR: [DRC PDIL-1] Invalid Site Configuration: Invalid configuration for site BUFR_X0Y14. Reason: Cannot replace net clkin2_PLLE2_ADV_X0Y3 with net clkfbin_PLLE2_ADV_X0Y3 on bel pin O/O

So I need to double check the design.

@litghost Green CI! :)

@litghost Green CI! :)

Yay!!!


Replace applescript with https://github.com/sindresorhus/opn

This allows opening the Chrome debugger on OS X, Linux, and Windows, and succeeds the previous PR which used browser-launcher2 and included a --dangerouslyDisableChromeDebuggerWebSecurity option: https://github.com/facebook/react-native/pull/2406
opn is cross-platform and much simpler than browser-launcher2 (since we don't have to manage the opened Chrome instance; the OS will just use the default instance).

Woo confirmed working on Windows :raised_hands: . npm start (i.e. packager.sh) doesn't work but this does:
node node_modules/react-native/packager/packager.js

@ide I've just pushed a change to isDebuggerConnected(); it now checks for Chrome's user agent string and opens the debugger only if the string is not present in the list of web socket proxy clients.

Thanks, this is looking pretty good.

Awesome, this works great! Only one problem with ending the request and I'll pull this in.

@frantic fixed!

@facebook-github-bot import

:rocket:

This is awesome, thanks @elliottsj

Glad to help :smile:


Document limitation to what materials can be parsed

          Let's add the known limitation to the documentation in a separate issue.

Originally posted by @tjlaboss in https://github.com/idaholab/MontePy/pull/537#pullrequestreview-2297288561

The documentation should clarify:

That MontePy does not allow things among target-fraction pairs.
That MontePy requires the order [Material number] [nuclide-fraction pairs] [parameters]
What behavior the user will see if something outside this is encountered (error raised, mis-read material, material "read" but not understood, etc.)


Auto convert icon to icns format

LGTM 👍 Thanks!
I'll leave this undocumented for now though, because if auto-conversion is going to be a feature it should have wider support (particularly PNG -> ICNS seems a more useful target).


[Question] How do you fine-tune LLaVA-NeXT on video data?

Question
I have a collection of videos and annotations. How do I fine-tune one of the LLaVA-NeXT models? I see the instructions for how to do so with traditional LLaVA but the directions for LLaVA-NeXT with video data are unclear. Thank you very much

Ay after spending some time digging around, I came across this tutorial in case anyone else is searching for an answer: https://github.com/NielsRogge/Transformers-Tutorials/blob/master/LLaVA-NeXT-Video/Fine_tune_LLaVa_NeXT_Video_with_HFTrainer.ipynb
I haven't tried it yet but I will


Use .js file extension in ESM relative imports

As per: https://www.typescriptlang.org/docs/handbook/esm-node.html#type-in-packagejson-and-new-extensions

relative import paths need full extensions (e.g we have to write import "./foo.js" instead of import "./foo")

Version 2.X was emitting both .mjs and .cjs files, so this wasn't an issue. But it is my understanding that since version 3 only emits .js files and sets the "type": "module" package setting, relative imports in TypeScript have to use a .js extension.
This PR does just that. Another solution would be to revert to explicitly emitting .mjs and cjs files.

Thanks a lot!
I'll probably switch to esbuild in the end...


Simplest sol

This is the simplest possible solution

Thank you for your PR!
Unfortunately a solution similar to yours has already been submitted :/
Also, I wouldn't necessarily call this "the simplest possible solution". It's rather verbose actually.
Anyway, the goal is to find creative/abstract new solutions to FizzBuzz.
Please consult the readme for more information and see The top 5 samples here.
Thanks anyway! :)


Updating fields in SSI console guide, New Image added

thanks Bobbilee! I've incorporated these changes in https://github.com/TBD54566975/developer.tbd.website/pull/523


Query validation: LATERAl breaks highlighting

Description
Dvdrenral.Masha_parser
SELECT * FROM prt1 t1 LEFT JOIN LATERAL
			  (SELECT t2.a AS t2a, t3.a AS t3a, least(t1.a,t2.a,t3.b) FROM prt1 t2 JOIN prt2 t3 ON (t2.a = t3.b)) ss
			  ON t1.a = ss.t2a WHERE t1.b = 0 ORDER BY t1.a;

https://github.com/user-attachments/assets/a4a3eee4-e47d-4219-bff9-12261f617a54
DBeaver Version
24.3.0
Operating System
mac 15.1
Database and driver
postgres 12
Steps to reproduce
No response
Additional context
No response

Probably related https://github.com/dbeaver/dbeaver/issues/36357


pls merge dumb commits

Fixes Issue none
This PR fixes the following issues:
closes creating empty commits

Changes proposed
None
Here comes all the changes proposed through this PR

Check List (Check all the boxes which are applicable)

[ ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] All new and existing tests passed.
[ ] This PR does not contain plagiarized content.
[ ] The title of my pull request is a short description of the requested changes.

Screenshots
Add all the screenshots which support your changes

Thanks for testing the integration siddhant. Closing the pr as purpose is served


refactor replace_JSON_refs function

Refactor replace_JSON_refs : change s to actual meaning of the argument and add docstring info what is the difference between s and data
https://github.com/pepkit/pipestat/blob/22516714cbf2d8f6d37f628f393d5655e0b2fe2e/pipestat/parsed_schema.py#L276-L307

Ok, I added clarity via the above commit.


[18.06] bump ver 18.06.3

full diff: https://github.com/docker/docker-ce/compare/v18.06.2-ce...4167aa511bd25210b679a9f53787d846e645fa37

oh, right, so we'll need https://github.com/docker/engine/pull/156 to be pulled in as well first I guess?

@thaJeztah stuff is now more up to date: https://github.com/docker/docker-ce/compare/v18.06.2-ce...18.06
and i've added words


Throws "The path is not of a legal form" exception

CreateCompilationDatabase(...) throws a System.ArgumentException: 'The path is not of a legal form.' when trying to generate the compilation database from a VS project. I'm neither a C# nor a VS developer, but I'm looking into the issue. Someone else can likely do a better job, however.
Looking at the trace, dte.Solution.FullName is empty, which clearly is a problem. This is happening when I open a VS project, not a solution file, so is that a problem? Does this extension only support generating compilation databases from full solutions? This is my first time using Visual Studio, so I'm not entirely clear on why that would be a problem.
The exception is thrown in SourcetrailExtension/SourcetrailExtensionPackage.cs, line 605
Thanks!

So, I just tried opening the project, and then saving the generated VS solution for that project, and Sourcetrail now seems to be working. However, My companies source is laid out as a bunch of project files without a top level solution which get built from build-scripts that compile each project for us, so I'd love it if Sourcetrail could work on project files instead of solutions. Is that possible?

Even if you load a project (instead of a solution) in VS, VS will create a solution automatically, as you mentioned. Let me rephrase the title of this issue.

For your personal use case, I would recommend that you create a solution on your own machine that contains all the VS projects that you are interested in. With that you can then use the VS extension to generate a compilation database for everything at once, which also may come in handy later, when things change and you want to update the generated compilation database.


Video JSON credits <-> YT description generator

The description generator adds default credits for each video but I sometimes have extra ones (like for the Apple ][ video). One option would be to create a "credits" groupLink, but maybe we can add a separate credits property to each JSON instead?  RIght now I'm manually editing the YT descriptions:

What do you think @dipamsen?

This would depend on whether we would like to show the credits on the website, and either solution would work for yt-desc (maybe a separate property would be a bit better for customisation)

I think a separate property is best! I might propose:
   "credits":[
      {
         "title":"What They Did",
         "name":"Name or Nickname",
         "url":"optional URL"
      },
      {
         "title":"Coding Together Theme",
         "name":"Will from America",
         "url":"https://twitter.com/WillfromAmerica"
      }
   ]

Perhaps we try adding these for the three Apple II videos and see how it feels / works?

They could populate the YT description as well as create either a tab on the website or maybe just be listed at the bottom of the description for each video?

I think adding it below the description could be a good idea. I will try adding this.

I was playing around with this, and this is the behaviour I could achieve:
  "credits": [
    {
      "title": "Coding Together Theme",
      "name": "Will from America",
      "url": "https://twitter.com/WillfromAmerica"
    },
    {
      "title": "Eye of the Tiger cover",
      "name": "Leon from @neo"
    }
  ]

Now that the description is a bunch of elements instead of a string of text, the Read More / Read Less doesn't work, and the section has become scrollable. I am not sure how easy or difficult it would be to re-implement that behaviour here.
Here, Will from America links to the url (currently invisible due to lack of styling).
Currently I have implemented this with a bunch of
 tags, which is probably not the best for accessibility. Open for suggestions!

Here is the rendered HTML:

This is a good start! A few thoughts.

Should it be a separate tab or inside the description? I could go either way.
If it's in the description I think we need the "read more" to work so that it doesn't overflow awkwardly.
The credits should also include video editing and animation. These are now automatically added for all videos. Does it make sense to include them additionally in the JSON? It would be extra work to do so but that might make the most sense in order to be able to fully customize the credits?

I'll have to think about this some more. Open to feedback!

@shiffman Appreciate the input!
I tried both using the description or creating a new tab, to see which works well with the site.
A. Below the description
The way the Read More / Read Less system works on the size is that it requires the content of the description to be a string, as the collapsing of the description depends on the character length of the content. However, on adding the credits, it adds a bunch of
 and  attributes, so this functionality breaks.
This is the output I could get: (better pic in above comment)

While experimenting, I found that it could work, if we decided not to use urls:
https://user-images.githubusercontent.com/59444569/202268961-17a78071-986d-4d7d-b17e-0f97018e3e25.mp4
I cannot think of an elegant way that this can be done, while preserving the current collapsible system. If anyone can suggest something, I could try implementing it!
B. A new tab
I used most of the code from LinkList (aka groupLinks) and created a CreditList component.

I am not the best at designing, but I tried to create a layout matching the other tabs.

The credits should also include video editing and animation. These are now automatically added for all videos. Does it make sense to include them additionally in the JSON?
Sure! I'll add them to all challenges, once it is implemented.

Note that Additional Music from Epidemic Sounds has changed into Additional Music by Epidemic Sounds. I do not know how this can be dealed with, I have decided to use by as the default as it works with most entries.

Should I keep working on the new tab layout, or is the credits below description worth revisiting? Any feedback is appreciated!
P.S. Deploy Preview for the tab layout: https://deploy-preview-775--codingtrain.netlify.app/challenges/174-graphics-applesoft-basic

Just realised that this just adds yet another extra tab 😕

Thank you so much for working on this! I'm worried I'm overcomplicating things by adding this feature, then again it is very important to credit people for their hard work on the videos! @kfahn22 Do you have an opinion here having worked on so many of these JSON files? Is it going to be a pain to maintain the credits this way? I think the Apple video is unusual with so many tabs so adding a credits one probably won't be an issue for most.

This is settled with #775!


Git commit status into dev deploy

Describe the bug
We want to upgrade our flux to flux v2 deployed into multiple clusters, all point same bitbucket repo. Seem like bootstrap using a git bitbucket repo is no ready yet.
Flux v1 tag the commit of the repo that are using. We are looking for similar function into flux v2, but only find the commit status solution to do similar function.
To deploy flux we are using dev mode, but when try to configure alerts, we get these errors:
2021-04-21T09:54:21.284Z info Kustomization/podinfo.flux-system - Dispatching event: Update completed
2021-04-21T09:54:21.744Z error Kustomization/podinfo.flux-system - failed to send notification 401 Unauthorized

To Reproduce
Steps to reproduce the behaviour:

Provide Flux install instructions

flux install --network-policy=true --watch-all-namespaces=true --namespace=flux-system

flux create source git name1 --url=https://bitbucketfactory.repo/route/to/repo.git --branch=master --interval=1m --username=user --password=pass

flux create kustomization name2 --source=name1 --path="./dev/services" --prune=true --interval=5m

podinfo (public kustomize copied into "./install/podinfo)
apiVersion: kustomize.toolkit.fluxcd.io/v1beta1
kind: Kustomization
metadata:
  name: podinfo
  namespace: flux-system
spec:
  interval: 5m
  targetNamespace: podinfo
  path: ./install/podinfo
  prune: true
  sourceRef:
    kind: GitRepository
    name: name1
  healthChecks:
    - apiVersion: apps/v1
      kind: Deployment
      name: podinfo
      namespace: podinfo
  timeout: 1m

secret:
apiVersion: v1
kind: Secret
metadata:
  name: provider-secret
  namespace: flux-system
data:
  token: base64name:base64pass

alert and alert-provider
apiVersion: notification.toolkit.fluxcd.io/v1beta1
kind: Provider
metadata:
  name: flux-system
  namespace: flux-system
spec:
  type: bitbucket
  address: https://bitbucketfactory.repo/route/to/repo.git
  secretRef:
    name: provider-secret

---

apiVersion: notification.toolkit.fluxcd.io/v1beta1
kind: Alert
metadata:
  name: podinfo
  namespace: flux-system
spec:
  providerRef:
    name: flux-system
  eventSeverity: info
  eventSources:
    - kind: Kustomization
      name: podinfo
      namespace: flux-system

Expected behavior
We want that the commit will marked when flux v2 are using it into every cluster.
Additional context

Kubernetes version: 1.17.12
Git provider: bitbucket

Below please provide the output of the following commands:
flux --version: 0.12.1
flux check

► checking prerequisites
✗ flux 0.12.1 <0.12.3 (new version is available, please upgrade)
✔ kubectl 1.19.0 >=1.18.0-0
✔ Kubernetes 1.17.12-eks-7684af >=1.16.0-0
► checking controllers
✔ all checks passed

Hey @gerardgorrion , What permissions did you give your app password?

Hi @SomtochiAma , thanks for your answer. We will try with cli to check if this is the error.
Regards,


Add support for Windows Server in 2410.1 branch

The current workflow is very convenient for Windows clients OS deployments but can't process Windows Server images.
This pull request adds support for Windows Server 2022 and Windows Server 2025 deployments.
The scripts also tries to process Windows Server 2019 and Windows Server 2016 partially, but this hasn't been tested so far.
As far as I know there isn't an official download link for Windows Server downloads so testing was done with a downloaded ISO only and the script function updated to throw when a download is attempted.
There might be an issue with outdated ISOs since missing the most recent SSU (servicing stack update) will probably cause the msu (update file) install to fail. This will probably require addressing once Windows checkpoint updates will become a thing.
A suggested fix for that would be to first detect the most recent SSU/checkpoint update, then installing it, dismounting and re-mounting the wim-file.
The download for Dell Windows Server drivers was added, too.
However this was only tested for successful driver download, not for successful FFU image deployment.

This is essentially the same merge request as on the main branch.

Testing for all of our use cases complete.
No issues remaining.

Testing this PR right now. Please don't add any new commits to the PR. Thanks.


set the wait killable flag at filter installation

set the wait killable flag at filter installation
kernel patch : https://github.com/Netflix-Skunkworks/linux/commit/54efd87a85766087d3c36e74962d1314f70f5f09

Hopefully this compiles. We may need hacks for libc-linux-dev?


Transform on only passed data

Hello,
I have an issue on transforming 2 different type of data.
I have a Transformer for a User array that contains user info.
when i fetch all of the users info and pass it to my transformer it will transform it correctly.
Now i want, when i fetch for example only id & username & pass it to the same transformer  i get an error on undefined array indexes. i dont want to change my transformer to check if that index is exist or create another transformer because its impossible.
Any solution or fix?

Can you provide some code examples please?

@Art4 sure why not.
i have a controller like this that its job to show a user details
public function show(Request $request, $id)
    {
        // Try to find requested user
        $user = User::nFind($id);

        // Throw an error if user not found
        if( ! $user)
            return $this->jsonMessage('User not found.', 404);

        // If user requested for specific user info only return them, nothing more
        if($request->has('only'))
            $user = array_only($user, convert_string_to_array($request->only));

        // Show full user info
        return \Fractal::create()->item($user, new UserTransformer)->toArray();
    }

and here is my transformer
public function transform($user)
    {
        return [
            // Basic info
            'id' => $user['id'],
            'name' => $user['name'],
            'email' => $user['email'],
            'username' => $user['username'],

            // Profile
            'birthday' => $user['birthday'],
            'birthplace' => $user['birthplace'],
            'gender' => $user['gender'],
            'description' => $user['description'],

            'created_at' => $user['created_at'],
            'updated_at' => $user['updated_at'],
        ];
    }

Fractal will let you scope the fields (which happens after the transform), this would probably be the recommended way to handle your situation although it'll have to be a little hacked in because the laravel-fractal library doesn't directly support it yet.
You could alternatively run your array_only on the return from fractal instead of trying to do it afterward. This is probably the most straight forward way to do this right now.
public function show(Request $request, $id)
    {
        // Try to find requested user
        $user = User::nFind($id);

        // Throw an error if user not found
        if( ! $user)
            return $this->jsonMessage('User not found.', 404);

        // Transform all the data
        $response = \Fractal::create()->item($user, new UserTransformer)->toArray();

        // If user requested for specific user info only return them, nothing more
        if($request->has('only'))
            $response = array_only($response, convert_string_to_array($request->only));

        // Show full user info
        return $response;
    }

What version of PHP are you using? If you're on PHP 7, I would suggest null coalesce operator. Otherwise there's really no way around that.

@Indemnity83 thanks for your reply. actually the problem occur inside of the fractal transformer. because it wants to transform some data that are not passed to it.
I think this should handle inside of the fractal on transforming level. for example something like this condition: if the variable that you want to transform is set then go for it.
You solution is outside of the fractal level.
Any other solution? Thanks

@greydnls I am using php 7.1. Can you describe what do you mean? thanks anyway

public function transform($user)
    {
        return [
            'id' => $user['id'],
            'name' => $user['name'] ?? '',
            'email' => $user['email'] ?? '',
            'username' => $user['username'],
            'birthday' => $user['birthday'] ?? '',
            'birthplace' => $user['birthplace'] ?? '',
            'gender' => $user['gender'] ?? '',
            'description' => $user['description'] ?? '',
            'created_at' => $user['created_at'] ?? '',
            'updated_at' => $user['updated_at'] ?? '',
        ];
    }


Install fails

I can't install pyrosm:
When I pip install pyrosm, I get a very long stack trace that ends like this:
 pyrosm/data_filter.pyx:186:11: 'Int64Set_from_buffer' is not a constant, variable or function identifier
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-d8e3udyj/pyrosm/setup.py", line 107, in <module>
        compiler_directives={'language_level': "3",
      File "/home/nlehuby/.local/share/virtualenvs/python-JOH7DBZn/lib/python3.7/site-packages/Cython/Build/Dependencies.py", line 1102, in cythonize
        cythonize_one(*args)
      File "/home/nlehuby/.local/share/virtualenvs/python-JOH7DBZn/lib/python3.7/site-packages/Cython/Build/Dependencies.py", line 1225, in cythonize_one
        raise CompileError(None, pyx_file)
    Cython.Compiler.Errors.CompileError: pyrosm/data_filter.pyx
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

I'm on ubuntu, and here is my config:

python --version: Python 3.7.7
pip --version: pip 20.1 from /home/nlehuby/.local/share/virtualenvs/python-JOH7DBZn/lib/python3.7/site-packages/pip (python 3.7)

It collects pyrosm-0.5.2.tar.gz

@nlehuby Thanks for reporting this, and sorry for your issues regarding the installation.
Seems to be an issue that the cykhash library isn't installing properly for some reason.
Before installing pyrosm can you try installing cykhash with:
$ pip install https://github.com/HTenkanen/cykhash/archive/master.zip
And after that try to install pyrosm.
By the way: are you using conda or virtualenv for managing environments? I haven't tested installations with virtualenv (installation tests are done using conda), so there might be some things that requires fixing.

Thanks for your quick answer. I'm using pipenv to manage my virtualenv and dependancies.
Indeed, I can't install cykhash:
 x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fdebug-prefix-map=/build/python3.7-OVQonc/python3.7-3.7.7=. -fstack-protector-strong -Wformat -Werror=format-security -g -fdebug-prefix-map=/build/python3.7-OVQonc/python3.7-3.7.7=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.7m -I/home/nlehuby/.local/share/virtualenvs/python-JOH7DBZn/include/python3.7m -c src/cykhash/khashsets.c -o build/temp.linux-x86_64-3.7/src/cykhash/khashsets.o
    src/cykhash/khashsets.c:17:10: fatal error: Python.h: Aucun fichier ou dossier de ce type
     #include "Python.h"
              ^~~~~~~~~~
    compilation terminated.
    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
    ----------------------------------------
ERROR: Command errored out with exit status 1: /home/nlehuby/.local/share/virtualenvs/python-JOH7DBZn/bin/python3.7 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-req-build-0ikx2ell/setup.py'"'"'; __file__='"'"'/tmp/pip-req-build-0ikx2ell/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-v9zuy5r4/install-record.txt --single-version-externally-managed --compile --install-headers /home/nlehuby/.local/share/virtualenvs/python-JOH7DBZn/include/site/python3.7/cykhash Check the logs for full command output.

Ok, I found the issue, I could not build C code from python3 code because I was using a python3-dev for python 3.6 instead of python 3.7.
I've updated the python3-dev package and successfully managed to install cykhash and then pyrosm :tada:
Will try a normal pyrosm install from scratch now.

@nlehuby Okay, great that you were able to solve this. 👍 Let me know if you continue to have some issues.

Everything is ok, and it works out of the box with pipenv by the way.
Thanks for your support.

@nlehuby Great to hear! 👍 Feel free to raise new issues if you find something that isn't working or if you have other ideas how to improve the tool. 🙂


[ADD ME TO THE ORGANIZATION]

Name: Vivek Rawat
Location:  India ,Uttarakhand
Interest: Java Devlopment || WebDevlopment
Discord username(optional):-
Why do you want to join?

I want to join because i want to learn new stuffs which will help me to grow as individual

You can also join our Discord community here
Feel free to check out other cool repositories of the DevsInTech Community here.

@vivekrawat21 Thanks for your interest. Invitations have been sent to you. Kindly accept it and make your membership public.


Try Fashion-MNIST

Could you please test and post the result on Fashion-MNIST? https://github.com/zalandoresearch/fashion-mnist
It shares the same size & format as mnist, should be straightforward to integrate.

I will try running CapsNet on Fashion-MNIST this weekend 👍

I did it for Fashion MNIST few times, max acc only 92% (8M params, 50 epochs), whereas I can do a better performance about 95% with plain CNN (1M params, 10 epochs), quite disappointing actually.


Make the Fortran version of PRIMA available under fpm

It would make the package much more accessible to Fortran users if it is made available under fpm. This should not be too difficult to implement. It would resolve https://github.com/libprima/prima/issues/29.

fpm support certainly won't hurt.


Replace simplehtmldom

Grouping-Issue for all things simplehtmldom

Please link all issues/PRs that have to do with either simplehtmldom. We can have the discussion on the alternatives and the to-dos in here. This is also linked to the project roadmap.

Things to do

[ ] Research list of alternatives
[ ] Pro and con list of all alternatives
[ ] Select replacement
[ ] Impact analysis. Which files need changing, which operators need changing
[ ] Documentation assessment. Which parts of the documentation need to be adapted
[ ] New branch for all the neccessary changes, all changes go into that branch
[ ] Upon completion of all tasks, merge branch

What problems does simplehtmldom have, that requires to replace it?

I read in a few prs and issues that there are other dom crawlers that are way faster. Also, simplehtmldoms last release was 3 years ago.

there are other dom crawlers that are way faster

Pretty sure, there are. But if http requests to upstream webpage(s) take more time, than parsing html structure, what do we gain here?

Also, simplehtmldoms last release was 3 years ago.

Simplehtmldom does his job quite fine. What else would you like to see in this library?
Also, when you change the simplehtmldom to something else you need either to make sure, it has almost same api or write some compability layer in order existing bridges to work.
Ping @LogMANOriginal as maintainer of simplehtmldom

Thanks for pinging me @em92
I am currently aware of a few issues that were reported on SourceForge, none of which are critical.
@Bockiii Are there any fundamental issues with simplehtmldom?
You mentioned performance. What exactly do you mean by that?

Also, simplehtmldoms last release was 3 years ago.

How is this an issue?

Apart from the release cycle, I'm pretty neutral on this topic. I just saw this in more than one issue/pr so opened this issue for discussion purposes. If you say that it's not worth pursuing then I'm okay with that :)

As a side note, there is a newer version of simplehtmldom that never got included into rss-bridge: https://sourceforge.net/p/simplehtmldom/news/2019/10/php-simple-html-dom-parser-191-released/

I'm not at the computer right now so I can't search for it but there was a speed analysis pr that wanted to switch to another Dom crawler, that's why I wanted to join the discussion in one place. I don't have anything against shd and am not missing anything ;)
So how about we upgrade to the latest version (this will fix the monkey patch as well, right?) and be done with it?

I extracted the newer version (zip file) to see changes. Here is the diff between simplehtmldom 1.9 (our current) and 1.9.1:
$ git diff
diff --git a/vendor/simplehtmldom/simple_html_dom.php b/vendor/simplehtmldom/simple_html_dom.php
index d30b018..caa5fb4 100644
--- a/vendor/simplehtmldom/simple_html_dom.php
+++ b/vendor/simplehtmldom/simple_html_dom.php
@@ -18,7 +18,7 @@
  *   Vadim Voituk
  *   Antcs
  *
- * Version Rev. 1.9 (290)
+ * Version Rev. 1.9.1 (291)
  */

 define('HDOM_TYPE_ELEMENT', 1);
@@ -609,6 +609,13 @@ class simple_html_dom_node
                                $pass = false;
                        }

+                       // Handle 'text' selector
+                       if($pass && $tag === 'text' && $node->tag === 'text') {
+                               $ret[array_search($node, $this->dom->nodes, true)] = 1;
+                               unset($node);
+                               continue;
+                       }
+
                        // Skip if node isn't a child node (i.e. text nodes)
                        if($pass && !in_array($node, $node->parent->children, true)) {
                                $pass = false;

@Bockiii You are probably referring to #1923

This library not only has a few bugs that annoyed me in the past pull request, but it is also very slow at parsing and dom travel. As a result, I decided to replace it with DiDOM, which in the best scenario (the minimum number of pages download requests) accelerated the bridge 7-8 times.

This seems to be an isolated incident and a matter of personal taste. Not sure what bugs he is referring to.

So how about we upgrade to the latest version (this will fix the monkey patch as well, right?) and be done with it?

The monkey patch was fixed by version 1.7, I simply forgot to remove it 😅

Yes, I meant that one.
I'm okay with just staying on shd. As for the monkey patch, what would be needed to remove it? Just remove the references and the function in shd will just work?

The Fix_Simple_Html_Dom class can be removed entirely and the collectData function has to be changed to use the regular library.
https://github.com/RSS-Bridge/rss-bridge/blob/fe43537b4502c9cacbe113f9f898eeec9f8e780c/bridges/DanbooruBridge.php#L59-L67
something like this should work:
 public function collectData(){
 	$html = getSimpleHTMLDOMCached($this->getFullURI());

 	foreach($html->find(static::PATHTODATA) as $element) {
 		$this->items[] = $this->getItemFromElement($element);
 	}
 }

@dvikan @em92 can one of you do this? then we can close this issue again


Epson SD-600 problem with STM32F103C8T6 Direct Connection

I want to use a "Blue Pill" with Dupont direct wiring on a Epson SD-600 5.25 Floppy drive.
I can read disks, but the disk analyze shows multiple errors (see dump).
When i connect the same Epson drive with a STM32 "Blue Pill" adapter board and a floppy flat cable the result is fine (see dump).
I can not find out what makes the difference.

Does the adapter board have the 4x1k resistors attached?

Yes. It is one out of your production.

Then either the dupont wires are not making good connection or, more likely, you need 1k pullups on inputs from the drive.

I tried with a 3.5 Floppy, Epson MPF-920-E.
There is no problem. It seems to be a problem with the specific combination floppy-blue pill/dupont.

Lack of 4x 1k pull ups on the inputs. Add them and it will work fine.

To be sure:
At „Blue Pill“ connect B6/INDEX, B7/TRK0, B8/WRPROT, B2/DKRD over resistor 1K to 5V. Right?

Yes. Each gets a 1k resistor as you say. Four resistors total.

I can confirm that the problem is solved with the pull up resistors.
Maybe a note telling about the pull ups in the Hardware Assembly section would be helpful.

In this special case with the SD600 , did you realized hot to slow down to 300 rpm ? Or you used  pin 2 L with success?


JWT based tenant dicovery

You can use the jwt token to get from a parameterized claim key the actual tenant of this user.

for the jwt authorisation, the properties for the tenant definition should be:
auth:
type: jwt
properties:
tenantClaim: Tenant
At the moment, only keys of the 1st hierachical level can be used.


Add Phishing Detection Pixels

Please review the release process for BrowserServicesKit here.
Required:
Task/Issue URL: https://app.asana.com/0/1204023833050360/1207976613228507/f
iOS PR: -
macOS PR: -
What kind of version bump will this require?: Major/Minor/Patch
Description:
Implements phishing detection pixels as per ✓ Map out pixels and create privacy triage: 0.5 days and ✓ Privacy Triage: Phishing Detection Pixels on macOS

Steps to test this PR:

None :/

OS Testing:

[ ] iOS 14
[ ] iOS 15
[ ] iOS 16
[ ] macOS 10.15
[ ] macOS 11
[ ] macOS 12

Internal references:
Software Engineering Expectations
Technical Design Template

This will require some client-side changes to pass in the eventMapping, i.e.:
        self.detector = detector ?? PhishingDetector(apiClient: detectionClient, dataStore: self.dataStore, eventMapping:
                                                        EventMapping<PhishingDetectionEvents> {event, _, params, _ in
            switch event {
            case .errorPageShown(clientSideHit: let clientSideHit):
                PixelKit.fire(PhishingDetectionEvents.errorPageShown(clientSideHit: clientSideHit))
            case .iframeLoaded:
                PixelKit.fire(PhishingDetectionEvents.iframeLoaded)
            case .visitSite:
                PixelKit.fire(PhishingDetectionEvents.visitSite)
            case .updateTaskFailed48h(error: let error):
                PixelKit.fire(PhishingDetectionEvents.updateTaskFailed48h(error: error))
            }
        })

It seems to work and the tests pass.


Add Platform:setLogLevel method

DO NOT MERGE! This branch just contains ixmp.jar with new method to add and test setting log level in python
Please confirm that this PR has done the following:

[ ] Tests Added
[ ] Documentation Added
[ ] Description in RELEASE_NOTES.md Added

Adding to RELEASE_NOTES.md
Please add a single line in the release notes similar to the following:
- (#XX)[http://link-to-pr.com] Added feature which does something

Could not review pull request. It may be too large, or contain no reviewable changes.

Hi @zikolach - this seems to not include the default property key feature..

note when cleaning this up, we have java log levels:
ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF, TRACE
and python log levels:

Level
Numeric value

CRITICAL
50

ERROR
40

WARNING
30

INFO
20

DEBUG
10

NOTSET
0

closing in favor of #80


On android phone externals hexagons not clickables

Hello,
On my Android mobile, with hexagons displaying in lines 2+1+2+1
I can only click the hexagon alone on his line.
The ones who are 2 per line can't be clicked.
Could You check that please ?
Thank You
OIO

Hi @crapoio, thx for reporting, I managed to reproduce your issue on android browser. I wont have time to look into it right now though.

Hello Web-tiki,   thank You for your answer. Ok but do You think You'll work on solving this issue ? Sooner or later ? (Hopefully sooner than later.) Thank You. Best Regards.  Crapoio

@crapoio I have been working on this repo and changed the approach for the hexagon layout.
I haven't merged them into the master branch yet but they are merged in the demo branch. Can you check the demo here http://web-tiki.github.io/responsive-grid-of-hexagons/ and tell me if the issue is still occuring for you please.
Hopefully it has been solved with the latest modifications

@crapoio This browser is now replaced for new devices by chrome for android. It's usage according to canIuse  is very low so I am closing this as issue.

@web-tiki . Sorry for my late reply.  I checked yesterday and it now work on Android. Thanks a lot.

@controversial great! Thx for the feedback :)

@web-tiki Did you mean to mention me, or @crapoio ?

@controversial sorry, that was my mistake, I wanted to mention @crapoio

Ah, ok
On Tue, Feb 7, 2017 at 10:00 AM web-tiki<EMAIL_ADDRESS>wrote:

@controversial https://github.com/controversial sorry, that was my
mistake, I wanted to mention @crapoio https://github.com/crapoio
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/web-tiki/responsive-grid-of-hexagons/issues/13#issuecomment-278024857,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AJ5Yr2T-9VXszGbVmQe8CB-P7eDBS2IXks5raIcWgaJpZM4K3Xo0
.


azure.identity.ClientSecretCredential object can't be (cloud)pickled

Package Name: azure.identity
Package Version: 1.7.1
Operating System: Ubuntu 20.04.3 LTS
Python Version: 3.9.7

Describe the bug
An azure.identity.ClientSecretCredential object can't be (cloud)pickled which makes it unusable in a multiprocessing context using e.g. Dask.
To Reproduce
Steps to reproduce the behavior:
import os

from azure.identity import ClientSecretCredential
import cloudpickle  # version 2.0.0

credential = ClientSecretCredential(
    tenant_id=os.getenv('ADLFS_TENANT_ID'),  # with valid env variables set
    client_id=os.getenv('ADLFS_CLIENT_ID'),
    client_secret=os.getenv('ADLFS_CLIENT_SECRET'),
    authority='login.microsoftonline.com/')
cloudpickle.dumps(credential)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
/tmp/ipykernel_31443/3356912537.py in <module>
      9     client_secret=os.getenv('ADLFS_CLIENT_SECRET'),
     10     authority='login.microsoftonline.com/')
---> 11 cloudpickle.dumps(credential)

/usr/local/continuum/miniconda3/envs/py39_ymp576_latest/lib/python3.9/site-packages/cloudpickle/cloudpickle_fast.py in dumps(obj, protocol, buffer_callback)
     71                 file, protocol=protocol, buffer_callback=buffer_callback
     72             )
---> 73             cp.dump(obj)
     74             return file.getvalue()
     75

/usr/local/continuum/miniconda3/envs/py39_ymp576_latest/lib/python3.9/site-packages/cloudpickle/cloudpickle_fast.py in dump(self, obj)
    600     def dump(self, obj):
    601         try:
--> 602             return Pickler.dump(self, obj)
    603         except RuntimeError as e:
    604             if "recursion" in e.args[0]:

TypeError: cannot pickle '_thread._local' object

Note that sometimes the error is TypeError: cannot pickle '_thread.RLock' object. This seem to be due to two different offending locks in the ClientSecretCredential object, i.e. _cache: _thread.RLock and
_client: _thread._local.
Expected behavior
I expect to be able to (cloud)pickle the ClientSecretCredential object such that it can be used in a multiprocessing setting.
Additional context
In data science tasks, multiprocessing via e.g. Dask are often essential. Thus, I think it is absolutely necessary that you can pickle objects like ClientSecretCredential such that Azure plays nicely with the Scientific Python Ecosystem for doing data science.
Specifically, my use case is saving Xarray datasets in an Azure Data Lake, e.g. something like
import os

from azure.identity import ClientSecretCredential
from azure.storage.blob import ContainerClient
import dask.array
import numpy as np
import xarray as xr
import zarr

# Setup ADL connection
credential = ClientSecretCredential(
    tenant_id=os.getenv('ADLFS_TENANT_ID'),
    client_id=os.getenv('ADLFS_CLIENT_ID'),
    client_secret=os.getenv('ADLFS_CLIENT_SECRET'),
    authority='login.microsoftonline.com/')
container_client = ContainerClient(
    account_url='https://{my_storage_account}.blob.core.windows.net',
    container_name='{my_container}',
    credential=credential)
store = zarr.storage.ABSStore(
    client=container_client,
    prefix='test/')
group = 'ds.zarr'

# Create dummy data
ds = xr.Dataset(
    data_vars={"var_1": (('x'), dask.array.from_array(np.random.rand(10), chunks=2))},
    coords={'x': np.arange(10)})

# Save xarray to Zarr in ADL
ds.to_zarr(store=store, group=group, compute=False).compute(scheduler='processes')  # Compute using processes (not threads)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
/tmp/ipykernel_33027/4096524395.py in <module>
     28
     29 # Save xarray to Zarr in ADL
---> 30 ds.to_zarr(store=store, group=group, compute=False).compute(scheduler='processes')  # Compute using processes (not threads)

/usr/local/continuum/miniconda3/envs/py39_ymp576_latest/lib/python3.9/site-packages/dask/base.py in compute(self, **kwargs)
    286         dask.base.compute
    287         """
--> 288         (result,) = compute(self, traverse=False, **kwargs)
    289         return result
    290

/usr/local/continuum/miniconda3/envs/py39_ymp576_latest/lib/python3.9/site-packages/dask/base.py in compute(traverse, optimize_graph, scheduler, get, *args, **kwargs)
    569         postcomputes.append(x.__dask_postcompute__())
    570
--> 571     results = schedule(dsk, keys, **kwargs)
    572     return repack([f(r, *a) for r, (f, a) in zip(results, postcomputes)])
    573

/usr/local/continuum/miniconda3/envs/py39_ymp576_latest/lib/python3.9/site-packages/dask/multiprocessing.py in get(dsk, keys, num_workers, func_loads, func_dumps, optimize_graph, pool, chunksize, **kwargs)
    217     try:
    218         # Run
--> 219         result = get_async(
    220             pool.submit,
    221             pool._max_workers,

/usr/local/continuum/miniconda3/envs/py39_ymp576_latest/lib/python3.9/site-packages/dask/local.py in get_async(submit, num_workers, dsk, result, cache, get_id, rerun_exceptions_locally, pack_exception, raise_exception, callbacks, dumps, loads, chunksize, **kwargs)
    493             # Main loop, wait on tasks to finish, insert new ones
    494             while state["waiting"] or state["ready"] or state["running"]:
--> 495                 fire_tasks(chunksize)
    496                 for key, res_info, failed in queue_get(queue).result():
    497                     if failed:

/usr/local/continuum/miniconda3/envs/py39_ymp576_latest/lib/python3.9/site-packages/dask/local.py in fire_tasks(chunksize)
    475                         (
    476                             key,
--> 477                             dumps((dsk[key], data)),
    478                             dumps,
    479                             loads,

/usr/local/continuum/miniconda3/envs/py39_ymp576_latest/lib/python3.9/site-packages/cloudpickle/cloudpickle_fast.py in dumps(obj, protocol, buffer_callback)
     71                 file, protocol=protocol, buffer_callback=buffer_callback
     72             )
---> 73             cp.dump(obj)
     74             return file.getvalue()
     75

/usr/local/continuum/miniconda3/envs/py39_ymp576_latest/lib/python3.9/site-packages/cloudpickle/cloudpickle_fast.py in dump(self, obj)
    600     def dump(self, obj):
    601         try:
--> 602             return Pickler.dump(self, obj)
    603         except RuntimeError as e:
    604             if "recursion" in e.args[0]:

TypeError: cannot pickle '_thread._local' object

Thanks for the report, we'll talk with @xiangyan99 and @mccoyp that owns this package and comeback to you

A workaround to this problem is to delay the instantiation of the ClientSecretCredential object until it is actually needed. That way we can simply pass around the client/secret (which are simple strings that can be pickled) in the dask cluster.
Implementing this workaround for my use case is not trivial though, as the current interface to the Xarray/Zarr setup requires an instantiated credential object. However, I have come up with this very ugly ProxyCredential class that allows me to pretend to have an instantiated credential object but really just instantiate the ClientSecretCredential when needed. This obviously comes with some overhead, but it doesn't seem too bad to be useful.
class ProxyCredential:
    """
    Wrap ClientSecretCredential to delay its instantiation such that it may be
    pickled.
    """
    def __init__(self, credential_kwargs):
        """
        Parameters
        ----------
        crendential_kwargs : dict
            The tenant_id, client_id, and client_secret to use with the
            ClientSecretCredential.
        """
        self.credential_kwargs = credential_kwargs

    def __getattr__(self, name):
        """Intercept all attribute access and method calls."""
        credential_kwargs = super().__getattribute__('credential_kwargs')
        credential = ClientSecretCredential(
            authority='login.microsoftonline.com/',
            **credential_kwargs)
        attr = credential.__getattribute__(name)
        if hasattr(attr, '__call__'):
            # If attribute is a method, wrap it
            def wrapper(*args, **kwargs):
                # Create a new ClientSecretObject in wrapper
                # to further delay its instantiation
                credential = ClientSecretCredential(
                   authority='login.microsoftonline.com/',
                   **credential_kwargs)
                method = credential.__getattribute__(name)
                return method(*args, **kwargs)
            return wrapper
        else:
            return attr

Now using the ProxyCredential, my use case works as expected, i.e. the following examples now works:
credential_kwargs = {
    'tenant_id': os.getenv('ADLFS_TENANT_ID'),
    'client_id': os.getenv('ADLFS_CLIENT_ID'),
    'client_secret': os.getenv('ADLFS_CLIENT_SECRET')}
credential = ProxyCredential(credential_kwargs)
container_client = ContainerClient(
    account_url='https://{my_storage_account}.blob.core.windows.net',
    container_name='{my_container}',
    credential=credential)

store = zarr.storage.ABSStore(
    client=container_client,
    prefix='test/')
group = 'ds.zarr'

# Create dummy data
ds = xr.Dataset(
    data_vars={"var_1": (('x'), dask.array.from_array(np.random.rand(10), chunks=2))},
    coords={'x': np.arange(10)})

# Save xarray to Zarr in ADL
ds.to_zarr(store=store, group=group, compute=False).compute(scheduler='processes')

Thank you for reaching out.
In general, we don't encourage pickling credential clients because they may contain secret information.
Constructing the client when you use it is the safest way to use it. :)

Hi @xiangyan99,
When doing distributed parallel calculations (e.g. with dask.distributed) you want each of your workers to be able to access cloud storage which requires serialised credentials to be passed to them. In this use-case you can assume the communication channels are private so there isn't a risk of exposing secret information.
Working in a security conscious organisation we still don't send credentials over the wire and instead use a ManagedIdentityCredential to use the assigned pod identity to access the storage. Unfortunately we're not easily able to do this because the ManagedIdentityCredential can't be pickled despite it containing no secret information.
Could you please reconsider adding serialization to credentials which don't include secret information e.g. ManagedIdentityCredential and also (IIUC) DefaultAzureCredential.

Doing a /unresolved to get some feedback on @dhirschfeld suggestion for making ManagedIdentityCredential picklable which seems very reasonable to me.


locale - sk, fixed a relative future time proposition

A proposition "za" is grammatically incorrect in the most of cases when talking about a future event.
Slovak language has two propositions for such cases: "za" and "o" but they have slightly different meanings.
"za 5 minút" - an event which is already happening is coming to its end in 5 minutes, e.g. "It is done in 5 minutes."
"o 5 minút" => an event is going to happen in 5 minutes, e.g. "It is going to be released in 5 minutes."

Coverage remained the same at 88.525% when pulling d1ed2286771615596f8b7288924592ecad646b85 on mirorac:fix-locale-sk into 52019f1dda47c3e598aaeaa4ac89d5a574641604 on moment:develop.


MiniTool Power Data Recovery Crack 11.5 Full Version Download [2024]

MiniTool Power Data Recovery Crack 11.5 Full Version Download [2024]
MiniTool Power Data Recovery Crack is a read-only file recovery software and data recovery software. It can help you recover all data caused by accidental deletion, formatting, repartitioning, system crash or virus attack, and lost data. It can scan the device by sector to recover the rest of the content on the device.
Download Now

Full-Setup
.
.
.
.
Download-Setup
.
.
.


Fix getting locations by using version 2020-09-01

Fixes https://github.com/microsoft/vscode-azurefunctions/issues/3054 and probably a yet-to-be-discovered bug in vscode-azureappservice.
I think this is a bug with the newer versions of the Azure API used by default in the new SDKs. I filed an issue: https://github.com/Azure/azure-rest-api-specs/issues/18071
As a temporary fix, I'm making a request using a generic service client and setting the api-version to 2020-09-01.

Don't forget to bump the version though

Don't forget to bump the version though

Oh, I did it a separate PR just to give you more work 🤪
https://github.com/microsoft/vscode-azuretools/pull/1088


cgroup tracking

See commits
tetragon: add support for associating pod information when nested cgroups are used

Checkpatch failure cannot be fixed:
CHECK:MACRO_ARG_PRECEDENCE: Macro argument 'member' may be better as '(member)' to avoid precedence issues
  #136: FILE: bpf/lib/bpf_helpers.h:111:
  +#define offsetof(type, member) ((unsigned long)&((type *)0)->member)

Overall it looks good, it's a large PR though! Cgroup tracking looks cool as well! Thanks I have a few comments

Thanks! Pushed a new version.

Thanks, merging this. I'm happy to address additional feedback as a followup.

Thanks, merging this. I'm happy to address additional feedback as a followup.

I would at least specifically state this is only cgroupv2 compatible, since cgroupv1 was not tested.


mk/re.mk:137: Unknown compiler cc; supported compilers: gcc, clang

$ make clean
mk/re.mk:137: Unknown compiler cc\; supported compilers: gcc, clang
mk/re.mk:427: Could not detect ARCH

This override of CC seems to be needed on Ubuntu 21.10.
ifeq ($(CC),cc)
       CC := gcc
endif

of commit 3de198482c43046ca409a0a198438fb6adf67a0e.
$ cc --version|head -n 1
cc (Ubuntu 11.2.0-7ubuntu2) 11.2.0

cc is an allowed alias/sym link for gcc.

Maybe it is best to re-activate
ifeq ($(CC),cc)
       CC := gcc
endif

Fixed https://github.com/baresip/re/commit/bd1b04ade02aca75764da5149fc7a7e4ba2898d7

This was fast. Thanks!


Add start to required fields

When given property is required - there should be a star in the label
Acceptance criteria

update base property to hold information about it: isRequired
update mongoose, sequelize and typeorm adapters to fill this information automatically (could be a separate task)
allow users to change that in PropertyOptions

released with v2.3


Use quickjs runtime everywhere

Replace the iframe for evaluating js expressions with the quickjs runtime, both server and client. We're using the same method again everywhere to evaluate expressions.

Converting back to draft. Rethinking bindings on the page first to include more use-cases


CloutVista link broken on searches that dont have a username

@daniel-keyes
looks like the link to clout vista disappears on longer searches - i think when no username match i found.

Thanks for flagging this @tijno! I'll have a PR ready to fix it today.
Another issue I noticed, is that the cloutavista option pops up for the "Messages "and "Send Clout" search boxes as well.

This doesn't seem appropriate to the desired user behavior. I'll go ahead and fix that as well.


vcd.dump files not created on passing fud -s fpga.waveform true flag

Running fud as follows:
fud e vad-emulation.xclbin --from xclbin --to fpga -s fpga.data .../vectorized-add.fuse.data -s fpga.waveform true -s fpga.save_temps true
Does not produce a dump.vcd file in .run/*/hw_em/device0/binary_0/behav_waveform/xsim/ as expected.

So it turns out the key was assigning the environment variable XRT_INI_PATH only after the xrt.ini file is written.
At least, thats what seemed to be the difference, not going to question it.

We should probably leave a comment in the source code saying that this needs to be the case